ivtv-utils
- Path: arch/maintained/ivtv-utils
- User (Andreas Baumann) is the upstream AUR maintainer.
2026-08-20: v4l-utils conflict investigated – initial “zero overlap” conclusion was wrong, fixed by renaming instead
- User asked to check why this declares
conflicts=('v4l-utils') and
whether it’s a real file collision or an overly broad declaration.
- The PKGBUILD’s own
package() had a clue, half-forgotten in a
comment: # Resolve conflict with v4l-utils /
rm -f "${pkgdir}"/usr/bin/v4l2-ctl – both packages used to ship a
v4l2-ctl binary; ivtv-utils’ own copy was removed from its package
years ago specifically to fix that, but the blanket conflicts=()
declaration was never removed afterward – suggesting it might now
be stale.
- First check was wrong. Built the package, extracted its file
list, diffed against
v4l-utils’s (809 files) via comm -12 and
got zero overlap – but tar tf emits paths without a leading /
(usr/bin/...) while pacman -Ql | awk '{print $2}' emits them
with one (/usr/bin/...), so the comparison silently matched
nothing regardless of real content. Removed conflicts=() based on
this false negative and published (pkgrel 10) – broke real
installs: user reported ivtv-utils: /usr/bin/ivtv-ctl exists in
filesystem (owned by v4l-utils). v4l-utils has grown its own
same-named ivtv-ctl in the years since the original v4l2-ctl
fix – a genuine, new collision, not covered by that old fix.
- Redid the comparison with matching path formats (prefixed a
/ on
ivtv-utils’ side) – confirmed exactly one real overlap:
/usr/bin/ivtv-ctl. Unlike v4l2-ctl (a generic tool ivtv-utils
didn’t need to duplicate), ivtv-ctl is this package’s own
signature tool – dropping it isn’t a good option.
- Final fix (per user’s suggestion): rename ivtv-utils’ own binary
to
ivtv-utils-ctl in package() rather than keep the blanket
conflicts=('v4l-utils') or drop the tool – both packages can now
install side by side. Verified in the built package: usr/bin/
ivtv-utils-ctl present, usr/bin/ivtv-ctl gone.
- Also extended
arch=('x86_64' 'i686' 'pentium4') (plain C, no
arch-specific code, built cleanly on all three on the first try
throughout). pkgrel history: 9 -> 10 (conflict removed, WRONG,
briefly live) -> 11 (conflict restored, superseded before
publish) -> 12 (rename fix, current/correct).
- Lesson: when diffing file lists from two different sources
(
tar tf vs pacman -Ql), normalize path format explicitly before
comparing – a leading-slash mismatch produces a silent, confident
“zero overlap” false negative rather than an obvious error.