Bläddra i källkod

Dpkg::Shlibs::SymbolFile: Do not replace #PACKAGE# in template mode

These markers get instantiated when generating the output files,
replacing them when generating a template is wrong.
Guillem Jover 11 år sedan
förälder
incheckning
89c443f4d4
2 ändrade filer med 10 tillägg och 3 borttagningar
  1. 1 0
      debian/changelog
  2. 9 3
      scripts/Dpkg/Shlibs/SymbolFile.pm

+ 1 - 0
debian/changelog

@@ -9,6 +9,7 @@ dpkg (1.18.1) UNRELEASED; urgency=low
     - Add missing strict and warnings pragmas for submodules.
     - Use non-destructive substitutions inside map.
     - Use the state keyword to simplify the code.
+    - Do not replace #PACKAGE# in template mode in Dpkg::Shlibs::SymbolFile.
 
   [ Updated programs translations ]
   * German (Sven Joachim).

+ 9 - 3
scripts/Dpkg/Shlibs/SymbolFile.pm

@@ -286,19 +286,25 @@ sub output {
     foreach my $soname (sort $self->get_sonames()) {
 	my @deps = $self->get_dependencies($soname);
 	my $dep_first = shift @deps;
-	$dep_first =~ s/#PACKAGE#/$opts{package}/g if exists $opts{package};
+	if (exists $opts{package} and not $opts{template_mode}) {
+	    $dep_first =~ s/#PACKAGE#/$opts{package}/g;
+	}
 	print { $fh } "$soname $dep_first\n" if defined $fh;
 	$res .= "$soname $dep_first\n" if defined wantarray;
 
 	foreach my $dep_next (@deps) {
-	    $dep_next =~ s/#PACKAGE#/$opts{package}/g if exists $opts{package};
+	    if (exists $opts{package} and not $opts{template_mode}) {
+	        $dep_next =~ s/#PACKAGE#/$opts{package}/g;
+	    }
 	    print { $fh } "| $dep_next\n" if defined $fh;
 	    $res .= "| $dep_next\n" if defined wantarray;
 	}
 	my $f = $self->{objects}{$soname}{fields};
 	foreach my $field (sort keys %{$f}) {
 	    my $value = $f->{$field};
-	    $value =~ s/#PACKAGE#/$opts{package}/g if exists $opts{package};
+	    if (exists $opts{package} and not $opts{template_mode}) {
+	        $value =~ s/#PACKAGE#/$opts{package}/g;
+	    }
 	    print { $fh } "* $field: $value\n" if defined $fh;
 	    $res .= "* $field: $value\n" if defined wantarray;
 	}