Date: Saturday, January 12, 2013 @ 03:56:15 Author: andyrtr Revision: 175041
add X2goserver Added: x2goserver/ x2goserver/repos/ x2goserver/trunk/ x2goserver/trunk/PKGBUILD x2goserver/trunk/x2goserver.install x2goserver/trunk/x2goserver.service --------------------+ PKGBUILD | 58 ++++++++++++++++++ x2goserver.install | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++ x2goserver.service | 11 +++ 3 files changed, 226 insertions(+) Added: x2goserver/trunk/PKGBUILD =================================================================== --- x2goserver/trunk/PKGBUILD (rev 0) +++ x2goserver/trunk/PKGBUILD 2013-01-12 08:56:15 UTC (rev 175041) @@ -0,0 +1,58 @@ +# $Id$ +# Maintainer: AndyRTR <[email protected]> + +# Contributor: Gerhard Brauer <[email protected]> +# Contributor: Richard Murri <[email protected]> +# Contributor: Markus Opitz <mastero23 at gmail dot com> +# Contributor: Milan Knížek <[email protected]> + +pkgname=x2goserver +pkgver=4.0.0.0 +pkgrel=1 +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' 'x2goagent' 'xorg-xauth') +makedepends=('man2html') +optdepends=('cups-x2go: printing support') +# x2gofmbindings are already included in the source, however the executable and mime type +# is not installed by "make install" on purpose - it would conflict x2gognomebindings, etc. +#conflicts=('x2gofmbindings') +options=(emptydirs) +install=x2goserver.install +backup=('etc/x2go/x2goserver.conf' 'etc/x2go/x2gosql/sql') +groups=('x2go' 'alts') +source=('x2goserver.rc.d' + 'x2goserver.service' + "http://code.x2go.org/releases/source/${pkgname}/${pkgname}-${pkgver}.tar.gz") + +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 +# sed -i 's@share/x2gofeature@share/x2go/x2gofeature@g' x2goserver-fmbindings/Makefile +# sed -i '[email protected]@VERSION.x2goserver-fmbindings@g' x2goserver-fmbindings/Makefile +# patch -p0 < ../x2gostartagent-xauthority.patch + make +} + +package() { + cd "${srcdir}/${pkgname}-${pkgver}" + make PREFIX=/usr DESTDIR="$pkgdir" install + + install -D -m 755 "$srcdir/x2goserver.rc.d" "$pkgdir/etc/rc.d/x2goserver" + install -D -m 644 "$srcdir/x2goserver.service" "$pkgdir/usr/lib/systemd/system/x2goserver.service" + + install -m 755 -d "${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" +} +md5sums=('8083819ac423401440c0ad5feef1a128' + '3bdfe6a4f2c3847bb8d021e88a6706e5' + '1fc38566832c30897c6583e7ffa1fda3') Property changes on: x2goserver/trunk/PKGBUILD ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Added: x2goserver/trunk/x2goserver.install =================================================================== --- x2goserver/trunk/x2goserver.install (rev 0) +++ x2goserver/trunk/x2goserver.install 2013-01-12 08:56:15 UTC (rev 175041) @@ -0,0 +1,157 @@ +fix_permissions_server() +{ + # make sure db permissions are set correctly + chown -R root:x2gouser /var/lib/x2go + # egid x2gouser needs write access to the db dir (for temporary db journal file) + chmod 0770 /var/lib/x2go + # ... and to the db file itself, of course + test -f /var/lib/x2go/x2go_sessions && chmod 0660 /var/lib/x2go/x2go_sessions + # we may be upgrading versions of x2goserver that had + # /usr/lib/x2go/x2gosqlitewrapper.pl set to setuid x2gouser. + chown root:x2gouser /usr/lib/x2go/x2gosqlitewrapper + chmod 2755 /usr/lib/x2go/x2gosqlitewrapper +} + +fix_permissions_print() +{ + # make sure x2goprint spool dir permissions are set correctly + chown -R x2goprint:x2goprint /var/spool/x2goprint + # egid x2goprint needs write access to the spool dir + chmod 0700 /var/spool/x2goprint +} + +pre_install() +{ + # cleanup old x2goserver installations + rm -Rfv /var/db/x2go/ > /dev/null 2>&1 + if getent group x2gousers >/dev/null; then + echo " ==> The ,,x2gousers'' is no longer used by x2go and can be" + echo " ==> removed as soon as no users are members of this group." + fi +} + +pre_upgrade() +{ + pre_install +} + +post_install_server() +{ + # setup x2gouser and group + if ! getent group x2gouser >/dev/null; then + groupadd -K GID_MIN=500 -K GID_MAX=999 x2gouser + echo " ==> Group x2gouser created." + else + echo " ==> Group x2gouser already exists." + fi + + if ! getent passwd x2gouser > /dev/null; then + test ! -d /var/lib/x2go && mkdir -p /var/lib/x2go + useradd -r -g x2gouser -d /var/lib/x2go -s /bin/false x2gouser + passwd -l x2gouser > /dev/null + echo " ==> User x2gouser created." + + else + echo " ==> User x2gouser already exists." + # make sure all settings are appropriate + if [ "`id -gn x2gouser`" != "x2gouser" ]; then + usermod --gid x2gouser x2gouser + test -d /var/lib/x2go && \ + usermod --home /var/lib/x2go x2gouser || \ + usermod --move-home --home /var/lib/x2go x2gouser + fi + if [ "`ls -1d ~x2gouser`" != "/var/lib/x2go" ]; then + usermod --move-home --home /var/lib/x2go x2gouser + fi + # we leave user shell alone. we have never set this wrongly + # and we need to respect the administrator's choices + fi +} + +post_install_print() +{ + ### + ### X2Go printing + ### + # setup x2goprint user and x2goprint group + if ! getent group x2goprint >/dev/null; then + groupadd -K GID_MIN=500 -K GID_MAX=999 x2goprint + echo " ==> Group x2goprint created." + else + echo " ==> Group x2goprint already exists." + fi + if ! getent passwd x2goprint >/dev/null; then + test ! -d /var/spool/x2goprint && mkdir -p /var/spool/x2goprint + useradd -r -g x2goprint -s /bin/sh -d /var/spool/x2goprint x2goprint + passwd -l x2goprint > /dev/null + echo " ==> User x2goprint created." + else + echo " ==> User x2goprint already exists." + # make sure all settings are appropriate + if [ "`id -gn x2goprint`" != "x2goprint" ]; then + usermod --gid x2goprint x2goprint + fi + if getent passwd x2goprint | egrep -v ".*:x:.*:.*:.*:.*:/bin/sh" 1>/dev/null 2>/dev/null; then + usermod -s /bin/sh x2goprint + fi + if [ "`ls -1d ~x2goprint`" != "/var/spool/x2goprint" ]; then + test -d /var/spool/x2goprint && \ + usermod --home /var/spool/x2goprint x2goprint || \ + usermod --move-home --home /var/spool/x2goprint x2goprint + fi + # we leave user shell alone. we have never set this wrongly + # and we need to respect the administrator's choices + fi +} + +post_install() +{ + post_install_server + post_install_print + fix_permissions_server + fix_permissions_print + +cat << 'EOM' + + ==> Use the following command to setup sqlite database: + ==> x2godbadmin --createdb + + ==> You may want to add x2goserver to your /etc/rc.conf DAEMONS array + ==> and also start it: + ==> /etc/rc.d/x2goserver start +EOM +} + + +post_upgrade() +{ + post_install_server + post_install_print + fix_permissions_server + fix_permissions_print + echo "X2Go server now has both /etc/rc.d script and systemd service file." + echo "Depending on your setup, you may prefer the new systemd approach." + echo "('systemctl enable x2goserver.service')" +} + +pre_remove() +{ + if [ -x "/etc/rc.d/x2goserver" ]; then + /etc/rc.d/x2goserver stop > /dev/null 2>&1 + fi +} + +post_remove() +{ + rm -Rfv /var/lib/x2go > /dev/null 2>&1 + echo " ==> x2go session database removed." + getent passwd x2gouser > /dev/null && userdel x2gouser + getent group x2gouser > /dev/null && groupdel x2gouser + echo " ==> User and group x2gouser removed." + + rm -Rfv /var/spool/x2goprint > /dev/null 2>&1 + getent passwd x2goprint > /dev/null && userdel x2goprint + getent group x2goprint > /dev/null && groupdel x2goprint + echo " ==> User and group x2goprint removed." +} + Added: x2goserver/trunk/x2goserver.service =================================================================== --- x2goserver/trunk/x2goserver.service (rev 0) +++ x2goserver/trunk/x2goserver.service 2013-01-12 08:56:15 UTC (rev 175041) @@ -0,0 +1,11 @@ +[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
