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-whic...
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