On Sun, Sep 04, 2011 at 07:03:29PM +0200, Josselin Mouette wrote: > Package: dh-autoreconf > Version: 4 > Severity: wishlist > > Hi, > > as it stands, autoreconf will not update gtk-doc.make whenever needed. > When the version in the tarball gets out of sync with the version in the > system, the documentation build will fail. > > Simple fix: > cp /usr/share/gtk-doc/data/gtk-doc.make . > before the autoreconf invocation.
You might want to run dh_autoreconf with autogen.sh or similar instead of autoreconf (but probably not have autogen.sh run ./configure) -- Simply replacing gtk-doc makefiles in dh_autoreconf does not seem like a good solution. Although we could probably do this if dh_autoreconf is run without a command (i.e. if it runs autoreconf -f -i). The attached patch runs gtkdocize under the following circumstances: (1) It is installed (2) GTK_DOC_CHECK is called in configure.ac or configure.in (3) No command to run has been given to dh_autoreconf Especially (3) is important, as users not wanting to run autoreconf -f -i likely do not want to run gtkdocize either. -- Julian Andres Klode - Debian Developer, Ubuntu Member See http://wiki.debian.org/JulianAndresKlode and http://jak-linux.org/.
diff --git a/dh_autoreconf b/dh_autoreconf index f863aa2..679064e 100755 --- a/dh_autoreconf +++ b/dh_autoreconf @@ -83,8 +83,28 @@ shall not be run: export AUTOMAKE = automake1.10 export LIBTOOLIZE = true +=head1 BEHAVIOR IF NO COMMAND IS GIVEN + +If no command is given to dh_autoreconf, it will run the following commands +in order: + + autoreconf -f -i + gtkdocize --copy # if GTK_DOC_CHECK is called in configure.{ac,in} + +If you have directories listed in debian/autoreconf, autoreconf will be run +on all of them, whereas gtkdocize may be run only on the top-level build +directory. =cut +# Read a file, return an array of lines. +sub readfile ($) { + my $file = shift; + open(DAT, $file) || error("Could not read file: " . $file); + my @data=<DAT>; + close(DAT); + return @data; +} + init(options => { "mode=s" => \$dh{MODE}, "as-needed" => \$dh{AS_NEEDED}}); @@ -123,6 +143,16 @@ my $find = $modes{$dh{MODE} || "md5"} || complex_doit("$find > debian/autoreconf.before"); + +# Run gtkdocize automatically +if (-f "/usr/bin/gtkdocize" and not @ARGV) { + my $configure = (-e "configure.ac") ? "configure.ac" : "configure.in"; + + if (-e $configure && grep(/^GTK_DOC_CHECK/, readfile($configure))) { + doit("gtkdocize", "--copy"); + } +} + # Run autoreconf to recreate the needed files. @ARGV ? doit(@ARGV, @{$dh{U_PARAMS}}) : doit('autoreconf', '-f', '-i', @directories);
pgpRs7twdOpOJ.pgp
Description: PGP signature