Bug 1198299 - calibre: fails to build on missing dependencies
calibre: fails to build on missing dependencies
Status: RESOLVED FIXED
Classification: openSUSE
Product: openSUSE Distribution
Classification: openSUSE
Component: Other
Leap 15.4
Other Other
: P5 - None : Normal with 1 vote (vote)
: ---
Assigned To: Eric Schirra
E-mail List
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2022-04-11 08:34 UTC by Lubos Kocman
Modified: 2022-05-21 11:47 UTC (History)
3 users (show)

See Also:
Found By: ---
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Lubos Kocman 2022-04-11 08:34:56 UTC
Hello

package calibre does not build in Leap 15.4 as there are several unresolvables
Just to note that we're building calibre in top level openSUSE:Leap:15.4 project 

https://build.opensuse.org/package/show/openSUSE:Leap:15.4/calibre


unresolvable: nothing provides python-apsw >= 3.7.17, nothing provides python-css-parser >= 1.0.4, nothing provides python-dukpy-kovidgoyal, nothing provides python-html5-parser >= 0.4.6, nothing provides python-mechanize >= 0.2.5, nothing provides python-odfpy, nothing provides python-feedparser >= 5.2.1, nothing provides python-html2text >= 2016.9.19
Comment 1 Eric Schirra 2022-04-24 13:48:35 UTC
The package was built until 11.11.2021.
What and why was something changed after that?
And what should we do now?
Comment 2 Max Lin 2022-04-25 09:35:58 UTC
The biggest reason is Leap 15.4(inherited SLE15 SP4 feature change) no longer ship python2, skip_python2 has been set to 1 in prjconf plus macros has changed, therefore BuildRequires: python-* is clearly to ask that package does not implies to python2-* or python3-*.

And it seems calibre in Leap 15.4 is a outdated version which is python2 base.
Comment 3 Eric Schirra 2022-04-25 11:15:31 UTC
(In reply to Max Lin from comment #2)
> The biggest reason is Leap 15.4(inherited SLE15 SP4 feature change) no
> longer ship python2, skip_python2 has been set to 1 in prjconf plus macros
> has changed, therefore BuildRequires: python-* is clearly to ask that
> package does not implies to python2-* or python3-*.
> 
> And it seems calibre in Leap 15.4 is a outdated version which is python2
> base.

Yes. Because calibre 5.41.0 need:

python3 >= 3.8 and all subpackage for python >= 3.8
But Leap 15.4 has python 3.6 enabled which was deprecated and end of life since 23.12.2021.

Imho, the Standard and all subpackages should switch to python >= 3.8

So. What can i do?
Comment 4 Max Lin 2022-04-25 11:36:38 UTC
(In reply to Eric Schirra from comment #3)
> (In reply to Max Lin from comment #2)
> > The biggest reason is Leap 15.4(inherited SLE15 SP4 feature change) no
> > longer ship python2, skip_python2 has been set to 1 in prjconf plus macros
> > has changed, therefore BuildRequires: python-* is clearly to ask that
> > package does not implies to python2-* or python3-*.
> > 
> > And it seems calibre in Leap 15.4 is a outdated version which is python2
> > base.
> 
> Yes. Because calibre 5.41.0 need:
> 
> python3 >= 3.8 and all subpackage for python >= 3.8
> But Leap 15.4 has python 3.6 enabled which was deprecated and end of life
> since 23.12.2021.
> 
> Imho, the Standard and all subpackages should switch to python >= 3.8
> 
> So. What can i do?

Leap 15.4's default python is 3.6, although we do have python 3.9 exists but we provide it just interpreter because multiple python3 version has not supported in Leap 15(and SLE15), so python module has compiled with python 3.6 only. Can we have a working version with python 3.6?
Comment 5 Eric Schirra 2022-04-25 12:39:29 UTC
(In reply to Max Lin from comment #4)
 
> Leap 15.4's default python is 3.6, although we do have python 3.9 exists but
> we provide it just interpreter because multiple python3 version has not
> supported in Leap 15(and SLE15), so python module has compiled with python
> 3.6 only. Can we have a working version with python 3.6?

In setup.py from calibre it is python >= 3.7
And in sources.json it is python 3.8

So i think 3.7 is minimum.
This problem with eol python 3.6 has many, many other packages also. :-(

PS: Who fix security issues? Upstream does nothing. Only Suse? So many free time? hmm....
Comment 6 Eric Schirra 2022-04-27 14:13:04 UTC
Hello Max and Lupos,

what can we do?

In my opinion, the default python3 version in Leap should be at least version 3.7.

Then you would have solved quite a few problems. Not only this one.
And you wouldn't have to be responsible for security problems anymore.
Comment 7 Max Lin 2022-04-29 07:23:47 UTC
(In reply to Eric Schirra from comment #6)
> Hello Max and Lupos,
> 
> what can we do?
> 
> In my opinion, the default python3 version in Leap should be at least
> version 3.7.
> 
> Then you would have solved quite a few problems. Not only this one.
> And you wouldn't have to be responsible for security problems anymore.

I can't speak for SLE PMs about the default python3 version, I guess it would not change to python 3.7 in the whole 15 scope, therefore Leap wouldn't.

Regarding this issue, IMO there are two options, 1) have a python 3.6 working version, backport fix to calibre as much as possible if there are reports against it. Yes, it's a dated version I know...unfortunately. 2) don't ship calibre on Leap 15.4, if users needing it they can set up an project on OBS for rebuild all required python deps with python > 3.6 and calibre.

Lubos, do you have any other idea?
Comment 8 Lubos Kocman 2022-05-09 09:03:06 UTC
Hello Eric,

we do have a feature to change that https://jira.suse.com/browse/PM-3390
But that's not happening in 15.4. 

Until then we have to find another solution. One would be to build it against the parallely oferred python39

Let's discuss this on python@lists.opensuse.org
Comment 9 Max Lin 2022-05-09 09:11:43 UTC
(In reply to Lubos Kocman from comment #8)
> Hello Eric,
> 
> we do have a feature to change that https://jira.suse.com/browse/PM-3390
> But that's not happening in 15.4. 
> 
> Until then we have to find another solution. One would be to build it
> against the parallely oferred python39

err.. this would not work since 15.4/SLE15 don't support multiple-python3, without that all python deps on listed BuildRequires will pulling py3.6 based package still, eg. python-Pillow is py3.6 base, force to add python3.9 at the build time will not make it works.
Comment 10 Eric Schirra 2022-05-09 09:26:46 UTC
(In reply to Max Lin from comment #9)
> (In reply to Lubos Kocman from comment #8)
> > Hello Eric,
> > 
> > we do have a feature to change that https://jira.suse.com/browse/PM-3390
> > But that's not happening in 15.4. 
> > 
> > Until then we have to find another solution. One would be to build it
> > against the parallely oferred python39
> 
> err.. this would not work since 15.4/SLE15 don't support multiple-python3,
> without that all python deps on listed BuildRequires will pulling py3.6
> based package still, eg. python-Pillow is py3.6 base, force to add python3.9
> at the build time will not make it works.

That is the point. Just using python3.9 is not enough. The other python modules are built on 3.6. So they and therefore calibre do not work with python 3.9.
This affects, as already mentioned, quite a few other python applications.
For me, there is only one solution.
And that is to say goodbye to the dead python version 3.6.
I don't know any other solution.
Comment 12 Eric Schirra 2022-05-11 12:47:27 UTC
(In reply to Max Lin from comment #11)
> https://build.opensuse.org/request/show/975762

And this is supposed to be the solution?
Sad. Sad. 
Not only because of calibre. But also because of all the other python applications that have to be deleted because of an old, no longer supported and dead python version.
Here people complain that there are too few developers and helpers. At the same time resources are wasted to support a dead version.
Have fun should a security gap occur. Because that must be fixed then all alone by SUSE people. If just has too much resources free, you can do that. :-(
I do not understand this. But well, I don't have to understand everything.
Comment 13 Max Lin 2022-05-11 13:02:48 UTC
(In reply to Eric Schirra from comment #12)
> (In reply to Max Lin from comment #11)
> > https://build.opensuse.org/request/show/975762
> 
> And this is supposed to be the solution?

Is there any option? I mean you want to say goodbye to the dead python version 3.6, I read it as *there is no way to provide a working calibre with python 3.6 base*, on the other side, we have no way to get python 3.8 or above plus python applications compiled with that into the 15.4, I don't have any other solution, unfortunately... keep it as unresolvable there isn't a solution also...

Providing python 3.8 or above, and get all other python applications to compile with that is an BIG topic already, sadly we can not have that to be implemented in 15.4, hopefully it can be implemented in the next version...
Comment 14 Eric Schirra 2022-05-21 11:47:11 UTC
I have found now a solution for calibre under Leap 15.4
The last version which can build is 4.23.0.
But this version need many more newer packages:

unresolvable: nothing provides libmtp-devel >= 1.1.17
      (got version 1.1.16-3.3.1)
      nothing provides pkgconfig(hunspell) >= 1.7.0
      (got version 1.6.2 provided by hunspell-devel-32bit)
      (got version 1.6.2 provided by hunspell-devel)
      nothing provides pkgconfig(libopenjp2) >= 2.3.1
      (got version 2.3.0 provided by openjpeg2-devel)
      nothing provides pkgconfig(libpng16) >= 1.6.37
      (got version 1.6.34 provided by libpng16-devel)
      nothing provides pkgconfig(readline) >= 8.0
      nothing provides python3-beautifulsoup4 >= 4.9.1
      (got version 4.8.2-1.18)
      nothing provides python3-cchardet >= 2.1.7
      (got version 2.1.5-bp154.1.29)
      nothing provides python3-dnspython >= 2.0.0
      (got version 1.15.0-1.25)
      nothing provides python3-feedparser >= 6.0.8
      (got version 5.2.1-bp154.1.31)
      nothing provides python3-html5-parser >= 0.4.10
      (got version 0.4.9-bp154.1.28)
      nothing provides python3-html5lib >= 1.1
      (got version 1.0.1-1.22)
      nothing provides python3-ifaddr >= 0.1.7
      (got version 0.1.6-bp154.1.31)
      nothing provides python3-mechanize >= 0.4.7
      (got version 0.4.5-bp154.1.30)
      nothing provides python3-msgpack >= 1.0.0
      (got version 0.5.6-1.19)
      nothing provides python3-netifaces >= 0.10.9
      (got version 0.10.6-1.31)
      nothing provides python3-packaging >= 20.4
      (got version 20.3-1.9)
      nothing provides python3-pycryptodome >= 3.9.8
      (got version 3.9.0-6.1)
      nothing provides python3-regex >= 2020.07.14
      (got version 2020.2.20-1.1)
      nothing provides python3-setuptools >= 49.6.0
      (got version 44.1.1-150400.1.4)
      nothing provides python3-texttable >= 1.6.3
      (got version 1.6.2-bp154.1.29)
      nothing provides pkgconfig(libwebp) >= 1.1.0
      (got version 1.0.3 provided by libwebp-devel)
      (got version 1.0.3 provided by libwebp-devel-32bit)
      nothing provides python3-six >= 1.15.0
      (got version 1.14.0-12.1)
      nothing provides python3-soupsieve >= 2.0.1
      (got version 1.9.5-1.17)
      nothing provides python3-py7zr >= 0.11.1
      nothing provides python3-speechd >= 0.10.1
      (got version 0.8.8-3.6.3)
      nothing provides python3-zeroconf >= 0.31.0
      (got version 0.25.1-bp154.1.17)

So if this packages would be updated, you could build calibre in version 4.23.0.
In my home repo I now have a working version for Leap 15.4. tested by myself.
The package itself is called calibre4 there.