FS#80171 - [movit] .pc file refers to a package movit does not depend on

Attached to Project: Arch Linux
Opened by Tom Smeding (tomsmeding) - Sunday, 05 November 2023, 13:07 GMT
Last edited by Toolybird (Toolybird) - Sunday, 05 November 2023, 19:46 GMT
Task Type Bug Report
Category Packages: Extra
Status Closed
Assigned To No-one
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

Description: The movit.pc file installed with 'movit' depends on 'eigen3', but no eigen3.pc file is installed by movit, nor by any of its dependencies.

This is relevant whenever one wants to depend on movit via pkg-config.
It bites me specifically because a tool I use reads in the entire pkg-config database, which fails when any package within it is broken (like movit.pc is).


Additional info:
* movit 1.7.1-1


Steps to reproduce:

```
~$ pacman -Qo /usr/lib/pkgconfig/movit.pc
/usr/lib/pkgconfig/movit.pc is owned by movit 1.7.1-1

~$ cat /usr/lib/pkgconfig/movit.pc
# Movit pkg-config source file.

prefix=/usr
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
datarootdir=${prefix}/share
datadir=${datarootdir}
shaderdir=${datarootdir}/movit

Name: movit
Description: Movit is a library for high-quality, high-performance video filters.
Version: git
Requires: epoxy eigen3
Requires.private: fftw3
Conflicts:
Libs: -lmovit
Cflags: -I${includedir}/movit

~$ pkg-config --modversion movit
Package eigen3 was not found in the pkg-config search path.
Perhaps you should add the directory containing `eigen3.pc'
to the PKG_CONFIG_PATH environment variable
Package 'eigen3', required by 'movit', not found

(1) ~$ pkg-config --modversion eigen3
Package eigen3 was not found in the pkg-config search path.
Perhaps you should add the directory containing `eigen3.pc'
to the PKG_CONFIG_PATH environment variable
Package 'eigen3', required by 'virtual:world', not found

(1) ~$ pacman -Ql $(pactree movit -u) | grep -F .pc | cut -d' ' -f2- | sort -u | grep eigen

(1) ~$ pacman -Ql $(pactree movit -u) | grep -F .pc | cut -d' ' -f2- | sort -u | xargs grep eigen
/usr/lib/pkgconfig/movit.pc:Requires: epoxy eigen3

~$
```

The last two commands show that none of the transitive dependencies of 'movit' include a file with the string "eigen" in the name, nor in their contents (except for the dependency line in movit.pc, of course).
This task depends upon

Closed by  Toolybird (Toolybird)
Sunday, 05 November 2023, 19:46 GMT
Reason for closing:  Not a bug
Additional comments about closing:  Please refer to the comments
Comment by Antonio Rojas (arojas) - Sunday, 05 November 2023, 13:22 GMT
eigen is not a runtime dependency of movit, so it's correct not to have it in dependencies. It is only needed when building stuff against movit. These sort of inconsistencies are to be expected since Arch does not provide separate -devel packages.
Comment by Tom Smeding (tomsmeding) - Sunday, 05 November 2023, 13:42 GMT
Thank you, I was not aware of this policy. It makes sense in retrospect. I'll stop posting bugs about missing pkg-config dependencies then :)
Comment by Toolybird (Toolybird) - Sunday, 05 November 2023, 19:45 GMT
> since Arch does not provide separate -devel packages

And namcap still doesn't quite grok this fact...thus causing inconsistency. Refer previous related rants e.g.  FS#78455 

$ namcap /var/cache/pacman/pkg/movit-1.7.1-1-x86_64.pkg.tar.zst | grep eigen3
movit W: Referenced pkg-config file 'eigen3.pc' is an uninstalled dependency (needed in files ['usr/lib/pkgconfig/movit.pc'])

Loading...