> The solution you propose has significant negative consequences for both > partial upgrades from woody, and for third-party software linked against > libtiff. I don't see any extenuating circumstances here that demand > that we settle for a partial fix.
Thanks for the comments. I really appreciate it. I didn't think about partial woody solution. I agree, we need to at least explore the possibility of a better fix. That said, I can't conceive of any way to do this without reverting the ABI change or rebuilding the ~100 packages (see attachment) in sid that have been rebuilt with libtiff 3.6.1. I don't actually see how your suggestion will work. Please explain if you still think it will work after reading my response. > You are right that reverting the ABI change at this point would hurt > more than it would help. I believe the appropriate solution here is to > change the soname of libtiff.so.3 to something with a Debian-specific > component (e.g., libtiff.so.3.debian), and to make a corresponding > change to the name of the binary package (e.g., libtiff3g-debian). This > will cause libtiff-using packages to be uninstallable in unstable while > they transition, but it does allow us to contain the damage to unstable > instead of propagating it into a stable release. I'm not sure I completely understand what you're suggesting or exactly how this is going to actually solve the problem. I should also point out that the problem is already not contained in unstable -- much of it has leaked into sarge. Would libtiff.so.3.debian be 3.5.7 or 3.6.1? Would libtiff3g-debian and libtiff3g both exist, or would libtiff3g disappear? If libtiff.so.3 were 3.5.7, this would be reverting the ABI change, which I think we agree would hurt more than it would help. If libtiff.so.3 were 3.6.1, we haven't addressed the problem for partial woody upgrades and, in fact, won't be able to get this into sarge unless all 137 packages that depend upon libtiff (count based on apt-cache depends) are rebuilt because of the unresolved dependency on libtiff3g-debian. But, even after this was done, the ultimate result would that libtiff.so.3 would point to libtiff.so.3.debian which would be 3.6.1. Then we're back where we started from with my original proposal. Do you agree, or have I missed something? The upstream libtiff maintainers are going to skip some soname versions when they do their next release. This makes it possible for distributions to resolve this on their own by releasing 3.6.1 as libtiff.so.4. FreeBSD apparently did this. If we were going to revert the ABI change, I think the only sensible way to do it would be to revert libtiff3g back to 3.5.7 (with an epoch) and release libtiff4 which would be 3.6.1. Then we'd have to recompile the ~100 packages that have been built since 2/23/04 -- the exact scenario I was proposing to avoid. Keep in mind also that the next upstream libtiff release will again have a new soname which will hopefully be stable for some time to come. As I see it, the question boils down to whether the added fact that partial woody upgrades and third party software linked with libtiff could be affected is sufficient to make us want to go through the pain of an ABI reversion. I would still maintain that it isn't, especially since it's likely that the affected applications are limited to those for which release-critical bugs have been reported. > Following this with a healthy dose of recompile NMUs should let us > transition the whole lot in a couple of weeks, in time for sarge. I've attached a file that contains a lit of packages that depend upon libtiff3g, according to apt-cache depends on my local system, which is only a few days out of date. Each package has been resolved against my local mirror and sorted by reverse modification date. You'll observe that 99 packages that depend upon libtiff have been rebuilt in sid since libtiff3g-3.6.1 was uploaded, and 34 have not. Sorry for being so long-winded about this, but I just really want to make sure we do the right thing for the right reason. :-) --Jay
Here is a list of packages that depend upon libtiff3g (according to apt-cache depends) resolved against my local mirror. (Only 3 packages out of 137 failed to resolve.) They are sorted by reverse modification time. Observe that 99 packages that depend upon libtiff have been built since libtiff-3.6.1 entered sid, and 34 have not. 2004-07-22 ./x/xemacs21/xemacs21-nomule_21.4.15-2_i386.deb 2004-07-22 ./x/xemacs21/xemacs21-mule_21.4.15-2_i386.deb 2004-07-22 ./x/xemacs21/xemacs21-mule-canna-wnn_21.4.15-2_i386.deb 2004-07-22 ./x/xemacs21/xemacs21-gnome-nomule_21.4.15-2_i386.deb 2004-07-22 ./x/xemacs21/xemacs21-gnome-mule_21.4.15-2_i386.deb 2004-07-22 ./x/xemacs21/xemacs21-gnome-mule-canna-wnn_21.4.15-2_i386.deb 2004-07-22 ./k/k3d/k3d_0.4.2.0-1_i386.deb 2004-07-22 ./k/kdelibs/kdelibs4_3.2.3-3_i386.deb 2004-07-20 ./r/rezound/rezound_0.10.0beta-1_i386.deb 2004-07-19 ./i/icewm/icewm_1.2.14-3_i386.deb 2004-07-19 ./i/icewm/icewm-experimental_1.2.14-3_i386.deb 2004-07-19 ./c/cupsys/libcupsimage2_1.1.20final+rc1-3_i386.deb 2004-07-19 ./c/cupsys/libcupsimage2_1.1.20final+rc1-3_i386.deb 2004-07-18 ./w/waili/libwaili_19990723-12_i386.deb 2004-07-17 ./g/gimp/gimp_2.0.3-1_i386.deb 2004-07-17 ./g/gimp-print/cupsys-driver-gimpprint_4.2.7-1_i386.deb 2004-07-16 ./g/gem/gem_0.90.0-2_i386.deb 2004-07-15 ./s/scribus/scribus_1.2.0.cvs20040714-1_i386.deb 2004-07-14 ./libr/librmagick-ruby/librmagick-ruby1.8_1.5.0-3_i386.deb 2004-07-14 ./g/gnustep-gui/libgnustep-gui0_0.9.3-2_i386.deb 2004-07-14 ./g/gnustep-gui/libgnustep-gui0-dbg_0.9.3-2_i386.deb 2004-07-11 ./q/quiteinsane/quiteinsane_0.10-5_i386.deb 2004-07-11 ./e/epplets/libepplet0_0.6.cvs.2003091001-1.1_i386.deb 2004-07-11 ./e/epplets/epplets_0.6.cvs.2003091001-1.1_i386.deb 2004-07-11 ./a/animal/animal0_0.14.0-1_i386.deb 2004-07-11 ./k/koffice/kword_1.3.2-1_i386.deb 2004-07-09 ./l/links2/links2_2.1pre15-2_i386.deb 2004-07-09 ./g/gthumb/gthumb_2.4.1-1_i386.deb 2004-07-09 ./g/gdk-pixbuf/libgdk-pixbuf2_0.22.0-4_i386.deb 2004-07-08 ./p/pike7.6/pike7.6-image_7.6.11-1_i386.deb 2004-07-08 ./p/pike7.4/pike7.4-image_7.4.113-1_i386.deb 2004-07-08 ./d/digikam/digikam_0.6.2-2_i386.deb 2004-07-08 ./n/netpbm-free/netpbm_10.0-4_i386.deb 2004-07-08 ./s/sdl-image1.2/libsdl-image1.2_1.2.3-3_i386.deb 2004-07-08 ./i/imagemagick/libmagick6_6.0.3.1-3_i386.deb 2004-07-07 ./m/mountapp/mountapp_3.0-6_i386.deb 2004-07-07 ./x/xplanet/xplanet_1.1.0-1_i386.deb 2004-07-05 ./g/gtk+2.0/libgtk2.0-0_2.4.3-3_i386.deb 2004-07-04 ./libg/libgdiplus/libgdiplus_1.0-1_i386.deb 2004-07-04 ./f/fontforge/fontforge_0.0.20040703-1_i386.deb 2004-07-04 ./x/xsane/xsane_0.94-2_i386.deb 2004-07-04 ./x/xastir/xastir_1.3.2-1_i386.deb 2004-07-03 ./f/fox/libfox1.0_1.0.52-1_i386.deb 2004-06-30 ./f/fbi/fbi_2.01-1_i386.deb 2004-06-30 ./o/opencv/libhighgui0.9-5_0.9.5-6_i386.deb 2004-06-28 ./a/asc/asc_1.15.0.0-1_i386.deb 2004-06-26 ./m/motioneye/motioneye_1.2-2_i386.deb 2004-06-22 ./c/chameleon/chameleon_1.1-8_i386.deb 2004-06-20 ./p/paintlib/paintlib2_2.6.1-1_i386.deb 2004-06-16 ./v/viewmol/viewmol_2.4-4_i386.deb 2004-06-16 ./c/camlimages/libcamlimages-ocaml_2.12-2_i386.deb 2004-06-15 ./a/ale/ale_0.5.1-2_i386.deb 2004-06-11 ./d/djvulibre/djvulibre-bin_3.5.13.pre14-4_i386.deb 2004-06-10 ./k/kdc2tiff/kdc2tiff_0.35-2_i386.deb 2004-06-10 ./d/drip/drip_0.8.3.2+0.9.0-rc3-4_i386.deb 2004-06-09 ./g/grass/grass_5.0.3-4_i386.deb 2004-06-07 ./h/hylafax/hylafax-server_4.1.8-13_i386.deb 2004-06-07 ./h/hylafax/hylafax-client_4.1.8-13_i386.deb 2004-06-07 ./d/dx/libdx4_4.3.2-1_i386.deb 2004-06-07 ./d/dx/dx_4.3.2-1_i386.deb 2004-06-03 ./p/prestimel/prestimel_1.0-2.1_i386.deb 2004-05-31 ./w/wmaker/libwraster2_0.80.2-0.2_i386.deb 2004-05-30 ./x/xpcd/xpcd_2.08-10_i386.deb 2004-05-30 ./g/gs-esp/gs-esp_7.07.1-8_i386.deb 2004-05-28 ./k/kismet/kismet_2004.04.R1-1.1_i386.deb 2004-05-20 ./r/rubymagick/rubymagick_0.1.3-12_i386.deb 2004-05-19 ./a/aqsis/aqsis_0.9.1-2_i386.deb 2004-05-19 ./a/aqsis/aqsis-libs_0.9.1-2_i386.deb 2004-05-14 ./p/pgadmin3/pgadmin3_1.0.2-5_i386.deb 2004-05-12 ./t/ted/ted_2.16-1_i386.deb 2004-05-12 ./t/ted/ted-gtk_2.16-1_i386.deb 2004-05-10 ./g/guikachu/guikachu_1.4.0-2_i386.deb 2004-05-10 ./g/guikachu/guikachu2rcp_1.4.0-2_i386.deb 2004-05-09 ./f/fnlib/libfnlib0_0.5-11_i386.deb 2004-05-09 ./c/cinepaint/cinepaint_0.18.3-4.1_i386.deb 2004-05-03 ./i/ivtools/ivtools-unidraw_1.1.3-2_i386.deb 2004-05-03 ./i/ivtools/ivtools-interviews_1.1.3-2_i386.deb 2004-05-03 ./i/ivtools/ivtools-bin_1.1.3-2_i386.deb 2004-04-28 ./a/autotrace/libautotrace3_0.31.1-6_i386.deb 2004-04-28 ./a/autotrace/autotrace_0.31.1-6_i386.deb 2004-04-26 ./g/gandalf/gandalf1_1.3.2-11_i386.deb 2004-04-26 ./p/pstoedit/libpstoedit0_3.33-14_i386.deb 2004-04-22 ./x/xpaint/xpaint_2.6.2-2.2_i386.deb 2004-04-13 ./k/kdegraphics/kuickshow_3.2.2-1_i386.deb 2004-04-13 ./k/kdegraphics/kooka_3.2.2-1_i386.deb 2004-04-13 ./k/kdegraphics/kfax_3.2.2-1_i386.deb 2004-04-13 ./k/kdegraphics/kdegraphics-kfile-plugins_3.2.2-1_i386.deb 2004-04-07 ./e/emacs21/emacs21_21.3+1-5_i386.deb 2004-04-05 ./p/pinball/pinball_0.3.1-2_i386.deb 2004-03-23 ./x/xteddy/xteddy_2.0.2-2_i386.deb 2004-03-18 ./m/mgp/mgp_1.10a-3.1_i386.deb 2004-03-17 ./i/imlib/imlib11_1.9.14-15_i386.deb 2004-03-17 ./i/imlib2/libimlib2_1.1.0-12_i386.deb 2004-03-15 ./v/vrweb/vrweb_1.5-10_i386.deb 2004-03-06 ./v/vtk/vtk-tcl_4.2.6-1_i386.deb 2004-03-06 ./v/vtk/python-vtk_4.2.6-1_i386.deb 2004-03-06 ./v/vtk/libvtk4_4.2.6-1_i386.deb 2004-03-05 ./z/zgv/zgv_5.7-1_i386.deb 2004-02-23 ./t/tiff/libtiff3g-dev_3.6.1-1_i386.deb 2004-02-23 ./t/tiff/libtiff-tools_3.6.1-1_i386.deb 2004-02-16 ./m/mozart-gtk/mozart-gtk_20030428-3_i386.deb 2004-02-16 ./l/lcms/liblcms-utils_1.12-2_i386.deb 2004-02-09 ./p/pike7.2/pike7.2-image_7.2.556-1_i386.deb 2004-01-31 ./libi/libimager-perl/libimager-perl_0.42-1_i386.deb 2004-01-21 ./x/xnc/xnc_5.0.4-1_i386.deb 2004-01-16 ./a/advi/advi_1.4.0-7_i386.deb 2004-01-03 ./p/php4-imagick/php4-imagick_0.9.7-1.2_i386.deb 2003-12-31 ./s/sear/sear_0.4.6-3_i386.deb 2003-11-16 ./e/endeavour/endeavour2_2.3.2-1.3_i386.deb 2003-11-07 ./e/enlightenment/enlightenment_0.16.6-1_i386.deb 2003-10-30 ./x/xloadimage/xloadimage_4.1-13_i386.deb 2003-10-26 ./i/idesk/idesk_0.5.6-2_i386.deb 2003-10-25 ./w/wxwindows2.4/libwxgtk2.4_2.4.2.4_i386.deb 2003-10-14 ./i/imlib+png2/imlib1_1.9.14-14_i386.deb 2003-10-14 ./i/imlib+png2/gdk-imlib1_1.9.14-14_i386.deb 2003-10-09 ./x/xzgv/xzgv_0.8-1_i386.deb 2003-10-04 ./q/qvwm/qvwm_1.1.12-1_i386.deb 2003-09-28 ./c/capi4hylafax/capi4hylafax_01.02.02-1.1_i386.deb 2003-08-11 ./p/paul/paul_0.1.1-2_i386.deb 2003-08-06 ./libf/libforms1/libforms1_1.0-4_i386.deb 2003-07-30 ./libt/libtk-img/libtk-img_1.3-10_i386.deb 2003-07-17 ./p/pixelize/pixelize_0.9.2-1.1_i386.deb 2003-07-17 ./g/gtksee/gtksee_0.5.2-0.1_i386.deb 2003-07-17 ./y/ygraph/ygraph_0.14-4_i386.deb 2003-06-23 ./h/hp2xx/hp2xx_3.4.4-1_i386.deb 2003-06-10 ./w/wallp/wallp_0.64-4_i386.deb 2003-05-28 ./p/pixieplus/pixieplus_0.5.4-2_i386.deb 2003-05-23 ./x/xbvl/xbvl_2.2-3_i386.deb 2003-05-11 ./d/devil/libdevil1_1.6.5-5_i386.deb 2003-01-30 ./g/ghfaxviewer/ghfaxviewer_0.22.0-4_i386.deb 2003-01-13 ./l/lightspeed/lightspeed_1.2-4_i386.deb 2002-07-22 ./g/gbatnav/gbatnav_1.0.4-2_i386.deb 2002-04-22 ./g/gnobog/gnobog_0.4.3-2_i386.deb 2002-03-04 ./p/primaxscan/primaxscan_0.93beta3-3_i386.deb

