#!/bin/bash # # Builds LDAP Account Manager packages. if [ $# -lt 1 ] then echo -e "Usage: buildPackage , buildPackage develop, buildPackage -b branch" exit fi set -e cd /daten/projekte/lam/pakete if [ "$1" = "develop" ] then export REPO_BRANCH="develop" elif [ "$1" = "-b" ] then export REPO_BRANCH="$2" else export REPO_BRANCH="$1" fi # minifies the JavaScript files function minify { local dir="$1" echo "Minify JS files in $dir" local outFile=$dir/100_lam.${VERSION}.min.js local files=`ls $dir/*.js` local jsFiles="" for file in $files; do jsFiles="$jsFiles $file" done uglifyjs -o $outFile $jsFiles rm $files # add final new line to supress Debian warnings echo "" >> $outFile } # minifies the CSS files function minifyCSS { local dir="$1" echo "Minify CSS files in $dir" local outFile=$dir/100_lam.${VERSION}.min.css local files=`ls $dir/*.css` cat $files | cleancss --skip-rebase -o $outFile rm $files # add final new line to supress Debian warnings echo "" >> $outFile } echo "Getting files..." git clone --depth 1 -b $REPO_BRANCH --single-branch git@github.com:LDAPAccountManager/lam.git github cd github mv lam ../ mv lam-packaging ../ cd .. rm -rf github git clone --depth 1 -b $REPO_BRANCH --single-branch git@gitlab.com:LDAPAccountManager/lamPro.git lamPro cd lamPro rm -rf .git rm -rf docker cd .. cp lam-packaging/getVersion ./ export VERSION=`./getVersion` # remove files which are not in the final release rm -r lam/po rm -r lam/tests rm -f lam/lib/3rdParty/tcpdf/fonts/*.ttf rm -r lam/templates/lib/extra/ckeditor/plugins/*/dev find . -name .svnignore -exec rm {} \; find . -name .gitignore -exec rm {} \; mv lam ldap-account-manager-$VERSION # create LAM manual cd ldap-account-manager-$VERSION/docs/manual-sources ./make.sh cd ../../.. rm -r ldap-account-manager-$VERSION/docs/manual-sources # create LAM Pro build directory mkdir LAMPro cp -a ldap-account-manager-$VERSION LAMPro/ldap-account-manager-$VERSION cp -a lamPro/* LAMPro/ldap-account-manager-$VERSION rm -r lamPro # create Debian build dirs mkdir Debian mkdir LAMPro/Debian rm ldap-account-manager-$VERSION/phpdoc.sh rm LAMPro/ldap-account-manager-$VERSION/phpdoc.sh # tar.bz2 cp lam-packaging/autoconf/configure.ac ldap-account-manager-$VERSION/ cp lam-packaging/autoconf/Makefile.in ldap-account-manager-$VERSION/ cd ldap-account-manager-$VERSION touch install.sh perl -pi -e "s/\\@\\@VERSION\\@\\@/$VERSION/g" configure.ac autoconf rm -r autom4te.cache cd .. # Debian gets orig.tar.bz2 with original JS files tar cfj ldap-account-manager-$VERSION.tar.bz2 --owner=root --group=root --mtime=now ldap-account-manager-$VERSION mv ldap-account-manager-$VERSION.tar.bz2 Debian/ldap-account-manager_$VERSION.orig.tar.bz2 cp -ar ldap-account-manager-$VERSION Debian/ # build other packages with minified JS files minify ldap-account-manager-$VERSION/templates/lib minifyCSS ldap-account-manager-$VERSION/style tar cfj ldap-account-manager-$VERSION.tar.bz2 --owner=root --group=root --mtime=now ldap-account-manager-$VERSION rm -r ldap-account-manager-$VERSION # tar.bz2 of LAM Pro cd LAMPro cp ../lam-packaging/autoconf/configure.ac ldap-account-manager-$VERSION/ cp ../lam-packaging/autoconf/Makefile.in ldap-account-manager-$VERSION/ cd ldap-account-manager-$VERSION touch install.sh perl -pi -e "s/\\@\\@VERSION\\@\\@/$VERSION/g" configure.ac autoconf rm -r autom4te.cache cd .. # Debian gets orig.tar.bz2 with original JS files tar cfj ldap-account-manager-$VERSION.tar.bz2 --owner=root --group=root --mtime=now ldap-account-manager-$VERSION mv ldap-account-manager-$VERSION.tar.bz2 Debian/ldap-account-manager_$VERSION.orig.tar.bz2 cp -ar ldap-account-manager-$VERSION Debian/ # build other packages with minified JS files minify ldap-account-manager-$VERSION/templates/lib minifyCSS ldap-account-manager-$VERSION/style tar cfj ldap-account-manager-$VERSION.tar.bz2 --owner=root --group=root --mtime=now ldap-account-manager-$VERSION rm -r ldap-account-manager-$VERSION cd .. # Debian cp -r lam-packaging/debian Debian/ldap-account-manager-$VERSION/ cp -ar Debian Debian-Upload cd Debian/ldap-account-manager-$VERSION debuild -k478730308FBD512ADF09D38E7F3D136B2BCD7990 cd .. rm -r ldap-account-manager-$VERSION cd .. cd Debian-Upload/ldap-account-manager-$VERSION debuild -S -k478730308FBD512ADF09D38E7F3D136B2BCD7990 cd .. rm -r ldap-account-manager-$VERSION cd .. # Debian for LAM Pro cd LAMPro cp -r ../lam-packaging/debian Debian/ldap-account-manager-$VERSION/ cd Debian/ldap-account-manager-$VERSION debuild -k478730308FBD512ADF09D38E7F3D136B2BCD7990 cd .. rm -r ldap-account-manager-$VERSION cd .. cd .. # RPM perl -pi -e "s/\\@\\@VERSION\\@\\@/$VERSION/g" lam-packaging/RPM/ldap-account-manager.spec cp lam-packaging/RPM/ldap-account-manager.spec lam-packaging/RPM/ldap-account-manager-fedora.spec perl -pi -e "s/\\@\\@DISTRIBUTION\\@\\@/fedora/g" lam-packaging/RPM/ldap-account-manager-fedora.spec perl -pi -e "s/\\@\\@USER\\@\\@/apache/g" lam-packaging/RPM/ldap-account-manager-fedora.spec perl -pi -e "s/\\@\\@GROUP\\@\\@/apache/g" lam-packaging/RPM/ldap-account-manager-fedora.spec perl -pi -e "s/\\@\\@HTTP_CONF_DIR\\@\\@/\\/etc\\/httpd\\/conf.d/g" lam-packaging/RPM/ldap-account-manager-fedora.spec cp lam-packaging/RPM/ldap-account-manager.spec lam-packaging/RPM/ldap-account-manager-suse.spec perl -pi -e "s/\\@\\@DISTRIBUTION\\@\\@/suse/g" lam-packaging/RPM/ldap-account-manager-suse.spec perl -pi -e "s/\\@\\@USER\\@\\@/wwwrun/g" lam-packaging/RPM/ldap-account-manager-suse.spec perl -pi -e "s/\\@\\@GROUP\\@\\@/www/g" lam-packaging/RPM/ldap-account-manager-suse.spec perl -pi -e "s/\\@\\@HTTP_CONF_DIR\\@\\@/\\/etc\\/apache2\\/conf.d/g" lam-packaging/RPM/ldap-account-manager-suse.spec mkdir RPM mkdir LAMPro/RPM # Fedora RPM cp ldap-account-manager-$VERSION.tar.bz2 ~/rpmbuild/SOURCES cp lam-packaging/RPM/lam.apache.conf ~/rpmbuild/SOURCES cp lam-packaging/RPM/lam.nginx.conf ~/rpmbuild/SOURCES rpmbuild --clean --rmsource -bb lam-packaging/RPM/ldap-account-manager-fedora.spec mv ~/rpmbuild/RPMS/noarch/ldap-account-manager*-$VERSION-*1.noarch.rpm RPM/ # Fedora RPM for LAM Pro cd LAMPro cp ldap-account-manager-$VERSION.tar.bz2 ~/rpmbuild/SOURCES/ldap-account-manager-$VERSION.tar.bz2 cp ../lam-packaging/RPM/lam.apache.conf ~/rpmbuild/SOURCES cp ../lam-packaging/RPM/lam.nginx.conf ~/rpmbuild/SOURCES rpmbuild --clean --rmsource -bb ../lam-packaging/RPM/ldap-account-manager-fedora.spec mv ~/rpmbuild/RPMS/noarch/ldap-account-manager*-$VERSION-*1.noarch.rpm RPM/ cd .. # Suse RPM cp ldap-account-manager-$VERSION.tar.bz2 ~/rpmbuild/SOURCES cp lam-packaging/RPM/lam.apache.conf ~/rpmbuild/SOURCES cp lam-packaging/RPM/lam.nginx.conf ~/rpmbuild/SOURCES rpmbuild --clean --rmsource -bb lam-packaging/RPM/ldap-account-manager-suse.spec mv ~/rpmbuild/RPMS/noarch/ldap-account-manager*-$VERSION-*1.noarch.rpm RPM/ # Suse RPM for LAM Pro cd LAMPro cp ldap-account-manager-$VERSION.tar.bz2 ~/rpmbuild/SOURCES/ldap-account-manager-$VERSION.tar.bz2 cp ../lam-packaging/RPM/lam.apache.conf ~/rpmbuild/SOURCES cp ../lam-packaging/RPM/lam.nginx.conf ~/rpmbuild/SOURCES rpmbuild --clean --rmsource -bb ../lam-packaging/RPM/ldap-account-manager-suse.spec mv ~/rpmbuild/RPMS/noarch/ldap-account-manager*-$VERSION-*1.noarch.rpm RPM/ cd .. rpmsign --addsign RPM/*.rpm LAMPro/RPM/*.rpm # generate checksum files sha256sum *.tar.bz2 >> checksums.txt cd RPM sha256sum *.rpm >> ../checksums.txt cd ../Debian sha256sum *.deb >> ../checksums.txt cd .. # generate checksum files for LAM Pro cd LAMPro sha256sum *.tar.bz2 >> checksums.txt cd RPM sha256sum *.rpm >> ../checksums.txt cd ../Debian sha256sum *.deb >> ../checksums.txt cd ../.. # clean up rm -r lam-packaging rm getVersion rm -f *.log