Re: How to handle circular build dependencies?
Rex Dieter kirjoitti 28.1.2020 16:57: 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? See if this helps, https://docs.fedoraproject.org/en-US/packaging-guidelines/#bootstrapping Hi, thanks, I'll check that out. Markku. -- Rex ___ devel mailing list -- devel@lists.fedoraproject.org To unsubscribe send an email to devel-le...@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
Re: How to handle circular build dependencies?
Richard W.M. Jones kirjoitti 27.1.2020 22:35: On Mon, Jan 27, 2020 at 06:43:36PM +0200, Markku Korkeala wrote: 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. Hi, thanks for all the suggestions and links. It should be possible to build "cut down" clojure, but might require too much effort. I think I'll study the problem little bit more and see also how the Debian maintainers solved this issue. -- Markku ___ devel mailing list -- devel@lists.fedoraproject.org To unsubscribe send an email to devel-le...@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
Re: How to handle circular build dependencies?
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? See if this helps, https://docs.fedoraproject.org/en-US/packaging-guidelines/#bootstrapping -- Rex ___ devel mailing list -- devel@lists.fedoraproject.org To unsubscribe send an email to devel-le...@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
Re: How to handle circular build dependencies?
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-le...@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
How to handle circular build dependencies?
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? 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 :) And also do I have to do that bootstrapping again when building clojure for example EPEL-8? Best regards, Markku -- Markku ___ devel mailing list -- devel@lists.fedoraproject.org To unsubscribe send an email to devel-le...@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