2016-03-28 17:39 GMT+03:00 Christian Weisgerber <na...@mips.inka.de>: > TL;DR: We can and should kill the gettext and libiconv MODULES and > replace them with ordinary LIB_DEPENDS. > > > If you look at the libiconv module, it specifies both a lib and a > run dependency on libconv. That's because the iconv library also > needs some data file. On static archs, lib depends turned into > pure build depends, so we needed an extra run depends to make sure > that the data was installed. Without static archs, the lib depends > and wantlib is enough. > > The same applies to the gettext module, although that one has some > additional cruft which continues historical dependencies so we > didn't have to bump the ports that used the module when gettext was > updated. Again, a lib depends and wantlib would be enough now. > > The gettext module also includes a build dependency on gettext-tools > from last summer when we split the gettext runtime and tools into > separate ports. Only a small subset of gettext-using ports actually > need the tools; principally those that run msgfmt. Some people > (well, czarkoff@) have wanted to remove the general dependency on > the tools and only have an explicit build dependency in those ports > that actually need it. I've been hesitant about this, but now it > fits in with the idea of getting rid of the module. > > Killing the modules and replacing them with conventional dependencies > would put an end to the weird special case handling of the gettext > and libiconv libraries (MODULES, MOD*_LIB_DEPENDS, MOD*_WANTLIB), > making things simpler. Having to pay attention which ports actually > need to depend on gettext-tools is not simpler, but then this isn't > different from any other dependency. > > Opinions so far?
So new rules for gettext dependency would be: 1. If PLIST contains ${PREFIX}/share/locale/*/*/*.mo files, the package should have, either directly or indirectly, a run-time dependency (LDEP/RDEP) on devel/gettext,-main. 2. If PLIST doesn't have such files, but package have direct RDEP on devel/gettext, this deserves a warning. Also, we drop all rules regarding libiconv: now we just add a dependency on either it or gettext, when needed, right? I want to formailize those rules as strict as possible, to adjust portcheck. > How would we go about killing the modules? As far as I can tell, > nothing prevents us from replacing MODULES with the normal > LIB_DEPENDS/WANTLIB entries, starting immediately, as part of normal > updates and maintenance work. For the libiconv module, this doesn't > even require a bump. For the gettext module it does if not part > of another update. > > Regarding the build dependency on gettext-tools, my plan would be > to > * identify ports that use the tools from bulk build logs, > * add explicit BUILD_DEPENDS += devel/gettext-tools, > * then do a test build with a default of MODGETTEXT_TOOLS ?= No, > * fix any fallout, > * repeat, > * and eventually kill MODGETTEXT_TOOLS. > > Comments? I think this is The Only Right Way. -- WBR, Vadim Zhukov