diff options
author | Kyle Guinn <elyk03@gmail.com> | 2019-07-07 14:24:42 -0500 |
---|---|---|
committer | Willy Sudiarto Raharjo <willysr@slackbuilds.org> | 2019-07-13 08:31:02 +0700 |
commit | b89ba185a16ad7d9f69341b7cc0920399b627fa6 (patch) | |
tree | 97967a3e13fd73310ab51c9498b3b1d484ea4d1b /development/icon/icon.SlackBuild | |
parent | 38a15d32baf99425e9c68f9056821ca348a5c0b8 (diff) |
development/icon: Fix URLs, add upstream patches.
Signed-off-by: Kyle Guinn <elyk03@gmail.com>
Diffstat (limited to 'development/icon/icon.SlackBuild')
-rw-r--r-- | development/icon/icon.SlackBuild | 123 |
1 files changed, 68 insertions, 55 deletions
diff --git a/development/icon/icon.SlackBuild b/development/icon/icon.SlackBuild index a981930b9497e..c444ae2fbe065 100644 --- a/development/icon/icon.SlackBuild +++ b/development/icon/icon.SlackBuild @@ -2,37 +2,38 @@ # Slackware build script for icon -# Copyright 2013 Kyle Guinn <elyk03@gmail.com>, USA +# Copyright 2010-2019 Kyle Guinn <elyk03@gmail.com> # All rights reserved. # # 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. +# 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. +# 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. PRGNAM=icon VERSION=${VERSION:-9.5.1} -BUILD=${BUILD:-1} +SRCVER=v$(echo $VERSION | tr -d .)src +BUILD=${BUILD:-2} TAG=${TAG:-_SBo} if [ -z "$ARCH" ]; then - case "$(uname -m)" in - i?86) ARCH=i486 ;; - arm*) ARCH=arm ;; - *) ARCH=$(uname -m) ;; - esac + case "$(uname -m)" in + i?86) ARCH=i586 ;; + arm*) ARCH=arm ;; + *) ARCH=$(uname -m) ;; + esac fi CWD=$(pwd) @@ -40,66 +41,78 @@ TMP=${TMP:-/tmp/SBo} PKG=$TMP/package-$PRGNAM-$VERSION OUTPUT=${OUTPUT:-/tmp} -# Removed "-O2"; enabling optimization seems to cause -# "Run-time error 302", "memory violation" -# whenever running icon programs. +# At one point, enabling "-O2" appeared to cause +# "Run-time error 302", "memory violation" (from the SIGSEGV trap) +# whenever running icon programs. I can't reproduce it. +# However, one of the tests fails with "-O2". Use "-O" instead +# since it is the default in config/linux/Makedefs. if [ "$ARCH" = "i486" ]; then - SLKCFLAGS="-march=i486 -mtune=i686" - LIBDIRSUFFIX="" + SLKCFLAGS="-O -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i586" ]; then + SLKCFLAGS="-O -march=i586 -mtune=i686" + LIBDIRSUFFIX="" elif [ "$ARCH" = "i686" ]; then - SLKCFLAGS="-march=i686 -mtune=i686" - LIBDIRSUFFIX="" + SLKCFLAGS="-O -march=i686 -mtune=i686" + LIBDIRSUFFIX="" elif [ "$ARCH" = "x86_64" ]; then - SLKCFLAGS="-fPIC" - LIBDIRSUFFIX="64" + SLKCFLAGS="-O -fPIC" + LIBDIRSUFFIX="64" else - SLKCFLAGS="" - LIBDIRSUFFIX="" + SLKCFLAGS="-O" + LIBDIRSUFFIX="" fi set -e -PKGVERSION=$(echo $VERSION | tr -d .) rm -rf $PKG mkdir -p $TMP $PKG $OUTPUT cd $TMP -rm -rf $PRGNAM-v${PKGVERSION}src -tar xvf $CWD/$PRGNAM-v${PKGVERSION}src.tgz -cd $PRGNAM-v${PKGVERSION}src +rm -rf $PRGNAM-$SRCVER +tar xvf $CWD/$PRGNAM-$SRCVER.tgz +cd $PRGNAM-$SRCVER chown -R root:root . -find -L . \ - \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \ - -o -perm 511 \) -exec chmod 755 {} \; -o \ - \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \ - -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \; - -# Let's put the package in /opt/icon instead of filling /usr/lib -# (and not a '/usr/lib/icon' subdirectory) with icon-related files. -# The makefile will attempt to create the /opt/icon directory, but -# doesn't use the -p option with mkdir, so we have to create only -# its parent directory first. -mkdir -p $PKG/opt +chmod -R u+w,go-w,a+rX-st . + +# Cherry-picked bugfix and ftbfs patches from upstream +# https://github.com/gtownsend/icon +patch -p1 < $CWD/patches/display.patch +patch -p1 < $CWD/patches/maxtype.patch +patch -p1 < $CWD/patches/lexer.patch +patch -p1 < $CWD/patches/implicit-defs.patch +patch -p1 < $CWD/patches/glibc.patch + +# Installation creates bin, lib, man, and doc dirs inside the "dest" dir. +# Edit the Install rule to avoid having to manually rearrange files. +# The bin and lib dirs need to share a parent directory, but we don't want +# to clutter /usr/lib with icon files, nor /usr/bin with demo programs and +# a shared lib. Move both to /opt/icon, the suggested canonical location. +sed -i -e "s|mkdir|mkdir -p|" \ + -e "s|\$D/bin|\$D/opt/$PRGNAM/bin|g" \ + -e "s|\$D/lib|\$D/opt/$PRGNAM/lib|g" \ + -e "s|\$D/man|\$D/usr/man|g" \ + -e "s|\$D/doc|\$D/usr/doc/$PRGNAM-$VERSION|g" Makefile + make X-Configure name=linux make CFLAGS="$SLKCFLAGS" -make Install dest=$PKG/opt/icon +make Test +make Samples +make Install dest=$PKG # Create symlinks from /usr/bin to /opt/icon/bin. +# Anything not symlinked is a demo/sample program. mkdir -p $PKG/usr/bin for i in icon icont iconx vib; do - ln -s ../../opt/icon/bin/$i $PKG/usr/bin/$i + ln -s /opt/$PRGNAM/bin/$i $PKG/usr/bin/$i done -find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ +find $PKG -exec file {} + | grep -e "executable" -e "shared object" | grep ELF \ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true -# Move man pages and docs to their usual locations. -mkdir -p $PKG/usr/doc -mv $PKG/opt/icon/man $PKG/usr/man -mv $PKG/opt/icon/doc $PKG/usr/doc/$PRGNAM-$VERSION -mv $PKG/opt/icon/README $PKG/usr/doc/$PRGNAM-$VERSION - -find $PKG/usr/man -type f -exec gzip -9 {} \; +find $PKG/usr/man -type f -exec gzip -9 {} + +mv $PKG/README $PKG/usr/doc/$PRGNAM-$VERSION +rm $PKG/usr/doc/$PRGNAM-$VERSION/clnroff.sed cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild mkdir -p $PKG/install |