[lsst-dm-stack-users] Information and good practices about rules which define if a package has to managed by eups or by the system.

Fabrice Jammes fabrice.jammes at in2p3.fr
Thu Apr 3 08:28:43 PDT 2014


Hello,

For Qserv, i packaged several dependencies with eups, and  i would like 
to understand better the rules which define if a package has to managed 
by eups or by the system.

eups pros :

- easy to set a specific version of a product
- easy to change the version of a product
- easy to patch a product
- no root account needed
- works on multiple linux-based OS

eups cons :

- require time to build/install package while installing Qserv
- need engineering and development to create and maintain packages
- some dependencies trees can't be modeled (for example mysqlpython 
can't depend on mysqlserver or mysqlclient)
- integration between system packages and eups packages is often complex

A concrete example : zookeeper relies on java. So do we have to package 
java in eups or can we use the system version ? If we use the system 
version, do we perform both  the eups declare product system, and the 
version checking in newinstall.sh ? In this case Qserv and LSST-stack 
may have a different newinstall.sh file, depending on their system 
dependencies.

Is there some rules and good practices in order to choose a packaging 
method (system or eups) for a given product ? I suppose that stable 
products (like kernel, gcc, libc) could be system-based, so that 
newinstall.sh would change only exceptionally, and that products moving 
quickly could be eups-based, but is it possible to set more accurately 
the cursor ?

Thanks in advance for your answers, and have a nice day.

Fabrice



More information about the dm-users mailing list