softwarecollections icon indicating copy to clipboard operation
softwarecollections copied to clipboard

Create .repo with dependent repositories

Open jankaluza opened this issue 11 years ago • 6 comments

In case of dependencies between repositories, users have to find and enable each dependent repository. In case of passenger40 it means to enable 7 different repositories.

It would be great to generate .repo with all the dependent repositories, so user could download/enable just single .repo which would later enable all the dependencies.

jankaluza avatar Sep 10 '14 12:09 jankaluza

OK, but we need to specify it more precisely. Should such .repo be part of the RPM we already have or shell I add another RPM? If I add new repos, it may lead to collisions (if two or more collections depend on the same one).

How about to sym-link the RPMs containing .repo files of dependencies to the current repository? User would download the RPM with repo file for passenger40 (the one we already have) and then it would be possible to use YUM to install the other necessary repos. In case that the user already have some of those repos installed, there would be no collision. The user may even decide to take dependencies from any other repo.

misli avatar Sep 10 '14 13:09 misli

I've actually had a similar idea about depended repositories on my mind already some time, but I'd rather build it in copr directly, because it is the place where we define repositories available for dependencies etc. In the end we could create one repository with all SCL collections, which would be more similar how RHSCL works.

So, my idea was to be able to specify depended coprs and create a new bigger repo from all packages in all depended coprs + packages in this particular copr. Then we do not need to specify a repository for depended packages, it would be done automatically and correctly for all buildroots.

hhorak avatar Sep 10 '14 14:09 hhorak

As for the implementation, I guess hardlinks are what we would need here, since symlinks could break when package disappears from depended repo and the new repo is not re-generated yet. The re-generation itself might get tricky as well, since we might do it automatically or manually, both has advantages and disadvantages at the same time.

hhorak avatar Sep 10 '14 15:09 hhorak

Would not be better to have command which would care about it? Like"

scl repo enable ruby193

which would comunicate via API to softwarecollection.org or even Copr?

xsuchy avatar Sep 11 '14 14:09 xsuchy

I don't think moving this functionality to scl is a good idea, since this is a general copr issue, not strictly connected to scl. We may rather reconsider the goal of existance a 'depended repo field' -- from my POV it implements a feature of "building a copr above some other copr". Which makes great sense to me, but we should implement it properly also in the usage-time part, not only in the build-time part.

hhorak avatar Sep 11 '14 15:09 hhorak

We use an RPM package to enable the SCL repository, right?

What if we put those RPMs into another repository ("of repositories") and make the RPMs dependent on each other?

User would install the main "repository of repositories" in their system. Than they would install a repo of desired collection with yum/dnf - which would also installed all other repos needed. And they are ready to use!

asamalik avatar Sep 18 '14 10:09 asamalik