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?


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?

-- 
Christian "naddy" Weisgerber                          [email protected]

Reply via email to