Hello community, here is the log from the commit of package rpm checked in at Thu Oct 23 22:18:25 CEST 2008. -------- --- rpm/rpm.changes 2008-10-20 16:16:18.000000000 +0200 +++ /d/STABLE/rpm/rpm.changes 2008-10-23 01:29:48.744859000 +0200 @@ -1,0 +2,5 @@ +Tue Oct 21 11:22:22 CEST 2008 - jblunck@suse.de + +- debugedit: Fix debuginfo problems introduced by last patch (bnc #433182) + +------------------------------------------------------------------- @@ -357 +362 @@ ------------------------------------------------------------------- +------------------------------------------------------------------- @@ -777 +781,0 @@ -------------------------------------------------------------------- @@ -778,0 +783 @@ +------------------------------------------------------------------- @@ -2280 +2285 @@ ------------------------------------------------------------------- +------------------------------------------------------------------- @@ -2366 +2371 @@ ----------------------------------------------------------------------- +------------------------------------------------------------------- @@ -2375 +2380 @@ ----------------------------------------------------------------------- +------------------------------------------------------------------- @@ -2381 +2386 @@ ----------------------------------------------------------------------- +------------------------------------------------------------------- calling whatdependson for head-i586 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ rpm-python.spec ++++++ --- /var/tmp/diff_new_pack.Q26528/_old 2008-10-23 22:17:52.000000000 +0200 +++ /var/tmp/diff_new_pack.Q26528/_new 2008-10-23 22:17:52.000000000 +0200 @@ -24,7 +24,7 @@ Group: System/Packages Summary: Python Bindings for Manipulating RPM Packages Version: 4.4.2.3 -Release: 8 +Release: 9 Requires: rpm = %{version} %py_requires Source99: rpm.spec ++++++ rpm.spec ++++++ --- /var/tmp/diff_new_pack.Q26528/_old 2008-10-23 22:17:52.000000000 +0200 +++ /var/tmp/diff_new_pack.Q26528/_new 2008-10-23 22:17:52.000000000 +0200 @@ -27,7 +27,7 @@ AutoReqProv: on Summary: The RPM Package Manager Version: 4.4.2.3 -Release: 8 +Release: 9 Source: rpm-%{version}.tar.bz2 Source1: RPM-HOWTO.tar.bz2 Source2: RPM-Tips.html.tar.bz2 @@ -323,7 +323,7 @@ License: LGPL v2.1 or later Group: System/Libraries Version: 1.7 -Release: 456 +Release: 457 # %description -n popt @@ -346,7 +346,7 @@ License: LGPL v2.1 or later Group: System/Libraries Version: 1.7 -Release: 456 +Release: 457 Requires: popt = 1.7 Requires: glibc-devel @@ -381,6 +381,8 @@ %doc %{_mandir}/man3/popt.3* %changelog +* Tue Oct 21 2008 jblunck@suse.de +- debugedit: Fix debuginfo problems introduced by last patch (bnc #433182) * Mon Oct 20 2008 mls@suse.de - drop static libraries and libtool archives * Thu Oct 02 2008 vuntz@suse.de ++++++ debugedit-canon-fix.diff ++++++ --- /var/tmp/diff_new_pack.Q26528/_old 2008-10-23 22:17:52.000000000 +0200 +++ /var/tmp/diff_new_pack.Q26528/_new 2008-10-23 22:17:52.000000000 +0200 @@ -1,10 +1,15 @@ +Subject: Fix path canonicalization issues in debugedit + +This patch fixes multiple problems with path canonicalization in +debugedit. This version of debugedit is taken from the dwarftools repository. + --- - tools/debugedit.c | 137 +++++++++++++++++++++++++++--------------------------- - 1 file changed, 70 insertions(+), 67 deletions(-) + tools/debugedit.c | 165 ++++++++++++++++++++++++++---------------------------- + 1 file changed, 82 insertions(+), 83 deletions(-) -Index: b/tools/debugedit.c +Index: tools/debugedit.c =================================================================== ---- tools/debugedit.c +--- tools/debugedit.c.orig +++ tools/debugedit.c @@ -471,13 +471,13 @@ has_prefix (const char *str, { @@ -22,7 +27,7 @@ return strncmp (str, prefix, prefix_len) == 0; } -@@ -485,7 +485,7 @@ static int +@@ -485,9 +485,10 @@ static int edit_dwarf2_line (DSO *dso, uint_32 off, char *comp_dir, int phase) { unsigned char *ptr = debug_sections[DEBUG_LINE].data, *dir; @@ -30,8 +35,11 @@ + char **dirt; unsigned char *endsec = ptr + debug_sections[DEBUG_LINE].size; unsigned char *endcu, *endprol; ++ char line_base; unsigned char opcode_base; -@@ -496,9 +496,9 @@ edit_dwarf2_line (DSO *dso, uint_32 off, + uint_32 value, dirt_cnt; + size_t comp_dir_len = strlen (comp_dir); +@@ -496,9 +497,9 @@ edit_dwarf2_line (DSO *dso, uint_32 off, if (phase != 0) return 0; @@ -43,7 +51,7 @@ endcu = ptr + 4; endcu += read_32 (ptr); if (endcu == ptr + 0xffffffff) -@@ -521,7 +521,7 @@ edit_dwarf2_line (DSO *dso, uint_32 off, +@@ -521,7 +522,7 @@ edit_dwarf2_line (DSO *dso, uint_32 off, value); return 1; } @@ -52,12 +60,13 @@ endprol = ptr + 4; endprol += read_32 (ptr); if (endprol > endcu) -@@ -530,26 +530,26 @@ edit_dwarf2_line (DSO *dso, uint_32 off, +@@ -530,26 +531,27 @@ edit_dwarf2_line (DSO *dso, uint_32 off, dso->filename); return 1; } - + ++ line_base = (char) (ptr[2] & 0xff); opcode_base = ptr[4]; ptr = dir = ptr + 4 + opcode_base; - @@ -85,7 +94,7 @@ } ptr++; -@@ -559,8 +559,8 @@ edit_dwarf2_line (DSO *dso, uint_32 off, +@@ -559,8 +561,8 @@ edit_dwarf2_line (DSO *dso, uint_32 off, char *s, *file; size_t file_len, dir_len; @@ -96,7 +105,7 @@ value = read_uleb128 (ptr); if (value >= dirt_cnt) -@@ -629,7 +629,7 @@ edit_dwarf2_line (DSO *dso, uint_32 off, +@@ -629,7 +631,7 @@ edit_dwarf2_line (DSO *dso, uint_32 off, } free (s); @@ -105,7 +114,7 @@ read_uleb128 (ptr); read_uleb128 (ptr); } -@@ -661,7 +661,7 @@ edit_dwarf2_line (DSO *dso, uint_32 off, +@@ -661,7 +663,7 @@ edit_dwarf2_line (DSO *dso, uint_32 off, if (dest_dir) { @@ -114,7 +123,7 @@ size_t base_len = strlen (base_dir); size_t dest_len = strlen (dest_dir); size_t shrank = 0; -@@ -675,12 +675,16 @@ edit_dwarf2_line (DSO *dso, uint_32 off, +@@ -675,12 +677,16 @@ edit_dwarf2_line (DSO *dso, uint_32 off, ptr = dir; } else @@ -135,7 +144,7 @@ if (*srcptr == '/' && has_prefix (srcptr, base_dir)) { -@@ -689,24 +693,28 @@ edit_dwarf2_line (DSO *dso, uint_32 off, +@@ -689,39 +695,28 @@ edit_dwarf2_line (DSO *dso, uint_32 off, memcpy (ptr, dest_dir, dest_len); ptr += dest_len; readptr += base_len; @@ -149,9 +158,11 @@ + canonicalize_path (readptr, (char *)ptr); + len = strlen ((char *)ptr); + ++/* + if ((srcptr - readptr) > len) + error(0, 0,"canonicalization unexpectedly shrank (%lu): \"%s\"\n", + (long unsigned int)(srcptr - readptr) - len, ptr); ++*/ + shrank -= len; ptr += len; @@ -159,21 +170,35 @@ - elf_flagdata (debug_sections[DEBUG_STR].elf_data, - ELF_C_SET, ELF_F_DIRTY); - } +- +- if (shrank > 0) +- { +- if (--shrank == 0) +- error (EXIT_FAILURE, 0, +- "canonicalization unexpectedly shrank by one character"); +- memset (ptr, 'X', shrank); +- ptr += shrank; +- *ptr++ = '\0'; + elf_flagdata (debug_sections[DEBUG_STR].elf_data, + ELF_C_SET, ELF_F_DIRTY); + ++ptr; + ++srcptr; -+ } + } - if (shrank > 0) - { -- if (--shrank == 0) -- error (EXIT_FAILURE, 0, -- "canonicalization unexpectedly shrank by one character"); - memset (ptr, 'X', shrank); - ptr += shrank; - *ptr++ = '\0'; -@@ -741,17 +749,17 @@ edit_dwarf2_line (DSO *dso, uint_32 off, +- if (abs_dir_cnt + abs_file_cnt != 0) +- { +- size_t len = (abs_dir_cnt + abs_file_cnt) * (base_len - dest_len); +- +- if (len == 1) +- error (EXIT_FAILURE, 0, "-b arg has to be either the same length as -d arg, or more than 1 char shorter"); +- memset (ptr, 'X', len - 1); +- ptr += len - 1; +- *ptr++ = '\0'; +- } + *ptr++ = '\0'; + ++srcptr; + +@@ -741,21 +736,30 @@ edit_dwarf2_line (DSO *dso, uint_32 off, elf_flagdata (debug_sections[DEBUG_STR].elf_data, ELF_C_SET, ELF_F_DIRTY); } @@ -195,7 +220,20 @@ } *ptr = '\0'; free (buf); -@@ -767,17 +775,13 @@ edit_attributes (DSO *dso, unsigned char + } ++ ++ /* move the line number program */ ++ ptr++; ++ if (ptr != endprol) ++ memmove(ptr, endprol, endcu - endprol); ++ ++ /* fill the rest of the section with a NOP opcode */ ++ ptr += endcu - endprol; ++ memset(ptr, opcode_base - line_base, endcu - ptr); + return 0; + } + +@@ -767,17 +771,13 @@ edit_attributes (DSO *dso, unsigned char int i; uint_32 list_offs; int found_list_offs; @@ -215,7 +253,7 @@ while (1) { -@@ -791,56 +795,55 @@ edit_attributes (DSO *dso, unsigned char +@@ -791,56 +791,55 @@ edit_attributes (DSO *dso, unsigned char } if (t->attr[i].attr == DW_AT_comp_dir) @@ -294,7 +332,7 @@ else if ((t->tag == DW_TAG_compile_unit || t->tag == DW_TAG_partial_unit) && t->attr[i].attr == DW_AT_name -@@ -848,9 +851,9 @@ edit_attributes (DSO *dso, unsigned char +@@ -848,9 +847,9 @@ edit_attributes (DSO *dso, unsigned char && debug_sections[DEBUG_STR].data) { char *name; @@ -307,7 +345,7 @@ if (*name == '/' && comp_dir == NULL) { char *enddir = strrchr (name, '/'); -@@ -869,7 +872,7 @@ edit_attributes (DSO *dso, unsigned char +@@ -869,7 +868,7 @@ edit_attributes (DSO *dso, unsigned char { base_len = strlen (base_dir); dest_len = strlen (dest_dir); @@ -316,7 +354,7 @@ memcpy (name, dest_dir, dest_len); if (dest_len < base_len) { -@@ -913,7 +916,7 @@ edit_attributes (DSO *dso, unsigned char +@@ -913,7 +912,7 @@ edit_attributes (DSO *dso, unsigned char ptr += 4; break; case DW_FORM_string: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org