Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package debhelper for openSUSE:Factory checked in at 2026-02-19 14:25:05 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/debhelper (Old) and /work/SRC/openSUSE:Factory/.debhelper.new.1977 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "debhelper" Thu Feb 19 14:25:05 2026 rev:34 rq:1333918 version:13.30 Changes: -------- --- /work/SRC/openSUSE:Factory/debhelper/debhelper.changes 2026-01-08 15:29:56.995378080 +0100 +++ /work/SRC/openSUSE:Factory/.debhelper.new.1977/debhelper.changes 2026-02-19 14:25:41.112461402 +0100 @@ -1,0 +2,12 @@ +Thu Feb 19 11:32:45 UTC 2026 - Jan Baier <[email protected]> + +- update to 13.30 + * dh_installsystemd[user]: ensure excluded units via -X do not get + processed due to `Also=` + * dh_clean: Catch missing trailing `/` on directories + * d/control: Drop unnecessary `Priority: optional` + * dh_installchangelogs: Keep more entries if timestamp cannot be parsed + (Closes: #1126043) + * Update on Portuguese translation of the man pages (Closes: #1124415) + +------------------------------------------------------------------- Old: ---- debhelper-debian-13.29.tar.gz New: ---- debhelper-debian-13.30.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ debhelper.spec ++++++ --- /var/tmp/diff_new_pack.XmBUye/_old 2026-02-19 14:25:42.240508202 +0100 +++ /var/tmp/diff_new_pack.XmBUye/_new 2026-02-19 14:25:42.240508202 +0100 @@ -17,7 +17,7 @@ Name: debhelper -Version: 13.29 +Version: 13.30 Release: 0 Summary: Helper programs for debian/rules License: GPL-2.0-or-later ++++++ debhelper-debian-13.29.tar.gz -> debhelper-debian-13.30.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/debhelper-debian-13.29/debian/changelog new/debhelper-debian-13.30/debian/changelog --- old/debhelper-debian-13.29/debian/changelog 2025-12-13 13:21:34.000000000 +0100 +++ new/debhelper-debian-13.30/debian/changelog 2026-02-15 11:49:09.000000000 +0100 @@ -1,3 +1,20 @@ +debhelper (13.30) unstable; urgency=medium + + [ Luca Boccassi ] + * dh_installsystemd[user]: ensure excluded units via -X do not get + processed due to `Also=` + + [ Niels Thykier ] + * dh_clean: Catch missing trailing `/` on directories + * d/control: Drop unnecessary `Priority: optional` + * dh_installchangelogs: Keep more entries if timestamp cannot be parsed + (Closes: #1126043) + + [ Américo Monteiro ] + * Update on Portuguese translation of the man pages (Closes: #1124415) + + -- Niels Thykier <[email protected]> Sun, 15 Feb 2026 10:48:53 +0000 + debhelper (13.29) unstable; urgency=medium [ Niels Thykier ] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/debhelper-debian-13.29/debian/control new/debhelper-debian-13.30/debian/control --- old/debhelper-debian-13.29/debian/control 2025-12-13 13:21:34.000000000 +0100 +++ new/debhelper-debian-13.30/debian/control 2026-02-15 11:49:09.000000000 +0100 @@ -1,6 +1,5 @@ Source: debhelper Section: devel -Priority: optional Maintainer: Debhelper Maintainers <[email protected]> Uploaders: Niels Thykier <[email protected]>, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/debhelper-debian-13.29/dh_clean new/debhelper-debian-13.30/dh_clean --- old/debhelper-debian-13.29/dh_clean 2025-12-13 13:21:34.000000000 +0100 +++ new/debhelper-debian-13.30/dh_clean 2026-02-15 11:49:09.000000000 +0100 @@ -96,7 +96,7 @@ # Remove the debhelper stamp file rm_files('debian/debhelper-build-stamp') if not $dh{D_FLAG}; -my (@clean_files, @clean_dirs, %seen); +my (@clean_files, @requested_clean_files, @clean_dirs, %seen); foreach my $package (@{$dh{DOPACKAGES}}) { my $tmp=tmpdir($package); @@ -137,7 +137,7 @@ if (! $dh{D_FLAG}) { if (@ARGV) { - push(@clean_files, grep { !m@/$@ } @ARGV); + push(@requested_clean_files, grep { !m@/$@ } @ARGV); push(@clean_dirs, grep { m@/$@ } @ARGV); } @@ -148,7 +148,7 @@ # Silently ignore missing files - for all we know, dh_clean is run before # they have been created. } filearray('debian/clean', ["."], \&glob_expand_error_handler_silently_ignore); - push(@clean_files, grep { !m@/$@ } @clean); + push(@requested_clean_files, grep { !m@/$@ } @clean); push(@clean_dirs, grep { m@/$@ } @clean); } @@ -157,6 +157,17 @@ } } +my @dir_in_clean_files = grep { -d } @requested_clean_files; + +if (@dir_in_clean_files) { + warning("Removal of the following *files* that turned out to be *directories*:"); + warning(""); + warning(" * $_") for @dir_in_clean_files; + warning(""); + error("If the removals of these directories were intentional, ensure it ends with a trailing slash."); +} + +unshift(@clean_files, @requested_clean_files); xargs(\@clean_files, 'rm', '-f', '--') if @clean_files; xargs(\@clean_dirs, 'rm', '-fr', '--') if @clean_dirs; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/debhelper-debian-13.29/dh_installchangelogs new/debhelper-debian-13.30/dh_installchangelogs --- old/debhelper-debian-13.29/dh_installchangelogs 2025-12-13 13:21:34.000000000 +0100 +++ new/debhelper-debian-13.30/dh_installchangelogs 2026-02-15 11:49:09.000000000 +0100 @@ -164,14 +164,10 @@ my $changelog_trimmed = generated_file($package, "dh_installchangelogs.dch.trimmed"); my $changelog_binnmu = generated_file($package, "dh_installchangelogs.dch.binnmu"); - my ($error_in_changelog, $has_been_trimmed, $oldest_entry_time) = + my ($has_been_trimmed, $oldest_entry_time) = prepare_changesfile("CHANGELOG", $changelog, $changelog_trimmed, $changelog_binnmu); - if ($error_in_changelog) { - # If the changelog could not be trimmed, fall back to the full changelog. - warning("$changelog could not be trimmed. The full changelog will be installed."); - $changelog_trimmed = $changelog; - } elsif ($has_been_trimmed) { + if ($has_been_trimmed) { # Otherwise add a comment stating that this changelog has been trimmed. my $note = "\n"; $note .= "# Older entries have been removed from this changelog.\n"; @@ -200,18 +196,10 @@ my $news_trimmed = generated_file($package, "dh_installchangelogs.news.trimmed"); - my ($error_in_news, $has_been_trimmed, $oldest_entry_time) = - prepare_changesfile("NEWS", $news, $news_trimmed, undef, $oldest_log_entry_time); - - if ($error_in_news) { - # If the NEWS file could not be trimmed, fall back to the full NEWS file. - warning("$news could not be trimmed. The full NEWS file will be installed."); - $news_trimmed = $news; - } - + my ($has_been_trimmed) = prepare_changesfile("NEWS", $news, $news_trimmed, undef, $oldest_log_entry_time); + my $source = $has_been_trimmed ? $news_trimmed : $news; # Install NEWS unless there are no recent news. - install_file($news_trimmed, "$tmp/usr/share/doc/$package/$news_name") - unless (-z $news_trimmed); + install_file($source, "$tmp/usr/share/doc/$package/$news_name") unless (-z $source); } sub prepare_changesfile { @@ -225,10 +213,10 @@ open(my $log2, ">", $changesfile_trimmed) or error("Cannot open($changesfile_trimmed): $!"); my $oldest_entry_time; - my $error_in_changesfile = 0; my $is_binnmu = 0; my $entry = ""; my $entry_num = 0; + my $warned_once = 0; while (my $line=<$log1>) { $entry .= $line; @@ -265,10 +253,13 @@ my $entry_time; eval { $entry_time = Time::Piece->strptime($timestamp, '%d %b %Y %T %z') }; if (! defined $entry_time) { - $error_in_changesfile = 1; - warning("Could not parse timestamp '$timestamp'. $changesfile will not be trimmed."); - truncate($log2, 0) or error("Cannot truncate($changesfile_trimmed): $!"); - last; + warning("Could not parse timestamp '$timestamp'. May keep too many entries") if $warned_once; + $warned_once = 1; + # If we do not know, we just keep it and the first one after that. The rationale here is that + # the NEWS file has to keep the exact same entries and if we end up on a timestamp we cannot + # parse, we might get that wrong. + $entry_num = MIN_NUM_ENTRIES - 1 if $entry_num >= MIN_NUM_ENTRIES; + next; } # Stop processing the changelog if we reached the cut-off date and @@ -296,7 +287,7 @@ close($log1) or error("Cannot close($changesfile): $!"); close($log2) or error("Cannot close($changesfile_trimmed): $!"); - return $error_in_changesfile, $has_been_trimmed, $oldest_entry_time + return $has_been_trimmed, $oldest_entry_time } # INTROSPECTABLE: CONFIG-FILES pkgfile(changelog) pkgfile(NEWS) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/debhelper-debian-13.29/dh_installsystemd new/debhelper-debian-13.30/dh_installsystemd --- old/debhelper-debian-13.29/dh_installsystemd 2025-12-13 13:21:34.000000000 +0100 +++ new/debhelper-debian-13.30/dh_installsystemd 2026-02-15 11:49:09.000000000 +0100 @@ -389,6 +389,10 @@ # only to suport a very specific use case in network-manager. unless ($dh{NO_ALSO}) { push @args, $_ for grep { !$seen{$_}++ } extract_key($path, 'Also'); + # Ensure excluded units do not sneak back in via Also=. + foreach my $x (@{$dh{EXCLUDE}}) { + @args = grep !/(^|\/)$x$/, @args; + } } # Extract unit aliases. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/debhelper-debian-13.29/dh_installsystemduser new/debhelper-debian-13.30/dh_installsystemduser --- old/debhelper-debian-13.29/dh_installsystemduser 2025-12-13 13:21:34.000000000 +0100 +++ new/debhelper-debian-13.30/dh_installsystemduser 2026-02-15 11:49:09.000000000 +0100 @@ -238,6 +238,10 @@ # cannot read the unit file when disabling as it has already # been deleted. push @args, $_ for grep { !$seen{$_}++ } extract_key($path, 'Also'); + # Ensure excluded units do not sneak back in via Also=. + foreach my $x (@{$dh{EXCLUDE}}) { + @args = grep !/(^|\/)$x$/, @args; + } push @enable_units, $name if contains_install_section($path); push @start_units, $name; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/debhelper-debian-13.29/man/po4a/po/pt.po new/debhelper-debian-13.30/man/po4a/po/pt.po --- old/debhelper-debian-13.29/man/po4a/po/pt.po 2025-12-13 13:21:34.000000000 +0100 +++ new/debhelper-debian-13.30/man/po4a/po/pt.po 2026-02-15 11:49:09.000000000 +0100 @@ -5,10 +5,10 @@ # SPDX-FileCopyrightText: 2014 - 2025 Américo Monteiro <[email protected]> msgid "" msgstr "" -"Project-Id-Version: debhelper 13.28\n" +"Project-Id-Version: debhelper 13.29\n" "Report-Msgid-Bugs-To: [email protected]\n" "POT-Creation-Date: 2025-12-13 13:20+0100\n" -"PO-Revision-Date: 2025-10-18 19:52+0100\n" +"PO-Revision-Date: 2025-12-31 22:15+0000\n" "Last-Translator: Américo Monteiro <[email protected]>\n" "Language-Team: Portuguese <>\n" "Language: pt\n" @@ -562,12 +562,6 @@ #. type: textblock #: debhelper.pod:228 -#, fuzzy -#| msgid "" -#| "To avoid infinite loops and resource exhaustion, debhelper will stop with " -#| "an error if the text contains many substitution variables (50) or they " -#| "expand beyond a certain size (4096 characters or 3x length of the " -#| "original input - whichever is bigger)." msgid "" "To avoid infinite loops and resource exhaustion, debhelper will stop with an " "error if the token contains many substitution variables (50) or the total " @@ -575,9 +569,9 @@ "length of the original input - whichever is bigger)." msgstr "" "Para evitar ciclos infinitos e exaustão de recursos, o debhelper irá parar " -"com um erro se o texto conter muitas variáveis de substituição (50) ou se " -"elas expandirem para lá de um determinado tamanho (4096 caracteres ou 3x o " -"comprimento da entrada original - qual deles for maior)." +"com um erro se o token conter muitas variáveis de substituição (50) ou se o " +"valor total do valor expandido exceder um determinado tamanho (4096 " +"caracteres ou 3x o comprimento da entrada original - qual deles for maior)." #. type: textblock #: debhelper.pod:233 @@ -586,6 +580,9 @@ "token. The common case of files like F<< debian/I<package>.install >>, each " "token is a file/path name." msgstr "" +"Note que o limite é por token. Cada ajudante decide a sua própria definição " +"de um token. O caso comum de ficheiros como F<< debian/I<package>.install " +">>, cada token é um nome de ficheiro/caminho." #. type: =head3 #: debhelper.pod:237 @@ -1633,6 +1630,15 @@ "or hand-written management of configuration files. These things should " "generally occur before the B<#DEBHELPER#> token." msgstr "" +"Ao inserir o token B<#DEBHELPER#> num script, considere se qualquer do " +"código escrito à mão tem uma razão convincente para aparecer I<antes> do " +"token B<#DEBHELPER#>. O token B<#DEBHELPER#> irá geralmente conter o código " +"que arranca (F<postinst>) ou pára (F<prerm>/F<preinst>) quaisquer serviços " +"que o pacote fornece. Muitas vezes (mas nem sempre), é melhor deixar o " +"código de B<#DEBHELPER#> correr primeiro. Exceções comuns incluem coisas " +"como B<set -e>, inicializar B<debconf> (quando necessário) e casos especiais " +"como geração de gestão escrita à mão de ficheiros de configuração. Estas " +"coisas devem geralmente ocorrer antes do token B<#DEBHELPER#>." #. type: textblock #: debhelper.pod:645 @@ -8721,17 +8727,14 @@ #. type: textblock #: dh_installdeb:45 -#, fuzzy -#| msgid "" -#| "The B<#DEBHELPER#> token should be placed on its own line as it is often " -#| "replaced by a multi-line shell script." msgid "" "The B<#DEBHELPER#> token should be placed on its own line as it is often " "replaced by a multi-line shell script. Please see L<debhelper(7)> for advice " "on the placement of this token." msgstr "" "O token B<#DEBHELPER#> deve ser colocado na sua linha própria pois é muitas " -"vezes substituído por um script de shell de multi-linhas." +"vezes substituído por um script de shell de multi-linhas. Por favor veja " +"L<debhelper(7)> para conselho sobre a colocação deste token." #. type: =item #: dh_installdeb:49
