On 10/03/2014 08:24 AM, Bohuslav Kabrda wrote:
> ----- Original Message -----
> > Hi all,
> >
> > I have a proposal that would change how dependencies are defined in copr:
> >
> > Problem:
> > Currently, copr allows to add a link to an arbitrary repo URL that is
> > available for installing dependencies during building in copr. Using
> > this dependent repo link we are able to build packages in coprA with
> > dependencies in another coprB.
> >
> > However, when enabling only coprA and installing some packages from this
> > copr, we can miss some packages from coprB, because those packages are
> > not available since coprB is not enabled.
> >
> > Solution:
> > We should be able to define dependency between coprs correctly. When
> > creating coprA, we would add one or more depended coprs ('userB/coprB')
> > instead of repo link. Then all packages from these coprs would be
> > available during build, correct buildroots would be used (no need to
> > specify variables $releasever and in addition, we would be able to
> > provide correct (all) RPMs also when *installing* coprs.
> >
> > There are basically two ways how to implement this on the users' side:
> > 1) Simpler, preferred by Mirek, copr maintainer (CC'd):
> > 'copr' plugin in dnf would include -r option, which would basically
> > installed all related coprs. That means when running `dnf copr enable -r
> > userA/coprA`, user would end with two coprs enabled: userA/coprA and
> > userB/coprB.
> >
> > 2) More complicated, preferred by me :) :
> > copr A repository from example above would not only include RPMs build
> > as part of this copr, but would include also packages from copr B. That
> > means that when running `dnf copr enable userA/coprA`, user would not
> > need to install userB/coprB repository and would have all packages
> > available.
>
> 3) (And I think that I've already heard this idea from someone) I think it'd 
> be better to:
> - Put the copr repofiles into RPMs and put all these RPMs in a single repo.
> - These repofile RPMs can depend on each other.
> - "dnf copr enable" installs an RPM from this repo.
> - When a dependency between repos change, repofile RPMs will be updated. When 
> user runs "dnf update", he will get the new repofile RPM build, which will 
> have dependencies changed properly - so dnf will install these, too.
>
> > Both ways struggle with refreshing data:
> > * in 1) we might need to refresh coprs enabled (on the users' side)
> > * in 2) we would need to re-create repodata in depended coprA if coprB
>
> I think that 3) is ok from this POV. The problem here can be, that in 3), dnf 
> would on update technically enable other copr repos without explicit user 
> approval. I'm not sure whether this is a problem or not, though.
Well, dnf/yum should show you what will be installed/enabled as dependencies, 
so the user is kind of informed what extra repos will be installed and enabled.
>
> > gets changed (on the server's side).
> >
> > Let's discuss this a bit, I'm eager to hear your opinions.
> >
> > Cheers,
> > Honza
>
-- 
Tomas Hozza
Software Engineer - EMEA ENG Developer Experience

PGP: 1D9F3C2D
Red Hat Inc. http://cz.redhat.com
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel
Fedora Code of Conduct: http://fedoraproject.org/code-of-conduct

Reply via email to