Re: How to handle circular build dependencies?

2020-01-29 Thread Markku Korkeala

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?

2020-01-29 Thread Markku Korkeala

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?

2020-01-28 Thread Rex Dieter
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?

2020-01-27 Thread Richard W.M. Jones
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?

2020-01-27 Thread Markku Korkeala

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