The `tectonic` attribute is redefined to be a wrapper with a compatible
version of biber, provided by `biber-for-tectonic`.
The wrapper is partially recovered from a previous nixpkgs commit:
5aa8e9f0f9
Also:
- Remove unneeded makeBinaryWrapper input in `tectonic-unwrapped`.
- Add @bryango as a maintainer of both `tectonic-unwrapped` and
`tectonic`.
Co-authored-by: Doron Behar <doron.behar@gmail.com>
The `tectonic` package depends on a version of `biber` that is generally
different from the one in the nixpkgs `texlive` bundle. This package
provides an override of biber suitable for use with tectonic.
For biber<=2.17 on perl>=5.36.0 a patch is needed.
This is recovered from a previous nixpkgs commit:
c784cdbf6b
Co-authored-by: Mauricio Collares <mauricio@collares.org>
Co-authored-by: Doron Behar <doron.behar@gmail.com>
I really, really hope that nobody actually tries to parse Nix code and blindly relies on how it's structured though.
Co-authored-by: Sandro <sandro.jaeckel@gmail.com>
Since this is a kernel module, this needs to be added
to be added to linux-kernels.nix so that it can be
built for specific kernel versions
Appended the kernel make flags.
Set a minimum kernel version of 5.15 since it's failing to build on
older kernels.
This adds `pkgs.translatelocally-models.*` providing machine
translation models which can be used with `pkgs.translatelocally`.
`translatelocally-models.is-en-tiny` is marked as broken because its
archive is missing.
In a9bf124 (PR #273232) winePackages.staging was upgraded from 8.20 to
9.0-rc1 after which WinBox refuses to run
This change downgrades wine to the stable release (8.20)
We have packages that use `meta.platforms = []` as a sort of synonym
for `broken = true`. Without this commit, the attrnames for those
jobs will end up in the list of attrnames which are expected to
build, even though they are not expected to build.
This file walks the entire nixpkgs tree and emits a superset of all
release attrnames in only 44 seconds on a 3ghz CPU, using 5 gbytes
of memory. By comparison, on the same CPU the `nix-env` hack used
by ofborg on every PR submission requires 41 *minutes* and peaks at
60 gbytes, even with checkMeta turned off. Full details below.
This is:
- 46x faster (or 2.1% of the elapsed time)
- 12.5x less memory (or 8.0% of the peak memory usage)
In order to replace the ofborg check, this list of attrnames must
then be post-filtered for platform-relevance. However, crucially,
the post-filtering can be done *in parallel* on multiple cores by
splitting the attrname list in to chunks. Generating the list of
attrnames cannot be parallelized because it is a single-threaded
cppnix task.
This PR also adds `recurseForDerivations` where necessary within
nixpkgs in order to make this possible -- it screens out various
non-tryEval-catchable failures and infinite recursions. Before
undraftifying, I will add an invocation of this command to the CI
tests, to ensure that the work performed here is not immediately
undone. My next PR will then add an additional CI check confirming
that the emitted attrpaths are in fact a superset of the release
attrpaths calculated by the slow-memory-hog ofborg method.
I have manually confirmed that this is the case at the tip commit of
this PR, but we need CI to make sure this remains true until ofborg
switches to this more-efficient method of calculation; at that point
the superset-check can be dropped.
According to GNU Time,
Command being timed: "nix-instantiate --eval --strict --json pkgs/top-level/release-attrpaths-superset.nix -A names"
User time (seconds): 44.88
System time (seconds): 8.09
Percent of CPU this job got: 99%
Elapsed (wall clock) time (h:mm:ss or m:ss): 0:53.20
Average shared text size (kbytes): 0
Average unshared data size (kbytes): 0
Average stack size (kbytes): 0
Average total size (kbytes): 0
Maximum resident set size (kbytes): 4823028
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 0
Minor (reclaiming a frame) page faults: 3611240
Voluntary context switches: 113
Involuntary context switches: 949
Swaps: 0
File system inputs: 1480
File system outputs: 5944
Socket messages sent: 0
Socket messages received: 0
Signals delivered: 0
Page size (bytes): 4096
Exit status: 0
Compared to release-outpaths.nix:
Command being timed: "nix-env -qaP --no-name --out-path --arg checkMeta false --argstr path /git/work/pr/release-outpaths -f pkgs/top-level/release-outpaths.nix"
User time (seconds): 2120.67
System time (seconds): 337.80
Percent of CPU this job got: 98%
Elapsed (wall clock) time (h:mm:ss or m:ss): 41:37.91
Average shared text size (kbytes): 0
Average unshared data size (kbytes): 0
Average stack size (kbytes): 0
Average total size (kbytes): 0
Maximum resident set size (kbytes): 60171768
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 2
Minor (reclaiming a frame) page faults: 230608113
Voluntary context switches: 8876
Involuntary context switches: 22275
Swaps: 0
File system inputs: 62624
File system outputs: 72
Socket messages sent: 0
Socket messages received: 0
Signals delivered: 0
Page size (bytes): 4096
Exit status: 0
This adds aws-gate, an AWS SSM Session manager client and while I'm not
using the program myself, I reviewed the work and did some rudimentary
testing (eg. whether the session-manager-plugin works).
Additionally, it also adds the unix_ar Python package which was used for
the GNU/Linux bootstrap of the aws-gate package but has been patched out
during the review. We decided to keep the unix-ar package nonetheless
since the package seems to be rather low-maintenance and the package
author is willing to keep maintaining the package.
I'm merging this right now because the package is low-impact, meet the
packaging requirements and all builds pass (including the ones for
unix_ar).
reuse actually can also be used as a python library:
https://github.com/fsfe/reuse-tool/blob/main/src/reuse/__init__.py#L11-L12
This change allows composing a python with `reuse` in `PYTHONPATH`:
```
$(nix-build -E "with import ./. {}; (python3.withPackages (ps: [ps.reuse]))")/bin/python
Python 3.11.5 (main, Aug 24 2023, 12:23:19) [GCC 12.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import reuse
>>> reuse.__doc__
'reuse is a tool for compliance with the REUSE recommendations.\n\nAlthough the API is documented, it is **NOT** guaranteed stable between minor or\neven patch releases. The semantic versioning of this program pertains\nexclusively to the reuse CLI command. If you want to use reuse as a Python\nlibrary, you should pin reuse to an exact version.\n\nHaving given the above disclaimer, the API has been relatively stable\nnevertheless, and we (the maintainers) do make some efforts to not needlessly\nchange the public API.\n'
```
vs before:
```
❯ $(nix-build -E "with import ./. {}; (python3.withPackages (_: [ reuse]))")/bin/python
Python 3.11.5 (main, Aug 24 2023, 12:23:19) [GCC 12.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import reuse
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'reuse'
```
Closes#273406
There are no upstream maintainers anymore[1]. This tool is known to
wrongly truncate URLs (this broke invite links a few times for me).
Now it's officially dead and there are a few useful alternatives,
`urlscan` & `extract_url`.
[1] 4ad7d236c7