Bug 807183

Summary: libjpeg-turbo does no longer provide libjpeg.so.62 which is required by the LSB Desktop specification
Product: [openSUSE] openSUSE 12.3 Reporter: Juergen Weigert <jw>
Component: BasesystemAssignee: Petr Gajdos <pgajdos>
Status: RESOLVED FIXED QA Contact: E-mail List <qa-bugs>
Severity: Normal    
Priority: P3 - Medium CC: bbrunner, damianatorrpm, ismail, jsmeix, meissner, pgajdos, vetter
Version: RC 1   
Target Milestone: ---   
Hardware: All   
OS: SUSE Other   
Whiteboard:
Found By: Development Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---
Bug Depends on:    
Bug Blocks: 357354    

Description Juergen Weigert 2013-03-03 10:57:44 UTC
Epson Stylus sx130

avasys.jp/eng
-> click the 'All-in-Ones' icon.
Find suport for any product:
-> sx130
# this returns two packages:
 Stylus SX130 Printer Driver
 -> epson-inkjet-printer-201101w-1.0.0-1lsb3.2.i486.rpm 1.44 MB
 Stylus SX130 Scanner Driver
# download both.

yast printer
 -> add, ....(A4), [x] enable,  Print Test Page

[nothing happens.]
 -> Testpage printing failed

Yast has no helpful diagnostics. 
The printer wizard gui also has no helpful diagnostics.
/var/log/messages neither.

grep error /var/log/cups/error_log
 E [03/Mar/2013:11:20:47 +0100] Returning IPP server-error-internal-error for CUPS-Add-Modify-Printer (ipp://localhost:631/printers/Epson-Stylus-SX130) from localhost
E [03/Mar/2013:11:25:54 +0100] [Job 3] Job stopped due to filter errors; please consult the error_log file for details.
D [03/Mar/2013:11:25:54 +0100] [Job 3] sx130: error while loading shared libraries: libjpeg.so.62: cannot open shared object file: No such file or directory

Three issues here:
 a) dependencies are incorrect
 b) the error (missing libjpeg.so.62) should surface in yast or the printer wizard gui thing.
 c) libjpeg-turbo provides libjpeg.so.8.0.2 -- a package with libjpeg.so.62 could not be found for 12.3

Tested workaround:
sudo ln -s libjpeg.so.8.0.2 libjpeg.so.62
Comment 1 Johannes Meixner 2013-03-05 09:25:44 UTC
As far as I understand comment#0, it seems your
epson-inkjet-printer-201101w-1.0.0-1lsb3.2.i486.rpm
is not from openSUSE but downloaded from avasys.jp/eng ?

I cannot fix non-openSUSE RPMs so that the issue is invalid for us.

I wonder how you got this third-party RPM installed
without an error because of unresolved dependencies?

Out of curiosity:
What does
# rpm -q --requires -p epson-inkjet-printer-201101w-1.0.0-1lsb3.2.i486.rpm
show?


yast2-printer is not meant as a diagnostics tool
but it shows at least basic CUPS log messages:

When you click "Testpage printing failed" it shows a
"CUPS log information while processing the testpage..." popup
which shows an excerpt from /var/log/cups/error_log
so that you get at least the

E [03/Mar/2013:11:25:54 +0100] [Job 3] Job stopped due to filter errors;
 please consult the error_log file for details.

message and the bottom line of those popup reads:

"For the full log, see the /var/log/cups/error_log file."
Comment 2 Johannes Meixner 2013-03-05 13:38:22 UTC
I downloaded a
epson-inkjet-printer-201101w-1.0.0-1lsb3.2.i486.rpm (1507339 bytes)
as described in comment#0 and got:

$ rpm -q --requires -p epson-inkjet-printer-201101w-1.0.0-1lsb3.2.i486.rpm
/bin/sh  
/bin/sh  
/bin/sh  
lsb >= 3.2
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1

There is no explicit RPM requirement for something like libjpeg.so.62

I don't know if "lsb >= 3.2" implies a requirement for it
butv I guess LSB does not include a requirement for any libjpeg.

On a openSUSE 12.2 system there is

# rpm -qf /usr/lib/libjpeg.so.62
libjpeg62-62.0.0-15.5.1.i586

Let's see what there is different for openSUSE 12.3:

$ osc cat openSUSE:12.2 libjpeg-turbo libjpeg-turbo.spec
...
%define major   62
...
%package -n libjpeg%{major}
...

$ osc cat openSUSE:12.3 libjpeg-turbo libjpeg-turbo.spec
...
%define major   8
...
%package -n libjpeg%{major}
...

I don't know any details about libjpeg so that I cannot further
help here so that I ask the libjpeg-turbo maintainer for more
information:


Petr Gajdos,

since openSUSE 12.3 libjpeg-turbo does no longer provide
libjpeg.so.62 but this is needed e.g. by the third-party
epson-inkjet-printer-201101w-1.0.0-1lsb3.2.i486.rpm
from avasys.jp/eng for some printers.

At least for Juergen Weigert's Epson Stylus sx130
there is this workaround:
# ln -s /usr/lib/libjpeg.so.8.0.2 /usr/lib/libjpeg.so.62
(see his initial bug description).

I wonder to what extent libjpeg.so.8.0.2 is backward compatible
with libjpeg.so.62 and what could be done for third-party software
that needs libjpeg.so.62
Comment 3 Petr Gajdos 2013-03-05 14:11:19 UTC
CCing Ismail, as he seem to had used --with-jpeg8 during update to 1.2.0.

According to 'libjpeg v7 and v8 API/ABI support' section in README-turbo.txt, v8 and v6b are not compatible.
Comment 4 Petr Gajdos 2013-03-05 14:20:31 UTC
.
Comment 5 Petr Gajdos 2013-03-05 14:22:44 UTC
Maybe we could provide libjpeg62-turbo package which would provide only libjpeg62?
Comment 6 Petr Gajdos 2013-03-05 14:23:35 UTC
(In reply to comment #5)
> libjpeg62?

libjpeg62 subpackage
Comment 7 Ismail Dönmez 2013-03-05 14:59:36 UTC
We can provide a libjpeg62 package. We didn't since we weren't sure if it would be useful. coolo?
Comment 8 Johannes Meixner 2013-03-05 15:10:30 UTC
Juergen Weigert,
according to comment#3 libjpeg.so.8.0.2 is not backward compatible
with libjpeg.so.62 so that your workaround via
# ln -s /usr/lib/libjpeg.so.8.0.2 /usr/lib/libjpeg.so.62
is bad.
A better workaround seems to install the libjpeg62 package
from openSUSE 12.2 on your openSUSE 12.3 system.

On my openSUSE 12.2 system I have installed both libjpeg8
and libjpeg62 without a conflict ("zypper verify -D" reports
"Dependencies of all installed packages are satisfied.")
---------------------------------------------------------------------
# rpm -ql libjpeg8
/usr/lib/libjpeg.so.8
/usr/lib/libjpeg.so.8.3.0

# rpm -ql libjpeg62
/usr/lib/libjpeg.so.62
/usr/lib/libjpeg.so.62.0.0
---------------------------------------------------------------------
Comment 10 Juergen Weigert 2013-03-05 16:07:28 UTC
Another package of mine: home:jnweiger bitscope-dso

It uses an outdated (binary-only) libborqt-6.9.0-qt2.3.so, which also requires
libjpeg.so.62, sigh.
Comment 11 Petr Gajdos 2013-03-06 08:24:34 UTC
http://refspecs.linuxfoundation.org/LSB_4.1.0/LSB-Desktop-generic/LSB-Desktop-generic/libjpeg62.html#LIBJPEG

libjpeg.so.62 is required by lsb.So 'lsb >= 3.2' really implies requirement to libjpeg.so.62.
Comment 12 Petr Gajdos 2013-03-06 08:28:08 UTC
See home:pgajdos, there are libjpeg-turbo and libjpeg6-turbo.

It is actually one package with two spec files.
Comment 13 Petr Gajdos 2013-03-06 08:30:40 UTC
(In reply to comment #7)
> We can provide a libjpeg62 package. We didn't since we weren't sure if it would

I was not sure too :-(.
Comment 14 Ismail Dönmez 2013-03-06 09:11:43 UTC
(In reply to comment #12)
> See home:pgajdos, there are libjpeg-turbo and libjpeg6-turbo.
> 
> It is actually one package with two spec files.

We should remove

%{_bindir}/*
%doc %{_mandir}/man1/*

from the libjpeg6-turbo package so it doesn't conflict with libjpeg8-turbo one.
Comment 15 Johannes Meixner 2013-03-06 09:57:03 UTC
Regarding comment#1 "libjpeg.so.62 is required by lsb":

Yes and no, see bnc#807747

libjpeg.so.62 is required by the
"Linux Standard Base Desktop Specification"
but it is not required by the
"Linux Standard Base Core Specification"

Our lsb RPM provides only "Necessary files and dependencies
for the Linux Standard Base (LSB) Core" see "rpm -qi lsb".

The question is what a RPM requirement for "lsb >= 3.2" means:
Is it a requirement for "all LSB functional areas"
or only a requirement for "LSB core"?
Comment 16 Johannes Meixner 2013-03-06 11:04:41 UTC
Adapted the bug's subject to show the actual requirement
and changed the bug's component to "Basesystem"
because LSB related issues seem to belong there
(Base:System is develproject for openSUSE:Factory/lsb).
Comment 17 Petr Gajdos 2013-03-11 06:53:47 UTC
(In reply to comment #14)
> (In reply to comment #12)
> > See home:pgajdos, there are libjpeg-turbo and libjpeg6-turbo.
> > 
> > It is actually one package with two spec files.
> 
> We should remove
> 
> %{_bindir}/*
> %doc %{_mandir}/man1/*
> 
> from the libjpeg6-turbo package so it doesn't conflict with libjpeg8-turbo one.

Done and I have renamed it to libjpeg62-turbo (still in home:pgajdos only).
Comment 18 Petr Gajdos 2013-03-11 06:54:37 UTC
I am clueless though why baselibs62.conf doesn't work.
Comment 19 Petr Gajdos 2013-05-15 09:05:04 UTC
Because there are no objections, I am about to send two-spec-file libjpeg-turbo into factory.

Juergen, could you please look at 

http://download.opensuse.org/repositories/home:/pgajdos/openSUSE_12.3/x86_64/libjpeg62-62.0.0-50.1.x86_64.rpm
Comment 20 Bernhard Wiedemann 2013-05-17 08:00:26 UTC
This is an autogenerated message for OBS integration:
This bug (807183) was mentioned in
https://build.opensuse.org/request/show/175940 Factory / libjpeg-turbo
https://build.opensuse.org/request/show/175941 Factory / libjpeg-turbo
https://build.opensuse.org/request/show/175943 Factory / libjpeg-turbo
Comment 21 Bernhard Wiedemann 2013-05-17 10:00:15 UTC
This is an autogenerated message for OBS integration:
This bug (807183) was mentioned in
https://build.opensuse.org/request/show/175952 Factory / libjpeg-turbo
Comment 22 Juergen Weigert 2013-05-17 11:45:06 UTC
> Juergen, could you please look at 
> 
> http://download.opensuse.org/repositories/home:/pgajdos/openSUSE_12.3/x86_64/libjpeg62-62.0.0-50.1.x86_64.rpm

Looks good. Thank you Petr!
Comment 23 Petr Gajdos 2013-05-20 15:38:53 UTC
While libjpeg62-turbo is on its way to factory, I would like to ask if we should provide libjpeg.so.62 also for 12.3.

Juergen, Mr. Maintenance?
Comment 24 Ivanov 2013-05-21 07:06:15 UTC
Though I am not Mr. Maintenance I want to add +1 for this going into 12.3 too. I found one more application (GAME: yofrankie) requiring libjpeg62 that segfaults when doing 
"sudo ln -s libjpeg.so.8.0.2 libjpeg.so.62"
and trying to start. I'm building a rpm of that game and will push it to the games repo as soon libjpeg hits 12.3 and Factory.
Comment 25 Juergen Weigert 2013-05-21 10:15:35 UTC
Not Mr. Maintenance either, but while you are at it, please also try submit it to 12.3 updates -- I don't know if this lsb-(non?)-issue qualifies for a maintenance update or not. We'll find out.
Comment 26 Benjamin Brunner 2013-05-21 14:12:28 UTC
Petr, could you open a maintenancerequest with the updated package, please. Thanks.
Comment 27 Petr Gajdos 2013-05-24 12:53:11 UTC
mr#176502
Comment 28 Andreas Schwab 2013-05-27 13:11:31 UTC
Why do you need a libjpeg62-devel package?
Comment 29 Swamp Workflow Management 2013-06-10 10:05:02 UTC
openSUSE-RU-2013:0928-1: An update that has one recommended fix can now be installed.

Category: recommended (low)
Bug References: 807183
CVE References: 
Sources used:
openSUSE 12.3 (src):    libjpeg-turbo-1.2.1-19.4.1
Comment 30 Andreas Vetter 2013-06-11 00:06:01 UTC
The Patch openSUSE-2013-458 for openSUSE 12.3 does not contain libjpeg62-turbo!

The anouncement does show libjpeg62-turbo in Description:

   This update fixes the following issue with libjpeg-turbo:
   - bnc#807163: Add libjpeg62-turbo package to provide
   libjpeg.so.62, which is required by LSB specification.

But it does not contain libjpeg62-turbo in Package List:

   - openSUSE 12.3 (i586 x86_64):

      libjpeg-turbo-1.2.1-19.4.1
      libjpeg-turbo-debuginfo-1.2.1-19.4.1
      libjpeg-turbo-debugsource-1.2.1-19.4.1
      libjpeg8-8.0.2-19.4.1
      libjpeg8-debuginfo-8.0.2-19.4.1
      libjpeg8-devel-8.0.2-19.4.1

   - openSUSE 12.3 (x86_64):

      libjpeg8-32bit-8.0.2-19.4.1
      libjpeg8-debuginfo-32bit-8.0.2-19.4.1
      libjpeg8-devel-32bit-8.0.2-19.4.1
Comment 32 Petr Gajdos 2013-06-12 09:18:42 UTC
Benjamin?

I think update should not pull libjpeg62 into installed system automatically, but it should be available in update repo, right?
Comment 33 Benjamin Brunner 2013-06-13 02:28:11 UTC
There went something wrong with copying the new package into 12.3:Update. I'll check it.
Comment 34 Petr Gajdos 2013-06-13 02:37:39 UTC
Beni, thanks.
Comment 35 Benjamin Brunner 2013-06-13 05:03:37 UTC
I found the problem and rereleased it with the fix. The correct package is now in 12.3:Update.

zypper se -s libjpeg62-turbo
Daten des Repositories laden ...
Installierte Pakete lesen ...

S | Name            | Typ        | Version      | Arch   | Repository          
--+-----------------+------------+--------------+--------+---------------------
  | libjpeg62-turbo | Paket      | 1.2.1-19.8.1 | x86_64 | openSUSE 12.3 Update
  | libjpeg62-turbo | Paket      | 1.2.1-19.8.1 | i586   | openSUSE 12.3 Update
  | libjpeg62-turbo | Quellpaket | 1.2.1-19.8.1 | noarch | openSUSE 12.3 Update

Resolved fixed for now. Feel free to reopen the bug if you find another issue.
Comment 36 Marcus Meissner 2013-06-13 05:28:17 UTC
that does not work.

standard             i586       unresolvable: have choice for libjpeg-devel: libjpeg8-devel libjpeg62-devel


One of the Provides: libjpeg-devel probably has to go from one of the specfiles. Probably from the libjpeg62-devel one.

which one?
Comment 37 Petr Gajdos 2013-06-13 05:40:27 UTC
Use prjconf like for Factory does not work? I can surely remove Provides from libjpeg62-devel. Or we can remove libjpeg62-devel completely, if you wish (see comment 28).
Comment 38 Marcus Meissner 2013-06-13 05:46:44 UTC
well yes, it works.

it is not the most clean solution to do such a thing though.

I have added the prefer line. lets see if there is any fallout.
Comment 39 Petr Gajdos 2013-06-13 06:00:45 UTC
(In reply to comment #38)
> it is not the most clean solution to do such a thing though.

Let us do most clean solution then :-). Remove libjpeg62-devel?
Comment 40 Marcus Meissner 2013-06-13 07:05:17 UTC
Perhaps only remove the 

Provides:       libjpeg-devel = %{version}
Obsoletes:      libjpeg-devel < %{version}

from the libjpeg62-devel package.

Then the devel package is there, it just does not confuse the buildservice?
Comment 41 Benjamin Brunner 2013-06-13 07:15:00 UTC
After I had to remove the package again from the update-channel, I'll try Marcus' solution in the incident.
Comment 42 Petr Gajdos 2013-06-13 07:17:47 UTC
But then

Conflicts:      otherproviders(libjpeg-devel)

from libjpeg8-devel will not work, correct?
Comment 43 Marcus Meissner 2013-06-13 07:24:17 UTC
If you try to install libjpeg8-devel  after libjpeg62-devel, yes, it wont get shown. 

perhaps we can also add explicit named conflicts for openSUSE 12.3 (

%package libjpeg8-devel
Conflicts: libjpeg62-devel

? )
Comment 44 Petr Gajdos 2013-06-13 07:59:50 UTC
Ok. Beni, will you take care of that, or should I submit another sr?
Comment 45 Benjamin Brunner 2013-06-13 09:47:02 UTC
Yeah, sure. I have prepared the fixed package in openSUSE:Maintenance:1701, if you want to double-check it.
Comment 46 Benjamin Brunner 2013-06-14 05:32:26 UTC
After talking to Petr, I removed
-Provides:       jpeg = %{version}
-Obsoletes:      jpeg < %{version}
from libjpeg62-turbo.spec, that we only provide libjpeg62 in the new package.

I have tested the fixed package with xorg-x11-Xvnc, which requires libjpeg-devel and texlive, which requires jpeg and it looks good so far.

If someone wants to test it, you can find the new packages in https://build.opensuse.org/project/show?project=openSUSE%3AMaintenance%3A1701
Comment 47 Andreas Vetter 2013-06-17 00:23:47 UTC
The new packages work for me. Thanx.
Comment 48 Benjamin Brunner 2013-06-17 07:07:25 UTC
Andreas, thanks for testing. I'll release it now to fix the broken builds.

Let's close the bug again. Feel free to reopen it if something still isn't working as expected.
Comment 49 Swamp Workflow Management 2014-12-15 12:05:57 UTC
openSUSE-SU-2014:1637-1: An update that solves one vulnerability and has two fixes is now available.

Category: security (moderate)
Bug References: 771791,807183,906761
CVE References: CVE-2014-9092
Sources used:
openSUSE 13.2 (src):    libjpeg-turbo-1.3.1-30.5.1, libjpeg62-turbo-1.3.1-30.5.1
openSUSE 13.1 (src):    libjpeg-turbo-1.2.1-24.4.1, libjpeg62-turbo-1.2.1-24.4.1
openSUSE 12.3 (src):    libjpeg-turbo-1.2.1-19.20.1, libjpeg62-turbo-1.2.1-19.20.1