libheif - how to handle conflicting files already on system
All, I've package libheif for the hiec-convert feature, but there are various packages previously pulled in by darktable, gimp-plugin-heic and imagemagick heic files that conflict with the new libraries that are built with my libheif package. I need a way to tell zypper to uninstall the current conflicting packages and use the file from my package in their place. I know I can tell rpm with Provides: that my package provides that capability, but what else do I need to do so that the installed packages are removed and mine installed? The conflicts are: File /usr/lib64/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-heif.so from install of libheif-1.12.0-dcr154.1.1.x86_64 (Plain RPM files cache) conflicts with file from package gdk-pixbuf-loader-libheif-1.12.0-150400.1.10.x86_64 (@System) File /usr/lib64/libheif.so from install of libheif-1.12.0-dcr154.1.1.x86_64 (Plain RPM files cache) conflicts with file from package libheif-devel-1.12.0-150400.1.10.x86_64 (@System) File /usr/lib64/libheif.so.1 from install of libheif-1.12.0-dcr154.1.1.x86_64 (Plain RPM files cache) conflicts with file from package libheif1-1.12.0-150400.1.10.x86_64 (@System) File /usr/lib64/pkgconfig/libheif.pc from install of libheif-1.12.0-dcr154.1.1.x86_64 (Plain RPM files cache) conflicts with file from package libheif-devel-1.12.0-150400.1.10.x86_64 (@System) On install of libheif-1.12.0-dcr154.1.1.x86_64, I need the following packages removed: gdk-pixbuf-loader-libheif libheif-devel libheif1 What is the best way to handle this? While TW provides a working libheif (with heic-convert for Apple .heic files), 15.4 doesn't, so that was the imputes for building this package. (works quite well to, though .spec will need a bit of experienced cleanup) -- David C. Rankin, J.D.,P.E.
On 12.08.2022 05:17, David C. Rankin wrote:
All,
I've package libheif for the hiec-convert feature, but there are various packages previously pulled in by darktable, gimp-plugin-heic and imagemagick heic files that conflict with the new libraries that are built with my libheif package.
I need a way to tell zypper to uninstall the current conflicting packages and use the file from my package in their place.
I know I can tell rpm with Provides: that my package provides that capability, but what else do I need to do so that the installed packages are removed and mine installed?
The conflicts are:
File /usr/lib64/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-heif.so from install of libheif-1.12.0-dcr154.1.1.x86_64 (Plain RPM files cache) conflicts with file from package gdk-pixbuf-loader-libheif-1.12.0-150400.1.10.x86_64 (@System)
File /usr/lib64/libheif.so from install of libheif-1.12.0-dcr154.1.1.x86_64 (Plain RPM files cache) conflicts with file from package libheif-devel-1.12.0-150400.1.10.x86_64 (@System)
Development libraries should go into -devel subpackage, not in unversioned package.
File /usr/lib64/libheif.so.1 from install of libheif-1.12.0-dcr154.1.1.x86_64 (Plain RPM files cache) conflicts with file from package libheif1-1.12.0-150400.1.10.x86_64 (@System)
Versioned shared libraries should go into versioned library subpackage. https://ru.opensuse.org/openSUSE:Shared_library_packaging_policy
File /usr/lib64/pkgconfig/libheif.pc from install of libheif-1.12.0-dcr154.1.1.x86_64 (Plain RPM files cache) conflicts with file from package libheif-devel-1.12.0-150400.1.10.x86_64 (@System)
pkgconfig files should go into -devel subpackage.
On install of libheif-1.12.0-dcr154.1.1.x86_64, I need the following packages removed:
gdk-pixbuf-loader-libheif
If your package completely replaces the content of this package, just use Obsoletes: gdk-pixbuf-loader-libheif
libheif-devel libheif1
You need to build corresponding subpackages, in which case it is just a matter of switching vendor.
What is the best way to handle this?
While TW provides a working libheif (with heic-convert for Apple .heic files), 15.4 doesn't, so that was the imputes for building this package. (works quite well to, though .spec will need a bit of experienced cleanup)
On 8/12/22 01:34, Andrei Borzenkov wrote:
Development libraries should go into -devel subpackage, not in unversioned package.
File /usr/lib64/libheif.so.1 from install of libheif-1.12.0-dcr154.1.1.x86_64 (Plain RPM files cache) conflicts with file from package libheif1-1.12.0-150400.1.10.x86_64 (@System)
Versioned shared libraries should go into versioned library subpackage.
https://ru.opensuse.org/openSUSE:Shared_library_packaging_policy
File /usr/lib64/pkgconfig/libheif.pc from install of libheif-1.12.0-dcr154.1.1.x86_64 (Plain RPM files cache) conflicts with file from package libheif-devel-1.12.0-150400.1.10.x86_64 (@System)
pkgconfig files should go into -devel subpackage.
On install of libheif-1.12.0-dcr154.1.1.x86_64, I need the following packages removed:
gdk-pixbuf-loader-libheif
If your package completely replaces the content of this package, just use
Obsoletes: gdk-pixbuf-loader-libheif
libheif-devel libheif1
You need to build corresponding subpackages, in which case it is just a matter of switching vendor.
Thank you Andrei, We found the problem. When I searched packman, there was no libheif-examples package, so I thought I would need to build my own and I cobbled together a spec to build it. However, we (Haller) found the reason there was no libheif-examples on packman for 15.4 was that the build was failing due to rpath issues. Once I got the spec for the actual 15.4 libheif package with the conditional build switch for x265, the subpackage use and division was clear. Luigi fixed the packman package and this issue is solved. -- David C. Rankin, J.D.,P.E.
Hi, On Thu, Aug 11, David C. Rankin wrote:
All,
I've package libheif for the hiec-convert feature, but there are various packages previously pulled in by darktable, gimp-plugin-heic and imagemagick heic files that conflict with the new libraries that are built with my libheif package.
We have already a libheif package. We cannot have two packages with the same name. Why is a new package with the same name necessary? Why can you not enhance or adjust the current package? Thorsten -- Thorsten Kukuk, Distinguished Engineer, Senior Architect SUSE Software Solutions Germany GmbH, Frankenstraße 146, 90461 Nuernberg, Germany Managing Director: Ivo Totev, Andrew Myers, Andrew McDonald, Martje Boudien Moerman (HRB 36809, AG Nürnberg)
On 8/12/22 02:04, Thorsten Kukuk wrote:
Hi,
On Thu, Aug 11, David C. Rankin wrote:
All,
I've package libheif for the hiec-convert feature, but there are various packages previously pulled in by darktable, gimp-plugin-heic and imagemagick heic files that conflict with the new libraries that are built with my libheif package.
We have already a libheif package. We cannot have two packages with the same name. Why is a new package with the same name necessary? Why can you not enhance or adjust the current package?
Thorsten
I'll rename it -- but, the libheif provided by openSUSE does not provide a functional: /usr/bin/heif-convert /usr/bin/heif-enc /usr/bin/heif-info /usr/bin/heif-thumbnailer With the libs provided by openSUSE, you end up with: $ heif-convert IMG_0257.heic IMG_0257.jpg File contains 1 image Could not decode image: 0: Unsupported feature: Unsupported codec ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ That is because openSUSE doesn't require libde265.so.0, libx265so.199, and librav1e.so.0 with the X265, and rav1e packages I don't require renaming, I'm just looking for advise on how to handle the conflict for the openSUSE packages that don't Apple .heic conversion. Apparently, this does work on TW, so I'm not sure why 15.4 doesn't. Yes, we can likely fix the current 15.4 package by simply adding the Requires: and the "%configure --enable-static=no". I'll see if I can branch on buildservice and report back. -- David C. Rankin, J.D.,P.E.
On 8/12/22 02:42, David C. Rankin wrote:
Yes, we can likely fix the current 15.4 package by simply adding the Requires: and the "%configure --enable-static=no". I'll see if I can branch on buildservice and report back.
No, crap, can't do it because the libraries come from packman. That's the issue, there is no libheif on packman for 15.4. That's what forced me to look for a solution to begin with. Can somebody build it for packman? Only configure option needed is --enable-static=no. -- David C. Rankin, J.D.,P.E.
On 8/12/22 02:45, David C. Rankin wrote:
No, crap, can't do it because the libraries come from packman. That's the issue, there is no libheif on packman for 15.4.
That's what forced me to look for a solution to begin with. Can somebody build it for packman? Only configure option needed is --enable-static=no.
Well, I can build with the openSUSE libheif, but needed to remove the %bcond and just %define with_x265 1 to force it to build the examples using the proper libraries, Sorry for the noise. -- David C. Rankin, J.D.,P.E.
participants (3)
-
Andrei Borzenkov
-
David C. Rankin
-
Thorsten Kukuk