#!/bin/bash # e2fsprogs.SlackBuild # by Stuart Winter for the Slackware porting Project. # Heavily based on the original Slackware build script. # 31-May-2004 # Record toolchain & other info for the build log: slackbuildinfo # Paths to skeleton port's source & real Slackware source tree: export CWD=$SLACKSOURCE/$PKGSERIES/$PACKAGE export PORTCWD=$PWD # Temporary build locations: export TMPBUILD=$TMP/build-$PACKAGE export PKG=$TMP/package-$PACKAGE mkpkgdirs # Delete and re-create temporary directories # Determine the CFLAGS for the known architectures: case $PORTARCH in arm) SLKCFLAGS="-march=armv3 -mtune=xscale" ;; powerpc) SLKCFLAGS="" ;; sparc) SLKCFLAGS="" ;; *) SLKCFLAGS="" ;; esac # Untar source: tar jxvvf $CWD/$PACKAGE-$VERSION.tar.bz2 cd $PACKAGE-$VERSION slackhousekeeping # Configure: CFLAGS="-O2 $SLKCFLAGS" \ ./configure \ --prefix= \ --enable-elf-shlibs \ --enable-dynamic-e2fsck \ $ARCH-slackware-linux || failconfig # Build: make || failmake # Install into package: make install DESTDIR=$PKG || failinstall make install-libs DESTDIR=$PKG || failinstall # Fix up package: ( cd $PKG # Move pkgconfig stuff into place: mkdir -p usr/lib mv lib/pkgconfig usr/lib # Some of these are either junk or hardlinks: rm -f man/man1/compile_et.1 man/man3/uuid_generate_random.3 man/man3/uuid_generate_time.3 man/man8/fsck.ext2.8 man/man8/fsck.ext3.8 man/man8/mkfs.ext2.8 man/man8/mkfs.ext3.8 gzip -9 man/man?/* ( cd man/man3 ln -sf uuid_generate.3.gz uuid_generate_random.3.gz ln -sf uuid_generate.3.gz uuid_generate_time.3.gz ) ( cd man/man8 ln -sf e2fsck.8.gz fsck.ext2.8.gz ln -sf e2fsck.8.gz fsck.ext3.8.gz ln -sf mke2fs.8.gz mkfs.ext2.8.gz ln -sf mke2fs.8.gz mkfs.ext3.8.gz ) mkdir usr mv bin include info man usr mkdir usr/lib mv lib/*.so lib/*.a usr/lib ) # Make symlinks: rm -r $PKG/share ( cd $PKG/sbin rm -f mkfs.ext2 mkfs.ext3 fsck.ext2 fsck.ext3 e2label findfs ln -sf mke2fs mkfs.ext2 ln -sf mke2fs mkfs.ext3 ln -sf tune2fs e2label ln -sf tune2fs findfs # fsck wrapper scripts: cat << EOF > fsck.ext2 #!/bin/sh exec /sbin/e2fsck -C 0 \$* EOF cat << EOF > fsck.ext3 #!/bin/sh exec /sbin/e2fsck -C 0 \$* EOF chmod 755 fsck.ext2 fsck.ext3 ) # Install docs: mkdir -p $PKG/usr/doc/$PACKAGE-$VERSION cp -a COPYING INSTALL INSTALL.elfbin README RELEASE-NOTES SHLIBS \ $PKG/usr/doc/$PACKAGE-$VERSION # Create a doinst.sh script: mkdir -p $PKG/install cat << EOF > $PKG/install/doinst.sh if [ -x /usr/bin/install-info ]; then install-info --info-dir=/usr/info /usr/info/libext2fs.info.gz 2> /dev/null fi EOF # If necessary, start the fakeroot server so we can set file/dir ownerships: start_fakeroot # Apply generic Slackware packaging policies: cd $PKG slackstripall # strip all .a archives and all ELFs slackgzpages -i # compress man & info pages and delete usr/info/dir slackslack # chown -R root:root, chmod -R og-w, slackchown (root:bin), slack644docs slackdesc # install slack-desc and doinst.sh # Build the package: if [ $PORTARCH = arm ]; then slackmp # run makepkg else makepkg -l y -c n $PKGSTORE/$PKGSERIES/$PACKAGE-$VERSION-$ARCH-$BUILD.tgz fi # Perform any final checks on the package: cd $PKG slackhlinks # search for any hard links