From: Bruno Haible Date: Sun, 18 Jun 2023 13:50:06 +0000 (+0200) Subject: build: Install auxiliary programs in $(libexecdir), not $(libdir). X-Git-Tag: v0.23~438 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=43a4b5eeecaf9805064ec718755d0a033e8f2f9b;p=thirdparty%2Fgettext.git build: Install auxiliary programs in $(libexecdir), not $(libdir). The GNU Coding Standards say that auxiliary programs should be installed in a subdir of $(libexecdir). 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. Reported by Bastien Roucariès in . * 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. --- diff --git a/gettext-tools/src/Makefile.am b/gettext-tools/src/Makefile.am index 3850e2509..aa5da9c19 100644 --- a/gettext-tools/src/Makefile.am +++ b/gettext-tools/src/Makefile.am @@ -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 diff --git a/gettext-tools/src/msginit.c b/gettext-tools/src/msginit.c index 9ff75e7a2..8ef758a82 100644 --- a/gettext-tools/src/msginit.c +++ b/gettext-tools/src/msginit.c @@ -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); diff --git a/gettext-tools/tests/msginit-3 b/gettext-tools/tests/msginit-3 index d00ba1a14..7c2f5a5e3 100755 --- a/gettext-tools/tests/msginit-3 +++ b/gettext-tools/tests/msginit-3 @@ -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; } diff --git a/gettext-tools/tests/msginit-4 b/gettext-tools/tests/msginit-4 index 13b362bd3..9d4f2ae81 100755 --- a/gettext-tools/tests/msginit-4 +++ b/gettext-tools/tests/msginit-4 @@ -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; }