[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