#!/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