diff options
Diffstat (limited to 'extra/x2goserver')
-rw-r--r-- | extra/x2goserver/PKGBUILD | 66 | ||||
-rw-r--r-- | extra/x2goserver/x2goserver.install | 61 | ||||
-rw-r--r-- | extra/x2goserver/x2goserver.service | 10 |
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 |