The index hash length problem only happens with fetchpatch2, not
fetchpatch. Don't cargo cult fixing this when it's not a problem.
This reverts most of commit 6388411ec2,
except:
- Conflicts:
- pkgs/development/ocaml-modules/mysql/default.nix was deleted
- fetchpatch2 changes were not reverted:
- pkgs/by-name/gi/gixy/package.nix
- pkgs/development/python-modules/mohawk/default.nix
- pkgs/development/python-modules/pyexcel-ods/default.nix
GitHub compare endpoints (/compare/A...B.patch) are not byte-stable:
commit message headers, abbreviated SHA length and index lines drift
over time, causing FOD hash mismatches on Hydra without source changes
(observed for gixy on staging).
Switch all such URLs to .diff?full_index=1, which omits commit headers
and uses full 40-char blob SHAs in index lines. Combined with fetchpatch
normalization this yields stable hashes.
For py-slvs also expand the abbreviated commit SHAs in the URL to full
40-char SHAs.
The cl-ana_dot_makeres package was removed from imported.nix in
1314186018 (lispPackages: update from quickisp-2026-01-01) on staging.
The override added in bdd4fb5000 on master now references a
nonexistent package, causing an eval failure on staging-next.
In cl-ana.makeres, the fixed-mem-cache function uses
(setf (cdr (last cache)) (list id)) where cache can be nil (initial
state or after popping all elements). (last nil) returns nil, making
(setf (cdr nil) ...) undefined. SBCL 2.6.0's stricter type inference
catches this as a type conflict, causing COMPILE-FILE-ERROR.
Replace with nconc which handles the nil case correctly.
The antik source archive contains a documentation.pdf symlink pointing
to documentation/build/latex/Antik.pdf which doesn't exist, causing
the noBrokenSymlinks check to fail. Remove it in all five packages
built from this archive: antik, antik-base, foreign-array,
physical-dimension, and science-data.
SBCL commit 00eabf5 changed the readtable's base-char-macro-array to
store 0 instead of NIL for non-macro characters. Since (if 0 ...) is
truthy in Common Lisp, the named-readtables readtable iterator
incorrectly yields all characters, causing assertion failures in
check-reader-macro-conflict when packages like cl-interpol,
pythonic-string-reader, and antik-base merge readtables.
Apply upstream fix from melisgl/named-readtables@6eea566.
This completes https://github.com/NixOS/nixpkgs/issues/425583.
Rather than putting `nixfmt` everywhere, I opted to teach people to use
`treefmt` instead. This is more correct, as we have formatting rules for
non-nix files, and also may invoke `nixfmt` with non-default options.
This commit was created by a combination of scripts and tools:
- an ast-grep script to prefix things in meta with `lib.`,
- a modified nixf-diagnose / nixf combination to remove unused `with
lib;`, and
- regular nixfmt.
Co-authored-by: Wolfgang Walther <walther@technowledgy.de>
quicklisp does not support TLS (https://github.com/quicklisp/quicklisp-client/issues/167)
and therefore lists release with http in release.txt.
Since nixpkgs uses `fetchzip` we can change the source to be fetched
over HTTPS.
Methodology:
- `sed` to find and replace in pkgs/*
- exclude pkgs/top-level
- nixpkgs-review on x86_64-linux and aarch64-linux
- revert everything that doesn't build
- revert everything that doesn't launch [x86_64-linux]
- check upstream source whether the change makes sense [free software only]
This reverts commit 65a333600d.
This wasn't tested for correctness with something like fodwatch [0],
and should not have been (self-)merged so quickly, especially without
further review.
It also resulted in the breakage of at least one package [1] (and that's
the one we know of and was caught).
A few packages that were updated in between this commit and this revert
were not reverted back to using `rev`, but other than that, this is a
1:1 revert.
[0]: https://codeberg.org/raphaelr/fodwatch
[1]: https://github.com/NixOS/nixpkgs/pull/396904 / 758551e458
Format all Nix files using the officially approved formatter,
making the CI check introduced in the previous commit succeed:
nix-build ci -A fmt.check
This is the next step of the of the [implementation](https://github.com/NixOS/nixfmt/issues/153)
of the accepted [RFC 166](https://github.com/NixOS/rfcs/pull/166).
This commit will lead to merge conflicts for a number of PRs,
up to an estimated ~1100 (~33%) among the PRs with activity in the past 2
months, but that should be lower than what it would be without the previous
[partial treewide format](https://github.com/NixOS/nixpkgs/pull/322537).
Merge conflicts caused by this commit can now automatically be resolved while rebasing using the
[auto-rebase script](8616af08d9/maintainers/scripts/auto-rebase).
If you run into any problems regarding any of this, please reach out to the
[formatting team](https://nixos.org/community/teams/formatting/) by
pinging @NixOS/nix-formatting.
Moved outside lisp-modules to a separate package, so as to re-use its
Makefile-based build-system and make a step in the direction of leaving just
development libraries in lisp-modules.
After final improvements to the official formatter implementation,
this commit now performs the first treewide reformat of Nix files using it.
This is part of the implementation of RFC 166.
Only "inactive" files are reformatted, meaning only files that
aren't being touched by any PR with activity in the past 2 months.
This is to avoid conflicts for PRs that might soon be merged.
Later we can do a full treewide reformat to get the rest,
which should not cause as many conflicts.
A CI check has already been running for some time to ensure that new and
already-formatted files are formatted, so the files being reformatted here
should also stay formatted.
This commit was automatically created and can be verified using
nix-build a08b3a4d19.tar.gz \
--argstr baseRev b32a094368
result/bin/apply-formatting $NIXPKGS_PATH