[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Ubuntu dpkg 1.14.12ubuntu2



This e-mail has been sent due to an upload to Ubuntu that contains Ubuntu
changes.  It contains the difference between the new version and the
previous version of the same source package in Ubuntu.
Format: 1.7
Date: Wed, 12 Dec 2007 08:37:22 +0000
Source: dpkg
Binary: dpkg dselect dpkg-dev
Architecture: source
Version: 1.14.12ubuntu2
Distribution: hardy
Urgency: low
Maintainer: Ubuntu Core Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Changed-By: Matthias Klose <doko@ubuntu.com>
Description: 
 dpkg       - package maintenance system for Debian
 dpkg-dev   - package building tools for Debian
 dselect    - user tool to manage Debian packages
Closes: 455260
Changes: 
 dpkg (1.14.12ubuntu2) hardy; urgency=low
 .
   * Cherry pick from current trunk:
     - Included files in symbols files (via #include) do no more need to repeat
       the header line. Closes: #455260
     - scripts/Dpkg/Shlibs/SymbolFile.pm (merge_symbols): Do not update
       the deprecated version of a a symbol if it is already marked deprecated.
Files: 
 7a78609daaa107c57529886316cf9831 1101 admin required dpkg_1.14.12ubuntu2.dsc
 d3da8d3291f48fe174339d647a657057 6424745 admin required dpkg_1.14.12ubuntu2.tar.gz
Original-Maintainer: Dpkg Developers <team@dpkg.org>
diff -pruN 1.14.12ubuntu1/debian/changelog 1.14.12ubuntu2/debian/changelog
--- 1.14.12ubuntu1/debian/changelog	2007-12-07 09:45:49.000000000 +0000
+++ 1.14.12ubuntu2/debian/changelog	2007-12-12 08:44:09.000000000 +0000
@@ -1,3 +1,13 @@
+dpkg (1.14.12ubuntu2) hardy; urgency=low
+
+  * Cherry pick from current trunk:
+    - Included files in symbols files (via #include) do no more need to repeat
+      the header line. Closes: #455260
+    - scripts/Dpkg/Shlibs/SymbolFile.pm (merge_symbols): Do not update
+      the deprecated version of a a symbol if it is already marked deprecated.
+
+ -- Matthias Klose <doko@ubuntu.com>  Wed, 12 Dec 2007 08:37:22 +0000
+
 dpkg (1.14.12ubuntu1) hardy; urgency=low
 
   * Merge from debian unstable, remaining changes:
diff -pruN 1.14.12ubuntu1/man/dpkg-gensymbols.1 1.14.12ubuntu2/man/dpkg-gensymbols.1
--- 1.14.12ubuntu1/man/dpkg-gensymbols.1	2007-11-29 01:51:08.000000000 +0000
+++ 1.14.12ubuntu2/man/dpkg-gensymbols.1	2007-12-12 08:42:07.000000000 +0000
@@ -67,16 +67,12 @@ the content of the included file can ove
 before the include directive and that any content after the
 directive can override anything contained in the included file.
 .P
-An included file must be a valid symbols file on its own. Thus you have
-to repeat the header line containing the SONAME of the library and the
-dependency template. Remember that those lines might override the header
-defined previously in the main symbols file. Thus the recommended way to
-handle architecture specific information is to put include directives
-directly at the beginning of the symbols file:
+An included file can repeat the header line containing the SONAME of the
+library. In that case, it overrides any header line previously read.
+However, in general it's best to avoid duplicating header lines. One way
+to do it is the following:
 .PP
 #include "libsomething1.symbols.common"
-.br
-libsomething.so.1 libsomething1 #MINVER#
  arch_specific_symbol@Base 1.0
 .SS Good library management
 .P
diff -pruN 1.14.12ubuntu1/scripts/Dpkg/Shlibs/SymbolFile.pm 1.14.12ubuntu2/scripts/Dpkg/Shlibs/SymbolFile.pm
--- 1.14.12ubuntu1/scripts/Dpkg/Shlibs/SymbolFile.pm	2007-10-17 23:30:15.000000000 +0100
+++ 1.14.12ubuntu2/scripts/Dpkg/Shlibs/SymbolFile.pm	2007-12-12 08:45:21.000000000 +0000
@@ -86,7 +86,7 @@ sub clear_except {
 
 # Parameter seen is only used for recursive calls
 sub load {
-    my ($self, $file, $seen) = @_;
+    my ($self, $file, $seen, $current_object) = @_;
 
     if (defined($seen)) {
 	return if exists $seen->{$file}; # Avoid include loops
@@ -98,7 +98,7 @@ sub load {
 
     open(my $sym_file, "<", $file)
 	|| syserr(sprintf(_g("Can't open %s: %s"), $file));
-    my ($object);
+    my $object = $current_object;
     while (defined($_ = <$sym_file>)) {
 	chomp($_);
 	if (/^\s+(\S+)\s(\S+)(?:\s(\d+))?/) {
@@ -116,7 +116,7 @@ sub load {
 	    my $filename = $1;
 	    my $dir = $file;
 	    $dir =~ s{[^/]+$}{}; # Strip filename
-	    $self->load("$dir$filename", $seen);
+	    $self->load("$dir$filename", $seen, $object);
 	} elsif (/^#DEPRECATED: ([^#]+)#\s*(\S+)\s(\S+)(?:\s(\d+))?/) {
 	    my $sym = {
 		minver => $3,
@@ -232,6 +232,9 @@ sub merge_symbols {
     # the symbol was introduced)
     foreach my $sym (keys %{$self->{objects}{$soname}{syms}}) {
 	if (! exists $dynsyms{$sym}) {
+	    # Do nothing if already deprecated
+	    next if $self->{objects}{$soname}{syms}{$sym}{deprecated}; 
+
 	    my $info = $self->{objects}{$soname}{syms}{$sym};
 	    if (vercmp($minver, $info->{minver}) > 0) {
 		$self->{objects}{$soname}{syms}{$sym}{deprecated} = $minver;

Reply to: