After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 762025 - Fix dependency cycles in bootstrap
Fix dependency cycles in bootstrap
Status: RESOLVED FIXED
Product: jhbuild
Classification: Infrastructure
Component: general
unspecified
Other Linux
: Normal normal
: ---
Assigned To: Jhbuild maintainers
Jhbuild QA
Depends on:
Blocks:
 
 
Reported: 2016-02-14 10:48 UTC by Christoph Reiter (lazka)
Modified: 2016-02-17 08:52 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
autotools: add a "bootstrap" attribute to skip default dependencies (4.38 KB, patch)
2016-02-14 10:48 UTC, Christoph Reiter (lazka)
committed Details | Review
Fix rnc validation by adding the new bootstrap attribute there as well. (1.39 KB, patch)
2016-02-17 07:44 UTC, Christoph Reiter (lazka)
committed Details | Review
make check: validate moduleset.rnc using trang and xmllint (1.29 KB, patch)
2016-02-17 07:45 UTC, Christoph Reiter (lazka)
committed Details | Review

Description Christoph Reiter (lazka) 2016-02-14 10:48:35 UTC
Created attachment 321106 [details] [review]
autotools: add a "bootstrap" attribute to skip default dependencies

Packages like autoconf/automake in the bootstrap moduleset use
the autotools module type which defines default dependencies
and leads to dependency cycles during bootstrap.

This adds a bootstrap attribute which removes the default dependencies
and allows the packages to control all dependencies.

Initially the plan was to re-use the skip-autogen attribute and skip
the default dependencies if "true", but skip-autogen also prevents
configure from running which is still needed for those packages.
Comment 1 Frederic Peters 2016-02-16 11:52:35 UTC
Comment on attachment 321106 [details] [review]
autotools: add a "bootstrap" attribute to skip default dependencies

sounds ok.
Comment 2 Ting-Wei Lan 2016-02-17 04:31:15 UTC
rnc validation error:
./modulesets/bootstrap.modules:46: element autotools: Relax-NG validity error : Invalid attribute bootstrap for element autotools
./modulesets/bootstrap.modules:53: element autotools: Relax-NG validity error : Invalid attribute bootstrap for element autotools
./modulesets/bootstrap.modules:63: element autotools: Relax-NG validity error : Invalid attribute bootstrap for element autotools
./modulesets/bootstrap.modules:72: element autotools: Relax-NG validity error : Invalid attribute bootstrap for element autotools
./modulesets/bootstrap.modules:81: element autotools: Relax-NG validity error : Invalid attribute bootstrap for element autotools

A simple patch that adds 'attribute bootstrap { text }?,' to 'attlist.autotools' can fix it, but it seems it is better to use 'true|false' in both dtd and rnc because we don't support other values.
Comment 3 Christoph Reiter (lazka) 2016-02-17 07:12:56 UTC
How can I reproduce this error?
Comment 4 Ting-Wei Lan 2016-02-17 07:17:12 UTC
I use trang and xmllint.

$ trang modulesets/moduleset.rnc modulesets/moduleset.rng
$ xmllint --noout --relaxng modulesets/moduleset.rng modulesets/*.modules
Comment 5 Christoph Reiter (lazka) 2016-02-17 07:44:33 UTC
Created attachment 321462 [details] [review]
Fix rnc validation by adding the new bootstrap attribute  there as well.

Also make it stricter and only allow true|false in both dtd/rnc.
Comment 6 Christoph Reiter (lazka) 2016-02-17 07:45:18 UTC
Created attachment 321463 [details] [review]
make check: validate moduleset.rnc using trang and  xmllint
Comment 7 Christoph Reiter (lazka) 2016-02-17 07:46:05 UTC
Thanks. Could you have a quick look at the two patches?
Comment 8 Ting-Wei Lan 2016-02-17 08:49:06 UTC
Thanks, these patches work for me.
Comment 9 Christoph Reiter (lazka) 2016-02-17 08:52:19 UTC
Thanks. pushed to master