On creating packages with dependencies in third-party repos

Hi all,

I want to create a NethServer package for a specific software (so I can simply manage its basic configuration via WebGUI); installing that software is going to require a third-party repository in which this software has been provided. The software is free (GPLv2), so no issues in including it by the legal point of view, and the packages are quite fine (I’m already using them without big issues) and created by the same developers that wrote it for CentOS.

My questions are:

  • Is installation of third-party repositories allowed in NS? How is the policy from NS @dev_team?

  • Is it possible to include the installation of a repository RPM (yes, they also provide the RPM to install GPG key and .repo file) within an RPM file, then subsequently require some packages to be installed from that repository? how do you usually achieve it? To better explain, the workflow should be something like:

    Installing 3rd-party repo RPM -> Enabling the 3rd-party repo and checking for newly available packages in it -> installing dependency of the main package from 3rd-party repo -> installing main package

    I would like to do this stuff in the minimum number of separated steps possible. Do you advice for a script?

Thanks to anyone will help.

Let’s say, for instance the third party-repository is RepoForge:

  • As a user, you can do what you want. Just follow RepoForge instructions (install “rpmforge-release” RPM)
  • As a NS developer you should not upload rpmforge-release to NS repositories because it’s not an “upstream repository”. We currently enable only CentOS upstream repositories. We consider EPEL “upstream” because the CentOS project itself ships “epel-release” RPM from its repositories.

I’d say NO, for the reason above.

Our policy to do this (as long as the software license allows it) is to upload the specific software and its dependencies to NS repository (nethforge, or updates), where it is automatically signed by NS GPG key.

Some real case “third-party” examples:

  • software from Stephane’s repository require installing the “sdl” repo before using it
  • software from Nethesis repositories, providing the “NethServer Enterprise” version, requires registration and installing Nethesis repositories
1 Like