On Sun, 2008-02-03 at 22:14 +0100, Cyril Brulebois wrote: > On 03/02/2008, Neil Williams wrote: > > What I meant was if dependencyA appears in the dpkg-shlibdeps list > > of "not needed" linkages for 'foo' but foo is nearly always > > installed alongside bar which uses symbols from dependencyA (i.e. > > dpkg-shlibdeps doesn't complain about dependencyA in the build of > > bar), then foo probably doesn't need to be altered. It's no > > absolutely necessary for foo to Depend on dependencyA but it doesn't > > hurt in the majority of cases. > > I now see your point, but I still disagree. Say foo depends on bar, > bar depends on baz, and there's an extra link (hence Depends) between > foo and baz. baz gets a bumped SONAME, bar gets rebuilt (through > binNMUs). Fine. Err, no. foo has to be rebuilt as well. Too bad. Ah, OK. I see that. The only time foo bears being rebuilt is if the change in baz means that the rebuilt foo can drop that Depends (maybe via an improved pkgconfig file in baz). > > there are also cases where dpkg-shlibdeps reports an extra linkage > > where the library concerned is already packaged alongside a library > > that does need to be linked against the package - libdl is the most > > common. > > I agree that there are some special cases, like libdl, pthreads, and > so on. But ISTR that whole pages were reported by dpkg-shlibdeps, not > only a few lines. Very common with GUI packages. I'd like to be able to trim the dependencies of libgpewidget at some point but the main problem is not with libgpewidget itself but with the pkgconfig file it provides. This adds libgtk+2.0-0 to each dependency of libgpewidget. What I really want is to be able to use: Requires: gtk+-2.0-minimal Libs: -L${libdir} -lgpewidget instead of: Requires: gtk+-2.0 Libs: -L${libdir} -lgpewidget /usr/lib/pkgconfig/gtk+-2.0-minimal.pc would then list: Requires: gdk-${target}-2.0 instead of: Requires: gdk-${target}-2.0 atk cairo and /usr/lib/pkgconfig/gdk-directfb-2.0.pc would support a -minimal that dropped the pango listing, etc. and maybe a few others from the current: Requires: gdk-pixbuf-2.0 cairo-directfb directfb pango pangocairo then /usr/lib/pkgconfig/gdk-x11-2.0.pc could trim this list: Requires: gdk-pixbuf-2.0 pango pangocairo The problem is that these -minimal (and -extra) listings need to be maintained within Gtk+, not libgpewidget. I could just patch the libgpewidget.pc file (adding -lgtk2.0-0 to --libs and replacing the Requires:) but I need the time to test the entire GPE package set using that setup *and* cross build the whole set before I can deploy such a change, it's just too disruptive to start on before Lenny (what with the Lenny soft freeze being less than a month hence). Just imagine the chaos in Debian if the pkgconfig data of libgtk+2.0-0 was changed now. Each reverse dependency would then need upstream changes to add extra libs to the build that were previously implied. That would be just as disruptive as a full SONAME transition in Gtk+ itself - how long is it now since gtk1 became gtk2? Adding a new pc file is the only realistic method that I can see because it supports all builds, not just Debian and the migration can be done incrementally. These kind of things have implications far beyond the current package but this is, IMHO, TheRightWay(tm) to fix things, not using -Wl,--as-needed. > > Now I'm all in favour of reducing spurious dependencies - as anyone > > would expect whilst working on making Debian small enough for > > embedded devices - but not at the cost of making more work for > > myself when cross building the same package. I just want to be sure > > the changes actually work before recommending them to others. IMHO, > > -Wl,--as-needed -Wl,zdefs is not at that stage, yet. > > In the thread (on -devel) where the use of those options were > discussed, I don't remind of people reporting broken packages due to > that. But if you could find examples of broken packages because of > that, I'm very interested (in having a look and eventually fixing them > if I can do that). I will, thanks. In the meantime, I think it's worth being cautious about recommending trimming of dependencies. Maybe applications can be trimmed without too many consequences but I wouldn't advise trimming the dependencies of a library (or library pkgconfig file) on mentors - which is a problem because it is with libraries where the benefits of trimming are most evident. -- Neil Williams ============= http://www.data-freedom.org/ http://www.nosoftwarepatents.com/ http://www.linux.codehelp.co.uk/
Attachment:
signature.asc
Description: This is a digitally signed message part