diff options
Diffstat (limited to 'desktop/xpra/xpra.SlackBuild')
-rw-r--r-- | desktop/xpra/xpra.SlackBuild | 137 |
1 files changed, 137 insertions, 0 deletions
diff --git a/desktop/xpra/xpra.SlackBuild b/desktop/xpra/xpra.SlackBuild new file mode 100644 index 0000000000..4c0239070a --- /dev/null +++ b/desktop/xpra/xpra.SlackBuild @@ -0,0 +1,137 @@ +#!/bin/bash + +# Slackware build script for xpra + +# Written by B. Watson (urchlay@slackware.uk) + +# Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details. + +# 20240126 bkw: update for v5.0.4. +# - add xpra-html5-10.1, by request from Andrew Randrianasulu. +# - make the config files .new! +# 20230112 bkw: update for v4.4.3. +# 20221217 bkw: BUILD=2. +# - fix paths in config file (do not include $PKG). + +cd $(dirname $0) ; CWD=$(pwd) + +PRGNAM=xpra +VERSION=${VERSION:-5.0.4} +HTML5VER=${HTML5VER:-10.1} +BUILD=${BUILD:-1} +TAG=${TAG:-_SBo} +PKGTYPE=${PKGTYPE:-tgz} + +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) ARCH=i586 ;; + arm*) ARCH=arm ;; + *) ARCH=$( uname -m ) ;; + esac +fi + +if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then + echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE" + exit 0 +fi + +TMP=${TMP:-/tmp/SBo} +PKG=$TMP/package-$PRGNAM +OUTPUT=${OUTPUT:-/tmp} + +# no SLKCFLAGS because I don't see how to force setup.py to use it. +# no LIBDIRSUFFIX needed. + +set -e + +rm -rf $PKG +mkdir -p $TMP $PKG $OUTPUT +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.gz +cd $PRGNAM-$VERSION +tar xvf $CWD/xpra-html5-$HTML5VER.tar.gz +tar xvf $CWD/$PRGNAM-$VERSION-prebuilt-docs.tar.xz +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 {} + + +sed -i 's,"share/man","man",' setup.py + +# without-strict turns off -Werror. without-docs because we don't want +# pandoc *and its 139 deps* as a dependency. Include prebuilt docs +# instead. +# 20230112 bkw: pandoc now has 196 deps... Could use pandoc-bin, but +# it doesn't do 32-bit. Still using prebuilt docs for now. +python3 setup.py install \ + --root=$PKG \ + --without-docs \ + --without-strict \ + --without-debug + +# 20221217 bkw: grrr. $PKG getting hardcoded in config file. +sed -i "s,$PKG,,g" $PKG/etc/xpra/conf.d/55_server_x11.conf + +# 20230112 bkw: a few things are getting installed in the wrong place. +mkdir -p $PKG/lib +mv $PKG/usr/lib/udev $PKG/lib +if [ -d $PKG/usr/lib64 ]; then + mv $PKG/usr/lib/cups $PKG/usr/lib64 +fi + +# /usr/lib/{sysusers.d,tmpfiles.d} are for systemd. Apparently they +# are in the correct place, I'll leave them there (they won't hurt +# anything and apparently there are Slackware derivatives that use +# systemd). +# rm -rf $PKG/usr/lib/{sysusers.d,tmpfiles.d} + +# This is *much* faster than using 'file' to classify them. +find $PKG/usr/lib* -name '*.so' | xargs strip --strip-unneeded + +gzip -9 $PKG/usr/man/man?/* + +# put the icons in the right places. +cd $PKG/usr/share/icons + for i in *.png; do + px="$( identify $i | cut -d' ' -f3 )" + mkdir -p hicolor/$px/apps + mv $i hicolor/$px/apps + done +cd - + +mkdir -p $PKG/usr/share/pixmaps +ln -s ../icons/hicolor/64x64/apps/$PRGNAM.png $PKG/usr/share/pixmaps/$PRGNAM.png + +PKGDOC=$PKG/usr/doc/$PRGNAM-$VERSION +mkdir -p $PKGDOC/html + +# Instead of requiring pandoc's insanely long chain of deps, use +# prebuilt docs. See mkdoc.sh for details. +cp -a $PRGNAM-$VERSION-prebuilt-docs/* $PKGDOC/html + +# 20240127 bkw: include the html5 server-side stuff. +# Nonstandard setup.py, uses positional arguments, undocumented. +# Adapted from packaging/rpm/xpra-html5.spec in the xpra-html5 src, and +# from looking at the finished rpm package. See also the doinst.sh! +cd xpra-html5-$HTML5VER + python3 setup.py install $PKG /usr/share/xpra/www/ /etc/xpra/html5-client copy + mkdir $PKGDOC/xpra-html5-$HTML5VER + # The RPM doesn't include these, but they look useful: + cp -a LICENSE *.md docs $PKGDOC/xpra-html5-$HTML5VER +cd - + +cp -a COPYING README.md $PKGDOC +cat $CWD/$PRGNAM.SlackBuild > $PKGDOC/$PRGNAM.SlackBuild + +# 20240127 bkw: lots of config files. Maybe not all of them are really meant +# to be user-edited, but it's easier to treat them all the same way here. +find $PKG/etc/xpra -type f | while read f; do + mv $f $f.new +done + +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 |