Age | Commit message (Collapse) | Author |
|
The manpage for `getgrouplist` says:
> If the number of groups of which user is a member is less than or
> equal to *ngroups, then the value *ngroups is returned.
>
> If the user is a member of more than *ngroups groups, then
> getgrouplist() returns -1. In this case, the value returned in
> *ngroups can be used to resize the buffer passed to a further
> call getgrouplist().
In our original code, however, we allocated a list of size `10` and, if
`getgrouplist` returned `-1` threw an exception. In practice, this
caused the code to fail for any user belonging to more than 10 groups.
While unusual for single-user systems, large companies commonly have a
huge number of POSIX groups users belong to, causing this issue to crop
up and make multi-user Nix unusable in such settings.
The fix is relatively simple, when `getgrouplist` fails, it stores the
real number of GIDs in `ngroups`, so we must resize our list and retry.
Only then, if it errors once more, we can raise an exception.
This should be backported to, at least, 2.9.x.
|
|
Remove ${boost}/lib from the RPATH
|
|
|
|
flake.nix: Convert to new naming convention
|
|
Fix missing ` in key manual
|
|
|
|
Add `-e`/`--exclude` flag to `nix search`
|
|
|
|
|
|
|
|
If a package's attribute path, description or name contains matches for any of the
regexes specified via `-e` or `--exclude` that package is excluded from
the final output.
|
|
flake: update to 22.05
|
|
https://github.com/NixOS/nix/issues/5532
|
|
|
|
Needed because evaluation was broken on x86_64-darwin.
|
|
Explain exactly what nix-upgrade nix does
|
|
|
|
darwin-install: work around existing vim swap files
|
|
schema.sql: add comment about hash being in base16
|
|
Random fixes/improvements from the lazy-trees branch
|
|
|
|
|
|
|
|
|
|
|
|
|
|
enable LTO in optimized builds
|
|
|
|
User on Matrix reported install problems which presented as
"vifs:editing error" which we traced back to vim griping about an
existing swap file. When opened interactively, it did this:
E325: ATTENTION
Found a swap file by the name "/etc/.fstab.swp"
owned by: root dated: Sön Apr 24 16:54:10 2022
file name: /private/etc/fstab
modified: YES
user name: root host name: MBP.local
process ID: 1698
While opening file "/etc/fstab"
dated: Sön Apr 24 16:56:27 2022
NEWER than swap file!
...
|
|
|
|
|
|
The static build works now :)
|
|
Fix a segfault in the git fetcher
|
|
|
|
flake: use github: reference to nixpkgs
|
|
|
|
|
|
Fix noexcept violations
|
|
The call to perl.withPackages in nix-serve expects this.
|
|
Respect the outputSpecified attribute
|
|
'nix-serve' in nixpkgs expects the nix package to set this.
|
|
|
|
This violates the noexcept specification.
Fixes #6445.
|
|
E.g. 'nix build nixpkgs#libxml2.dev' will build the 'dev' output.
|
|
The git fetcher code used to dereference the (potentially empty) `ref`
input attribute. This was magically working, probably because the
compiler somehow outsmarted us, but is now blowing up with newer nixpkgs
versions.
Fix that by not trying to access this field while we don't know for sure
that it has been defined.
Fix #6554
|
|
|
|
|
|
src/libutil/json.cc: add missing <cstdint> include for gcc-13
|
|
Without the change llvm build fails on this week's gcc-13 snapshot as:
src/libutil/json.cc: In function 'void nix::toJSON(std::ostream&, const char*, const char*)':
src/libutil/json.cc:33:22: error: 'uint16_t' was not declared in this scope
33 | put(hex[(uint16_t(*i) >> 12) & 0xf]);
| ^~~~~~~~
src/libutil/json.cc:5:1: note: 'uint16_t' is defined in header '<cstdint>'; did you forget to '#include <cstdint>'?
4 | #include <cstring>
+++ |+#include <cstdint>
5 |
|
|
There are still many links to the old manual on the web and
having them end up on the Introduction page is a bad user experience.
|