Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

vlc: fix dependencies #392101

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open

vlc: fix dependencies #392101

wants to merge 2 commits into from

Conversation

alois31
Copy link
Contributor

@alois31 alois31 commented Mar 22, 2025

Things done

  • Built on platform(s)
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)
    • sandbox = relaxed
    • sandbox = true
  • Tested, as applicable:
  • Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
  • Tested basic functionality of all binary files (usually in ./result/bin/)
  • 25.05 Release Notes (or backporting 24.11 and 25.05 Release notes)
    • (Package updates) Added a release notes entry if the change is major or breaking
    • (Module updates) Added a release notes entry if the change is significant
    • (Module addition) Added a release notes entry if adding a new NixOS module
  • Fits CONTRIBUTING.md.

Add a 👍 reaction to pull requests you find important.

alois31 added 2 commits March 22, 2025 14:35
Eliminate various problems with dependencies:
* Add explicit dependencies on various libraries that are directly checked for,
  and happened to work before because they leaked in.
* Remove dependencies that were unused, either because VLC does not support
  them (any more) or because they need to be paired with other dependencies
  that were not present (and no one noticed).
* Drop obsolete workarounds.
It is reportedly [1] broken, and I am not able to work out the reason. As
videos playing properly without hardware acceleration is better than videos
not playing at all, disable it for now.

[1] NixOS#299174
@alois31
Copy link
Contributor Author

alois31 commented Mar 22, 2025

@LordGrimmauld nix-check-deps output is now:

/nix/store/19hrd7viybdfdz2q7q9gq2alxwwxf46k-vlc-3.0.21.drv has unused dependency: /nix/store/64gkszpswcwhqmdw766kxza7s7fizbqb-wayland-protocols-1.41.drv
/nix/store/19hrd7viybdfdz2q7q9gq2alxwwxf46k-vlc-3.0.21.drv has unused dependency: /nix/store/19kdaydrmspb678fxsn5sgqyq9kzgzix-libspatialaudio-0.3.0.drv
/nix/store/19hrd7viybdfdz2q7q9gq2alxwwxf46k-vlc-3.0.21.drv has unused dependency: /nix/store/3dcdjmlq4cpfw8dd3jw8mz6qiym2dkz4-live555-2024.09.20.drv

These all seem to be false positives (libspatialaudio and live555 are statically linked, and wayland-protocols kinda too in that protocol code is generated from its XML files).

@github-actions github-actions bot added 10.rebuild-darwin: 0 This PR does not cause any packages to rebuild on Darwin 10.rebuild-linux: 11-100 labels Mar 22, 2025
@LordGrimmauld
Copy link
Contributor

@LordGrimmauld nix-check-deps output is now:

/nix/store/19hrd7viybdfdz2q7q9gq2alxwwxf46k-vlc-3.0.21.drv has unused dependency: /nix/store/64gkszpswcwhqmdw766kxza7s7fizbqb-wayland-protocols-1.41.drv
/nix/store/19hrd7viybdfdz2q7q9gq2alxwwxf46k-vlc-3.0.21.drv has unused dependency: /nix/store/19kdaydrmspb678fxsn5sgqyq9kzgzix-libspatialaudio-0.3.0.drv
/nix/store/19hrd7viybdfdz2q7q9gq2alxwwxf46k-vlc-3.0.21.drv has unused dependency: /nix/store/3dcdjmlq4cpfw8dd3jw8mz6qiym2dkz4-live555-2024.09.20.drv

These all seem to be false positives (libspatialaudio and live555 are statically linked, and wayland-protocols kinda too in that protocol code is generated from its XML files).

False positives are currently somewhat expected, i don't yet have found a good way to detect static linking and test inputs from the .drv alone. I might however add these to the "allowed unused dependencies" list so they don't get flagged anymore.

As to changes: I see you added libmpeg2. Is this intended, and is this a good idea? libmpeg2 is unmaintained upstream for over a decade at this point, adding it as new dependency feels wrong.

@alois31
Copy link
Contributor Author

alois31 commented Mar 22, 2025

As to changes: I see you added libmpeg2. Is this intended, and is this a good idea? libmpeg2 is unmaintained upstream for over a decade at this point, adding it as new dependency feels wrong.

It was already present under its non-alias alias mpeg2dec, I just decided to move to the canonical name. If we remove it it seems people will no longer be able to play MPEG-2 files; however I have no idea how common they are.

@LordGrimmauld
Copy link
Contributor

It was already present under its non-alias alias mpeg2dec, I just decided to move to the canonical name. If we remove it it seems people will no longer be able to play MPEG-2 files; however I have no idea how common they are.

it seems to be a dependency in gstreamer too, which impacts significantly more builds than just vlc. I wanted to drop it from there too, but i do not have any numbers about how common mpeg 1/2 is (libmpeg2 does both MPEG-1 and MPEG-2). If you just cleaned up the naming of the lib, that is fine by me, didn't catch that 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
10.rebuild-darwin: 0 This PR does not cause any packages to rebuild on Darwin 10.rebuild-linux: 11-100
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants