| Commit message (Collapse) | Author | Age |
|
|
|
| |
Includes https://github.com/NixOS/nixpkgs/pull/290743
|
|\ |
|
| |
| |
| |
| |
| |
| | |
Now that the previous commit removed all the .display()'s that were
previously necessary for PathBuf's, but now aren't for RelativePathBuf,
we can also inline the format! arguments
|
| |
| |
| |
| | |
Makes the code easier to understand and less error-prone
|
| | |
|
| | |
|
| |
| |
| |
| | |
Co-Authored-By: Philip Taron <philip.taron@gmail.com>
|
| | |
|
| |
| |
| |
| | |
Or rather, make it more consistent
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
An edge case was allowed when it shouldn't be: A package defined in
`pkgs/by-name` could be overridden in `all-packages.nix` if it was of
the form `callPackage (<expr>) { <non-empty> }`.
This is not right, it's required that the first argument be the path
matching the package to be overridden.
|
| |
| |
| |
| |
| | |
Detect inherit's better, such that a future commit can use this
information in an error message
|
| |
| |
| |
| |
| |
| |
| | |
Also:
- Add tests
- Treewide update
- Improve docs
|
|\ \
| | |
| | | |
nixos/systemd: merge unit options as lists when at least one value is a list
|
| | | |
|
|\ \ \
| | |/
| |/| |
|
| |/ |
|
|\ \
| |/
|/|
| |
| | |
emilylange/stdenv/patch-shebangs-trailing-newline
patch-shebangs: fix crash with shebang without trailing newline
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This fixes a bug where `patchShebangs` crashes when trying to patch
files that contain only a shebang (e.g. `#!/bin/bash`) (and nothing
else) and do not end with a newline.
Such file can be produced using `printf "#!/bin/bash" > example` or
`echo -n "#!/bin/bash" > example`.
I don't understand why one would want to create such files, as they do
literally nothing, but the chromium tarball we are using started
shipping some 🫠
Full reproducer:
```nix
with import <nixpkgs> { };
stdenv.mkDerivation {
dontUnpack = true;
name = "patch-shebangs-no-trailing-newline-reproducer";
postPatch = ''
printf "#!/bin/bash" > reproducer
chmod +x reproducer
patchShebangs reproducer
'';
}
```
```
❯ nix-build reproducer.nix
this derivation will be built:
/nix/store/vmbshdkdk4a0bayw3wi21wvxyhzpcsy2-patch-shebangs-no-trailing-newline-reproducer.drv
building '/nix/store/vmbshdkdk4a0bayw3wi21wvxyhzpcsy2-patch-shebangs-no-trailing-newline-reproducer.drv'...
patching sources
patching script interpreter paths in reproducer
/nix/store/vr6wwdxkmyy44sg0gwxi10b8fc5zhwz0-stdenv-linux/setup: line 144: pop_var_context: head of shell_variables not a function context
error: builder for '/nix/store/vmbshdkdk4a0bayw3wi21wvxyhzpcsy2-patch-shebangs-no-trailing-newline-reproducer.drv' failed with exit code 1;
last 3 log lines:
> patching sources
> patching script interpreter paths in reproducer
> /nix/store/vr6wwdxkmyy44sg0gwxi10b8fc5zhwz0-stdenv-linux/setup: line 144: pop_var_context: head of shell_variables not a function context
For full logs, run 'nix log /nix/store/vmbshdkdk4a0bayw3wi21wvxyhzpcsy2-patch-shebangs-no-trailing-newline-reproducer.drv'.
```
|
| |
| |
| |
| | |
Includes https://github.com/NixOS/nixpkgs/pull/287083
|
| |
| |
| |
| | |
Includes https://github.com/NixOS/nixpkgs/pull/285089
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This adds a test to check that a commit like 0a3dab4af34e4d086931d82827bfc8760c3e3150 would fail CI
After doing some improvements to the `pkgs/by-name` check I discovered
that sbcl shouldn't have been allowed in `pkgs/by-name` after all as is.
Specifically, the requirement is that if `pkgs/by-name/sb/sbcl` exists,
the definition of the `sbcl` attribute must look like
sbcl = callPackage ../by-name/sb/sbcl/package.nix { ... };
However it currently is an alias like
sbcl = sbcl_2_4_1;
This wasn't detected before because `sbcl_2_4_1` was semantically
defined using `callPackage`:
sbcl_2_4_1 = wrapLisp {
pkg = callPackage ../development/compilers/sbcl { version = "2.4.1"; };
faslExt = "fasl";
flags = [ "--dynamic-space-size" "3000" ];
};
However this doesn't syntactically match what is required.
In https://github.com/NixOS/nixpkgs/pull/285089 I introduced syntactic
checks for exactly this, but they were only used for packages not
already in `pkgs/by-name`.
Only now that I'm doing the refactoring to also use this check for
`pkgs/by-name` packages this problem is noticed.
While introducing this new check is technically an increase in
strictness, and therefore would justify adding a new ratchet, I consider
this case to be rare enough that we don't need to do that.
This commit introduces a test to prevent such regressions in the
future
Moving sbcl back out of `pkgs/by-name` will be done when the pinned CI is updated
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- Detect manual use of _internalCallByNamePackageFile for packages in
`pkgs/by-name` (can't be done for others though)
- Separate error message for when attribute locations can't be
determined for `pkgs/by-name` attributes
- Much better structure of the code in eval.rs, representing more
closely what is being checked
- Much more extensive comments
|
| |
| |
| |
| |
| | |
For some previously untested cases. In a future commit, those tests will
also be adjusted slightly
|
|\ \
| | |
| | | |
tests.nixpkgs-check-by-name: Syntactic `callPackage` detection and allow new package variants
|
| | |
| | |
| | |
| | | |
There was too much indentation!
|
| | |
| | |
| | |
| | |
| | |
| | | |
https://github.com/NixOS/nixpkgs/pull/285089#pullrequestreview-1861099233
Many thanks, Philip Taron!
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
With `cargo fmt`
Explicitly didn't do that for previous commits in order to keep the diff
more easily reviewable
|
| | |
| | |
| | |
| | |
| | | |
Makes the reference check use the nixFileCache instead of separately
parsing and resolving paths
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This makes the callPackage detection stronger by syntactically detecting
whether an attribute is using callPackage
See the added test case for why this is needed.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
- `fromlinecolumn` is added to be almost the reverse of `line`.
This is needed in the future to get from `builtins.unsafeGetAttrPos`
locations to the index for rnix
- Previously the semantics for newline indices were not really defined,
now they are, and make more sense.
- Now there's a unit test for these functions
|
|\ \ \
| | | |
| | | | |
tests.buildFHSEnv.libtinfo: init
|
| | | | |
|
| | | | |
|
| | | |
| | | |
| | | |
| | | | |
Do so in a generalized manner.
|
| | | | |
|
|\ \ \ \
| | | | |
| | | | | |
treewide: drop LLVM8
|
| | |/ /
| |/| | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Original commit from https://github.com/NixOS/nixpkgs/pull/282226,
message:
Running CI locally is broken becauses the `-I` argument:
- Clobbers $NIX_PATH
- Is wrong for two reasons:
- Has too many `..` elements, relative to the script's location
- Isn't relative to the script's location (as with *.nix files),
since shell scripts and POSIX in general interpret paths
relative to the current working directory, not the canonical
path of argv[0]
- Is inconsistent, since this script has symlinks pointing at it
from different depths in the repository
There is no way to set this flag statically in a way that will work
everywhere. The caller needs to use $NIX_PATH, or the script needs
to take the `-I` value as an argument.
This commit deletes the static `-I` flag.
|
| | | |
| | | |
| | | |
| | | | |
Includes https://github.com/NixOS/nixpkgs/pull/283017
|
| | | |
| | | |
| | | |
| | | | |
Co-authored-by: apfelkuchen06 <apfelkuchen@hrnz.li>
|