Bug#637184: libjpeg6b linked with -Bsymbolic-functions, causing problems with HPLIP and pxljr

2011-08-10 Thread Bill Allombert
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

2011-08-10 Thread Hin-Tak Leung
--- 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

2011-08-09 Thread Till Kamppeter

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

2011-08-09 Thread Bill Allombert
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

2011-08-09 Thread Till Kamppeter
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

2011-08-09 Thread Bill Allombert
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

2011-08-09 Thread Hin-Tak Leung
--- 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