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

[pull] master from NixOS:master #52

Merged
merged 221 commits into from
Oct 21, 2023
Merged

[pull] master from NixOS:master #52

merged 221 commits into from
Oct 21, 2023

Conversation

pull[bot]
Copy link

@pull pull bot commented Oct 21, 2023

See Commits and Changes for more details.


Created by pull[bot]

Can you help keep this open source service alive? 💖 Please sponsor : )

tsowell and others added 30 commits September 5, 2023 18:11
When listening on unix sockets, it doesn't make sense to specify a port
for nginx's listen directive.

Since nginx defaults to port 80 when the port isn't specified (but the
address is), we can change the default for the option to null as well
without changing any behaviour.
Chromium has blocklists that workaround various GPU driver bugs, either
by forcing software rendering [1] or by disabling use of certain GPU
features [2].

These blocklists can only be applied successfully if the GPU vendor and
device is detected correctly. One of the methods used for GPU detection
is to load libpci.so via dlopen() at runtime to read the PCI vendor and
device ID.

The current derivation already contains a sed command to rewrite the
dlopen() to the absolute path of libpci.so in the Nix store, namely

      sed -i -e '/libpci_loader.*Load/s!"\(libpci\.so\)!"${pciutils}/lib/\1!' \
        gpu/config/gpu_info_collector_linux.cc

However, in Chromium 59 (6 years ago), this code was moved into the
ANGLE library used by Chromium [3]. This sed command no longer works.
There is similar code in ANGLE now [4] that must be similarly patched to
ensure the GPU vendor and device is always detected correctly.

Without libpci some GPUs are not detected correctly. For example, in a
VMWare virtual machine opening chrome://gpu in the browser shows:

  VENDOR= 0x0000 [Google Inc. (VMware, Inc.)], DEVICE=0x0000 [ANGLE
   (VMware Inc., SVGA3D; build: RELEASE;  LLVM;, OpenGL 4.1 (Core Profile)
    Mesa 23.0.3)], DRIVER_VENDOR=Mesa, DRIVER_VERSION=23.0.3 *ACTIVE*

Note the VENDOR=0x0000 and DEVICE=0x0000. Adding libpci.so to the
library path fixes this:

  VENDOR= 0x15ad [Google Inc. (VMware, Inc.)], DEVICE=0x0405 [ANGLE
   (VMware Inc., SVGA3D; build: RELEASE;  LLVM;, OpenGL 4.1 (Core Profile)
    Mesa 23.0.3)], DRIVER_VENDOR=Mesa, DRIVER_VERSION=23.0.3 *ACTIVE*

Note the VENDOR=0x15ad and DEVICE=0x0405. Also now the blocklist entries
are applied correctly, fixing some graphical issues.

Fix this by adding pciutils to the rpath set with patchelf. This avoids
having to patch lines in the source code that might get moved around.

[1]: https://chromium.googlesource.com/chromium/src/+/e52f33f30b91b4ddfad649acddc39ab570473b86/gpu/config/software_rendering_list.json
[2]: https://chromium.googlesource.com/chromium/src/+/e52f33f30b91b4ddfad649acddc39ab570473b86/gpu/config/gpu_driver_bug_list.json
[3]: chromium/chromium@873b27d
[4]: https://github.com/google/angle/blob/05f45adc147393562b518ca1f82a3ccba7ee40f7/src/gpu_info_util/SystemInfo_libpci.cpp#L41
NickCao and others added 27 commits October 21, 2023 10:59
python311Packages.aioairzone-cloud: 0.2.4 -> 0.2.7
luaPackages/vimPlugins.ferris-nvim: init at 2.0.0
nixos/nginx: Allow empty port for listen directive (for unix socket)
trezor-suite: 23.4.2 -> 23.10.1
home-assistant: 2023.10.3 -> 2023.10.4
"or later" is mentioned in a few files, but not most of them, and
there's no project-wide explanation of the license.
…s.trezor

python311Packages.trezor: 0.13.7 -> 0.13.8
….0.2.2

kodi.packages.youtube: 7.0.1 -> 7.0.2.2
…dd-pks-maintainer

kodi.packages.netflix: add pks as maintainer
…susr-dependency

systemd 254: ZFS /usr fix with systemd-stage-1
For the image that's actually a store image only.
Helps with visibility. The name "nixos-disk-image" has no special
significance, by grepping nixpkgs.
ratelimiter has been removed, since it is unmaintained and broken
Signed-off-by: Christina Sørensen <[email protected]>
This adds two symlinks to rclone: rclonefs and mount.rclone

fixes #258478
…mage

nixos/qemu-vm: Rename nixos-disk-image -> nix-store-image
@pull pull bot added the ⤵️ pull label Oct 21, 2023
@pull pull bot merged commit 0987120 into khaneliman:master Oct 21, 2023
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.