#!/bin/sh # Slackware build script for nchexedit # Written by B. Watson (yalhcru@gmail.com) # Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details. # There's already a 'hexedit' on SBo (a completely different program). # This one's full name is "[N] Curses Hexedit" so I'm packaging it # as nchexedit. # We're using most of Debian's patches, the _5 in VERSION is their # patchlevel. PRGNAM=nchexedit VERSION=${VERSION:-0.9.7_5} BUILD=${BUILD:-2} TAG=${TAG:-_SBo} SRCNAM=hexedit SRCVER="$( echo $VERSION | cut -d_ -f1 )" DEBNAME="ncurses-$SRCNAM" DEBVER="$( echo $VERSION | cut -d_ -f2 )" if [ -z "$ARCH" ]; then case "$( uname -m )" in i?86) ARCH=i586 ;; arm*) ARCH=arm ;; *) ARCH=$( uname -m ) ;; esac fi CWD=$(pwd) TMP=${TMP:-/tmp/SBo} PKG=$TMP/package-$PRGNAM OUTPUT=${OUTPUT:-/tmp} if [ "$ARCH" = "i586" ]; then SLKCFLAGS="-O2 -march=i586 -mtune=i686" LIBDIRSUFFIX="" elif [ "$ARCH" = "i686" ]; then SLKCFLAGS="-O2 -march=i686 -mtune=i686" LIBDIRSUFFIX="" elif [ "$ARCH" = "x86_64" ]; then SLKCFLAGS="-O2 -fPIC" LIBDIRSUFFIX="64" else SLKCFLAGS="-O2" LIBDIRSUFFIX="" fi set -e rm -rf $PKG mkdir -p $TMP $PKG $OUTPUT cd $TMP rm -rf $SRCNAM-$SRCVER tar xvf $CWD/$SRCNAM-$SRCVER.tar.gz cd $SRCNAM-$SRCVER # Include most of Debian's patches. They rename the binary to 'hexeditor' # so we leave out the patches related to that, and a couple others that # are unnecessary. The ones we apply are bugfixes, a couple of which are # crucial (search command didn't work on 64-bit, buffer overruns, segfault # if the terminal's too small), and the rest are valid but nitpicky. tar xvf $CWD/${DEBNAME}_${SRCVER}+orig-${DEBVER}.debian.tar.xz rm -f debian/patches/fix_hexedit_references.patch \ debian/patches/hexedit_lsm.patch \ debian/patches/hurd_path_max.patch \ debian/patches/info_dir_section.patch \ debian/patches/rename_binaries.patch \ debian/patches/autoconf_2.69.patch \ debian/patches/fix_its_typo.patch chown -R root:root . find -L . -perm /111 -a \! -perm 755 -a -exec chmod 755 {} \+ -o \ \! -perm /111 -a \! -perm 644 -a -exec chmod 644 {} \+ # Apply the patches we didn't rm. for i in $( cat debian/patches/series ); do P=debian/patches/$i [ -e $P ] && patch -p1 < $P done # Reworked version of Debian patch. patch -p1 < $CWD/fix_its_typo.patch # --program-prefix doesn't change the contents of the man page sed -i \ -e 's/hexedit/nchexedit/g' \ -e 's/Hexedit/NCHexedit/g' \ -e 's/HEXEDIT/NCHEXEDIT/g' \ -e '/utexas\.edu/s#{http[^}]*}#{http://www.rogoyski.com/adam/programs/hexedit/}#' \ docs/$SRCNAM.1 # ...nor the info file. sed -i \ -e 's/hexedit/nchexedit/g' \ -e '/utexas\.edu/s#{http[^}]*}#{http://www.rogoyski.com/adam/programs/hexedit/}#' \ docs/$SRCNAM.texinfo CFLAGS="$SLKCFLAGS" \ CXXFLAGS="$SLKCFLAGS" \ ./configure \ --program-prefix=nc \ --prefix=/usr \ --libdir=/usr/lib${LIBDIRSUFFIX} \ --sysconfdir=/etc \ --localstatedir=/var \ --mandir=/usr/man \ --build=$ARCH-slackware-linux make make install-strip DESTDIR=$PKG gzip -9 $PKG/usr/man/man1/$PRGNAM.1 # info file fails to install with --program-prefix, do it manually. rm -f $PKG/usr/info/* gzip -9c docs/$PRGNAM.info > $PKG/usr/info/$PRGNAM.info.gz mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION cp -a AUTHORS COPYING ChangeLog NEWS README $PKG/usr/doc/$PRGNAM-$VERSION cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild mkdir -p $PKG/install cat $CWD/slack-desc > $PKG/install/slack-desc cat $CWD/doinst.sh > $PKG/install/doinst.sh cd $PKG /sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}