Goal: Build the translated man pages at build time.

Note: Translators must list the manpages which are translated in the
man_MANS (and man_nopam) variables.

Status wrt upstream: not reported yet.

Index: shadow-4.0.18.1/man/Makefile.am
===================================================================
--- shadow-4.0.18.1.orig/man/Makefile.am	2007-05-17 13:50:42.000000000 +0200
+++ shadow-4.0.18.1/man/Makefile.am	2007-05-17 13:50:43.000000000 +0200
@@ -114,141 +114,20 @@
 
 if ENABLE_REGENERATE_MAN
 
-chage.1: chage.1.xml
+%: %.xml
 	$(XSLTPROC) -nonet http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<
 
-chfn.1: chfn.1.xml
-	$(XSLTPROC) -nonet http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<
-
-chgpasswd.8: chgpasswd.8.xml
-	$(XSLTPROC) -nonet http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<
-
-chpasswd.8: chpasswd.8.xml
-	$(XSLTPROC) -nonet http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<
-
-chsh.1: chsh.1.xml
-	$(XSLTPROC) -nonet http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<
-
-expiry.1: expiry.1.xml
-	$(XSLTPROC) -nonet http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<
-
-faillog.5: faillog.5.xml
-	$(XSLTPROC) -nonet http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<
-
-faillog.8: faillog.8.xml
-	$(XSLTPROC) -nonet http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<
-
-gpasswd.1: gpasswd.1.xml
-	$(XSLTPROC) -nonet http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<
-
-groupadd.8: groupadd.8.xml
-	$(XSLTPROC) -nonet http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<
-
-groupdel.8: groupdel.8.xml
-	$(XSLTPROC) -nonet http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<
-
-groupmems.8: groupmems.8.xml
-	$(XSLTPROC) -nonet http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<
-
-groupmod.8: groupmod.8.xml
-	$(XSLTPROC) -nonet http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<
-
-groups.1: groups.1.xml
-	$(XSLTPROC) -nonet http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<
-
-grpck.8: grpck.8.xml
-	$(XSLTPROC) -nonet http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<
-
-gshadow.5: gshadow.5.xml
-	$(XSLTPROC) -nonet http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<
-
-id.1: id.1.xml
-	$(XSLTPROC) -nonet http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<
-
-lastlog.8: lastlog.8.xml
-	$(XSLTPROC) -nonet http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<
-
-limits.5: limits.5.xml
-	$(XSLTPROC) -nonet http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<
+grpconv.8 grpunconv.8 pwunconv.8: pwconv.8
 
-login.1: login.1.xml
-	$(XSLTPROC) -nonet http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<
+getspnam.3: shadow.3
 
-login.access.5: login.access.5.xml
-	$(XSLTPROC) -nonet http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<
+vigr.8: vipw.8
 
-login.defs.5: login.defs.5.xml
-	$(XSLTPROC) -nonet http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<
-
-logoutd.8: logoutd.8.xml
-	$(XSLTPROC) -nonet http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<
-
-newgrp.1: newgrp.1.xml
-	$(XSLTPROC) -nonet http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<
-
-newusers.8: newusers.8.xml
-	$(XSLTPROC) -nonet http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<
-
-nologin.8: nologin.8.xml
-	$(XSLTPROC) -nonet http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<
-
-passwd.1: passwd.1.xml
-	$(XSLTPROC) -nonet http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<
-
-passwd.5: passwd.5.xml
-	$(XSLTPROC) -nonet http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<
-
-porttime.5: porttime.5.xml
-	$(XSLTPROC) -nonet http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<
-
-pwck.8: pwck.8.xml
-	$(XSLTPROC) -nonet http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<
-
-grpconv.8 grpunconv.8 pwconv.8 pwunconv.8: pwconv.8.xml
-	$(XSLTPROC) -nonet http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<
-
-shadow.3 getspnam.3: shadow.3.xml
-	$(XSLTPROC) -nonet http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<
-
-shadow.5: shadow.5.xml
-	$(XSLTPROC) -nonet http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<
-
-sg.1: sg.1.xml
-	$(XSLTPROC) -nonet http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<
-
-su.1: su.1.xml
-	$(XSLTPROC) -nonet http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<
-
-sulogin.8: sulogin.8.xml
-	$(XSLTPROC) -nonet http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<
-
-suauth.5: suauth.5.xml
-	$(XSLTPROC) -nonet http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<
-
-useradd.8: useradd.8.xml
-	$(XSLTPROC) -nonet http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<
-
-userdel.8: userdel.8.xml
-	$(XSLTPROC) -nonet http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<
-
-usermod.8: usermod.8.xml
-	$(XSLTPROC) -nonet http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<
-
-vigr.8 vipw.8: vipw.8.xml
-	$(XSLTPROC) -nonet http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<
-
-CLEANFILES = $(man_MANS) $(ALL_TRANSLATED_XMLS)
+CLEANFILES = $(man_MANS)
 
 POFILES = $(foreach lang, $(LINGUAS), $(lang)/$(lang).po)
-ALL_TRANSLATED_XMLS = $(foreach dir, $(LINGUAS), $(foreach xmlfile, $(man_XMANS), $(dir)/$(xmlfile)))
-
-all: $(POFILES) $(ALL_TRANSLATED_XMLS)
-
-gen-xmls: $(ALL_TRANSLATED_XMLS)
 
-$(ALL_TRANSLATED_XMLS): $(man_XMANS)
-	xml2po -l $(strip $(subst /,, $(dir $@))) -p $(strip $(subst /,, $(dir $@)))/$(strip $(subst /,, $(dir $@))).po -o $@ $(notdir $@)
-	sed -i 's:\(^<refentry .*\)>:\1 lang="$(strip $(subst /,, $(dir $@)))">:' $@
+all: $(POFILES)
 
 $(POFILES): shadow-man-pages.pot
 
Index: shadow-4.0.18.1/man/de/Makefile.am
===================================================================
--- shadow-4.0.18.1.orig/man/de/Makefile.am	2006-08-03 12:00:56.000000000 +0200
+++ shadow-4.0.18.1/man/de/Makefile.am	2007-05-17 13:50:43.000000000 +0200
@@ -13,3 +13,6 @@
 	vipw.8
 
 EXTRA_DIST = $(man_MANS)
+
+include ../generate_translations.mak
+
Index: shadow-4.0.18.1/man/fr/Makefile.am
===================================================================
--- shadow-4.0.18.1.orig/man/fr/Makefile.am	2006-08-03 12:25:46.000000000 +0200
+++ shadow-4.0.18.1/man/fr/Makefile.am	2007-05-17 15:43:17.000000000 +0200
@@ -53,3 +53,6 @@
 EXTRA_DIST = \
 	$(man_MANS) \
 	$(man_nopam)
+
+include ../generate_translations.mak
+
Index: shadow-4.0.18.1/man/generate_translations.mak
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ shadow-4.0.18.1/man/generate_translations.mak	2007-05-17 15:44:34.000000000 +0200
@@ -0,0 +1,20 @@
+if ENABLE_REGENERATE_MAN
+
+LANG=$(notdir $(CURDIR))
+
+%.xml: ../%.xml $(LANG).po
+	xml2po -l $(LANG) -p $(LANG).po -o $@ ../$@
+	sed -i 's:\(^<refentry .*\)>:\1 lang="$(LANG)">:' $@
+
+%: %.xml
+	$(XSLTPROC) -nonet http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<
+
+grpconv.8 grpunconv.8 pwunconv.8: pwconv.8
+
+getspnam.3: shadow.3
+
+vigr.8: vipw.8
+
+CLEANFILES = .xml2po.mo $(man_MANS) $(addsuffix .xml,$(man_MANS))
+
+endif
Index: shadow-4.0.18.1/man/pl/Makefile.am
===================================================================
--- shadow-4.0.18.1.orig/man/pl/Makefile.am	2006-08-03 12:08:58.000000000 +0200
+++ shadow-4.0.18.1/man/pl/Makefile.am	2007-05-17 13:50:43.000000000 +0200
@@ -53,3 +53,6 @@
 	id.1 \
 	shadow.3 \
 	sulogin.8
+
+include ../generate_translations.mak
+
Index: shadow-4.0.18.1/man/ru/Makefile.am
===================================================================
--- shadow-4.0.18.1.orig/man/ru/Makefile.am	2006-08-03 12:09:45.000000000 +0200
+++ shadow-4.0.18.1/man/ru/Makefile.am	2007-05-17 13:50:43.000000000 +0200
@@ -58,3 +58,6 @@
 	$(man_nopam) \
 	id.1 \
 	sulogin.8
+
+include ../generate_translations.mak
+
Index: shadow-4.0.18.1/man/sv/Makefile.am
===================================================================
--- shadow-4.0.18.1.orig/man/sv/Makefile.am	2007-05-17 13:50:41.000000000 +0200
+++ shadow-4.0.18.1/man/sv/Makefile.am	2007-05-17 13:50:43.000000000 +0200
@@ -55,3 +55,6 @@
 EXTRA_DIST = \
 	$(man_MANS) \
 	$(man_nopam)
+
+include ../generate_translations.mak
+
