| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 |
- #!/bin/sh
- # The new package will be saved here
- PACK_DIR=$(pwd)/linux/release
- # Temp dir for creating *.tar.bz2 package
- BUILD_PACK_DIR=/var/tmp/doublecmd-$(date +%y.%m.%d)
- # Read version number
- DC_MAJOR=$(grep 'MajorVersionNr' ../src/doublecmd.lpi | grep -o '[0-9.]\+')
- DC_MINOR=$(grep 'MinorVersionNr' ../src/doublecmd.lpi | grep -o '[0-9.]\+' || echo 0)
- DC_MICRO=$(grep 'RevisionNr' ../src/doublecmd.lpi | grep -o '[0-9.]\+' || echo 0)
- DC_VER=$DC_MAJOR.$DC_MINOR.$DC_MICRO
- # Create temp dir for building
- BUILD_DC_TMP_DIR=/var/tmp/doublecmd-$DC_VER
- help()
- {
- echo 'Usage: create_packages.sh [options]'
- echo
- echo "Options:"
- echo '-A: All packages (by default)'
- echo '-D: Debian package'
- echo '-R: RPM package'
- echo '-S: Slackware package'
- echo '-P: Portable package'
- echo '--cpu=<cpu>: Target CPU'
- echo '--ws=<widgetset>: Target widgetset'
- echo
- exit 1
- }
- # Parse input parameters
- CKNAME=$(basename "$0")
- args=$(getopt -n $CKNAME -o ADRSPHh -l cpu:,ws:,help,default -- "$@")
- eval set -- $args
- while [ "$1" != "--" ]; do
- case "$1" in
- -h|--help) help;;
- -A) shift;CK_DEBIAN=1;CK_REDHAT=1;CK_SLACKWARE=1;CK_PORTABLE=1;;
- -D) shift;CK_DEBIAN=1;;
- -R) shift;CK_REDHAT=1;;
- -S) shift;CK_SLACKWARE=1;;
- -P) shift;CK_PORTABLE=1;;
- --cpu) shift;export CPU_TARGET=$(eval echo $1);shift;;
- --ws) shift;export lcl=$(eval echo $1);shift;;
- esac
- done
- if [ -z "$CK_DEBIAN" ] && [ -z "$CK_REDHAT" ] && [ -z "$CK_SLACKWARE" ] && [ -z "$CK_PORTABLE" ]; then
- CK_DEBIAN=1
- CK_REDHAT=1
- CK_SLACKWARE=1
- CK_PORTABLE=1
- fi
- # Export from Git
- rm -rf $BUILD_DC_TMP_DIR
- mkdir $BUILD_DC_TMP_DIR
- git -C ../ checkout-index -a -f --prefix=$BUILD_DC_TMP_DIR/
- # Update revision number
- linux/update-revision.sh ../ $BUILD_DC_TMP_DIR
- # Copy package description file
- cp linux/description-pak $BUILD_DC_TMP_DIR/
- # Set widgetset
- if [ -z $lcl ]; then
- export lcl=gtk2
- fi
- # Set processor architecture
- if [ -z $CPU_TARGET ]; then
- export CPU_TARGET=$(fpc -iTP)
- fi
- # Debian package architecture
- if [ "$CPU_TARGET" = "x86_64" ]
- then
- export DEB_ARCH="amd64"
- else
- export DEB_ARCH=$CPU_TARGET
- fi
- # Copy libraries
- cp -a linux/lib/$CPU_TARGET/*.so* $BUILD_DC_TMP_DIR/
- cp -a linux/lib/$CPU_TARGET/$lcl/*.so* $BUILD_DC_TMP_DIR/
- cd $BUILD_DC_TMP_DIR
- # Build all components of Double Commander
- ./build.sh release
- # Export variables for checkinstall
- export MAINTAINER="Alexander Koblov <[email protected]>"
- if [ "$CK_REDHAT" ]; then
- # Create *.rpm package
- checkinstall -R --default --pkgname=doublecmd --pkgversion=$DC_VER --pkgarch=$CPU_TARGET --pkgrelease=1.$lcl --pkglicense=GPL --pkggroup=Applications/File --nodoc --pakdir=$PACK_DIR $BUILD_DC_TMP_DIR/install/linux/install.sh
- fi
- if [ "$CK_DEBIAN" ]; then
- # Create *.deb package
- checkinstall -D --default --pkgname=doublecmd --pkgversion=$DC_VER --pkgarch=$DEB_ARCH --pkgrelease=1.$lcl --pkglicense=GPL --pkggroup=contrib/misc --requires=libx11-6 --nodoc --pakdir=$PACK_DIR $BUILD_DC_TMP_DIR/install/linux/install.sh
- fi
- if [ "$CK_SLACKWARE" ]; then
- # Create *.tgz package
- checkinstall -S --default --pkgname=doublecmd --pkgversion=$DC_VER --pkgarch=$CPU_TARGET --pkgrelease=1.$lcl --pkglicense=GPL --pkggroup=Applications/File --nodoc --pakdir=$PACK_DIR $BUILD_DC_TMP_DIR/install/linux/install.sh
- fi
- if [ "$CK_PORTABLE" ]; then
- # Create *.tar.xz package
- mkdir -p $BUILD_PACK_DIR
- install/linux/install.sh --portable-prefix=$BUILD_PACK_DIR
- cd $BUILD_PACK_DIR
- # Set run-time library search path
- patchelf --set-rpath '$ORIGIN' doublecmd/doublecmd
- tar -cJvf $PACK_DIR/doublecmd-$DC_VER.$lcl.$CPU_TARGET.tar.xz doublecmd
- fi
- # Clean DC build dir
- rm -rf $BUILD_DC_TMP_DIR
- rm -rf $BUILD_PACK_DIR
|