Hello,
There doesn't seem to be any clear documentation in the Packaging Guidelines concerning servers that aren't meant to start on boot so I thought I would ask for clarification.
I found the following in the systemd guidelines:
Each package that contains software that wants/needs to start a
traditional service at boot MUST have a systemd unit file.
which I interpret as meaning a script is not required in the case of a server that doesn't mean to start at boot.
Is this correct?
The reason I am asking is that I maintain the eclipse-rse package (Remote System Explorer). In addition to the normal Eclipse plug-ins and features, the upstream project also packages a server for linux that is used to allow exploring of a linux host via the Eclipse client software. The eclipse-rse package has not packaged the server in the past and I wish to do so now.
The server is currently packaged upstream as a tarball to be expanded into a single directory (/opt/rseserver is suggested). It contains perl scripts, jar files, and some property files. The perl scripts are the front-end and they end up using java to invoke classes found in the jar files. The property files are used to set certain features, most notably, ssl support. Ssl support requires some additional set-up to work properly such as setting up a Java Keystore.
I have split up the tarball into the configuration property files which I placed in /etc/sysconfig/rseserver, the java jar files which I put into /usr/share/java/eclipse-rse-server and the perl scripts which I placed into /usr/share/eclipse-rse-server. I modified the perl scripts so that they would work with the files moved as they were.
Is my break-up of the upstream package reasonable?
Regards,
-- Jeff J.
On Wed, Dec 07, 2011 at 03:05:53PM -0500, Jeff Johnston wrote:
Hello,
There doesn't seem to be any clear documentation in the Packaging Guidelines concerning servers that aren't meant to start on boot so I thought I would ask for clarification.
I found the following in the systemd guidelines:
Each package that contains software that wants/needs to start a
traditional service at boot MUST have a systemd unit file.
which I interpret as meaning a script is not required in the case of a server that doesn't mean to start at boot.
Is this correct?
Probably not but both your wording and ours are making it difficult to know that for sure. How does your software start? Does a normal user run it, possibly adding it to their ~/.profile or their desktop environment's system for starting something on boot? If so, you do not need a systemd unit file.
OTOH, if a system administrator is required to run it and then it is a service for people connecting to that box, it almost certainly does fall into this category and needs to have a systemd unit file.
The reason I am asking is that I maintain the eclipse-rse package (Remote System Explorer). In addition to the normal Eclipse plug-ins and features, the upstream project also packages a server for linux that is used to allow exploring of a linux host via the Eclipse client software. The eclipse-rse package has not packaged the server in the past and I wish to do so now.
The server is currently packaged upstream as a tarball to be expanded into a single directory (/opt/rseserver is suggested). It contains perl scripts, jar files, and some property files. The perl scripts are the front-end and they end up using java to invoke classes found in the jar files. The property files are used to set certain features, most notably, ssl support. Ssl support requires some additional set-up to work properly such as setting up a Java Keystore.
I have split up the tarball into the configuration property files which I placed in /etc/sysconfig/rseserver, the java jar files which I put into /usr/share/java/eclipse-rse-server and the perl scripts which I placed into /usr/share/eclipse-rse-server. I modified the perl scripts so that they would work with the files moved as they were.
Is my break-up of the upstream package reasonable?
The configuration files should probably go in %{_sysfonfdir}/rseserver (becomes /etc/rseserver) rather than in /etc/sysconfig. The other pieces sound okay to me although a java person may want to weigh in as well.
Be careful, though -- if you're packaging for inclusion in Fedora, everything must be compiled from source. That means that the jar files you refer to would need to be removed in the rpm's %prep section and then rebuilt in the %build section from the java source files.
-Toshio
packaging@lists.fedoraproject.org