Subject: RPM packaging of X2Go Session Broker
From: Mike Gabriel <[email-masked]>
To: Jan Engelhardt <[email-masked]>
Cc: [email-masked]
Date: Wed, 15 May 2013 22:21:54 +0200

Package: x2gobroker
Version: 0.0.2.1
Severity: important

Hi Jan,

I open up a new bug for this. Please post updates to the new bug  
number, if any.

@all: this is a follow up of issue #201.

On Mi 15 Mai 2013 16:37:06 CEST Jan Engelhardt wrote:

>
> On Tuesday 2013-05-14 12:48, Mike Gabriel wrote:
>> python-x2gobroker (mostly covered by setup.py):
>>
>> /.
>> /etc
>> /etc/default
>> /etc/default/python-x2gobroker
> [...]

I comment in the lines below where to find that file in the source  
project x2gobroker.git (or in the installed package fileset)...

Absolute paths mean: this is the path when installed.
Relative paths mean: this is the path in x2gobroker.git

> --- yourlist	2013-05-15 16:34:44.890113044 +0200
> +++ susepkg	2013-05-15 16:31:32.657658085 +0200
> @@ -1,22 +1,11 @@
> -/etc
> -/etc/apache2
> -/etc/apache2/conf.d
> -/etc/apache2/conf.d/x2gobroker-wsgi

Symlink -> /etc/x2go/x2gobroker-wsgi.apache.conf

> -/etc/apache2/sites-available
> -/etc/apache2/sites-available/x2gobroker

Symlink -> /etc/x2go/x2gobroker-wsgi.apache.vhost

> -/etc/default
> -/etc/default/python-x2gobroker

x2gobroker.git/debian/python-x2gobroker.default

> -/etc/default/x2gobroker-authservice

x2gobroker.git/debian/x2gobroker-authservice.default

> -/etc/default/x2gobroker-daemon

x2gobroker.git/debian/x2gobroker-daemon.default

The files from /etc/default/* get sourced by the init scripts (see below).

> -/etc/init.d
> -/etc/init.d/x2gobroker-authservice

x2gobroker.git/debian/x2gobroker-authservice.init

> -/etc/init.d/x2gobroker-daemon

x2gobroker.git/debian/x2gobroker-daemon.init

> -/etc/logrotate.d
>  /etc/logrotate.d/x2gobroker-authservice
>  /etc/logrotate.d/x2gobroker-daemon
>  /etc/logrotate.d/x2gobroker-wsgi
>  /etc/pam.d
>  /etc/pam.d/x2gobroker
> +/etc/permissions.d/x2gobroker.easy
> +/etc/permissions.d/x2gobroker.paranoid
> +/etc/permissions.d/x2gobroker.secure

What are these for? Anything we should adopt in the Debian package(s)?

>  /etc/x2go
>  /etc/x2go/broker
>  /etc/x2go/broker/x2gobroker-authservice-logger.conf
> @@ -25,178 +14,108 @@
>  /etc/x2go/x2gobroker-wsgi.apache.conf
>  /etc/x2go/x2gobroker-wsgi.apache.vhost
>  /etc/x2go/x2gobroker.conf
> -/usr
> -/usr/bin
>  /usr/bin/x2gobroker-testauth
> -/usr/lib
> -/usr/lib/python2.7
> -/usr/lib/python2.7/site-packages
>  /usr/lib/python2.7/site-packages/x2gobroker
> -/usr/lib/python2.7/site-packages/x2gobroker-0.0.2.1.egg-info

[... skipping the python egg related files... ]

>  /usr/lib/x2go
>  /usr/lib/x2go/x2gobroker-agent
>  /usr/lib/x2go/x2gobroker-agent.pl
> -/usr/sbin
>  /usr/sbin/x2gobroker
>  /usr/sbin/x2gobroker-authservice
>  /usr/sbin/x2gobroker-keygen
>  /usr/sbin/x2gobroker-pubkeyauthorizer
> -/usr/share
> -/usr/share/doc
> -/usr/share/doc/python-x2gobroker
> -/usr/share/doc/python-x2gobroker/NEWS.gz
> -/usr/share/doc/python-x2gobroker/README
> -/usr/share/doc/python-x2gobroker/TODO
> -/usr/share/doc/python-x2gobroker/buildinfo_all.gz
> -/usr/share/doc/python-x2gobroker/changelog.Debian.gz
> -/usr/share/doc/python-x2gobroker/copyright
> -/usr/share/doc/x2gobroker
> -/usr/share/doc/x2gobroker-agent
> -/usr/share/doc/x2gobroker-agent/NEWS.gz
> -/usr/share/doc/x2gobroker-agent/README
> -/usr/share/doc/x2gobroker-agent/TODO

NEWS.gz, README, TODO are rendered from  
x2gobroker.git/{MEWS,README,TODO} for each bin:package.

> -/usr/share/doc/x2gobroker-agent/buildinfo_amd64.gz

This file is auto-generated during build.

> -/usr/share/doc/x2gobroker-agent/changelog.Debian.gz

x2gobroker.git/debian/changelog (abused as upstream changelog by X2Go  
Dev Team)

> -/usr/share/doc/x2gobroker-agent/copyright

x2gobroker.git/debian/copyright

> -/usr/share/doc/x2gobroker-authservice
> -/usr/share/doc/x2gobroker-authservice/NEWS.gz
> -/usr/share/doc/x2gobroker-authservice/README
> -/usr/share/doc/x2gobroker-authservice/TODO
> -/usr/share/doc/x2gobroker-authservice/buildinfo_all.gz
> -/usr/share/doc/x2gobroker-authservice/changelog.Debian.gz
> -/usr/share/doc/x2gobroker-authservice/copyright
> -/usr/share/doc/x2gobroker-daemon
> -/usr/share/doc/x2gobroker-daemon/NEWS.gz
> -/usr/share/doc/x2gobroker-daemon/README
> -/usr/share/doc/x2gobroker-daemon/TODO
> -/usr/share/doc/x2gobroker-daemon/buildinfo_all.gz
> -/usr/share/doc/x2gobroker-daemon/changelog.Debian.gz
> -/usr/share/doc/x2gobroker-daemon/copyright
> -/usr/share/doc/x2gobroker-wsgi
> -/usr/share/doc/x2gobroker-wsgi/NEWS.gz
> -/usr/share/doc/x2gobroker-wsgi/README
> -/usr/share/doc/x2gobroker-wsgi/TODO
> -/usr/share/doc/x2gobroker-wsgi/buildinfo_all.gz
> -/usr/share/doc/x2gobroker-wsgi/changelog.Debian.gz
> -/usr/share/doc/x2gobroker-wsgi/copyright
> -/usr/share/doc/x2gobroker/NEWS.gz
> -/usr/share/doc/x2gobroker/README
> -/usr/share/doc/x2gobroker/TODO
> -/usr/share/doc/x2gobroker/buildinfo_all.gz
> -/usr/share/doc/x2gobroker/changelog.Debian.gz
> -/usr/share/doc/x2gobroker/copyright

Dito for the bin:package above.

> -/usr/share/man
> -/usr/share/man/man8
> -/usr/share/man/man8/x2gobroker-authservice.8.gz
> -/usr/share/man/man8/x2gobroker-keygen.8.gz
> -/usr/share/man/man8/x2gobroker-pubkeyauthorizer.8.gz
> -/usr/share/man/man8/x2gobroker-testauth.8.gz
> -/usr/share/man/man8/x2gobroker.8.gz

These should get installed into your package, I guess. You can find them in

x2gobroker.git/man/man8/*

> -/usr/share/pyshared
> -/usr/share/pyshared/x2gobroker
> -/usr/share/pyshared/x2gobroker-0.0.2.1.egg-info

[ ... skipping some more python files ... ]

> -/var
> -/var/log

>  /var/log/x2gobroker

make sure to install this directory

   2750 x2gobroker:x2gobroker

> +/var/lib/x2gobroker

This is the home directory of system user x2gobroker. Not that there  
is some postinst magic in x2gobroker.git/debian/*.postinst scripts.  
The magic does:

   * create system user x2gobroker (x2gobroker-daemon, x2gobroker-wsgi,
     x2gobroker-authservice, x2gobroker-agent requires that user)
   * set permissions on the log directory

Another thing that your package x2gobroker-agent should handle: the  
file /usr/lib/x2go/x2gobroker-agent (the setuid wrapper for  
x2gobroker-agent.pl) has to be installed setuid root.

   4750 root:x2gobroker /usr/lib/x2go/x2gobroker-agent

I hope this gets us a bit further.

Mike

-- 

DAS-NETZWERKTEAM
mike gabriel, herweg 7, 24357 fleckeby
fon: +49 (1520) 1976 148

GnuPG Key ID 0x25771B31
mail: [email-masked], http://das-netzwerkteam.de

freeBusy:
https://mail.das-netzwerkteam.de/freebusy/m.gabriel%40das-netzwerkteam.de.xfb