#!/bin/bash # # got it from ftp://ftp.slackware.com/pub/slackware/slackware-10.2/patches/source/bin/bin.SlackBuild # small changes by rhatto # # Set initial variables: CWD="`pwd`" if [ -f ~/.slackbuildrc ]; then source ~/.slackbuildrc elif [ -f /etc/slackbuildrc ]; then source /etc/slackbuildrc fi PACKAGE="bin" VERSION=10.2 ARCH=${ARCH:=i486} BUILD="1rha" SRC_DIR=${SRC:=$CWD} TMP=${TMP:=/tmp} REPOS=${REPOS:=$TMP} DUTILS=2.7 DOSFS=2.10 WHICH=2.16 EJECT=2.1.4 FILE=4.15 TMP="$TMP/$PACKAGE" PKG=$TMP/package-bin rm -rf $PKG mkdir -p $PKG SRC_DIR="$SRC_DIR/$PACKAGE" mkdir -p $SRC_DIR # REPO="ftp://ftp.slackware.com/pub/slackware/slackware-10.2/patches/source/bin" REPO="ftp://mirror.pacific.net.au/linux/slackware/slackware-10.2/patches/source/bin" if [ "$GET" != "no" ]; then ( cd $SRC_DIR && ncftpget $REPO/*gz ) ; fi if [ "$ARCH" == "x86_64" ]; then LIB="lib64" else LIB="lib" fi # Explode the package framework: cd $PKG explodepkg $SRC_DIR/_bin.tar.gz echo "+=============+" echo "| debianutils |" echo "+=============+" cd $TMP tar xzvf $SRC_DIR/debianutils_$DUTILS.tar.gz cd debianutils-$DUTILS chown -R root.root . ./configure --prefix=/usr make || exit 32 ## We actually use our own very simple run-parts script instead... #cat run-parts > $PKG/usr/bin/run-parts #cat run-parts.8 | gzip -9c > $PKG/usr/man/man8/run-parts.8.gz cat mktemp > $PKG/usr/bin/mktemp cat mktemp.1 | gzip -9c > $PKG/usr/man/man1/mktemp.1.gz cat savelog > $PKG/usr/bin/savelog cat savelog.8 | gzip -9c > $PKG/usr/man/man8/savelog.8.gz cat tempfile > $PKG/usr/bin/tempfile cat tempfile.1 | gzip -9c > $PKG/usr/man/man1/tempfile.1.gz echo "+=======+" echo "| eject |" echo "+=======+" cd $TMP rm -rf eject tar xzvf $SRC_DIR/eject-$EJECT.tar.gz cd eject chown -R root:root . if [ "$ARCH" == "x86_64" ]; then zcat $CWD/eject-x86_64.diff.gz | patch -p1 --verbose fi CFLAGS= ./configure --prefix=/usr make || exit 32 cat eject > $PKG/usr/bin/eject cat eject.1 | gzip -9c > $PKG/usr/man/man1/eject.1.gz cat volname > $PKG/usr/bin/volname cat volname.1 | gzip -9c > $PKG/usr/man/man1/volname.1.gz mkdir -p $PKG/usr/doc/eject-$EJECT cp -a AUTHORS COPYING NEWS PORTING PROBLEMS README TODO eject-$EJECT.lsm \ $PKG/usr/doc/eject-$EJECT chmod 644 $PKG/usr/doc/eject-$EJECT/* echo "+===========+" echo "| fbset-2.1 |" echo "+===========+" cd $TMP tar xzvf $SRC_DIR/fbset-2.1.tar.gz cd fbset-2.1 chown -R root.root . make || exit 32 mkdir -p $PKG/usr/sbin cat fbset > $PKG/usr/sbin/fbset chmod 755 $PKG/usr/sbin/fbset mkdir -p $PKG/etc cat etc/fb.modes.ATI > $PKG/etc/fb.modes mkdir -p $PKG/usr/man/man5 cat fb.modes.5 | gzip -9c > $PKG/usr/man/man5/fb.modes.5.gz mkdir -p $PKG/usr/man/man8 cat fbset.8 | gzip -9c > $PKG/usr/man/man8/fbset.8.gz echo "+===========+" echo "| lha-1.14i |" echo "+===========+" cd $TMP tar xzvf $SRC_DIR/lha-114i.tar.gz cd lha-114i zcat $SRC_DIR/lha-114i-sec.patch.gz | patch -p1 --verbose zcat $SRC_DIR/lha-114i-symlink.patch.gz | patch -p1 --verbose chown -R root.root . make || exit 32 cat src/lha > $PKG/usr/bin/lha echo "+========+" echo "| ed-0.2 |" echo "+========+" cd $TMP tar xzvf $SRC_DIR/ed-0.2.tar.gz cd ed-0.2 chown -R root.root . zcat $SRC_DIR/ed-0.2.mkstemp.diff.gz | patch -p1 -E --backup --verbose CFLAGS=-O2 \ ./configure \ --prefix=/usr \ $ARCH-slackware-linux make || exit 32 cat ed > $PKG/bin/ed cat ed.1 | gzip -9c > $PKG/usr/man/man1/ed.1.gz cat ed.info | gzip -9c > $PKG/usr/info/ed.info.gz echo "+==========+" echo "| compress |" echo "+==========+" cd $TMP tar xzvf $SRC_DIR/compress.tar.gz cd compress chown -R root.root . zcat $SRC_DIR/compress.diff.gz | patch -p0 -E --backup --verbose if [ "$ARCH" == "x86_64" ]; then echo 450000 > USERMEM # the default from the source file fi make || exit 32 cat compress > $PKG/usr/bin/compress cat compress.1 | gzip -9c > $PKG/usr/man/man1/compress.1.gz echo '.so man1/compress.1' | gzip -9c > $PKG/usr/man/man1/uncompress.1.gz echo "+=========+" echo "| banners |" echo "+=========+" cd $TMP tar xzvf $SRC_DIR/banners.tar.gz cd banners chown -R root.root . make || exit 32 cat bban > $PKG/usr/bin/bban cat sysvbanner > $PKG/usr/bin/sysvbanner echo "+===========+" echo "| file-$FILE |" echo "+===========+" cd $TMP tar xzvf $SRC_DIR/file-$FILE.tar.gz cd file-$FILE chown -R root.root . zcat $SRC_DIR/file.quiet.diff.gz | patch -p1 -E --verbose zcat $SRC_DIR/file.short.diff.gz | patch -p1 -E --verbose zcat $SRC_DIR/file.rzip.magic.gz >> magic/Magdir/compress zcat $SRC_DIR/file.zisofs.magic.gz >> magic/Magdir/compress ./configure \ --prefix=/usr \ --libdir=/usr/$LIB \ --sysconfdir=/etc \ --datadir=/etc \ --enable-fsect-man5 \ --enable-shared=no \ $ARCH-slackware-linux make || exit 32 make install DESTDIR=$PKG # Is file really this much of a processing bottleneck? Doubtful. rm -f $PKG/etc/file/magic.mgc $PKG/etc/file/magic.mime.mgc strip -g $PKG/usr/$LIB/libmagic.a mkdir -p $PKG/usr/doc/file-$FILE cp -a \ LEGAL.NOTICE README \ $PKG/usr/doc/file-$FILE chmod 644 $PKG/usr/doc/file-$FILE/* gzip -9 $PKG/usr/man/man1/file.1 \ $PKG/usr/man/man3/libmagic.3 \ $PKG/usr/man/man5/magic.5 # /etc/magic has been traditional for so long that it seems like a # real good idea to provide a link: ( cd $PKG/etc ln -sf file/magic magic ) echo "+============+" echo "| dosfstools |" echo "+============+" cd $TMP tar xzvf $SRC_DIR/dosfstools-$DOSFS.tar.gz cd dosfstools-$DOSFS if [ "$ARCH" == "x86_64" ]; then zcat $CWD/dosfstools-x86_64.diff.gz | patch -p1 --verbose; fi chown -R root.root . mkdir -p $PKG/usr/doc/dosfstools-$DOSFS cp -a CHANGES README.Atari TODO $PKG/usr/doc/dosfstools-$DOSFS mkdir -p $PKG/usr/doc/dosfstools-$DOSFS/mkdosfs ( cd mkdosfs ; cp -a ANNOUNCE COPYING ChangeLog README mkdosfs-ygg-0.3b.lsm $PKG/usr/doc/dosfstools-$DOSFS/mkdosfs ) mkdir -p $PKG/usr/doc/dosfstools-$DOSFS/dosfsck ( cd dosfsck ; cp -a CHANGES COPYING README $PKG/usr/doc/dosfstools-$DOSFS/dosfsck ) make || exit 32 cd mkdosfs cat mkdosfs > $PKG/sbin/mkdosfs cat mkdosfs.8 | gzip -9c > $PKG/usr/man/man8/mkdosfs.8.gz cd ../dosfsck cat dosfsck > $PKG/sbin/dosfsck cat dosfsck.8 | gzip -9c > $PKG/usr/man/man8/dosfsck.8.gz echo "+=============+" echo "| patch-2.5.4 |" echo "+=============+" cd $TMP tar xzvf $SRC_DIR/patch-2.5.4.tar.gz cd patch-2.5.4 chown -R root.root . mkdir -p $PKG/usr/doc/patch-2.5.4 cp -a AUTHORS COPYING INSTALL NEWS README $PKG/usr/doc/patch-2.5.4 chmod 644 $PKG/usr/doc/patch-2.5.4/* ./configure \ --prefix=/usr \ $ARCH-slackware-linux make CFLAGS=-O2 cat patch > $PKG/usr/bin/patch cat patch.man | gzip -9c > $PKG/usr/man/man1/patch.1.gz echo "+===========+" echo "| rpm2targz |" echo "+===========+" cd $TMP cc -o rpmoffset $CWD/rpmoffset.c cat rpmoffset > $PKG/usr/bin/rpmoffset rm rpmoffset cat $CWD/rpm2targz > $PKG/usr/bin/rpm2targz mkdir -p $PKG/usr/doc/rpm2targz cp -a $CWD/rpm2targz.README $PKG/usr/doc/rpm2targz/rpm2targz.README chmod 644 $PKG/usr/doc/rpm2targz/rpm2targz.README echo "+===========+" echo "| run-parts |" echo "+===========+" zcat $SRC_DIR/run-parts.gz > $PKG/usr/bin/run-parts chmod 755 $PKG/usr/bin/run-parts cat $SRC_DIR/run-parts.8.gz > $PKG/usr/man/man8/run-parts.8.gz echo "+=================+" echo "| sharutils-4.2.1 |" echo "+=================+" cd $TMP tar xzvf $SRC_DIR/sharutils-4.2.1.tar.gz cd sharutils-4.2.1 chown -R root.root . mkdir -p $PKG/usr/doc/sharutils-4.2.1 cp -a ABOUT-NLS AUTHORS BACKLOG COPYING INSTALL NEWS README \ README.OLD THANKS TODO $PKG/usr/doc/sharutils-4.2.1 chmod 644 $PKG/usr/doc/sharutils-4.2.1/* # For now, NLS seems to cause build errors on this one... CFLAGS=-O2 \ ./configure \ --disable-nls \ --prefix=/usr \ $ARCH-slackware-linux make || exit 32 cd src cat shar > $PKG/usr/bin/shar cat unshar > $PKG/usr/bin/unshar cat uuencode > $PKG/usr/bin/uuencode cat uudecode > $PKG/usr/bin/uudecode cd ../doc cat sharutils.info | gzip -9c > $PKG/usr/info/sharutils.info.gz # Include old manpages, since the source package doesn't have them anymore: for page in shar.1.gz unshar.1.gz uuencode.1.gz ; do cat $SRC_DIR/$page > $PKG/usr/man/man1/$page done echo '.so man1/uuencode.1' | gzip -9c > $PKG/usr/man/man1/uudecode.1.gz cat $SRC_DIR/uuencode.5.gz > $PKG/usr/man/man5/uuencode.5.gz echo "+===============+" echo "| splitvt-1.6.5 |" echo "+===============+" cd $TMP rm -rf splitvt-1.6.5 tar xzvf $SRC_DIR/splitvt-1.6.5.tar.gz cd splitvt-1.6.5 zcat $SRC_DIR/splitvt.devpts.diff.gz | patch -p1 --verbose chown -R root.root . ./configure make || exit 32 cat splitvt > $PKG/usr/bin/splitvt cat splitvt.1 | gzip -9c > $PKG/usr/man/man1/splitvt.1.gz mkdir -p $PKG/usr/doc/splitvt-1.6.5 cp -a examples ANNOUNCE CHANGES NOTES README TODO \ $PKG/usr/doc/splitvt-1.6.5 ( cd $PKG/usr/doc/splitvt-1.6.5 find . -type d | xargs chmod 755 find . -type f | xargs chmod 644 ) echo "+==========+" echo "| time-1.7 |" echo "+==========+" cd $TMP tar xvzf $SRC_DIR/time-1.7.tar.gz cd time-1.7 chown -R root.root . ./configure \ --prefix=/usr \ $ARCH-slackware-linux make CFLAGS=-O2 cat time > $PKG/usr/bin/time cat time.info | gzip -9c > $PKG/usr/info/time.info.gz echo "+===============+" echo "| todos/fromdos |" echo "+===============+" cd $TMP tar xzvf $SRC_DIR/todos.tar.gz cd todos chown -R root.root . make || exit 32 cat todos > $PKG/usr/bin/todos cat fromdos > $PKG/usr/bin/fromdos cat todos.1.gz > $PKG/usr/man/man1/todos.1.gz cat fromdos.1.gz > $PKG/usr/man/man1/fromdos.1.gz echo "+============+" echo "| tree-1.4b3 |" echo "+============+" cd $TMP tar xzvf $SRC_DIR/tree-1.4b3.tar.gz cd tree-1.4 if [ "$ARCH" == "x86_64" ]; then zcat $CWD/tree-x86_64.diff.gz | patch -p1 --verbose; fi chown -R root.root . make clean make || exit 32 cat tree > $PKG/usr/bin/tree chmod 755 $PKG/usr/bin/tree cat tree.1 | gzip -9c > $PKG/usr/man/man1/tree.1.gz mkdir -p $PKG/usr/doc/tree-1.4b3 cp -a CHANGES LICENSE README README.sacl $PKG/usr/doc/tree-1.4b3 chmod 644 $PKG/usr/doc/tree-1.4b3/* echo "+==========+" echo "| unarj230 |" echo "+==========+" cd $TMP tar xzvf $SRC_DIR/unarj230.tar.gz cd unarj230 chown -R root.root . zcat $SRC_DIR/unarj230.diff.gz | patch -p0 -E --verbose --backup make || exit 32 cat unarj > $PKG/usr/bin/unarj echo "+============+" echo "| which-$WHICH |" echo "+============+" cd $TMP tar xzvf $SRC_DIR/which-$WHICH.tar.gz cd which-$WHICH chown -R root.root . ./configure --prefix=/usr make CFLAGS=-O2 cat which > $PKG/bin/which cat which.1 | gzip -9c > $PKG/usr/man/man1/which.1.gz cat which.info | gzip -9c > $PKG/usr/info/which.info.gz mkdir -p $PKG/usr/doc/which-$WHICH cp -a AUTHORS COPYING EXAMPLES INSTALL NEWS README README.alias $PKG/usr/doc/which-$WHICH echo "+==========+" echo "| zoo-2.10 |" echo "+==========+" cd $TMP rm -rf zoo-2.10 tar xzvf $SRC_DIR/zoo-2.10.tar.gz cd zoo-2.10 chown -R root:root . zcat $SRC_DIR/zoo_2.10-17.diff.gz | patch -p1 -E --verbose --backup || exit 1 for diff in debian/patches/*.dpatch ; do cat $diff | patch -p1 --verbose || exit 1 done if [ "$ARCH" == "x86_64" ]; then zcat $CWD/zoo-x86_64.diff.gz | patch -p1 --verbose; fi make linux cat fiz > $PKG/usr/bin/fiz cat zoo > $PKG/usr/bin/zoo for page in fiz.1 zoo.1 ; do cat $page | gzip -9c > $PKG/usr/man/man1/$page.gz done # Add a very handy tool for scanning new SCSI devices. Most useful for # finding new USB and Firewire storage devices which show up as SCSI. cp -a $CWD/rescan-scsi-bus $PKG/sbin/rescan-scsi-bus chmod 755 $PKG/sbin/rescan-scsi-bus # Strip everything for good measure: ( cd $PKG find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null ) chown -R root.bin $PKG/bin $PKG/usr/bin $PKG/sbin $PKG/usr/sbin mkdir -p $PKG/install cat $CWD/slack-desc > $PKG/install/slack-desc # Build the package: cd $PKG makepkg -l y -c n $REPOS/bin-$VERSION-$ARCH-$BUILD.tgz # Clean up the extra stuff: if [ "$CLEANUP" == "yes" ]; then rm -rf $TMP fi