X-Git-Url: https://code.citadel.org/?p=citadel.git;a=blobdiff_plain;f=appimage%2Fbuild_appimage.sh;h=b52ee9a28920773683e21a3fe1eebe953f60f56f;hp=1fcc7cea7cb4d6533ed324e04e6d7c1099ee42f5;hb=61821d8de88d86558bd0fde7138952bfb538e466;hpb=168a9ec0fb1b47c3602804b8af26f28b207a953d diff --git a/appimage/build_appimage.sh b/appimage/build_appimage.sh index 1fcc7cea7..b52ee9a28 100755 --- a/appimage/build_appimage.sh +++ b/appimage/build_appimage.sh @@ -1,26 +1,80 @@ #!/bin/bash -CTDLROOT=../citadel +rm -vf citadel-*appimage +export CITADEL_BUILD_DIR=/tmp/citadel-build-$$ +export WEBCIT_BUILD_DIR=/tmp/webcit-build-$$ +rm -fr $CITADEL_BUILD_DIR $WEBCIT_BUILD_DIR + +# libcitadel has to be built in a "real" library directory +pushd ../libcitadel || exit 1 +make distclean 2>/dev/null +./bootstrap || exit 2 +./configure || exit 3 +make || exit 4 +make install || exit 5 +popd + +# Build the Citadel server +pushd ../citadel || exit 6 +make distclean 2>/dev/null +./bootstrap || exit 7 +./configure --prefix=$CITADEL_BUILD_DIR || exit 8 +make || exit 9 +make install || exit 10 +popd + +# Build WebCit +pushd ../webcit || exit 11 +make distclean 2>/dev/null +./bootstrap || exit 12 +./configure --prefix=$WEBCIT_BUILD_DIR || exit 13 +make || exit 14 +make install || exit 15 +popd + +# Clear out any old versions in the AppDir rm -frv citadel.AppDir/usr mkdir -p citadel.AppDir/usr/bin mkdir -p citadel.AppDir/usr/lib -pushd citadel.AppDir -cc ctdlvisor.c -o ctdlvisor || exit 1 -popd - -for bin in $CTDLROOT/citadel/citserver $CTDLROOT/webcit/webcit +# Copy over all the libraries we used +for bin in $CITADEL_BUILD_DIR/citserver $WEBCIT_BUILD_DIR/webcit $CITADEL_BUILD_DIR/ctdlmigrate do - cp -v $bin citadel.AppDir/usr/bin/ - for x in `ldd $bin | awk ' { print $3 } ' | grep -v -e '^$' | grep -v 'libc.so' | grep -v 'libpthread.so' | grep -v 'libresolv.so'` + #for x in `ldd $bin | awk ' { print $3 } ' | grep -v -e '^$' | grep -v 'libc.so' | grep -v 'libpthread.so' | grep -v 'libresolv.so'` + for x in `ldd $bin | awk ' { print $3 } ' | grep -v -e '^$' ` do cp -v -L $x citadel.AppDir/usr/lib/ done done ldconfig -v citadel.AppDir/usr/lib -ARCH=x86_64 appimagetool citadel.AppDir/ +# Copy over some utilities +for bin in db_dump db_load db_recover +do + cp `which $bin` citadel.AppDir/usr/bin/ || exit 16 +done + +# Install the Citadel Server application tree +mkdir -p citadel.AppDir/usr/local/citadel || exit 17 +rsync -va $CITADEL_BUILD_DIR/ ./citadel.AppDir/usr/local/citadel/ || exit 18 + +# Install the WebCit application tree +mkdir -p citadel.AppDir/usr/local/webcit || exit 19 +rsync -va $WEBCIT_BUILD_DIR/ ./citadel.AppDir/usr/local/webcit/ || exit 20 + +# Remove the build directories +rm -fr $CITADEL_BUILD_DIR $WEBCIT_BUILD_DIR + +cc ctdlvisor.c -o citadel.AppDir/usr/bin/ctdlvisor || exit 21 -# Hint: do this on your build server first! -# apt-get install make build-essential autoconf zlib1g-dev libldap2-dev libssl-dev gettext libical-dev libexpat1-dev libcurl4-openssl-dev +CPU=`uname -m` +basefilename=citadel-`date +%s` +if [ $CPU == x86_64 ] ; then + export ARCH=x86_64 +elif [ $CPU == armv7l ] ; then + export ARCH=ARM +fi +echo ARCH: $ARCH +echo CPU: $CPU +appimagetool citadel.AppDir/ ${basefilename}-${CPU}.appimage