diff --git a/testing/x2goclient/APKBUILD b/testing/x2goclient/APKBUILD new file mode 100644 index 00000000000..a4f8d406a3a --- /dev/null +++ b/testing/x2goclient/APKBUILD @@ -0,0 +1,40 @@ +# Contributor: Aron Barath +# Maintainer: Aron Barath +pkgname=x2goclient +pkgver=4.1.2.2 +pkgrel=0 +pkgdesc="A graphical client (Qt5) for the X2Go system" +url="https://wiki.x2go.org/doku.php" +arch="all" +license="GPL-2.0" +options="!check" # no test suite provided +subpackages="$pkgname-doc $pkgname-dbg" +depends="hicolor-icon-theme nx-libs" +makedepends="qt5-qttools-dev qt5-qtx11extras-dev qt5-qtsvg-dev xdg-utils + xauth libxpm-dev hicolor-icon-theme libssh-dev nx-libs-dev cups-dev + openldap-dev libldap bash" +source=" + https://code.x2go.org/releases/source/x2goclient/x2goclient-$pkgver.tar.gz + fix-ssh-thread-stack-size.patch +" + +prepare() { + default_prepare + + sed -i "s:-o root -g root ::" Makefile + sed -i -e 's/qt4/qt5/' Makefile +} + +build() { + make PREFIX=/usr + make PREFIX=/usr build_man +} + +package() { + make PREFIX=/usr DESTDIR="$pkgdir" install_client install_man +} + +sha512sums=" +85e6db6a34629512be64376883c205d8bf0696c4697cf216970b57a91ffe68dcf7f38bfda0d396c104602f6991b596c5fb0934e75fa4a93f7d0e41c2b3f5ac4d x2goclient-4.1.2.2.tar.gz +d76246860968ff02020c505be96caf0185711d754d5dc0f1bffea1d6d5b8aaa4735f9d1f566e0df16c059536d2bc33ff047694f61357e950bd7e2f1724a9e035 fix-ssh-thread-stack-size.patch +" diff --git a/testing/x2goclient/fix-ssh-thread-stack-size.patch b/testing/x2goclient/fix-ssh-thread-stack-size.patch new file mode 100644 index 00000000000..c3ecbfe9e78 --- /dev/null +++ b/testing/x2goclient/fix-ssh-thread-stack-size.patch @@ -0,0 +1,22 @@ +Author: Aron Barath + +Code falsely assumes that new threads on a POSIX system has at least 2 MiB +of stack. This is true only for glibc, but not for musl. Also, POSIX +specification only defines the absolute minimum stack size, which is 16 KiB. + +Interestingly, the code hacks this on Mac OS X in a non-portable way to 2 MiB. +See line 156 in sshmasterconnection.cpp + +Current QT has a (let's say) portable way to set the stack size of the new +threads. I use QT's mechanism to set the stack size to the desired 2 MiB. +---- +--- a/src/onmainwindow.cpp 2020-02-13 11:36:07.000000000 +0100 ++++ b/src/onmainwindow.cpp 2022-09-13 10:12:45.268906497 +0200 +@@ -2894,6 +2894,7 @@ + connect (con, SIGNAL(finishInteraction(SshMasterConnection*)),this, SLOT(slotSshInteractionFinish(SshMasterConnection*))); + connect ( interDlg, SIGNAL(textEntered(QString)), con, SLOT(interactionTextEnter(QString))); + connect ( interDlg, SIGNAL(interrupt()), con, SLOT(interactionInterruptSlot())); ++ con->setStackSize(2*1024*1024); + con->start(); + return con; + }