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

wayland-scanner: split from wayland #214906

Draft
wants to merge 57 commits into
base: staging
Choose a base branch
from

Conversation

alyssais
Copy link
Member

@alyssais alyssais commented Feb 6, 2023

Description of changes

We've used a wayland-scanner = wayland.bin alias for ages, to make packages clearer and allow them to be independently overridden. Going the whole way into splitting them into separate packages is useful because it means we can have different meta.platforms attributes for libwayland and wayland-scanner.

There is no duplication in outputs between the two packages — they don't install any files in common.

Draft because I'm going to need to test the downstream packages and make sure none were relying on pulling wayland-scanner from the wayland attribute.

Things done
  • Built on platform(s)
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
  • 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/)
  • 23.05 Release Notes (or backporting 22.11 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
    • (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes
  • Fits CONTRIBUTING.md.

@wegank
Copy link
Member

wegank commented Feb 6, 2023

The remaining occurrences of wayland.withLibraries are in

  • pkgs/development/libraries/wayland/protocols.nix
  • pkgs/tools/graphics/mesa-demos/default.nix (well...)

and also wayland.bin in

  • pkgs/applications/networking/browsers/chromium/common.nix

@alyssais
Copy link
Member Author

alyssais commented Feb 6, 2023

Things that still need to be checked:

  • nix-review to catch packages that relied on wayland in buildInputs and strictDeps = false to get wayland-scanner
  • test cross compilation of all packages that directly depend on wayland-scanner (they might need pkg-config in depsBuildBuild now)

Copy link
Member

@SuperSandro2000 SuperSandro2000 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for cleaning this up

Otherwise, wayland-scanner would be picked up from the wayland in
buildInputs, which isn't cross-friendly and will stop working when we
split wayland-scanner into a separate package.
Otherwise, wayland-scanner would be picked up from the wayland in
buildInputs, which isn't cross-friendly and will stop working when we
split wayland-scanner into a separate package.
Otherwise, wayland-scanner would be picked up from the wayland in
buildInputs, which isn't cross-friendly and will stop working when we
split wayland-scanner into a separate package.
Otherwise, wayland-scanner would be picked up from the wayland in
buildInputs, which isn't cross-friendly and will stop working when we
split wayland-scanner into a separate package.
Otherwise, wayland-scanner would be picked up from the wayland in
buildInputs, which isn't cross-friendly and will stop working when we
split wayland-scanner into a separate package.
Otherwise, wayland-scanner would be picked up from the wayland in
buildInputs, which isn't cross-friendly and will stop working when we
split wayland-scanner into a separate package.
Otherwise, wayland-scanner would be picked up from the wayland in
buildInputs, which isn't cross-friendly and will stop working when we
split wayland-scanner into a separate package.
Currently wayland-scanner is defined to be wayland.bin, but we want to
split wayland-scanner into a separate package.
Otherwise, wayland-scanner would be picked up from the wayland in
buildInputs, which isn't cross-friendly and will stop working when we
split wayland-scanner into a separate package.
Otherwise, wayland-scanner would be picked up from the wayland in
buildInputs, which isn't cross-friendly and will stop working when we
split wayland-scanner into a separate package.
Currently wayland-scanner is defined to be wayland.bin, but we want to
split wayland-scanner into a separate package.
Otherwise, wayland-scanner would be picked up from the wayland in
buildInputs, which isn't cross-friendly and will stop working when we
split wayland-scanner into a separate package.
Otherwise, wayland-scanner would be picked up from the wayland in
buildInputs, which isn't cross-friendly and will stop working when we
split wayland-scanner into a separate package.
Currently wayland-scanner is defined to be wayland.bin, but we want to
split wayland-scanner into a separate package.
Otherwise, wayland-scanner would be picked up from the wayland in
buildInputs, which isn't cross-friendly and will stop working when we
split wayland-scanner into a separate package.
Otherwise, wayland-scanner would be picked up from the wayland in
buildInputs, which isn't cross-friendly and will stop working when we
split wayland-scanner into a separate package.
Otherwise, wayland-scanner would be picked up from the wayland in
buildInputs, which isn't cross-friendly and will stop working when we
split wayland-scanner into a separate package.
Currently wayland-scanner is defined to be wayland.bin, but we want to
split wayland-scanner into a separate package.
Currently wayland-scanner is defined to be wayland.bin, but we want to
split wayland-scanner into a separate package.
Currently wayland-scanner is defined to be wayland.bin, but we want to
split wayland-scanner into a separate package.
Otherwise, wayland-scanner would be picked up from the wayland in
buildInputs, which isn't cross-friendly and will stop working when we
split wayland-scanner into a separate package.
This isn't important yet, but it's about to be, when we split
wayland-scanner into its own package.
substituteAll is unused.

passthru.version was added in e574da8 ("wayland: Always build
documentation") with no specific explanation or immediate use.  I
assume it's obsolete, since wayland.version does the same thing with
or without the passthru attribute, and I don't see anything in Nixpkgs
that looks like it's specifically accessing Wayland's
passthru.version.
We've used a wayland-scanner = wayland.bin alias for ages, to make
packages clearer and allow them to be independently overridden.
Going the whole way into splitting them into separate packages is
useful because it means we can have different meta.platforms
attributes for libwayland and wayland-scanner.

There is no duplication in outputs between the two packages — they
don't install any files in common.

Since we're no longer pulling just one output into nativeBuildInputs
of packages using wayland-scanner, we can use upstream's
wayland-scanner.pc, which gets installed into the dev output, rather
than providing our own.
@wineee wineee mentioned this pull request Aug 22, 2023
12 tasks
@wegank wegank added 2.status: stale https://github.com/NixOS/nixpkgs/blob/master/.github/STALE-BOT.md 2.status: merge conflict labels Mar 19, 2024
@stale stale bot removed the 2.status: stale https://github.com/NixOS/nixpkgs/blob/master/.github/STALE-BOT.md label Mar 20, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
2.status: merge conflict 6.topic: cross-compilation Building packages on a different sort platform than than they will be run on 6.topic: Enlightenment DE The Enlightenment Desktop Environment 6.topic: GNOME GNOME desktop environment and its underlying platform 6.topic: python 6.topic: qt/kde 8.has: package (new) 10.rebuild-darwin: 101-500 10.rebuild-linux: 501+ 10.rebuild-linux: 5001+
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants