On Tue, Aug 28, 2007 at 07:50:43PM +0200, Jérémy Bobbio wrote: > Applying this patch will break the build of the installer though, even > applied together with the relevant modifications to the entropy plugin > due to an issue with mklibs. More details to come in a separate mail.
mklibs is used by the debian-installer to remove any uneeded symbols from libraries used by the most important required bits of the software. This allows a significant gain in disk space, which is always a good idea when one wants to fit everything on a floppy disk. Unfortunately, the way mklibs currently works is a bit conflicting with the idea of having dynamically loaded shared objects (cdebconf frontends plugins) using symbols from dynamically loaded shared objects (cdebconf frontends). The former are not directly linked to the later, and mklibs don't know that it should not strip symbols in use from the later. Another issue, but similar in its origin, is that frontends shared objects are not in a standard library directory. So mklibs does not know where to find the files, even if told manually. A possible solution is to add an RPATH while building the plugin, but it is not strictly needed for the plugin to work correctly. Attached is a patch adding two hacks to the current mklibs in circumvent these problems. Bastian, it would be great if you have an idea on how to work out this issues in a cleaner way. :) Cheers, -- Jérémy Bobbio .''`. [EMAIL PROTECTED] : :Ⓐ : # apt-get install anarchism `. `'` `-
diff -Nru /tmp/w6hDdn1z9v/mklibs-0.1.24/debian/changelog /tmp/Ub0CwzXKwY/mklibs-0.1.25~lunar1/debian/changelog --- /tmp/w6hDdn1z9v/mklibs-0.1.24/debian/changelog 2007-07-16 23:01:26.000000000 +0200 +++ /tmp/Ub0CwzXKwY/mklibs-0.1.25~lunar1/debian/changelog 2007-08-28 18:41:56.000000000 +0200 @@ -1,3 +1,9 @@ +mklibs (0.1.25) UNRELEASED; urgency=low + + * Add a workaround for frontend plugins using frontend symbols. + + -- Jérémy Bobbio <[EMAIL PROTECTED]> Tue, 28 Aug 2007 18:35:12 +0200 + mklibs (0.1.24) unstable; urgency=low * Also check for symboles without type. (closes: #433388) diff -Nru /tmp/w6hDdn1z9v/mklibs-0.1.24/src/mklibs.py /tmp/Ub0CwzXKwY/mklibs-0.1.25~lunar1/src/mklibs.py --- /tmp/w6hDdn1z9v/mklibs-0.1.24/src/mklibs.py 2007-06-11 09:58:05.000000000 +0200 +++ /tmp/Ub0CwzXKwY/mklibs-0.1.25~lunar1/src/mklibs.py 2007-08-28 19:07:57.000000000 +0200 @@ -334,6 +334,8 @@ print "warning: " + obj + " may need rpath, but --root not specified" lib_path.extend(lib_rpath) +# WORKAROUND: frontend plugins +lib_path.append(root + '/usr/lib/cdebconf/frontend') passnr = 1 available_libs = [] @@ -368,6 +370,10 @@ libraries = set() for obj in objects.values(): needed_symbols.update(undefined_symbols(obj)) + # WORKAROUND: frontend plugins + r = re.search(r'/lib/cdebconf/frontend/([^/]*)/[^.]*\.so$', obj) + if r: + libraries.add('%s.so' % r.groups(1)) libraries.update(library_depends(obj)) # calculate what symbols are present in small_libs and available_libs
signature.asc
Description: Digital signature