mirror of
https://github.com/LDAPAccountManager/lam.git
synced 2025-10-03 01:39:33 +02:00
268 lines
8.8 KiB
Bash
Executable file
268 lines
8.8 KiB
Bash
Executable file
#!/bin/bash
|
|
#
|
|
# Builds LDAP Account Manager packages.
|
|
|
|
if [ $# -lt 1 ]
|
|
then
|
|
echo -e "Usage: buildPackage <tag>, buildPackage develop, buildPackage -b branch"
|
|
exit
|
|
fi
|
|
|
|
set -e
|
|
|
|
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
|
|
terser $jsFiles -o $outFile
|
|
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 -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/lib/3rdParty/composer/nesbot/carbon/bin
|
|
chmod -R -x+X lam/lib/3rdParty
|
|
rm lam/composer*
|
|
rm lam/sbom*
|
|
find . -name .svnignore -exec rm {} \;
|
|
find . -name .gitignore -exec rm {} \;
|
|
find lam/lib/3rdParty -name LICENSE -exec rm {} \;
|
|
find lam/lib/3rdParty -name README.md -exec rm {} \;
|
|
find lam/lib/3rdParty -name readme.md -exec rm {} \;
|
|
find lam/lib/3rdParty -name SECURITY.md -exec rm {} \;
|
|
find lam/lib/3rdParty -name CHANGELOG.md -exec rm {} \;
|
|
find lam/lib/3rdParty -name CHANGELOG.txt -exec rm {} \;
|
|
find lam/lib/3rdParty -name CODE_OF_CONDUCT.md -exec rm {} \;
|
|
find lam/lib/3rdParty -name .github | xargs rm -r
|
|
find lam/lib/3rdParty -name .gitattributes | xargs rm -r
|
|
find lam/lib/3rdParty -name .phpstorm.meta.php | xargs rm -r
|
|
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/
|
|
cd Debian/ldap-account-manager-$VERSION
|
|
pdebuild --auto-debsign --debsign-k 478730308FBD512ADF09D38E7F3D136B2BCD7990
|
|
mv /var/cache/pbuilder/result/* ../
|
|
cd ..
|
|
rm -r ldap-account-manager-$VERSION
|
|
cd ..
|
|
mkdir Debian-Upload
|
|
cp Debian/*.dsc Debian/*.orig.tar.bz2 Debian/*source.changes Debian/*.debian.tar.xz Debian-Upload
|
|
|
|
# Debian for LAM Pro
|
|
cd LAMPro
|
|
cp -r ../lam-packaging/debian Debian/ldap-account-manager-$VERSION/
|
|
cd Debian/ldap-account-manager-$VERSION
|
|
pdebuild --auto-debsign --debsign-k 478730308FBD512ADF09D38E7F3D136B2BCD7990
|
|
mv /var/cache/pbuilder/result/* ../
|
|
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 ../..
|
|
|
|
# create result folders
|
|
mkdir LAM-packages
|
|
mkdir LAM-packages/logs
|
|
mv Debian/*.deb LAM-packages/
|
|
mv Debian/* LAM-packages/logs/
|
|
mv Debian-Upload LAM-packages/
|
|
mv RPM/*.rpm LAM-packages/
|
|
mv checksums.txt LAM-packages/
|
|
mv *.tar.bz2 LAM-packages/
|
|
|
|
mkdir LAMPro-packages
|
|
mkdir LAMPro-packages/logs
|
|
mv LAMPro/Debian/*.deb LAMPro-packages/
|
|
mv LAMPro/Debian/* LAMPro-packages/logs/
|
|
mv LAMPro/RPM/*.rpm LAMPro-packages/
|
|
mv LAMPro/checksums.txt LAMPro-packages/
|
|
mv LAMPro/*.tar.bz2 LAMPro-packages/
|
|
|
|
# clean up
|
|
rm -r lam-packaging
|
|
rm getVersion
|
|
rm -f *.log
|
|
rm -r LAMPro
|
|
rm -r Debian
|
|
rm -r RPM
|
|
|
|
# run lintian
|
|
lintian --tag-display-limit 0 LAM-packages/Debian-Upload/*.dsc
|