#!/bin/bash set -xe ###################################################### # Build script for Core 6.0 # ###################################################### ###################################################### # Configure extension creation parameters # ###################################################### S=$(basename $0) PACKAGE=${S%%.build} VERSION=1.4.22 SRCNAM=$PACKAGE-$VERSION.tar.bz2 WRKDIR=$PACKAGE-$VERSION EXTNAM=$PACKAGE TMPDIR=/tmp/$PACKAGE-$VERSION OUTDIR=../ ###################################################### # Prepare extension creation # ###################################################### # Remove dirs and files left from previous creation rm -r -f $WRKDIR rm -r -f $TMPDIR rm -r -f $TMPDIR-doc rm -r -f $TMPDIR-tools # Crete temporary directory mkdir -p $TMPDIR ###################################################### # Compile extension # ###################################################### # Export variables needed for compilation export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/lib/pkgconfig export CPPFLAGS="-I/usr/local/include -I/usr/include" export CFLAGS="-Os -pipe -march=i486 -mtune=i686" export CXXFLAGS="-Os -pipe -fno-exceptions -fno-rtti -march=i486 -mtune=i686" export LDFLAGS="-Wl,-Os" # Unpack source in to WRK directory tar -xf $SRCNAM pushd $WRKDIR # Configure,Compile,Check,Install in base temp dir ./configure --prefix=/usr/local --enable-twinserial make make install DESTDIR=$TMPDIR # INSTALLATION # INS: udev rule install -m644 -D src/92_pcscd_ccid.rules $TMPDIR/usr/local/etc/udev/rules.d/92-pcscd_ccid.rules # docs install -dD $TMPDIR/usr/local/share/doc/$PACKAGE install -m644 SCARDGETATTRIB.txt ChangeLog INSTALL AUTHORS COPYING NEWS README $TMPDIR/usr/local/share/doc/$PACKAGE/ # tools install -sD contrib/RSA_SecurID/RSA_SecurID_getpasswd $TMPDIR/usr/local/bin/RSA_SecurID_getpasswd install -dD $TMPDIR/usr/local/share/man/man1 gzip -c contrib/RSA_SecurID/RSA_SecurID_getpasswd.1 >$TMPDIR/usr/local/share/man/man1/RSA_SecurID_getpasswd.1.gz install -sD contrib/Kobil_mIDentity_switch/Kobil_mIDentity_switch $TMPDIR/usr/local/sbin/Kobil_mIDentity_switch install -dD $TMPDIR/usr/local/share/man/man8 gzip -c contrib/Kobil_mIDentity_switch/Kobil_mIDentity_switch.8 >$TMPDIR/usr/local/share/man/man8/Kobil_mIDentity_switch.8.gz install -Dm644 contrib/Kobil_mIDentity_switch/README_Kobil_mIDentity_switch.txt $TMPDIR/usr/local/share/doc/$PACKAGE/README_Kobil_mIDentity_switch.txt install -m664 -D src/towitoko/COPYING $TMPDIR/usr/local/share/doc/$PACKAGE/COPYING-towitoko install -Dm644 src/towitoko/README $TMPDIR/usr/local/share/doc/$PACKAGE/README-towitoko install -Dm644 src/openct/LICENSE $TMPDIR/usr/local/share/doc/$PACKAGE/LICENSE-openct # Delete compilation work directory popd rm -r -f $WRKDIR # Adjust directory access rigths #find $TMPDIR/ -type d | xargs chmod -v 755; # Strip executables find $TMPDIR | xargs file | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded # tools install -dD $TMPDIR-tools/usr/local/bin mv $TMPDIR/usr/local/bin/RSA_SecurID_getpasswd $TMPDIR-tools/usr/local/bin/RSA_SecurID_getpasswd install -dD $TMPDIR-tools/usr/local/sbin mv $TMPDIR/usr/local/sbin/Kobil_mIDentity_switch $TMPDIR-tools/usr/local/sbin/Kobil_mIDentity_switch rmdir $TMPDIR/usr/local/bin $TMPDIR/usr/local/sbin install -dD $TMPDIR-tools/usr/local/etc/udev/rules.d mv $TMPDIR/usr/local/etc/udev/rules.d/92-pcscd_ccid.rules $TMPDIR-tools/usr/local/etc/udev/rules.d/92-pcscd_ccid.rules install -dD $TMPDIR-tools/usr/local/share mv $TMPDIR/usr/local/share/man $TMPDIR-tools/usr/local/share/ install -dD $TMPDIR-tools/usr/local/share/doc/$PACKAGE mv $TMPDIR/usr/local/share/doc/$PACKAGE/README_Kobil_mIDentity_switch.txt $TMPDIR-tools/usr/local/share/doc/$PACKAGE # Move files to doc extension install -dD $TMPDIR-doc/usr/local/share/doc mv $TMPDIR/usr/local/share/doc/$PACKAGE $TMPDIR-doc/usr/local/share/doc/ # wipe empty dirs rmdir --ignore-fail-on-non-empty -p $TMPDIR/usr/local/etc/udev/rules.d rmdir --ignore-fail-on-non-empty -p $TMPDIR/usr/local/share/doc ################################################### # Create base extension in temp dir # ################################################### mksquashfs $TMPDIR $OUTDIR/$EXTNAM.tcz -noappend -no-xattrs -all-root unsquashfs -li -ls -d 'root-dir' $OUTDIR/$EXTNAM.tcz | grep 'root-dir/' | grep -vE '^d' | awk '{print substr($6,9);}' >$OUTDIR/$EXTNAM.tcz.list mksquashfs $TMPDIR-doc $OUTDIR/$EXTNAM-doc.tcz -noappend -no-xattrs -all-root unsquashfs -li -ls -d 'root-dir' $OUTDIR/$EXTNAM-doc.tcz | grep 'root-dir/' | grep -vE '^d' | awk '{print substr($6,9);}' >$OUTDIR/$EXTNAM-doc.tcz.list mksquashfs $TMPDIR-tools $OUTDIR/$EXTNAM-tools.tcz -noappend -no-xattrs -all-root unsquashfs -li -ls -d 'root-dir' $OUTDIR/$EXTNAM-tools.tcz | grep 'root-dir/' | grep -vE '^d' | awk '{print substr($6,9);}' >$OUTDIR/$EXTNAM-tools.tcz.list pushd $OUTDIR md5sum $EXTNAM.tcz > $EXTNAM.tcz.md5.txt md5sum $EXTNAM-doc.tcz > $EXTNAM-doc.tcz.md5.txt md5sum $EXTNAM-tools.tcz > $EXTNAM-tools.tcz.md5.txt popd rm -rf $TMPDIR rm -rf $TMPDIR-doc rm -rf $TMPDIR-tools ################################################### # Update info/tree/dep ################################################### size() { local MIN=$[9*1024/10] # 799 and less local MAX=100 # 3.5 and less local PWR=1 local V=$1 local M="" for F in "" "K" "M" "G"; do M=$F V1=$[($1*10)/$PWR] R=$[$V1%10] V=$[$V1/10] [ $V1 -le $MAX ] && { [ $R -ne 0 ] && V="$V.$R"; break; } [ $V -lt $MIN ] && break; PWR=$[$PWR*1024] done echo "$V$M" } cp $EXTNAM.tcz.build-dep $OUTDIR/ for INFO in *.tcz.info; do TCZ=${INFO%%.info} LEN=$(stat -c%s $OUTDIR/$TCZ) SIZE=$(size $LEN) sed -re "s/\{SIZE\}/$SIZE/g" -e "s/\{TITLE\}/$TCZ/g" -e "s/\{VERSION\}/$VERSION/g" <$INFO >$OUTDIR/$INFO if [ -f $TCZ.tree ]; then cp $TCZ.tree $OUTDIR/$TCZ.tree cat $TCZ.tree | grep -wv "$TCZ" | sed -re 's/^[ \t]+//' | sort | uniq > $OUTDIR/$TCZ.dep fi done pushd $OUTDIR submitqc --libs --tcz=$EXTNAM.tcz submitqc --libs --tcz=$EXTNAM-doc.tcz submitqc --libs --tcz=$EXTNAM-tools.tcz popd