tags 585254 + patch thanks * Sandro Tosi <morph@debian.org>, 2010-06-09, 22:19:
One of the changes brought by Python 2.6 is the removal of string exceptions, so they won't work in Python 2.6 (just a side note: they were also buggy before, since they were not guaranteed to work reliable even in <2.6); as an example: $ python2.5 -c "raise 'eggs'" -c:1: DeprecationWarning: raising a string exception is deprecated Traceback (most recent call last): File "<string>", line 1, in <module> eggs $ python2.6 -c "raise 'eggs'" Traceback (most recent call last): File "<string>", line 1, in <module> TypeError: exceptions must be old-style classes or derived from BaseException, not str
The attached patch fixes these bugs. -- Jakub Wilk
diff -Nru mklibs-0.1.30/src/mklibs mklibs-0.1.30+nmu1/src/mklibs --- mklibs-0.1.30/src/mklibs 2010-06-02 19:47:32.000000000 +0200 +++ mklibs-0.1.30+nmu1/src/mklibs 2010-08-08 14:18:06.000000000 +0200 @@ -85,7 +85,7 @@ def elf_header(obj): if not os.access(obj, os.F_OK): - raise "Cannot find lib: " + obj + raise Exception("Cannot find lib: " + obj) output = command("mklibs-readelf", "--print-elf-header", obj) s = [int(i) for i in output[0].split()] return {'class': s[0], 'data': s[1], 'machine': s[2], 'flags': s[3]} @@ -93,21 +93,21 @@ # Return a set of rpath strings for the passed object def rpath(obj): if not os.access(obj, os.F_OK): - raise "Cannot find lib: " + obj + raise Exception("Cannot find lib: " + obj) output = command("mklibs-readelf", "--print-rpath", obj) return [root + "/" + x for x in output] # Return a set of libraries the passed objects depend on. def library_depends(obj): if not os.access(obj, os.F_OK): - raise "Cannot find lib: " + obj + raise Exception("Cannot find lib: " + obj) return command("mklibs-readelf", "--print-needed", obj) # Return a list of libraries the passed objects depend on. The # libraries are in "-lfoo" format suitable for passing to gcc. def library_depends_gcc_libnames(obj): if not os.access(obj, os.F_OK): - raise "Cannot find lib: " + obj + raise Exception("Cannot find lib: " + obj) libs = library_depends(obj) ret = [] for i in libs: @@ -139,7 +139,7 @@ # Return undefined symbols in an object as a set of tuples (name, weakness) def undefined_symbols(obj): if not os.access(obj, os.F_OK): - raise "Cannot find lib" + obj + raise Exception("Cannot find lib" + obj) output = command("mklibs-readelf", "--print-symbols-undefined", obj) @@ -194,7 +194,7 @@ # Return a set of symbols provided by a library def provided_symbols(obj): if not os.access(obj, os.F_OK): - raise "Cannot find lib" + obj + raise Exception("Cannot find lib" + obj) library = extract_soname(obj) output = command("mklibs-readelf", "--print-symbols-provided", obj) @@ -500,7 +500,7 @@ # No progress in last pass. Verify all remaining symbols are weak. for name in unresolved: if not needed_symbols[name].weak: - raise "Unresolvable symbol %s" % name + raise Exception("Unresolvable symbol %s" % name) break previous_pass_unresolved = unresolved @@ -535,7 +535,7 @@ for name in needed_symbols: if not name in symbol_provider: if not needed_symbols[name].weak: - raise "No library provides non-weak %s" % name + raise Exception("No library provides non-weak %s" % name) else: lib = symbol_provider[name] library_symbols_used[lib].add(library_symbols[lib][name]) diff -Nru mklibs-0.1.30/src/mklibs-copy mklibs-0.1.30+nmu1/src/mklibs-copy --- mklibs-0.1.30/src/mklibs-copy 2010-06-02 19:47:32.000000000 +0200 +++ mklibs-0.1.30+nmu1/src/mklibs-copy 2010-08-08 14:19:12.000000000 +0200 @@ -70,7 +70,7 @@ def elf_header(obj): if not os.access(obj, os.F_OK): - raise "Cannot find lib: " + obj + raise Exception("Cannot find lib: " + obj) output = command("mklibs-readelf", "--print-elf-header", obj) s = [int(i) for i in output[0].split()] return {'class': s[0], 'data': s[1], 'machine': s[2], 'flags': s[3]} @@ -78,14 +78,14 @@ # Return a set of rpath strings for the passed object def rpath(obj): if not os.access(obj, os.F_OK): - raise "Cannot find lib: " + obj + raise Exception("Cannot find lib: " + obj) output = command("mklibs-readelf", "-R", obj) return [root + "/" + x for x in output if x] # Return a set of libraries the passed objects depend on. def library_depends(obj): if not os.access(obj, os.F_OK): - raise "Cannot find lib: " + obj + raise Exception("Cannot find lib: " + obj) return [x for x in command("mklibs-readelf", "-n", obj) if x] # Return real target of a symlink
Attachment:
signature.asc
Description: Digital signature