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

Reply via email to