Package: po4a
Version: 0.40.1-1
Severity: normal

Pursuant to our discussion in #599179, here's your new bug report as
requested.

The setup for this involves modifying man-db 2.5.7-6 to use out-of-tree
builds, as follows:

Index: debian/changelog
===================================================================
--- debian/changelog    (revision 3453)
+++ debian/changelog    (working copy)
@@ -1,3 +1,10 @@
+man-db (2.5.7-7) UNRELEASED; urgency=low
+
+  * Use a separate build directory, eliminating the requirement to preserve
+    some files by hand.
+
+ -- Colin Watson <[email protected]>  Thu, 04 Nov 2010 12:00:16 +0000
+
 man-db (2.5.7-6) unstable; urgency=low
 
   * Move po/fr.gmo aside during build so that it gets regenerated based on
Index: debian/rules
===================================================================
--- debian/rules        (revision 3453)
+++ debian/rules        (working copy)
@@ -1,12 +1,14 @@
 #! /usr/bin/make -f
+
+build   = debian/build
+dtmp    = debian/man-db
+
 %:
-       dh $@
+       dh --builddirectory=$(build) $@
 
 DEB_HOST_GNU_TYPE  ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
 DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
 
-dtmp    = debian/man-db
-
 include /usr/share/hardening-includes/hardening.make
 
 # Cf. #497653
@@ -32,29 +34,17 @@
                    --with-sections='1 n l 8 3 2 3posix 3pm 3perl 5 4 9 6 7'
 
 override_dh_auto_build:
-       [ ! -e po/fr.gmo ] || mv po/fr.gmo po/fr.gmo.safe
-       set -e; for preserve in man/po4a/po/*.pot man/po4a/po/*.po; do \
-               [ ! -e "$$preserve.safe" ] || continue; \
-               cp -a "$$preserve" "$$preserve.safe"; \
-       done
        dh_auto_build
-       $(MAKE) -C po fr.gmo
-       sed -f man/fr/replace.sed -e 's,%program%,manconv,g' \
-               man/fr/man1/manconv.man1 > man/fr/man1/manconv.1
+       $(MAKE) -C $(build)/po fr.gmo
+       sed -f $(build)/man/fr/replace.sed -e 's,%program%,manconv,g' \
+               $(build)/man/fr/man1/manconv.man1 \
+               > $(build)/man/fr/man1/manconv.1
 
 override_dh_auto_install:
        dh_auto_install
-       install -m 644 man/fr/man1/manconv.1 $(dtmp)/usr/share/man/fr/man1/
+       install -m 644 $(build)/man/fr/man1/manconv.1 \
+               $(dtmp)/usr/share/man/fr/man1/
 
-override_dh_auto_clean:
-       dh_auto_clean
-       set -e; for preserve in man/po4a/po/*.pot man/po4a/po/*.po; do \
-               [ -e "$$preserve.safe" ] || continue; \
-               mv "$$preserve.safe" "$$preserve"; \
-       done
-       [ ! -e po/fr.gmo.safe ] || mv po/fr.gmo.safe po/fr.gmo
-       rm -f man/fr/man1/manconv.1
-
 override_dh_clean:
        dh_clean -Xxmalloc.c.orig
 

I then manually built everything up to and including the src directory,
by running 'debian/rules build', Ctrl-Cing after configure had finished,
and then running:

  make -C debian/build/docs
  make -C debian/build/intl
  make -C debian/build/gnulib/lib
  make -C debian/build/gnulib/po
  make -C debian/build/lib
  make -C debian/build/libdb
  make -C debian/build/src

The next thing in the build sequence would be debian/build/man.

  <cjwat...@sarantium ~/src/debian/man-db/trunk/man-db>$ svn st
   M      debian
  M       debian/changelog
  M       debian/rules
  <cjwat...@sarantium ~/src/debian/man-db/trunk/man-db>$ make -C 
debian/build/man/po4a
  make: Entering directory 
`/home/cjwatson/src/debian/man-db/trunk/man-db/debian/build/man/po4a'
  make[1]: Entering directory 
`/home/cjwatson/src/debian/man-db/trunk/man-db/debian/build'
  make[1]: Leaving directory 
`/home/cjwatson/src/debian/man-db/trunk/man-db/debian/build'
  po4a --variable srcdir=../../../../man --variable builddir=../../man --keep 0 
../../../../man/po4a/po4a.cfg
  make: Leaving directory 
`/home/cjwatson/src/debian/man-db/trunk/man-db/debian/build/man/po4a'
  <cjwat...@sarantium ~/src/debian/man-db/trunk/man-db>$ svn st
   M      debian
  M       debian/changelog
  M       debian/rules
  M       man/po4a/po/ru.po
  M       man/po4a/po/pl.po
  M       man/po4a/po/id.po

It would be very helpful if there were a way to force this not to
happen.  When I'm doing out-of-tree builds, I certainly do not want PO
and POT files to be updated.  In fact, in general I would prefer to be
able to cause the 'make' step never to update PO and POT files, only
'make dist' or similar.  I could use --translate-only, but that seems
rather more tedious to use.

Thanks,

-- 
Colin Watson                                       [[email protected]]



-- 
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]

Reply via email to