Package: debhelper Version: 10.6.4 Severity: normal The recommended compat version substitution is broken in three ways.
Firstly, it fails to build with Ubuntu's version suffix as follows: cat debhelper.pod | \ perl -e ' undef $/; foreach (@ARGV) { open (IN, $_) or die "$_: $!"; $file=<IN>; close IN; if ($file=~m/=head1 .*?\n\n(.*?) - (.*?)\n\n/s) { my $item="=item $1(1)\n\n$2\n\n"; if (" dh_installmanpages " !~ / $1 /) { $list.=$item; } else { $list_deprecated.=$item; } } } END { my $recommended_compat = 10.6.4ubuntu1; $recommended_compat =~ s{\..*}{}; while (<STDIN>) { s/#LIST#/$list/; s/#LIST_DEPRECATED#/$list_deprecated/; s/#RECOMMEDED_COMPAT#/$recommeded_compat/; print; }; }' dh_auto_build dh_auto_clean dh_auto_configure dh_auto_install dh_auto_test dh_bugfiles dh_builddeb dh_clean dh_compress dh_fixperms dh_gconf dh_gencontrol dh_icons dh_install dh_installcatalogs dh_installchangelogs dh_installcron dh_installdeb dh_installdebconf dh_installdirs dh_installdocs dh_installemacsen dh_installexamples dh_installgsettings dh_installifupdown dh_installinfo dh_installinit dh_installlogcheck dh_installlogrotate dh_installman dh_installmanpages dh_installmenu dh_installmime dh_installmodules dh_installpam dh_installppp dh_installudev dh_installwm dh_installxfonts dh_link dh_lintian dh_listpackages dh_makeshlibs dh_md5sums dh_missing dh_movefiles dh_perl dh_prep dh_shlibdeps dh_strip dh_systemd_enable dh_systemd_start dh_testdir dh_testroot dh_ucf dh_update_autotools_config dh_usrlocal | \ pod2man --utf8 -c Debhelper -r "10.6.4ubuntu1" --name="debhelper" --section=7 > debhelper.7 Bareword found where operator expected at -e line 1, near "10.6.4ubuntu1" (Missing operator before ubuntu1?) syntax error at -e line 1, near "10.6.4ubuntu1" Execution of -e aborted due to compilation errors. Secondly, the variable that's substituted into POD files is misspelled: it should be RECOMMENDED_COMPAT, not RECOMMEDED_COMPAT. Relatedly, the Perl variable that's substituted is spelled $recommended_compat in one place and $recommeded_compat in another, which means the substitution just doesn't work at all. Thirdly, due to "undef $/" arranging for <STDIN> to read the whole file, the substitutions need to be performed with the /g flag, otherwise only the first occurrence is handled. The attached patch should fix all of this. -- Colin Watson [cjwat...@debian.org]
>From 67e9d2d9cd058cb10c1e43bce9213c4307ee854e Mon Sep 17 00:00:00 2001 From: Colin Watson <cjwat...@debian.org> Date: Wed, 26 Jul 2017 12:20:15 +0100 Subject: [PATCH] Fix substitution of recommended compat version Quote assignment to $recommended_compat in case it isn't a valid Perl version string (e.g. for Debian derivatives). Fix typos that caused it not to be used correctly. Use the /g flag so that all instances of the substitution variable are handled. --- Makefile | 8 ++++---- debhelper.pod | 8 ++++---- debian/changelog | 7 +++++++ man/po4a/po/de.po | 16 ++++++++-------- man/po4a/po/debhelper.pot | 8 ++++---- man/po4a/po/es.po | 24 ++++++++++++------------ man/po4a/po/fr.po | 16 ++++++++-------- man/po4a/po/ja.po | 18 +++++++++--------- man/po4a/po/pt.po | 16 ++++++++-------- 9 files changed, 64 insertions(+), 57 deletions(-) diff --git a/Makefile b/Makefile index 6e5b5f64..9cd42c8e 100644 --- a/Makefile +++ b/Makefile @@ -40,12 +40,12 @@ MAKEMANLIST=$(PERL) -e ' \ } \ } \ END { \ - my $$recommended_compat = $(VERSION); \ + my $$recommended_compat = q{$(VERSION)}; \ $$recommended_compat =~ s{\..*}{}; \ while (<STDIN>) { \ - s/\#LIST\#/$$list/; \ - s/\#LIST_DEPRECATED\#/$$list_deprecated/; \ - s/\#RECOMMEDED_COMPAT\#/$$recommeded_compat/; \ + s/\#LIST\#/$$list/g; \ + s/\#LIST_DEPRECATED\#/$$list_deprecated/g; \ + s/\#RECOMMENDED_COMPAT\#/$$recommended_compat/g; \ print; \ }; \ }' diff --git a/debhelper.pod b/debhelper.pod index 03fec655..1f35ff41 100644 --- a/debhelper.pod +++ b/debhelper.pod @@ -277,15 +277,15 @@ it modifies its behavior in various ways. The compatibility level is specified in the F<debian/compat> file and the file must be present. Tell debhelper what compatibility level to use by writing a number to -F<debian/compat>. For example, to use v#RECOMMEDED_COMPAT# mode: +F<debian/compat>. For example, to use v#RECOMMENDED_COMPAT# mode: - % echo #RECOMMEDED_COMPAT# > debian/compat + % echo #RECOMMENDED_COMPAT# > debian/compat Your package will also need a versioned build dependency on a version of debhelper equal to (or greater than) the compatibility level your package -uses. So for compatibility level #RECOMMEDED_COMPAT#, ensure debian/control has: +uses. So for compatibility level #RECOMMENDED_COMPAT#, ensure debian/control has: - Build-Depends: debhelper (>= #RECOMMEDED_COMPAT#) + Build-Depends: debhelper (>= #RECOMMENDED_COMPAT#) Unless otherwise indicated, all debhelper documentation assumes that you are using the most recent compatibility level, and in most cases does not diff --git a/debian/changelog b/debian/changelog index 3c43061f..5ea702a9 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,5 +1,6 @@ debhelper (10.7) UNRELEASED; urgency=medium + [ Niels Thykier ] * dh_usrlocal: Fix call to doit to avoid making it fork a shell. * autoconf.pm: Ditto. * cmake.pm: Ditto. @@ -55,6 +56,12 @@ debhelper (10.7) UNRELEASED; urgency=medium misc:Pre-Depends are present to avoid relying external processes for this. + [ Colin Watson ] + * Quote assignment to $recommended_compat in case it isn't a valid Perl + version string (e.g. for Debian derivatives). Fix typos that caused it + not to be used correctly. Use the /g flag so that all instances of the + substitution variable are handled. + -- Niels Thykier <ni...@thykier.net> Sat, 15 Jul 2017 09:42:32 +0000 debhelper (10.6.4) unstable; urgency=medium diff --git a/man/po4a/po/de.po b/man/po4a/po/de.po index 455c6c68..178db207 100644 --- a/man/po4a/po/de.po +++ b/man/po4a/po/de.po @@ -771,20 +771,20 @@ msgstr "" #: debhelper.pod:279 msgid "" "Tell debhelper what compatibility level to use by writing a number to " -"F<debian/compat>. For example, to use v#RECOMMEDED_COMPAT# mode:" +"F<debian/compat>. For example, to use v#RECOMMENDED_COMPAT# mode:" msgstr "" "Schreiben Sie eine Zahl nach F<debian/compat>, um Debhelper mitzuteilen, " "welche Kompatibilitätsstufe es nutzen soll. Um beispielsweise den Modus " -"V#RECOMMEDED_COMPAT# zu benutzen, geben Sie Folgendes ein:" +"V#RECOMMENDED_COMPAT# zu benutzen, geben Sie Folgendes ein:" #. type: verbatim #: debhelper.pod:282 #, no-wrap msgid "" -" % echo #RECOMMEDED_COMPAT# > debian/compat\n" +" % echo #RECOMMENDED_COMPAT# > debian/compat\n" "\n" msgstr "" -" % echo #RECOMMEDED_COMPAT# > debian/compat\n" +" % echo #RECOMMENDED_COMPAT# > debian/compat\n" "\n" #. type: textblock @@ -792,23 +792,23 @@ msgstr "" msgid "" "Your package will also need a versioned build dependency on a version of " "debhelper equal to (or greater than) the compatibility level your package " -"uses. So for compatibility level #RECOMMEDED_COMPAT#, ensure debian/control " +"uses. So for compatibility level #RECOMMENDED_COMPAT#, ensure debian/control " "has:" msgstr "" "Ihr Paket wird außerdem eine Bauabhängigkeit mit Versionspflege auf eine " "Debhelper-Version benötigen, die gleich (oder größer) als die ist, die von " "der Kompatibilitätsstufe Ihres Pakets verwandt wird. Daher müssen Sie für " -"Kompatibilitätsstufe #RECOMMEDED_COMPAT# sicherstellen, dass debian/control " +"Kompatibilitätsstufe #RECOMMENDED_COMPAT# sicherstellen, dass debian/control " "Folgendes hat:" #. type: verbatim #: debhelper.pod:288 #, no-wrap msgid "" -" Build-Depends: debhelper (>= #RECOMMEDED_COMPAT#)\n" +" Build-Depends: debhelper (>= #RECOMMENDED_COMPAT#)\n" "\n" msgstr "" -" Build-Depends: debhelper (>= #RECOMMEDED_COMPAT#)\n" +" Build-Depends: debhelper (>= #RECOMMENDED_COMPAT#)\n" "\n" #. type: textblock diff --git a/man/po4a/po/debhelper.pot b/man/po4a/po/debhelper.pot index 64580e12..46148e1e 100644 --- a/man/po4a/po/debhelper.pot +++ b/man/po4a/po/debhelper.pot @@ -553,14 +553,14 @@ msgstr "" #: debhelper.pod:279 msgid "" "Tell debhelper what compatibility level to use by writing a number to " -"F<debian/compat>. For example, to use v#RECOMMEDED_COMPAT# mode:" +"F<debian/compat>. For example, to use v#RECOMMENDED_COMPAT# mode:" msgstr "" #. type: verbatim #: debhelper.pod:282 #, no-wrap msgid "" -" % echo #RECOMMEDED_COMPAT# > debian/compat\n" +" % echo #RECOMMENDED_COMPAT# > debian/compat\n" "\n" msgstr "" @@ -569,7 +569,7 @@ msgstr "" msgid "" "Your package will also need a versioned build dependency on a version of " "debhelper equal to (or greater than) the compatibility level your package " -"uses. So for compatibility level #RECOMMEDED_COMPAT#, ensure debian/control " +"uses. So for compatibility level #RECOMMENDED_COMPAT#, ensure debian/control " "has:" msgstr "" @@ -577,7 +577,7 @@ msgstr "" #: debhelper.pod:288 #, no-wrap msgid "" -" Build-Depends: debhelper (>= #RECOMMEDED_COMPAT#)\n" +" Build-Depends: debhelper (>= #RECOMMENDED_COMPAT#)\n" "\n" msgstr "" diff --git a/man/po4a/po/es.po b/man/po4a/po/es.po index cf0a643c..61655460 100644 --- a/man/po4a/po/es.po +++ b/man/po4a/po/es.po @@ -875,21 +875,21 @@ msgstr "" #| "F<debian/compat>. For example, to turn on v9 mode:" msgid "" "Tell debhelper what compatibility level to use by writing a number to " -"F<debian/compat>. For example, to use v#RECOMMEDED_COMPAT# mode:" +"F<debian/compat>. For example, to use v#RECOMMENDED_COMPAT# mode:" msgstr "" "Para especificar a debhelper qué nivel de compatibilidad debe utilizar, " "escriba un número en F<debian/compat>. Por ejemplo, para activar el modo " -"v#RECOMMEDED_COMPAT#:" +"v#RECOMMENDED_COMPAT#:" # type: verbatim #. type: verbatim #: debhelper.pod:282 #, no-wrap msgid "" -" % echo #RECOMMEDED_COMPAT# > debian/compat\n" +" % echo #RECOMMENDED_COMPAT# > debian/compat\n" "\n" msgstr "" -" % echo #RECOMMEDED_COMPAT# > debian/compat\n" +" % echo #RECOMMENDED_COMPAT# > debian/compat\n" "\n" # type: textblock @@ -898,13 +898,13 @@ msgstr "" msgid "" "Your package will also need a versioned build dependency on a version of " "debhelper equal to (or greater than) the compatibility level your package " -"uses. So for compatibility level #RECOMMEDED_COMPAT#, ensure debian/control " +"uses. So for compatibility level #RECOMMENDED_COMPAT#, ensure debian/control " "has:" msgstr "" "El paquete también requiere como dependencia de construcción («build-" "depend») una versión de debhelper igual o mayor que el nivel de " "compatibilidad de debhelper que utiliza el paquete. Por ejemplo, para " -"utilizar el nivel de compatibilidad #RECOMMEDED_COMPAT#, compruebe que " +"utilizar el nivel de compatibilidad #RECOMMENDED_COMPAT#, compruebe que " "«debian/control» contiene lo siguiente:" # type: verbatim @@ -912,10 +912,10 @@ msgstr "" #: debhelper.pod:288 #, no-wrap msgid "" -" Build-Depends: debhelper (>= #RECOMMEDED_COMPAT#)\n" +" Build-Depends: debhelper (>= #RECOMMENDED_COMPAT#)\n" "\n" msgstr "" -" Build-Depends: debhelper (>= #RECOMMEDED_COMPAT#)\n" +" Build-Depends: debhelper (>= #RECOMMENDED_COMPAT#)\n" "\n" # type: textblock @@ -1687,13 +1687,13 @@ msgstr "" #: debhelper.pod:757 #, fuzzy, no-wrap #| msgid "" -#| " % echo #RECOMMEDED_COMPAT# > debian/compat\n" +#| " % echo #RECOMMENDED_COMPAT# > debian/compat\n" #| "\n" msgid "" " % echo beta-tester > debian/compat\n" "\n" msgstr "" -" % echo #RECOMMEDED_COMPAT# > debian/compat\n" +" % echo #RECOMMENDED_COMPAT# > debian/compat\n" "\n" #. type: textblock @@ -1706,13 +1706,13 @@ msgstr "" #: debhelper.pod:761 #, fuzzy, no-wrap #| msgid "" -#| " Build-Depends: debhelper (>= #RECOMMEDED_COMPAT#)\n" +#| " Build-Depends: debhelper (>= #RECOMMENDED_COMPAT#)\n" #| "\n" msgid "" " Build-Depends: debhelper (>= 9.20160815~)\n" "\n" msgstr "" -" Build-Depends: debhelper (>= #RECOMMEDED_COMPAT#)\n" +" Build-Depends: debhelper (>= #RECOMMENDED_COMPAT#)\n" "\n" #. type: textblock diff --git a/man/po4a/po/fr.po b/man/po4a/po/fr.po index 4f115d84..c9701109 100644 --- a/man/po4a/po/fr.po +++ b/man/po4a/po/fr.po @@ -831,21 +831,21 @@ msgstr "" #: debhelper.pod:279 msgid "" "Tell debhelper what compatibility level to use by writing a number to " -"F<debian/compat>. For example, to use v#RECOMMEDED_COMPAT# mode:" +"F<debian/compat>. For example, to use v#RECOMMENDED_COMPAT# mode:" msgstr "" "Pour indiquer à debhelper le niveau de compatibilité à utiliser il faut " "placer un nombre dans F<debian/compat>. Par exemple, pour exploiter la " -"version #RECOMMEDED_COMPAT# :" +"version #RECOMMENDED_COMPAT# :" # type: verbatim #. type: verbatim #: debhelper.pod:282 #, no-wrap msgid "" -" % echo #RECOMMEDED_COMPAT# > debian/compat\n" +" % echo #RECOMMENDED_COMPAT# > debian/compat\n" "\n" msgstr "" -" % echo #RECOMMEDED_COMPAT# > debian/compat\n" +" % echo #RECOMMENDED_COMPAT# > debian/compat\n" "\n" # type: textblock @@ -854,13 +854,13 @@ msgstr "" msgid "" "Your package will also need a versioned build dependency on a version of " "debhelper equal to (or greater than) the compatibility level your package " -"uses. So for compatibility level #RECOMMEDED_COMPAT#, ensure debian/control " +"uses. So for compatibility level #RECOMMENDED_COMPAT#, ensure debian/control " "has:" msgstr "" "Le paquet nécessitera aussi une version de debhelper dans les dépendances de " "construction au moins égale au niveau de compatibilité utilisée pour la " "construction du paquet. Ainsi, si le paquet emploie le " -"niveau #RECOMMEDED_COMPAT# de compatibilité, F<debian/control> devra " +"niveau #RECOMMENDED_COMPAT# de compatibilité, F<debian/control> devra " "contenir :" # type: verbatim @@ -868,10 +868,10 @@ msgstr "" #: debhelper.pod:288 #, no-wrap msgid "" -" Build-Depends: debhelper (>= #RECOMMEDED_COMPAT#)\n" +" Build-Depends: debhelper (>= #RECOMMENDED_COMPAT#)\n" "\n" msgstr "" -" Build-Depends: debhelper (>= #RECOMMEDED_COMPAT#)\n" +" Build-Depends: debhelper (>= #RECOMMENDED_COMPAT#)\n" "\n" # type: textblock diff --git a/man/po4a/po/ja.po b/man/po4a/po/ja.po index 7c42213e..08819570 100644 --- a/man/po4a/po/ja.po +++ b/man/po4a/po/ja.po @@ -752,19 +752,19 @@ msgstr "" #: debhelper.pod:279 msgid "" "Tell debhelper what compatibility level to use by writing a number to " -"F<debian/compat>. For example, to use v#RECOMMEDED_COMPAT# mode:" +"F<debian/compat>. For example, to use v#RECOMMENDED_COMPAT# mode:" msgstr "" "数字を F<debian/compat> に記述して、debhelper にどの互換性レベルを使うかを教" -"えます。例えば、v#RECOMMEDED_COMPAT# モードを使うには次の様にします:" +"えます。例えば、v#RECOMMENDED_COMPAT# モードを使うには次の様にします:" #. type: verbatim #: debhelper.pod:282 #, no-wrap msgid "" -" % echo #RECOMMEDED_COMPAT# > debian/compat\n" +" % echo #RECOMMENDED_COMPAT# > debian/compat\n" "\n" msgstr "" -" % echo #RECOMMEDED_COMPAT# > debian/compat\n" +" % echo #RECOMMENDED_COMPAT# > debian/compat\n" "\n" #. type: textblock @@ -772,22 +772,22 @@ msgstr "" msgid "" "Your package will also need a versioned build dependency on a version of " "debhelper equal to (or greater than) the compatibility level your package " -"uses. So for compatibility level #RECOMMEDED_COMPAT#, ensure debian/control " +"uses. So for compatibility level #RECOMMENDED_COMPAT#, ensure debian/control " "has:" msgstr "" "パッケージは、利用する互換性レベルと同じ (あるいはそれ以上) のバージョンの " "debhelper プログラムをビルド依存として設定する必要があります。互換性レベル " -"#RECOMMEDED_COMPAT# の場合、debian/control ファイルが以下の様になっていること" -"を確認してください:" +"#RECOMMENDED_COMPAT# の場合、debian/control ファイルが以下の様になっているこ" +"とを確認してください:" #. type: verbatim #: debhelper.pod:288 #, no-wrap msgid "" -" Build-Depends: debhelper (>= #RECOMMEDED_COMPAT#)\n" +" Build-Depends: debhelper (>= #RECOMMENDED_COMPAT#)\n" "\n" msgstr "" -" Build-Depends: debhelper (>= #RECOMMEDED_COMPAT#)\n" +" Build-Depends: debhelper (>= #RECOMMENDED_COMPAT#)\n" "\n" #. type: textblock diff --git a/man/po4a/po/pt.po b/man/po4a/po/pt.po index 821b90b2..f44464de 100644 --- a/man/po4a/po/pt.po +++ b/man/po4a/po/pt.po @@ -763,20 +763,20 @@ msgstr "" #: debhelper.pod:279 msgid "" "Tell debhelper what compatibility level to use by writing a number to " -"F<debian/compat>. For example, to use v#RECOMMEDED_COMPAT# mode:" +"F<debian/compat>. For example, to use v#RECOMMENDED_COMPAT# mode:" msgstr "" "Diz ao debhelper qual nível de compatibilidade deve usar ao escrever um " "número em F<debian/compat>. Por exemplo, para usar o modo " -"v#RECOMMEDED_COMPAT#:" +"v#RECOMMENDED_COMPAT#:" #. type: verbatim #: debhelper.pod:282 #, no-wrap msgid "" -" % echo #RECOMMEDED_COMPAT# > debian/compat\n" +" % echo #RECOMMENDED_COMPAT# > debian/compat\n" "\n" msgstr "" -" % echo #RECOMMEDED_COMPAT# > debian/compat\n" +" % echo #RECOMMENDED_COMPAT# > debian/compat\n" "\n" #. type: textblock @@ -784,22 +784,22 @@ msgstr "" msgid "" "Your package will also need a versioned build dependency on a version of " "debhelper equal to (or greater than) the compatibility level your package " -"uses. So for compatibility level #RECOMMEDED_COMPAT#, ensure debian/control " +"uses. So for compatibility level #RECOMMENDED_COMPAT#, ensure debian/control " "has:" msgstr "" "O seu pacote também vai precisar de uma dependência de compilação de versão " "de uma versão do debhelper igual (ou maior que) ao nível de compatibilidade " "que o seu pacote usa. Portanto para nível de compatibilidade " -"#RECOMMEDED_COMPAT#, certifique-se que debian/control tem:" +"#RECOMMENDED_COMPAT#, certifique-se que debian/control tem:" #. type: verbatim #: debhelper.pod:288 #, no-wrap msgid "" -" Build-Depends: debhelper (>= #RECOMMEDED_COMPAT#)\n" +" Build-Depends: debhelper (>= #RECOMMENDED_COMPAT#)\n" "\n" msgstr "" -" Build-Depends: debhelper (>= #RECOMMEDED_COMPAT#)\n" +" Build-Depends: debhelper (>= #RECOMMENDED_COMPAT#)\n" "\n" #. type: textblock -- 2.13.2