Skip to content

Instantly share code, notes, and snippets.

@thomascube
Last active October 29, 2017 15:47
Show Gist options
  • Save thomascube/2725894 to your computer and use it in GitHub Desktop.
Save thomascube/2725894 to your computer and use it in GitHub Desktop.
Roundcube release scripts
--- composer.json.orig 2017-04-23 19:25:51.000000000 +0200
+++ composer.json 2017-04-23 19:29:26.000000000 +0200
@@ -25,15 +25,13 @@
"pear/mail_mime": "~1.10.0",
"pear/net_smtp": "~1.7.1",
"pear/crypt_gpg": "~1.6.0",
+ "pear/net_ldap2": "~2.2.0",
+ "kolab/Net_LDAP3": "~1.0.6",
"pear/net_sieve": "~1.4.0",
"roundcube/plugin-installer": "~0.1.6",
"endroid/qrcode": "~1.6.5"
},
"require-dev": {
"phpunit/phpunit": "^4.8.36 || ^5.7.15"
- },
- "suggest": {
- "pear/net_ldap2": "~2.2.0 required for connecting to LDAP",
- "kolab/Net_LDAP3": "dev-master required for connecting to LDAP"
}
}
--- composer.json.orig 2015-08-21 15:07:48.000000000 +0200
+++ composer.json 2015-08-21 15:12:02.000000000 +0200
@@ -24,15 +24,13 @@
"pear-pear.php.net/net_sieve": "~1.3.4",
"pear-pear.php.net/mail_mime": "~1.9.0",
"pear-pear.php.net/net_smtp": "~1.7.1",
+ "pear-pear.php.net/net_ldap2": "~2.1.0",
+ "kolab/Net_LDAP3": "dev-master",
"patchwork/utf8": "~1.2.3"
},
"require-dev": {
"pear-pear.php.net/crypt_gpg": "*",
"phpunit/phpunit": "*"
},
- "suggest": {
- "pear-pear.php.net/net_ldap2": "~2.1.0 required for connecting to LDAP address books",
- "kolab/Net_LDAP3": "dev-master required for connecting to LDAP address books"
- },
"minimum-stability": "dev"
}
--- INSTALL.orig 2015-01-04 17:24:34.000000000 +0100
+++ INSTALL 2015-01-04 17:25:06.000000000 +0100
@@ -39,29 +39,22 @@
or SQLite support in PHP
* One of the above databases with permission to create tables
* An SMTP server (recommended) or PHP configured for mail delivery
-* Composer installed either locally or globally (https://getcomposer.org)
+* Composer installed either locally or globally (optional, for plugin installation)
INSTALLATION
============
1. Decompress and put this folder somewhere inside your document root
-2. Install dependencies using composer:
- - get composer from https://getcomposer.org/download/
- - rename the composer.json-dist file into composer.json
- - if you want to use LDAP address books, enable the LDAP libraries in your
- composer.json file by moving the items from "suggest" to the "require"
- section (remove the explanation texts after the version!).
- - run `php composer.phar install --no-dev`
-3. Make sure that the following directories (and the files within)
+2. Make sure that the following directories (and the files within)
are writable by the webserver
- /temp
- /logs
-4. Create a new database and a database user for Roundcube (see DATABASE SETUP)
-5. Point your browser to http://url-to-roundcube/installer/
-6. Follow the instructions of the install script (or see MANUAL CONFIGURATION)
-7. After creating and testing the configuration, remove the installer directory
-8. Check Known Issues section of this file
+3. Create a new database and a database user for Roundcube (see DATABASE SETUP)
+4. Point your browser to http://url-to-roundcube/installer/
+5. Follow the instructions of the install script (or see MANUAL CONFIGURATION)
+6. After creating and testing the configuration, remove the installer directory
+7. Check Known Issues section of this file
CONFIGURATION HINTS
--- composer.json.orig 2015-11-16 21:34:50.000000000 +0100
+++ composer.json 2015-11-16 21:35:22.000000000 +0100
@@ -28,14 +28,12 @@
"pear-pear.php.net/mail_mime": "~1.10.0",
"pear-pear.php.net/net_smtp": "~1.7.1",
"pear-pear.php.net/crypt_gpg": "~1.4.2",
+ "pear-pear.php.net/net_ldap2": "~2.2.0",
+ "kolab/Net_LDAP3": "dev-master",
"roundcube/net_sieve": "~1.5.0"
},
"require-dev": {
"phpunit/phpunit": "*"
},
- "suggest": {
- "pear-pear.php.net/net_ldap2": "~2.2.0 required for connecting to LDAP address books",
- "kolab/Net_LDAP3": "dev-master required for connecting to LDAP address books"
- },
"minimum-stability": "dev"
}
--- INSTALL.orig 2015-01-04 17:24:34.000000000 +0100
+++ INSTALL 2015-01-04 17:25:06.000000000 +0100
@@ -39,29 +39,22 @@
or SQLite support in PHP
* One of the above databases with permission to create tables
* An SMTP server (recommended) or PHP configured for mail delivery
-* Composer installed either locally or globally (https://getcomposer.org)
+* Composer installed either locally or globally (optional, for plugin installation)
INSTALLATION
============
1. Decompress and put this folder somewhere inside your document root
-2. Install dependencies using composer:
- - get composer from https://getcomposer.org/download/
- - rename the composer.json-dist file into composer.json
- - if you want to use LDAP address books, enable the LDAP libraries in your
- composer.json file by moving the items from "suggest" to the "require"
- section (remove the explanation texts after the version!).
- - run `php composer.phar install --no-dev`
-3. Make sure that the following directories (and the files within)
+2. Make sure that the following directories (and the files within)
are writable by the webserver
- /temp
- /logs
-4. Create a new database and a database user for Roundcube (see DATABASE SETUP)
-5. Point your browser to http://url-to-roundcube/installer/
-6. Follow the instructions of the install script (or see MANUAL CONFIGURATION)
-7. After creating and testing the configuration, remove the installer directory
-8. Check Known Issues section of this file
+3. Create a new database and a database user for Roundcube (see DATABASE SETUP)
+4. Point your browser to http://url-to-roundcube/installer/
+5. Follow the instructions of the install script (or see MANUAL CONFIGURATION)
+6. After creating and testing the configuration, remove the installer directory
+7. Check Known Issues section of this file
CONFIGURATION HINTS
GITREMOTE=git://github.com/roundcube/roundcubemail.git
GITBRANCH=release-1.3
[email protected]
VERSION=1.3.2
all: clean complete dependent framework
complete: roundcubemail-git toolchain
cp -RH roundcubemail-git roundcubemail-$(VERSION)
(cd roundcubemail-$(VERSION); cp composer.json-dist composer.json)
(cd roundcubemail-$(VERSION); patch -p0 < ../dist.diff)
(cd roundcubemail-$(VERSION); php /tmp/composer.phar install --prefer-dist --no-dev)
(cd roundcubemail-$(VERSION); bin/install-jsdeps.sh --force)
(cd roundcubemail-$(VERSION); bin/jsshrink.sh program/js/publickey.js; bin/jsshrink.sh plugins/managesieve/codemirror/lib/codemirror.js)
(cd roundcubemail-$(VERSION); rm composer.json composer.lock jsdeps.json bin/install-jsdeps.sh *.orig; rm -rf vendor/pear/*/tests vendor/*/*/.git* vendor/pear/crypt_gpg/tools vendor/pear/console_commandline/docs vendor/pear/mail_mime/scripts vendor/pear/net_ldap2/doc vendor/pear/net_smtp/docs vendor/pear/net_smtp/examples vendor/pear/net_smtp/README.rst vendor/endroid/qrcode/tests temp/js_cache)
tar czf roundcubemail-$(VERSION)-complete.tar.gz roundcubemail-$(VERSION)
rm -rf roundcubemail-$(VERSION)
dependent: roundcubemail-git
cp -RH roundcubemail-git roundcubemail-$(VERSION)
tar czf roundcubemail-$(VERSION).tar.gz roundcubemail-$(VERSION)
rm -rf roundcubemail-$(VERSION)
framework: roundcubemail-git
cp -r roundcubemail-git/program/lib/Roundcube roundcube-framework-$(VERSION)
phpdoc -d roundcube-framework-$(VERSION) -t roundcube-framework-$(VERSION)/doc --title="Roundcube Framework" --defaultpackagename="Framework" --template=responsive-twig
rm -rf roundcube-framework-$(VERSION)/doc/phpdoc-cache*
tar czf roundcube-framework-$(VERSION).tar.gz roundcube-framework-$(VERSION)
rm -rf roundcube-framework-$(VERSION)
sign:
gpg -u $(GPGKEY) -a --detach-sig roundcubemail-$(VERSION).tar.gz
gpg -u $(GPGKEY) -a --detach-sig roundcubemail-$(VERSION)-complete.tar.gz
gpg -u $(GPGKEY) -a --detach-sig roundcube-framework-$(VERSION).tar.gz
verify:
gpg -v --verify roundcubemail-$(VERSION).tar.gz{.asc,}
gpg -v --verify roundcubemail-$(VERSION)-complete.tar.gz{.asc,}
gpg -v --verify roundcube-framework-$(VERSION).tar.gz{.asc,}
shasum:
shasum -a 256 roundcubemail-$(VERSION).tar.gz roundcubemail-$(VERSION)-complete.tar.gz roundcube-framework-$(VERSION).tar.gz
toolchain: /tmp/composer.phar
rm -f dist.diff
wget --no-check-certificate 'https://gist.github.com/thomascube/2725894/raw/dist.diff'
roundcubemail-git: /tmp/yuicompressor.jar
git clone $(GITREMOTE) roundcubemail-git
(cd roundcubemail-git; git checkout $(GITBRANCH))
# (cd roundcubemail-git; patch -p1 < ../readme.diff)
(cd roundcubemail-git; bin/jsshrink.sh; bin/updatecss.sh; bin/cssshrink.sh)
(cd roundcubemail-git/bin; rm transifexpull.sh package2composer.sh importgettext.sh exportgettext.sh)
(cd roundcubemail-git; rm -rf tests plugins/*/tests .git* .tx* index-test.php Dockerfile)
(cd roundcubemail-git; sed -i '' 's/1.3-git/$(VERSION)/' index.php public_html/index.php program/include/iniset.php program/lib/Roundcube/bootstrap.php)
/tmp/yuicompressor.jar:
# FIXME: remove --no-check-certificate or verify source
wget --no-check-certificate https://github.com/yui/yuicompressor/releases/download/v2.4.8/yuicompressor-2.4.8.zip -O "/tmp/yui.zip"
(cd /tmp && unzip "/tmp/yui.zip" && mv "yuicompressor-2.4.8.jar" "yuicompressor.jar")
/tmp/composer.phar:
curl -sS https://getcomposer.org/installer | php -- --install-dir=/tmp/
clean:
rm -rf roundcubemail-git
GITREMOTE=git://github.com/roundcube/roundcubemail.git
GITBRANCH=release-1.1
VERSION=1.1.5
all: clean dist dependent framework
dist: roundcubemail-git toolchain
cp -r roundcubemail-git roundcubemail-$(VERSION)
(cd roundcubemail-$(VERSION); cp composer.json-dist composer.json)
(cd roundcubemail-$(VERSION); patch -p0 < ../dist.v11.diff)
(cd roundcubemail-$(VERSION); php /tmp/composer.phar install --prefer-dist --no-dev)
(cd roundcubemail-$(VERSION); rm composer.json composer.lock *.orig; rm -rf vendor/pear/*/tests vendor/*/*/.git*)
tar czf roundcubemail-$(VERSION)-complete.tar.gz roundcubemail-$(VERSION)
rm -rf roundcubemail-$(VERSION)
dependent: roundcubemail-git
cp -r roundcubemail-git roundcubemail-$(VERSION)
tar czf roundcubemail-$(VERSION).tar.gz roundcubemail-$(VERSION)
rm -rf roundcubemail-$(VERSION)
framework: roundcubemail-git
cp -r roundcubemail-git/program/lib/Roundcube roundcube-framework-$(VERSION)
phpdoc -d roundcube-framework-$(VERSION) -t roundcube-framework-$(VERSION)/doc --title="Roundcube Framework" --defaultpackagename="Framework" --template=responsive-twig
rm -rf roundcube-framework-$(VERSION)/doc/phpdoc-cache*
tar czf roundcube-framework-$(VERSION).tar.gz roundcube-framework-$(VERSION)
rm -rf roundcube-framework-$(VERSION)
toolchain: /tmp/composer.phar
rm -f dist.diff
wget 'https://gist.githubusercontent.com/thomascube/2725894/raw/9b9c20456f2b6b106333394573fe09922e177261/dist.v11.diff' -O dist.diff
roundcubemail-git: /tmp/yuicompressor.jar
git clone $(GITREMOTE) roundcubemail-git
(cd roundcubemail-git; git checkout $(GITBRANCH))
(cd roundcubemail-git; patch -p1 < ../readme.diff)
(cd roundcubemail-git; bin/jsshrink.sh; bin/updatecss.sh; bin/cssshrink.sh)
(cd roundcubemail-git/bin; rm transifexpull.sh package2composer.sh importgettext.sh exportgettext.sh)
(cd roundcubemail-git; rm -rf tests public_html .git* .tx* index-test.php Dockerfile)
(cd roundcubemail-git; sed -i '' 's/1.2-git/$(VERSION)/' index.php program/include/iniset.php program/lib/Roundcube/bootstrap.php)
/tmp/yuicompressor.jar:
# FIXME: remove --no-check-certificate or verify source
wget --no-check-certificate https://github.com/yui/yuicompressor/releases/download/v2.4.8/yuicompressor-2.4.8.zip -O "/tmp/yui.zip"
(cd /tmp && unzip "/tmp/yui.zip" && mv "yuicompressor-2.4.8.jar" "yuicompressor.jar")
/tmp/composer.phar:
curl -sS https://getcomposer.org/installer | php -- --install-dir=/tmp/
clean:
rm -rf roundcubemail-git
GITREMOTE=git://github.com/roundcube/roundcubemail.git
GITBRANCH=release-1.2
[email protected]
VERSION=1.2.3
all: clean complete dependent framework
complete: roundcubemail-git toolchain
cp -RH roundcubemail-git roundcubemail-$(VERSION)
(cd roundcubemail-$(VERSION); cp composer.json-dist composer.json)
(cd roundcubemail-$(VERSION); patch -p0 < ../dist.v12.diff)
(cd roundcubemail-$(VERSION); php /tmp/composer.phar install --prefer-dist --no-dev)
(cd roundcubemail-$(VERSION); rm composer.json composer.lock *.orig; rm -rf vendor/pear/*/tests vendor/*/*/.git*)
(cd roundcubemail-$(VERSION); sed -i '' -E "s#'.+/Console_CommandLine/data' \. DIRECTORY_SEPARATOR#__DIR__ \. '/../../data' \. DIRECTORY_SEPARATOR#" vendor/pear-pear.php.net/Console_CommandLine/Console/CommandLine/XmlParser.php)
tar czf roundcubemail-$(VERSION)-complete.tar.gz roundcubemail-$(VERSION)
rm -rf roundcubemail-$(VERSION)
dependent: roundcubemail-git
cp -RH roundcubemail-git roundcubemail-$(VERSION)
tar czf roundcubemail-$(VERSION).tar.gz roundcubemail-$(VERSION)
rm -rf roundcubemail-$(VERSION)
framework: roundcubemail-git
cp -r roundcubemail-git/program/lib/Roundcube roundcube-framework-$(VERSION)
phpdoc -d roundcube-framework-$(VERSION) -t roundcube-framework-$(VERSION)/doc --title="Roundcube Framework" --defaultpackagename="Framework" --template=responsive-twig
rm -rf roundcube-framework-$(VERSION)/doc/phpdoc-cache*
tar czf roundcube-framework-$(VERSION).tar.gz roundcube-framework-$(VERSION)
rm -rf roundcube-framework-$(VERSION)
sign:
gpg -u $(GPGKEY) -a --detach-sig roundcubemail-$(VERSION).tar.gz
gpg -u $(GPGKEY) -a --detach-sig roundcubemail-$(VERSION)-complete.tar.gz
gpg -u $(GPGKEY) -a --detach-sig roundcube-framework-$(VERSION).tar.gz
verify:
gpg -v --verify roundcubemail-$(VERSION).tar.gz{.asc,}
gpg -v --verify roundcubemail-$(VERSION)-complete.tar.gz{.asc,}
gpg -v --verify roundcube-framework-$(VERSION).tar.gz{.asc,}
shasum:
shasum -a 256 roundcubemail-$(VERSION).tar.gz roundcubemail-$(VERSION)-complete.tar.gz roundcube-framework-$(VERSION).tar.gz
toolchain: /tmp/composer.phar
rm -f dist.v12.diff
wget 'https://gist.github.com/thomascube/2725894/raw/dist.v12.diff'
roundcubemail-git: /tmp/yuicompressor.jar
git clone $(GITREMOTE) roundcubemail-git
(cd roundcubemail-git; git checkout $(GITBRANCH))
(cd roundcubemail-git; bin/jsshrink.sh; bin/updatecss.sh; bin/cssshrink.sh)
(cd roundcubemail-git/bin; rm transifexpull.sh package2composer.sh importgettext.sh exportgettext.sh)
(cd roundcubemail-git; rm -rf tests .git* .tx* index-test.php Dockerfile)
/tmp/yuicompressor.jar:
# FIXME: remove --no-check-certificate or verify source
wget --no-check-certificate https://github.com/yui/yuicompressor/releases/download/v2.4.8/yuicompressor-2.4.8.zip -O "/tmp/yui.zip"
(cd /tmp && unzip "/tmp/yui.zip" && mv "yuicompressor-2.4.8.jar" "yuicompressor.jar")
/tmp/composer.phar:
curl -sS https://getcomposer.org/installer | php -- --install-dir=/tmp/
clean:
rm -rf roundcubemail-git
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment