[prev in list] [next in list] [prev in thread] [next in thread] 

List:       fedora-devel-list
Subject:    Re: How to handle circular build dependencies?
From:       "Richard W.M. Jones" <rjones () redhat ! com>
Date:       2020-01-27 20:35:17
Message-ID: 20200127203517.GK15536 () redhat ! com
[Download RAW message or body]

On Mon, Jan 27, 2020 at 06:43:36PM +0200, Markku Korkeala wrote:
> Hi,
> 
> sorry if this a newbie question, I tried to search this
> but did not find good documentation on this problem.
> 
> I'm in the process of upgrading the clojure package to
> next version, which has new dependencies. These dependencies
> require certain clojure version themselves, so it makes a
> chicken-and-egg kind of problem. Are there good ways to handle
> these kind of circular dependencies?

Not really, I think you'll end up building at least
one package twice.

I think it's Perl where IIRC the package can be configured
as a bootstrap package (by setting an RPM variable), built
that way, the dependencies are then built, then the perl
package is flipped back to non-bootstrap mode and built a
second time against those just built dependencies.

If you do it all in a side tag then no one will see the
intermediate packages.

> I know I can update clojure to certain alpha version,
> which the new libraries require. Then build those,
> and when they are accepted then upgrade the
> clojure package, and then upgrade those libraries, etc. But
> it is tedious. I'm hoping there would be a better
> way :)

Is it possible to build a "cut down" clojure which
doesn't need the dependencies (ie that would be the
bootstrap version)?

> And also do I have to do that bootstrapping
> again when building clojure for example EPEL-8?

Probably :-)

IMHO it helps to script Koji builds.  We don't have any official
tooling for that as far as I'm aware, but various people have built
unofficial tools including me (see
https://rwmj.wordpress.com/2020/01/14/goals-an-experimental-new-tool-which-generalizes-make/
http://git.annexia.org/?p=fedora-ocaml-rebuild.git;a=summary)

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
virt-p2v converts physical machines to virtual machines.  Boot with a
live CD or over the network (PXE) and turn machines into KVM guests.
http://libguestfs.org/virt-v2v
_______________________________________________
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-leave@lists.fedoraproject.org
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic