diff options
-rw-r--r-- | libraries/xview/README | 11 | ||||
-rw-r--r-- | libraries/xview/xview.SlackBuild | 93 | ||||
-rw-r--r-- | libraries/xview/xview.info | 8 |
3 files changed, 77 insertions, 35 deletions
diff --git a/libraries/xview/README b/libraries/xview/README index c89d9bf1a8..3defd3d840 100644 --- a/libraries/xview/README +++ b/libraries/xview/README @@ -1,4 +1,4 @@ -XView (X11 toolkit for OPEN LOOK applications) +xview (X11 toolkit for OPEN LOOK applications) XView is a cross-platform X11 toolkit which implements OPEN LOOK specification. It was originally created by Sun Microsystems (now @@ -7,11 +7,8 @@ several OPEN LOOK applications, including window managers (olwm, olvwm), text editors (oledit, textedit), clock (olclock) and a simple calculator (olcalc). -!!! IMPORTANT !!! Due to conflict with /sbin/clock, XView's clock was renamed to olclock. -If you are using one of certain, older Slackware versions, XView -applications may hang after first mouse button click. To prevent this -behaviour, build this SlackBuild in the following way: - -XVIEW_BROKEN_X11_WORKAROUND=1 ./xview.SlackBuild +Note to 64-bit users: xview isn't "64-bit clean". The window managers +(olwm, olvwm) work, but the applications crash with a segfault on +startup. diff --git a/libraries/xview/xview.SlackBuild b/libraries/xview/xview.SlackBuild index e3a5c4ab5c..d5e643a36c 100644 --- a/libraries/xview/xview.SlackBuild +++ b/libraries/xview/xview.SlackBuild @@ -2,7 +2,8 @@ # Slackware build script for XView -# Copyright 2014 Tomasz Konojacki <me@xenu.tk> +# Copyright 2014 Tomasz Konojacki <email removed> +# Copyright 2020 B. Watson <yalhcru@gmail.com> # All rights reserved. # # Redistribution and use of this script, with or without modification, is @@ -22,9 +23,16 @@ # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# 20200524 bkw: +# - take over maintenance, BUILD=2 +# - add partial 64-bit support (olwm and olvwm work, apps don't) +# - add xinitrc.ol[v]wm +# - add MAKEFLAGS=-j1 +# - remove XVIEW_BROKEN_X11_WORKAROUND from README, not needed on 14.2 + PRGNAM=xview VERSION=${VERSION:-3.2p4} -BUILD=${BUILD:-1} +BUILD=${BUILD:-2} TAG=${TAG:-_SBo} if [ -z "$ARCH" ]; then @@ -35,47 +43,84 @@ if [ -z "$ARCH" ]; then esac fi -if [ "$ARCH" != "i586" ] && [ "$ARCH" != "i686" ]; then - echo "$ARCH is not supported." - exit 1 -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 + if [ "${WARN64:-yes}" = "yes" ]; then + cat <<"EOF" +************************************************************************ +Warning: xview doesn't fully support 64-bit systems. The window managers +(olwm and olvwm) work, but the applications (olclock, oledit, etc) crash +on startup. Please don't report this as a bug, we already know. +Press Enter or wait 5 seconds to continue, or press ^C to abort. +************************************************************************ +EOF + read -t 5 || true + fi + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +else + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +fi + set -e rm -rf $PKG mkdir -p $TMP $PKG $OUTPUT cd $TMP rm -rf $PRGNAM-$VERSION -tar Zxvf $CWD/$PRGNAM-$VERSION.tar.Z +tar xvf $CWD/$PRGNAM-$VERSION.tar.Z cd $PRGNAM-$VERSION 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 {} \; - -DESTDIR=$PKG \ -XVIEW_USE_GCC=1 \ -bash Build-XView.bash libs clients contrib olvwm - -DESTDIR=$PKG \ -bash Build-XView.bash instlibs instclients instcontrib instolvwm instfinish - -# it conflicts with /sbin/clock from Slackware +find -L . -perm /111 -a \! -perm 755 -a -exec chmod 755 {} \+ -o \ + \! -perm /111 -a \! -perm 644 -a -exec chmod 644 {} \+ + +# Apply our CFLAGS. There might be a simpler way to do it, but this works: +sed -i "s,-O2,$SLKCFLAGS,g" \ + clients/olvwm-4.1/compiler.tmpl \ + clients/olwm/Makefile.simple \ + config/XView.tmpl + +script=Build-XView.bash + +# lib64 support, and stop creating /usr/config outside of $TMP. +sed -i \ + -e "s|/lib/X11/config|/lib$LIBDIRSUFFIX/X11/config|g" \ + -e '/instlibs)/,+1s|install-sh|#&|' \ + $script + +# 20200524 bkw: Yes, we do need -j1 here. +X11DIR=/usr +OPENWINHOME=/usr +DESTDIR=$PKG +XVIEW_USE_GCC=1 +MAKEFLAGS=-j1 +export X11DIR OPENWINHOME DESTDIR XVIEW_USE_GCC MAKEFLAGS + +# "all" builds/installs everything according to the env vars set above. +sh $script all + +# This conflicts with /sbin/clock from Slackware: mv $PKG/usr/bin/clock $PKG/usr/bin/olclock mv $PKG/usr/man/man1/clock.1x $PKG/usr/man/man1/olclock.1x find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true -find $PKG/usr/man -type f -exec gzip -9 {} \; -for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done +gzip -9 $PKG/usr/man/man?/* + +mkdir -p $PKG/etc/X11/xinit +install -m0755 -oroot -groot $CWD/xinitrc.* $PKG/etc/X11/xinit mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION cp -a README CHANGELOG LEGAL_NOTICE $PKG/usr/doc/$PRGNAM-$VERSION diff --git a/libraries/xview/xview.info b/libraries/xview/xview.info index 19e1836265..07e6fbb3a6 100644 --- a/libraries/xview/xview.info +++ b/libraries/xview/xview.info @@ -1,10 +1,10 @@ PRGNAM="xview" VERSION="3.2p4" -HOMEPAGE="https://physionet.org/physiotools/xview/" +HOMEPAGE="https://archive.physionet.org/physiotools/xview/" DOWNLOAD="http://ponce.cc/slackware/sources/repo/xview-3.2p4.tar.Z" MD5SUM="27b10252d53d2ccee12650221d873e2b" -DOWNLOAD_x86_64="UNSUPPORTED" +DOWNLOAD_x86_64="" MD5SUM_x86_64="" REQUIRES="" -MAINTAINER="Tomasz Konojacki" -EMAIL="me@xenu.tk" +MAINTAINER="B. Watson" +EMAIL="yalhcru@gmail.com" |