Jesse, Helge, Thanks.
On Sun, May 01, 2022 at 04:16:33PM -0300, Jesse Smith wrote: > > The attached Makefile for man/ does not yet work, but I think it's just my > > limited man page knowledge. > > Thank you for putting this together. I'm applying upstream to our 3.05 > branch. I was still having difficulties with the Makefile you committed. There are some patches attached which resolve them for me. Helge, I am unclear what the po4a option '--msgid-bugs-address "Your Bugmail <m...@example.com>"' is for. Is it required or should it be set to something @upstream sysvinit? Jesse, I have suggested making po4a optional. I wonder if some users might not want to install and build the translated pages? Any successfully translated manpages are now installed. What do you both think? Thanks Mark
>From 3c37edc7386ba86b259d51c0204916e8ed7d254e Mon Sep 17 00:00:00 2001 From: Mark Hindley <m...@hindley.org.uk> Date: Wed, 4 May 2022 18:35:41 +0100 Subject: [PATCH 3/5] Use single rule and make po4a optional (with warning). This ensures the version in set in the master copy before being translated. --- man/Makefile | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/man/Makefile b/man/Makefile index 38fc9015..53fe2d11 100644 --- a/man/Makefile +++ b/man/Makefile @@ -5,16 +5,19 @@ wall.1 LANGUAGES=$(shell sed -ne 's/^.*\[po4a_langs\] \(.*\)$$/\1/p' po/po4a.cfg) +PO4A := $(shell command -v po4a 2> /dev/null) PO4A_OPTS = --previous --srcdir po/ --destdir po/ --no-backups \ --package-name sysvinit --package-version $(VERSION) \ --msgid-bugs-address "Your Bugmail <m...@example.com>" -translated: - po4a $(PO4A_OPTS) po/po4a.cfg - -all install: translated +all install: sed --in-place=.orig --separate 's/\@VERSION\@/$(VERSION)/g' $(MANPAGES) +ifdef PO4A + po4a $(PO4A_OPTS) po/po4a.cfg +else + @echo 'Install po4a to build translated manpages' +endif clean distclean: for man in $(MANPAGES) ; do \ -- 2.35.1
>From ec8bab0151bad7c2c90601e2c2cda2fbecb3661b Mon Sep 17 00:00:00 2001 From: Mark Hindley <m...@hindley.org.uk> Date: Wed, 4 May 2022 18:33:15 +0100 Subject: [PATCH 1/5] Fix parsing LANGUAGES: $ needs escaping in Makefile. --- man/Makefile | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/man/Makefile b/man/Makefile index 5817b961..d0ae39d9 100644 --- a/man/Makefile +++ b/man/Makefile @@ -3,9 +3,7 @@ killall5.8 last.1 lastb.1 logsave.8 mesg.1 mountpoint.1 pidof.8 poweroff.8 \ readbootlog.1 reboot.8 runlevel.8 shutdown.8 sulogin.8 telinit.8 utmpdump.1 \ wall.1 -LANGUAGES_DIST =`sed -ne 's/^.*\[po4a_langs\] \(.*\)$/\1/p' po/po4a.cfg` -LANGUAGES=$(LANGUAGES_DIST) -LANGUAGES=de es fi fr hu id pl +LANGUAGES=$(shell sed -ne 's/^.*\[po4a_langs\] \(.*\)$$/\1/p' po/po4a.cfg) VERSION?=1.2.3 -- 2.35.1
>From 430320674a1e0f716a5c6798e977ddc2a6c903d4 Mon Sep 17 00:00:00 2001 From: Mark Hindley <m...@hindley.org.uk> Date: Wed, 4 May 2022 18:38:49 +0100 Subject: [PATCH 5/5] Use po4a --stamp option to avoid rebuild every time, also requires --destdir=./ --- man/Makefile | 6 +++--- src/Makefile | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/man/Makefile b/man/Makefile index ed3edc77..3b06f561 100644 --- a/man/Makefile +++ b/man/Makefile @@ -7,7 +7,7 @@ LANGUAGES=$(shell sed -ne 's/^.*\[po4a_langs\] \(.*\)$$/\1/p' po/po4a.cfg) PO4A := $(shell command -v po4a 2> /dev/null) -PO4A_OPTS = --previous --srcdir po/ --destdir po/ --no-backups \ +PO4A_OPTS = --previous --srcdir po/ --destdir ./ --no-backups --stamp \ --package-name sysvinit --package-version $(VERSION) \ --msgid-bugs-address "Your Bugmail <m...@example.com>" @@ -25,6 +25,6 @@ install: all clean distclean: for man in $(MANPAGES) ; do \ if [ -f "$$man.orig" ] ; then mv "$$man.orig" "$$man" ; fi \ - done - for lang in $(LANGUAGES) ; do rm -rf "po/$$lang" ; done + done + for lang in $(LANGUAGES) ; do rm -rf "$$lang" "$$lang.po" ; done diff --git a/src/Makefile b/src/Makefile index afbeaac2..865af488 100644 --- a/src/Makefile +++ b/src/Makefile @@ -219,15 +219,15 @@ install: all $(INSTALL_DIR) $(ROOT)$(MANDIR)/man5/$$lang; \ $(INSTALL_DIR) $(ROOT)$(MANDIR)/man8/$$lang; \ done - for man in $(MAN1) $(subst ../man/,,$(foreach man,$(MAN1),$(wildcard ../man/po/??/$(man)))); do \ + for man in $(MAN1) $(subst ../man/,,$(foreach man,$(MAN1),$(wildcard ../man/??/$(man)))); do \ $(INSTALL_DATA) ../man/$$man $(ROOT)$(MANDIR)/man1/$$man; \ sed -i "1{ $(MANDB); }" $(ROOT)$(MANDIR)/man1/$$man ; \ done - for man in $(MAN5) $(subst ../man/,,$(foreach man,$(MAN5),$(wildcard ../man/po/??/$(man)))); do \ + for man in $(MAN5) $(subst ../man/,,$(foreach man,$(MAN5),$(wildcard ../man/??/$(man)))); do \ $(INSTALL_DATA) ../man/$$man $(ROOT)$(MANDIR)/man5/$$man; \ sed -i "1{ $(MANDB); }" $(ROOT)$(MANDIR)/man5/$$man ; \ done - for man in $(MAN8) $(subst ../man/,,$(foreach man,$(MAN8),$(wildcard ../man/po/??/$(man)))); do \ + for man in $(MAN8) $(subst ../man/,,$(foreach man,$(MAN8),$(wildcard ../man/??/$(man)))); do \ $(INSTALL_DATA) ../man/$$man $(ROOT)$(MANDIR)/man8/$$man; \ sed -i "1{ $(MANDB); }" $(ROOT)$(MANDIR)/man8/$$man ; \ done -- 2.35.1
>From 0b9e3f406b1d0b135e19e6640c2e400e9cc60614 Mon Sep 17 00:00:00 2001 From: Mark Hindley <m...@hindley.org.uk> Date: Thu, 5 May 2022 15:19:25 +0100 Subject: [PATCH 4/5] Install i10n manpages, if available. --- man/Makefile | 5 ++++- src/Makefile | 20 +++++++++++--------- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/man/Makefile b/man/Makefile index 53fe2d11..ed3edc77 100644 --- a/man/Makefile +++ b/man/Makefile @@ -11,7 +11,7 @@ PO4A_OPTS = --previous --srcdir po/ --destdir po/ --no-backups \ --package-name sysvinit --package-version $(VERSION) \ --msgid-bugs-address "Your Bugmail <m...@example.com>" -all install: +all: sed --in-place=.orig --separate 's/\@VERSION\@/$(VERSION)/g' $(MANPAGES) ifdef PO4A po4a $(PO4A_OPTS) po/po4a.cfg @@ -19,6 +19,9 @@ else @echo 'Install po4a to build translated manpages' endif +# Installation recipes are in ../src/Makefile +install: all + clean distclean: for man in $(MANPAGES) ; do \ if [ -f "$$man.orig" ] ; then mv "$$man.orig" "$$man" ; fi \ diff --git a/src/Makefile b/src/Makefile index 1b368dca..afbeaac2 100644 --- a/src/Makefile +++ b/src/Makefile @@ -214,19 +214,21 @@ install: all fi $(INSTALL_DIR) $(ROOT)/usr/include/ $(INSTALL_DATA) initreq.h $(ROOT)/usr/include/ - $(INSTALL_DIR) $(ROOT)$(MANDIR)/man1/ - $(INSTALL_DIR) $(ROOT)$(MANDIR)/man5/ - $(INSTALL_DIR) $(ROOT)$(MANDIR)/man8/ - for man in $(MAN1); do \ - $(INSTALL_DATA) ../man/$$man $(ROOT)$(MANDIR)/man1/; \ + for lang in '' $(subst ../man/,,$(wildcard ../man/po/??/)); do \ + $(INSTALL_DIR) $(ROOT)$(MANDIR)/man1/$$lang; \ + $(INSTALL_DIR) $(ROOT)$(MANDIR)/man5/$$lang; \ + $(INSTALL_DIR) $(ROOT)$(MANDIR)/man8/$$lang; \ + done + for man in $(MAN1) $(subst ../man/,,$(foreach man,$(MAN1),$(wildcard ../man/po/??/$(man)))); do \ + $(INSTALL_DATA) ../man/$$man $(ROOT)$(MANDIR)/man1/$$man; \ sed -i "1{ $(MANDB); }" $(ROOT)$(MANDIR)/man1/$$man ; \ done - for man in $(MAN5); do \ - $(INSTALL_DATA) ../man/$$man $(ROOT)$(MANDIR)/man5/; \ + for man in $(MAN5) $(subst ../man/,,$(foreach man,$(MAN5),$(wildcard ../man/po/??/$(man)))); do \ + $(INSTALL_DATA) ../man/$$man $(ROOT)$(MANDIR)/man5/$$man; \ sed -i "1{ $(MANDB); }" $(ROOT)$(MANDIR)/man5/$$man ; \ done - for man in $(MAN8); do \ - $(INSTALL_DATA) ../man/$$man $(ROOT)$(MANDIR)/man8/; \ + for man in $(MAN8) $(subst ../man/,,$(foreach man,$(MAN8),$(wildcard ../man/po/??/$(man)))); do \ + $(INSTALL_DATA) ../man/$$man $(ROOT)$(MANDIR)/man8/$$man; \ sed -i "1{ $(MANDB); }" $(ROOT)$(MANDIR)/man8/$$man ; \ done ifeq ($(ROOT),) -- 2.35.1
>From 6fd4359f402b21e044ec18d81042ce586a29e78f Mon Sep 17 00:00:00 2001 From: Mark Hindley <m...@hindley.org.uk> Date: Wed, 4 May 2022 18:35:23 +0100 Subject: [PATCH 2/5] Remove dummy VERSION. --- man/Makefile | 1 - 1 file changed, 1 deletion(-) diff --git a/man/Makefile b/man/Makefile index d0ae39d9..38fc9015 100644 --- a/man/Makefile +++ b/man/Makefile @@ -5,7 +5,6 @@ wall.1 LANGUAGES=$(shell sed -ne 's/^.*\[po4a_langs\] \(.*\)$$/\1/p' po/po4a.cfg) -VERSION?=1.2.3 PO4A_OPTS = --previous --srcdir po/ --destdir po/ --no-backups \ --package-name sysvinit --package-version $(VERSION) \ -- 2.35.1