summaryrefslogtreecommitdiffstats
path: root/desktop/xpra
diff options
context:
space:
mode:
Diffstat (limited to 'desktop/xpra')
-rw-r--r--desktop/xpra/README3
-rw-r--r--desktop/xpra/doinst.sh49
-rw-r--r--desktop/xpra/mkdoc.sh2
-rw-r--r--desktop/xpra/xpra.SlackBuild51
-rw-r--r--desktop/xpra/xpra.info12
5 files changed, 107 insertions, 10 deletions
diff --git a/desktop/xpra/README b/desktop/xpra/README
index b8af2867a8..206043088e 100644
--- a/desktop/xpra/README
+++ b/desktop/xpra/README
@@ -7,3 +7,6 @@ and reconnect from the same or another machine(s), without losing
any state. This effectively gives you remote access to individual
graphical applications. It can also be used to access existing
desktop sessions and start remote desktop sessions.
+
+Note: If 'xpra attach' freezes up with "UI thread is now blocked" on
+its stdout, try running it again with --opengl=no.
diff --git a/desktop/xpra/doinst.sh b/desktop/xpra/doinst.sh
index 9424ce43ff..329bb2856c 100644
--- a/desktop/xpra/doinst.sh
+++ b/desktop/xpra/doinst.sh
@@ -1,3 +1,52 @@
+config() {
+ NEW="$1"
+ OLD="$(dirname $NEW)/$(basename $NEW .new)"
+ if [ ! -r $OLD ]; then
+ mv $NEW $OLD
+ elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then
+ rm $NEW
+ fi
+}
+
+# this list was made with:
+# find /tmp/S?o/package-xpra/etc/xpra/ -type f | cut -d/ -f5-
+
+for i in \
+ etc/xpra/html5-client/default-settings.txt.new \
+ etc/xpra/content-parent/10_default.conf.new \
+ etc/xpra/xpra.conf.new \
+ etc/xpra/http-headers/10_content_security_policy.txt.new \
+ etc/xpra/http-headers/00_nocache.txt.new \
+ etc/xpra/conf.d/42_client_keyboard.conf.new \
+ etc/xpra/conf.d/15_file_transfers.conf.new \
+ etc/xpra/conf.d/50_server_network.conf.new \
+ etc/xpra/conf.d/55_server_x11.conf.new \
+ etc/xpra/conf.d/10_network.conf.new \
+ etc/xpra/conf.d/30_picture.conf.new \
+ etc/xpra/conf.d/12_ssl.conf.new \
+ etc/xpra/conf.d/20_audio.conf.new \
+ etc/xpra/conf.d/40_client.conf.new \
+ etc/xpra/conf.d/16_printing.conf.new \
+ etc/xpra/conf.d/05_features.conf.new \
+ etc/xpra/conf.d/65_proxy.conf.new \
+ etc/xpra/conf.d/35_webcam.conf.new \
+ etc/xpra/conf.d/60_server.conf.new \
+ etc/xpra/content-categories/10_default.conf.new \
+ etc/xpra/content-type/50_class.conf.new \
+ etc/xpra/content-type/30_title.conf.new \
+ etc/xpra/content-type/10_role.conf.new \
+ etc/xpra/content-type/70_commands.conf.new \
+ etc/xpra/xorg.conf.new \
+ etc/xpra/xorg-uinput.conf.new
+do
+ config $i
+done
+
+# this symlink has to get created *after* the .new file has been config()'ed.
+# I'm not sure what it exists for, but upstream's official RPM includes it.
+( cd usr/share/xpra/www/ ; rm -rf default-settings.txt )
+( cd usr/share/xpra/www/ ; ln -sf ../../../../etc/xpra/html5-client/default-settings.txt default-settings.txt )
+
if [ -x /usr/bin/update-desktop-database ]; then
/usr/bin/update-desktop-database -q usr/share/applications >/dev/null 2>&1
fi
diff --git a/desktop/xpra/mkdoc.sh b/desktop/xpra/mkdoc.sh
index b5324851fa..71428ede79 100644
--- a/desktop/xpra/mkdoc.sh
+++ b/desktop/xpra/mkdoc.sh
@@ -12,7 +12,7 @@ source ./xpra.info
OUTDIR=xpra-$VERSION-prebuilt-docs
TARBALL=$OUTDIR.tar.xz
-RPMFILE=xpra-common-4.3-10.el8.noarch.rpm
+RPMFILE=xpra-common-5.0.4-10.r0.el8.x86_64.rpm
URL=https://www.xpra.org/dists/CentOS/8/x86_64/$RPMFILE
# only download the file if we don't already have it.
diff --git a/desktop/xpra/xpra.SlackBuild b/desktop/xpra/xpra.SlackBuild
index 69eafd497b..4c0239070a 100644
--- a/desktop/xpra/xpra.SlackBuild
+++ b/desktop/xpra/xpra.SlackBuild
@@ -6,10 +6,18 @@
# 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:-4.3}
+VERSION=${VERSION:-5.0.4}
+HTML5VER=${HTML5VER:-10.1}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -27,7 +35,6 @@ if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
exit 0
fi
-CWD=$(pwd)
TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
@@ -43,22 +50,41 @@ 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 {} \+
+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
@@ -83,9 +109,26 @@ mkdir -p $PKGDOC/html
# 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
diff --git a/desktop/xpra/xpra.info b/desktop/xpra/xpra.info
index 138c1167b5..31a7c87a94 100644
--- a/desktop/xpra/xpra.info
+++ b/desktop/xpra/xpra.info
@@ -1,10 +1,12 @@
PRGNAM="xpra"
-VERSION="4.3"
+VERSION="5.0.4"
HOMEPAGE="https://www.xpra.org/"
-DOWNLOAD="https://github.com/Xpra-org/xpra/archive/v4.3/xpra-4.3.tar.gz \
- https://slackware.uk/~urchlay/src/xpra-4.3-prebuilt-docs.tar.xz"
-MD5SUM="ef0ce6127936088ee2df6e49c4b3d116 \
- bd0f11b58bc4f02d798af1568b78bb1b"
+DOWNLOAD="https://github.com/Xpra-org/xpra/archive/v5.0.4/xpra-5.0.4.tar.gz \
+ https://github.com/Xpra-org/xpra-html5/archive/v10.1/xpra-html5-10.1.tar.gz \
+ https://slackware.uk/~urchlay/src/xpra-5.0.4-prebuilt-docs.tar.xz"
+MD5SUM="4d8a7abd2efbb6d597f5bf4e295e4bae \
+ a3b534f7529fa801fd7f947a7125a9bd \
+ 9cd81de5ce4f74e6a50e265a5454d77f"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""