#!/bin/sh # ###################################################### # Build script for Core 8.2 # # # # See .info for details # ###################################################### # Install Compile tools: tce-load -wi compiletc.tcz tce-load -wi squashfs-tools.tcz # Install compile dependencies: tce-load -wi ipv6-KERNEL tce-load -wi readline-dev tce-load -wi perl5.tcz tce-load -wi libcares-dev.tcz ###################################################### # Configure extension creation parameters # ###################################################### VERSION=1.2.2 SRCNAM=quagga-${VERSION}.tar.gz WRKDIR=quagga-${VERSION} export EXTNAM=quagga TMPDIR=/tmp/quagga TODAY=`date +%Y/%m/%d` DESCRIPTION="Quagga Routing Software Suite" DOCDESCRIPTION="Documentation part of the Quagga routing software suite" DEVDESCRIPTION="Development files part of the Quagga routing software suite" AUTHORS="See Original-site" HOMEPAGE="http://www.quagga.net" LICENSE="GPL" ME="rhermsen" TAGS="quagga zebra routing" DOCTAGS="man pages quagga zebra routing" DEVTAGS="development quagga zebra routing" ###################################################### # Prepare extension creation # ###################################################### # Remove dirs and files left from previous creation rm -r -f $WRKDIR 2>/dev/null sudo rm -r -f $TMPDIR 2>/dev/null sudo rm -r -f $TMPDIR-doc 2>/dev/null ###################################################### # Compile extension # ###################################################### # Export variables needed for compilation export CFLAGS="-O2 -pipe -march=i486 -mtune=i686" export CXXFLAGS="-O2 -pipe -fno-exceptions -fno-rtti -march=i486 -mtune=i686" #export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/lib/pkgconfig # Download source to current directory wget http://download.savannah.gnu.org/releases/${EXTNAM}/${EXTNAM}-${VERSION}.tar.gz # Unpack source in current directory tar -xf $SRCNAM # Configure it cd $WRKDIR ./configure --prefix=/usr/local \ --sysconfdir=/usr/local/etc/quagga \ --localstatedir=/var/quagga \ --enable-user=tc \ --enable-group=staff \ --enable-vty-group=staff \ --enable-isis-topology # Compile make mkdir -p /tmp/qua/package make DESTDIR=/tmp/qua/package install # Install in base temp dir mkdir -p $TMPDIR/usr/local/bin mkdir -p $TMPDIR/usr/local/sbin mkdir -p $TMPDIR/usr/local/lib mkdir -p $TMPDIR/usr/local/etc/quagga #mkdir -p $TMPDIR/usr/local/var/quagga mkdir -p $TMPDIR//usr/local/etc/init.d mkdir -p $TMPDIR/usr/local/tce.installed mv /tmp/qua/package/usr/local/bin/* $TMPDIR/usr/local/bin mv /tmp/qua/package/usr/local/etc/quagga/* $TMPDIR/usr/local/etc/quagga mv /tmp/qua/package/usr/local/lib/lib*so* $TMPDIR/usr/local/lib mv /tmp/qua/package/usr/local/sbin/* $TMPDIR/usr/local/sbin cp /mnt/vda1/tce/quagga.init $TMPDIR/usr/local/etc/init.d/quagga ################################################### # Create info file # ################################################### cat < /tmp/qua/${EXTNAM}.tcz.info Title: ${EXTNAM}.tcz Description: ${DESCRIPTION} Version: ${VERSION} Author: ${AUTHORS} Original-site: ${HOMEPAGE} Copying-policy: ${LICENSE} Size: ${size} Extension_by: ${ME} Tags: ${TAGS} Comments: Quagga is a routing software suite, providing implementations of OSPFv2, OSPFv3, RIP v1 and v2, RIPng and BGP-4 for Unix platforms, particularly FreeBSD, Linux, Solaris and NetBSD. Quagga is a fork of GNU Zebra which was developed by Kunihiro Ishiguro. The IPv6 kernel modules are not automatically installed. If IPv6 is desired, install ipv6-4.8.17-tinycore.tcz via the Apps GUI, or cli (tce-load -wi ipv6-KERNEL). Change-log: 2009/11/11 First version (0.99.15, size 1.0M, Joan Batet) 2018/01/17, 1.2.2 (rhermsen) ${TODAY}, ${VERSION}, no ipv6 dependency (rhermsen) Current: ${TODAY}, ${VERSION} (rhermsen) EOF ################################################### # Create .dep file # ################################################### cat < /tmp/qua/${EXTNAM}.tcz.dep readline.tcz libcares.tcz EOF ################################################### # Create install script file # ################################################### cat < $TMPDIR/usr/local/tce.installed/${EXTNAM} sudo -u tc mkdir /var/quagga EOF # Delete compilation work directory cd .. #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 # Move files to doc extension mkdir -p $TMPDIR-doc/usr/local/share/man/man1 mkdir -p $TMPDIR-doc/usr/local/share/man/man8 mkdir -p $TMPDIR-doc/usr/local/share/info mv /tmp/qua/package/usr/local/share/man/man1/* $TMPDIR-doc/usr/local/share/man/man1 mv /tmp/qua/package/usr/local/share/man/man8/* $TMPDIR-doc/usr/local/share/man/man8 mv /tmp/qua/package/usr/local/share/info/* $TMPDIR-doc/usr/local/share/info ################################################### # Create info file # ################################################### cat < /tmp/qua/${EXTNAM}-doc.tcz.info Title: ${EXTNAM}-doc.tcz Description: ${DOCDESCRIPTION} Version: ${VERSION} Author: ${AUTHORS} Original-site: ${HOMEPAGE} Copying-policy: ${LICENSE} Size: ${size} Extension_by: ${ME} Tags: ${DOCTAGS} Comments: Quagga is a routing software suite, providing implementations of OSPFv2, OSPFv3, RIP v1 and v2, RIPng and BGP-4 for Unix platforms, particularly FreeBSD, Linux, Solaris and NetBSD. Quagga is a fork of GNU Zebra which was developed by Kunihiro Ishiguro. Change-log: 2009/11/11 First version (0.99.15, size 1.0M, Joan Batet) ${TODAY}, ${VERSION} (rhermsen) Current: ${TODAY}, ${VERSION} (rhermsen) EOF mkdir -p $TMPDIR-dev/usr/local/lib mkdir -p $TMPDIR-dev/usr/local/include/quagga mv /tmp/qua/package/usr/local/lib/lib*a* $TMPDIR-dev/usr/local/lib mv /tmp/qua/package/usr/local/include/quagga/* $TMPDIR-dev/usr/local/include/quagga/ ################################################### # Create info file # ################################################### cat < /tmp/qua/${EXTNAM}-dev.tcz.info Title: ${EXTNAM}-dev.tcz Description: ${DEVDESCRIPTION} Version: ${VERSION} Author: ${AUTHORS} Original-site: ${HOMEPAGE} Copying-policy: ${LICENSE} Size: ${size} Extension_by: ${ME} Tags: ${DEVTAGS} Comments: Quagga is a routing software suite, providing implementations of OSPFv2, OSPFv3, RIP v1 and v2, RIPng and BGP-4 for Unix platforms, particularly FreeBSD, Linux, Solaris and NetBSD. Quagga is a fork of GNU Zebra which was developed by Kunihiro Ishiguro. Change-log: 2009/11/11 First version (0.99.15, size 1.0M, Joan Batet) 2018/01/17, 1.2.2 (rhermsen) ${TODAY}, ${VERSION}, add include files (rhermsen) Current: ${TODAY}, ${VERSION} (rhermsen) EOF ################################################### # Create .dep file # ################################################### cat < /tmp/qua/${EXTNAM}-dev.tcz.dep ipv6-KERNEL.tcz quagga.tcz readline-dev.tcz libcares-dev.tcz EOF ################################################### # Create base extension in temp dir # ################################################### cd $TMPDIR find $TMPDIR -perm 777 -exec chmod 755 {} \; find $TMPDIR -perm 555 -exec chmod 755 {} \; find $TMPDIR -perm 444 -exec chmod 644 {} \; find $TMPDIR -perm 666 -exec chmod 644 {} \; find $TMPDIR -perm 664 -exec chmod 644 {} \; sudo chown -R root:root $TMPDIR sudo chown -R root:staff $TMPDIR/usr/local/tce.installed sudo chmod -R 775 $TMPDIR/usr/local/tce.installed sudo chmod -R 775 $TMPDIR/usr/local/etc/init.d/quagga #sudo chown tc:staff $TMPDIR/usr/local/var/quagga sudo chown tc:staff $TMPDIR/usr/local/etc/quagga sudo chown tc:staff $TMPDIR/usr/local/etc/init.d/quagga cd .. mksquashfs $TMPDIR $EXTNAM.tcz cd $TMPDIR sudo sh -c "find usr -not -type d > $EXTNAM.tcz.list" sudo mv ../$EXTNAM.tcz . sudo mv /tmp/qua/$EXTNAM.tcz.info . sudo mv /tmp/qua/$EXTNAM.tcz.dep . # Create md5 file sudo sh -c "md5sum $EXTNAM.tcz > $EXTNAM.tcz.md5.txt" # Cleanup temp directory sudo rm -r -f usr ################################################### # Create doc extension in temp dir # ################################################### cd $TMPDIR-doc find $TMPDIR-doc -perm 777 -exec chmod 755 {} \; find $TMPDIR-doc -perm 555 -exec chmod 755 {} \; find $TMPDIR-doc -perm 444 -exec chmod 644 {} \; find $TMPDIR-doc -perm 666 -exec chmod 644 {} \; find $TMPDIR-doc -perm 664 -exec chmod 644 {} \; sudo chown -R root:root $TMPDIR-doc cd .. mksquashfs $TMPDIR-doc $EXTNAM-doc.tcz cd $TMPDIR-doc sudo sh -c "find usr -not -type d > $EXTNAM-doc.tcz.list" sudo mv ../$EXTNAM-doc.tcz . sudo mv /tmp/qua/$EXTNAM-doc.tcz.info . # Create md5 file sudo sh -c "md5sum $EXTNAM-doc.tcz > $EXTNAM-doc.tcz.md5.txt" # Cleanup temp directory sudo rm -r -f usr ################################################### # Create dev extension in temp dir # ################################################### cd $TMPDIR-dev find $TMPDIR-dev -perm 777 -exec chmod 755 {} \; find $TMPDIR-dev -perm 555 -exec chmod 755 {} \; find $TMPDIR-dev -perm 444 -exec chmod 644 {} \; find $TMPDIR-dev -perm 666 -exec chmod 644 {} \; find $TMPDIR-dev -perm 664 -exec chmod 644 {} \; sudo chown -R root:root $TMPDIR-dev cd .. mksquashfs $TMPDIR-dev $EXTNAM-dev.tcz cd $TMPDIR-dev sudo sh -c "find usr -not -type d > $EXTNAM-dev.tcz.list" sudo mv ../$EXTNAM-dev.tcz . sudo mv /tmp/qua/$EXTNAM-dev.tcz.info . sudo mv /tmp/qua/$EXTNAM-dev.tcz.dep . # Create md5 file sudo sh -c "md5sum $EXTNAM-dev.tcz > $EXTNAM-dev.tcz.md5.txt" # Cleanup temp directory sudo rm -r -f usr