]> git.ipfire.org Git - thirdparty/gettext.git/commitdiff
build: Install auxiliary programs in $(libexecdir), not $(libdir).
authorBruno Haible <bruno@clisp.org>
Sun, 18 Jun 2023 13:50:06 +0000 (15:50 +0200)
committerBruno Haible <bruno@clisp.org>
Sun, 18 Jun 2023 15:18:32 +0000 (17:18 +0200)
The GNU Coding Standards say that auxiliary programs should be installed in a
subdir of $(libexecdir).
<https://www.gnu.org/prep/standards/html_node/Directory-Variables.html>

Originally, I did not do this because I also wanted to follow the Linux
Filesystem Hierarchy Standard, which in version 2 did not support /usr/libexec.
This has changed in 2015: The FHS version 3 now allows installation into
/usr/libexec.
<https://refspecs.linuxfoundation.org/FHS_3.0/fhs/ch04s07.html>

Reported by Bastien Roucariès <rouca@debian.org> in
<https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1032010>.

* gettext-tools/src/Makefile.am (pkglibexecdir): New variable.
(DEFS): Pass a LIBEXECDIR macro.
(hostname_CPPFLAGS, urlget_CPPFLAGS, cldr_plurals_CPPFLAGS, hostname_LDFLAGS,
urlget_LDFLAGS, cldr_plurals_LDFLAGS, install-exec-local, installdirs-local,
uninstall-local): Use pkglibexecdir instead of pkglibdir.
* gettext-tools/src/msginit.c (project_id, project_id_version, plural_forms):
Test $GETTEXTLIBEXECDIR_SRCDIR instead of $GETTEXTLIBDIR_SRCDIR. Use LIBEXECDIR
instead of LIBDIR.
(get_user_email, language_team_address): Use LIBEXECDIR instead of LIBDIR.
* gettext-tools/tests/msginit-3: Set GETTEXTLIBEXECDIR_SRCDIR instead of
GETTEXTLIBDIR_SRCDIR.
* gettext-tools/tests/msginit-4: Likewise. Set GETTEXTLIBEXECDIR_BUILDDIR
instead of GETTEXTLIBDIR_BUILDDIR.

gettext-tools/src/Makefile.am
gettext-tools/src/msginit.c
gettext-tools/tests/msginit-3
gettext-tools/tests/msginit-4

index 3850e250940d788c515e1eb782b3ea17ee01cf4a..aa5da9c19e292a8ec73dccc84a4c51ae7eef56a9 100644 (file)
@@ -89,6 +89,7 @@ jardir = $(datadir)/gettext
 pkgdatadir = $(datadir)/gettext
 projectsdir = $(pkgdatadir)/projects
 pkglibdir = $(libdir)/gettext
+pkglibexecdir = $(libexecdir)/gettext
 
 AM_CPPFLAGS = \
   -I. -I$(srcdir) \
@@ -102,6 +103,7 @@ DEFS = \
   -DUSEJAVA=$(USEJAVA) \
   -DGETTEXTJAR=\"$(jardir)/gettext.jar\" \
   -DLIBDIR=\"$(libdir)\" \
+  -DLIBEXECDIR=\"$(libexecdir)\" \
   -DGETTEXTDATADIR=\"$(pkgdatadir)\" \
   -DPROJECTSDIR=\"$(projectsdir)\" \
   -DEXEEXT=\"@EXEEXT@\" @DEFS@
@@ -421,9 +423,9 @@ msggrep_CPPFLAGS = $(AM_CPPFLAGS) -DINSTALLDIR=\"$(bindir)\"
 msginit_CPPFLAGS = $(AM_CPPFLAGS) -DINSTALLDIR=\"$(bindir)\"
 msguniq_CPPFLAGS = $(AM_CPPFLAGS) -DINSTALLDIR=\"$(bindir)\"
 recode_sr_latin_CPPFLAGS = $(AM_CPPFLAGS) -DINSTALLDIR=\"$(bindir)\"
-hostname_CPPFLAGS = $(AM_CPPFLAGS) -DINSTALLDIR=\"$(pkglibdir)\"
-urlget_CPPFLAGS = $(AM_CPPFLAGS) -DINSTALLDIR=\"$(pkglibdir)\"
-cldr_plurals_CPPFLAGS = $(AM_CPPFLAGS) -DINSTALLDIR=\"$(pkglibdir)\"
+hostname_CPPFLAGS = $(AM_CPPFLAGS) -DINSTALLDIR=\"$(pkglibexecdir)\"
+urlget_CPPFLAGS = $(AM_CPPFLAGS) -DINSTALLDIR=\"$(pkglibexecdir)\"
+cldr_plurals_CPPFLAGS = $(AM_CPPFLAGS) -DINSTALLDIR=\"$(pkglibexecdir)\"
 if RELOCATABLE_VIA_LD
 msgcmp_LDFLAGS = `$(RELOCATABLE_LDFLAGS) $(bindir)`
 msgfmt_LDFLAGS = `$(RELOCATABLE_LDFLAGS) $(bindir)`
@@ -441,9 +443,9 @@ msggrep_LDFLAGS = `$(RELOCATABLE_LDFLAGS) $(bindir)`
 msginit_LDFLAGS = `$(RELOCATABLE_LDFLAGS) $(bindir)`
 msguniq_LDFLAGS = `$(RELOCATABLE_LDFLAGS) $(bindir)`
 recode_sr_latin_LDFLAGS = `$(RELOCATABLE_LDFLAGS) $(bindir)`
-hostname_LDFLAGS = `$(RELOCATABLE_LDFLAGS) $(pkglibdir)`
-urlget_LDFLAGS = `$(RELOCATABLE_LDFLAGS) $(pkglibdir)`
-cldr_plurals_LDFLAGS = `$(RELOCATABLE_LDFLAGS) $(pkglibdir)`
+hostname_LDFLAGS = `$(RELOCATABLE_LDFLAGS) $(pkglibexecdir)`
+urlget_LDFLAGS = `$(RELOCATABLE_LDFLAGS) $(pkglibexecdir)`
+cldr_plurals_LDFLAGS = `$(RELOCATABLE_LDFLAGS) $(pkglibexecdir)`
 endif
 
 # Linking with C++ libraries is needed _only_ on mingw and Cygwin.
@@ -627,22 +629,22 @@ EXTRA_DIST += cldr-plural.c cldr-plural.h
 # Special rules for installation of auxiliary programs.
 
 install-exec-local:
-       $(MKDIR_P) $(DESTDIR)$(pkglibdir)
-       $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) hostname$(EXEEXT) $(DESTDIR)$(pkglibdir)/hostname$(EXEEXT)
-       $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) urlget$(EXEEXT) $(DESTDIR)$(pkglibdir)/urlget$(EXEEXT)
-       $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) cldr-plurals$(EXEEXT) $(DESTDIR)$(pkglibdir)/cldr-plurals$(EXEEXT)
-       $(INSTALL_SCRIPT) user-email $(DESTDIR)$(pkglibdir)/user-email
-       $(INSTALL_SCRIPT) $(srcdir)/project-id $(DESTDIR)$(pkglibdir)/project-id
+       $(MKDIR_P) $(DESTDIR)$(pkglibexecdir)
+       $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) hostname$(EXEEXT) $(DESTDIR)$(pkglibexecdir)/hostname$(EXEEXT)
+       $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) urlget$(EXEEXT) $(DESTDIR)$(pkglibexecdir)/urlget$(EXEEXT)
+       $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) cldr-plurals$(EXEEXT) $(DESTDIR)$(pkglibexecdir)/cldr-plurals$(EXEEXT)
+       $(INSTALL_SCRIPT) user-email $(DESTDIR)$(pkglibexecdir)/user-email
+       $(INSTALL_SCRIPT) $(srcdir)/project-id $(DESTDIR)$(pkglibexecdir)/project-id
 
 installdirs-local:
-       $(MKDIR_P) $(DESTDIR)$(pkglibdir)
+       $(MKDIR_P) $(DESTDIR)$(pkglibexecdir)
 
 uninstall-local:
-       $(RM) $(DESTDIR)$(pkglibdir)/hostname$(EXEEXT)
-       $(RM) $(DESTDIR)$(pkglibdir)/urlget$(EXEEXT)
-       $(RM) $(DESTDIR)$(pkglibdir)/cldr-plurals$(EXEEXT)
-       $(RM) $(DESTDIR)$(pkglibdir)/user-email
-       $(RM) $(DESTDIR)$(pkglibdir)/project-id
+       $(RM) $(DESTDIR)$(pkglibexecdir)/hostname$(EXEEXT)
+       $(RM) $(DESTDIR)$(pkglibexecdir)/urlget$(EXEEXT)
+       $(RM) $(DESTDIR)$(pkglibexecdir)/cldr-plurals$(EXEEXT)
+       $(RM) $(DESTDIR)$(pkglibexecdir)/user-email
+       $(RM) $(DESTDIR)$(pkglibexecdir)/project-id
 
 DISTCLEANFILES += user-email
 
index 9ff75e7a20920b6a027fb06dfccdf65b58050b2d..8ef758a8271868e39e57dbced9c7316ef1e94d27 100644 (file)
@@ -933,9 +933,9 @@ project_id (const char *header)
     size_t linelen;
     int exitstatus;
 
-    gettextlibdir = getenv ("GETTEXTLIBDIR_SRCDIR");
+    gettextlibdir = getenv ("GETTEXTLIBEXECDIR_SRCDIR");
     if (gettextlibdir == NULL || gettextlibdir[0] == '\0')
-      gettextlibdir = relocate (LIBDIR "/gettext");
+      gettextlibdir = relocate (LIBEXECDIR "/gettext");
 
     prog = xconcatenated_filename (gettextlibdir, "project-id", NULL);
 
@@ -1015,9 +1015,9 @@ project_id_version (const char *header)
     size_t linelen;
     int exitstatus;
 
-    gettextlibdir = getenv ("GETTEXTLIBDIR_SRCDIR");
+    gettextlibdir = getenv ("GETTEXTLIBEXECDIR_SRCDIR");
     if (gettextlibdir == NULL || gettextlibdir[0] == '\0')
-      gettextlibdir = relocate (LIBDIR "/gettext");
+      gettextlibdir = relocate (LIBEXECDIR "/gettext");
 
     prog = xconcatenated_filename (gettextlibdir, "project-id", NULL);
 
@@ -1177,7 +1177,7 @@ get_user_email ()
      "msginit.exe: subprocess ... failed: No such file or directory"  */
 #if !(defined _WIN32 && ! defined __CYGWIN__)
   {
-    const char *prog = relocate (LIBDIR "/gettext/user-email");
+    const char *prog = relocate (LIBEXECDIR "/gettext/user-email");
     const char *argv[4];
     pid_t child;
     int fd[1];
@@ -1298,7 +1298,7 @@ language_team_address ()
     argv[0] = BOURNE_SHELL;
     argv[1] = prog;
     argv[2] = relocate (PROJECTSDIR);
-    argv[3] = relocate (LIBDIR "/gettext");
+    argv[3] = relocate (LIBEXECDIR "/gettext");
     argv[4] = catalogname;
     argv[5] = language;
     argv[6] = NULL;
@@ -1450,9 +1450,9 @@ plural_forms ()
       size_t linelen;
       int exitstatus;
 
-      gettextlibdir = getenv ("GETTEXTLIBDIR_BUILDDIR");
+      gettextlibdir = getenv ("GETTEXTLIBEXECDIR_BUILDDIR");
       if (gettextlibdir == NULL || gettextlibdir[0] == '\0')
-        gettextlibdir = relocate (LIBDIR "/gettext");
+        gettextlibdir = relocate (LIBEXECDIR "/gettext");
 
       prog = xconcatenated_filename (gettextlibdir, "cldr-plurals", EXEEXT);
 
index d00ba1a14a2c72eef2a417a338d3b8c2387cf0a3..7c2f5a5e34480e34a40d606cbb5df48a9c1b5203 100755 (executable)
@@ -47,7 +47,7 @@ msgstr ""
 EOF
 
 : ${MSGINIT=msginit}
-GETTEXTLIBDIR_SRCDIR="$wabs_top_srcdir"/src \
+GETTEXTLIBEXECDIR_SRCDIR="$wabs_top_srcdir"/src \
 ${MSGINIT} -l ga_IE --no-translator -o mi-test3.tmp 2>mi-test3.err
 test $? = 0 || { cat mi-test3.err 1>&2; Exit 1; }
 
index 13b362bd39542a8d4a1ccc1e7fe17b7ebecc376e..9d4f2ae811df23b4b5b13407014bb5601c3d90f6 100755 (executable)
@@ -47,8 +47,8 @@ msgstr ""
 EOF
 
 : ${MSGINIT=msginit}
-GETTEXTLIBDIR_SRCDIR="$wabs_top_srcdir"/src \
-GETTEXTLIBDIR_BUILDDIR="$top_builddir"/src \
+GETTEXTLIBEXECDIR_SRCDIR="$wabs_top_srcdir"/src \
+GETTEXTLIBEXECDIR_BUILDDIR="$top_builddir"/src \
 GETTEXTCLDRDIR="$wabs_srcdir" \
 ${MSGINIT} -i mi-test4.pot -l foo --no-translator --no-wrap -o mi-test4.tmp 2>mi-test4.err
 test $? = 0 || { cat mi-test4.err 1>&2; Exit 1; }