summaryrefslogtreecommitdiff
path: root/extra/x2goserver
diff options
context:
space:
mode:
Diffstat (limited to 'extra/x2goserver')
-rw-r--r--extra/x2goserver/PKGBUILD66
-rw-r--r--extra/x2goserver/x2goserver.install61
-rw-r--r--extra/x2goserver/x2goserver.service10
3 files changed, 137 insertions, 0 deletions
diff --git a/extra/x2goserver/PKGBUILD b/extra/x2goserver/PKGBUILD
new file mode 100644
index 000000000..fa620c2cf
--- /dev/null
+++ b/extra/x2goserver/PKGBUILD
@@ -0,0 +1,66 @@
+# $Id: PKGBUILD 175061 2013-01-12 11:27:40Z andyrtr $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+
+# Contributor: Gerhard Brauer <gerbra@archlinux.de>
+# Contributor: Richard Murri <admin@richardmurri.com>
+# Contributor: Markus Opitz <mastero23 at gmail dot com>
+# Contributor: Milan Knížek <knizek@volny.cz>
+
+pkgname=x2goserver
+pkgver=4.0.0.0
+pkgrel=2
+pkgdesc="Open source terminal server"
+arch=('i686' 'x86_64')
+url="http://www.x2go.org/"
+license=('GPL')
+depends=('openssh' 'perl-config-simple' 'perl-dbd-sqlite' 'python' 'x2go-agent' 'xorg-xauth')
+makedepends=('man2html')
+#optdepends=('cups-x2go: printing support')
+options=('emptydirs')
+install=x2goserver.install
+backup=('etc/x2go/x2goserver.conf' 'etc/x2go/x2gosql/sql')
+source=(http://code.x2go.org/releases/source/${pkgname}/${pkgname}-${pkgver}.tar.gz x2goserver.service)
+md5sums=('1fc38566832c30897c6583e7ffa1fda3'
+ 'b09799f9203150dc1277a56058be48a8')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ # -r option does not exist in Arch linux
+ # (However, html man pages do not get installed anyway...)
+ for Makefile in $(find . -type f -name Makefile); do
+ sed -i 's@(MAN2HTML_BIN) -r @(MAN2HTML_BIN) < @g' $Makefile
+ sed -i 's@ \$(MAN2HTML_SRC)/@ < \$(MAN2HTML_SRC)/@g' $Makefile
+ done
+
+ # fix some Makefile permission options
+ for Makefile in $(find . -type f -name Makefile); do
+ sed -i "s:-o root -g root ::g" $Makefile
+ done
+
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make PREFIX=/usr DESTDIR="$pkgdir" install
+
+ # systemd service file - only runs x2gocleansessions
+ install -Dm 644 "$srcdir/x2goserver.service" "$pkgdir/usr/lib/systemd/system/x2goserver.service"
+
+ # X2go homedir + printing spool dir
+ install -dm 755 $pkgdir/var/lib/x2go
+ install -dm 755 $pkgdir/var/spool/x2go
+
+ # load fuse module at system start
+ install -dm755 $pkgdir/usr/lib/modprobe.d
+ echo "fuse" > $pkgdir/usr/lib/modprobe.d/x2goserver.conf
+
+ install -dm 755 "${pkgdir}/usr/share/doc/${pkgname}"
+ install -m 644 "debian/changelog" "${pkgdir}/usr/share/doc/${pkgname}/changelog.DEBIAN"
+ install -m 644 "debian/copyright" "${pkgdir}/usr/share/doc/${pkgname}/copyright.DEBIAN"
+
+ # cleanup unneded files/directories
+ rmdir $pkgdir/etc/X11/Xsession.d
+ rm -f $pkgdir/etc/x2go/Xresources
+}
diff --git a/extra/x2goserver/x2goserver.install b/extra/x2goserver/x2goserver.install
new file mode 100644
index 000000000..0688960cc
--- /dev/null
+++ b/extra/x2goserver/x2goserver.install
@@ -0,0 +1,61 @@
+pre_install() {
+ cat << 'EOM'
+ ==> Use the following command to setup sqlite database:
+ ==> x2godbadmin --createdb
+EOM
+}
+
+
+post_install() {
+
+ # Make sure the group and user "x2gouser"(111) +"x2goprint"(112) exists on this system and have the correct values
+
+ # x2gouser
+ if grep -q "^x2gouser:" /etc/group &> /dev/null ; then
+ groupmod -g 111 -n x2gouser x2gouser &> /dev/null
+ else
+ groupadd -g 111 x2gouser &> /dev/null
+ fi
+
+ if grep -q "^x2gouser:" /etc/passwd 2> /dev/null ; then
+ usermod -s /sbin/false -c "X2GoUser user" -M -d /var/lib/x2go -u 111 -g x2gouser x2gouser &> /dev/null
+ else
+ useradd -s /sbin/false -c "X2GoUser user" -M -d /var/lib/x2go -u 111 -g x2gouser -r x2gouser &> /dev/null
+ fi
+
+ # x2goprint
+ if grep -q "^x2goprint:" /etc/group &> /dev/null ; then
+ groupmod -g 112 -n x2goprint x2goprint &> /dev/null
+ else
+ groupadd -g 112 x2goprint &> /dev/null
+ fi
+
+ if grep -q "^x2goprint:" /etc/passwd 2> /dev/null ; then
+ usermod -s /sbin/false -c "X2GoPrint user" -M -d /var/spool/x2go -u 112 -g x2goprint x2goprint &> /dev/null
+ else
+ useradd -s /sbin/false -c "X2GoPrint user" -M -d /var/spool/x2go -u 112 -g x2goprint -r x2goprint &> /dev/null
+ fi
+
+ # fix permissions - see INSTALL file
+ chown -R x2goprint:x2goprint /var/spool/x2go
+ chmod 0770 /var/spool/x2go
+
+ chown root:x2gouser /usr/lib/x2go/x2gosqlitewrapper
+ chmod 2755 /usr/lib/x2go/x2gosqlitewrapper
+
+ chown root:x2goprint /usr/bin/x2goprint
+ chmod 2755 /usr/bin/x2goprint
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ userdel x2gouser &> /dev/null
+ userdel x2goprint &> /dev/null
+ groupdel x2gouser &> /dev/null || /bin/true
+ groupdel x2goprint &> /dev/null || /bin/true
+ rm -rf /var/lib/x2go/* &> /dev/null || /bin/true
+ rm -rf /var/spool/x2go/* &> /dev/null || /bin/true
+}
diff --git a/extra/x2goserver/x2goserver.service b/extra/x2goserver/x2goserver.service
new file mode 100644
index 000000000..393d841c5
--- /dev/null
+++ b/extra/x2goserver/x2goserver.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=x2go - remote desktop server
+After=syslog.target network.target
+
+[Service]
+ExecStart=/usr/sbin/x2gocleansessions
+PIDFile=/run/x2goserver.pid
+
+[Install]
+WantedBy=multi-user.target