Packaging Salome Platform for Gentoo Linux

For some time, I’ve been planning to package Salome Platform for the Gentoo Linux distribution. Being a source based rolling distribution, there are some topics I need to solve to get this done properly.

  • Availability of sources: The FAQ says, the sources are included in the distribution inside an ARCHIVES directory. Yet, the universal linux tarball doesn’t contain an ARCHIVES directory, only a SOURCES directory with a single SAMPLES subdir. The sources, however, are available through git. Is there any other means to get versioned source tarballs or is the only way to get them through git by the means of downloading tagged commits?
  • Git sources: The available documentation doesn’t give any info on a hierarchy of the git modules and how they should get layed out for a proper building. On the git server, all modules are layed out mostly linearly with some hierarchy given by the modules, plugins, tools and samples directory structure. It’s not possible to figure out how to lay out the directories, what’s the toplevel CMakeList.txt file to start with, etc. There’s some documentation targeted to Salome developers on the internals of how to properly write cmake files (CMake build procedure: SALOME - CMake build procedure — CMake build procedure 1.0 documentation), which doesn’t contain much help for either users or package maintainers to build Salome from scratch. So far, I’ve found no usable and valid documentation on this topic. Is there some documentation available, which I’ve missed so far, which would help in figuring this out?
  • SAT tool: The FAQ also speaks of the sat tool to verify dependencies and/or build modules for Salome. This tool isn’t distributed with the universal linux tarball as well. The git tree contains the sat source code as well as Salome configuration files for sat in sat_salome, but no setup.py or other standard pythonic means for package maintainers, to properly package the tool. Is there any documentation that could be used to figure out a distribution compliant installation routine for the package? Is it a third party package, which can be downloaded and installed from somewhere else?
  • Packaging: What’s the possibility to split up the package into several interdependant packages which can be built and installed separately? Or is it recommended to build Salome as a single monolithic package? How about enabling or disabling certain modules with a monolithic build through the means of configuration options?

Thanks for your feedback on figuring this out.

1 Like

Ok, so now I noticed that the tarballs for specific distributions include the ARCHIVES directory. Just wondering why these are not included in the Linux Universal distribution?
Does it matter which of the distributions I’m using to get the source archives, or are they identical for all of them?

Now, when I try to run ./sat config SALOME-9.9.0-native --check-system, I get an error

Unknown distribution: 'not found'
Please add your distribution to src/internal_config/distrib.pyconf

I tried adding "Gentoo" : "GL" to distrib.pyconf, with the same result, so the info given seems incomplete. Grepping through the sat sources, I noticed, that rpm and apt are supported as package managers, which I assume is the reason why adding an entry to DISTRIBUTIONS isn’t enough. There are several code snippets in src/system.py and src/product.py which check for one these PMs