FS#74679 - [libjpeg-turbo] Provided CMake package is nonfunctional

Attached to Project: Arch Linux
Opened by Ivan Shapovalov (intelfx) - Sunday, 08 May 2022, 07:54 GMT
Last edited by David Runge (dvzrv) - Friday, 20 May 2022, 19:14 GMT
Task Type Bug Report
Category Packages: Extra
Status Closed
Assigned To David Runge (dvzrv)
Levente Polyak (anthraxx)
Architecture All
Severity Medium
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

Description:

Any attempt to use the CMake package files (`/usr/lib/cmake/libjpeg-turbo`) provided with libjpeg-turbo package results in a CMake configuration error:

```
$ mkcd build && cmake ..
-- The C compiler identification is GNU 11.2.0
-- The CXX compiler identification is GNU 11.2.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
CMake Error at /usr/lib64/cmake/libjpeg-turbo/libjpeg-turboTargets.cmake:89 (message):
The imported target "libjpeg-turbo::turbojpeg-static" references the file

"/usr/lib/libturbojpeg.a"

but this file does not exist. Possible reasons include:

* The file was deleted, renamed, or moved to another location.

* An install or uninstall procedure did not complete successfully.

* The installation package was faulty and contained

"/usr/lib64/cmake/libjpeg-turbo/libjpeg-turboTargets.cmake"

but not all the files it references.

Call Stack (most recent call first):
/usr/lib64/cmake/libjpeg-turbo/libjpeg-turboConfig.cmake:37 (include)
CMakeLists.txt:5 (find_package)


-- Configuring incomplete, errors occurred!
See also "/home/intelfx/libjpeg-turbo-bug/build/CMakeFiles/CMakeOutput.log".
```

This happens because CMake generates imported targets for both shared and static libraries, but static libraries are not part of the package (despite being built and installed during `make install`).
If this is intended (I guess it is, given `OPTIONS=(... !staticlibs ...)` in devtools makepkg.conf, then `-DENABLE_STATIC=OFF` needs to be passed to CMake to prevent generation of (broken) imported targets for static libraries.


Additional info:
* libjpeg-turbo 2.1.3-1
* attached patch against the PKGBUILD fixes the issue

Steps to reproduce:
* build the attached project
This task depends upon

Closed by  David Runge (dvzrv)
Friday, 20 May 2022, 19:14 GMT
Reason for closing:  Fixed
Additional comments about closing:  Fixed with libjpeg-turbo 2.1.3-2
Comment by David Runge (dvzrv) - Sunday, 08 May 2022, 10:38 GMT
@intelfx: Thanks for the ticket!

I'll fix this in a pkgrel bump by disabling the static libs.

Loading...