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

Reply via email to