Summary: | net-dns/bind-tools should conditionally depend on dev-python/sphinx | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Grzegorz Kulewski <grzegorz> |
Component: | Current packages | Assignee: | Christian Ruppert (idl0r) <idl0r> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | bertrand, casta, chutzpah, creideiki+gentoo-bugzilla, dan, hydrapolic, jbowler, sam, sokann, zlogene |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: |
bind-tools-9.16.4.ebuild-no-sphinx.patch
bind-tools-9.16.4.ebuild-no-sphinx.patch |
Description
Grzegorz Kulewski
2020-06-30 17:57:00 UTC
Completely agreed. This is insane amount of dependencies just for some doc/man page. The ebuild already has a doc use flag, this dependency should be hidden behind this flag too. Normally man pages are always supposed to be installed, so the solution a few packages do in this situation (where things like sphinx, asciidoctor, etc... are needed just for this) is bundle man pages in a separate tarball and install those when USE=-doc It is however extra maintenance work, but it would be much appreciated if bind-tools would go this route. Well, after a quick look at the package the manpages are already prebuilt in the tarball (doc/man/*.[158]in). sphinx should not be needed. When manually building man pages, this is correctly handled without sphinx : # ./configure # cd doc/man # ls arpaname.1in delv.1in dnssec-cds.rst dnssec-dsfromkey.8in dnssec-keyfromlabel.rst dnssec-revoke.8in dnssec-signzone.rst filter-aaaa.8in Makefile named-checkconf.8in named.conf.rst named-rrchecker.1in nslookup.1in pkcs11-destroy.rst pkcs11-tokens.8in rndc-confgen.rst arpaname.rst delv.rst dnssec-checkds.8in dnssec-dsfromkey.rst dnssec-keygen.8in dnssec-revoke.rst dnssec-verify.8in filter-aaaa.rst Makefile.in named-checkconf.rst named-journalprint.8in named-rrchecker.rst nslookup.rst pkcs11-keygen.8in pkcs11-tokens.rst rndc.conf.rst conf.py dig.1in dnssec-checkds.rst dnssec-importkey.8in dnssec-keygen.rst dnssec-settime.8in dnssec-verify.rst host.1in mdig.1in named-checkzone.8in named-journalprint.rst named.rst nsupdate.1in pkcs11-keygen.rst rndc.8in rndc.rst ddns-confgen.8in dig.rst dnssec-coverage.8in dnssec-importkey.rst dnssec-keymgr.8in dnssec-settime.rst dnstap-read.1in host.rst mdig.rst named-checkzone.rst named-nzd2nzf.8in nsec3hash.8in nsupdate.rst pkcs11-list.8in rndc.conf.5in ddns-confgen.rst dnssec-cds.8in dnssec-coverage.rst dnssec-keyfromlabel.8in dnssec-keymgr.rst dnssec-signzone.8in dnstap-read.rst index.rst named.8in named.conf.5in named-nzd2nzf.rst nsec3hash.rst pkcs11-destroy.8in pkcs11-list.rst rndc-confgen.8in # make for man in arpaname.1in ddns-confgen.8in delv.1in dig.1in dnssec-cds.8in dnssec-checkds.8in dnssec-coverage.8in dnssec-dsfromkey.8in dnssec-importkey.8in dnssec-keyfromlabel.8in dnssec-keygen.8in dnssec-keymgr.8in dnssec-revoke.8in dnssec-settime.8in dnssec-signzone.8in dnssec-verify.8in dnstap-read.1in filter-aaaa.8in host.1in mdig.1in named-checkconf.8in named-checkzone.8in named-journalprint.8in named-nzd2nzf.8in named-rrchecker.1in named.conf.5in named.8in nsec3hash.8in nslookup.1in nsupdate.1in rndc-confgen.8in rndc.conf.5in rndc.8in pkcs11-destroy.8in pkcs11-keygen.8in pkcs11-list.8in pkcs11-tokens.8in; do \ [ -e "$man" ] || cp -f ./"$man" .; \ done for m in arpaname.1 delv.1 dig.1 dnstap-read.1 host.1 mdig.1 named-rrchecker.1 nslookup.1 nsupdate.1; do \ sed -e 's,[@]BIND9_VERSION[@],9.16.4,' -e 's,[@]RELEASE_DATE[@],2020-06-10,' -e 's,[@]BIND9_VERSION_STRING[@],,' -e 's,[@]sysconfdir[@],/usr/local/etc,' -e 's,[@]plugindir[@],/usr/local/lib/named,' ${m}in > $m; \ done for m in named.conf.5 rndc.conf.5; do \ sed -e 's,[@]BIND9_VERSION[@],9.16.4,' -e 's,[@]RELEASE_DATE[@],2020-06-10,' -e 's,[@]BIND9_VERSION_STRING[@],,' -e 's,[@]sysconfdir[@],/usr/local/etc,' -e 's,[@]plugindir[@],/usr/local/lib/named,' ${m}in > $m; \ done for m in ddns-confgen.8 dnssec-cds.8 dnssec-checkds.8 dnssec-coverage.8 dnssec-dsfromkey.8 dnssec-importkey.8 dnssec-keyfromlabel.8 dnssec-keygen.8 dnssec-keymgr.8 dnssec-revoke.8 dnssec-settime.8 dnssec-signzone.8 dnssec-verify.8 filter-aaaa.8 named-checkconf.8 named-checkzone.8 named-journalprint.8 named-nzd2nzf.8 named.8 nsec3hash.8 rndc-confgen.8 rndc.8; do \ sed -e 's,[@]BIND9_VERSION[@],9.16.4,' -e 's,[@]RELEASE_DATE[@],2020-06-10,' -e 's,[@]BIND9_VERSION_STRING[@],,' -e 's,[@]sysconfdir[@],/usr/local/etc,' -e 's,[@]plugindir[@],/usr/local/lib/named,' ${m}in > $m; \ done # ls arpaname.1 delv.1 dnssec-cds.8in dnssec-coverage.rst dnssec-keyfromlabel.8 dnssec-keymgr.8in dnssec-settime.rst dnstap-read.1 host.1in mdig.rst named-checkzone.8in named-journalprint.rst named.rst nsupdate.1 pkcs11-list.8in rndc.conf.5in arpaname.1in delv.1in dnssec-cds.rst dnssec-dsfromkey.8 dnssec-keyfromlabel.8in dnssec-keymgr.rst dnssec-signzone.8 dnstap-read.1in host.rst named.8 named-checkzone.rst named-nzd2nzf.8 nsec3hash.8 nsupdate.1in pkcs11-list.rst rndc-confgen.8 arpaname.rst delv.rst dnssec-checkds.8 dnssec-dsfromkey.8in dnssec-keyfromlabel.rst dnssec-revoke.8 dnssec-signzone.8in dnstap-read.rst index.rst named.8in named.conf.5 named-nzd2nzf.8in nsec3hash.8in nsupdate.rst pkcs11-tokens.8in rndc-confgen.8in conf.py dig.1 dnssec-checkds.8in dnssec-dsfromkey.rst dnssec-keygen.8 dnssec-revoke.8in dnssec-signzone.rst filter-aaaa.8 Makefile named-checkconf.8 named.conf.5in named-nzd2nzf.rst nsec3hash.rst pkcs11-destroy.8in pkcs11-tokens.rst rndc-confgen.rst ddns-confgen.8 dig.1in dnssec-checkds.rst dnssec-importkey.8 dnssec-keygen.8in dnssec-revoke.rst dnssec-verify.8 filter-aaaa.8in Makefile.in named-checkconf.8in named.conf.rst named-rrchecker.1 nslookup.1 pkcs11-destroy.rst rndc.8 rndc.conf.rst ddns-confgen.8in dig.rst dnssec-coverage.8 dnssec-importkey.8in dnssec-keygen.rst dnssec-settime.8 dnssec-verify.8in filter-aaaa.rst mdig.1 named-checkconf.rst named-journalprint.8 named-rrchecker.1in nslookup.1in pkcs11-keygen.8in rndc.8in rndc.rst ddns-confgen.rst dnssec-cds.8 dnssec-coverage.8in dnssec-importkey.rst dnssec-keymgr.8 dnssec-settime.8in dnssec-verify.rst host.1 mdig.1in named-checkzone.8 named-journalprint.8in named-rrchecker.rst nslookup.rst pkcs11-keygen.rst rndc.conf.5 Using delv.1 as an example delv.1in and delv.rst both exist in doc/man (after an ebuild prepare) and they have exactly the same date (the package date). Makefile.in contains this target for the manpages sphinx-build: $(MANPAGES_IN): $(MANPAGES_RST) I.e. all the 'in' files depend on all the 'rst' files and, yes, they all have exactly the same date. How reliable is this? I remember from the 1980s that different versions of make (BSD vs System V) had different behaviors in this regard; one used <, the other <=. A crude but safe patch would be to delete the entire $(MANPAGES_IN) target and rules from Makefile.in, a less crude patch would be to change the ootsetup target to touch the .?in files. I agree. The sphinx dependency is unnecessary. It should be conditional on the doc flag. With the below change to the ebuild, I still get the man-pages. --- /var/portage/net-dns/bind-tools/bind-tools-9.16.4.ebuild 2020-07-04 14:09:14.000000000 +0000 +++ bind-tools-9.16.4.ebuild 2020-07-07 17:01:51.172541152 +0000 @@ -38,7 +38,7 @@ # sphinx required for man-page and html creation BDEPEND="${PYTHON_DEPS} - dev-python/sphinx + doc? ( dev-python/sphinx ) virtual/pkgconfig" S="${WORKDIR}/${MY_P}" No, this should remain as is. The doc use flag is for documentation, here we have man pages, which are essential. But according to comment #3 sphinx in NOT required to build the man pages ... This report is not INVALID because it's true. Please reopen and fix. Essential are tools like: host, nslookup, dig, nsupdate and not sphinx and all this bloat. From some comments (I didn't check myself) it seems you don't really need sphinx if you don't need to regenerate man pages from scratch since source package contains pregenerated files. You can always add man USE flag for those who want to recompile man pages. For some systems even no man pages is better than all this bloat. Gentoo was supposed to be about choice, not about bloat. Thank you in advance. Created attachment 649014 [details, diff]
bind-tools-9.16.4.ebuild-no-sphinx.patch
Patch to remove sphing dependancy. just add the touch to ensure that the prebuilt target is newer than source and avoid rebuild.
Created attachment 649022 [details, diff]
bind-tools-9.16.4.ebuild-no-sphinx.patch
Sorry, typo in the previous one
(In reply to Mikle Kolyada from comment #6) > No, this should remain as is. The doc use flag is for documentation, here we > have man pages, which are essential. Prebuilt man pages are included in the tarball, the sphinx dependency is not needed to install man pages. *** Bug 733184 has been marked as a duplicate of this bug. *** [Reopening to avoid duplicates.] Thank you. Hopefully this bug will be finally fixed. It is(In reply to Grzegorz Kulewski from comment #14) > Thank you. Hopefully this bug will be finally fixed. It is, bind-tools-9.16.5 is back to normal and needs nothing special done, and bind-tools-9.16.4 has a tarball for man pages. Neither depend on sphinx anymore unless USE=doc. Should not be a problem by now. |