[x2goserver] Initial import

Orion Poplawski orion at fedoraproject.org
Thu Aug 1 15:48:45 UTC 2013


commit cad0c8b3f7babdadd1dbff7d51922cee98692432
Author: Orion Poplawski <orion at nwra.com>
Date:   Thu Aug 1 09:48:38 2013 -0600

    Initial import

 .gitignore                         |    1 +
 sources                            |    1 +
 x2gocleansessions.init             |  104 +++++++++++++++
 x2gocleansessions.service          |    8 ++
 x2goserver-4.0.1.3-use-pwgen.patch |   21 +++
 x2goserver-install.patch           |   28 ++++
 x2goserver.spec                    |  244 ++++++++++++++++++++++++++++++++++++
 7 files changed, 407 insertions(+), 0 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index e69de29..a4c2c36 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/x2goserver-4.0.1.6.tar.gz
diff --git a/sources b/sources
index e69de29..246e879 100644
--- a/sources
+++ b/sources
@@ -0,0 +1 @@
+61f2248fb16bc035f92b9588ab19c35e  x2goserver-4.0.1.6.tar.gz
diff --git a/x2gocleansessions.init b/x2gocleansessions.init
new file mode 100644
index 0000000..7418081
--- /dev/null
+++ b/x2gocleansessions.init
@@ -0,0 +1,104 @@
+#!/bin/sh
+#
+# x2gocleansessions - Starts/stop the "x2gocleansessions" daemon
+#
+# chkconfig:   - 99 1
+# description: Cleans the X2Go session database
+
+### BEGIN INIT INFO
+# Provides: x2gocleansessions at batch
+# Required-Start: $local_fs
+# Required-Stop: $local_fs
+# Default-Stop: 016
+# Short-Description: Starts/stop the "x2gocleansessions" daemon
+# Description:      Cleans the X2Go session database
+### END INIT INFO
+
+# Source function library.
+. /etc/rc.d/init.d/functions
+
+exec=/usr/sbin/x2gocleansessions
+prog="x2gocleansessions"
+config=/etc/sysconfig/x2gocleansessions
+
+[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog
+
+lockfile=/var/lock/subsys/$prog
+
+start() {
+    [ -x $exec ] || exit 5
+    [ -f $config ] || exit 6
+    echo -n $"Starting $prog: "
+    daemon $exec $OPTS
+    retval=$?
+    echo
+    [ $retval -eq 0 ] && touch $lockfile
+}
+
+stop() {
+    echo -n $"Stopping $prog: "
+    if [ -n "`pidfileofproc $exec`" ] ; then
+        killproc $exec
+                RETVAL=3
+    else
+        failure $"Stopping $prog"
+    fi
+    retval=$?
+    echo
+    [ $retval -eq 0 ] && rm -f $lockfile
+}
+
+restart() {
+    stop
+    start
+}
+
+reload() {
+    restart
+}
+
+force_reload() {
+    restart
+}
+
+rh_status() {
+    # run checks to determine if the service is running or use generic status
+    status $prog
+}
+
+rh_status_q() {
+    rh_status >/dev/null 2>&1
+}
+
+
+case "$1" in
+    start)
+        rh_status_q && exit 0
+        $1
+        ;;
+    stop)
+        rh_status_q || exit 0
+        $1
+        ;;
+    restart)
+        $1
+        ;;
+    reload)
+        rh_status_q || exit 7
+        $1
+        ;;
+    force-reload)
+        force_reload
+        ;;
+    status)
+        rh_status
+        ;;
+    condrestart|try-restart)
+        rh_status_q || exit 0
+        restart
+        ;;
+    *)
+        echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}"
+        exit 2
+esac
+exit $?
diff --git a/x2gocleansessions.service b/x2gocleansessions.service
new file mode 100644
index 0000000..8f382f1
--- /dev/null
+++ b/x2gocleansessions.service
@@ -0,0 +1,8 @@
+[Unit]
+Description=X2go session cleanup
+
+[Service]
+ExecStart=/usr/sbin/x2gocleansessions
+
+[Install]
+WantedBy=multi-user.target
diff --git a/x2goserver-4.0.1.3-use-pwgen.patch b/x2goserver-4.0.1.3-use-pwgen.patch
new file mode 100644
index 0000000..524aa6a
--- /dev/null
+++ b/x2goserver-4.0.1.3-use-pwgen.patch
@@ -0,0 +1,21 @@
+diff -Nru x2goserver-4.0.1.3.orig/x2goserver/sbin/x2godbadmin x2goserver-4.0.1.3/x2goserver/sbin/x2godbadmin
+--- x2goserver-4.0.1.3.orig/x2goserver/sbin/x2godbadmin	2013-07-16 10:40:03.517721364 +0200
++++ x2goserver-4.0.1.3/x2goserver/sbin/x2godbadmin	2013-07-16 10:41:39.992225121 +0200
+@@ -190,7 +190,7 @@
+ }
+ my $dbadmin=$Config->param("postgres.dbadmin");
+ my $x2goadmin="x2godbuser";
+-my $x2goadminpass=`makepasswd`;
++my $x2goadminpass=`pwgen 8 1`;
+ chomp ($x2goadminpass);
+ my $db="x2go_sessions";
+ 
+@@ -314,7 +314,7 @@
+ 		print "Can not find user ($user)\n";
+ 		return;
+ 	}
+-	$pass=`makepasswd`;
++	$pass=`pwgen 8 1`;
+ 	chomp($pass);
+ 
+ 	my $sth=$dbh->prepare("DROP OWNED BY \"x2gouser_$user\"");
diff --git a/x2goserver-install.patch b/x2goserver-install.patch
new file mode 100644
index 0000000..35efd8f
--- /dev/null
+++ b/x2goserver-install.patch
@@ -0,0 +1,28 @@
+diff --git a/x2goserver-xsession/Makefile b/x2goserver-xsession/Makefile
+index 4fe806d..c83d36d 100755
+--- a/x2goserver-xsession/Makefile
++++ b/x2goserver-xsession/Makefile
+@@ -20,6 +20,8 @@ LIBDIR=$(PREFIX)/lib/x2go
+ MANDIR=$(PREFIX)/share/man
+ SHAREDIR=$(PREFIX)/share/x2go
+ 
++XSESSIONDIR ?= /etc/X11/Xsession.d
++
+ #BIN_SCRIPTS=$(shell cd bin && echo *)
+ #SBIN_SCRIPTS=$(shell cd sbin && echo *)
+ #LIB_FILES=$(shell cd lib && echo *)
+@@ -56,12 +58,9 @@ install_scripts:
+ install_config:
+ 	$(INSTALL_DIR) $(DESTDIR)$(ETCDIR)
+ #       provide target dirs for X11 related symlinks
+-	mkdir -p $(DESTDIR)/etc/X11/Xsession.d
+-	touch $(DESTDIR)/etc/X11/Xsession.options
+-	$(INSTALL_FILE) etc/Xsession                    $(DESTDIR)$(ETCDIR)/
++	$(INSTALL_PROGRAM) etc/Xsession                 $(DESTDIR)$(ETCDIR)/
+ 	$(INSTALL_SYMLINK) /etc/X11/Xresources          $(DESTDIR)$(ETCDIR)/
+-	$(INSTALL_SYMLINK) /etc/X11/Xsession.d          $(DESTDIR)$(ETCDIR)/
+-	$(INSTALL_SYMLINK) /etc/X11/Xsession.options    $(DESTDIR)$(ETCDIR)/
++	$(INSTALL_SYMLINK) $(XSESSIONDIR)               $(DESTDIR)$(ETCDIR)/Xsession.d
+ 
+ 
+ install_man:
diff --git a/x2goserver.spec b/x2goserver.spec
new file mode 100644
index 0000000..8554cf2
--- /dev/null
+++ b/x2goserver.spec
@@ -0,0 +1,244 @@
+%global checkout 20130722git65169c9
+Name:           x2goserver
+Version:        4.0.1.6
+Release:        3%{?dist}
+Summary:        X2Go server daemon scripts
+
+Group:          Applications/Communications
+License:        GPLv2+
+URL:            http://www.x2go.org
+Source0:        http://code.x2go.org/releases/source/%{name}/%{name}-%{version}.tar.gz
+# git clone git://code.x2go.org/x2goserver
+# cd x2goserver
+# git archive --prefix=x2goserver-4.1.0.0-20130722git65169c9/ 65169c9d65b117802e50631be0bbd719163d969e | gzip > ../x2goserver-4.1.0.0-20130722git65169c9.tar.gz
+#Source0:        %{name}/%{name}-%{version}-%{checkout}.tar.gz
+Source1:        x2gocleansessions.service
+Source2:        x2gocleansessions.init
+
+Patch0:         x2goserver-4.0.1.3-use-pwgen.patch
+Patch1:         x2goserver-install.patch
+
+BuildRequires:  perl(ExtUtils::MakeMaker)
+%if 0%{?fedora}
+BuildRequires:  man2html-core
+%else
+BuildRequires:  man
+%endif
+Requires:       perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version))
+Requires:       x2goagent
+Requires:       pwgen
+# For /etc/X11/Xresources
+Requires:       xorg-x11-xinit
+Requires:       xorg-x11-fonts-misc
+# We need a database
+Requires:       perl(DBD::SQLite)
+# For printing, file-sharing
+Requires:       sshfs
+Requires(pre):  shadow-utils
+
+%{?perl_default_filter}
+
+%description
+X2Go is a server based computing environment with
+    - session resuming
+    - low bandwidth support
+    - LDAP support
+    - client side mass storage mounting support
+    - audio support
+    - authentication by smartcard and USB stick
+
+This package contains the main daemon and tools for X2Go server-side session
+administrations.
+
+
+%package printing
+Summary:        X2Go server printing support
+Requires:       %{name} = %{version}-%{release}
+
+%description printing
+The X2Go server printing package provides client-side printing support for
+X2Go.
+
+This package has to be installed on X2Go servers that shall be able to pass
+X2Go print jobs on to the X2Go client.
+
+This package co-operates with the cups-x2go CUPS backend. If CUPS server and
+X2Go server are hosted on different machines, then make sure you install
+this package on the X2Go server(s) (and the cups-x2go package on the CUPS
+server).
+
+
+%prep
+%setup -q
+%patch0 -p1 -b .pwgen
+%patch1 -p1 -b .install
+
+# Set pach
+#find -type f | xargs sed -i -r -e '/^((LIBDIR|X2GO_LIB_PATH)=|use lib|my \$x2go_lib_path)/s,/lib/,/%{_lib}/,'
+find -type f | xargs sed -i -r -e '/^LIBDIR=/s,/lib/,/%{_lib}/,'
+sed -i -e 's,/lib/,/%{_lib}/,' x2goserver/bin/x2gopath
+# Don't try to be root
+sed -i -e 's/-o root -g root//' */Makefile
+# Perl pure_install
+sed -i -e 's/perl install/perl pure_install/' Makefile
+
+
+%build
+export PATH=%{_qt4_bindir}:$PATH
+make CFLAGS="%{optflags} -fPIC" %{?_smp_mflags} PERL_INSTALLDIRS=vendor PREFIX=%{_prefix}
+
+
+%install
+make install DESTDIR=%{buildroot} PREFIX=%{_prefix} XSESSIONDIR=/etc/X11/xinit/Xclients.d
+
+# Make symbolic link relative
+rm %{buildroot}%{_sysconfdir}/x2go/Xresources
+ln -s ../X11/Xresources %{buildroot}%{_sysconfdir}/x2go/
+
+# Remove placeholder files
+rm %{buildroot}%{_libdir}/x2go/extensions/*.d/.placeholder
+
+# x2gouser homedir, state dir
+mkdir -p %{buildroot}%{_sharedstatedir}/x2go
+# Create empty session file for %%ghost
+touch %{buildroot}%{_sharedstatedir}/x2go/x2go_sessions
+
+# Printing spool dir
+mkdir -p %{buildroot}%{_localstatedir}/spool/x2goprint
+
+%if 0%{?fedora}
+# System.d session cleanup script
+mkdir -p %{buildroot}%{_unitdir}
+install -pm0644 %SOURCE1 %{buildroot}%{_unitdir}
+%else
+# SysV session cleanup script
+mkdir -p %{buildroot}%{_initddir}
+install -pm0755 %SOURCE2 %{buildroot}%{_initddir}/x2gocleansessions
+%endif
+
+%pre
+getent group x2gouser >/dev/null || groupadd -r x2gouser
+getent passwd x2gouser >/dev/null || \
+    useradd -r -g x2gouser -d /var/lib/x2go -s /sbin/nologin \
+    -c "x2go" x2gouser
+exit 0
+
+%post
+# Initialize the session database
+[ ! -f %{_sharedstatedir}/x2go/x2go_sessions ] &&
+  %{_sbindir}/x2godbadmin --createdb || :
+
+%if 0%{?fedora}
+%systemd_post x2gocleansessions.service
+
+%preun
+%systemd_preun x2gocleansessions.service
+
+%postun
+%systemd_postun x2gocleansessions.service
+%else
+/sbin/chkconfig --add x2gocleansessions
+
+%preun
+if [ "$1" = 0 ]; then
+        /sbin/chkconfig --del x2gocleansessions
+fi
+%endif
+
+%pre printing
+getent group x2goprint >/dev/null || groupadd -r x2goprint
+getent passwd x2goprint >/dev/null || \
+    useradd -r -g x2goprint -d /var/spool/x2goprint -s /sbin/nologin \
+    -c "x2go" x2goprint
+exit 0
+
+
+%files
+%doc debian/copyright
+%dir %{_sysconfdir}/x2go/
+%config(noreplace) %{_sysconfdir}/x2go/x*
+%{_sysconfdir}/x2go/Xresources
+%{_sysconfdir}/x2go/Xsession
+%{_sysconfdir}/x2go/Xsession.d
+%{_bindir}/x2go*
+%exclude %{_bindir}/x2goprint
+%dir %{_libdir}/x2go
+%{_libdir}/x2go/extensions
+%{_libdir}/x2go/x2gosqlitewrapper.pl
+%attr(02755,root,x2gouser) %{_libdir}/x2go/x2gosqlitewrapper
+%{_libdir}/x2go/x2gochangestatus
+%{_libdir}/x2go/x2gocreatesession
+%{_libdir}/x2go/x2godbwrapper.pm
+%{_libdir}/x2go/x2gogetagent
+%{_libdir}/x2go/x2gogetdisplays
+%{_libdir}/x2go/x2gogetports
+%{_libdir}/x2go/x2gogetstatus
+%{_libdir}/x2go/x2goinsertport
+%{_libdir}/x2go/x2goinsertsession
+%{_libdir}/x2go/x2golistsessions_sql
+%{_libdir}/x2go/x2gologlevel
+%{_libdir}/x2go/x2gologlevel.pm
+%{_libdir}/x2go/x2goresume
+%{_libdir}/x2go/x2gormport
+%{_libdir}/x2go/x2gosuspend-agent
+%{_libdir}/x2go/x2gosyslog
+%{_sbindir}/x2go*
+%{_mandir}/man8/x2go*.8.gz
+%exclude %{_mandir}/man8/x2goprint.8.gz
+%{_datadir}/x2go/
+%exclude %{_datadir}/x2go/versions/VERSION.x2goserver-printing
+%exclude %{_datadir}/x2go/x2gofeature.d/x2goserver-printing.features
+%attr(0775,root,x2gouser) %dir %{_sharedstatedir}/x2go/
+%ghost %attr(0660,root,x2gouser) %{_sharedstatedir}/x2go/x2go_sessions
+%if 0%{?fedora}
+%{_unitdir}/x2gocleansessions.service
+%else
+%{_initddir}/x2gocleansessions
+%endif
+
+%files printing
+%{_bindir}/x2goprint
+%{_mandir}/man8/x2goprint.8.gz
+%{_datadir}/x2go/versions/VERSION.x2goserver-printing
+%{_datadir}/x2go/x2gofeature.d/x2goserver-printing.features
+%attr(0700,x2goprint,x2goprint) %{_localstatedir}/spool/x2goprint
+
+%changelog
+* Tue Jul 30 2013 Orion Poplawski <orion at cora.nwra.com> - 4.0.1.6-3
+- Mark /var/lib/x2go as a directory
+- Add patch to make the following changes:
+- Remove Xsession.options
+- Make /etc/x2go/Xsession.d point to /etc/X11/xinit/Xclients.d
+- Make /etc/x2go/Xsession executable
+
+* Mon Jul 29 2013 Orion Poplawski <orion at cora.nwra.com> - 4.0.1.6-2
+- Add SysV init script for EL6
+
+* Mon Jul 29 2013 Orion Poplawski <orion at cora.nwra.com> - 4.0.1.6-1
+- Use 4.0.1.6 release
+- Drop patches applied upstream
+
+* Mon Jul 22 2013 Rok Mandeljc <rok.mandeljc at gmail.com> - 4.1.0.0-0.4.20130722git65169c9
+- Update to latest git
+- Use PREFIX=%{_prefix} when building, not just when installing.
+- Use pwgen instead of makepasswd, which is not available on Fedora.
+- Fixed a missing function import in x2golistsessions.
+- Added dependencies for xorg-x11-fonts-misc
+- Added system.d script for session cleanup on start.
+- Fixed x2goruncommand for TERMINAL -> gnome-terminal; the latter seems to return immediately in Fedora 19.
+
+* Thu May 30 2013 Orion Poplawski <orion at cora.nwra.com> - 4.1.0.0-0.3.20130520gitbd2cfe4
+- Update to latest git
+- Split out printing sub-package
+
+* Wed Jan 23 2013 Orion Poplawski <orion at cora.nwra.com> - 4.1.0.0-0.2.20130122git
+- Add post script to create session database if needed
+
+* Tue Jan 22 2013 Orion Poplawski <orion at cora.nwra.com> - 4.1.0.0-0.1.20130122git
+- Update to 4.1.0.0 git
+
+* Fri Jan 18 2013 Orion Poplawski <orion at cora.nwra.com> - 4.0.0.0-1
+- Update to 4.0.0.0
+
+* Tue Dec 11 2012 Orion Poplawski <orion at cora.nwra.com> - 3.1.1.9-1
+- Initial Fedora package


More information about the scm-commits mailing list