On Sat, 18 Nov 2017 at 18:35:38 +0200, Adrian Bunk wrote:
> On Sat, Nov 18, 2017 at 09:36:58AM +0100, Helmut Grohne wrote:
> >...
> > +override_dh_autoreconf:
> > + rm -f gtk-doc.make
> > + gtkdocize
> > + dh_autoreconf
> >...
>
> The "rm -f gtk-doc.make" has to be done when cleaning,
> not in autoreconf.
dh_autoreconf_clean is meant to delete whatever was changed by
dh_autoreconf if it is given a script to run instead of autoreconf,
typically either "NOCONFIGURE=1 ./autogen.sh" using upstream's autogen.sh,
or a debian/autogen.sh containing gtkdocize and autoreconf -fi. The man
page briefly mentions this method, and src:flatpak in unstable is an
example of it in use. Is that a valid approach, or is there a reason
why explicitly deleting the file during clean should be preferred?
I'd like to document whichever one is best-practice a bit more clearly.
It looks as though plain gtkdocize replaces gtk-doc.make with a symbolic
link, which dh-autoreconf won't delete (bug filed), breaking the ability
to build twice in a row; so gtkdocize --copy (which works like I expected)
is probably better, at least until/unless dh-autoreconf can be taught
to remove files that were replaced with a symlink. I've changed flatpak
in git to use gtkdocize --copy.
Helmut: similarly, is there a reason that I'm not seeing why explicitly
removing gtk-doc.make before gtkdocize was necessary, or were you only
doing that as a way to be completely sure that the old one wasn't used, or
was it a workaround for gtkdocize turning the plain file into a symlink?
I can confirm that using the same approach as in src:flatpak (but with
gtkdocize --copy) makes libidn2 build correctly, producing binaries
that should be functionally identical to what the maintainer uploaded
(diffoscope reports only trivial differences). Patches attached.
Regards,
smcv
>From 47dce702411c4b4c4c86015b9609f82268282a5e Mon Sep 17 00:00:00 2001
From: Helmut Grohne <[email protected]>
Date: Fri, 17 Nov 2017 22:43:07 +0100
Subject: [PATCH 1/4] Fix FTBFS: gtkdocize and add dblatex to Build-Depends.
(Closes: #881915)
---
debian/changelog | 7 +++++++
debian/control | 3 ++-
debian/rules | 5 +++++
3 files changed, 14 insertions(+), 1 deletion(-)
diff --git a/debian/changelog b/debian/changelog
index c27cd70..607178a 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+libidn2 (2.0.4-1.1) UNRELEASED; urgency=medium
+
+ * Non-maintainer upload.
+ * Fix FTBFS: gtkdocize and add dblatex to Build-Depends. (Closes: #881915)
+
+ -- Helmut Grohne <[email protected]> Fri, 17 Nov 2017 22:43:07 +0100
+
libidn2 (2.0.4-1) unstable; urgency=medium
* Add myself to Uploaders
diff --git a/debian/control b/debian/control
index b441c4b..2f9e798 100644
--- a/debian/control
+++ b/debian/control
@@ -12,7 +12,8 @@ Build-Depends: debhelper (>= 9),
ruby-ronn,
texinfo,
texlive,
- gtk-doc-tools
+ gtk-doc-tools,
+ dblatex,
Standards-Version: 4.1.0
Priority: optional
Homepage: https://www.gnu.org/software/libidn/#libidn2
diff --git a/debian/rules b/debian/rules
index 1a6212b..5790fa3 100755
--- a/debian/rules
+++ b/debian/rules
@@ -5,6 +5,11 @@ export DEB_BUILD_MAINT_OPTIONS = hardening=+all
%:
dh $@ --parallel --with autoreconf --fail-missing -O--dbgsym-migration="libidn2-0-dbg (<< 2.0.2-1~)" -X.la
+override_dh_autoreconf:
+ rm -f gtk-doc.make
+ gtkdocize
+ dh_autoreconf
+
override_dh_auto_configure:
dh_auto_configure -- \
--enable-ld-version-script \
--
2.15.0
>From e1e70e45ec8d8ddf929f803b50f624ee5381dc32 Mon Sep 17 00:00:00 2001
From: Simon McVittie <[email protected]>
Date: Wed, 22 Nov 2017 08:28:00 +0000
Subject: [PATCH 2/4] Run gtkdocize via debian/autogen.sh
This is passed as a parameter to dh_autoreconf, so that the changed
gtk-doc.make will be detected by dh_autoreconf and deleted in
dh_autoreconf_clean.
Use gtkdocize --copy so that it doesn't replace plain files with
symlinks, which dh_autoreconf_clean doesn't currently know how to undo.
---
debian/autogen.sh | 4 ++++
debian/changelog | 9 +++++++++
debian/rules | 4 +---
3 files changed, 14 insertions(+), 3 deletions(-)
create mode 100755 debian/autogen.sh
diff --git a/debian/autogen.sh b/debian/autogen.sh
new file mode 100755
index 0000000..38ef0ff
--- /dev/null
+++ b/debian/autogen.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+set -e
+gtkdocize --copy
+autoreconf -fi
diff --git a/debian/changelog b/debian/changelog
index 607178a..3cf9420 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,8 +1,17 @@
libidn2 (2.0.4-1.1) UNRELEASED; urgency=medium
* Non-maintainer upload.
+
+ [ Helmut Grohne ]
* Fix FTBFS: gtkdocize and add dblatex to Build-Depends. (Closes: #881915)
+ [ Simon McVittie ]
+ * Run gtkdocize via a script debian/autogen.sh passed as a parameter
+ to dh_autoreconf, so that the changed gtk-doc.make will be recorded
+ by dh_autoreconf and deleted by dh_autoreconf_clean
+ - Use gtkdocize --copy to avoid gtk-doc.make becoming a symlink, which
+ dh_autoreconf doesn't currently handle
+
-- Helmut Grohne <[email protected]> Fri, 17 Nov 2017 22:43:07 +0100
libidn2 (2.0.4-1) unstable; urgency=medium
diff --git a/debian/rules b/debian/rules
index 5790fa3..e013df1 100755
--- a/debian/rules
+++ b/debian/rules
@@ -6,9 +6,7 @@ export DEB_BUILD_MAINT_OPTIONS = hardening=+all
dh $@ --parallel --with autoreconf --fail-missing -O--dbgsym-migration="libidn2-0-dbg (<< 2.0.2-1~)" -X.la
override_dh_autoreconf:
- rm -f gtk-doc.make
- gtkdocize
- dh_autoreconf
+ dh_autoreconf debian/autogen.sh
override_dh_auto_configure:
dh_auto_configure -- \
--
2.15.0
_______________________________________________
Help-libidn mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/help-libidn