#!/bin/sh # Copyright Loris Vincenzi (http://www.slacky.eu) # All rights reserved. # # Heavily based on the Slackware 12.2 SlackBuild # http://p7zip.sourceforge.net/ # # Redistribution and use of this script, with or without modification, is # permitted provided that the following conditions are met: # # 1. Redistributions of this script must retain the above copyright # notice, this list of conditions and the following disclaimer. # # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED # WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO # EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, # PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; # OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # # Improved by Massimo Cavalleri (submax) NAME=p7zip VERSION=9.04 ARCH=${ARCH:-i486} BUILD=1sl CWD=$(pwd) TMP=${TMP:-/tmp/tgz} PKG=$TMP/package-$NAME # download source if [ ! -e $CWD/${NAME}_${VERSION}_src_all.tar.bz2 ]; then wget http://garr.dl.sourceforge.net/sourceforge/p7zip/${NAME}_${VERSION}_src_all.tar.bz2 fi # clean package directory rm -rf $PKG mkdir -p $PKG # extract source cd $TMP tar xjvf $CWD/${NAME}_${VERSION}_src_all.tar.bz2 cd p7zip_$VERSION # set permissions chmod -R u+w,go+r-w,a-s . chown -R root:root . # set optimizations case $ARCH in "i486") SLKCFLAGS="-O2 -march=i486 -mtune=i686" ; SLKLIBDIR=lib ; CHOST=i486 ;; "i686") SLKCFLAGS="-O3 -march=i686 -pipe -fomit-frame-pointer" ; SLKLIBDIR=lib ; CHOST=i486 ;; "x86_64_slamd64") SLKCFLAGS="-O2" ; SLKLIBDIR=lib64 ; CHOST=x86_64 ;; # multilib /lib and /lib64 "x86_64") SLKCFLAGS="-O2" ; SLKLIBDIR=lib ; CHOST=x86_64 ;; # pure /lib only es. sflack "s390") SLKCFLAGS="-O2" ; SLKLIBDIR=lib ; CHOST=s390 ;; esac if [ "$CHOST" == "x86_64" ]; then cp -f makefile.linux_amd64 makefile.machine elif [ "$CHOST" == "s390" ]; then cp -f makefile.linux_s390x makefile.machine else cp -f makefile.linux_x86_ppc_alpha_gcc_4.X makefile.machine fi sed -i "s|^OPTFLAGS=.*|OPTFLAGS=$SLKCFLAGS -L/usr/$SLKLIBDIR -L/$SLKLIBDIR|g" makefile.machine # compile make all3 || exit sed -i "s|DEST_HOME=.*|DEST_HOME=$PKG/usr|g" install.sh ./install.sh mkdir -p $PKG/usr/lib/p7zip/ cp bin/7z.so $PKG/usr/lib/p7zip/ chmod 555 $PKG/usr/lib/p7zip/7z.so # Install mc's virtual filesystem mkdir -p $PKG/usr/share/mc/extfs/ cp contrib/VirtualFileSystemForMidnightCommander/u7z $PKG/usr/share/mc/extfs/ chmod 644 $PKG/usr/share/mc/extfs/u7z find $PKG | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null find $PKG | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null sed -i "s|$PKG/usr|/usr|g" $PKG/usr/bin/7z sed -i "s|$PKG/usr|/usr|g" $PKG/usr/bin/7za sed -i "s|$PKG/usr|/usr|g" $PKG/usr/bin/7zr # doc mkdir -p $PKG/usr/doc/$NAME-$VERSION cp -a ChangeLog DOCS/* README TODO $PKG/usr/doc/$NAME-$VERSION rm -rf $PKG/usr/share/doc/ mkdir -p $PKG/usr/doc/$NAME-$VERSION/SlackBuild cat $CWD/slack-desc > $PKG/usr/doc/$NAME-$VERSION/SlackBuild/slack-desc cat $CWD/$NAME.SlackBuild > $PKG/usr/doc/$NAME-$VERSION/SlackBuild/$NAME.SlackBuild sed -i "s|$PKG/usr/share/doc/p7zip/DOCS|/usr/doc/$NAME-$VERSION|g" $PKG/usr/man/man1/7z.1 sed -i "s|$PKG/usr/share/doc/p7zip/DOCS|/usr/doc/$NAME-$VERSION|g" $PKG/usr/man/man1/7za.1 sed -i "s|$PKG/usr/share/doc/p7zip/DOCS|/usr/doc/$NAME-$VERSION|g" $PKG/usr/man/man1/7zr.1 find $PKG/usr/man -type f -exec gzip -9 {} \; # install dir mkdir -p $PKG/install cat $CWD/slack-desc > $PKG/install/slack-desc # build tgz's package cd $PKG chown -R root:root $PKG if [ -x "$(which requiredbuilder)" ]; then requiredbuilder -y -v -s $CWD $PKG fi makepkg -l y -c n $CWD/$NAME-$VERSION-$ARCH-$BUILD.tgz # optional clean if [ "$1" = "--cleanup" ]; then if [ "$TMP" != "/" ]; then rm -rf $TMP fi fi