Bug#637184: libjpeg6b linked with -Bsymbolic-functions, causing problems with HPLIP and pxljr
On Tue, Aug 09, 2011 at 03:48:03PM +0100, Hin-Tak Leung wrote: --- On Tue, 9/8/11, Bill Allombert bill.allomb...@math.u-bordeaux1.fr wrote: +0200, Till Kamppeter wrote: snipped If simply building HPLIP against the new libjpeg would also fix the printing problem would be great. Someone should test that. I really doubt it makes a difference, but obviously that makes any change to libjpeg6b irrelevant to hplip. Let me explain the issue a bit: it is not a built-time problem, but a run-time problem - the linux system concerned (be it Debian or Ubuntu) needs to *ship* a libjpeg which allows hplip to override one of its internal, lesser used but public routines, for that part of hplip to work correctly. Well, I understand this, but that still does not adress why the bug is relevant to Debian and libjpeg6b Debian does not use -Bsymbolic-functions and hplip does not depend on libjpeg6b. Cheers, -- Bill. ballo...@debian.org Imagine a large red swirl here. -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Bug#637184: libjpeg6b linked with -Bsymbolic-functions, causing problems with HPLIP and pxljr
--- On Wed, 10/8/11, Bill Allombert bill.allomb...@math.u-bordeaux1.fr wrote: Well, I understand this, but that still does not adress why the bug is relevant to Debian and libjpeg6b Debian does not use -Bsymbolic-functions and hplip does not depend on libjpeg6b. I am neither a Ubuntu nor a Debian user so I cannot comment on the former; I am reasonably familiar with hplip (probably more familiar than some of the newer hplip HP employees), so I'll try to clarify this to the best of my knowledge: 1) Starting in 2008/2009, many of Ubuntu (Debian?) library packages started to be built with the -Bsymbolic-functions loader flags, because it gives better performance in many cases, especially large/complex applications like openoffice. There are a few casualties, however, of software being broken by this change, these are reported elsewhere and the solutions are just fix the application if possible or revert the change in the library's build-script. Recently Ubuntu's libjpeg* build-script adopted this loader flag, and hplip [or at least, a small printer-model-specific-part of it] is its casualty and got broken. I assume Till/Martin may have traced the Ubuntu build-script change back to Debian, or they may not - in any case, it is probably a good idea to let the relevant distro maintainer(s) know, even as a precaution, and we have done that with our redhat contact. 2) hplip depends on *a* libjpeg . It can work with any of the variants (6b, 7, 8x, -turbo-1.1.x) but whatever the libjpeg variant, adding -Bsymbolic-functions breaks hplip. The component parts that depend on *a* libjpeg (whatever variant) are hpcups and hpijs - you may have heard of the latter, before HP added all the scanner/multi-function-device capability and put hpijs inside a bigger hplip. HTH Hin-Tak -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Bug#637184: libjpeg6b linked with -Bsymbolic-functions, causing problems with HPLIP and pxljr
Package: libjpeg6b Version: 6b1-2 In the last months Ubuntu users complained that their HP Color LaserJet 3500/3550/3600 does not print any more in the draft and normal printout quality modes but still print in high quality mode. In the draft and normal modes the printer uses JPEG compression for the image data, to make the data transfer faster. The drivers, pxljr and hplip, use libjpeg6b to implement the data compression, but as the printer's JPEG format is not absolutely identical with the standard JPEG format, the driver overrides certain symbols/functions of libjpeg with its own code to implement the differences between standard JPEG and the printer's JPEG. This is done in both the pxljr and hplip drivers. Since some time LDFLAGS is set to -Wl,-Bsymbolic-functions by default for package builds in Debian and this flag makes ashared library linked with it disallowing the override of its symbols, breaking the pxljr and hplip drivers, leading to the JPEG-based modes not working. So as a fix, the upstream author of the pxljr driver, suggests to build libjpeg without LDFLAGS being set to -Wl,-Bsymbolic-functions. I tried it by preceeding the ./configure in debian/rules by LDFLAGS= and this libjpeg made the two printer drivers working perfectly in draft and normal quality modes. I have attached a patch for the Ubuntu package showing how the fix looks like. Can you please apply the same fix to the Debian package? Till diff -Nru libjpeg6b-6b1/debian/changelog libjpeg6b-6b1/debian/changelog --- libjpeg6b-6b1/debian/changelog 2011-03-24 06:24:32.0 +0100 +++ libjpeg6b-6b1/debian/changelog 2011-08-08 19:57:41.0 +0200 @@ -1,3 +1,11 @@ +libjpeg6b (6b1-1ubuntu2) oneiric; urgency=low + + * debian/rules: Remove -Bsymbolic-functions from LDFLAGS, as this flag +breaks the libjpeg use by HPLIP and pxljr, in both cases for printing +on the HP Color LaserJet 3500/3550/3600 (LP: #777670). + + -- Till Kamppeter till.kamppe...@gmail.com Mon, 8 Aug 2011 19:57:23 +0200 + libjpeg6b (6b1-1ubuntu1) natty; urgency=low * Enable multiarch build (LP: #733501) diff -Nru libjpeg6b-6b1/debian/rules libjpeg6b-6b1/debian/rules --- libjpeg6b-6b1/debian/rules 2011-03-24 06:24:00.0 +0100 +++ libjpeg6b-6b1/debian/rules 2011-08-08 20:09:36.0 +0200 @@ -20,7 +20,7 @@ build: build-stamp build-stamp: dh_testdir - ./configure --prefix=/usr --mandir=/usr/share/man \ + LDFLAGS= ./configure --prefix=/usr --mandir=/usr/share/man \ --libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) \ --enable-static --enable-shared --enable-maxmem=1024 \ --build=$(DEB_BUILD_GNU_TYPE) --host=$(DEB_HOST_GNU_TYPE)
Bug#637184: libjpeg6b linked with -Bsymbolic-functions, causing problems with HPLIP and pxljr
On Tue, Aug 09, 2011 at 11:08:03AM +0200, Till Kamppeter wrote: Package: libjpeg6b Version: 6b1-2 In the last months Ubuntu users complained that their HP Color LaserJet 3500/3550/3600 does not print any more in the draft and normal printout quality modes but still print in high quality mode. In the draft and normal modes the printer uses JPEG compression for the image data, to make the data transfer faster. The drivers, pxljr and hplip, use libjpeg6b to implement the data compression, but as the printer's JPEG format is not absolutely identical with the standard JPEG format, the driver overrides certain symbols/functions of libjpeg with its own code to implement the differences between standard JPEG and the printer's JPEG. This is done in both the pxljr and hplip drivers. Since some time LDFLAGS is set to -Wl,-Bsymbolic-functions by default for package builds in Debian and this flag makes ashared library linked with it disallowing the override of its symbols, breaking the pxljr and hplip drivers, leading to the JPEG-based modes not working. So as a fix, the upstream author of the pxljr driver, suggests to build libjpeg without LDFLAGS being set to -Wl,-Bsymbolic-functions. I tried it by preceeding the ./configure in debian/rules by LDFLAGS= and this libjpeg made the two printer drivers working perfectly in draft and normal quality modes. I have attached a patch for the Ubuntu package showing how the fix looks like. Can you please apply the same fix to the Debian package? Hello Till, Debian does not set LDFLAGS to -Wl,-Bsymbolic-functions, as you can see by adding echo $$LDFLAGS before configure in debian/rules. Furthermore, use of libjpeg6b is deprecated since we are migrating to libjpeg8. In fact, hplip has already moved to libjpeg8 since you fixed the corresponding bug #634030 (thanks, by the way). So I am a bit confused by your report. Cheers, -- Bill. ballo...@debian.org Imagine a large red swirl here. -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Bug#637184: libjpeg6b linked with -Bsymbolic-functions, causing problems with HPLIP and pxljr
Martin Pitt asked me to report the bug also to Debian. He told the situation there is the same. HPLIP is indeed build-depending on libjpeg-dev and not on libjpeg62-dev. I for got that I did this change, as I only checked binary package dependencies and it seems that in Ubuntu the libjpeg-dev has still pulled libjpeg62-dev. If simply building HPLIP against the new libjpeg would also fix the printing problem would be great. Someone should test that. Till -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Bug#637184: libjpeg6b linked with -Bsymbolic-functions, causing problems with HPLIP and pxljr
On Tue, Aug 09, 2011 at 03:34:18PM +0200, Till Kamppeter wrote: Martin Pitt asked me to report the bug also to Debian. He told the situation there is the same. But as far as I can see, it is not. HPLIP is indeed build-depending on libjpeg-dev and not on libjpeg62-dev. I for got that I did this change, as I only checked binary package dependencies and it seems that in Ubuntu the libjpeg-dev has still pulled libjpeg62-dev. If simply building HPLIP against the new libjpeg would also fix the printing problem would be great. Someone should test that. I really doubt it makes a difference, but obviously that makes any change to libjpeg6b irrelevant to hplip. Cheers, -- Bill. ballo...@debian.org Imagine a large red swirl here. -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Bug#637184: libjpeg6b linked with -Bsymbolic-functions, causing problems with HPLIP and pxljr
--- On Tue, 9/8/11, Bill Allombert bill.allomb...@math.u-bordeaux1.fr wrote: +0200, Till Kamppeter wrote: snipped If simply building HPLIP against the new libjpeg would also fix the printing problem would be great. Someone should test that. I really doubt it makes a difference, but obviously that makes any change to libjpeg6b irrelevant to hplip. Let me explain the issue a bit: it is not a built-time problem, but a run-time problem - the linux system concerned (be it Debian or Ubuntu) needs to *ship* a libjpeg which allows hplip to override one of its internal, lesser used but public routines, for that part of hplip to work correctly. That's why I wrote there is a system-wide performance penalty, given how much libjpeg is used. The alternatives are (1) libjpeg dropping that LDFLAGS to allow that part of hplip to work, or (2) hplip bundles enough of libjpeg (slightly modified) for that part to work. The former loses a known good recent system-wide improvement (which is adopted by recent ubuntu but not fedora yet, AFAIK), the latter is ugly. -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org