FS#13412 - PKGBUILD dependency updates
Attached to Project:
Arch Linux
Opened by Justin Davis (juster) - Sunday, 22 February 2009, 05:30 GMT
Last edited by Eric Belanger (Snowman) - Sunday, 22 March 2009, 05:49 GMT
Opened by Justin Davis (juster) - Sunday, 22 February 2009, 05:30 GMT
Last edited by Eric Belanger (Snowman) - Sunday, 22 March 2009, 05:49 GMT
|
Details
Description:
heimdal is listed as a dependency but is not required by imagemagick, but instead by ghostscript. This was probably added because ghostscript failed to add it to their list of dependencies. I have submitted a bug report for the ghostscript package re: heimdal. openexr is a dependency of imagemagick. The version of openexr I had, at 1.4.1, was too old and did not work. At least openxr>1.4.1 should be listed as a dependency to prevent this from happening. Additional info: * package version: 6.4.2 Steps to reproduce: namcap will confirm that heimdal is not required. |
This task depends upon
As for openexr, I'll change it in the PKGBUILD. However, it is usually assumed that users keep their system up-to-date. That would present problems like this one.
'ldd' will show you a binary's dependencies as well as it's dependencies' dependencies, etc, until all required libraries are found.
The reason I had this problem is heimdal was upgraded, but ghostscript and cups (the libraries directly using heimdal) were still using the old version. But the old version of the heimdal library file was removed when upgrading. Thus imagemagick, ghostscript, and libcups all stopped working.
I forgot to mention the most important thing! I'm sorry. ghostscript needs to be >= 8.64. This will in effect upgrade heimdal automatically for folks like me who aren't completely up to date and will match the build.
Please re-read my comment from Sunday. I am only posting this because it _did_ break my system. Not only did imagemagick not work, but it broke ghostscript and libcups. This broke any app that depended on these three libraries.
How? It bypassed the dependency chain and updated a dependency of a dependency.
If people want to use imagemagick, they don't have a choice. They have to use the versions I mentioned, why not specify them? Will this possibly break older versions of packages who depend on ghostscript, libcups, and openexr. Possibly. But right now it is 100% certainty the imagemagick package will break the system of anyone using ghostscript 8.63 in a much less predictable way. This includes old packages depending on ghostscript, libcups, etc that you are apparently concerned about breaking.
I have upgraded ghostscript and openexr to the latest versions and my system still works.
The only way to fix these issues is to make packages themselves versioned. Heimdal for example would provide libkrb5=25 and some other libraries. Packages that have been built against this version of heimdal shouldn't depend on heimdal, but on the versioned provide they link to. This has two nasty downsides though: our distribution won't be KISS anymore, and even worse, people will run into dependency hell when they run pacman -Syu because some unofficial package on their system breaks these rules or hasn't been updated yet. They will end up filing bugreports for bugs in unofficial packages, or just pacman -Sd things and still get a broken system.