LDAPAccountManager/lam-packaging/buildPackages

205 lines
6.8 KiB
Bash
Executable File

#!/bin/bash
#
# Builds LDAP Account Manager packages from SVN.
if [ $# -lt 1 ]
then
echo -e "Usage: buildPackage <SVN tag>"
exit
fi
set -e
cd /daten/projekte/lam/pakete
if [ "$1" = "trunk" ]
then
export SVN_TAG="trunk"
else
export SVN_TAG="tags/$1"
fi
# minifies the JavaScript files
function minify {
local dir="$1"
echo "Minify JS files in $dir"
local files=`ls $dir/*.js`
for file in $files; do
# skip dropmenu file, incompatible with YUI compressor
if [[ $file =~ .*dropmenu.* ]]; then
continue
fi
yui-compressor --nomunge --preserve-semi --disable-optimizations --charset UTF-8 -o ${file}-MIN $file
rm $file
mv ${file}-MIN $file
# add final new line to supress Debian warnings
echo "" >> $file
done
}
echo "Get files from SVN..."
svn export -q svn+ssh://gruberroland@svn.code.sf.net/p/lam/code/$SVN_TAG/lam lam &
svn export -q svn+ssh://gruberroland@svn.code.sf.net/p/lam/code/$SVN_TAG/lam-packaging lam-packaging &
svn export -q file:///daten/projekte/SVNROOT/$SVN_TAG/lamPro lamPro &
wait
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 lam/lib/font/*.ttf
find . -name .svnignore -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
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
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/
cd Debian/ldap-account-manager-$VERSION
debuild
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
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 --sign --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 --sign --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 --sign --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 --sign --clean --rmsource -bb ../lam-packaging/RPM/ldap-account-manager-suse.spec
mv ~/rpmbuild/RPMS/noarch/ldap-account-manager*-$VERSION-*1.noarch.rpm RPM/
cd ..
# 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