Skip to content

staging-next 2023-09-17#255658

Merged
vcunat merged 232 commits intomasterfrom
staging-next
Sep 27, 2023
Merged

staging-next 2023-09-17#255658
vcunat merged 232 commits intomasterfrom
staging-next

Conversation

trofi and others added 30 commits July 28, 2023 22:18
The symbol alias macros now support macOS, so the patch can be dropped.
The current Git revision has had a lot of work done to it to
better support macOS and lets us drop the huge patch we were using
before. More macOS fixes are apparently on the way, so hopefully the
two that are still required can be dropped on the next release.
native build produces binaries with `#!${bash}/bin/sh` as shebang.
seems to be a consequence of nixpkgs using bash in the builder, and
`patchShebangs` sees that. OTOH cross builds would get `#!/bin/sh` because
the builder's bash isn't eligible as a runtime shebang. i can't say
which is most "correct" in the context of this tool, but shipping bash
in `buildInputs` where `patchShebangs` can see it at least gets us *consistency*.
without this applications won't locate gtk3's schemas even if they're on
XDG_DATA_DIRS. this patch solves runtime errors of the form:
```
Settings schema 'org.gtk.Settings.FileChooser' is not installed
```
protobuf>3.20 allows to use the system GTest. Therefore, we can safely
remove the logic to use third_party/gmock from `generic-v3-cmake.nix`
because it's used only for protobuf>=3.21.
TIme to time I bump into pathological behaviour of `bash` memory
allocator. Today's example:

    $ time { ls /nix/store/ > /dev/null; }
    real    0m0,965s user    0m0,876s sys     0m0,087s
    $ time { echo /nix/store/* > /dev/null; }
    real    2m18,287s user    2m17,946s sys     0m0,125s
    $ time { echo /nix/store/* > /dev/null; }
    real    0m1,764s user    0m1,712s sys     0m0,048s

Note how initial `echo` takes alsmot 2 minutes to finish.

Let's rely  on system's allocator instead.

After the change initial run is fast again:

    $ time { echo /nix/store/* > /dev/null; }
    real    0m1,328s user    0m1,264s sys     0m0,063s
Build needs to run wayland-scanner, so needs a native wayland.
* Apply the patch used for gperf 3.1 in 58f559c; and
* Include `string.h` unconditionally in `lib/getopt.c`.
Without the change `which` fails to find programs on filesystems with
64-bit inodes when `which` itself is 32-bit.

In my case it is `btrfs` and `i686-linux`.

`bison` is in the PATH:

    $ dev>bison
    bison: missing operand
    Try 'bison --help' for more information.

But `which` fails to find it:

    $ which bison
    which: no bison in ...

`bison` is a file with an inode number that overflows 2^31 limit:

    $ stat ~/bin/bison
      File: ~/bin/bison
      Size: 674260          Blocks: 1320       IO Block: 4096   regular file
    Device: 0,29    Inode: 4384368825  Links: 2
    Access: (0555/-r-xr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
    Access: 2023-09-05 04:48:43.000000000 +0100
    Modify: 1970-01-01 01:00:01.000000000 +0100
    Change: 2023-09-05 04:48:43.821566578 +0100
     Birth: 2023-09-05 04:48:43.772565733 +0100

The change fixes `which` run.
ffmpeg_4 crashes in `ff_seek_frame_binary` due to UB and optimizations
clang 16 performs. This is fixed upstream in ffmpeg_5, but the patch can
be made to apply to ffmpeg_4.
Remove usage of the register storage class, which is not allowed in
C++17 (the default for clang 16).
@miallo miallo mentioned this pull request Sep 26, 2023
12 tasks
@vcunat vcunat merged commit 8a86b98 into master Sep 27, 2023
@vcunat
Copy link
Member Author

vcunat commented Sep 27, 2023

I believe we're good enough to merge now.

There were delays mainly due to hydra having less aarch64-linux build power than usual.

@vcunat vcunat mentioned this pull request Sep 28, 2023
2 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

1.severity: security Issues which raise a security issue, or PRs that fix one 6.topic: nixos Issues or PRs affecting NixOS modules, or package usability issues specific to NixOS 6.topic: nodejs Node.js is a free, open-source, cross-platform JavaScript runtime environment 6.topic: python Python is a high-level, general-purpose programming language. 6.topic: qt/kde Object-oriented framework for GUI creation 6.topic: systemd Software suite that provides an array of system components for Linux operating systems. 6.topic: vim Advanced text editor 8.has: changelog This PR adds or changes release notes 8.has: clean-up This PR removes packages or removes other cruft 8.has: documentation This PR adds or changes documentation 8.has: module (update) This PR changes an existing module in `nixos/` 10.rebuild-darwin: 501+ This PR causes many rebuilds on Darwin and should normally target the staging branches. 10.rebuild-darwin: 5001+ This PR causes many rebuilds on Darwin and must target the staging branches. 10.rebuild-darwin-stdenv This PR causes stdenv to rebuild on Darwin and must target a staging branch. 10.rebuild-linux: 501+ This PR causes many rebuilds on Linux and should normally target the staging branches. 10.rebuild-linux: 5001+ This PR causes many rebuilds on Linux and must target the staging branches. 10.rebuild-linux-stdenv This PR causes stdenv to rebuild on Linux and must target a staging branch.

Projects

None yet

Development

Successfully merging this pull request may close these issues.