Merge commit 4b5b5d19d2 into haskell-updates
This commit is contained in:
@@ -91,8 +91,10 @@ jobs:
|
||||
if (( "${#unformattedFiles[@]}" > 0 )); then
|
||||
echo "Some new/changed Nix files are not properly formatted"
|
||||
echo "Please format them using the Nixpkgs-specific \`nixfmt\` by going to the Nixpkgs root directory, running \`nix-shell\`, then:"
|
||||
echo
|
||||
echo "nixfmt ${unformattedFiles[*]@Q}"
|
||||
echo "Make sure your branch is up to date with master, rebase if not."
|
||||
echo
|
||||
echo "Make sure your branch is up to date with master; rebase if not."
|
||||
echo "If you're having trouble, please ping @NixOS/nix-formatting"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
@@ -60,10 +60,9 @@
|
||||
/pkgs/build-support/setup-hooks @Ericson2314
|
||||
/pkgs/build-support/setup-hooks/auto-patchelf.sh @layus
|
||||
/pkgs/by-name/au/auto-patchelf @layus
|
||||
/pkgs/pkgs-lib @infinisil
|
||||
|
||||
## Format generators/serializers
|
||||
/pkgs/pkgs-lib/formats/libconfig @h7x4
|
||||
/pkgs/pkgs-lib/formats/hocon @h7x4
|
||||
/pkgs/pkgs-lib @Stunkymonkey @h7x4
|
||||
|
||||
# Nixpkgs build-support
|
||||
/pkgs/build-support/writers @lassulus @Profpatsch
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
# OpenXR in NixOS
|
||||
|
||||
OpenXR is a standard for eXtended Reality (XR) applications and drivers (providers).
|
||||
|
||||
OpenXR runtime providers must ensure that the library path of the runtime's shared library can be loaded by Nix applications. If your OpenXR runtime provider runs in an FHSEnv, this means you may have to use `auto-patchelf` to link dependencies to the Nix store.
|
||||
@@ -18,6 +18,9 @@
|
||||
- [`lib.types.enum`](https://nixos.org/manual/nixos/unstable/#sec-option-types-basic): Previously the `functor.payload` was the list of enum values directly. Now it is an attribute set containing the values in the `values` attribute.
|
||||
- [`lib.types.separatedString`](https://nixos.org/manual/nixos/unstable/#sec-option-types-string): Previously the `functor.payload` was the seperator directly. Now it is an attribute set containing the seperator in the `sep` attribute.
|
||||
|
||||
- The `tinycc` package now has the `dev`, `doc` and `lib` outputs, thus,
|
||||
`tinycc.out` may now only provide the tcc and cross compilers binaries.
|
||||
|
||||
- The `virtualisation.hypervGuest.videoMode` option has been removed. Standard tooling can now be used to configure display modes for Hyper-V VMs.
|
||||
|
||||
### Deprecations {#sec-nixpkgs-release-25.05-lib-deprecations}
|
||||
|
||||
@@ -135,7 +135,7 @@ Many packages assume that an unprefixed binutils (`cc`/`ar`/`ld` etc.) is availa
|
||||
```
|
||||
|
||||
#### How do I avoid compiling a GCC cross-compiler from source? {#cross-qa-avoid-compiling-gcc-cross-compiler}
|
||||
On less powerful machines, it can be inconvenient to cross-compile a package only to find out that GCC has to be compiled from source, which could take up to several hours. Nixpkgs maintains a limited [cross-related jobset on Hydra](https://hydra.nixos.org/jobset/nixpkgs/cross-trunk), which tests cross-compilation to various platforms from build platforms "x86\_64-darwin", "x86\_64-linux", and "aarch64-linux". See `pkgs/top-level/release-cross.nix` for the full list of target platforms and packages. For instance, the following invocation fetches the pre-built cross-compiled GCC for `armv6l-unknown-linux-gnueabihf` and builds GNU Hello from source.
|
||||
On less powerful machines, it can be inconvenient to cross-compile a package only to find out that GCC has to be compiled from source, which could take up to several hours. Nixpkgs maintains a limited [cross-related jobset on Hydra](https://hydra.nixos.org/jobset/nixpkgs/cross-trunk), which tests cross-compilation to various platforms from build platforms "x86\_64-linux", "aarch64-linux", and "aarch64-darwin". See `pkgs/top-level/release-cross.nix` for the full list of target platforms and packages. For instance, the following invocation fetches the pre-built cross-compiled GCC for `armv6l-unknown-linux-gnueabihf` and builds GNU Hello from source.
|
||||
|
||||
```ShellSession
|
||||
$ nix-build '<nixpkgs>' -A pkgsCross.raspberryPi.hello
|
||||
|
||||
@@ -75,17 +75,9 @@ stdenv.mkDerivation {
|
||||
}
|
||||
```
|
||||
|
||||
where the builder can do anything it wants, but typically starts with
|
||||
where `stdenv` sets up the environment automatically (e.g. by resetting `PATH` and populating it from build inputs). If you want, you can use `stdenv`’s generic builder:
|
||||
|
||||
```bash
|
||||
source $stdenv/setup
|
||||
```
|
||||
|
||||
to let `stdenv` set up the environment (e.g. by resetting `PATH` and populating it from build inputs). If you want, you can still use `stdenv`’s generic builder:
|
||||
|
||||
```bash
|
||||
source $stdenv/setup
|
||||
|
||||
buildPhase() {
|
||||
echo "... this is my custom build phase ..."
|
||||
gcc foo.c -o foo
|
||||
@@ -408,7 +400,7 @@ The propagated equivalent of `depsBuildBuild`. This perhaps never ought to be us
|
||||
|
||||
##### `propagatedNativeBuildInputs` {#var-stdenv-propagatedNativeBuildInputs}
|
||||
|
||||
The propagated equivalent of `nativeBuildInputs`. This would be called `depsBuildHostPropagated` but for historical continuity. For example, if package `Y` has `propagatedNativeBuildInputs = [X]`, and package `Z` has `buildInputs = [Y]`, then package `Z` will be built as if it included package `X` in its `nativeBuildInputs`. If instead, package `Z` has `nativeBuildInputs = [Y]`, then `Z` will be built as if it included `X` in the `depsBuildBuild` of package `Z`, because of the sum of the two `-1` host offsets.
|
||||
The propagated equivalent of `nativeBuildInputs`. This would be called `depsBuildHostPropagated` but for historical continuity. For example, if package `Y` has `propagatedNativeBuildInputs = [X]`, and package `Z` has `buildInputs = [Y]`, then package `Z` will be built as if it included package `X` in its `nativeBuildInputs`. Note that if instead, package `Z` has `nativeBuildInputs = [Y]`, then `X` will not be included at all.
|
||||
|
||||
##### `depsBuildTargetPropagated` {#var-stdenv-depsBuildTargetPropagated}
|
||||
|
||||
@@ -1276,7 +1268,7 @@ addEnvHooks "$hostOffset" myBashFunction
|
||||
|
||||
The *existence* of setups hooks has long been documented and packages inside Nixpkgs are free to use this mechanism. Other packages, however, should not rely on these mechanisms not changing between Nixpkgs versions. Because of the existing issues with this system, there’s little benefit from mandating it be stable for any period of time.
|
||||
|
||||
First, let’s cover some setup hooks that are part of Nixpkgs default `stdenv`. This means that they are run for every package built using `stdenv.mkDerivation` or when using a custom builder that has `source $stdenv/setup`. Some of these are platform specific, so they may run on Linux but not Darwin or vice-versa.
|
||||
First, let’s cover some setup hooks that are part of Nixpkgs default `stdenv`. This means that they are run for every package built using `stdenv.mkDerivation`, even with custom builders. Some of these are platform specific, so they may run on Linux but not Darwin or vice-versa.
|
||||
|
||||
### `move-docs.sh` {#move-docs.sh}
|
||||
|
||||
@@ -1411,6 +1403,7 @@ these in the [Hooks Reference](#chap-hooks).
|
||||
### Compiler and Linker wrapper hooks {#compiler-linker-wrapper-hooks}
|
||||
|
||||
If the file `${cc}/nix-support/cc-wrapper-hook` exists, it will be run at the end of the [compiler wrapper](#cc-wrapper).
|
||||
If the file `${binutils}/nix-support/ld-wrapper-hook` exists, it will be run at the end of the linker wrapper, before the linker runs.
|
||||
If the file `${binutils}/nix-support/post-link-hook` exists, it will be run at the end of the linker wrapper.
|
||||
These hooks allow a user to inject code into the wrappers.
|
||||
As an example, these hooks can be used to extract `extraBefore`, `params` and `extraAfter` which store all the command line arguments passed to the compiler and linker respectively.
|
||||
|
||||
@@ -17079,6 +17079,12 @@
|
||||
github = "jackyliu16";
|
||||
githubId = 50787361;
|
||||
};
|
||||
one-d-wide = {
|
||||
name = "Remy D. Farley";
|
||||
email = "one-d-wide@protonmail.com";
|
||||
github = "one-d-wide";
|
||||
githubId = 116499566;
|
||||
};
|
||||
onemoresuza = {
|
||||
name = "Coutinho de Souza";
|
||||
email = "dev@onemoresuza.com";
|
||||
@@ -17251,6 +17257,14 @@
|
||||
githubId = 108072;
|
||||
name = "Slawomir Gonet";
|
||||
};
|
||||
outfoxxed = {
|
||||
name = "outfoxxed";
|
||||
email = "nixpkgs@outfoxxed.me";
|
||||
matrix = "@outfoxxed:outfoxxed.me";
|
||||
github = "outfoxxed";
|
||||
githubId = 83010835;
|
||||
keys = [ { fingerprint = "0181 FF89 4F34 7FCC EB06 5710 4C88 A185 FB89 301E"; } ];
|
||||
};
|
||||
ovlach = {
|
||||
email = "ondrej@vlach.xyz";
|
||||
name = "Ondrej Vlach";
|
||||
|
||||
@@ -928,8 +928,6 @@
|
||||
|
||||
- `buildNimSbom` was added as an alternative to `buildNimPackage`. `buildNimSbom` uses [SBOMs](https://cyclonedx.org/) to generate packages whereas `buildNimPackage` uses a custom JSON lockfile format.
|
||||
|
||||
- The default version of `z3` has been updated from 4.8 to 4.13. There are still a few packages that need specific 4.8 versions; those will continue to be maintained.
|
||||
|
||||
## Detailed Migration Information {#sec-release-24.11-migration}
|
||||
|
||||
### `sound` options removal {#sec-release-24.11-migration-sound}
|
||||
@@ -938,16 +936,15 @@ The `sound` options have been largely removed, as they are unnecessary for most
|
||||
|
||||
If you set `sound.enable` in your configuration:
|
||||
- If you are using Pulseaudio or PipeWire, simply remove that option
|
||||
- If you are using ALSA as your only sound system (no sound server), set `hardware.alsa.enable = true` instead
|
||||
- If you are not using an external sound server, and want volumes to be persisted across shutdowns, set `hardware.alsa.enablePersistence = true` instead
|
||||
|
||||
If you set `sound.enableOSSEmulation` in your configuration:
|
||||
- Make sure it is still necessary, as very few applications actually use OSS
|
||||
- If necessary, set `hardware.alsa.enableOSSEmulation = true`
|
||||
- If necessary, set `boot.kernelModules = [ "snd_pcm_oss" ]`
|
||||
|
||||
If you set `sound.extraConfig` in your configuration:
|
||||
- If you are using a sound server, like Pulseaudio, JACK or PipeWire, migrate your configuration to that
|
||||
- If you are using ALSA as your only sound system, check if you can use the new structured ALSA options `hardware.alsa.defaultDevice`, `hardware.alsa.cardAliases`, `hardware.alsa.controls`, etc.
|
||||
- Otherwise, move your configuration directly into `hardware.alsa.config`
|
||||
- If you are using another sound server, like Pulseaudio, JACK or PipeWire, migrate your configuration to that
|
||||
- If you are not using an external sound server, set `environment.etc."asound.conf".text = yourExtraConfig` instead
|
||||
|
||||
If you set `sound.mediaKeys` in your configuration:
|
||||
- Preferably switch to handling media keys in your desktop environment/compositor
|
||||
|
||||
@@ -28,12 +28,12 @@
|
||||
- `services.dex` now restarts upon changes to the `.environmentFile` or entries in `.settings.staticClients[].secretFile` when the entry is a `path` type.
|
||||
|
||||
- `nixos-rebuild-ng`, a full rewrite of `nixos-rebuild` in Python, is available for testing. You can enable it by setting [system.rebuild.enableNg](options.html#opt-system.rebuild.enableNg) in your configuration (this will replace the old `nixos-rebuild`), or by adding `nixos-rebuild-ng` to your `environment.systemPackages` (in this case, it will live side-by-side with `nixos-rebuild` as `nixos-rebuild-ng`). It is expected that the next major version of NixOS (25.11) will enable `system.rebuild.enableNg` by default.
|
||||
|
||||
- A `nixos-rebuild build-image` sub-command has been added.
|
||||
It allows users to build platform-specific (disk) images from their NixOS configurations. `nixos-rebuild build-image` works similar to the popular [nix-community/nixos-generators](https://github.com/nix-community/nixos-generators) project. See new [section on image building in the nixpkgs manual](https://nixos.org/manual/nixpkgs/unstable/#sec-image-nixos-rebuild-build-image). It is also available for `nixos-rebuild-ng`.
|
||||
|
||||
- `nixos-option` has been rewritten to a Nix expression called by a simple bash script. This lowers our maintenance threshold, makes eval errors less verbose, adds support for flake-based configurations, descending into `attrsOf` and `listOf` submodule options, and `--show-trace`.
|
||||
|
||||
It allows users to build platform-specific (disk) images from their NixOS configurations. `nixos-rebuild build-image` works similar to the popular [nix-community/nixos-generators](https://github.com/nix-community/nixos-generators) project. See new [section on image building in the nixpkgs manual](https://nixos.org/manual/nixpkgs/unstable/#sec-image-nixos-rebuild-build-image).
|
||||
|
||||
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
|
||||
|
||||
## New Modules {#sec-release-25.05-new-modules}
|
||||
@@ -52,6 +52,8 @@
|
||||
|
||||
- [Omnom](https://github.com/asciimoo/omnom), a webpage bookmarking and snapshotting service. Available as [services.omnom](options.html#opt-services.omnom.enable).
|
||||
|
||||
- [Yggdrasil-Jumper](https://github.com/one-d-wide/yggdrasil-jumper) is an independent project that aims to transparently reduce latency of a connection over Yggdrasil network, utilizing NAT traversal to automatically bypass intermediary nodes.
|
||||
|
||||
- [Zenoh](https://zenoh.io/), a pub/sub/query protocol with low overhead. The Zenoh router daemon is available as [services.zenohd](options.html#opt-services.zenohd.enable)
|
||||
|
||||
- [ytdl-sub](https://github.com/jmbannon/ytdl-sub), a tool that downloads media via yt-dlp and prepares it for your favorite media player, including Kodi, Jellyfin, Plex, Emby, and modern music players. Available as [services.ytdl-sub](options.html#opt-services.ytdl-sub.instances).
|
||||
@@ -224,6 +226,8 @@
|
||||
|
||||
- `nodePackages.meshcommander` has been removed, as the package was deprecated by Intel.
|
||||
|
||||
- The default version of `z3` has been updated from 4.8 to 4.13. There are still a few packages that need specific older versions; those will continue to be maintained as long as other packages depend on them but may be removed in the future.
|
||||
|
||||
- `kanata` was updated to v1.7.0, which introduces several breaking changes.
|
||||
See the release notes of
|
||||
[v1.7.0](https://github.com/jtroo/kanata/releases/tag/v1.7.0)
|
||||
@@ -374,6 +378,9 @@
|
||||
- The paperless module now has an option for regular automatic export of
|
||||
documents data using the integrated document exporter.
|
||||
|
||||
- New options for the declarative configuration of the user space part of ALSA have been introduced under [hardware.alsa](options.html#opt-hardware.alsa.enable), including setting the default capture and playback device, defining sound card aliases and volume controls.
|
||||
Note: these are intended for users not running a sound server like PulseAudio or PipeWire, but having ALSA as their only sound system.
|
||||
|
||||
- Caddy can now be built with plugins by using `caddy.withPlugins`, a `passthru` function that accepts an attribute set as a parameter. The `plugins` argument represents a list of Caddy plugins, with each Caddy plugin being a versioned module. The `hash` argument represents the `vendorHash` of the resulting Caddy source code with the plugins added.
|
||||
|
||||
Example:
|
||||
|
||||
+439
-334
@@ -1,115 +1,117 @@
|
||||
/* Technical details
|
||||
/*
|
||||
Technical details
|
||||
|
||||
`make-disk-image` has a bit of magic to minimize the amount of work to do in a virtual machine.
|
||||
`make-disk-image` has a bit of magic to minimize the amount of work to do in a virtual machine.
|
||||
|
||||
It relies on the [LKL (Linux Kernel Library) project](https://github.com/lkl/linux) which provides Linux kernel as userspace library.
|
||||
It relies on the [LKL (Linux Kernel Library) project](https://github.com/lkl/linux) which provides Linux kernel as userspace library.
|
||||
|
||||
The Nix-store only image only need to run LKL tools to produce an image and will never spawn a virtual machine, whereas full images will always require a virtual machine, but also use LKL.
|
||||
The Nix-store only image only need to run LKL tools to produce an image and will never spawn a virtual machine, whereas full images will always require a virtual machine, but also use LKL.
|
||||
|
||||
### Image preparation phase
|
||||
### Image preparation phase
|
||||
|
||||
Image preparation phase will produce the initial image layout in a folder:
|
||||
Image preparation phase will produce the initial image layout in a folder:
|
||||
|
||||
- devise a root folder based on `$PWD`
|
||||
- prepare the contents by copying and restoring ACLs in this root folder
|
||||
- load in the Nix store database all additional paths computed by `pkgs.closureInfo` in a temporary Nix store
|
||||
- run `nixos-install` in a temporary folder
|
||||
- transfer from the temporary store the additional paths registered to the installed NixOS
|
||||
- compute the size of the disk image based on the apparent size of the root folder
|
||||
- partition the disk image using the corresponding script according to the partition table type
|
||||
- format the partitions if needed
|
||||
- use `cptofs` (LKL tool) to copy the root folder inside the disk image
|
||||
- devise a root folder based on `$PWD`
|
||||
- prepare the contents by copying and restoring ACLs in this root folder
|
||||
- load in the Nix store database all additional paths computed by `pkgs.closureInfo` in a temporary Nix store
|
||||
- run `nixos-install` in a temporary folder
|
||||
- transfer from the temporary store the additional paths registered to the installed NixOS
|
||||
- compute the size of the disk image based on the apparent size of the root folder
|
||||
- partition the disk image using the corresponding script according to the partition table type
|
||||
- format the partitions if needed
|
||||
- use `cptofs` (LKL tool) to copy the root folder inside the disk image
|
||||
|
||||
At this step, the disk image already contains the Nix store, it now only needs to be converted to the desired format to be used.
|
||||
At this step, the disk image already contains the Nix store, it now only needs to be converted to the desired format to be used.
|
||||
|
||||
### Image conversion phase
|
||||
### Image conversion phase
|
||||
|
||||
Using `qemu-img`, the disk image is converted from a raw format to the desired format: qcow2(-compressed), vdi, vpc.
|
||||
Using `qemu-img`, the disk image is converted from a raw format to the desired format: qcow2(-compressed), vdi, vpc.
|
||||
|
||||
### Image Partitioning
|
||||
### Image Partitioning
|
||||
|
||||
#### `none`
|
||||
#### `none`
|
||||
|
||||
No partition table layout is written. The image is a bare filesystem image.
|
||||
No partition table layout is written. The image is a bare filesystem image.
|
||||
|
||||
#### `legacy`
|
||||
#### `legacy`
|
||||
|
||||
The image is partitioned using MBR. There is one primary ext4 partition starting at 1 MiB that fills the rest of the disk image.
|
||||
The image is partitioned using MBR. There is one primary ext4 partition starting at 1 MiB that fills the rest of the disk image.
|
||||
|
||||
This partition layout is unsuitable for UEFI.
|
||||
This partition layout is unsuitable for UEFI.
|
||||
|
||||
#### `legacy+gpt`
|
||||
#### `legacy+gpt`
|
||||
|
||||
This partition table type uses GPT and:
|
||||
This partition table type uses GPT and:
|
||||
|
||||
- create a "no filesystem" partition from 1MiB to 2MiB ;
|
||||
- set `bios_grub` flag on this "no filesystem" partition, which marks it as a [GRUB BIOS partition](https://www.gnu.org/software/parted/manual/html_node/set.html) ;
|
||||
- create a primary ext4 partition starting at 2MiB and extending to the full disk image ;
|
||||
- perform optimal alignments checks on each partition
|
||||
- create a "no filesystem" partition from 1MiB to 2MiB ;
|
||||
- set `bios_grub` flag on this "no filesystem" partition, which marks it as a [GRUB BIOS partition](https://www.gnu.org/software/parted/manual/html_node/set.html) ;
|
||||
- create a primary ext4 partition starting at 2MiB and extending to the full disk image ;
|
||||
- perform optimal alignments checks on each partition
|
||||
|
||||
This partition layout is unsuitable for UEFI boot, because it has no ESP (EFI System Partition) partition. It can work with CSM (Compatibility Support Module) which emulates legacy (BIOS) boot for UEFI.
|
||||
This partition layout is unsuitable for UEFI boot, because it has no ESP (EFI System Partition) partition. It can work with CSM (Compatibility Support Module) which emulates legacy (BIOS) boot for UEFI.
|
||||
|
||||
#### `efi`
|
||||
#### `efi`
|
||||
|
||||
This partition table type uses GPT and:
|
||||
This partition table type uses GPT and:
|
||||
|
||||
- creates an FAT32 ESP partition from 8MiB to specified `bootSize` parameter (256MiB by default), set it bootable ;
|
||||
- creates an primary ext4 partition starting after the boot partition and extending to the full disk image
|
||||
- creates an FAT32 ESP partition from 8MiB to specified `bootSize` parameter (256MiB by default), set it bootable ;
|
||||
- creates an primary ext4 partition starting after the boot partition and extending to the full disk image
|
||||
|
||||
#### `efixbootldr`
|
||||
#### `efixbootldr`
|
||||
|
||||
This partition table type uses GPT and:
|
||||
This partition table type uses GPT and:
|
||||
|
||||
- creates an FAT32 ESP partition from 8MiB to 100MiB, set it bootable ;
|
||||
- creates an FAT32 BOOT partition from 100MiB to specified `bootSize` parameter (256MiB by default), set `bls_boot` flag ;
|
||||
- creates an primary ext4 partition starting after the boot partition and extending to the full disk image
|
||||
- creates an FAT32 ESP partition from 8MiB to 100MiB, set it bootable ;
|
||||
- creates an FAT32 BOOT partition from 100MiB to specified `bootSize` parameter (256MiB by default), set `bls_boot` flag ;
|
||||
- creates an primary ext4 partition starting after the boot partition and extending to the full disk image
|
||||
|
||||
#### `hybrid`
|
||||
#### `hybrid`
|
||||
|
||||
This partition table type uses GPT and:
|
||||
This partition table type uses GPT and:
|
||||
|
||||
- creates a "no filesystem" partition from 0 to 1MiB, set `bios_grub` flag on it ;
|
||||
- creates an FAT32 ESP partition from 8MiB to specified `bootSize` parameter (256MiB by default), set it bootable ;
|
||||
- creates a primary ext4 partition starting after the boot one and extending to the full disk image
|
||||
- creates a "no filesystem" partition from 0 to 1MiB, set `bios_grub` flag on it ;
|
||||
- creates an FAT32 ESP partition from 8MiB to specified `bootSize` parameter (256MiB by default), set it bootable ;
|
||||
- creates a primary ext4 partition starting after the boot one and extending to the full disk image
|
||||
|
||||
This partition could be booted by a BIOS able to understand GPT layouts and recognizing the MBR at the start.
|
||||
This partition could be booted by a BIOS able to understand GPT layouts and recognizing the MBR at the start.
|
||||
|
||||
### How to run determinism analysis on results?
|
||||
### How to run determinism analysis on results?
|
||||
|
||||
Build your derivation with `--check` to rebuild it and verify it is the same.
|
||||
Build your derivation with `--check` to rebuild it and verify it is the same.
|
||||
|
||||
If it fails, you will be left with two folders with one having `.check`.
|
||||
If it fails, you will be left with two folders with one having `.check`.
|
||||
|
||||
You can use `diffoscope` to see the differences between the folders.
|
||||
You can use `diffoscope` to see the differences between the folders.
|
||||
|
||||
However, `diffoscope` is currently not able to diff two QCOW2 filesystems, thus, it is advised to use raw format.
|
||||
However, `diffoscope` is currently not able to diff two QCOW2 filesystems, thus, it is advised to use raw format.
|
||||
|
||||
Even if you use raw disks, `diffoscope` cannot diff the partition table and partitions recursively.
|
||||
Even if you use raw disks, `diffoscope` cannot diff the partition table and partitions recursively.
|
||||
|
||||
To solve this, you can run `fdisk -l $image` and generate `dd if=$image of=$image-p$i.raw skip=$start count=$sectors` for each `(start, sectors)` listed in the `fdisk` output. Now, you will have each partition as a separate file and you can compare them in pairs.
|
||||
To solve this, you can run `fdisk -l $image` and generate `dd if=$image of=$image-p$i.raw skip=$start count=$sectors` for each `(start, sectors)` listed in the `fdisk` output. Now, you will have each partition as a separate file and you can compare them in pairs.
|
||||
*/
|
||||
{ pkgs
|
||||
, lib
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
|
||||
, # The NixOS configuration to be installed onto the disk image.
|
||||
config
|
||||
# The NixOS configuration to be installed onto the disk image.
|
||||
config,
|
||||
|
||||
, # The size of the disk, in megabytes.
|
||||
# The size of the disk, in megabytes.
|
||||
# if "auto" size is calculated based on the contents copied to it and
|
||||
# additionalSpace is taken into account.
|
||||
diskSize ? "auto"
|
||||
diskSize ? "auto",
|
||||
|
||||
, # additional disk space to be added to the image if diskSize "auto"
|
||||
# additional disk space to be added to the image if diskSize "auto"
|
||||
# is used
|
||||
additionalSpace ? "512M"
|
||||
additionalSpace ? "512M",
|
||||
|
||||
, # size of the boot partition, is only used if partitionTableType is
|
||||
# size of the boot partition, is only used if partitionTableType is
|
||||
# either "efi" or "hybrid"
|
||||
# This will be undersized slightly, as this is actually the offset of
|
||||
# the end of the partition. Generally it will be 1MiB smaller.
|
||||
bootSize ? "256M"
|
||||
bootSize ? "256M",
|
||||
|
||||
, # The files and directories to be placed in the target file system.
|
||||
# The files and directories to be placed in the target file system.
|
||||
# This is a list of attribute sets {source, target, mode, user, group} where
|
||||
# `source' is the file system object (regular file or directory) to be
|
||||
# grafted in the file system at path `target', `mode' is a string containing
|
||||
@@ -117,54 +119,54 @@ To solve this, you can run `fdisk -l $image` and generate `dd if=$image of=$imag
|
||||
# user and group name that will be set as owner of the files.
|
||||
# `mode', `user', and `group' are optional.
|
||||
# When setting one of `user' or `group', the other needs to be set too.
|
||||
contents ? []
|
||||
contents ? [ ],
|
||||
|
||||
, # Type of partition table to use; described in the `Image Partitioning` section above.
|
||||
partitionTableType ? "legacy"
|
||||
# Type of partition table to use; described in the `Image Partitioning` section above.
|
||||
partitionTableType ? "legacy",
|
||||
|
||||
, # Whether to invoke `switch-to-configuration boot` during image creation
|
||||
installBootLoader ? true
|
||||
# Whether to invoke `switch-to-configuration boot` during image creation
|
||||
installBootLoader ? true,
|
||||
|
||||
, # Whether to output have EFIVARS available in $out/efi-vars.fd and use it during disk creation
|
||||
touchEFIVars ? false
|
||||
# Whether to output have EFIVARS available in $out/efi-vars.fd and use it during disk creation
|
||||
touchEFIVars ? false,
|
||||
|
||||
, # OVMF firmware derivation
|
||||
OVMF ? pkgs.OVMF.fd
|
||||
# OVMF firmware derivation
|
||||
OVMF ? pkgs.OVMF.fd,
|
||||
|
||||
, # EFI firmware
|
||||
efiFirmware ? OVMF.firmware
|
||||
# EFI firmware
|
||||
efiFirmware ? OVMF.firmware,
|
||||
|
||||
, # EFI variables
|
||||
efiVariables ? OVMF.variables
|
||||
# EFI variables
|
||||
efiVariables ? OVMF.variables,
|
||||
|
||||
, # The root file system type.
|
||||
fsType ? "ext4"
|
||||
# The root file system type.
|
||||
fsType ? "ext4",
|
||||
|
||||
, # Filesystem label
|
||||
label ? if onlyNixStore then "nix-store" else "nixos"
|
||||
# Filesystem label
|
||||
label ? if onlyNixStore then "nix-store" else "nixos",
|
||||
|
||||
, # The initial NixOS configuration file to be copied to
|
||||
# The initial NixOS configuration file to be copied to
|
||||
# /etc/nixos/configuration.nix.
|
||||
configFile ? null
|
||||
configFile ? null,
|
||||
|
||||
, # Shell code executed after the VM has finished.
|
||||
postVM ? ""
|
||||
# Shell code executed after the VM has finished.
|
||||
postVM ? "",
|
||||
|
||||
, # Guest memory size
|
||||
memSize ? 1024
|
||||
# Guest memory size
|
||||
memSize ? 1024,
|
||||
|
||||
, # Copy the contents of the Nix store to the root of the image and
|
||||
# Copy the contents of the Nix store to the root of the image and
|
||||
# skip further setup. Incompatible with `contents`,
|
||||
# `installBootLoader` and `configFile`.
|
||||
onlyNixStore ? false
|
||||
onlyNixStore ? false,
|
||||
|
||||
, name ? "nixos-disk-image"
|
||||
name ? "nixos-disk-image",
|
||||
|
||||
, # Disk image format, one of qcow2, qcow2-compressed, vdi, vpc, raw.
|
||||
format ? "raw"
|
||||
# Disk image format, one of qcow2, qcow2-compressed, vdi, vpc, raw.
|
||||
format ? "raw",
|
||||
|
||||
, # Disk image filename, without any extensions (e.g. `image_1`).
|
||||
baseName ? "nixos"
|
||||
# Disk image filename, without any extensions (e.g. `image_1`).
|
||||
baseName ? "nixos",
|
||||
|
||||
# Whether to fix:
|
||||
# - GPT Disk Unique Identifier (diskGUID)
|
||||
@@ -174,139 +176,191 @@ To solve this, you can run `fdisk -l $image` and generate `dd if=$image of=$imag
|
||||
# BIOS/MBR support is "best effort" at the moment.
|
||||
# Boot partitions may not be deterministic.
|
||||
# Also, to fix last time checked of the ext4 partition if fsType = ext4.
|
||||
, deterministic ? true
|
||||
deterministic ? true,
|
||||
|
||||
# GPT Partition Unique Identifier for root partition.
|
||||
, rootGPUID ? "F222513B-DED1-49FA-B591-20CE86A2FE7F"
|
||||
rootGPUID ? "F222513B-DED1-49FA-B591-20CE86A2FE7F",
|
||||
# When fsType = ext4, this is the root Filesystem Unique Identifier.
|
||||
# TODO: support other filesystems someday.
|
||||
, rootFSUID ? (if fsType == "ext4" then rootGPUID else null)
|
||||
rootFSUID ? (if fsType == "ext4" then rootGPUID else null),
|
||||
|
||||
, # Whether a nix channel based on the current source tree should be
|
||||
# Whether a nix channel based on the current source tree should be
|
||||
# made available inside the image. Useful for interactive use of nix
|
||||
# utils, but changes the hash of the image when the sources are
|
||||
# updated.
|
||||
copyChannel ? true
|
||||
copyChannel ? true,
|
||||
|
||||
, # Additional store paths to copy to the image's store.
|
||||
additionalPaths ? []
|
||||
# Additional store paths to copy to the image's store.
|
||||
additionalPaths ? [ ],
|
||||
}:
|
||||
|
||||
assert (lib.assertOneOf "partitionTableType" partitionTableType [ "legacy" "legacy+gpt" "efi" "efixbootldr" "hybrid" "none" ]);
|
||||
assert (lib.assertMsg (fsType == "ext4" && deterministic -> rootFSUID != null) "In deterministic mode with a ext4 partition, rootFSUID must be non-null, by default, it is equal to rootGPUID.");
|
||||
# We use -E offset=X below, which is only supported by e2fsprogs
|
||||
assert (lib.assertMsg (partitionTableType != "none" -> fsType == "ext4") "to produce a partition table, we need to use -E offset flag which is support only for fsType = ext4");
|
||||
assert (lib.assertMsg (touchEFIVars -> partitionTableType == "hybrid" || partitionTableType == "efi" || partitionTableType == "efixbootldr" || partitionTableType == "legacy+gpt") "EFI variables can be used only with a partition table of type: hybrid, efi, efixbootldr, or legacy+gpt.");
|
||||
# If only Nix store image, then: contents must be empty, configFile must be unset, and we should no install bootloader.
|
||||
assert (lib.assertMsg (onlyNixStore -> contents == [] && configFile == null && !installBootLoader) "In a only Nix store image, the contents must be empty, no configuration must be provided and no bootloader should be installed.");
|
||||
assert (
|
||||
lib.assertOneOf "partitionTableType" partitionTableType [
|
||||
"legacy"
|
||||
"legacy+gpt"
|
||||
"efi"
|
||||
"efixbootldr"
|
||||
"hybrid"
|
||||
"none"
|
||||
]
|
||||
);
|
||||
assert (
|
||||
lib.assertMsg (fsType == "ext4" && deterministic -> rootFSUID != null)
|
||||
"In deterministic mode with a ext4 partition, rootFSUID must be non-null, by default, it is equal to rootGPUID."
|
||||
);
|
||||
# We use -E offset=X below, which is only supported by e2fsprogs
|
||||
assert (
|
||||
lib.assertMsg (partitionTableType != "none" -> fsType == "ext4")
|
||||
"to produce a partition table, we need to use -E offset flag which is support only for fsType = ext4"
|
||||
);
|
||||
assert (
|
||||
lib.assertMsg
|
||||
(
|
||||
touchEFIVars
|
||||
->
|
||||
partitionTableType == "hybrid"
|
||||
|| partitionTableType == "efi"
|
||||
|| partitionTableType == "efixbootldr"
|
||||
|| partitionTableType == "legacy+gpt"
|
||||
)
|
||||
"EFI variables can be used only with a partition table of type: hybrid, efi, efixbootldr, or legacy+gpt."
|
||||
);
|
||||
# If only Nix store image, then: contents must be empty, configFile must be unset, and we should no install bootloader.
|
||||
assert (
|
||||
lib.assertMsg (onlyNixStore -> contents == [ ] && configFile == null && !installBootLoader)
|
||||
"In a only Nix store image, the contents must be empty, no configuration must be provided and no bootloader should be installed."
|
||||
);
|
||||
# Either both or none of {user,group} need to be set
|
||||
assert (lib.assertMsg (lib.all
|
||||
(attrs: ((attrs.user or null) == null)
|
||||
== ((attrs.group or null) == null))
|
||||
contents) "Contents of the disk image should set none of {user, group} or both at the same time.");
|
||||
assert (
|
||||
lib.assertMsg (lib.all (
|
||||
attrs: ((attrs.user or null) == null) == ((attrs.group or null) == null)
|
||||
) contents) "Contents of the disk image should set none of {user, group} or both at the same time."
|
||||
);
|
||||
|
||||
let format' = format; in let
|
||||
let
|
||||
format' = format;
|
||||
in
|
||||
let
|
||||
|
||||
format = if format' == "qcow2-compressed" then "qcow2" else format';
|
||||
|
||||
compress = lib.optionalString (format' == "qcow2-compressed") "-c";
|
||||
|
||||
filename = "${baseName}." + {
|
||||
qcow2 = "qcow2";
|
||||
vdi = "vdi";
|
||||
vpc = "vhd";
|
||||
raw = "img";
|
||||
}.${format} or format;
|
||||
filename =
|
||||
"${baseName}."
|
||||
+ {
|
||||
qcow2 = "qcow2";
|
||||
vdi = "vdi";
|
||||
vpc = "vhd";
|
||||
raw = "img";
|
||||
}
|
||||
.${format} or format;
|
||||
|
||||
rootPartition = { # switch-case
|
||||
legacy = "1";
|
||||
"legacy+gpt" = "2";
|
||||
efi = "2";
|
||||
efixbootldr = "3";
|
||||
hybrid = "3";
|
||||
}.${partitionTableType};
|
||||
rootPartition =
|
||||
{
|
||||
# switch-case
|
||||
legacy = "1";
|
||||
"legacy+gpt" = "2";
|
||||
efi = "2";
|
||||
efixbootldr = "3";
|
||||
hybrid = "3";
|
||||
}
|
||||
.${partitionTableType};
|
||||
|
||||
partitionDiskScript = { # switch-case
|
||||
legacy = ''
|
||||
parted --script $diskImage -- \
|
||||
mklabel msdos \
|
||||
mkpart primary ext4 1MiB -1
|
||||
'';
|
||||
"legacy+gpt" = ''
|
||||
parted --script $diskImage -- \
|
||||
mklabel gpt \
|
||||
mkpart no-fs 1MB 2MB \
|
||||
set 1 bios_grub on \
|
||||
align-check optimal 1 \
|
||||
mkpart primary ext4 2MB -1 \
|
||||
align-check optimal 2 \
|
||||
print
|
||||
${lib.optionalString deterministic ''
|
||||
partitionDiskScript =
|
||||
{
|
||||
# switch-case
|
||||
legacy = ''
|
||||
parted --script $diskImage -- \
|
||||
mklabel msdos \
|
||||
mkpart primary ext4 1MiB 100% \
|
||||
print
|
||||
'';
|
||||
"legacy+gpt" = ''
|
||||
parted --script $diskImage -- \
|
||||
mklabel gpt \
|
||||
mkpart no-fs 1MiB 2MiB \
|
||||
set 1 bios_grub on \
|
||||
mkpart primary ext4 2MiB 100% \
|
||||
align-check optimal 2 \
|
||||
print
|
||||
${lib.optionalString deterministic ''
|
||||
sgdisk \
|
||||
--disk-guid=97FD5997-D90B-4AA3-8D16-C1723AEA73C \
|
||||
--partition-guid=1:1C06F03B-704E-4657-B9CD-681A087A2FDC \
|
||||
--partition-guid=2:970C694F-AFD0-4B99-B750-CDB7A329AB6F \
|
||||
--partition-guid=3:${rootGPUID} \
|
||||
$diskImage
|
||||
''}
|
||||
'';
|
||||
efi = ''
|
||||
parted --script $diskImage -- \
|
||||
mklabel gpt \
|
||||
mkpart ESP fat32 8MiB ${bootSize} \
|
||||
set 1 boot on \
|
||||
mkpart primary ext4 ${bootSize} -1
|
||||
${lib.optionalString deterministic ''
|
||||
''}
|
||||
'';
|
||||
efi = ''
|
||||
parted --script $diskImage -- \
|
||||
mklabel gpt \
|
||||
mkpart ESP fat32 8MiB $bootSizeMiB \
|
||||
set 1 boot on \
|
||||
align-check optimal 1 \
|
||||
mkpart primary ext4 $bootSizeMiB 100% \
|
||||
align-check optimal 2 \
|
||||
print
|
||||
${lib.optionalString deterministic ''
|
||||
sgdisk \
|
||||
--disk-guid=97FD5997-D90B-4AA3-8D16-C1723AEA73C \
|
||||
--partition-guid=1:1C06F03B-704E-4657-B9CD-681A087A2FDC \
|
||||
--partition-guid=2:${rootGPUID} \
|
||||
$diskImage
|
||||
''}
|
||||
'';
|
||||
efixbootldr = ''
|
||||
parted --script $diskImage -- \
|
||||
mklabel gpt \
|
||||
mkpart ESP fat32 8MiB 100MiB \
|
||||
set 1 boot on \
|
||||
mkpart BOOT fat32 100MiB ${bootSize} \
|
||||
set 2 bls_boot on \
|
||||
mkpart ROOT ext4 ${bootSize} -1
|
||||
${lib.optionalString deterministic ''
|
||||
''}
|
||||
'';
|
||||
efixbootldr = ''
|
||||
parted --script $diskImage -- \
|
||||
mklabel gpt \
|
||||
mkpart ESP fat32 8MiB 100MiB \
|
||||
set 1 boot on \
|
||||
align-check optimal 1 \
|
||||
mkpart BOOT fat32 100MiB $bootSizeMiB \
|
||||
set 2 bls_boot on \
|
||||
align-check optimal 2 \
|
||||
mkpart ROOT ext4 $bootSizeMiB 100% \
|
||||
align-check optimal 3 \
|
||||
print
|
||||
${lib.optionalString deterministic ''
|
||||
sgdisk \
|
||||
--disk-guid=97FD5997-D90B-4AA3-8D16-C1723AEA73C \
|
||||
--partition-guid=1:1C06F03B-704E-4657-B9CD-681A087A2FDC \
|
||||
--partition-guid=2:970C694F-AFD0-4B99-B750-CDB7A329AB6F \
|
||||
--partition-guid=3:${rootGPUID} \
|
||||
$diskImage
|
||||
''}
|
||||
'';
|
||||
hybrid = ''
|
||||
parted --script $diskImage -- \
|
||||
mklabel gpt \
|
||||
mkpart ESP fat32 8MiB ${bootSize} \
|
||||
set 1 boot on \
|
||||
mkpart no-fs 0 1024KiB \
|
||||
set 2 bios_grub on \
|
||||
mkpart primary ext4 ${bootSize} -1
|
||||
${lib.optionalString deterministic ''
|
||||
''}
|
||||
'';
|
||||
hybrid = ''
|
||||
parted --script $diskImage -- \
|
||||
mklabel gpt \
|
||||
mkpart ESP fat32 8MiB $bootSizeMiB \
|
||||
set 1 boot on \
|
||||
align-check optimal 1 \
|
||||
mkpart no-fs 0 1024KiB \
|
||||
set 2 bios_grub on \
|
||||
mkpart primary ext4 $bootSizeMiB 100% \
|
||||
align-check optimal 3 \
|
||||
print
|
||||
${lib.optionalString deterministic ''
|
||||
sgdisk \
|
||||
--disk-guid=97FD5997-D90B-4AA3-8D16-C1723AEA73C \
|
||||
--partition-guid=1:1C06F03B-704E-4657-B9CD-681A087A2FDC \
|
||||
--partition-guid=2:970C694F-AFD0-4B99-B750-CDB7A329AB6F \
|
||||
--partition-guid=3:${rootGPUID} \
|
||||
$diskImage
|
||||
''}
|
||||
'';
|
||||
none = "";
|
||||
}.${partitionTableType};
|
||||
''}
|
||||
'';
|
||||
none = "";
|
||||
}
|
||||
.${partitionTableType};
|
||||
|
||||
useEFIBoot = touchEFIVars;
|
||||
|
||||
nixpkgs = lib.cleanSource pkgs.path;
|
||||
|
||||
# FIXME: merge with channel.nix / make-channel.nix.
|
||||
channelSources = pkgs.runCommand "nixos-${config.system.nixos.version}" {} ''
|
||||
channelSources = pkgs.runCommand "nixos-${config.system.nixos.version}" { } ''
|
||||
mkdir -p $out
|
||||
cp -prd ${nixpkgs.outPath} $out/nixos
|
||||
chmod -R u+w $out/nixos
|
||||
@@ -317,7 +371,9 @@ let format' = format; in let
|
||||
echo -n ${config.system.nixos.versionSuffix} > $out/nixos/.version-suffix
|
||||
'';
|
||||
|
||||
binPath = lib.makeBinPath (with pkgs; [
|
||||
binPath = lib.makeBinPath (
|
||||
with pkgs;
|
||||
[
|
||||
rsync
|
||||
util-linux
|
||||
parted
|
||||
@@ -329,19 +385,19 @@ let format' = format; in let
|
||||
systemdMinimal
|
||||
]
|
||||
++ lib.optional deterministic gptfdisk
|
||||
++ stdenv.initialPath);
|
||||
++ stdenv.initialPath
|
||||
);
|
||||
|
||||
# I'm preserving the line below because I'm going to search for it across nixpkgs to consolidate
|
||||
# image building logic. The comment right below this now appears in 4 different places in nixpkgs :)
|
||||
# !!! should use XML.
|
||||
sources = map (x: x.source) contents;
|
||||
targets = map (x: x.target) contents;
|
||||
modes = map (x: x.mode or "''") contents;
|
||||
users = map (x: x.user or "''") contents;
|
||||
groups = map (x: x.group or "''") contents;
|
||||
modes = map (x: x.mode or "''") contents;
|
||||
users = map (x: x.user or "''") contents;
|
||||
groups = map (x: x.group or "''") contents;
|
||||
|
||||
basePaths = [ config.system.build.toplevel ]
|
||||
++ lib.optional copyChannel channelSources;
|
||||
basePaths = [ config.system.build.toplevel ] ++ lib.optional copyChannel channelSources;
|
||||
|
||||
additionalPaths' = lib.subtractLists basePaths additionalPaths;
|
||||
|
||||
@@ -381,6 +437,10 @@ let format' = format; in let
|
||||
echo $(( $1 * 52 / 1000 ))
|
||||
}
|
||||
|
||||
round_to_nearest() {
|
||||
echo $(( ( $1 / $2 + 1) * $2 ))
|
||||
}
|
||||
|
||||
mkdir $out
|
||||
|
||||
root="$PWD/root"
|
||||
@@ -444,75 +504,102 @@ let format' = format; in let
|
||||
${if copyChannel then "--channel ${channelSources}" else "--no-channel-copy"} \
|
||||
--substituters ""
|
||||
|
||||
${lib.optionalString (additionalPaths' != []) ''
|
||||
${lib.optionalString (additionalPaths' != [ ]) ''
|
||||
nix --extra-experimental-features nix-command copy --to $root --no-check-sigs ${lib.concatStringsSep " " additionalPaths'}
|
||||
''}
|
||||
|
||||
diskImage=nixos.raw
|
||||
|
||||
${if diskSize == "auto" then ''
|
||||
${if partitionTableType == "efi" || partitionTableType == "efixbootldr" || partitionTableType == "hybrid" then ''
|
||||
# Add the GPT at the end
|
||||
gptSpace=$(( 512 * 34 * 1 ))
|
||||
# Normally we'd need to account for alignment and things, if bootSize
|
||||
# represented the actual size of the boot partition. But it instead
|
||||
# represents the offset at which it ends.
|
||||
# So we know bootSize is the reserved space in front of the partition.
|
||||
reservedSpace=$(( gptSpace + $(numfmt --from=iec '${bootSize}') ))
|
||||
'' else if partitionTableType == "legacy+gpt" then ''
|
||||
# Add the GPT at the end
|
||||
gptSpace=$(( 512 * 34 * 1 ))
|
||||
# And include the bios_grub partition; the ext4 partition starts at 2MB exactly.
|
||||
reservedSpace=$(( gptSpace + 2 * mebibyte ))
|
||||
'' else if partitionTableType == "legacy" then ''
|
||||
# Add the 1MiB aligned reserved space (includes MBR)
|
||||
reservedSpace=$(( mebibyte ))
|
||||
'' else ''
|
||||
reservedSpace=0
|
||||
''}
|
||||
additionalSpace=$(( $(numfmt --from=iec '${additionalSpace}') + reservedSpace ))
|
||||
bootSize=$(round_to_nearest $(numfmt --from=iec '${bootSize}') $mebibyte)
|
||||
bootSizeMiB=$(( bootSize / 1024 / 1024 ))MiB
|
||||
|
||||
# Compute required space in filesystem blocks
|
||||
diskUsage=$(find . ! -type d -print0 | du --files0-from=- --apparent-size --count-links --block-size "${blockSize}" | cut -f1 | sum_lines)
|
||||
# Each inode takes space!
|
||||
numInodes=$(find . | wc -l)
|
||||
# Convert to bytes, inodes take two blocks each!
|
||||
diskUsage=$(( (diskUsage + 2 * numInodes) * ${blockSize} ))
|
||||
# Then increase the required space to account for the reserved blocks.
|
||||
fudge=$(compute_fudge $diskUsage)
|
||||
requiredFilesystemSpace=$(( diskUsage + fudge ))
|
||||
${
|
||||
if diskSize == "auto" then
|
||||
''
|
||||
${
|
||||
if
|
||||
partitionTableType == "efi" || partitionTableType == "efixbootldr" || partitionTableType == "hybrid"
|
||||
then
|
||||
''
|
||||
# Add the GPT at the end
|
||||
gptSpace=$(( 512 * 34 * 1 ))
|
||||
# Normally we'd need to account for alignment and things, if bootSize
|
||||
# represented the actual size of the boot partition. But it instead
|
||||
# represents the offset at which it ends.
|
||||
# So we know bootSize is the reserved space in front of the partition.
|
||||
reservedSpace=$(( gptSpace + bootSize ))
|
||||
''
|
||||
else if partitionTableType == "legacy+gpt" then
|
||||
''
|
||||
# Add the GPT at the end
|
||||
gptSpace=$(( 512 * 34 * 1 ))
|
||||
# And include the bios_grub partition; the ext4 partition starts at 2MiB exactly.
|
||||
reservedSpace=$(( gptSpace + 2 * mebibyte ))
|
||||
''
|
||||
else if partitionTableType == "legacy" then
|
||||
''
|
||||
# Add the 1MiB aligned reserved space (includes MBR)
|
||||
reservedSpace=$(( mebibyte ))
|
||||
''
|
||||
else
|
||||
''
|
||||
reservedSpace=0
|
||||
''
|
||||
}
|
||||
additionalSpace=$(( $(numfmt --from=iec '${additionalSpace}') + reservedSpace ))
|
||||
|
||||
diskSize=$(( requiredFilesystemSpace + additionalSpace ))
|
||||
# Compute required space in filesystem blocks
|
||||
diskUsage=$(find . ! -type d -print0 | du --files0-from=- --apparent-size --count-links --block-size "${blockSize}" | cut -f1 | sum_lines)
|
||||
# Each inode takes space!
|
||||
numInodes=$(find . | wc -l)
|
||||
# Convert to bytes, inodes take two blocks each!
|
||||
diskUsage=$(( (diskUsage + 2 * numInodes) * ${blockSize} ))
|
||||
# Then increase the required space to account for the reserved blocks.
|
||||
fudge=$(compute_fudge $diskUsage)
|
||||
requiredFilesystemSpace=$(( diskUsage + fudge ))
|
||||
|
||||
# Round up to the nearest mebibyte.
|
||||
# This ensures whole 512 bytes sector sizes in the disk image
|
||||
# and helps towards aligning partitions optimally.
|
||||
if (( diskSize % mebibyte )); then
|
||||
diskSize=$(( ( diskSize / mebibyte + 1) * mebibyte ))
|
||||
fi
|
||||
# Round up to the nearest block size.
|
||||
# This ensures whole $blockSize bytes block sizes in the filesystem
|
||||
# and helps towards aligning partitions optimally.
|
||||
requiredFilesystemSpace=$(round_to_nearest $requiredFilesystemSpace ${blockSize})
|
||||
|
||||
truncate -s "$diskSize" $diskImage
|
||||
diskSize=$(( requiredFilesystemSpace + additionalSpace ))
|
||||
|
||||
printf "Automatic disk size...\n"
|
||||
printf " Closure space use: %d bytes\n" $diskUsage
|
||||
printf " fudge: %d bytes\n" $fudge
|
||||
printf " Filesystem size needed: %d bytes\n" $requiredFilesystemSpace
|
||||
printf " Additional space: %d bytes\n" $additionalSpace
|
||||
printf " Disk image size: %d bytes\n" $diskSize
|
||||
'' else ''
|
||||
truncate -s ${toString diskSize}M $diskImage
|
||||
''}
|
||||
# Round up to the nearest mebibyte.
|
||||
# This ensures whole 512 bytes sector sizes in the disk image
|
||||
# and helps towards aligning partitions optimally.
|
||||
diskSize=$(round_to_nearest $diskSize $mebibyte)
|
||||
|
||||
truncate -s "$diskSize" $diskImage
|
||||
|
||||
printf "Automatic disk size...\n"
|
||||
printf " Closure space use: %d bytes\n" $diskUsage
|
||||
printf " fudge: %d bytes\n" $fudge
|
||||
printf " Filesystem size needed: %d bytes\n" $requiredFilesystemSpace
|
||||
printf " Additional space: %d bytes\n" $additionalSpace
|
||||
printf " Disk image size: %d bytes\n" $diskSize
|
||||
''
|
||||
else
|
||||
''
|
||||
truncate -s ${toString diskSize}M $diskImage
|
||||
''
|
||||
}
|
||||
|
||||
${partitionDiskScript}
|
||||
|
||||
${if partitionTableType != "none" then ''
|
||||
# Get start & length of the root partition in sectors to $START and $SECTORS.
|
||||
eval $(partx $diskImage -o START,SECTORS --nr ${rootPartition} --pairs)
|
||||
${
|
||||
if partitionTableType != "none" then
|
||||
''
|
||||
# Get start & length of the root partition in sectors to $START and $SECTORS.
|
||||
eval $(partx $diskImage -o START,SECTORS --nr ${rootPartition} --pairs)
|
||||
|
||||
mkfs.${fsType} -b ${blockSize} -F -L ${label} $diskImage -E offset=$(sectorsToBytes $START) $(sectorsToKilobytes $SECTORS)K
|
||||
'' else ''
|
||||
mkfs.${fsType} -b ${blockSize} -F -L ${label} $diskImage
|
||||
''}
|
||||
mkfs.${fsType} -b ${blockSize} -F -L ${label} $diskImage -E offset=$(sectorsToBytes $START) $(sectorsToKilobytes $SECTORS)K
|
||||
''
|
||||
else
|
||||
''
|
||||
mkfs.${fsType} -b ${blockSize} -F -L ${label} $diskImage
|
||||
''
|
||||
}
|
||||
|
||||
echo "copying staging root to image..."
|
||||
cptofs -p ${lib.optionalString (partitionTableType != "none") "-P ${rootPartition}"} \
|
||||
@@ -523,11 +610,16 @@ let format' = format; in let
|
||||
'';
|
||||
|
||||
moveOrConvertImage = ''
|
||||
${if format == "raw" then ''
|
||||
mv $diskImage $out/${filename}
|
||||
'' else ''
|
||||
${pkgs.qemu-utils}/bin/qemu-img convert -f raw -O ${format} ${compress} $diskImage $out/${filename}
|
||||
''}
|
||||
${
|
||||
if format == "raw" then
|
||||
''
|
||||
mv $diskImage $out/${filename}
|
||||
''
|
||||
else
|
||||
''
|
||||
${pkgs.qemu-utils}/bin/qemu-img convert -f raw -O ${format} ${compress} $diskImage $out/${filename}
|
||||
''
|
||||
}
|
||||
diskImage=$out/${filename}
|
||||
'';
|
||||
|
||||
@@ -543,74 +635,87 @@ let format' = format; in let
|
||||
'';
|
||||
|
||||
buildImage = pkgs.vmTools.runInLinuxVM (
|
||||
pkgs.runCommand name {
|
||||
preVM = prepareImage + lib.optionalString touchEFIVars createEFIVars;
|
||||
buildInputs = with pkgs; [ util-linux e2fsprogs dosfstools ];
|
||||
postVM = moveOrConvertImage + createHydraBuildProducts + postVM;
|
||||
QEMU_OPTS =
|
||||
lib.concatStringsSep " " (lib.optional useEFIBoot "-drive if=pflash,format=raw,unit=0,readonly=on,file=${efiFirmware}"
|
||||
++ lib.optionals touchEFIVars [
|
||||
"-drive if=pflash,format=raw,unit=1,file=$efiVars"
|
||||
] ++ lib.optionals (OVMF.systemManagementModeRequired or false) [
|
||||
"-machine" "q35,smm=on"
|
||||
"-global" "driver=cfi.pflash01,property=secure,value=on"
|
||||
]
|
||||
);
|
||||
inherit memSize;
|
||||
} ''
|
||||
export PATH=${binPath}:$PATH
|
||||
pkgs.runCommand name
|
||||
{
|
||||
preVM = prepareImage + lib.optionalString touchEFIVars createEFIVars;
|
||||
buildInputs = with pkgs; [
|
||||
util-linux
|
||||
e2fsprogs
|
||||
dosfstools
|
||||
];
|
||||
postVM = moveOrConvertImage + createHydraBuildProducts + postVM;
|
||||
QEMU_OPTS = lib.concatStringsSep " " (
|
||||
lib.optional useEFIBoot "-drive if=pflash,format=raw,unit=0,readonly=on,file=${efiFirmware}"
|
||||
++ lib.optionals touchEFIVars [
|
||||
"-drive if=pflash,format=raw,unit=1,file=$efiVars"
|
||||
]
|
||||
++ lib.optionals (OVMF.systemManagementModeRequired or false) [
|
||||
"-machine"
|
||||
"q35,smm=on"
|
||||
"-global"
|
||||
"driver=cfi.pflash01,property=secure,value=on"
|
||||
]
|
||||
);
|
||||
inherit memSize;
|
||||
}
|
||||
''
|
||||
export PATH=${binPath}:$PATH
|
||||
|
||||
rootDisk=${if partitionTableType != "none" then "/dev/vda${rootPartition}" else "/dev/vda"}
|
||||
rootDisk=${if partitionTableType != "none" then "/dev/vda${rootPartition}" else "/dev/vda"}
|
||||
|
||||
# It is necessary to set root filesystem unique identifier in advance, otherwise
|
||||
# bootloader might get the wrong one and fail to boot.
|
||||
# At the end, we reset again because we want deterministic timestamps.
|
||||
${lib.optionalString (fsType == "ext4" && deterministic) ''
|
||||
tune2fs -T now ${lib.optionalString deterministic "-U ${rootFSUID}"} -c 0 -i 0 $rootDisk
|
||||
''}
|
||||
# make systemd-boot find ESP without udev
|
||||
mkdir /dev/block
|
||||
ln -s /dev/vda1 /dev/block/254:1
|
||||
# It is necessary to set root filesystem unique identifier in advance, otherwise
|
||||
# bootloader might get the wrong one and fail to boot.
|
||||
# At the end, we reset again because we want deterministic timestamps.
|
||||
${lib.optionalString (fsType == "ext4" && deterministic) ''
|
||||
tune2fs -T now ${lib.optionalString deterministic "-U ${rootFSUID}"} -c 0 -i 0 $rootDisk
|
||||
''}
|
||||
# make systemd-boot find ESP without udev
|
||||
mkdir /dev/block
|
||||
ln -s /dev/vda1 /dev/block/254:1
|
||||
|
||||
mountPoint=/mnt
|
||||
mkdir $mountPoint
|
||||
mount $rootDisk $mountPoint
|
||||
mountPoint=/mnt
|
||||
mkdir $mountPoint
|
||||
mount $rootDisk $mountPoint
|
||||
|
||||
# Create the ESP and mount it. Unlike e2fsprogs, mkfs.vfat doesn't support an
|
||||
# '-E offset=X' option, so we can't do this outside the VM.
|
||||
${lib.optionalString (partitionTableType == "efi" || partitionTableType == "hybrid") ''
|
||||
mkdir -p /mnt/boot
|
||||
mkfs.vfat -n ESP /dev/vda1
|
||||
mount /dev/vda1 /mnt/boot
|
||||
# Create the ESP and mount it. Unlike e2fsprogs, mkfs.vfat doesn't support an
|
||||
# '-E offset=X' option, so we can't do this outside the VM.
|
||||
${lib.optionalString (partitionTableType == "efi" || partitionTableType == "hybrid") ''
|
||||
mkdir -p /mnt/boot
|
||||
mkfs.vfat -n ESP /dev/vda1
|
||||
mount /dev/vda1 /mnt/boot
|
||||
|
||||
${lib.optionalString touchEFIVars "mount -t efivarfs efivarfs /sys/firmware/efi/efivars"}
|
||||
''}
|
||||
${lib.optionalString (partitionTableType == "efixbootldr") ''
|
||||
mkdir -p /mnt/{boot,efi}
|
||||
mkfs.vfat -n ESP /dev/vda1
|
||||
mkfs.vfat -n BOOT /dev/vda2
|
||||
mount /dev/vda1 /mnt/efi
|
||||
mount /dev/vda2 /mnt/boot
|
||||
${lib.optionalString touchEFIVars "mount -t efivarfs efivarfs /sys/firmware/efi/efivars"}
|
||||
''}
|
||||
${lib.optionalString (partitionTableType == "efixbootldr") ''
|
||||
mkdir -p /mnt/{boot,efi}
|
||||
mkfs.vfat -n ESP /dev/vda1
|
||||
mkfs.vfat -n BOOT /dev/vda2
|
||||
mount /dev/vda1 /mnt/efi
|
||||
mount /dev/vda2 /mnt/boot
|
||||
|
||||
${lib.optionalString touchEFIVars "mount -t efivarfs efivarfs /sys/firmware/efi/efivars"}
|
||||
''}
|
||||
${lib.optionalString touchEFIVars "mount -t efivarfs efivarfs /sys/firmware/efi/efivars"}
|
||||
''}
|
||||
|
||||
# Install a configuration.nix
|
||||
mkdir -p /mnt/etc/nixos
|
||||
${lib.optionalString (configFile != null) ''
|
||||
cp ${configFile} /mnt/etc/nixos/configuration.nix
|
||||
''}
|
||||
# Install a configuration.nix
|
||||
mkdir -p /mnt/etc/nixos
|
||||
${lib.optionalString (configFile != null) ''
|
||||
cp ${configFile} /mnt/etc/nixos/configuration.nix
|
||||
''}
|
||||
|
||||
${lib.optionalString installBootLoader ''
|
||||
# In this throwaway resource, we only have /dev/vda, but the actual VM may refer to another disk for bootloader, e.g. /dev/vdb
|
||||
# Use this option to create a symlink from vda to any arbitrary device you want.
|
||||
${lib.optionalString (config.boot.loader.grub.enable) (lib.concatMapStringsSep " " (device:
|
||||
lib.optionalString (device != "/dev/vda") ''
|
||||
mkdir -p "$(dirname ${device})"
|
||||
ln -s /dev/vda ${device}
|
||||
'') config.boot.loader.grub.devices)}
|
||||
${lib.optionalString installBootLoader ''
|
||||
# In this throwaway resource, we only have /dev/vda, but the actual VM may refer to another disk for bootloader, e.g. /dev/vdb
|
||||
# Use this option to create a symlink from vda to any arbitrary device you want.
|
||||
${lib.optionalString (config.boot.loader.grub.enable) (
|
||||
lib.concatMapStringsSep " " (
|
||||
device:
|
||||
lib.optionalString (device != "/dev/vda") ''
|
||||
mkdir -p "$(dirname ${device})"
|
||||
ln -s /dev/vda ${device}
|
||||
''
|
||||
) config.boot.loader.grub.devices
|
||||
)}
|
||||
|
||||
# Set up core system link, bootloader (sd-boot, GRUB, uboot, etc.), etc.
|
||||
# Set up core system link, bootloader (sd-boot, GRUB, uboot, etc.), etc.
|
||||
|
||||
# NOTE: systemd-boot-builder.py calls nix-env --list-generations which
|
||||
# clobbers $HOME/.nix-defexpr/channels/nixos This would cause a folder
|
||||
@@ -621,37 +726,37 @@ let format' = format; in let
|
||||
NIXOS_INSTALL_BOOTLOADER=1 nixos-enter --root $mountPoint -- /nix/var/nix/profiles/system/bin/switch-to-configuration boot
|
||||
''}
|
||||
|
||||
# Set the ownerships of the contents. The modes are set in preVM.
|
||||
# No globbing on targets, so no need to set -f
|
||||
targets_=(${lib.concatStringsSep " " targets})
|
||||
users_=(${lib.concatStringsSep " " users})
|
||||
groups_=(${lib.concatStringsSep " " groups})
|
||||
for ((i = 0; i < ''${#targets_[@]}; i++)); do
|
||||
target="''${targets_[$i]}"
|
||||
user="''${users_[$i]}"
|
||||
group="''${groups_[$i]}"
|
||||
if [ -n "$user$group" ]; then
|
||||
# We have to nixos-enter since we need to use the user and group of the VM
|
||||
nixos-enter --root $mountPoint -- chown -R "$user:$group" "$target"
|
||||
fi
|
||||
done
|
||||
# Set the ownerships of the contents. The modes are set in preVM.
|
||||
# No globbing on targets, so no need to set -f
|
||||
targets_=(${lib.concatStringsSep " " targets})
|
||||
users_=(${lib.concatStringsSep " " users})
|
||||
groups_=(${lib.concatStringsSep " " groups})
|
||||
for ((i = 0; i < ''${#targets_[@]}; i++)); do
|
||||
target="''${targets_[$i]}"
|
||||
user="''${users_[$i]}"
|
||||
group="''${groups_[$i]}"
|
||||
if [ -n "$user$group" ]; then
|
||||
# We have to nixos-enter since we need to use the user and group of the VM
|
||||
nixos-enter --root $mountPoint -- chown -R "$user:$group" "$target"
|
||||
fi
|
||||
done
|
||||
|
||||
umount -R /mnt
|
||||
umount -R /mnt
|
||||
|
||||
# Make sure resize2fs works. Note that resize2fs has stricter criteria for resizing than a normal
|
||||
# mount, so the `-c 0` and `-i 0` don't affect it. Setting it to `now` doesn't produce deterministic
|
||||
# output, of course, but we can fix that when/if we start making images deterministic.
|
||||
# In deterministic mode, this is fixed to 1970-01-01 (UNIX timestamp 0).
|
||||
# This two-step approach is necessary otherwise `tune2fs` will want a fresher filesystem to perform
|
||||
# some changes.
|
||||
${lib.optionalString (fsType == "ext4") ''
|
||||
tune2fs -T now ${lib.optionalString deterministic "-U ${rootFSUID}"} -c 0 -i 0 $rootDisk
|
||||
${lib.optionalString deterministic "tune2fs -f -T 19700101 $rootDisk"}
|
||||
''}
|
||||
''
|
||||
# Make sure resize2fs works. Note that resize2fs has stricter criteria for resizing than a normal
|
||||
# mount, so the `-c 0` and `-i 0` don't affect it. Setting it to `now` doesn't produce deterministic
|
||||
# output, of course, but we can fix that when/if we start making images deterministic.
|
||||
# In deterministic mode, this is fixed to 1970-01-01 (UNIX timestamp 0).
|
||||
# This two-step approach is necessary otherwise `tune2fs` will want a fresher filesystem to perform
|
||||
# some changes.
|
||||
${lib.optionalString (fsType == "ext4") ''
|
||||
tune2fs -T now ${lib.optionalString deterministic "-U ${rootFSUID}"} -c 0 -i 0 $rootDisk
|
||||
${lib.optionalString deterministic "tune2fs -f -T 19700101 $rootDisk"}
|
||||
''}
|
||||
''
|
||||
);
|
||||
in
|
||||
if onlyNixStore then
|
||||
pkgs.runCommand name {}
|
||||
(prepareImage + moveOrConvertImage + createHydraBuildProducts + postVM)
|
||||
else buildImage
|
||||
if onlyNixStore then
|
||||
pkgs.runCommand name { } (prepareImage + moveOrConvertImage + createHydraBuildProducts + postVM)
|
||||
else
|
||||
buildImage
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
source $stdenv/setup
|
||||
|
||||
sources_=($sources)
|
||||
targets_=($targets)
|
||||
|
||||
|
||||
@@ -105,14 +105,16 @@ def _perform_ocr_on_screenshot(
|
||||
|
||||
tess_args = "-c debug_file=/dev/null --psm 11"
|
||||
|
||||
cmd = f"convert {magick_args} '{screenshot_path}' 'tiff:{screenshot_path}.tiff'"
|
||||
cmd = f"magick convert {magick_args} '{screenshot_path}' '{screenshot_path}.png'"
|
||||
ret = subprocess.run(cmd, shell=True, capture_output=True)
|
||||
if ret.returncode != 0:
|
||||
raise Exception(f"TIFF conversion failed with exit code {ret.returncode}")
|
||||
raise Exception(
|
||||
f"Image processing failed with exit code {ret.returncode}, stdout: {ret.stdout.decode()}, stderr: {ret.stderr.decode()}"
|
||||
)
|
||||
|
||||
model_results = []
|
||||
for model_id in model_ids:
|
||||
cmd = f"tesseract '{screenshot_path}.tiff' - {tess_args} --oem '{model_id}'"
|
||||
cmd = f"tesseract '{screenshot_path}.png' - {tess_args} --oem '{model_id}'"
|
||||
ret = subprocess.run(cmd, shell=True, capture_output=True)
|
||||
if ret.returncode != 0:
|
||||
raise Exception(f"OCR failed with exit code {ret.returncode}")
|
||||
@@ -352,7 +354,7 @@ class Machine:
|
||||
timing out.
|
||||
"""
|
||||
|
||||
def check_active(_: Any) -> bool:
|
||||
def check_active(_last_try: bool) -> bool:
|
||||
state = self.get_unit_property(unit, "ActiveState", user)
|
||||
if state == "failed":
|
||||
raise Exception(f'unit "{unit}" reached state "{state}"')
|
||||
@@ -637,7 +639,7 @@ class Machine:
|
||||
"""
|
||||
output = ""
|
||||
|
||||
def check_success(_: Any) -> bool:
|
||||
def check_success(_last_try: bool) -> bool:
|
||||
nonlocal output
|
||||
status, output = self.execute(command, timeout=timeout)
|
||||
return status == 0
|
||||
@@ -652,7 +654,7 @@ class Machine:
|
||||
"""
|
||||
output = ""
|
||||
|
||||
def check_failure(_: Any) -> bool:
|
||||
def check_failure(_last_try: bool) -> bool:
|
||||
nonlocal output
|
||||
status, output = self.execute(command, timeout=timeout)
|
||||
return status != 0
|
||||
@@ -712,9 +714,9 @@ class Machine:
|
||||
"""
|
||||
matcher = re.compile(regexp)
|
||||
|
||||
def tty_matches(last: bool) -> bool:
|
||||
def tty_matches(last_try: bool) -> bool:
|
||||
text = self.get_tty_text(tty)
|
||||
if last:
|
||||
if last_try:
|
||||
self.log(
|
||||
f"Last chance to match /{regexp}/ on TTY{tty}, "
|
||||
f"which currently contains: {text}"
|
||||
@@ -739,7 +741,7 @@ class Machine:
|
||||
Waits until the file exists in the machine's file system.
|
||||
"""
|
||||
|
||||
def check_file(_: Any) -> bool:
|
||||
def check_file(_last_try: bool) -> bool:
|
||||
status, _ = self.execute(f"test -e {filename}")
|
||||
return status == 0
|
||||
|
||||
@@ -754,7 +756,7 @@ class Machine:
|
||||
(default `localhost`).
|
||||
"""
|
||||
|
||||
def port_is_open(_: Any) -> bool:
|
||||
def port_is_open(_last_try: bool) -> bool:
|
||||
status, _ = self.execute(f"nc -z {addr} {port}")
|
||||
return status == 0
|
||||
|
||||
@@ -774,7 +776,7 @@ class Machine:
|
||||
"-uU" if is_datagram else "-U",
|
||||
]
|
||||
|
||||
def socket_is_open(_: Any) -> bool:
|
||||
def socket_is_open(_last_try: bool) -> bool:
|
||||
status, _ = self.execute(f"nc {' '.join(nc_flags)} {addr}")
|
||||
return status == 0
|
||||
|
||||
@@ -791,7 +793,7 @@ class Machine:
|
||||
(default `localhost`).
|
||||
"""
|
||||
|
||||
def port_is_closed(_: Any) -> bool:
|
||||
def port_is_closed(_last_try: bool) -> bool:
|
||||
status, _ = self.execute(f"nc -z {addr} {port}")
|
||||
return status != 0
|
||||
|
||||
@@ -984,13 +986,13 @@ class Machine:
|
||||
:::
|
||||
"""
|
||||
|
||||
def screen_matches(last: bool) -> bool:
|
||||
def screen_matches(last_try: bool) -> bool:
|
||||
variants = self.get_screen_text_variants()
|
||||
for text in variants:
|
||||
if re.search(regex, text) is not None:
|
||||
return True
|
||||
|
||||
if last:
|
||||
if last_try:
|
||||
self.log(f"Last OCR attempt failed. Text was: {variants}")
|
||||
|
||||
return False
|
||||
@@ -1008,7 +1010,7 @@ class Machine:
|
||||
# to match multiline regexes.
|
||||
console = io.StringIO()
|
||||
|
||||
def console_matches(_: Any) -> bool:
|
||||
def console_matches(_last_try: bool) -> bool:
|
||||
nonlocal console
|
||||
try:
|
||||
# This will return as soon as possible and
|
||||
@@ -1154,7 +1156,7 @@ class Machine:
|
||||
Wait until it is possible to connect to the X server.
|
||||
"""
|
||||
|
||||
def check_x(_: Any) -> bool:
|
||||
def check_x(_last_try: bool) -> bool:
|
||||
cmd = (
|
||||
"journalctl -b SYSLOG_IDENTIFIER=systemd | "
|
||||
+ 'grep "Reached target Current graphical"'
|
||||
|
||||
@@ -43,7 +43,7 @@ let
|
||||
manPage = ./manpages/nixos-version.8;
|
||||
};
|
||||
|
||||
nixos-install = pkgs.nixos-install.override { nix = config.nix.package; };
|
||||
nixos-install = pkgs.nixos-install.override { };
|
||||
nixos-rebuild = pkgs.nixos-rebuild.override { nix = config.nix.package; };
|
||||
nixos-rebuild-ng = pkgs.nixos-rebuild-ng.override {
|
||||
nix = config.nix.package;
|
||||
|
||||
@@ -1329,6 +1329,7 @@
|
||||
./services/networking/xrdp.nix
|
||||
./services/networking/yggdrasil.nix
|
||||
./services/networking/zapret.nix
|
||||
./services/networking/yggdrasil-jumper.nix
|
||||
./services/networking/zerobin.nix
|
||||
./services/networking/zenohd.nix
|
||||
./services/networking/zeronet.nix
|
||||
|
||||
@@ -12,16 +12,18 @@
|
||||
|
||||
let
|
||||
cfg = config.programs.command-not-found;
|
||||
commandNotFound = pkgs.substituteAll {
|
||||
commandNotFound = pkgs.replaceVarsWith {
|
||||
name = "command-not-found";
|
||||
dir = "bin";
|
||||
src = ./command-not-found.pl;
|
||||
isExecutable = true;
|
||||
inherit (cfg) dbPath;
|
||||
perl = pkgs.perl.withPackages (p: [
|
||||
p.DBDSQLite
|
||||
p.StringShellQuote
|
||||
]);
|
||||
replacements = {
|
||||
inherit (cfg) dbPath;
|
||||
perl = pkgs.perl.withPackages (p: [
|
||||
p.DBDSQLite
|
||||
p.StringShellQuote
|
||||
]);
|
||||
};
|
||||
};
|
||||
|
||||
in
|
||||
|
||||
@@ -7,25 +7,63 @@
|
||||
let
|
||||
inherit (lib)
|
||||
getExe
|
||||
isBool
|
||||
literalExpression
|
||||
maintainers
|
||||
mkEnableOption
|
||||
mkIf
|
||||
mkMerge
|
||||
mkOption
|
||||
mkPackageOption
|
||||
optionalString
|
||||
replaceChars
|
||||
substring
|
||||
toLower
|
||||
types
|
||||
;
|
||||
inherit (types) str;
|
||||
inherit (types)
|
||||
bool
|
||||
either
|
||||
listOf
|
||||
str
|
||||
submodule
|
||||
;
|
||||
|
||||
cfg = config.programs.pay-respects;
|
||||
|
||||
settingsFormat = pkgs.formats.toml { };
|
||||
inherit (settingsFormat) generate type;
|
||||
|
||||
finalPackage =
|
||||
if cfg.aiIntegration != true then
|
||||
(pkgs.runCommand "pay-respects-wrapper"
|
||||
{
|
||||
nativeBuildInputs = [ pkgs.makeBinaryWrapper ];
|
||||
inherit (cfg.package) meta;
|
||||
}
|
||||
''
|
||||
mkdir -p $out/bin
|
||||
makeWrapper ${getExe cfg.package} $out/bin/${cfg.package.meta.mainProgram} \
|
||||
${optionalString (cfg.aiIntegration == false) "--set _PR_AI_DISABLE true"}
|
||||
${optionalString (cfg.aiIntegration != false) ''
|
||||
--set _PR_AI_URL ${cfg.aiIntegration.url} \
|
||||
--set _PR_AI_MODEL ${cfg.aiIntegration.model} \
|
||||
--set _PR_AI_LOCALE ${cfg.aiIntegration.locale}
|
||||
''}
|
||||
''
|
||||
)
|
||||
else
|
||||
cfg.package;
|
||||
|
||||
initScript =
|
||||
shell:
|
||||
if (shell != "fish") then
|
||||
''
|
||||
eval $(${getExe pkgs.pay-respects} ${shell} --alias ${cfg.alias})
|
||||
eval $(${getExe finalPackage} ${shell} --alias ${cfg.alias})
|
||||
''
|
||||
else
|
||||
''
|
||||
${getExe pkgs.pay-respects} ${shell} --alias ${cfg.alias} | source
|
||||
${getExe finalPackage} ${shell} --alias ${cfg.alias} | source
|
||||
'';
|
||||
in
|
||||
{
|
||||
@@ -33,6 +71,8 @@ in
|
||||
programs.pay-respects = {
|
||||
enable = mkEnableOption "pay-respects, an app which corrects your previous console command";
|
||||
|
||||
package = mkPackageOption pkgs "pay-respects" { };
|
||||
|
||||
alias = mkOption {
|
||||
default = "f";
|
||||
type = str;
|
||||
@@ -41,11 +81,104 @@ in
|
||||
The default value is `f`, but you can use anything else as well.
|
||||
'';
|
||||
};
|
||||
runtimeRules = mkOption {
|
||||
type = listOf type;
|
||||
default = [ ];
|
||||
example = literalExpression ''
|
||||
[
|
||||
{
|
||||
command = "xl";
|
||||
match_err = [
|
||||
{
|
||||
pattern = [
|
||||
"Permission denied"
|
||||
];
|
||||
suggest = [
|
||||
'''
|
||||
#[executable(sudo), !cmd_contains(sudo), err_contains(libxl: error:)]
|
||||
sudo {{command}}
|
||||
'''
|
||||
];
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
'';
|
||||
description = ''
|
||||
List of rules to be added to `/etc/xdg/pay-respects/rules`.
|
||||
`pay-respects` will read the contents of these generated rules to recommend command corrections.
|
||||
Each rule module should start with the `command` attribute that specifies the command name. See the [upstream documentation](https://codeberg.org/iff/pay-respects/src/branch/main/rules.md) for more information.
|
||||
'';
|
||||
};
|
||||
aiIntegration = mkOption {
|
||||
default = false;
|
||||
example = {
|
||||
url = "http://127.0.0.1:11434/v1/chat/completions";
|
||||
model = "llama3";
|
||||
locale = "nl-be";
|
||||
};
|
||||
description = ''
|
||||
Whether to enable `pay-respects`' LLM integration. When there is no rule for a given error, `pay-respects` can query an OpenAI-compatible API endpoint for command corrections.
|
||||
|
||||
- If this is set to `false`, all LLM-related features are disabled.
|
||||
- If this is set to `true`, the default OpenAI endpoint will be used, using upstream's API key. This default API key may be rate-limited.
|
||||
- You can also set a custom API endpoint, large language model and locale for command corrections. Simply access the `aiIntegration.url`, `aiIntegration.model` and `aiIntegration.locale` options, as described in the example.
|
||||
- Take a look at the [services.ollama](#opt-services.ollama.enable) NixOS module if you wish to host a local large language model for `pay-respects`.
|
||||
|
||||
For all of these methods, you can set a custom secret API key by using the `_PR_AI_API_KEY` environment variable.
|
||||
'';
|
||||
type = either bool (submodule {
|
||||
options = {
|
||||
url = mkOption {
|
||||
default = "";
|
||||
example = "https://api.openai.com/v1/chat/completions";
|
||||
type = str;
|
||||
description = "The OpenAI-compatible API endpoint that `pay-respects` will query for command corrections.";
|
||||
};
|
||||
model = mkOption {
|
||||
default = "";
|
||||
example = "llama3";
|
||||
type = str;
|
||||
description = "The model used by `pay-respects` to generate command corrections.";
|
||||
};
|
||||
locale = mkOption {
|
||||
default = toLower (replaceChars [ "_" ] [ "-" ] (substring 0 5 config.i18n.defaultLocale));
|
||||
example = "nl-be";
|
||||
type = str;
|
||||
description = ''
|
||||
The locale to be used for LLM responses.
|
||||
The accepted format is a lowercase [`ISO 639-1` language code](https://en.wikipedia.org/wiki/List_of_ISO_639_language_codes), followed by a dash '-', followed by a lowercase [`ISO 3166-1 alpha-2` country code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).
|
||||
'';
|
||||
};
|
||||
};
|
||||
});
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
environment.systemPackages = [ pkgs.pay-respects ];
|
||||
assertions =
|
||||
map
|
||||
(attr: {
|
||||
assertion = (!isBool cfg.aiIntegration) -> (cfg.aiIntegration.${attr} != "");
|
||||
message = ''
|
||||
programs.pay-respects.aiIntegration is configured as a submodule, but you have not configured a value for programs.pay-respects.aiIntegration.${attr}!
|
||||
'';
|
||||
})
|
||||
[
|
||||
"url"
|
||||
"model"
|
||||
];
|
||||
environment = mkMerge (
|
||||
[
|
||||
{
|
||||
systemPackages = [ finalPackage ];
|
||||
}
|
||||
]
|
||||
++ map (rule: {
|
||||
etc."xdg/pay-respects/rules/${rule.command}.toml".source = generate "${rule.command}.toml" rule;
|
||||
}) cfg.runtimeRules
|
||||
);
|
||||
|
||||
programs = {
|
||||
bash.interactiveShellInit = initScript "bash";
|
||||
|
||||
@@ -86,9 +86,7 @@ in
|
||||
[ "sound" "enableOSSEmulation" ]
|
||||
[ "hardware" "alsa" "enableOSSEmulation" ]
|
||||
)
|
||||
(lib.mkRenamedOptionModule
|
||||
[ "sound" "extraConfig" ]
|
||||
[ "hardware" "alsa" "config" ])
|
||||
(lib.mkRenamedOptionModule [ "sound" "extraConfig" ] [ "hardware" "alsa" "config" ])
|
||||
];
|
||||
|
||||
options.hardware.alsa = {
|
||||
@@ -191,7 +189,7 @@ in
|
||||
};
|
||||
})
|
||||
);
|
||||
default = {};
|
||||
default = { };
|
||||
example = lib.literalExpression ''
|
||||
{
|
||||
firefox = { device = "front"; maxVolume = -25.0; };
|
||||
@@ -286,154 +284,176 @@ in
|
||||
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
|
||||
# Disable sound servers enabled by default and,
|
||||
# if the user enabled one manually, cause a conflict.
|
||||
services.pipewire.enable = false;
|
||||
hardware.pulseaudio.enable = false;
|
||||
|
||||
hardware.alsa.config =
|
||||
let
|
||||
conf = [
|
||||
''
|
||||
pcm.!default fromenv
|
||||
|
||||
# Read the capture and playback device from
|
||||
# the ALSA_AUDIO_IN, ALSA_AUDIO_OUT variables
|
||||
pcm.fromenv {
|
||||
type asym
|
||||
playback.pcm {
|
||||
type plug
|
||||
slave.pcm {
|
||||
@func getenv
|
||||
vars [ ALSA_AUDIO_OUT ]
|
||||
default pcm.sysdefault
|
||||
}
|
||||
}
|
||||
capture.pcm {
|
||||
type plug
|
||||
slave.pcm {
|
||||
@func getenv
|
||||
vars [ ALSA_AUDIO_IN ]
|
||||
default pcm.sysdefault
|
||||
}
|
||||
}
|
||||
}
|
||||
''
|
||||
(lib.optional cfg.enableRecorder ''
|
||||
pcm.!default "splitter:fromenv,recorder"
|
||||
|
||||
# Send audio to two stereo devices
|
||||
pcm.splitter {
|
||||
@args [ A B ]
|
||||
@args.A.type string
|
||||
@args.B.type string
|
||||
type asym
|
||||
playback.pcm {
|
||||
type plug
|
||||
route_policy "duplicate"
|
||||
slave.pcm {
|
||||
type multi
|
||||
slaves.a.pcm $A
|
||||
slaves.b.pcm $B
|
||||
slaves.a.channels 2
|
||||
slaves.b.channels 2
|
||||
bindings [
|
||||
{ slave a channel 0 }
|
||||
{ slave a channel 1 }
|
||||
{ slave b channel 0 }
|
||||
{ slave b channel 1 }
|
||||
]
|
||||
}
|
||||
}
|
||||
capture.pcm $A
|
||||
}
|
||||
|
||||
# Device which records and plays back audio
|
||||
pcm.recorder {
|
||||
type asym
|
||||
capture.pcm {
|
||||
type dsnoop
|
||||
ipc_key 9165218
|
||||
ipc_perm 0666
|
||||
slave.pcm "hw:loopback,1,0"
|
||||
slave.period_size 1024
|
||||
slave.buffer_size 8192
|
||||
}
|
||||
playback.pcm {
|
||||
type dmix
|
||||
ipc_key 6181923
|
||||
ipc_perm 0666
|
||||
slave.pcm "hw:loopback,0,0"
|
||||
slave.period_size 1024
|
||||
slave.buffer_size 8192
|
||||
}
|
||||
}
|
||||
'')
|
||||
(lib.mapAttrsToList mkControl cfg.controls)
|
||||
(lib.mapAttrsToList (n: v: "pcm.${n} ${quote v}") cfg.deviceAliases)
|
||||
];
|
||||
in
|
||||
lib.mkBefore (lib.concatStringsSep "\n" (lib.flatten conf));
|
||||
|
||||
hardware.alsa.cardAliases = lib.mkIf cfg.enableRecorder {
|
||||
loopback.driver = "snd_aloop";
|
||||
loopback.id = 2;
|
||||
};
|
||||
|
||||
# Set default PCM devices
|
||||
environment.sessionVariables = defaultDeviceVars;
|
||||
systemd.globalEnvironment = defaultDeviceVars;
|
||||
|
||||
environment.etc."asound.conf".text = cfg.config;
|
||||
|
||||
boot.kernelModules =
|
||||
[ ]
|
||||
++ lib.optionals cfg.enableOSSEmulation [ "snd_pcm_oss" "snd_mixer_oss" ]
|
||||
++ lib.optionals cfg.enableRecorder [ "snd_aloop" ];
|
||||
|
||||
# Assign names to the sound cards
|
||||
boot.extraModprobeConfig = lib.concatStringsSep "\n" cardsConfig;
|
||||
|
||||
# Provide alsamixer, aplay, arecord, etc.
|
||||
environment.systemPackages = [ pkgs.alsa-utils ];
|
||||
|
||||
# Install udev rules for restoring card settings on boot
|
||||
services.udev.extraRules = ''
|
||||
ACTION=="add", SUBSYSTEM=="sound", KERNEL=="controlC*", KERNELS!="card*", GOTO="alsa_restore_go"
|
||||
GOTO="alsa_restore_end"
|
||||
|
||||
LABEL="alsa_restore_go"
|
||||
TEST!="/etc/alsa/state-daemon.conf", RUN+="${alsactl} restore -gU $attr{device/number}"
|
||||
TEST=="/etc/alsa/state-daemon.conf", RUN+="${alsactl} nrestore -gU $attr{device/number}"
|
||||
LABEL="alsa_restore_end"
|
||||
options.hardware.alsa.enablePersistence = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
defaultText = lib.literalExpression "config.hardware.alsa.enable";
|
||||
default = config.hardware.alsa.enable;
|
||||
description = ''
|
||||
Whether to enable ALSA sound card state saving on shutdown.
|
||||
This is generally not necessary if you're using an external sound server.
|
||||
'';
|
||||
|
||||
# Service to store/restore the sound card settings
|
||||
systemd.services.alsa-store = {
|
||||
description = "Store Sound Card State";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
restartIfChanged = false;
|
||||
unitConfig = {
|
||||
RequiresMountsFor = "/var/lib/alsa";
|
||||
ConditionVirtualization = "!systemd-nspawn";
|
||||
};
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
RemainAfterExit = true;
|
||||
StateDirectory = "alsa";
|
||||
# Note: the service should never be restated, otherwise any
|
||||
# setting changed between the last `store` and now will be lost.
|
||||
# To prevent NixOS from starting it in case it has failed we
|
||||
# expand the exit codes considered successful
|
||||
SuccessExitStatus = [ 0 99 ];
|
||||
ExecStart = "${alsactl} restore -gU";
|
||||
ExecStop = "${alsactl} store -gU";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkMerge [
|
||||
|
||||
(lib.mkIf cfg.enable {
|
||||
# Disable sound servers enabled by default and,
|
||||
# if the user enabled one manually, cause a conflict.
|
||||
services.pipewire.enable = false;
|
||||
services.pulseaudio.enable = false;
|
||||
|
||||
hardware.alsa.config =
|
||||
let
|
||||
conf = [
|
||||
''
|
||||
pcm.!default fromenv
|
||||
|
||||
# Read the capture and playback device from
|
||||
# the ALSA_AUDIO_IN, ALSA_AUDIO_OUT variables
|
||||
pcm.fromenv {
|
||||
type asym
|
||||
playback.pcm {
|
||||
type plug
|
||||
slave.pcm {
|
||||
@func getenv
|
||||
vars [ ALSA_AUDIO_OUT ]
|
||||
default pcm.sysdefault
|
||||
}
|
||||
}
|
||||
capture.pcm {
|
||||
type plug
|
||||
slave.pcm {
|
||||
@func getenv
|
||||
vars [ ALSA_AUDIO_IN ]
|
||||
default pcm.sysdefault
|
||||
}
|
||||
}
|
||||
}
|
||||
''
|
||||
(lib.optional cfg.enableRecorder ''
|
||||
pcm.!default "splitter:fromenv,recorder"
|
||||
|
||||
# Send audio to two stereo devices
|
||||
pcm.splitter {
|
||||
@args [ A B ]
|
||||
@args.A.type string
|
||||
@args.B.type string
|
||||
type asym
|
||||
playback.pcm {
|
||||
type plug
|
||||
route_policy "duplicate"
|
||||
slave.pcm {
|
||||
type multi
|
||||
slaves.a.pcm $A
|
||||
slaves.b.pcm $B
|
||||
slaves.a.channels 2
|
||||
slaves.b.channels 2
|
||||
bindings [
|
||||
{ slave a channel 0 }
|
||||
{ slave a channel 1 }
|
||||
{ slave b channel 0 }
|
||||
{ slave b channel 1 }
|
||||
]
|
||||
}
|
||||
}
|
||||
capture.pcm $A
|
||||
}
|
||||
|
||||
# Device which records and plays back audio
|
||||
pcm.recorder {
|
||||
type asym
|
||||
capture.pcm {
|
||||
type dsnoop
|
||||
ipc_key 9165218
|
||||
ipc_perm 0666
|
||||
slave.pcm "hw:loopback,1,0"
|
||||
slave.period_size 1024
|
||||
slave.buffer_size 8192
|
||||
}
|
||||
playback.pcm {
|
||||
type dmix
|
||||
ipc_key 6181923
|
||||
ipc_perm 0666
|
||||
slave.pcm "hw:loopback,0,0"
|
||||
slave.period_size 1024
|
||||
slave.buffer_size 8192
|
||||
}
|
||||
}
|
||||
'')
|
||||
(lib.mapAttrsToList mkControl cfg.controls)
|
||||
(lib.mapAttrsToList (n: v: "pcm.${n} ${quote v}") cfg.deviceAliases)
|
||||
];
|
||||
in
|
||||
lib.mkBefore (lib.concatStringsSep "\n" (lib.flatten conf));
|
||||
|
||||
hardware.alsa.cardAliases = lib.mkIf cfg.enableRecorder {
|
||||
loopback.driver = "snd_aloop";
|
||||
loopback.id = 2;
|
||||
};
|
||||
|
||||
# Set default PCM devices
|
||||
environment.sessionVariables = defaultDeviceVars;
|
||||
systemd.globalEnvironment = defaultDeviceVars;
|
||||
|
||||
environment.etc."asound.conf".text = cfg.config;
|
||||
|
||||
boot.kernelModules =
|
||||
[ ]
|
||||
++ lib.optionals cfg.enableOSSEmulation [
|
||||
"snd_pcm_oss"
|
||||
"snd_mixer_oss"
|
||||
]
|
||||
++ lib.optionals cfg.enableRecorder [ "snd_aloop" ];
|
||||
|
||||
# Assign names to the sound cards
|
||||
boot.extraModprobeConfig = lib.concatStringsSep "\n" cardsConfig;
|
||||
|
||||
# Provide alsamixer, aplay, arecord, etc.
|
||||
environment.systemPackages = [ pkgs.alsa-utils ];
|
||||
})
|
||||
|
||||
(lib.mkIf config.hardware.alsa.enablePersistence {
|
||||
|
||||
# Install udev rules for restoring card settings on boot
|
||||
services.udev.extraRules = ''
|
||||
ACTION=="add", SUBSYSTEM=="sound", KERNEL=="controlC*", KERNELS!="card*", GOTO="alsa_restore_go"
|
||||
GOTO="alsa_restore_end"
|
||||
|
||||
LABEL="alsa_restore_go"
|
||||
TEST!="/etc/alsa/state-daemon.conf", RUN+="${alsactl} restore -gU $attr{device/number}"
|
||||
TEST=="/etc/alsa/state-daemon.conf", RUN+="${alsactl} nrestore -gU $attr{device/number}"
|
||||
LABEL="alsa_restore_end"
|
||||
'';
|
||||
|
||||
# Service to store/restore the sound card settings
|
||||
systemd.services.alsa-store = {
|
||||
description = "Store Sound Card State";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
restartIfChanged = false;
|
||||
unitConfig = {
|
||||
RequiresMountsFor = "/var/lib/alsa";
|
||||
ConditionVirtualization = "!systemd-nspawn";
|
||||
};
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
RemainAfterExit = true;
|
||||
StateDirectory = "alsa";
|
||||
# Note: the service should never be restated, otherwise any
|
||||
# setting changed between the last `store` and now will be lost.
|
||||
# To prevent NixOS from starting it in case it has failed we
|
||||
# expand the exit codes considered successful
|
||||
SuccessExitStatus = [
|
||||
0
|
||||
99
|
||||
];
|
||||
ExecStart = "${alsactl} restore -gU";
|
||||
ExecStop = "${alsactl} store -gU";
|
||||
};
|
||||
};
|
||||
})
|
||||
|
||||
];
|
||||
|
||||
meta.maintainers = with lib.maintainers; [ rnhmjoj ];
|
||||
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@ A complete list of options for the Borgbase module may be found
|
||||
A very basic configuration for backing up to a locally accessible directory is:
|
||||
```nix
|
||||
{
|
||||
opt.services.borgbackup.jobs = {
|
||||
services.borgbackup.jobs = {
|
||||
rootBackup = {
|
||||
paths = "/";
|
||||
exclude = [ "/nix" "/path/to/local/repo" ];
|
||||
|
||||
@@ -331,7 +331,6 @@ in
|
||||
name = "wrappedSlurm";
|
||||
|
||||
builder = pkgs.writeText "builder.sh" ''
|
||||
source $stdenv/setup
|
||||
mkdir -p $out/bin
|
||||
find ${lib.getBin cfg.package}/bin -type f -executable | while read EXE
|
||||
do
|
||||
|
||||
@@ -19,8 +19,38 @@ in
|
||||
};
|
||||
|
||||
settings = lib.mkOption {
|
||||
type =
|
||||
lib.types.submodule { freeformType = with lib.types; attrsOf str; };
|
||||
type = lib.types.submodule {
|
||||
freeformType = with lib.types; attrsOf str;
|
||||
options = {
|
||||
FERRETDB_HANDLER = lib.mkOption {
|
||||
type = lib.types.enum [ "sqlite" "pg" ];
|
||||
default = "sqlite";
|
||||
description = "Backend handler";
|
||||
};
|
||||
|
||||
FERRETDB_SQLITE_URL = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "file:/var/lib/ferretdb/";
|
||||
description = "SQLite URI (directory) for 'sqlite' handler";
|
||||
};
|
||||
|
||||
FERRETDB_POSTGRESQL_URL = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "postgres://ferretdb@localhost/ferretdb?host=/run/postgresql";
|
||||
description = "PostgreSQL URL for 'pg' handler";
|
||||
};
|
||||
|
||||
FERRETDB_TELEMETRY = lib.mkOption {
|
||||
type = lib.types.enum [ "enable" "disable" ];
|
||||
default = "disable";
|
||||
description = ''
|
||||
Enable or disable basic telemetry.
|
||||
|
||||
See <https://docs.ferretdb.io/telemetry/> for more information.
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
example = {
|
||||
FERRETDB_LOG_LEVEL = "warn";
|
||||
FERRETDB_MODE = "normal";
|
||||
@@ -36,11 +66,7 @@ in
|
||||
|
||||
config = lib.mkIf cfg.enable
|
||||
{
|
||||
|
||||
services.ferretdb.settings = {
|
||||
FERRETDB_HANDLER = lib.mkDefault "sqlite";
|
||||
FERRETDB_SQLITE_URL = lib.mkDefault "file:/var/lib/ferretdb/";
|
||||
};
|
||||
services.ferretdb.settings = { };
|
||||
|
||||
systemd.services.ferretdb = {
|
||||
description = "FerretDB";
|
||||
|
||||
@@ -733,10 +733,12 @@ in
|
||||
] ++ lib.optionals (any extensionInstalled [ "plv8" ]) [ "@pkey" ];
|
||||
UMask = if groupAccessAvailable then "0027" else "0077";
|
||||
}
|
||||
(mkIf (cfg.dataDir != "/var/lib/postgresql") {
|
||||
(mkIf (cfg.dataDir != "/var/lib/postgresql/${cfg.package.psqlSchema}") {
|
||||
# The user provides their own data directory
|
||||
ReadWritePaths = [ cfg.dataDir ];
|
||||
})
|
||||
(mkIf (cfg.dataDir == "/var/lib/postgresql/${cfg.package.psqlSchema}") {
|
||||
# Provision the default data directory
|
||||
StateDirectory = "postgresql postgresql/${cfg.package.psqlSchema}";
|
||||
StateDirectoryMode = if groupAccessAvailable then "0750" else "0700";
|
||||
})
|
||||
|
||||
@@ -10,7 +10,6 @@ let
|
||||
cfg = config.services.wyoming.faster-whisper;
|
||||
|
||||
inherit (lib)
|
||||
escapeShellArgs
|
||||
mkOption
|
||||
mkEnableOption
|
||||
mkPackageOption
|
||||
@@ -240,7 +239,6 @@ in
|
||||
description = ''
|
||||
Extra arguments to pass to the server commandline.
|
||||
'';
|
||||
apply = escapeShellArgs;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -331,6 +331,7 @@ in
|
||||
ExecStart = "${cfg.package}/bin/celery --app paperless beat --loglevel INFO";
|
||||
Restart = "on-failure";
|
||||
LoadCredential = lib.optionalString (cfg.passwordFile != null) "PAPERLESS_ADMIN_PASSWORD:${cfg.passwordFile}";
|
||||
PrivateNetwork = cfg.database.createLocally; # defaultServiceConfig enables this by default, needs to be disabled for remote DBs
|
||||
};
|
||||
environment = env;
|
||||
|
||||
@@ -407,6 +408,7 @@ in
|
||||
User = cfg.user;
|
||||
ExecStart = "${cfg.package}/bin/paperless-ngx document_consumer";
|
||||
Restart = "on-failure";
|
||||
PrivateNetwork = cfg.database.createLocally; # defaultServiceConfig enables this by default, needs to be disabled for remote DBs
|
||||
};
|
||||
environment = env;
|
||||
# Allow the consumer to access the private /tmp directory of the server.
|
||||
|
||||
@@ -55,6 +55,7 @@ in {
|
||||
|
||||
systemd.packages = [ cfg.package ];
|
||||
systemd.sockets.cockpit.wantedBy = [ "multi-user.target" ];
|
||||
systemd.sockets.cockpit.listenStreams = [ "" (toString cfg.port) ];
|
||||
|
||||
systemd.tmpfiles.rules = [ # From $out/lib/tmpfiles.d/cockpit-tmpfiles.conf
|
||||
"C /run/cockpit/inactive.motd 0640 root root - ${cfg.package}/share/cockpit/motd/inactive.motd"
|
||||
|
||||
@@ -49,27 +49,31 @@ let
|
||||
preferLocalBuild = true;
|
||||
} ''mkdir --parents "$out/" ${concatStringsSep "\n" (mapModems mkLine)}'';
|
||||
|
||||
setupSpoolScript = pkgs.substituteAll {
|
||||
setupSpoolScript = pkgs.replaceVarsWith {
|
||||
name = "hylafax-setup-spool.sh";
|
||||
src = ./spool.sh;
|
||||
isExecutable = true;
|
||||
faxuser = "uucp";
|
||||
faxgroup = "uucp";
|
||||
lockPath = "/var/lock";
|
||||
inherit globalConfigPath modemConfigPath;
|
||||
inherit (cfg) sendmailPath spoolAreaPath userAccessFile;
|
||||
inherit (pkgs) hylafaxplus runtimeShell;
|
||||
replacements = {
|
||||
faxuser = "uucp";
|
||||
faxgroup = "uucp";
|
||||
lockPath = "/var/lock";
|
||||
inherit globalConfigPath modemConfigPath;
|
||||
inherit (cfg) spoolAreaPath userAccessFile;
|
||||
inherit (pkgs) hylafaxplus runtimeShell;
|
||||
};
|
||||
};
|
||||
|
||||
waitFaxqScript = pkgs.substituteAll {
|
||||
waitFaxqScript = pkgs.replaceVarsWith {
|
||||
# This script checks the modems status files
|
||||
# and waits until all modems report readiness.
|
||||
name = "hylafax-faxq-wait-start.sh";
|
||||
src = ./faxq-wait.sh;
|
||||
isExecutable = true;
|
||||
timeoutSec = toString 10;
|
||||
inherit (cfg) spoolAreaPath;
|
||||
inherit (pkgs) runtimeShell;
|
||||
replacements = {
|
||||
timeoutSec = toString 10;
|
||||
inherit (cfg) spoolAreaPath;
|
||||
inherit (pkgs) runtimeShell;
|
||||
};
|
||||
};
|
||||
|
||||
sockets.hylafax-hfaxd = {
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
if [ -e "$NIX_ATTRS_SH_FILE" ]; then . "$NIX_ATTRS_SH_FILE"; elif [ -f .attrs.sh ]; then . .attrs.sh; fi
|
||||
source $stdenv/setup
|
||||
|
||||
doSub() {
|
||||
local src=$1
|
||||
local dst=$2
|
||||
|
||||
@@ -0,0 +1,173 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
inherit (lib)
|
||||
escapeShellArgs
|
||||
filter
|
||||
hasPrefix
|
||||
mapAttrsToList
|
||||
mkEnableOption
|
||||
mkIf
|
||||
mkOption
|
||||
mkPackageOption
|
||||
;
|
||||
format = pkgs.formats.toml { };
|
||||
in
|
||||
{
|
||||
options =
|
||||
let
|
||||
inherit (lib.types)
|
||||
bool
|
||||
enum
|
||||
lines
|
||||
listOf
|
||||
str
|
||||
;
|
||||
in
|
||||
{
|
||||
services.yggdrasil-jumper = {
|
||||
enable = mkEnableOption "the Yggdrasil Jumper system service";
|
||||
|
||||
retrieveListenAddresses = mkOption {
|
||||
type = bool;
|
||||
default = true;
|
||||
description = ''
|
||||
Automatically retrieve listen addresses from the Yggdrasil router configuration.
|
||||
|
||||
See `yggdrasil_listen` option in Yggdrasil Jumper configuration.
|
||||
'';
|
||||
};
|
||||
|
||||
appendListenAddresses = mkOption {
|
||||
type = bool;
|
||||
default = true;
|
||||
description = ''
|
||||
Append Yggdrasil router configuration with listeners on loopback
|
||||
addresses (`127.0.0.1`) and preselected ports to support peering
|
||||
using client-server protocols like `quic` and `tls`.
|
||||
|
||||
See `Listen` option in Yggdrasil router configuration.
|
||||
'';
|
||||
};
|
||||
|
||||
settings = mkOption {
|
||||
type = format.type;
|
||||
default = { };
|
||||
example = {
|
||||
listen_port = 9999;
|
||||
whitelist = [
|
||||
"<IPv6 address of a remote node>"
|
||||
];
|
||||
};
|
||||
description = ''
|
||||
Configuration for Yggdrasil Jumper as a Nix attribute set.
|
||||
'';
|
||||
};
|
||||
|
||||
extraConfig = mkOption {
|
||||
type = lines;
|
||||
default = "";
|
||||
example = ''
|
||||
listen_port = 9999;
|
||||
whitelist = [
|
||||
"<IPv6 address of a remote node>"
|
||||
];
|
||||
'';
|
||||
description = ''
|
||||
Configuration for Yggdrasil Jumper in plaintext.
|
||||
'';
|
||||
};
|
||||
|
||||
package = mkPackageOption pkgs "yggdrasil-jumper" { };
|
||||
|
||||
logLevel = mkOption {
|
||||
type = enum [ "off" "error" "warn" "info" "debug" "trace" ];
|
||||
default = "info";
|
||||
description = ''
|
||||
Set logging verbosity for Yggdrasil Jumper.
|
||||
'';
|
||||
};
|
||||
|
||||
extraArgs = mkOption {
|
||||
type = listOf str;
|
||||
default = [ ];
|
||||
description = ''
|
||||
Extra command line arguments for Yggdrasil Jumper.
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config =
|
||||
let
|
||||
cfg = config.services.yggdrasil-jumper;
|
||||
|
||||
# Generate, concatenate and validate config file
|
||||
jumperSettings = format.generate "yggdrasil-jumper-settings" cfg.settings;
|
||||
jumperExtraConfig = pkgs.writeText "yggdrasil-jumper-extra-config" cfg.extraConfig;
|
||||
jumperConfig =
|
||||
pkgs.runCommand
|
||||
"yggdrasil-jumper-config"
|
||||
{ }
|
||||
''
|
||||
cat ${jumperSettings} ${jumperExtraConfig} \
|
||||
| tee $out \
|
||||
| ${cfg.package}/bin/yggdrasil-jumper --validate --config -
|
||||
'';
|
||||
in
|
||||
mkIf cfg.enable {
|
||||
assertions = [{
|
||||
assertion = config.services.yggdrasil.enable;
|
||||
message = "`services.yggdrasil.enable` must be true for `yggdrasil-jumper` to operate";
|
||||
}];
|
||||
|
||||
services.yggdrasil.settings.Listen =
|
||||
let
|
||||
# By default linux dynamically alocates ports in range 32768..60999
|
||||
# `sysctl net.ipv4.ip_local_port_range`
|
||||
# See: https://xkcd.com/221/
|
||||
prot_port = { "tls" = 11814; "quic" = 11814; };
|
||||
in
|
||||
mkIf
|
||||
(cfg.retrieveListenAddresses && cfg.appendListenAddresses)
|
||||
(mapAttrsToList (prot: port: "${prot}://127.0.0.1:${toString port}") prot_port);
|
||||
|
||||
services.yggdrasil-jumper.settings = {
|
||||
yggdrasil_admin_listen = [ "unix:///run/yggdrasil/yggdrasil.sock" ];
|
||||
yggdrasil_listen =
|
||||
mkIf
|
||||
cfg.retrieveListenAddresses
|
||||
(filter (a: !hasPrefix "tcp://" a) config.services.yggdrasil.settings.Listen);
|
||||
};
|
||||
|
||||
systemd.services.yggdrasil-jumper = {
|
||||
description = "Yggdrasil Jumper Service";
|
||||
after = [ "yggdrasil.service" ];
|
||||
unitConfig.BindsTo = [ "yggdrasil.service" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
|
||||
serviceConfig = {
|
||||
User = "yggdrasil";
|
||||
DynamicUser = true;
|
||||
|
||||
# TODO: Remove this delay after support for proper startup notification lands in `yggdrasil-go`
|
||||
ExecStartPre = "${pkgs.coreutils}/bin/sleep 5";
|
||||
ExecStart = escapeShellArgs ([ "${cfg.package}/bin/yggdrasil-jumper" "--loglevel" "${cfg.logLevel}" "--config" "${jumperConfig}" ] ++ cfg.extraArgs);
|
||||
KillSignal = "SIGINT";
|
||||
|
||||
MemoryDenyWriteExecute = true;
|
||||
ProtectControlGroups = true;
|
||||
ProtectHome = "tmpfs";
|
||||
RestrictAddressFamilies = "AF_UNIX AF_INET AF_INET6";
|
||||
RestrictNamespaces = true;
|
||||
RestrictRealtime = true;
|
||||
SystemCallArchitectures = "native";
|
||||
SystemCallFilter = [ "@system-service" "~@privileged" ];
|
||||
};
|
||||
};
|
||||
|
||||
environment.systemPackages = [ cfg.package ];
|
||||
};
|
||||
|
||||
meta.maintainers = with lib.maintainers; [ one-d-wide ];
|
||||
}
|
||||
@@ -43,7 +43,7 @@ in
|
||||
default = true;
|
||||
description = ''
|
||||
Whether to create a local database automatically.
|
||||
This will override every database setting in {option}`services.engelsystem.config`.
|
||||
This will override every database setting in {option}`services.engelsystem.settings`.
|
||||
'';
|
||||
};
|
||||
|
||||
|
||||
@@ -140,31 +140,33 @@ in
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
TimeoutStartSec = 300;
|
||||
ExecStart = pkgs.substituteAll {
|
||||
ExecStart = pkgs.replaceVarsWith {
|
||||
src = ./initialize_kasmweb.sh;
|
||||
isExecutable = true;
|
||||
binPath = lib.makeBinPath [
|
||||
pkgs.docker
|
||||
pkgs.openssl
|
||||
pkgs.gnused
|
||||
pkgs.yq-go
|
||||
];
|
||||
runtimeShell = pkgs.runtimeShell;
|
||||
kasmweb = pkgs.kasmweb;
|
||||
postgresUser = "postgres";
|
||||
postgresPassword = "postgres";
|
||||
inherit (cfg)
|
||||
datastorePath
|
||||
sslCertificate
|
||||
sslCertificateKey
|
||||
redisPassword
|
||||
networkSubnet
|
||||
defaultUserPassword
|
||||
defaultAdminPassword
|
||||
defaultManagerToken
|
||||
defaultRegistrationToken
|
||||
defaultGuacToken
|
||||
;
|
||||
replacements = {
|
||||
binPath = lib.makeBinPath [
|
||||
pkgs.docker
|
||||
pkgs.openssl
|
||||
pkgs.gnused
|
||||
pkgs.yq-go
|
||||
];
|
||||
runtimeShell = pkgs.runtimeShell;
|
||||
kasmweb = pkgs.kasmweb;
|
||||
postgresUser = "postgres";
|
||||
postgresPassword = "postgres";
|
||||
inherit (cfg)
|
||||
datastorePath
|
||||
sslCertificate
|
||||
sslCertificateKey
|
||||
redisPassword
|
||||
networkSubnet
|
||||
defaultUserPassword
|
||||
defaultAdminPassword
|
||||
defaultManagerToken
|
||||
defaultRegistrationToken
|
||||
defaultGuacToken
|
||||
;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -299,7 +299,7 @@ in {
|
||||
package = mkOption {
|
||||
type = types.package;
|
||||
description = "Which package to use for the Nextcloud instance.";
|
||||
relatedPackages = [ "nextcloud28" "nextcloud29" "nextcloud30" ];
|
||||
relatedPackages = [ "nextcloud29" "nextcloud30" ];
|
||||
};
|
||||
phpPackage = mkPackageOption pkgs "php" {
|
||||
example = "php82";
|
||||
|
||||
@@ -1,8 +1,5 @@
|
||||
set -e
|
||||
|
||||
if [ -e "$NIX_ATTRS_SH_FILE" ]; then . "$NIX_ATTRS_SH_FILE"; elif [ -f .attrs.sh ]; then . .attrs.sh; fi
|
||||
source $stdenv/setup
|
||||
|
||||
mkdir -p $out/bin
|
||||
|
||||
cat > $out/bin/control <<EOF
|
||||
|
||||
@@ -1333,7 +1333,14 @@ in
|
||||
restartTriggers = optionals cfg.enableReload [ configFile ];
|
||||
# Block reloading if not all certs exist yet.
|
||||
# Happens when config changes add new vhosts/certs.
|
||||
unitConfig.ConditionPathExists = optionals (sslServices != []) (map (certName: certs.${certName}.directory + "/fullchain.pem") vhostCertNames);
|
||||
unitConfig = {
|
||||
ConditionPathExists = optionals (sslServices != []) (map (certName: certs.${certName}.directory + "/fullchain.pem") vhostCertNames);
|
||||
# Disable rate limiting for this, because it may be triggered quickly a bunch of times
|
||||
# if a lot of certificates are renewed in quick succession. The reload itself is cheap,
|
||||
# so even doing a lot of them in a short burst is fine.
|
||||
# FIXME: there's probably a better way to do this.
|
||||
StartLimitIntervalSec = 0;
|
||||
};
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
TimeoutSec = 60;
|
||||
|
||||
@@ -2,8 +2,7 @@
|
||||
|
||||
shopt -s nullglob
|
||||
|
||||
export PATH=/empty
|
||||
for i in @path@; do PATH=$PATH:$i/bin; done
|
||||
export PATH=/empty:@path@
|
||||
|
||||
default=$1
|
||||
if test -z "$1"; then
|
||||
|
||||
@@ -4,12 +4,14 @@ with lib;
|
||||
|
||||
let
|
||||
|
||||
generationsDirBuilder = pkgs.substituteAll {
|
||||
generationsDirBuilder = pkgs.replaceVarsWith {
|
||||
src = ./generations-dir-builder.sh;
|
||||
isExecutable = true;
|
||||
inherit (pkgs) bash;
|
||||
path = [pkgs.coreutils pkgs.gnused pkgs.gnugrep];
|
||||
inherit (config.boot.loader.generationsDir) copyKernels;
|
||||
replacements = {
|
||||
inherit (pkgs) bash;
|
||||
path = lib.makeBinPath [pkgs.coreutils pkgs.gnused pkgs.gnugrep];
|
||||
inherit (config.boot.loader.generationsDir) copyKernels;
|
||||
};
|
||||
};
|
||||
|
||||
in
|
||||
|
||||
@@ -10,9 +10,9 @@ let
|
||||
timeoutStr = if blCfg.timeout == null then "-1" else toString blCfg.timeout;
|
||||
|
||||
# The builder used to write during system activation
|
||||
builder = import ./extlinux-conf-builder.nix { inherit pkgs; };
|
||||
builder = import ./extlinux-conf-builder.nix { inherit lib pkgs; };
|
||||
# The builder exposed in populateCmd, which runs on the build architecture
|
||||
populateBuilder = import ./extlinux-conf-builder.nix { pkgs = pkgs.buildPackages; };
|
||||
populateBuilder = import ./extlinux-conf-builder.nix { inherit lib; pkgs = pkgs.buildPackages; };
|
||||
in
|
||||
{
|
||||
options = {
|
||||
|
||||
+6
-4
@@ -1,8 +1,10 @@
|
||||
{ pkgs }:
|
||||
{ lib, pkgs }:
|
||||
|
||||
pkgs.substituteAll {
|
||||
pkgs.replaceVarsWith {
|
||||
src = ./extlinux-conf-builder.sh;
|
||||
isExecutable = true;
|
||||
path = [pkgs.coreutils pkgs.gnused pkgs.gnugrep];
|
||||
inherit (pkgs) bash;
|
||||
replacements = {
|
||||
path = lib.makeBinPath [pkgs.coreutils pkgs.gnused pkgs.gnugrep];
|
||||
inherit (pkgs) bash;
|
||||
};
|
||||
}
|
||||
|
||||
+1
-2
@@ -2,8 +2,7 @@
|
||||
|
||||
shopt -s nullglob
|
||||
|
||||
export PATH=/empty
|
||||
for i in @path@; do PATH=$PATH:$i/bin; done
|
||||
export PATH=/empty:@path@
|
||||
|
||||
usage() {
|
||||
echo "usage: $0 -t <timeout> -c <path-to-default-configuration> [-d <boot-dir>] [-g <num-generations>] [-n <dtbName>] [-r]" >&2
|
||||
|
||||
@@ -2,8 +2,7 @@
|
||||
|
||||
shopt -s nullglob
|
||||
|
||||
export PATH=/empty
|
||||
for i in @path@; do PATH=$PATH:$i/bin; done
|
||||
export PATH=/empty:@path@
|
||||
|
||||
if test $# -ne 1; then
|
||||
echo "Usage: init-script-builder.sh DEFAULT-CONFIG"
|
||||
|
||||
@@ -9,16 +9,18 @@ with lib;
|
||||
|
||||
let
|
||||
|
||||
initScriptBuilder = pkgs.substituteAll {
|
||||
initScriptBuilder = pkgs.replaceVarsWith {
|
||||
src = ./init-script-builder.sh;
|
||||
isExecutable = true;
|
||||
inherit (pkgs) bash;
|
||||
inherit (config.system.nixos) distroName;
|
||||
path = [
|
||||
pkgs.coreutils
|
||||
pkgs.gnused
|
||||
pkgs.gnugrep
|
||||
];
|
||||
replacements = {
|
||||
inherit (pkgs) bash;
|
||||
inherit (config.system.nixos) distroName;
|
||||
path = lib.makeBinPath [
|
||||
pkgs.coreutils
|
||||
pkgs.gnused
|
||||
pkgs.gnugrep
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
in
|
||||
|
||||
@@ -289,11 +289,8 @@ let
|
||||
|
||||
# The init script of boot stage 1 (loading kernel modules for
|
||||
# mounting the root FS).
|
||||
bootStage1 = pkgs.substituteAll {
|
||||
bootStage1 = pkgs.replaceVarsWith {
|
||||
src = ./stage-1-init.sh;
|
||||
|
||||
shell = "${extraUtils}/bin/ash";
|
||||
|
||||
isExecutable = true;
|
||||
|
||||
postInstall = ''
|
||||
@@ -304,35 +301,39 @@ let
|
||||
${pkgs.buildPackages.busybox}/bin/ash -n $target
|
||||
'';
|
||||
|
||||
inherit linkUnits udevRules extraUtils;
|
||||
replacements = {
|
||||
shell = "${extraUtils}/bin/ash";
|
||||
|
||||
inherit (config.boot) resumeDevice;
|
||||
inherit linkUnits udevRules extraUtils;
|
||||
|
||||
inherit (config.system.nixos) distroName;
|
||||
inherit (config.boot) resumeDevice;
|
||||
|
||||
inherit (config.system.build) earlyMountScript;
|
||||
inherit (config.system.nixos) distroName;
|
||||
|
||||
inherit (config.boot.initrd) checkJournalingFS verbose
|
||||
preLVMCommands preDeviceCommands postDeviceCommands postResumeCommands postMountCommands preFailCommands kernelModules;
|
||||
inherit (config.system.build) earlyMountScript;
|
||||
|
||||
resumeDevices = map (sd: if sd ? device then sd.device else "/dev/disk/by-label/${sd.label}")
|
||||
(filter (sd: hasPrefix "/dev/" sd.device && !sd.randomEncryption.enable
|
||||
# Don't include zram devices
|
||||
&& !(hasPrefix "/dev/zram" sd.device)
|
||||
) config.swapDevices);
|
||||
inherit (config.boot.initrd) checkJournalingFS verbose
|
||||
preLVMCommands preDeviceCommands postDeviceCommands postResumeCommands postMountCommands preFailCommands kernelModules;
|
||||
|
||||
fsInfo =
|
||||
let f = fs: [ fs.mountPoint (if fs.device != null then fs.device else "/dev/disk/by-label/${fs.label}") fs.fsType (builtins.concatStringsSep "," fs.options) ];
|
||||
in pkgs.writeText "initrd-fsinfo" (concatStringsSep "\n" (concatMap f fileSystems));
|
||||
resumeDevices = map (sd: if sd ? device then sd.device else "/dev/disk/by-label/${sd.label}")
|
||||
(filter (sd: hasPrefix "/dev/" sd.device && !sd.randomEncryption.enable
|
||||
# Don't include zram devices
|
||||
&& !(hasPrefix "/dev/zram" sd.device)
|
||||
) config.swapDevices);
|
||||
|
||||
setHostId = optionalString (config.networking.hostId != null) ''
|
||||
hi="${config.networking.hostId}"
|
||||
${if pkgs.stdenv.hostPlatform.isBigEndian then ''
|
||||
echo -ne "\x''${hi:0:2}\x''${hi:2:2}\x''${hi:4:2}\x''${hi:6:2}" > /etc/hostid
|
||||
'' else ''
|
||||
echo -ne "\x''${hi:6:2}\x''${hi:4:2}\x''${hi:2:2}\x''${hi:0:2}" > /etc/hostid
|
||||
''}
|
||||
'';
|
||||
fsInfo =
|
||||
let f = fs: [ fs.mountPoint (if fs.device != null then fs.device else "/dev/disk/by-label/${fs.label}") fs.fsType (builtins.concatStringsSep "," fs.options) ];
|
||||
in pkgs.writeText "initrd-fsinfo" (concatStringsSep "\n" (concatMap f fileSystems));
|
||||
|
||||
setHostId = optionalString (config.networking.hostId != null) ''
|
||||
hi="${config.networking.hostId}"
|
||||
${if pkgs.stdenv.hostPlatform.isBigEndian then ''
|
||||
echo -ne "\x''${hi:0:2}\x''${hi:2:2}\x''${hi:4:2}\x''${hi:6:2}" > /etc/hostid
|
||||
'' else ''
|
||||
echo -ne "\x''${hi:6:2}\x''${hi:4:2}\x''${hi:2:2}\x''${hi:0:2}" > /etc/hostid
|
||||
''}
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -11,26 +11,28 @@ let
|
||||
|
||||
useHostResolvConf = config.networking.resolvconf.enable && config.networking.useHostResolvConf;
|
||||
|
||||
bootStage2 = pkgs.substituteAll {
|
||||
bootStage2 = pkgs.replaceVarsWith {
|
||||
src = ./stage-2-init.sh;
|
||||
shellDebug = "${pkgs.bashInteractive}/bin/bash";
|
||||
shell = "${pkgs.bash}/bin/bash";
|
||||
inherit (config.boot) readOnlyNixStore systemdExecutable extraSystemdUnitPaths;
|
||||
inherit (config.system.nixos) distroName;
|
||||
isExecutable = true;
|
||||
inherit useHostResolvConf;
|
||||
inherit (config.system.build) earlyMountScript;
|
||||
path = lib.makeBinPath (
|
||||
[
|
||||
pkgs.coreutils
|
||||
pkgs.util-linux
|
||||
]
|
||||
++ lib.optional useHostResolvConf pkgs.openresolv
|
||||
);
|
||||
postBootCommands = pkgs.writeText "local-cmds" ''
|
||||
${config.boot.postBootCommands}
|
||||
${config.powerManagement.powerUpCommands}
|
||||
'';
|
||||
replacements = {
|
||||
shell = "${pkgs.bash}/bin/bash";
|
||||
systemConfig = null; # replaced in ../activation/top-level.nix
|
||||
inherit (config.boot) readOnlyNixStore systemdExecutable;
|
||||
inherit (config.system.nixos) distroName;
|
||||
inherit useHostResolvConf;
|
||||
inherit (config.system.build) earlyMountScript;
|
||||
path = lib.makeBinPath (
|
||||
[
|
||||
pkgs.coreutils
|
||||
pkgs.util-linux
|
||||
]
|
||||
++ lib.optional useHostResolvConf pkgs.openresolv
|
||||
);
|
||||
postBootCommands = pkgs.writeText "local-cmds" ''
|
||||
${config.boot.postBootCommands}
|
||||
${config.powerManagement.powerUpCommands}
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
in
|
||||
|
||||
@@ -64,7 +64,14 @@ lib.recurseIntoAttrs {
|
||||
} ''
|
||||
mkdir fake-root
|
||||
export FAKECHROOT_EXCLUDE_PATH=/dev:/proc:/sys:${builtins.storeDir}:$out
|
||||
fakechroot fakeroot chroot $PWD/fake-root bash -c 'source $stdenv/setup; eval "$fakeRootCommands"'
|
||||
if [ -e "$NIX_ATTRS_SH_FILE" ]; then
|
||||
export FAKECHROOT_EXCLUDE_PATH=$FAKECHROOT_EXCLUDE_PATH:$NIX_ATTRS_SH_FILE
|
||||
fi
|
||||
fakechroot fakeroot chroot $PWD/fake-root bash -e -c '
|
||||
if [ -e "$NIX_ATTRS_SH_FILE" ]; then . "$NIX_ATTRS_SH_FILE"; fi
|
||||
source $stdenv/setup
|
||||
eval "$fakeRootCommands"
|
||||
'
|
||||
'';
|
||||
|
||||
}
|
||||
|
||||
@@ -1,32 +0,0 @@
|
||||
source $stdenv/setup
|
||||
|
||||
ttys=($ttys)
|
||||
themes=($themes)
|
||||
|
||||
mkdir -p $out
|
||||
|
||||
defaultName=$(cd $default && ls | grep -v default)
|
||||
echo $defaultName
|
||||
ln -s $default/$defaultName $out/$defaultName
|
||||
ln -s $defaultName $out/default
|
||||
|
||||
for ((n = 0; n < ${#ttys[*]}; n++)); do
|
||||
tty=${ttys[$n]}
|
||||
theme=${themes[$n]}
|
||||
|
||||
echo "TTY $tty -> $theme"
|
||||
|
||||
if [ "$theme" != default ]; then
|
||||
themeName=$(cd $theme && ls | grep -v default)
|
||||
ln -sfn $theme/$themeName $out/$themeName
|
||||
else
|
||||
themeName=default
|
||||
fi
|
||||
|
||||
if test -e $out/$tty; then
|
||||
echo "Multiple themes defined for the same TTY!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
ln -sfn $themeName $out/$tty
|
||||
done
|
||||
@@ -21,10 +21,11 @@ import ./make-test-python.nix (
|
||||
};
|
||||
services.cockpit = {
|
||||
enable = true;
|
||||
port = 7890;
|
||||
openFirewall = true;
|
||||
settings = {
|
||||
WebService = {
|
||||
Origins = "https://server:9090";
|
||||
Origins = "https://server:7890";
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -65,7 +66,7 @@ import ./make-test-python.nix (
|
||||
driver.implicitly_wait(10)
|
||||
|
||||
log("Opening homepage")
|
||||
driver.get("https://server:9090")
|
||||
driver.get("https://server:7890")
|
||||
|
||||
|
||||
def wait_elem(by, query, timeout=10):
|
||||
@@ -107,7 +108,7 @@ import ./make-test-python.nix (
|
||||
driver.find_element(By.CSS_SELECTOR, 'button#login-button').click()
|
||||
|
||||
# driver.implicitly_wait(1)
|
||||
# driver.get("https://server:9090/system")
|
||||
# driver.get("https://server:7890/system")
|
||||
|
||||
log("Waiting dashboard to load")
|
||||
wait_title_contains("${user}@server")
|
||||
@@ -143,9 +144,9 @@ import ./make-test-python.nix (
|
||||
start_all()
|
||||
|
||||
server.wait_for_unit("sockets.target")
|
||||
server.wait_for_open_port(9090)
|
||||
server.wait_for_open_port(7890)
|
||||
|
||||
client.succeed("curl -k https://server:9090 -o /dev/stderr")
|
||||
client.succeed("curl -k https://server:7890 -o /dev/stderr")
|
||||
print(client.succeed("whoami"))
|
||||
client.succeed('PYTHONUNBUFFERED=1 selenium-script')
|
||||
'';
|
||||
|
||||
@@ -48,7 +48,7 @@ import ./make-test-python.nix (
|
||||
"curl -c /tmp/cookies -sSfL --resolve davis.example.com:80:127.0.0.1 http://davis.example.com/login | grep '_csrf_token' | sed -E 's,.*value=\"(.*)\".*,\\1,g'"
|
||||
)
|
||||
r = machine.succeed(
|
||||
f"curl -b /tmp/cookies --resolve davis.example.com:80:127.0.0.1 http://davis.example.com/login -X POST -F username=admin -F password=nixos -F _csrf_token={csrf_token.strip()} -D headers"
|
||||
f"curl -b /tmp/cookies --resolve davis.example.com:80:127.0.0.1 http://davis.example.com/login -X POST -F _username=admin -F _password=nixos -F _csrf_token={csrf_token.strip()} -D headers"
|
||||
)
|
||||
print(r)
|
||||
machine.succeed(
|
||||
|
||||
@@ -26,7 +26,6 @@ with import ../lib/testing-python.nix { inherit system; };
|
||||
services.ferretdb = {
|
||||
enable = true;
|
||||
settings.FERRETDB_HANDLER = "pg";
|
||||
settings.FERRETDB_POSTGRESQL_URL = "postgres://ferretdb@localhost/ferretdb?host=/run/postgresql";
|
||||
};
|
||||
|
||||
systemd.services.ferretdb.serviceConfig = {
|
||||
|
||||
@@ -32,6 +32,9 @@ let
|
||||
"/".device = rootFsDevice;
|
||||
};
|
||||
|
||||
# Needed for installing bootloader
|
||||
system.switch.enable = true;
|
||||
|
||||
system.build.diskImage = import ../lib/make-disk-image.nix {
|
||||
inherit config lib pkgs;
|
||||
label = rootFslabel;
|
||||
|
||||
@@ -13,7 +13,10 @@ import ./make-test-python.nix (
|
||||
in
|
||||
{
|
||||
name = "headscale";
|
||||
meta.maintainers = with lib.maintainers; [ misterio77 ];
|
||||
meta.maintainers = with lib.maintainers; [
|
||||
kradalby
|
||||
misterio77
|
||||
];
|
||||
|
||||
nodes =
|
||||
let
|
||||
|
||||
@@ -60,6 +60,11 @@ import ./make-test-python.nix ({ pkgs, ...} : {
|
||||
users.users.jenkins.extraGroups = [ "users" ];
|
||||
|
||||
systemd.services.jenkins.serviceConfig.TimeoutStartSec = "6min";
|
||||
|
||||
# Increase disk space to prevent this issue:
|
||||
#
|
||||
# WARNING h.n.DiskSpaceMonitorDescriptor#markNodeOfflineOrOnline: Making Built-In Node offline temporarily due to the lack of disk space
|
||||
virtualisation.diskSize = 2 * 1024;
|
||||
};
|
||||
|
||||
slave =
|
||||
|
||||
@@ -110,4 +110,4 @@ let
|
||||
./with-objectstore.nix
|
||||
];
|
||||
in
|
||||
listToAttrs (concatMap genTests [ 28 29 30 ])
|
||||
listToAttrs (concatMap genTests [ 29 30 ])
|
||||
|
||||
@@ -5,9 +5,14 @@ import ./make-test-python.nix (
|
||||
mode = "0640";
|
||||
};
|
||||
in
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
name = "pppd";
|
||||
|
||||
meta = with pkgs.lib.maintainers; {
|
||||
maintainers = [ stv0g ];
|
||||
};
|
||||
|
||||
nodes = {
|
||||
server =
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
@@ -47,7 +47,7 @@ import ./make-test-python.nix (
|
||||
|
||||
def copy_pem(file: str):
|
||||
machine.copy_from_host(source=f"{tmpdir}/{file}", target=f"/run/secrets/{file}")
|
||||
machine.succeed(f"chmod 644 /run/secrets/{file}")
|
||||
machine.succeed(f"chmod 600 /run/secrets/{file} && chown systemd-journal-gateway /run/secrets/{file}")
|
||||
|
||||
with subtest("Copying keys and certificates"):
|
||||
machine.succeed("mkdir -p /run/secrets/{client,server}")
|
||||
|
||||
@@ -22,7 +22,7 @@ let
|
||||
shutil.copyfile("${machine.system.build.diskImage}/nixos.img", tmp_disk_image.name)
|
||||
|
||||
subprocess.run([
|
||||
"${machine.config.virtualisation.qemu.package}/bin/qemu-img",
|
||||
"${machine.virtualisation.qemu.package}/bin/qemu-img",
|
||||
"resize",
|
||||
"-f",
|
||||
"raw",
|
||||
@@ -151,6 +151,7 @@ in
|
||||
}:
|
||||
{
|
||||
virtualisation.useDefaultFilesystems = false;
|
||||
virtualisation.mountHostNixStore = false;
|
||||
virtualisation.fileSystems = {
|
||||
"/" = {
|
||||
device = "/dev/disk/by-partlabel/created-root";
|
||||
|
||||
@@ -128,7 +128,7 @@ import ./make-test-python.nix (
|
||||
# it's not possible because we're not in a tty when grepping
|
||||
# (i.e. hacky way to ensure that the error from above doesn't appear here).
|
||||
_, out = machine.execute("systemctl --user edit testservice2.service 2>&1")
|
||||
assert out.rstrip("\n") == "Cannot edit units if not on a tty."
|
||||
assert out.rstrip("\n") == "Cannot edit units interactively if not on a tty."
|
||||
|
||||
# Regression test for https://github.com/NixOS/nixpkgs/issues/105049
|
||||
with subtest("systemd reads timezone database in /etc/zoneinfo"):
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
libtool,
|
||||
pkg-config,
|
||||
ronn,
|
||||
substituteAll,
|
||||
replaceVars,
|
||||
buildPackages,
|
||||
mbrolaSupport ? true,
|
||||
mbrola,
|
||||
@@ -45,8 +45,7 @@ stdenv.mkDerivation rec {
|
||||
]
|
||||
++ lib.optionals mbrolaSupport [
|
||||
# Hardcode correct mbrola paths.
|
||||
(substituteAll {
|
||||
src = ./mbrola.patch;
|
||||
(replaceVars ./mbrola.patch {
|
||||
inherit mbrola;
|
||||
})
|
||||
];
|
||||
|
||||
@@ -5,13 +5,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "fluidsynth";
|
||||
version = "2.3.7";
|
||||
version = "2.4.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "FluidSynth";
|
||||
repo = "fluidsynth";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-4Jn8pyVPrTPYZGdPZB+8guxTbD6s/1OpmLJlioDQFMA=";
|
||||
hash = "sha256-rpTL1eOm3PQIBuxoPEZwj64QXasNQN80kGSW7h6dDdw=";
|
||||
};
|
||||
|
||||
outputs = [ "out" "dev" "man" ];
|
||||
|
||||
@@ -23,11 +23,11 @@ assert withConplay -> !libOnly;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "${lib.optionalString libOnly "lib"}mpg123";
|
||||
version = "1.32.9";
|
||||
version = "1.32.10";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/mpg123/mpg123-${version}.tar.bz2";
|
||||
hash = "sha256-A7YeQATpYLrPKs2toD7ZTTduaqsnpgFEe9SQjYQHspE=";
|
||||
hash = "sha256-h7LBf+DJedPvOO7O/2Nis1sorIWJ+/GFS1vnXJq2VXw=";
|
||||
};
|
||||
|
||||
outputs = [
|
||||
|
||||
@@ -99,8 +99,6 @@ let
|
||||
stdenv.mkDerivation {
|
||||
inherit name;
|
||||
builder = writeShellScript "builder.sh" ''
|
||||
source $stdenv/setup
|
||||
|
||||
curlVersion=$(${curl}/bin/curl -V | head -1 | cut -d' ' -f2)
|
||||
|
||||
# Curl flags to handle redirects, not use EPSV, handle cookies for
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
withGui,
|
||||
python3,
|
||||
jemalloc,
|
||||
zeromq4,
|
||||
zeromq,
|
||||
}:
|
||||
|
||||
mkDerivation rec {
|
||||
@@ -57,7 +57,7 @@ mkDerivation rec {
|
||||
python3
|
||||
jemalloc
|
||||
libnatpmp
|
||||
zeromq4
|
||||
zeromq
|
||||
miniupnpc
|
||||
util-linux
|
||||
protobuf
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
buildPackages,
|
||||
fetchFromGitHub,
|
||||
nix-update-script,
|
||||
substituteAll,
|
||||
replaceVars,
|
||||
plymouth,
|
||||
pam,
|
||||
pkg-config,
|
||||
@@ -85,8 +85,7 @@ stdenv.mkDerivation rec {
|
||||
# Hardcode plymouth to fix transitions.
|
||||
# For some reason it can't find `plymouth`
|
||||
# even when it's in PATH in environment.systemPackages.
|
||||
(substituteAll {
|
||||
src = ./fix-paths.patch;
|
||||
(replaceVars ./fix-paths.patch {
|
||||
plymouth = "${plymouth}/bin/plymouth";
|
||||
})
|
||||
];
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -53,10 +53,10 @@
|
||||
elpaBuild {
|
||||
pname = "activities";
|
||||
ename = "activities";
|
||||
version = "0.7.1";
|
||||
version = "0.7.2";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/packages/activities-0.7.1.tar";
|
||||
sha256 = "1khhkfyy251mag5zqybsvfg3sak0aac1qlsdl1wyiin7f6sq9563";
|
||||
url = "https://elpa.gnu.org/packages/activities-0.7.2.tar";
|
||||
sha256 = "1b6d77b5h2vikfxqjlb1jx5pnij5bif788nysvvn3wlzpwdi88s0";
|
||||
};
|
||||
packageRequires = [ persist ];
|
||||
meta = {
|
||||
@@ -419,10 +419,10 @@
|
||||
elpaBuild {
|
||||
pname = "auctex";
|
||||
ename = "auctex";
|
||||
version = "14.0.7";
|
||||
version = "14.0.8";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/packages/auctex-14.0.7.tar";
|
||||
sha256 = "1m71jr853b4d713z1k4jj73c8ba4753hv8nighx62razgmpn4ci8";
|
||||
url = "https://elpa.gnu.org/packages/auctex-14.0.8.tar";
|
||||
sha256 = "0bcjkbwhbkmm0r7pbh44j7vw9b39g2iw1jgw4sq54qp7387j6lmy";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -790,10 +790,10 @@
|
||||
elpaBuild {
|
||||
pname = "boxy";
|
||||
ename = "boxy";
|
||||
version = "1.1.4";
|
||||
version = "2.0.0";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/packages/boxy-1.1.4.tar";
|
||||
sha256 = "0mwj1qc626f1iaq5iaqm1f4iwyz91hzqhzfk5f53gsqka7yz2fnf";
|
||||
url = "https://elpa.gnu.org/packages/boxy-2.0.0.tar";
|
||||
sha256 = "1vfgwgk3vzzp2cy7n0qwhn7hzjxbp9vzxp1al1pkynv9hfs503gb";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -813,10 +813,10 @@
|
||||
elpaBuild {
|
||||
pname = "boxy-headings";
|
||||
ename = "boxy-headings";
|
||||
version = "2.1.6";
|
||||
version = "2.1.8";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/packages/boxy-headings-2.1.6.tar";
|
||||
sha256 = "0wnks9a4agvqjivp9myl8zcdq6rj7hh5ig73f8qv5imar0i76izc";
|
||||
url = "https://elpa.gnu.org/packages/boxy-headings-2.1.8.tar";
|
||||
sha256 = "1r356z090dkgc7wb5qq35pkq3932rr6zy90d85jb9frxf7w1zmd7";
|
||||
};
|
||||
packageRequires = [
|
||||
boxy
|
||||
@@ -1020,10 +1020,10 @@
|
||||
elpaBuild {
|
||||
pname = "cape";
|
||||
ename = "cape";
|
||||
version = "1.7";
|
||||
version = "1.8";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/packages/cape-1.7.tar";
|
||||
sha256 = "03npj4a8g73dgrivjgc27w0c957naqhxq0hfzshdqci6mrq1gph3";
|
||||
url = "https://elpa.gnu.org/packages/cape-1.8.tar";
|
||||
sha256 = "18z3c3d1wbf2j40rym74918hxccmi84rbqkzc2g73jbigp78kyq4";
|
||||
};
|
||||
packageRequires = [ compat ];
|
||||
meta = {
|
||||
@@ -1398,10 +1398,10 @@
|
||||
elpaBuild {
|
||||
pname = "compat";
|
||||
ename = "compat";
|
||||
version = "30.0.0.0";
|
||||
version = "30.0.2.0";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/packages/compat-30.0.0.0.tar";
|
||||
sha256 = "0z7049xkdyx22ywq821d19lp73ywaz6brxj461h0h2a73y7999cl";
|
||||
url = "https://elpa.gnu.org/packages/compat-30.0.2.0.tar";
|
||||
sha256 = "0pizq8vwfqls04in95rpnfwv4xc1r2qjpf41g6bjy826i53cfdx0";
|
||||
};
|
||||
packageRequires = [ seq ];
|
||||
meta = {
|
||||
@@ -1441,10 +1441,10 @@
|
||||
elpaBuild {
|
||||
pname = "consult";
|
||||
ename = "consult";
|
||||
version = "1.8";
|
||||
version = "1.9";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/packages/consult-1.8.tar";
|
||||
sha256 = "0k3k1jmwdw4w8rr5z2030ba37mcia2zghh6p4c36ck51hwvfkb8w";
|
||||
url = "https://elpa.gnu.org/packages/consult-1.9.tar";
|
||||
sha256 = "0qz8l962995znf9lhgy8hdd9z78bdhb8m95dxj1g3266jsgjf8sv";
|
||||
};
|
||||
packageRequires = [ compat ];
|
||||
meta = {
|
||||
@@ -1554,10 +1554,10 @@
|
||||
elpaBuild {
|
||||
pname = "corfu";
|
||||
ename = "corfu";
|
||||
version = "1.5";
|
||||
version = "1.6";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/packages/corfu-1.5.tar";
|
||||
sha256 = "0m80slhpr9xd57b3nvrqgfxm44851v9gfcy8ky3d3v2g5i2mrm6x";
|
||||
url = "https://elpa.gnu.org/packages/corfu-1.6.tar";
|
||||
sha256 = "1wx7hjvccb2jss4k0vcmmdxkyivs2qnzai6xw2l1fgdan9ngg89n";
|
||||
};
|
||||
packageRequires = [ compat ];
|
||||
meta = {
|
||||
@@ -1814,10 +1814,10 @@
|
||||
elpaBuild {
|
||||
pname = "dape";
|
||||
ename = "dape";
|
||||
version = "0.17.0";
|
||||
version = "0.19.0";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/packages/dape-0.17.0.tar";
|
||||
sha256 = "113lmy0q1yk81cfi9dbig8p9bmhyqy6w1bvhn91m79my05ny2rxd";
|
||||
url = "https://elpa.gnu.org/packages/dape-0.19.0.tar";
|
||||
sha256 = "11hs0cnzyp75gmz32mqplaknf4lq0zf9zp07h1rhlvz31aacvrqh";
|
||||
};
|
||||
packageRequires = [ jsonrpc ];
|
||||
meta = {
|
||||
@@ -1901,10 +1901,10 @@
|
||||
elpaBuild {
|
||||
pname = "debbugs";
|
||||
ename = "debbugs";
|
||||
version = "0.42";
|
||||
version = "0.43";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/packages/debbugs-0.42.tar";
|
||||
sha256 = "0n0kvkyzggn8q72dpy6c7rsjwn1rjx0r33y5jc080j7sw85xpigg";
|
||||
url = "https://elpa.gnu.org/packages/debbugs-0.43.tar";
|
||||
sha256 = "1jzdr7bp48incg1bdnq4s1ldnyp6hncz0mydy0bizk3c68chsls5";
|
||||
};
|
||||
packageRequires = [ soap-client ];
|
||||
meta = {
|
||||
@@ -2045,6 +2045,28 @@
|
||||
};
|
||||
}
|
||||
) { };
|
||||
dicom = callPackage (
|
||||
{
|
||||
compat,
|
||||
elpaBuild,
|
||||
fetchurl,
|
||||
lib,
|
||||
}:
|
||||
elpaBuild {
|
||||
pname = "dicom";
|
||||
ename = "dicom";
|
||||
version = "0.5";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/packages/dicom-0.5.tar";
|
||||
sha256 = "1qz4zhq0fcfl7l42qib60j2dzm1vp2vmwfhm48s0ia6dgdkvad3x";
|
||||
};
|
||||
packageRequires = [ compat ];
|
||||
meta = {
|
||||
homepage = "https://elpa.gnu.org/packages/dicom.html";
|
||||
license = lib.licenses.free;
|
||||
};
|
||||
}
|
||||
) { };
|
||||
dict-tree = callPackage (
|
||||
{
|
||||
elpaBuild,
|
||||
@@ -2539,10 +2561,10 @@
|
||||
elpaBuild {
|
||||
pname = "eev";
|
||||
ename = "eev";
|
||||
version = "20241123";
|
||||
version = "20241223";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/packages/eev-20241123.tar";
|
||||
sha256 = "1bb2134jggj4xg49cwy8ivfb12yafxyy2p5k4rca9an3cr4s8ci7";
|
||||
url = "https://elpa.gnu.org/packages/eev-20241223.tar";
|
||||
sha256 = "0rp7b3sfh94zyah303sk43mfdbzcz6p20dqarkzbsgin3n77ara8";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -2689,10 +2711,10 @@
|
||||
elpaBuild {
|
||||
pname = "elisa";
|
||||
ename = "elisa";
|
||||
version = "1.1.3";
|
||||
version = "1.1.4";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/packages/elisa-1.1.3.tar";
|
||||
sha256 = "0370gvj3r701i2acp3wq705a9n534g719nzz8bg9a4lry76f2crv";
|
||||
url = "https://elpa.gnu.org/packages/elisa-1.1.4.tar";
|
||||
sha256 = "1v5y0piqz31dx38mv217l5z4xn6hnggznmrcxd2ffs0xdvr9iv3s";
|
||||
};
|
||||
packageRequires = [
|
||||
async
|
||||
@@ -2740,10 +2762,10 @@
|
||||
elpaBuild {
|
||||
pname = "ellama";
|
||||
ename = "ellama";
|
||||
version = "0.13.0";
|
||||
version = "0.13.1";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/packages/ellama-0.13.0.tar";
|
||||
sha256 = "0wfn8fv124qxf9yxl4lsa3hwlicmaiv2zzn8w4vhmlni1kf37nlw";
|
||||
url = "https://elpa.gnu.org/packages/ellama-0.13.1.tar";
|
||||
sha256 = "1hf9lqjcg33xahz8i5ng123z6yljmwm3zw15n96x83x0szxi1wl1";
|
||||
};
|
||||
packageRequires = [
|
||||
compat
|
||||
@@ -2876,10 +2898,10 @@
|
||||
elpaBuild {
|
||||
pname = "emms";
|
||||
ename = "emms";
|
||||
version = "20.2";
|
||||
version = "21";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/packages/emms-20.2.tar";
|
||||
sha256 = "0amc956amyfsjlq5aqc7nk2cs2ph2zcpci5wkms6w973wx67z2j6";
|
||||
url = "https://elpa.gnu.org/packages/emms-21.tar";
|
||||
sha256 = "188rij39qqaya7hk0p05ygcw5vlha7qd6pm4ws6nfw7g0nv1rbcc";
|
||||
};
|
||||
packageRequires = [
|
||||
cl-lib
|
||||
@@ -3801,10 +3823,10 @@
|
||||
elpaBuild {
|
||||
pname = "greader";
|
||||
ename = "greader";
|
||||
version = "0.11.18";
|
||||
version = "0.12.6";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/packages/greader-0.11.18.tar";
|
||||
sha256 = "122mvjcbvi7dzggx1dl02iw9jl0h33l8ka4mzvlr6sl0wwwzfpr8";
|
||||
url = "https://elpa.gnu.org/packages/greader-0.12.6.tar";
|
||||
sha256 = "0xv814p7cdf2wj7qdj9cpz3blnkcd8b6sjk2jajym5hilmr9a9b5";
|
||||
};
|
||||
packageRequires = [
|
||||
compat
|
||||
@@ -4422,10 +4444,10 @@
|
||||
elpaBuild {
|
||||
pname = "jinx";
|
||||
ename = "jinx";
|
||||
version = "1.10";
|
||||
version = "1.11";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/packages/jinx-1.10.tar";
|
||||
sha256 = "19l1wcrv610l6alb9xzyfmdkmnzgcf60z3557q4dkgvz35959p4y";
|
||||
url = "https://elpa.gnu.org/packages/jinx-1.11.tar";
|
||||
sha256 = "0g0iys02k488lbkd7a8qn3hwcmfhmyfp8v3mm07z3zsjhlqw0m57";
|
||||
};
|
||||
packageRequires = [ compat ];
|
||||
meta = {
|
||||
@@ -4873,10 +4895,10 @@
|
||||
elpaBuild {
|
||||
pname = "llm";
|
||||
ename = "llm";
|
||||
version = "0.19.1";
|
||||
version = "0.20.0";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/packages/llm-0.19.1.tar";
|
||||
sha256 = "03f8yvnq1n2pns62iji2iz50f30wxw50n9a6cxgd9p2vkd4pjb0g";
|
||||
url = "https://elpa.gnu.org/packages/llm-0.20.0.tar";
|
||||
sha256 = "12a6z2knsxp8jy0v9hsfsb7kdzyj6pnq5h58vnkrizd95zp6zf91";
|
||||
};
|
||||
packageRequires = [
|
||||
plz
|
||||
@@ -5067,10 +5089,10 @@
|
||||
elpaBuild {
|
||||
pname = "m-buffer";
|
||||
ename = "m-buffer";
|
||||
version = "0.16";
|
||||
version = "0.16.1";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/packages/m-buffer-0.16.tar";
|
||||
sha256 = "16drbgamp7yd1ndw2qrycrgmnknv5k7h4d7svcdhv9az6fg1vzn4";
|
||||
url = "https://elpa.gnu.org/packages/m-buffer-0.16.1.tar";
|
||||
sha256 = "1iq7nld1i8v0da1ajhvfdarx4bx3wnwgz5lhb78fcnsq8zb6cp5y";
|
||||
};
|
||||
packageRequires = [ seq ];
|
||||
meta = {
|
||||
@@ -5110,10 +5132,10 @@
|
||||
elpaBuild {
|
||||
pname = "marginalia";
|
||||
ename = "marginalia";
|
||||
version = "1.7";
|
||||
version = "1.8";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/packages/marginalia-1.7.tar";
|
||||
sha256 = "1bwbkz71w81zcqsydvqic2xri52pm1h9nac8i7i04nl5b98pszkk";
|
||||
url = "https://elpa.gnu.org/packages/marginalia-1.8.tar";
|
||||
sha256 = "0q8mflfsl4vj2r2m47jgm5hrg3a4k5pildb53vlgm5k9wb4sd7md";
|
||||
};
|
||||
packageRequires = [ compat ];
|
||||
meta = {
|
||||
@@ -5185,6 +5207,27 @@
|
||||
};
|
||||
}
|
||||
) { };
|
||||
matlab-mode = callPackage (
|
||||
{
|
||||
elpaBuild,
|
||||
fetchurl,
|
||||
lib,
|
||||
}:
|
||||
elpaBuild {
|
||||
pname = "matlab-mode";
|
||||
ename = "matlab-mode";
|
||||
version = "6.3";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/packages/matlab-mode-6.3.tar";
|
||||
sha256 = "0m3h60629p9rv8k2fk23iwfdgzsdmlk78y1j83xz5m53z7vl3a7m";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
homepage = "https://elpa.gnu.org/packages/matlab-mode.html";
|
||||
license = lib.licenses.free;
|
||||
};
|
||||
}
|
||||
) { };
|
||||
mct = callPackage (
|
||||
{
|
||||
elpaBuild,
|
||||
@@ -5943,10 +5986,10 @@
|
||||
elpaBuild {
|
||||
pname = "orderless";
|
||||
ename = "orderless";
|
||||
version = "1.2";
|
||||
version = "1.3";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/packages/orderless-1.2.tar";
|
||||
sha256 = "1iyfnvwqwn8y4bkv25zw15y8yy5dm89kyk7wlxw0al22bhfc2cm7";
|
||||
url = "https://elpa.gnu.org/packages/orderless-1.3.tar";
|
||||
sha256 = "1gh2xw34adk5q6v9sz42j5mwyjjp1yix70jvjylnapwsjjsjm5qk";
|
||||
};
|
||||
packageRequires = [ compat ];
|
||||
meta = {
|
||||
@@ -5964,10 +6007,10 @@
|
||||
elpaBuild {
|
||||
pname = "org";
|
||||
ename = "org";
|
||||
version = "9.7.16";
|
||||
version = "9.7.19";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/packages/org-9.7.16.tar";
|
||||
sha256 = "1d6vxd7ssfb1v00a37dr723v9cg8i8v78lcymqndqhy6f2ji1f06";
|
||||
url = "https://elpa.gnu.org/packages/org-9.7.19.tar";
|
||||
sha256 = "0v7ridhsz12iwznk8165ll61i1w1avhxfrq3p82p9r6ir2xdan1g";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -6056,10 +6099,10 @@
|
||||
elpaBuild {
|
||||
pname = "org-modern";
|
||||
ename = "org-modern";
|
||||
version = "1.5";
|
||||
version = "1.6";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/packages/org-modern-1.5.tar";
|
||||
sha256 = "08s253r3z5r37swlsgrp97ls7p3bdr4hr2xvyb1pm57j7livv74b";
|
||||
url = "https://elpa.gnu.org/packages/org-modern-1.6.tar";
|
||||
sha256 = "1fmmblqs6v52690fvky3xq48m5a3xh8xrl7j8pqw6hc06igm4m5q";
|
||||
};
|
||||
packageRequires = [ compat ];
|
||||
meta = {
|
||||
@@ -6100,10 +6143,10 @@
|
||||
elpaBuild {
|
||||
pname = "org-real";
|
||||
ename = "org-real";
|
||||
version = "1.0.9";
|
||||
version = "1.0.11";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/packages/org-real-1.0.9.tar";
|
||||
sha256 = "0g19pgg7rqijb6q1vpifvpzl2gyc13a42q1n23x3kawl2srhcjp2";
|
||||
url = "https://elpa.gnu.org/packages/org-real-1.0.11.tar";
|
||||
sha256 = "1mm2p6487m4sr8zvj7xqryvicvj0qbv7as39hxh1ad7yhfdhgpvw";
|
||||
};
|
||||
packageRequires = [
|
||||
boxy
|
||||
@@ -6233,10 +6276,10 @@
|
||||
elpaBuild {
|
||||
pname = "osm";
|
||||
ename = "osm";
|
||||
version = "1.4";
|
||||
version = "1.5";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/packages/osm-1.4.tar";
|
||||
sha256 = "0cix4jn3919xnlsj85l4m83znkqf4m2988zzqwcsvvvjrmgccanh";
|
||||
url = "https://elpa.gnu.org/packages/osm-1.5.tar";
|
||||
sha256 = "1hgr1gfkii75nmfsz3nvn5hv9x9jg09as7k12rr7vr9k0fs0j4hk";
|
||||
};
|
||||
packageRequires = [ compat ];
|
||||
meta = {
|
||||
@@ -6340,10 +6383,10 @@
|
||||
elpaBuild {
|
||||
pname = "parser-generator";
|
||||
ename = "parser-generator";
|
||||
version = "0.2.1";
|
||||
version = "0.2.4";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/packages/parser-generator-0.2.1.tar";
|
||||
sha256 = "1vrgkvcj16550frq2jivw31cmq6rhwrifmdk4rf0266br3jdarpf";
|
||||
url = "https://elpa.gnu.org/packages/parser-generator-0.2.4.tar";
|
||||
sha256 = "01b5bwh484fpicv0g2z64694pjkhrcqz9f8jpq6hk41kzhvr23m1";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -6830,10 +6873,10 @@
|
||||
elpaBuild {
|
||||
pname = "pulsar";
|
||||
ename = "pulsar";
|
||||
version = "1.1.0";
|
||||
version = "1.2.0";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/packages/pulsar-1.1.0.tar";
|
||||
sha256 = "0hs65y2avl8w5g4zd68sdg4rl4q15ac53xlbc4qrfjynlajma6mm";
|
||||
url = "https://elpa.gnu.org/packages/pulsar-1.2.0.tar";
|
||||
sha256 = "03bx06fa7md78xrn10kigrf3p8pm07lxpw70wbhfqgq1b3zr46rl";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -7325,10 +7368,10 @@
|
||||
elpaBuild {
|
||||
pname = "relint";
|
||||
ename = "relint";
|
||||
version = "2.0";
|
||||
version = "2.1";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/packages/relint-2.0.tar";
|
||||
sha256 = "0r89b5yk5lp92k4gnr0sx6ccilqzpv6kd5csqhxydk0xmqh8rsff";
|
||||
url = "https://elpa.gnu.org/packages/relint-2.1.tar";
|
||||
sha256 = "0ikml87y0k85qd92m3l1gkzjd9ng3mhjfk19w15ln0w801351cq0";
|
||||
};
|
||||
packageRequires = [ xr ];
|
||||
meta = {
|
||||
@@ -7960,6 +8003,28 @@
|
||||
};
|
||||
}
|
||||
) { };
|
||||
speedrect = callPackage (
|
||||
{
|
||||
compat,
|
||||
elpaBuild,
|
||||
fetchurl,
|
||||
lib,
|
||||
}:
|
||||
elpaBuild {
|
||||
pname = "speedrect";
|
||||
ename = "speedrect";
|
||||
version = "0.7";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/packages/speedrect-0.7.tar";
|
||||
sha256 = "0nxwwd12qqyxq1fg8n6miyx63fp29cvpfp8w33zmf9dhkcjwyfd1";
|
||||
};
|
||||
packageRequires = [ compat ];
|
||||
meta = {
|
||||
homepage = "https://elpa.gnu.org/packages/speedrect.html";
|
||||
license = lib.licenses.free;
|
||||
};
|
||||
}
|
||||
) { };
|
||||
spinner = callPackage (
|
||||
{
|
||||
elpaBuild,
|
||||
@@ -8101,10 +8166,10 @@
|
||||
elpaBuild {
|
||||
pname = "standard-themes";
|
||||
ename = "standard-themes";
|
||||
version = "2.1.0";
|
||||
version = "2.2.0";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/packages/standard-themes-2.1.0.tar";
|
||||
sha256 = "0x7fphd36kwg4vfwix5rq7260xl6x6cjfwsq11rj4af30sm4hlfn";
|
||||
url = "https://elpa.gnu.org/packages/standard-themes-2.2.0.tar";
|
||||
sha256 = "0qdld75vcfhsn2l0xips52vrlp5q7ss3973hd722h2gp1wddn5f7";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -8122,10 +8187,10 @@
|
||||
elpaBuild {
|
||||
pname = "stream";
|
||||
ename = "stream";
|
||||
version = "2.3.0";
|
||||
version = "2.4.0";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/packages/stream-2.3.0.tar";
|
||||
sha256 = "0224hjcxvy3cxv1c3pz9j2laxld2cxqbs5sigr02fcdcb9qn7hay";
|
||||
url = "https://elpa.gnu.org/packages/stream-2.4.0.tar";
|
||||
sha256 = "16wl1q7wikk0wyzfwjz16azq025dx4wdh1j9q0nadi68ygxi172b";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -8294,10 +8359,10 @@
|
||||
elpaBuild {
|
||||
pname = "sxhkdrc-mode";
|
||||
ename = "sxhkdrc-mode";
|
||||
version = "1.0.0";
|
||||
version = "1.1.0";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/packages/sxhkdrc-mode-1.0.0.tar";
|
||||
sha256 = "0gfv5l71md2ica9jfa8ynwfag3zvayc435pl91lzcz92qy5n0hlj";
|
||||
url = "https://elpa.gnu.org/packages/sxhkdrc-mode-1.1.0.tar";
|
||||
sha256 = "00mzhxrlcbswsv3jysgqniq02inakz7j5a2hx2w83is5rbmb9bhc";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -8449,10 +8514,10 @@
|
||||
elpaBuild {
|
||||
pname = "tempel";
|
||||
ename = "tempel";
|
||||
version = "1.2";
|
||||
version = "1.3";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/packages/tempel-1.2.tar";
|
||||
sha256 = "0lvdd7lvdx4yf0zhrv380y5q3zvvk7gsxjgxj2c40np86c4q2q7m";
|
||||
url = "https://elpa.gnu.org/packages/tempel-1.3.tar";
|
||||
sha256 = "0fivsldisk17a1vbzx91kmvsd85vl0dnih77pqnzriyqs8dl1wdm";
|
||||
};
|
||||
packageRequires = [ compat ];
|
||||
meta = {
|
||||
@@ -8688,10 +8753,10 @@
|
||||
elpaBuild {
|
||||
pname = "tramp";
|
||||
ename = "tramp";
|
||||
version = "2.7.1.5";
|
||||
version = "2.7.2";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/packages/tramp-2.7.1.5.tar";
|
||||
sha256 = "11a2zyk0d1y9bxhdqfzcx4ynazfs6hb3mdgpz5kp9p3lk8l6bz5g";
|
||||
url = "https://elpa.gnu.org/packages/tramp-2.7.2.tar";
|
||||
sha256 = "1m1ar9k5f4yx98m8v0y8rm7hq5dwjafb096gmdg6mz57k1k3y6vl";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -8730,10 +8795,10 @@
|
||||
elpaBuild {
|
||||
pname = "tramp-theme";
|
||||
ename = "tramp-theme";
|
||||
version = "0.2";
|
||||
version = "0.3";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/packages/tramp-theme-0.2.tar";
|
||||
sha256 = "0dz8ndnmwc38g1gy30f3jcjqg5nzdi6721x921r4s5a8i1mx2kpm";
|
||||
url = "https://elpa.gnu.org/packages/tramp-theme-0.3.tar";
|
||||
sha256 = "1v9265cnk858jl522zcnqf2cv3f3g93f0mk52plz3n4a8k5nlfa7";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -8774,10 +8839,10 @@
|
||||
elpaBuild {
|
||||
pname = "transient";
|
||||
ename = "transient";
|
||||
version = "0.7.9";
|
||||
version = "0.8.3";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/packages/transient-0.7.9.tar";
|
||||
sha256 = "07d5pzd7nalnjxn6wpj6vpfg8pldnwh69l85immmiww03vl8ngrf";
|
||||
url = "https://elpa.gnu.org/packages/transient-0.8.3.tar";
|
||||
sha256 = "0cx9h7knkyzalkyvbvl762mnl2mslcfxh899mf5wgqfavwkzgqp7";
|
||||
};
|
||||
packageRequires = [
|
||||
compat
|
||||
@@ -9287,10 +9352,10 @@
|
||||
elpaBuild {
|
||||
pname = "verilog-mode";
|
||||
ename = "verilog-mode";
|
||||
version = "2024.10.9.140346409";
|
||||
version = "2025.1.1.100165202";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/packages/verilog-mode-2024.10.9.140346409.tar";
|
||||
sha256 = "1hm0id8sivb7znvw1f63asbs4sf4v6hkimr0j8bqqda3h9sz197l";
|
||||
url = "https://elpa.gnu.org/packages/verilog-mode-2025.1.1.100165202.tar";
|
||||
sha256 = "1cgv081dlarc0b4s6rjkqbvs4fa9npyq9pjxj7173vmgkfdwmkp5";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -9309,10 +9374,10 @@
|
||||
elpaBuild {
|
||||
pname = "vertico";
|
||||
ename = "vertico";
|
||||
version = "1.9";
|
||||
version = "1.10";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/packages/vertico-1.9.tar";
|
||||
sha256 = "12aiqxsar86xlmsfzvilza10wf184nwhg218bv6bip7v51ikh37y";
|
||||
url = "https://elpa.gnu.org/packages/vertico-1.10.tar";
|
||||
sha256 = "1mka141i5dmdw8c8dsxgxwqfr78s3gjy4rrra8qd5b8qrhv797dx";
|
||||
};
|
||||
packageRequires = [ compat ];
|
||||
meta = {
|
||||
@@ -9332,10 +9397,10 @@
|
||||
elpaBuild {
|
||||
pname = "vertico-posframe";
|
||||
ename = "vertico-posframe";
|
||||
version = "0.7.7";
|
||||
version = "0.7.8";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/packages/vertico-posframe-0.7.7.tar";
|
||||
sha256 = "0ahn0b5v9xw6f1zvgv27c82kxdh4rx7n9dbp17rkkkg3dvvkdzxy";
|
||||
url = "https://elpa.gnu.org/packages/vertico-posframe-0.7.8.tar";
|
||||
sha256 = "08f1fmr0s9kx3f7ivh1isdik04cq87j69wgl5ir0gppa39ip0dqw";
|
||||
};
|
||||
packageRequires = [
|
||||
posframe
|
||||
@@ -9853,10 +9918,10 @@
|
||||
elpaBuild {
|
||||
pname = "xr";
|
||||
ename = "xr";
|
||||
version = "2.0";
|
||||
version = "2.1";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/packages/xr-2.0.tar";
|
||||
sha256 = "1y5pcrph6v8q06mipv3l49qhw55yvvb1nnq0817bzm25k0s3z70v";
|
||||
url = "https://elpa.gnu.org/packages/xr-2.1.tar";
|
||||
sha256 = "1yssl7av2rpanzmm93iw74acnb3pbrnh0b51kr64wcj6hwb26cy2";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
codeium,
|
||||
fetchFromGitHub,
|
||||
melpaBuild,
|
||||
substituteAll,
|
||||
replaceVars,
|
||||
gitUpdater,
|
||||
}:
|
||||
|
||||
@@ -19,8 +19,7 @@ melpaBuild {
|
||||
};
|
||||
|
||||
patches = [
|
||||
(substituteAll {
|
||||
src = ./0000-set-codeium-command-executable.patch;
|
||||
(replaceVars ./0000-set-codeium-command-executable.patch {
|
||||
codeium = lib.getExe' codeium "codeium_language_server";
|
||||
})
|
||||
];
|
||||
|
||||
@@ -956,11 +956,18 @@ let
|
||||
# missing optional dependencies
|
||||
conda = addPackageRequires super.conda [ self.projectile ];
|
||||
|
||||
consult-gh = super.consult-gh.overrideAttrs (old: {
|
||||
propagatedUserEnvPkgs = old.propagatedUserEnvPkgs or [ ] ++ [ pkgs.gh ];
|
||||
});
|
||||
# needs network during compilation, also native-ice
|
||||
consult-gh = ignoreCompilationError (
|
||||
super.consult-gh.overrideAttrs (old: {
|
||||
propagatedUserEnvPkgs = old.propagatedUserEnvPkgs or [ ] ++ [ pkgs.gh ];
|
||||
})
|
||||
);
|
||||
|
||||
consult-gh-forge = buildWithGit super.consult-gh-forge;
|
||||
# needs network during compilation
|
||||
consult-gh-embark = ignoreCompilationError super.consult-gh-embark;
|
||||
|
||||
# needs network during compilation
|
||||
consult-gh-forge = ignoreCompilationError (buildWithGit super.consult-gh-forge);
|
||||
|
||||
counsel-gtags = ignoreCompilationError super.counsel-gtags; # elisp error
|
||||
|
||||
@@ -1398,7 +1405,7 @@ let
|
||||
org-gtd = ignoreCompilationError super.org-gtd; # elisp error
|
||||
|
||||
# needs newer org than the Eamcs 29.4 builtin one
|
||||
org-link-beautify = addPackageRequires super.org-link-beautify [ self.org ];
|
||||
org-link-beautify = addPackageRequires super.org-link-beautify [ self.org self.qrencode ];
|
||||
|
||||
# TODO report to upstream
|
||||
org-kindle = addPackageRequires super.org-kindle [ self.dash ];
|
||||
|
||||
@@ -177,10 +177,10 @@
|
||||
elpaBuild {
|
||||
pname = "apropospriate-theme";
|
||||
ename = "apropospriate-theme";
|
||||
version = "0.2.0.0.20241118.190153";
|
||||
version = "0.2.0.0.20241215.141144";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/apropospriate-theme-0.2.0.0.20241118.190153.tar";
|
||||
sha256 = "0nqnf57bf21wg2vlw85msg927618hhsn4qfwd60vrx70260432kf";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/apropospriate-theme-0.2.0.0.20241215.141144.tar";
|
||||
sha256 = "0hr961s3s9n9an63yxkxkryas0vr0cw9g07ir8igyan6b8b2didb";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -220,10 +220,10 @@
|
||||
elpaBuild {
|
||||
pname = "auto-dim-other-buffers";
|
||||
ename = "auto-dim-other-buffers";
|
||||
version = "2.1.1.0.20240515.131159";
|
||||
version = "2.2.1.0.20241219.184527";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/auto-dim-other-buffers-2.1.1.0.20240515.131159.tar";
|
||||
sha256 = "1dp3q1hrdcvi82pcj5hxha9yyy9lkdqs8kxfq6v7lq716wxkwxfl";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/auto-dim-other-buffers-2.2.1.0.20241219.184527.tar";
|
||||
sha256 = "0596jw2qxk79z26blq7vlch7wszv39f84kpi7gwrbad0jyjcryfw";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -284,10 +284,10 @@
|
||||
elpaBuild {
|
||||
pname = "bash-completion";
|
||||
ename = "bash-completion";
|
||||
version = "3.1.1.0.20241118.194353";
|
||||
version = "3.2.1snapshot0.20250101.145820";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/bash-completion-3.1.1.0.20241118.194353.tar";
|
||||
sha256 = "10cirfnwz34yc7glf1xzshq3926jdwdf3s7bdarykrkxmsrha4f7";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/bash-completion-3.2.1snapshot0.20250101.145820.tar";
|
||||
sha256 = "11a2fijxi102mnm63vbxgrrw2rr9nf5rhlfal3766m8rv2drwhd7";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -544,10 +544,10 @@
|
||||
elpaBuild {
|
||||
pname = "cider";
|
||||
ename = "cider";
|
||||
version = "1.16.1.0.20241203.160720";
|
||||
version = "1.16.1.0.20250103.102622";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/cider-1.16.1.0.20241203.160720.tar";
|
||||
sha256 = "0b6nqhg5c0ny8ilm4653c7pd34aj02bh6ya9bzc9swdpyq7pwnqr";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/cider-1.16.1.0.20250103.102622.tar";
|
||||
sha256 = "0xxmarmq2mja45yb4a4aqddbcnhi91dcdlw0xq5j5ab3k9grmmpa";
|
||||
};
|
||||
packageRequires = [
|
||||
clojure-mode
|
||||
@@ -573,10 +573,10 @@
|
||||
elpaBuild {
|
||||
pname = "clojure-mode";
|
||||
ename = "clojure-mode";
|
||||
version = "5.20.0snapshot0.20241125.112305";
|
||||
version = "5.20.0snapshot0.20241211.152233";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/clojure-mode-5.20.0snapshot0.20241125.112305.tar";
|
||||
sha256 = "0hh17w63j5x4687kbd2vmlj9qs468ivq54mwwcm6p43wr7rvk2cj";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/clojure-mode-5.20.0snapshot0.20241211.152233.tar";
|
||||
sha256 = "0m6bafwl3687ccl815q70bw4q8k3w12vkfl24g5x9rn6dn44ppxx";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -638,10 +638,10 @@
|
||||
elpaBuild {
|
||||
pname = "consult-flycheck";
|
||||
ename = "consult-flycheck";
|
||||
version = "1.0.0.20241114.112007";
|
||||
version = "1.0.0.20250101.91433";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/consult-flycheck-1.0.0.20241114.112007.tar";
|
||||
sha256 = "1jzli50sjr8pv2j9qg7glxdgm54sx2yw6xr7ka738gisa1r0iscl";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/consult-flycheck-1.0.0.20250101.91433.tar";
|
||||
sha256 = "05ms0zhswsdlvvrz71md4nsqisshar284xn7idw7z01ddd05rjmb";
|
||||
};
|
||||
packageRequires = [
|
||||
consult
|
||||
@@ -774,10 +774,10 @@
|
||||
elpaBuild {
|
||||
pname = "d-mode";
|
||||
ename = "d-mode";
|
||||
version = "202408131340.0.20241126.105644";
|
||||
version = "202408131340.0.20241225.185152";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/d-mode-202408131340.0.20241126.105644.tar";
|
||||
sha256 = "11hc3dyxyr1pcq25jvw9x3ys4v73rbqw9p19s4i59p9mdb0bnxpy";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/d-mode-202408131340.0.20241225.185152.tar";
|
||||
sha256 = "08wlsp1mzsn0xprslwmnhxzj58yy35vjy09l70dxz5pyxk3vg2vd";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -880,10 +880,10 @@
|
||||
elpaBuild {
|
||||
pname = "diff-ansi";
|
||||
ename = "diff-ansi";
|
||||
version = "0.2.0.20240818.235912";
|
||||
version = "0.2.0.20241208.51148";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/diff-ansi-0.2.0.20240818.235912.tar";
|
||||
sha256 = "085h7xb75dkdmsnc572rmqgzw1pp4jmxcfrr3nnpbvirgjij8pma";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/diff-ansi-0.2.0.20241208.51148.tar";
|
||||
sha256 = "08fvdzs2qmd4mbcz52bhmng2wz2pxn9x06w5sg9fjq744005p7dd";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -902,10 +902,10 @@
|
||||
elpaBuild {
|
||||
pname = "dirvish";
|
||||
ename = "dirvish";
|
||||
version = "2.0.53.0.20230519.150010";
|
||||
version = "2.0.53.0.20250101.212150";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/dirvish-2.0.53.0.20230519.150010.tar";
|
||||
sha256 = "0n73giyvg244s0cxfrkc3j0jrq20bs1zili6liab0s3ks02kvqdg";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/dirvish-2.0.53.0.20250101.212150.tar";
|
||||
sha256 = "0q4lh8xz2922lsgjb58c116sndcvy2fc0clws6bp1418fsyjxa9l";
|
||||
};
|
||||
packageRequires = [ transient ];
|
||||
meta = {
|
||||
@@ -923,10 +923,10 @@
|
||||
elpaBuild {
|
||||
pname = "doc-show-inline";
|
||||
ename = "doc-show-inline";
|
||||
version = "0.1.0.20240616.234552";
|
||||
version = "0.1.0.20241208.50508";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/doc-show-inline-0.1.0.20240616.234552.tar";
|
||||
sha256 = "0p39glahjqm2fv8xcnwyhcnzsf53g15013jbnj1lh7610bdgfk6g";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/doc-show-inline-0.1.0.20241208.50508.tar";
|
||||
sha256 = "1k98b8d0bxiz7i4n4r46zxy14jszskfmvxavwriig59p2g5gx1yb";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -965,10 +965,10 @@
|
||||
elpaBuild {
|
||||
pname = "dracula-theme";
|
||||
ename = "dracula-theme";
|
||||
version = "1.8.2.0.20241102.130126";
|
||||
version = "1.8.2.0.20241217.214522";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/dracula-theme-1.8.2.0.20241102.130126.tar";
|
||||
sha256 = "01f3g7cy9snm4f2b2rx7zd82kwxzlf9g0wapwa83k3i60p23rf5s";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/dracula-theme-1.8.2.0.20241217.214522.tar";
|
||||
sha256 = "0dizqwzgygkim66lxkxpwcidhhi7ppwazi57nqkahyd3n03ka2f9";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -1008,10 +1008,10 @@
|
||||
elpaBuild {
|
||||
pname = "dslide";
|
||||
ename = "dslide";
|
||||
version = "0.5.5.0.20241128.111432";
|
||||
version = "0.6.2.0.20250102.81901";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/dslide-0.5.5.0.20241128.111432.tar";
|
||||
sha256 = "1d2rsqzn8w6w3qvsfsgpmjwn53nsj30jivli02d7n24q30pxzpv6";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/dslide-0.6.2.0.20250102.81901.tar";
|
||||
sha256 = "18ggnfj9adlrhni2mb6f1ygc0mf7q8xm99729cbvp2k6l7yidxxc";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -1084,6 +1084,48 @@
|
||||
};
|
||||
}
|
||||
) { };
|
||||
eglot-inactive-regions = callPackage (
|
||||
{
|
||||
elpaBuild,
|
||||
fetchurl,
|
||||
lib,
|
||||
}:
|
||||
elpaBuild {
|
||||
pname = "eglot-inactive-regions";
|
||||
ename = "eglot-inactive-regions";
|
||||
version = "0.6.3.0.20241217.45248";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/eglot-inactive-regions-0.6.3.0.20241217.45248.tar";
|
||||
sha256 = "1kf84wzfdysskmxjv45c1vdp5vpg7issk92gvcvrw59afsv25cza";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
homepage = "https://elpa.nongnu.org/nongnu-devel/eglot-inactive-regions.html";
|
||||
license = lib.licenses.free;
|
||||
};
|
||||
}
|
||||
) { };
|
||||
eldoc-diffstat = callPackage (
|
||||
{
|
||||
elpaBuild,
|
||||
fetchurl,
|
||||
lib,
|
||||
}:
|
||||
elpaBuild {
|
||||
pname = "eldoc-diffstat";
|
||||
ename = "eldoc-diffstat";
|
||||
version = "1.0.0.20241214.213403";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/eldoc-diffstat-1.0.0.20241214.213403.tar";
|
||||
sha256 = "10rjz33lhsp61pjdj64k0y9wh9nlfnz1w89xck0gfp2p42kya87n";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
homepage = "https://elpa.nongnu.org/nongnu-devel/eldoc-diffstat.html";
|
||||
license = lib.licenses.free;
|
||||
};
|
||||
}
|
||||
) { };
|
||||
elixir-mode = callPackage (
|
||||
{
|
||||
elpaBuild,
|
||||
@@ -1180,10 +1222,10 @@
|
||||
elpaBuild {
|
||||
pname = "evil";
|
||||
ename = "evil";
|
||||
version = "1.15.0.0.20241006.175409";
|
||||
version = "1.15.0.0.20241229.162330";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/evil-1.15.0.0.20241006.175409.tar";
|
||||
sha256 = "0w752hhnpkfa5wqm1rk6nzq6n9y8c8mjzjhzri91l06jngpl6ckd";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/evil-1.15.0.0.20241229.162330.tar";
|
||||
sha256 = "03l1cg2d4zdh59cf93cvc3i5daq2pw7j8hw7kbdxjy5cl7136d32";
|
||||
};
|
||||
packageRequires = [
|
||||
cl-lib
|
||||
@@ -1255,10 +1297,10 @@
|
||||
elpaBuild {
|
||||
pname = "evil-escape";
|
||||
ename = "evil-escape";
|
||||
version = "3.16.0.20231122.211452";
|
||||
version = "3.16.0.20241212.131839";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/evil-escape-3.16.0.20231122.211452.tar";
|
||||
sha256 = "1yv77vxvyl41795h7ixl6fhm43n7q6xqkqp1yaqgv5g9iymdj1s0";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/evil-escape-3.16.0.20241212.131839.tar";
|
||||
sha256 = "18j653kymcvxdr0n0vibl091p2zwdzgqymw3g778visshxgk11mb";
|
||||
};
|
||||
packageRequires = [
|
||||
cl-lib
|
||||
@@ -1407,10 +1449,10 @@
|
||||
elpaBuild {
|
||||
pname = "evil-matchit";
|
||||
ename = "evil-matchit";
|
||||
version = "3.0.4.0.20241111.120111";
|
||||
version = "4.0.1.0.20241205.72440";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/evil-matchit-3.0.4.0.20241111.120111.tar";
|
||||
sha256 = "1jv7rs102i00kwdkj1n3l0j9as0kbrylhkkn2rrgwv9b97lmlirs";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/evil-matchit-4.0.1.0.20241205.72440.tar";
|
||||
sha256 = "0hi6p25pbn2xh7jzglmpvs5nvrlzi7b4gjm37q1vbyiji9k5xfci";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -1450,10 +1492,10 @@
|
||||
elpaBuild {
|
||||
pname = "evil-numbers";
|
||||
ename = "evil-numbers";
|
||||
version = "0.7.0.20241204.12906";
|
||||
version = "0.7.0.20241208.52322";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/evil-numbers-0.7.0.20241204.12906.tar";
|
||||
sha256 = "1r4ic5db8vl3mslp48w8lqx904raxi8lzp512jcjv21vs36gjl97";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/evil-numbers-0.7.0.20241208.52322.tar";
|
||||
sha256 = "1a5lw59lfavfqnaxay4c4j7246q4i3w53ra9gc44qr94432nd1q9";
|
||||
};
|
||||
packageRequires = [ evil ];
|
||||
meta = {
|
||||
@@ -1610,10 +1652,10 @@
|
||||
elpaBuild {
|
||||
pname = "flycheck";
|
||||
ename = "flycheck";
|
||||
version = "35.0snapshot0.20241130.150233";
|
||||
version = "35.0snapshot0.20250104.70510";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/flycheck-35.0snapshot0.20241130.150233.tar";
|
||||
sha256 = "08viqbba50alfj3783ykymjqwpi08si6bi411sm29gagga1cjxr6";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/flycheck-35.0snapshot0.20250104.70510.tar";
|
||||
sha256 = "1p186zsjjhaz99776zgys9zxx9fk01mllv9g6bsmzd6srmcf9bc5";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -1856,10 +1898,10 @@
|
||||
elpaBuild {
|
||||
pname = "geiser-chicken";
|
||||
ename = "geiser-chicken";
|
||||
version = "0.17.0.20241204.11932";
|
||||
version = "0.17.0.20241204.144210";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/geiser-chicken-0.17.0.20241204.11932.tar";
|
||||
sha256 = "1l95d72wl74mlfa50m9m999skj993vqdmm13qm42n0lp0y9ndvyf";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/geiser-chicken-0.17.0.20241204.144210.tar";
|
||||
sha256 = "0lss1nz7kdbpmky96r10gvsbnjxxnqlymz0d0579ggvf9hi1cj66";
|
||||
};
|
||||
packageRequires = [ geiser ];
|
||||
meta = {
|
||||
@@ -2090,10 +2132,10 @@
|
||||
elpaBuild {
|
||||
pname = "gnosis";
|
||||
ename = "gnosis";
|
||||
version = "0.4.8.0.20241115.104152";
|
||||
version = "0.4.10.0.20241211.105407";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/gnosis-0.4.8.0.20241115.104152.tar";
|
||||
sha256 = "143pmwp5g2wzmmhmbwc1q6hhf86j1cywi8x2hzvlq0p5mhkkilr1";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/gnosis-0.4.10.0.20241211.105407.tar";
|
||||
sha256 = "0wvqk279qfdvwk7k27lzw9063x7w6jypprlh1rgj6xlhnn3kv9y8";
|
||||
};
|
||||
packageRequires = [
|
||||
compat
|
||||
@@ -2264,10 +2306,10 @@
|
||||
elpaBuild {
|
||||
pname = "gptel";
|
||||
ename = "gptel";
|
||||
version = "0.9.6.0.20241202.163036";
|
||||
version = "0.9.7.0.20250103.103741";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/gptel-0.9.6.0.20241202.163036.tar";
|
||||
sha256 = "0zlfrnp01hb6syrkgkwfi1hjxm9l4j9sqrwn7a8nmk5wlw4bi6xm";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/gptel-0.9.7.0.20250103.103741.tar";
|
||||
sha256 = "00d22c6hgm8cr2wfqk4s2xcqblljzcv4iyrvbcjbgipr2nynb6iw";
|
||||
};
|
||||
packageRequires = [
|
||||
compat
|
||||
@@ -2288,10 +2330,10 @@
|
||||
elpaBuild {
|
||||
pname = "graphql-mode";
|
||||
ename = "graphql-mode";
|
||||
version = "1.0.0.0.20241020.75405";
|
||||
version = "1.0.0.0.20241206.72535";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/graphql-mode-1.0.0.0.20241020.75405.tar";
|
||||
sha256 = "0bds1zv0syg1jfdak2hk3kank4c532r6ki095wamxy06rwdbm2il";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/graphql-mode-1.0.0.0.20241206.72535.tar";
|
||||
sha256 = "06pn5rk0mkswrx2sd589hbqir1wkczjwy453ssk0az4z49g85ks9";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -2438,10 +2480,10 @@
|
||||
elpaBuild {
|
||||
pname = "haskell-ts-mode";
|
||||
ename = "haskell-ts-mode";
|
||||
version = "1.0.20241108.150811";
|
||||
version = "1.0.20250101.102728";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/haskell-ts-mode-1.0.20241108.150811.tar";
|
||||
sha256 = "1ycbcwhj9j77jgpb3ag7hy8474qdj4rzzg7z5z79f0fqvlnv94m7";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/haskell-ts-mode-1.0.20250101.102728.tar";
|
||||
sha256 = "15m1qdcb899wmdx7ih53c5ndlvv3q5fny885l287sf17f6p563k7";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -2461,10 +2503,10 @@
|
||||
elpaBuild {
|
||||
pname = "helm";
|
||||
ename = "helm";
|
||||
version = "4.0.0.20241204.51511";
|
||||
version = "4.0.0.20250104.104508";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/helm-4.0.0.20241204.51511.tar";
|
||||
sha256 = "1dzc1jg6p9r589mzwdzhlhj58239ssy85mz27kwr7yyg36cz3m3l";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/helm-4.0.0.20250104.104508.tar";
|
||||
sha256 = "0xcsfbzkwip67m5lpjwi8a08hfm8nc5xwgvz18d7685gsmizc6hs";
|
||||
};
|
||||
packageRequires = [
|
||||
helm-core
|
||||
@@ -2486,10 +2528,10 @@
|
||||
elpaBuild {
|
||||
pname = "helm-core";
|
||||
ename = "helm-core";
|
||||
version = "4.0.0.20241204.51511";
|
||||
version = "4.0.0.20250104.104508";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/helm-core-4.0.0.20241204.51511.tar";
|
||||
sha256 = "1xvx1x6p7r1ak40n3740q9iyah2d1npqg7aw1zybshcrai5bm9jm";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/helm-core-4.0.0.20250104.104508.tar";
|
||||
sha256 = "02silp1myffcm3nwrakfj8zn3c5x8msmmyrqx1id2r6wwki9f8pz";
|
||||
};
|
||||
packageRequires = [ async ];
|
||||
meta = {
|
||||
@@ -2549,10 +2591,10 @@
|
||||
elpaBuild {
|
||||
pname = "hl-block-mode";
|
||||
ename = "hl-block-mode";
|
||||
version = "0.2.0.20240422.12652";
|
||||
version = "0.2.0.20241208.45934";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/hl-block-mode-0.2.0.20240422.12652.tar";
|
||||
sha256 = "1j3fp1p066j9b67hna6mh7pb96kld9nc0mkv8jl0qdwi95aah81q";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/hl-block-mode-0.2.0.20241208.45934.tar";
|
||||
sha256 = "0s9x68h46qf49xg7fd7gbrr78l7zc53hnprq6hxhzlw5fara7xsn";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -2619,10 +2661,10 @@
|
||||
elpaBuild {
|
||||
pname = "hyperdrive";
|
||||
ename = "hyperdrive";
|
||||
version = "0.5pre0.20241106.231359";
|
||||
version = "0.6pre0.20241222.235250";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/hyperdrive-0.5pre0.20241106.231359.tar";
|
||||
sha256 = "11b3dvwzrsgg2nj3kasgrz5bwhd2i3ig4v9blzlzhyybw6wy0i1f";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/hyperdrive-0.6pre0.20241222.235250.tar";
|
||||
sha256 = "0a9z9kbnlzbv21w62zyw3mpbvjfnl5vhjmlpq65w7cc4d1qd2jp5";
|
||||
};
|
||||
packageRequires = [
|
||||
compat
|
||||
@@ -2764,10 +2806,10 @@
|
||||
elpaBuild {
|
||||
pname = "inf-ruby";
|
||||
ename = "inf-ruby";
|
||||
version = "2.8.1.0.20240925.4944";
|
||||
version = "2.8.1.0.20241220.25141";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/inf-ruby-2.8.1.0.20240925.4944.tar";
|
||||
sha256 = "1wl5nzrbafvmvvvq477lsvc14pvlmq8x9j1cqbd0cj11lvn4k1qb";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/inf-ruby-2.8.1.0.20241220.25141.tar";
|
||||
sha256 = "0z3vbdb1df0vwjm2lk6bk11c0afg8w6p5n2x8q4wgmwqyp3h3gb2";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -2895,10 +2937,10 @@
|
||||
elpaBuild {
|
||||
pname = "julia-mode";
|
||||
ename = "julia-mode";
|
||||
version = "1.0.1.0.20241120.85729";
|
||||
version = "1.0.2.0.20241213.162017";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/julia-mode-1.0.1.0.20241120.85729.tar";
|
||||
sha256 = "0a6xi5zcq1nfbsjqk84x6avlrzbjdh6fbq1h6jkqcczy7mm5rg5h";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/julia-mode-1.0.2.0.20241213.162017.tar";
|
||||
sha256 = "09l2awhz4362g03qnpsy4813afjabm2dqh8g3ma354k7ql8rr95h";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -3003,10 +3045,10 @@
|
||||
elpaBuild {
|
||||
pname = "macrostep";
|
||||
ename = "macrostep";
|
||||
version = "0.9.4.0.20241025.145629";
|
||||
version = "0.9.4.0.20241228.221506";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/macrostep-0.9.4.0.20241025.145629.tar";
|
||||
sha256 = "1xbi45ymsqc2vbhl1s3wphirgqz5ky9880fzr949bhd0ff18bw6x";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/macrostep-0.9.4.0.20241228.221506.tar";
|
||||
sha256 = "0yza9ms8i3nq4fh42s475r0m77b2phq8sx41p6irywi0clc33m0y";
|
||||
};
|
||||
packageRequires = [
|
||||
cl-lib
|
||||
@@ -3033,10 +3075,10 @@
|
||||
elpaBuild {
|
||||
pname = "magit";
|
||||
ename = "magit";
|
||||
version = "4.1.2.0.20241102.130025";
|
||||
version = "4.2.0.0.20250101.180326";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/magit-4.1.2.0.20241102.130025.tar";
|
||||
sha256 = "1y3fr2qj8a1h7hkrh47zshbmrcfxhw6i8wiqcrrba7ypnas53gcg";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/magit-4.2.0.0.20250101.180326.tar";
|
||||
sha256 = "1w6yfwsy4i1wj9wm7yk7zlxkqsws1g6ql22rw8cc93hhp9rf3a57";
|
||||
};
|
||||
packageRequires = [
|
||||
compat
|
||||
@@ -3064,10 +3106,10 @@
|
||||
elpaBuild {
|
||||
pname = "magit-section";
|
||||
ename = "magit-section";
|
||||
version = "4.1.2.0.20241102.130025";
|
||||
version = "4.2.0.0.20250101.180326";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/magit-section-4.1.2.0.20241102.130025.tar";
|
||||
sha256 = "1cnpklpsvbsi1wsmfbp5m8379cbr6jdifxm07zj4hnvi8lyr49vn";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/magit-section-4.2.0.0.20250101.180326.tar";
|
||||
sha256 = "0wyh9fvgnbn35nak6f3v8651j33sz929xwvkqgyrbicxwdwxinbr";
|
||||
};
|
||||
packageRequires = [
|
||||
compat
|
||||
@@ -3089,10 +3131,10 @@
|
||||
elpaBuild {
|
||||
pname = "markdown-mode";
|
||||
ename = "markdown-mode";
|
||||
version = "2.7alpha0.20241203.113852";
|
||||
version = "2.7alpha0.20241210.10425";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/markdown-mode-2.7alpha0.20241203.113852.tar";
|
||||
sha256 = "14kkg7wj6qkq84jsa5cdwc7i7lqvilx21nb9lyddqxqxm8h7sld8";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/markdown-mode-2.7alpha0.20241210.10425.tar";
|
||||
sha256 = "1rlja17nqr9ly5mab5824dc97w7sgr45adrfhn5li79g89hazd3n";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -3113,10 +3155,10 @@
|
||||
elpaBuild {
|
||||
pname = "mastodon";
|
||||
ename = "mastodon";
|
||||
version = "1.1.7.0.20241202.183936";
|
||||
version = "1.1.8.0.20241223.104057";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/mastodon-1.1.7.0.20241202.183936.tar";
|
||||
sha256 = "08683fah6xkfzgxi6si4qgl4mxccczj4dcaivif1qlhfrc3bh66f";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/mastodon-1.1.8.0.20241223.104057.tar";
|
||||
sha256 = "13iyzv0gyad07215zvvs9q52ikqf97qn851qgjqqhq9k4p07a22q";
|
||||
};
|
||||
packageRequires = [
|
||||
persist
|
||||
@@ -3189,10 +3231,10 @@
|
||||
elpaBuild {
|
||||
pname = "meow";
|
||||
ename = "meow";
|
||||
version = "1.5.0.0.20241203.160407";
|
||||
version = "1.5.0.0.20241224.211501";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/meow-1.5.0.0.20241203.160407.tar";
|
||||
sha256 = "0a3zdx91j5q0mllm71951392hgnn5q9l960qs2lazs8plpv4pn9f";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/meow-1.5.0.0.20241224.211501.tar";
|
||||
sha256 = "1xrq21awlf12ki7rdsm6n37hg4m1jjfjz8n0m2193jml94wc4cf8";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -3448,10 +3490,10 @@
|
||||
elpaBuild {
|
||||
pname = "org-contrib";
|
||||
ename = "org-contrib";
|
||||
version = "0.6.0.20241029.204012";
|
||||
version = "0.6.0.20241207.74256";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/org-contrib-0.6.0.20241029.204012.tar";
|
||||
sha256 = "12pfmv5ns5igdvc06glcc8nxqcj7lwjqc3s86720ys57y4py566w";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/org-contrib-0.6.0.20241207.74256.tar";
|
||||
sha256 = "0i9ii3ngimx1l8s4pq2zn73lnry1npsbrsxzn92gwayj0sm77bkp";
|
||||
};
|
||||
packageRequires = [ org ];
|
||||
meta = {
|
||||
@@ -3881,10 +3923,10 @@
|
||||
elpaBuild {
|
||||
pname = "php-mode";
|
||||
ename = "php-mode";
|
||||
version = "1.26.1.0.20241024.124149";
|
||||
version = "1.26.1.0.20250103.15745";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/php-mode-1.26.1.0.20241024.124149.tar";
|
||||
sha256 = "0h5lzvsssk0nf3g408a7jg25crglsjkhcfp1ckjnzpgiwf59i6w8";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/php-mode-1.26.1.0.20250103.15745.tar";
|
||||
sha256 = "0ls4wpcn6lk5qn7n7gamk9sx6fm35cdbrv96pzi6srf3q1r71wpr";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -3923,10 +3965,10 @@
|
||||
elpaBuild {
|
||||
pname = "popup";
|
||||
ename = "popup";
|
||||
version = "0.5.9.0.20240721.5155";
|
||||
version = "0.5.9.0.20250101.4328";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/popup-0.5.9.0.20240721.5155.tar";
|
||||
sha256 = "11ay4yknbc6dy7c08dcaz4sy1ly98m0ghchif0m2mm72s2hgw7g7";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/popup-0.5.9.0.20250101.4328.tar";
|
||||
sha256 = "0qgkwd0kbkifkpfv0gznd4n81xhf62q9s0bd0831yp1mkxd9y03x";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -4008,10 +4050,10 @@
|
||||
elpaBuild {
|
||||
pname = "racket-mode";
|
||||
ename = "racket-mode";
|
||||
version = "1.0.20241129.85359";
|
||||
version = "1.0.20250103.151851";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/racket-mode-1.0.20241129.85359.tar";
|
||||
sha256 = "0j6hs2wpaknzprcm18y1ayqjcr2sl0z22fhw1yla5rv74lyqzglx";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/racket-mode-1.0.20250103.151851.tar";
|
||||
sha256 = "03m0ky98s647ajrjf85i9zvqwmwh4l33rdywbcc5vg516hgsnh0d";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -4071,10 +4113,10 @@
|
||||
elpaBuild {
|
||||
pname = "recomplete";
|
||||
ename = "recomplete";
|
||||
version = "0.2.0.20240616.234552";
|
||||
version = "0.2.0.20241208.45418";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/recomplete-0.2.0.20240616.234552.tar";
|
||||
sha256 = "0gkd3g1p6i4l7s6gqjsdj20m3y8n75wlcfw6xii0ka7n8j8dmrz4";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/recomplete-0.2.0.20241208.45418.tar";
|
||||
sha256 = "1pflxqh7ng3khkmn4g760k8v1amd9x18i452cxd5iwfq1cb9l9f4";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -4092,10 +4134,10 @@
|
||||
elpaBuild {
|
||||
pname = "reformatter";
|
||||
ename = "reformatter";
|
||||
version = "0.8.0.20241106.203153";
|
||||
version = "0.8.0.20241204.105138";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/reformatter-0.8.0.20241106.203153.tar";
|
||||
sha256 = "1gni5f8x8d6m063k9bgaqah80w2hnb12d7qwdw1ai0xg7jb92vp7";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/reformatter-0.8.0.20241204.105138.tar";
|
||||
sha256 = "1j78naw4jikh7nby67gdbx9banchmf1q5fysal1328gxnyqknmzi";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -4224,10 +4266,10 @@
|
||||
elpaBuild {
|
||||
pname = "scad-mode";
|
||||
ename = "scad-mode";
|
||||
version = "94.0.0.20240926.92457";
|
||||
version = "95.0.0.20250102.95738";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/scad-mode-94.0.0.20240926.92457.tar";
|
||||
sha256 = "09hgnzzfi6wdy3p0nfl6a00npxpsdy30dyc89m1h087wlhkjjyci";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/scad-mode-95.0.0.20250102.95738.tar";
|
||||
sha256 = "0pzqzz1a0shf0dm70c1d730m3dndal2dvm4dw65vxasj8vc1v8nx";
|
||||
};
|
||||
packageRequires = [ compat ];
|
||||
meta = {
|
||||
@@ -4245,10 +4287,10 @@
|
||||
elpaBuild {
|
||||
pname = "scala-mode";
|
||||
ename = "scala-mode";
|
||||
version = "1.1.0.0.20240729.42046";
|
||||
version = "1.1.1.0.20241231.83915";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/scala-mode-1.1.0.0.20240729.42046.tar";
|
||||
sha256 = "0981n96zx633iypwyz2f6af7r1lzx0lick7zv0azqglrwgnly35r";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/scala-mode-1.1.1.0.20241231.83915.tar";
|
||||
sha256 = "079w6awnk36h33fz4gsqcnc3llsfmv1pmwzqyy8vv27x65i9fxjs";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -4351,10 +4393,10 @@
|
||||
elpaBuild {
|
||||
pname = "slime";
|
||||
ename = "slime";
|
||||
version = "2.31.0.20241201.210325";
|
||||
version = "2.31snapshot0.20250101.45918";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/slime-2.31.0.20241201.210325.tar";
|
||||
sha256 = "05skikmrfcwbahph8z50kf1zh5vps7459zw7l1bipgyvhfvpq9fn";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/slime-2.31snapshot0.20250101.45918.tar";
|
||||
sha256 = "153phs96ibjap5hp0ffs9c9isdhc05vgdqr4hlhjyk62b71n71k4";
|
||||
};
|
||||
packageRequires = [ macrostep ];
|
||||
meta = {
|
||||
@@ -4386,6 +4428,7 @@
|
||||
) { };
|
||||
smartparens = callPackage (
|
||||
{
|
||||
dash,
|
||||
elpaBuild,
|
||||
fetchurl,
|
||||
lib,
|
||||
@@ -4393,12 +4436,12 @@
|
||||
elpaBuild {
|
||||
pname = "smartparens";
|
||||
ename = "smartparens";
|
||||
version = "1.11.0.0.20240713.100215";
|
||||
version = "1.11.0.0.20241220.125445";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/smartparens-1.11.0.0.20240713.100215.tar";
|
||||
sha256 = "0479n363cz4izdxdl2420fcmngbfjp7a5xv9xlxyab62aph63f0w";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/smartparens-1.11.0.0.20241220.125445.tar";
|
||||
sha256 = "0ww5m3cj78abbpfrshbszgs21mnd6pfcpwrbnqz81a4qk37q3nny";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
packageRequires = [ dash ];
|
||||
meta = {
|
||||
homepage = "https://elpa.nongnu.org/nongnu-devel/smartparens.html";
|
||||
license = lib.licenses.free;
|
||||
@@ -4540,10 +4583,10 @@
|
||||
elpaBuild {
|
||||
pname = "subed";
|
||||
ename = "subed";
|
||||
version = "1.2.21.0.20241117.83905";
|
||||
version = "1.2.23.0.20250101.141954";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/subed-1.2.21.0.20241117.83905.tar";
|
||||
sha256 = "0v95g129yp9s3kknbw1fp4iqn0f0g65bhvw4433v3dbinw9l3k74";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/subed-1.2.23.0.20250101.141954.tar";
|
||||
sha256 = "1srh30xxx7s4y79rc6fkq3aggywvnkd1wrhbmidhqd3lkfw3f1ms";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -4804,10 +4847,10 @@
|
||||
elpaBuild {
|
||||
pname = "tp";
|
||||
ename = "tp";
|
||||
version = "0.6.0.20241031.72940";
|
||||
version = "0.6.0.20250103.142809";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/tp-0.6.0.20241031.72940.tar";
|
||||
sha256 = "1m8qhar75cglg8qjh3sbgwkzkhfp3640nm73nddxrshnajn978bf";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/tp-0.6.0.20250103.142809.tar";
|
||||
sha256 = "19mrjhi7qxwxp1shqqvkpmj49kari9g74wym3v2k80586kj2j0cm";
|
||||
};
|
||||
packageRequires = [ transient ];
|
||||
meta = {
|
||||
@@ -4931,10 +4974,10 @@
|
||||
elpaBuild {
|
||||
pname = "undo-fu";
|
||||
ename = "undo-fu";
|
||||
version = "0.5.0.20240707.141050";
|
||||
version = "0.5.0.20241206.21950";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/undo-fu-0.5.0.20240707.141050.tar";
|
||||
sha256 = "0glgy1manfv9rykkxhafc969mhazd119zgrkm5fg9shcyb7q629a";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/undo-fu-0.5.0.20241206.21950.tar";
|
||||
sha256 = "0kslql79g5y0sszjm6xxyxjzrnskm70dgglwwl2g4a1rjwavcp3v";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -4952,10 +4995,10 @@
|
||||
elpaBuild {
|
||||
pname = "undo-fu-session";
|
||||
ename = "undo-fu-session";
|
||||
version = "0.7.0.20240713.142701";
|
||||
version = "0.7.0.20241212.4030";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/undo-fu-session-0.7.0.20240713.142701.tar";
|
||||
sha256 = "1c70cvf9f1x96l8gxfl4qpljwsqsqjcn745srsf9w9mcz520fyaa";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/undo-fu-session-0.7.0.20241212.4030.tar";
|
||||
sha256 = "1nggzbk1xi0w5f5y2xkp2jk4imfbqfaldngavslz1rhskiqwdqqa";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -5062,10 +5105,10 @@
|
||||
elpaBuild {
|
||||
pname = "web-mode";
|
||||
ename = "web-mode";
|
||||
version = "17.3.20.0.20240804.82110";
|
||||
version = "17.3.21.0.20241227.53016";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/web-mode-17.3.20.0.20240804.82110.tar";
|
||||
sha256 = "17r0jhcgxnc1k42yxaw1i7wwyb0sp311a1gz8bdjax0zn05ki4xc";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/web-mode-17.3.21.0.20241227.53016.tar";
|
||||
sha256 = "0syhyqryfh2rvf2688rqfs3j0p0fh794vw85qwdh3kxi57w8ra8h";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -5130,10 +5173,10 @@
|
||||
elpaBuild {
|
||||
pname = "wgrep";
|
||||
ename = "wgrep";
|
||||
version = "3.0.0.0.20231216.120954";
|
||||
version = "3.0.0.0.20241206.130617";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/wgrep-3.0.0.0.20231216.120954.tar";
|
||||
sha256 = "1qadyl29a70d9m5z32s0r18rjxg0jdmbpjr47zgvppl807mfni85";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/wgrep-3.0.0.0.20241206.130617.tar";
|
||||
sha256 = "1ihwqz865wcdb83aw6nmzhnkrf7rnxqkcncmz7rvzddsrg19hahr";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -5283,10 +5326,10 @@
|
||||
elpaBuild {
|
||||
pname = "xah-fly-keys";
|
||||
ename = "xah-fly-keys";
|
||||
version = "26.8.20241118173945.0.20241118.174137";
|
||||
version = "26.9.20241225173150.0.20241225.173444";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/xah-fly-keys-26.8.20241118173945.0.20241118.174137.tar";
|
||||
sha256 = "196hv8hjzp87b8y9k65w2zag46bx2jhmah1w9mdjxwkfbq6bjcmq";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/xah-fly-keys-26.9.20241225173150.0.20241225.173444.tar";
|
||||
sha256 = "08c168kcb0ds9g8hfqwd4qnymmg7z32k3g51ap9rqw6048cyl5fw";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -5369,10 +5412,10 @@
|
||||
elpaBuild {
|
||||
pname = "yasnippet-snippets";
|
||||
ename = "yasnippet-snippets";
|
||||
version = "1.0.0.20241014.94920";
|
||||
version = "1.0.0.20241207.222105";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/yasnippet-snippets-1.0.0.20241014.94920.tar";
|
||||
sha256 = "065wcvb295dhyi6jvb80vagzb8idqycchqgy32pj0fr6vcxx7y88";
|
||||
url = "https://elpa.nongnu.org/nongnu-devel/yasnippet-snippets-1.0.0.20241207.222105.tar";
|
||||
sha256 = "1nd9cnnwqrxizfzqdx3a4l9wj5sdr6gg42fss9dngbd22spa3kkb";
|
||||
};
|
||||
packageRequires = [ yasnippet ];
|
||||
meta = {
|
||||
|
||||
@@ -220,10 +220,10 @@
|
||||
elpaBuild {
|
||||
pname = "auto-dim-other-buffers";
|
||||
ename = "auto-dim-other-buffers";
|
||||
version = "2.1.1";
|
||||
version = "2.2.1";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu/auto-dim-other-buffers-2.1.1.tar";
|
||||
sha256 = "0rgf0q66kdw9ind5bi01ydk84rclcd3kmlfzm9rfb429xnhqfzw8";
|
||||
url = "https://elpa.nongnu.org/nongnu/auto-dim-other-buffers-2.2.1.tar";
|
||||
sha256 = "00x0niv1zd47b2xl19k3fi0xxskdndiabns107cxzwb7pnkp4f0m";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -284,10 +284,10 @@
|
||||
elpaBuild {
|
||||
pname = "bash-completion";
|
||||
ename = "bash-completion";
|
||||
version = "3.1.1";
|
||||
version = "3.2";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu/bash-completion-3.1.1.tar";
|
||||
sha256 = "1yc1a5cvmnp8dranrglpd7qjg35r6x4ndniinbmzinqr7dmydh62";
|
||||
url = "https://elpa.nongnu.org/nongnu/bash-completion-3.2.tar";
|
||||
sha256 = "19xpv87nb1gskfsfqj8hmhbzlhxk0m6dflizsnrq94bh7rbw3s12";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -1031,10 +1031,10 @@
|
||||
elpaBuild {
|
||||
pname = "dslide";
|
||||
ename = "dslide";
|
||||
version = "0.5.5";
|
||||
version = "0.6.2";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu/dslide-0.5.5.tar";
|
||||
sha256 = "1hnmnl6ildr2cyc8hx1maa3vnz621d41yhsx8naxq3mssz4rkajp";
|
||||
url = "https://elpa.nongnu.org/nongnu/dslide-0.6.2.tar";
|
||||
sha256 = "02lny7c7v6345nlprmpi39pyk7m9lpr85g8xkd70ivkpc122qdy2";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -1108,6 +1108,48 @@
|
||||
};
|
||||
}
|
||||
) { };
|
||||
eglot-inactive-regions = callPackage (
|
||||
{
|
||||
elpaBuild,
|
||||
fetchurl,
|
||||
lib,
|
||||
}:
|
||||
elpaBuild {
|
||||
pname = "eglot-inactive-regions";
|
||||
ename = "eglot-inactive-regions";
|
||||
version = "0.6.3";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu/eglot-inactive-regions-0.6.3.tar";
|
||||
sha256 = "03958dgr48zqak06qjqdz6qgfxn5rs60425qcvb7wdv2jb4400hc";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
homepage = "https://elpa.nongnu.org/nongnu/eglot-inactive-regions.html";
|
||||
license = lib.licenses.free;
|
||||
};
|
||||
}
|
||||
) { };
|
||||
eldoc-diffstat = callPackage (
|
||||
{
|
||||
elpaBuild,
|
||||
fetchurl,
|
||||
lib,
|
||||
}:
|
||||
elpaBuild {
|
||||
pname = "eldoc-diffstat";
|
||||
ename = "eldoc-diffstat";
|
||||
version = "1.0";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu/eldoc-diffstat-1.0.tar";
|
||||
sha256 = "0cxmhi1whzh4z62vv1pyvl2v6wr0jbq560m6zib8zicvdfxqlpgk";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
homepage = "https://elpa.nongnu.org/nongnu/eldoc-diffstat.html";
|
||||
license = lib.licenses.free;
|
||||
};
|
||||
}
|
||||
) { };
|
||||
elixir-mode = callPackage (
|
||||
{
|
||||
elpaBuild,
|
||||
@@ -1425,10 +1467,10 @@
|
||||
elpaBuild {
|
||||
pname = "evil-matchit";
|
||||
ename = "evil-matchit";
|
||||
version = "3.0.4";
|
||||
version = "4.0.1";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu/evil-matchit-3.0.4.tar";
|
||||
sha256 = "1ib2xlz7ciaszw2j5184mf6560jmap93vh515sk8dmkkahdwsjgz";
|
||||
url = "https://elpa.nongnu.org/nongnu/evil-matchit-4.0.1.tar";
|
||||
sha256 = "08vnf56zmqicfjwf7ihlmg9iil3bivhwpafq8vwlvp5nkmirhivv";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -2107,10 +2149,10 @@
|
||||
elpaBuild {
|
||||
pname = "gnosis";
|
||||
ename = "gnosis";
|
||||
version = "0.4.8";
|
||||
version = "0.4.10";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu/gnosis-0.4.8.tar";
|
||||
sha256 = "1sf6213qj6i306rqbp1a5wj7haw5vkmc1684fdfqzyqa1gw2ni5v";
|
||||
url = "https://elpa.nongnu.org/nongnu/gnosis-0.4.10.tar";
|
||||
sha256 = "16z0f93x8x4ldyld2aqpprmk6xqz4qnd5fbrclcvj8gcg6qj4iz8";
|
||||
};
|
||||
packageRequires = [
|
||||
compat
|
||||
@@ -2281,10 +2323,10 @@
|
||||
elpaBuild {
|
||||
pname = "gptel";
|
||||
ename = "gptel";
|
||||
version = "0.9.6";
|
||||
version = "0.9.7";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu/gptel-0.9.6.tar";
|
||||
sha256 = "0n7d8plabgmpyl224079cqrwlgqq7wwysba0wd0ry75h6z388rcb";
|
||||
url = "https://elpa.nongnu.org/nongnu/gptel-0.9.7.tar";
|
||||
sha256 = "0sh8q80q620d6yr4437ddrjrzygd15iwkc9jvwh3pw9sncv2laqn";
|
||||
};
|
||||
packageRequires = [
|
||||
compat
|
||||
@@ -2635,10 +2677,10 @@
|
||||
elpaBuild {
|
||||
pname = "hyperdrive";
|
||||
ename = "hyperdrive";
|
||||
version = "0.4.2";
|
||||
version = "0.5.2";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu/hyperdrive-0.4.2.tar";
|
||||
sha256 = "19cgx0x54xj2z98m8mr1xmz0bbja0nilh8n47mkbnzmcqidv75gq";
|
||||
url = "https://elpa.nongnu.org/nongnu/hyperdrive-0.5.2.tar";
|
||||
sha256 = "1gn6kdxvds27bjfsamzihqg8bddwsyfmc2g36p50km2qfa8fgpvz";
|
||||
};
|
||||
packageRequires = [
|
||||
compat
|
||||
@@ -2911,10 +2953,10 @@
|
||||
elpaBuild {
|
||||
pname = "julia-mode";
|
||||
ename = "julia-mode";
|
||||
version = "1.0.1";
|
||||
version = "1.0.2";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu/julia-mode-1.0.1.tar";
|
||||
sha256 = "0203h99yia5k37ansy2wshkiyn105jaahmkm0ncf54far8dw6mwx";
|
||||
url = "https://elpa.nongnu.org/nongnu/julia-mode-1.0.2.tar";
|
||||
sha256 = "1wwnyanxbpzy4n8n3ixafdbx7badkl1krcnk0yf5923f2ahiqhlr";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -3049,10 +3091,10 @@
|
||||
elpaBuild {
|
||||
pname = "magit";
|
||||
ename = "magit";
|
||||
version = "4.1.2";
|
||||
version = "4.2.0";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu/magit-4.1.2.tar";
|
||||
sha256 = "1jyivrk78fnp7kcrac9sm2ldbxg9c96qhnlz06wv1m7hbvd3fgfx";
|
||||
url = "https://elpa.nongnu.org/nongnu/magit-4.2.0.tar";
|
||||
sha256 = "04nf4ff7a11z65mcw6qnkxwk9srpi248f1k0li947i4264gl3prd";
|
||||
};
|
||||
packageRequires = [
|
||||
compat
|
||||
@@ -3080,10 +3122,10 @@
|
||||
elpaBuild {
|
||||
pname = "magit-section";
|
||||
ename = "magit-section";
|
||||
version = "4.1.2";
|
||||
version = "4.2.0";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu/magit-section-4.1.2.tar";
|
||||
sha256 = "0g24aj030fh55y44f3c33708fbm02jwzggh75zvg63bka3g6j242";
|
||||
url = "https://elpa.nongnu.org/nongnu/magit-section-4.2.0.tar";
|
||||
sha256 = "05wlc327x45vfsphwz9bf1hl8w46ychqkp6j7wsngjzwzsifxmb4";
|
||||
};
|
||||
packageRequires = [
|
||||
compat
|
||||
@@ -3129,10 +3171,10 @@
|
||||
elpaBuild {
|
||||
pname = "mastodon";
|
||||
ename = "mastodon";
|
||||
version = "1.1.7";
|
||||
version = "1.1.8";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu/mastodon-1.1.7.tar";
|
||||
sha256 = "0qnkbab6y0gpqq0kvil4gnbajflpv0mz3pzcimcvz79dnmb0vc9p";
|
||||
url = "https://elpa.nongnu.org/nongnu/mastodon-1.1.8.tar";
|
||||
sha256 = "06jy1n7ikz4xdpw4rkma596pqgkxcmh7qfkz93584rjfqav88anl";
|
||||
};
|
||||
packageRequires = [
|
||||
persist
|
||||
@@ -4031,10 +4073,10 @@
|
||||
elpaBuild {
|
||||
pname = "racket-mode";
|
||||
ename = "racket-mode";
|
||||
version = "1.0.20241129.85359";
|
||||
version = "1.0.20250103.151851";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu/racket-mode-1.0.20241129.85359.tar";
|
||||
sha256 = "0ish7ysdqypw849k9d3cw0bl69r5ksc3hrqdmyh8k2ipq2xbcn2w";
|
||||
url = "https://elpa.nongnu.org/nongnu/racket-mode-1.0.20250103.151851.tar";
|
||||
sha256 = "11m25729hm7m5srjiys1ws070yi2aa7ni5rn240w9290nj1brjnb";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -4243,10 +4285,10 @@
|
||||
elpaBuild {
|
||||
pname = "scad-mode";
|
||||
ename = "scad-mode";
|
||||
version = "94.0";
|
||||
version = "95.0";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu/scad-mode-94.0.tar";
|
||||
sha256 = "1cqai7qb9m17rf7llkn9vbxddgn0ixcf3dbnsjk1aflvj8mq9nr3";
|
||||
url = "https://elpa.nongnu.org/nongnu/scad-mode-95.0.tar";
|
||||
sha256 = "1wkpgrkx3cjmh72qg9yiq2x9sqswx6x6pbr8zzhldyjs6kmjl7km";
|
||||
};
|
||||
packageRequires = [ compat ];
|
||||
meta = {
|
||||
@@ -4264,10 +4306,10 @@
|
||||
elpaBuild {
|
||||
pname = "scala-mode";
|
||||
ename = "scala-mode";
|
||||
version = "1.1.0";
|
||||
version = "1.1.1";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu/scala-mode-1.1.0.tar";
|
||||
sha256 = "1x3vw4fzy1z6gavnbsm4lnwzkp47zd8gasvxxvfk57qn09hpwixh";
|
||||
url = "https://elpa.nongnu.org/nongnu/scala-mode-1.1.1.tar";
|
||||
sha256 = "1dmaq00432smrwqx6ybw855vdwp7s8h358c135ji5d581mkhpai5";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -4559,10 +4601,10 @@
|
||||
elpaBuild {
|
||||
pname = "subed";
|
||||
ename = "subed";
|
||||
version = "1.2.21";
|
||||
version = "1.2.23";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu/subed-1.2.21.tar";
|
||||
sha256 = "1d0w96amchcpblcbkl16yiwsvj8qfpax66ysjg02550lhpb493x7";
|
||||
url = "https://elpa.nongnu.org/nongnu/subed-1.2.23.tar";
|
||||
sha256 = "0bvsv688mqhga8dffy3841wxs5pkw0vish15dgligll47cj98mzp";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -5056,10 +5098,10 @@
|
||||
elpaBuild {
|
||||
pname = "web-mode";
|
||||
ename = "web-mode";
|
||||
version = "17.3.20";
|
||||
version = "17.3.21";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu/web-mode-17.3.20.tar";
|
||||
sha256 = "1l4bmvc53ma2n3y143k86ip0w4am65zwxnl36lzqavs1hr55qvb2";
|
||||
url = "https://elpa.nongnu.org/nongnu/web-mode-17.3.21.tar";
|
||||
sha256 = "0yqaszrkllfgp0ph7rvjhz35wqzi4bas0qw70d49vaxq4z7bikzg";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
@@ -5277,10 +5319,10 @@
|
||||
elpaBuild {
|
||||
pname = "xah-fly-keys";
|
||||
ename = "xah-fly-keys";
|
||||
version = "26.8.20241118173945";
|
||||
version = "26.9.20241225173150";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu/xah-fly-keys-26.8.20241118173945.tar";
|
||||
sha256 = "1l6wwv1zmpsf64v23zzi2idjb14wnbpv5fcspiygiah62zag44vf";
|
||||
url = "https://elpa.nongnu.org/nongnu/xah-fly-keys-26.9.20241225173150.tar";
|
||||
sha256 = "0b2pjrfa130n4bam80p676k3xz417d6dfn8921xh6msf8b14cwpv";
|
||||
};
|
||||
packageRequires = [ ];
|
||||
meta = {
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -9,7 +9,6 @@
|
||||
common-updater-scripts,
|
||||
git,
|
||||
nix,
|
||||
nixfmt-classic,
|
||||
coreutils,
|
||||
gnused,
|
||||
callPackage,
|
||||
@@ -75,7 +74,6 @@ stdenv.mkDerivation rec {
|
||||
lib.makeBinPath [
|
||||
common-updater-scripts
|
||||
git
|
||||
nixfmt-classic
|
||||
nix
|
||||
coreutils
|
||||
gnused
|
||||
@@ -87,9 +85,6 @@ stdenv.mkDerivation rec {
|
||||
|
||||
if [ ! "$oldVersion" = "$latestTag" ]; then
|
||||
update-source-version ${pname} "$latestTag" --version-key=version --print-changes
|
||||
nixpkgs="$(git rev-parse --show-toplevel)"
|
||||
default_nix="$nixpkgs/pkgs/applications/editors/nano/default.nix"
|
||||
nixfmt "$default_nix"
|
||||
else
|
||||
echo "${pname} is already up-to-date"
|
||||
fi
|
||||
|
||||
@@ -23,10 +23,10 @@ let
|
||||
# certain plugins need a custom configuration (available in passthru.initLua)
|
||||
# to work with nix.
|
||||
# if true, the wrapper automatically appends those snippets when necessary
|
||||
, autoconfigure ? false
|
||||
, autoconfigure ? true
|
||||
|
||||
# append to PATH runtime deps of plugins
|
||||
, autowrapRuntimeDeps ? false
|
||||
, autowrapRuntimeDeps ? true
|
||||
|
||||
# should contain all args but the binary. Can be either a string or list
|
||||
, wrapperArgs ? []
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{ lib, fetchFromGitHub }:
|
||||
rec {
|
||||
version = "9.1.0905";
|
||||
version = "9.1.0990";
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
@@ -11,7 +11,7 @@ rec {
|
||||
owner = "vim";
|
||||
repo = "vim";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-sFsTONGeSocn1M8NZo5LjIhagmq/nR1zrGRN7p86Q4o=";
|
||||
hash = "sha256-KKjJCuGczwYP+NVx5f6YQRsKR0zW44ciNNvmjQ03ytM=";
|
||||
};
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
@@ -10771,6 +10771,18 @@ final: prev:
|
||||
meta.homepage = "https://github.com/olivercederborg/poimandres.nvim/";
|
||||
};
|
||||
|
||||
pomo-nvim = buildVimPlugin {
|
||||
pname = "pomo.nvim";
|
||||
version = "2024-07-30";
|
||||
src = fetchFromGitHub {
|
||||
owner = "epwalsh";
|
||||
repo = "pomo.nvim";
|
||||
rev = "aa8decc421d89be0f10b1fc6a602cdd269f350ff";
|
||||
sha256 = "1drld6dmibkg4b35n181v98gwfi8yhshx1gfkg82k72a5apr77dl";
|
||||
};
|
||||
meta.homepage = "https://github.com/epwalsh/pomo.nvim/";
|
||||
};
|
||||
|
||||
pony-vim-syntax = buildVimPlugin {
|
||||
pname = "pony-vim-syntax";
|
||||
version = "2017-09-26";
|
||||
|
||||
@@ -11,7 +11,6 @@
|
||||
fetchurl,
|
||||
neovimUtils,
|
||||
replaceVars,
|
||||
substituteAll,
|
||||
# Language dependencies
|
||||
fetchYarnDeps,
|
||||
mkYarnModules,
|
||||
@@ -58,6 +57,7 @@
|
||||
tmux,
|
||||
tup,
|
||||
typescript,
|
||||
typescript-language-server,
|
||||
vim,
|
||||
which,
|
||||
xdg-utils,
|
||||
@@ -188,8 +188,7 @@ in
|
||||
|
||||
aw-watcher-vim = super.aw-watcher-vim.overrideAttrs {
|
||||
patches = [
|
||||
(substituteAll {
|
||||
src = ./patches/aw-watcher-vim/program_paths.patch;
|
||||
(replaceVars ./patches/aw-watcher-vim/program_paths.patch {
|
||||
curl = lib.getExe curl;
|
||||
})
|
||||
];
|
||||
@@ -1103,8 +1102,7 @@ in
|
||||
super.fruzzy.overrideAttrs (old: {
|
||||
buildInputs = [ nim1 ];
|
||||
patches = [
|
||||
(substituteAll {
|
||||
src = ./patches/fruzzy/get_version.patch;
|
||||
(replaceVars ./patches/fruzzy/get_version.patch {
|
||||
inherit (old) version;
|
||||
})
|
||||
];
|
||||
@@ -1243,8 +1241,7 @@ in
|
||||
|
||||
gx-nvim = super.gx-nvim.overrideAttrs {
|
||||
patches = lib.optionals stdenv.hostPlatform.isLinux [
|
||||
(substituteAll {
|
||||
src = ./patches/gx-nvim/fix-paths.patch;
|
||||
(replaceVars ./patches/gx-nvim/fix-paths.patch {
|
||||
inherit xdg-utils;
|
||||
})
|
||||
];
|
||||
@@ -1530,10 +1527,7 @@ in
|
||||
# https://github.com/NixOS/nixpkgs/pull/105810#issuecomment-740007985
|
||||
# https://github.com/camspiers/lens.vim/pull/40/files
|
||||
patches = [
|
||||
(substituteAll {
|
||||
src = ./patches/lens-vim/remove_duplicate_g_lens_animate.patch;
|
||||
inherit languagetool;
|
||||
})
|
||||
./patches/lens-vim/remove_duplicate_g_lens_animate.patch
|
||||
];
|
||||
};
|
||||
|
||||
@@ -1662,8 +1656,7 @@ in
|
||||
in
|
||||
super.markdown-preview-nvim.overrideAttrs {
|
||||
patches = [
|
||||
(substituteAll {
|
||||
src = ./markdown-preview-nvim/fix-node-paths.patch;
|
||||
(replaceVars ./markdown-preview-nvim/fix-node-paths.patch {
|
||||
node = "${nodejs}/bin/node";
|
||||
})
|
||||
];
|
||||
@@ -2573,8 +2566,7 @@ in
|
||||
"openscad.utilities"
|
||||
];
|
||||
patches = [
|
||||
(substituteAll {
|
||||
src = ./patches/openscad.nvim/program_paths.patch;
|
||||
(replaceVars ./patches/openscad.nvim/program_paths.patch {
|
||||
htop = lib.getExe htop;
|
||||
openscad = lib.getExe openscad;
|
||||
zathura = lib.getExe zathura;
|
||||
@@ -2683,8 +2675,7 @@ in
|
||||
|
||||
Preview-nvim = super.Preview-nvim.overrideAttrs {
|
||||
patches = [
|
||||
(substituteAll {
|
||||
src = ./patches/preview-nvim/hardcode-mdt-binary-path.patch;
|
||||
(replaceVars ./patches/preview-nvim/hardcode-mdt-binary-path.patch {
|
||||
mdt = lib.getExe md-tui;
|
||||
})
|
||||
];
|
||||
@@ -3308,6 +3299,9 @@ in
|
||||
nvim-lspconfig
|
||||
plenary-nvim
|
||||
];
|
||||
runtimeDeps = [
|
||||
typescript-language-server
|
||||
];
|
||||
};
|
||||
|
||||
nvzone-typr = super.nvzone-typr.overrideAttrs {
|
||||
@@ -3534,8 +3528,7 @@ in
|
||||
# let g:grammarous#show_first_error = 1
|
||||
# see https://github.com/rhysd/vim-grammarous/issues/39
|
||||
patches = [
|
||||
(substituteAll {
|
||||
src = ./patches/vim-grammarous/set_default_languagetool.patch;
|
||||
(replaceVars ./patches/vim-grammarous/set_default_languagetool.patch {
|
||||
inherit languagetool;
|
||||
})
|
||||
];
|
||||
|
||||
@@ -892,6 +892,7 @@ https://github.com/aklt/plantuml-syntax/,,
|
||||
https://github.com/nvim-treesitter/playground/,,
|
||||
https://github.com/nvim-lua/plenary.nvim/,,
|
||||
https://github.com/olivercederborg/poimandres.nvim/,HEAD,
|
||||
https://github.com/epwalsh/pomo.nvim/,HEAD,
|
||||
https://github.com/dleonard0/pony-vim-syntax/,,
|
||||
https://github.com/RishabhRD/popfix/,,
|
||||
https://github.com/nvim-lua/popup.nvim/,,
|
||||
|
||||
@@ -4231,8 +4231,8 @@ let
|
||||
mktplcRef = {
|
||||
name = "wikitext";
|
||||
publisher = "RoweWilsonFrederiskHolme";
|
||||
version = "3.8.2";
|
||||
hash = "sha256-rWifSoJSN37xPIaCQgPyXRz9tCX2Akahl/3CuqzXq94=";
|
||||
version = "4.0.1";
|
||||
hash = "sha256-DN7VRLr5IaqCdsbADriH0AuUODGL8OeZWbCSozQTboU=";
|
||||
};
|
||||
meta = {
|
||||
description = "Extension that helps users view and write MediaWiki's Wikitext files";
|
||||
|
||||
@@ -7,8 +7,8 @@ vscode-utils.buildVscodeMarketplaceExtension {
|
||||
mktplcRef = {
|
||||
name = "claude-dev";
|
||||
publisher = "saoudrizwan";
|
||||
version = "3.1.1";
|
||||
hash = "sha256-xpVb+5neAvMv8ebQlObjVE/lNd7Gn/KLbQAZ9AvQRFI=";
|
||||
version = "3.1.11";
|
||||
hash = "sha256-DxeMTbbDXofhq4+WvO8fpczyxorSJSw6bU3c8xFdDgg=";
|
||||
};
|
||||
|
||||
meta = {
|
||||
|
||||
@@ -57,6 +57,11 @@ callPackage ./generic.nix rec {
|
||||
|
||||
updateScript = ./update-vscodium.sh;
|
||||
|
||||
# Editing the `codium` binary (and shell scripts) within the app bundle causes the bundle's signature
|
||||
# to be invalidated, which prevents launching starting with macOS Ventura, because VSCodium is notarized.
|
||||
# See https://eclecticlight.co/2022/06/17/app-security-changes-coming-in-ventura/ for more information.
|
||||
dontFixup = stdenv.hostPlatform.isDarwin;
|
||||
|
||||
meta = with lib; {
|
||||
description = ''
|
||||
Open source source code editor developed by Microsoft for Windows,
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
## build described at https://wiki.winehq.org/Building_Wine#Shared_WoW64
|
||||
|
||||
source $stdenv/setup
|
||||
preFlags="${configureFlags}"
|
||||
|
||||
unpackPhase
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
pkgsi686Linux,
|
||||
pkgsCross,
|
||||
callPackage,
|
||||
substituteAll,
|
||||
replaceVars,
|
||||
moltenvk,
|
||||
wineRelease ? "stable",
|
||||
supportFlags,
|
||||
@@ -80,8 +80,7 @@ with src;
|
||||
mingwW64.buildPackages.gcc
|
||||
];
|
||||
monos = [ mono ];
|
||||
buildScript = substituteAll {
|
||||
src = ./builder-wow.sh;
|
||||
buildScript = replaceVars ./builder-wow.sh {
|
||||
# pkgconfig has trouble picking the right architecture
|
||||
pkgconfig64remove = lib.makeSearchPathOutput "dev" "lib/pkgconfig" [
|
||||
pkgs.glib
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
stdenv,
|
||||
lib,
|
||||
fetchurl,
|
||||
substituteAll,
|
||||
replaceVars,
|
||||
autoreconfHook,
|
||||
pkg-config,
|
||||
intltool,
|
||||
@@ -74,8 +74,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
patches = [
|
||||
# to remove compiler from the runtime closure, reference was retained via
|
||||
# gimp --version --verbose output
|
||||
(substituteAll {
|
||||
src = ./remove-cc-reference.patch;
|
||||
(replaceVars ./remove-cc-reference.patch {
|
||||
cc_version = stdenv.cc.cc.name;
|
||||
})
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
, potrace
|
||||
, python3
|
||||
, runCommand
|
||||
, substituteAll
|
||||
, replaceVars
|
||||
, wrapGAppsHook3
|
||||
, libepoxy
|
||||
, zlib
|
||||
@@ -92,15 +92,13 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
url = "https://gitlab.com/inkscape/inkscape/-/commit/eb6dadcf1a5c660167ba43f3606c8e7cc6529787.patch";
|
||||
hash = "sha256-FvbJV/YrBwhHg0kFdbhyd/Y9g7YV2nPIrRqZt7yJ50Q=";
|
||||
})
|
||||
(substituteAll {
|
||||
src = ./fix-python-paths.patch;
|
||||
(replaceVars ./fix-python-paths.patch {
|
||||
# Python is used at run-time to execute scripts,
|
||||
# e.g., those from the "Effects" menu.
|
||||
python3 = lib.getExe python3Env;
|
||||
})
|
||||
(substituteAll {
|
||||
(replaceVars ./fix-ps2pdf-path.patch {
|
||||
# Fix path to ps2pdf binary
|
||||
src = ./fix-ps2pdf-path.patch;
|
||||
inherit ghostscript;
|
||||
})
|
||||
];
|
||||
@@ -113,6 +111,13 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
# double-conversion is a dependency of 2geom
|
||||
substituteInPlace CMakeScripts/DefineDependsandFlags.cmake \
|
||||
--replace-fail 'find_package(DoubleConversion REQUIRED)' ""
|
||||
# use native Python when cross-compiling
|
||||
shopt -s globstar
|
||||
for f in **/CMakeLists.txt; do
|
||||
substituteInPlace $f \
|
||||
--replace-quiet "COMMAND python3" "COMMAND ${lib.getExe python3Env.pythonOnBuildForHost}"
|
||||
done
|
||||
shopt -u globstar
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
lib,
|
||||
writeScript,
|
||||
fetchFromGitHub,
|
||||
substituteAll,
|
||||
replaceVars,
|
||||
inkscape,
|
||||
pdflatex,
|
||||
lualatex,
|
||||
@@ -33,8 +33,7 @@ python3.pkgs.buildPythonApplication rec {
|
||||
patches = [
|
||||
# Make sure we can point directly to pdflatex in the extension,
|
||||
# instead of relying on the PATH (which might not have it)
|
||||
(substituteAll {
|
||||
src = ./fix-paths.patch;
|
||||
(replaceVars ./fix-paths.patch {
|
||||
inherit pdflatex lualatex;
|
||||
})
|
||||
|
||||
|
||||
@@ -6,8 +6,7 @@
|
||||
, cmake
|
||||
, pkg-config
|
||||
, wrapGAppsHook3
|
||||
, boost
|
||||
, boost183
|
||||
, boost186
|
||||
, cereal
|
||||
, cgal
|
||||
, curl
|
||||
@@ -72,14 +71,6 @@ let
|
||||
|
||||
patches = [
|
||||
];
|
||||
|
||||
# Build requires at least Boost v1.83. If the mainline package satisfies
|
||||
# that, just use the mainline package, otherwise use an explicitly versioned
|
||||
# package.
|
||||
boost183OrBetter =
|
||||
if lib.versionAtLeast boost.version "1.83"
|
||||
then boost
|
||||
else boost183;
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "prusa-slicer";
|
||||
@@ -111,7 +102,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
buildInputs = [
|
||||
binutils
|
||||
boost183OrBetter
|
||||
boost186 # does not build with 1.87, see https://github.com/prusa3d/PrusaSlicer/issues/13799
|
||||
cereal
|
||||
cgal
|
||||
curl
|
||||
|
||||
@@ -38,14 +38,14 @@
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
version = "1.7.0";
|
||||
version = "1.7.1";
|
||||
pname = "syncthingtray";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Martchus";
|
||||
repo = "syncthingtray";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-YKOqgUMK+FYYemxDcxfDV42z/1qSSja6M7NAt+UaFEo=";
|
||||
hash = "sha256-97ehL61C6q/8Hlbt3bMkrZ33V+Z4a4xatc5p1Tw5NIw=";
|
||||
};
|
||||
|
||||
buildInputs =
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
qtbase,
|
||||
qttools,
|
||||
libnova,
|
||||
proj_7,
|
||||
proj,
|
||||
libpng,
|
||||
openjpeg,
|
||||
}:
|
||||
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
|
||||
bzip2
|
||||
qtbase
|
||||
libnova
|
||||
proj_7
|
||||
proj
|
||||
openjpeg
|
||||
libpng
|
||||
];
|
||||
|
||||
@@ -766,27 +766,27 @@
|
||||
}
|
||||
},
|
||||
"ungoogled-chromium": {
|
||||
"version": "131.0.6778.264",
|
||||
"version": "132.0.6834.83",
|
||||
"deps": {
|
||||
"depot_tools": {
|
||||
"rev": "20b9bdcace7ed561d6a75728c85373503473cb6b",
|
||||
"hash": "sha256-vlBENaVTtbwDJtSswuszcUlx+icZYJeP6ew6MO1cAv0="
|
||||
"rev": "41d43a2a2290450aeab946883542f8049b155c87",
|
||||
"hash": "sha256-m/6b4VZZTUQOeED1mYvZOQCx8Re+Zd4O8SKDMjJ9Djo="
|
||||
},
|
||||
"gn": {
|
||||
"rev": "95b0f8fe31a992a33c040bbe3867901335c12762",
|
||||
"hash": "sha256-a8yCdBsl0nBMPS+pCLwrkAvQNP/THx/z/GySyOgx4Jk="
|
||||
"rev": "feafd1012a32c05ec6095f69ddc3850afb621f3a",
|
||||
"hash": "sha256-zZoD5Bx7wIEP2KJkHef6wHrxU3px+8Vseq29QcK32bg="
|
||||
},
|
||||
"ungoogled-patches": {
|
||||
"rev": "131.0.6778.264-1",
|
||||
"hash": "sha256-u/2iKhrJRbvOtv5Yi/AfSpR7Xu4NjBTF5G03wsVGEKo="
|
||||
"rev": "132.0.6834.83-1",
|
||||
"hash": "sha256-yL7eMNTL1FDoqXcwuHx5BzjjESjzsIfdzHCTZW9jXUo="
|
||||
},
|
||||
"npmHash": "sha256-b1l8SwjAfoColoa3zhTMPEF/rRuxzT3ATHE77rWU5EA="
|
||||
"npmHash": "sha256-H1/h3x+Cgp1x94Ze3UPPHxRVpylZDvpMXMOuS+jk2dw="
|
||||
},
|
||||
"DEPS": {
|
||||
"src": {
|
||||
"url": "https://chromium.googlesource.com/chromium/src.git",
|
||||
"rev": "2d05e31515360f4da764174f7c448b33e36da871",
|
||||
"hash": "sha256-aAb+lMefY4+zADsVeyLIhNI4AQfGmzu+7Y8o3t2csmU=",
|
||||
"rev": "03d59cf5ecf1d8444838ff9a1e96231304d4ff9c",
|
||||
"hash": "sha256-2FuT20iW8Mp4AehdEFT5Ua3La5z8bmT1FdLaUZRL0CE=",
|
||||
"recompress": true
|
||||
},
|
||||
"src/third_party/clang-format/script": {
|
||||
@@ -796,18 +796,23 @@
|
||||
},
|
||||
"src/third_party/libc++/src": {
|
||||
"url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx.git",
|
||||
"rev": "6a68fd412b9aecd515a20a7cf84d11b598bfaf96",
|
||||
"hash": "sha256-7skqaen0XqbRvAGXQ0/3kea3vRInktdP3DOBeIBiGlQ="
|
||||
"rev": "8e31ad42561900383e10dbefc1d3e8f38cedfbe9",
|
||||
"hash": "sha256-kmhTlz/qjvN0Qlra7Wz05O6X058hPPn0nVvAxFXQDC4="
|
||||
},
|
||||
"src/third_party/libc++abi/src": {
|
||||
"url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git",
|
||||
"rev": "9a1d90c3b412d5ebeb97a6e33d98e1d0dd923221",
|
||||
"hash": "sha256-zPm+Rif9fITazDvvm6SvLq8gwcPzPbuaXlRbyYqv7JA="
|
||||
"rev": "cec7f478354a8c8599f264ed8bb6043b5468f72d",
|
||||
"hash": "sha256-CwiK9Td8aRS08RywItHKFvibzDAUYYd0YNRKxYPLTD8="
|
||||
},
|
||||
"src/third_party/libunwind/src": {
|
||||
"url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libunwind.git",
|
||||
"rev": "efc3baa2d1ece3630fcfa72bef93ed831bcaec4c",
|
||||
"hash": "sha256-0OBelaxkKdajYXrGgz08nyPZhxqpsnFXiF3m8DGQkDo="
|
||||
"rev": "5b01ea4a6f3b666b7d190e7cb7c31db2ed4d94ce",
|
||||
"hash": "sha256-uA+t5Ecc/iK3mllHR8AMVGRfU/7z1G3yrw0TamPQiOY="
|
||||
},
|
||||
"src/third_party/llvm-libc/src": {
|
||||
"url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libc.git",
|
||||
"rev": "ca74a72e2b32ad804522bbef04dfe32560a10206",
|
||||
"hash": "sha256-av9JdqLOQbezgRS4P8QXmvfB5l47v04WRagNJJgT5u4="
|
||||
},
|
||||
"src/chrome/test/data/perf/canvas_bench": {
|
||||
"url": "https://chromium.googlesource.com/chromium/canvas_bench.git",
|
||||
@@ -826,8 +831,8 @@
|
||||
},
|
||||
"src/docs/website": {
|
||||
"url": "https://chromium.googlesource.com/website.git",
|
||||
"rev": "4811f9e01c4cfcbf9c6957015063eaaa0d92be91",
|
||||
"hash": "sha256-98wwIeMTF2Wg2sJ07U1OUV83wR9nJOjGubp7Vnk3kj8="
|
||||
"rev": "be9c3dfd3781964fc0bab0d6c91d9ad117b71b02",
|
||||
"hash": "sha256-CqveHvjPEcRWnzi8w13xr2OainrmABNO8uj0GzKmQqo="
|
||||
},
|
||||
"src/media/cdm/api": {
|
||||
"url": "https://chromium.googlesource.com/chromium/cdm.git",
|
||||
@@ -836,13 +841,13 @@
|
||||
},
|
||||
"src/net/third_party/quiche/src": {
|
||||
"url": "https://quiche.googlesource.com/quiche.git",
|
||||
"rev": "e0175250977c2b2b95087afc0857883538a1386c",
|
||||
"hash": "sha256-1O+hnZF73AY44jcmajJlpaQY5PV4+x0hYwqf1TtMahY="
|
||||
"rev": "9616efc903b7469161996006c8cf963238e26503",
|
||||
"hash": "sha256-Z2uFWfZDYcY0m4R6mFMZJLnnVHu3/hQOAkCPQ5049SQ="
|
||||
},
|
||||
"src/testing/libfuzzer/fuzzers/wasm_corpus": {
|
||||
"url": "https://chromium.googlesource.com/v8/fuzzer_wasm_corpus.git",
|
||||
"rev": "f650ff816f2ef227f61ea2e9f222aa69708ab367",
|
||||
"hash": "sha256-qWsGQNUptbz0jYvUuxP7woNf5QQrfn9k3uvr82Yk0QM="
|
||||
"rev": "1df5e50a45db9518a56ebb42cb020a94a090258b",
|
||||
"hash": "sha256-gItDOfNqm1tHlmelz3l2GGdiKi9adu1EpPP6U7+8EQY="
|
||||
},
|
||||
"src/third_party/accessibility_test_framework/src": {
|
||||
"url": "https://chromium.googlesource.com/external/github.com/google/Accessibility-Test-Framework-for-Android.git",
|
||||
@@ -851,8 +856,8 @@
|
||||
},
|
||||
"src/third_party/angle": {
|
||||
"url": "https://chromium.googlesource.com/angle/angle.git",
|
||||
"rev": "ac6cda4cbd716102ded6a965f79573b41581898d",
|
||||
"hash": "sha256-7Zfc262U42G6BUlxnLp6sQ78VlWBt0pTzkYwXY0rqaE="
|
||||
"rev": "ce13a00a2b049a1ef5e0e70a3d333ce70838ef7b",
|
||||
"hash": "sha256-fMIHpa2QFsQQ19LGyhvV3Ihh6Ls8wwwhqTtpLoTEaf4="
|
||||
},
|
||||
"src/third_party/angle/third_party/glmark2/src": {
|
||||
"url": "https://chromium.googlesource.com/external/github.com/glmark2/glmark2",
|
||||
@@ -866,8 +871,8 @@
|
||||
},
|
||||
"src/third_party/angle/third_party/VK-GL-CTS/src": {
|
||||
"url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS",
|
||||
"rev": "179dd9f858f0f5b0e52b61aefc621dc82e2ad34a",
|
||||
"hash": "sha256-B7X9PTlMQdolsvEfuCNaKnRFcvsPNZtn5FOcJBY6sCA="
|
||||
"rev": "f674555ab03e6355e0981a647c115097e9fe5324",
|
||||
"hash": "sha256-2ZhG4cJf85zO7x+SGG6RD2qgOxZVosxAIbuZt9GYUKs="
|
||||
},
|
||||
"src/third_party/anonymous_tokens/src": {
|
||||
"url": "https://chromium.googlesource.com/external/github.com/google/anonymous-tokens.git",
|
||||
@@ -881,13 +886,13 @@
|
||||
},
|
||||
"src/third_party/dav1d/libdav1d": {
|
||||
"url": "https://chromium.googlesource.com/external/github.com/videolan/dav1d.git",
|
||||
"rev": "389450f61ea0b2057fc9ea393d3065859c4ba7f2",
|
||||
"hash": "sha256-FK3tOLq5NcKQuStY5o8Lv2CXpjYHJm7n+NnyLFMOCxo="
|
||||
"rev": "93f12c117a4e1c0cc2b129dcc52e84dbd9b84200",
|
||||
"hash": "sha256-Q2CaWvDqOmfaPG6a+SUHG5rFHalPEf4Oq/ytT3xuSOk="
|
||||
},
|
||||
"src/third_party/dawn": {
|
||||
"url": "https://dawn.googlesource.com/dawn.git",
|
||||
"rev": "740d2502dbbd719a76c5a8d3fb4dac1b5363f42e",
|
||||
"hash": "sha256-R41YVv4uWCU6SsACXPRppeCDguTs+/NVJckvMGGTgJE="
|
||||
"rev": "73dbf565079c89a531e6e01c4e8fc048a8a9660b",
|
||||
"hash": "sha256-6P3Mw60+xZVsFbrhG6UkTlz8xvvEOptV3Ar1sos0CsU="
|
||||
},
|
||||
"src/third_party/dawn/third_party/glfw": {
|
||||
"url": "https://chromium.googlesource.com/external/github.com/glfw/glfw",
|
||||
@@ -896,8 +901,8 @@
|
||||
},
|
||||
"src/third_party/dawn/third_party/dxc": {
|
||||
"url": "https://chromium.googlesource.com/external/github.com/microsoft/DirectXShaderCompiler",
|
||||
"rev": "080aeb7199e66e4b0a2b6383fd26a9f8d2cccbf5",
|
||||
"hash": "sha256-YHEBGqfftgK68wWAWVTxtbl1GECBT1qTNe7irYkM/8k="
|
||||
"rev": "ac36a797d3470e8ee906b98457a59270d01db30d",
|
||||
"hash": "sha256-rhUNPA5b0H3PBsOpXbAeRLpS0tNQkiHbjRBWmJycSAY="
|
||||
},
|
||||
"src/third_party/dawn/third_party/dxheaders": {
|
||||
"url": "https://chromium.googlesource.com/external/github.com/microsoft/DirectX-Headers",
|
||||
@@ -921,38 +926,38 @@
|
||||
},
|
||||
"src/third_party/dawn/third_party/webgpu-cts": {
|
||||
"url": "https://chromium.googlesource.com/external/github.com/gpuweb/cts",
|
||||
"rev": "815ff2bb4038144dea89c33021bc4429f22a130f",
|
||||
"hash": "sha256-28uZotrv+/MBBo+pcBWY3Csqrdv5Y4DxGbGEwK9Cwdw="
|
||||
"rev": "8690defa74b6975c10e85c113f121d4b2a3f2564",
|
||||
"hash": "sha256-ArbHGjkHd1sko7gDPFksYz7XHKNge+e6tVy6oKPuqzg="
|
||||
},
|
||||
"src/third_party/highway/src": {
|
||||
"url": "https://chromium.googlesource.com/external/github.com/google/highway.git",
|
||||
"rev": "8295336dd70f1201d42c22ab5b0861de38cf8fbf",
|
||||
"hash": "sha256-PXsXIqWB4NNiFhanRjMIFSWYuW/IRuQo8mMPUBEentY="
|
||||
"rev": "00fe003dac355b979f36157f9407c7c46448958e",
|
||||
"hash": "sha256-IS7m1wBwpPBUNhx2GttY1fzvmLIeAp3o2gXfrFpRdvY="
|
||||
},
|
||||
"src/third_party/google_benchmark/src": {
|
||||
"url": "https://chromium.googlesource.com/external/github.com/google/benchmark.git",
|
||||
"rev": "344117638c8ff7e239044fd0fa7085839fc03021",
|
||||
"hash": "sha256-gztnxui9Fe/FTieMjdvfJjWHjkImtlsHn6fM1FruyME="
|
||||
"rev": "761305ec3b33abf30e08d50eb829e19a802581cc",
|
||||
"hash": "sha256-cH8s1gP6kCcojAAfTt5iQCVqiAaSooNk4BdaILujM3w="
|
||||
},
|
||||
"src/third_party/boringssl/src": {
|
||||
"url": "https://boringssl.googlesource.com/boringssl.git",
|
||||
"rev": "cd95210465496ac2337b313cf49f607762abe286",
|
||||
"hash": "sha256-172yvjgbFWQyd0PBRl74PJzpY/mDGC85D7PdeogNodU="
|
||||
"rev": "571c76e919c0c48219ced35bef83e1fc83b00eed",
|
||||
"hash": "sha256-ib9wbV6S64OFc4zx0wQsQ84+5RxbETK0PS9Wm1BFQ1U="
|
||||
},
|
||||
"src/third_party/breakpad/breakpad": {
|
||||
"url": "https://chromium.googlesource.com/breakpad/breakpad.git",
|
||||
"rev": "6b0c5b7ee1988a14a4af94564e8ae8bba8a94374",
|
||||
"hash": "sha256-kTkwRfaqw5ZCHEvu2YPZ+1vCfekHkY5pY3m9snDN64g="
|
||||
"rev": "47f7823bdf4b1f39e462b2a497a674860e922e38",
|
||||
"hash": "sha256-cFXUi2oO/614jF0GV7oW0ss62dXWFHDNWNT8rWHAiQc="
|
||||
},
|
||||
"src/third_party/cast_core/public/src": {
|
||||
"url": "https://chromium.googlesource.com/cast_core/public",
|
||||
"rev": "71f51fd6fa45fac73848f65421081edd723297cd",
|
||||
"hash": "sha256-AalRQhJmornCqmvE2+36J/3LubaA0jr6P1PXy32lX4I="
|
||||
"rev": "fbc5e98031e1271a0a566fcd4d9092b2d3275d05",
|
||||
"hash": "sha256-o5/Lbhh6HHSWCVCEyDwDCgs+PLm67si981w0HuIWY7c="
|
||||
},
|
||||
"src/third_party/catapult": {
|
||||
"url": "https://chromium.googlesource.com/catapult.git",
|
||||
"rev": "44791916611acec1cd74c492c7453e46d9b0dbd2",
|
||||
"hash": "sha256-SkF+RIIlU8Vl3AmN6kARkLuVz/X5vygNOtGN2K3Sr+M="
|
||||
"rev": "b91cf840ac3255ef03b23cc93621369627422a1a",
|
||||
"hash": "sha256-65cZPyqZUdSnYPJYUMYeJgx3mUC6L/qb9P2bDqd2Zkk="
|
||||
},
|
||||
"src/third_party/ced/src": {
|
||||
"url": "https://chromium.googlesource.com/external/github.com/google/compact_enc_det.git",
|
||||
@@ -961,8 +966,8 @@
|
||||
},
|
||||
"src/third_party/chromium-variations": {
|
||||
"url": "https://chromium.googlesource.com/chromium-variations.git",
|
||||
"rev": "7d681838b57a25ca6659b9cc0111f879147c416b",
|
||||
"hash": "sha256-zio8SqKEqOYYjVWZnzfrPqngqym2lZu9M/hgSi3ey0Q="
|
||||
"rev": "c170abb48f7715c237f4c06eaed0fe6f8a4c6f8d",
|
||||
"hash": "sha256-mg5mu2jcy0xyNJ650ywWUMC94keRsqhZQuPZclHmyLI="
|
||||
},
|
||||
"src/third_party/cld_3/src": {
|
||||
"url": "https://chromium.googlesource.com/external/github.com/google/cld_3.git",
|
||||
@@ -981,8 +986,8 @@
|
||||
},
|
||||
"src/third_party/cpuinfo/src": {
|
||||
"url": "https://chromium.googlesource.com/external/github.com/pytorch/cpuinfo.git",
|
||||
"rev": "1e83a2fdd3102f65c6f1fb602c1b320486218a99",
|
||||
"hash": "sha256-28cFACca+NYE8oKlP5aWXNCLeEjhWqJ6gRnFI+VxDvg="
|
||||
"rev": "8df44962d437a0477f07ba6b8843d0b6a48646a4",
|
||||
"hash": "sha256-FlvmSjY8kt5XHymDLaZdPuZ4k5xcagJk8w/U6adTkWI="
|
||||
},
|
||||
"src/third_party/crc32c/src": {
|
||||
"url": "https://chromium.googlesource.com/external/github.com/google/crc32c.git",
|
||||
@@ -991,23 +996,23 @@
|
||||
},
|
||||
"src/third_party/cros_system_api": {
|
||||
"url": "https://chromium.googlesource.com/chromiumos/platform2/system_api.git",
|
||||
"rev": "b08c5ad457bddea2664ba20fb25beb3d1799fed2",
|
||||
"hash": "sha256-cwpcY8YTXk+VVIFphO5ihc5rvbG3ZY9iHeK81P5DHBs="
|
||||
"rev": "554629b9242e6ae832ef14e3384654426f7fcc06",
|
||||
"hash": "sha256-fvGypRhgl2uX9YE2cwjL7d3pYBa3Imd5p0RLhMYRgrc="
|
||||
},
|
||||
"src/third_party/crossbench": {
|
||||
"url": "https://chromium.googlesource.com/crossbench.git",
|
||||
"rev": "b4d7ae714c548c3e139b95a85582dc15ece1d2f7",
|
||||
"hash": "sha256-1RDDbvce5WR32if3cFYxiU9HS04x3BYIgOFJPMVJSBo="
|
||||
"rev": "ae6f165652e0ea983d73f5d04b7470d08c869e4f",
|
||||
"hash": "sha256-/K6eM9s+fd2wjCrK0g0CgFNy0zxEN9SxTvmE50hMtXw="
|
||||
},
|
||||
"src/third_party/depot_tools": {
|
||||
"url": "https://chromium.googlesource.com/chromium/tools/depot_tools.git",
|
||||
"rev": "20b9bdcace7ed561d6a75728c85373503473cb6b",
|
||||
"hash": "sha256-vlBENaVTtbwDJtSswuszcUlx+icZYJeP6ew6MO1cAv0="
|
||||
"rev": "41d43a2a2290450aeab946883542f8049b155c87",
|
||||
"hash": "sha256-m/6b4VZZTUQOeED1mYvZOQCx8Re+Zd4O8SKDMjJ9Djo="
|
||||
},
|
||||
"src/third_party/devtools-frontend/src": {
|
||||
"url": "https://chromium.googlesource.com/devtools/devtools-frontend",
|
||||
"rev": "5284f1c63b2b08c47b8915ce713a1aace991dfe9",
|
||||
"hash": "sha256-1Nh9SVIAde4jxgwFucbtZpl6rMyPM4Plfi+dhwP0wI8="
|
||||
"rev": "f2f3682c9db8ca427f8c64f0402cc2c5152c6c24",
|
||||
"hash": "sha256-mBWZdbgZfO01Pt2lZSHX/d5r+8A/+qCZA8MRtZdeTrs="
|
||||
},
|
||||
"src/third_party/dom_distiller_js/dist": {
|
||||
"url": "https://chromium.googlesource.com/chromium/dom-distiller/dist.git",
|
||||
@@ -1016,8 +1021,8 @@
|
||||
},
|
||||
"src/third_party/eigen3/src": {
|
||||
"url": "https://chromium.googlesource.com/external/gitlab.com/libeigen/eigen.git",
|
||||
"rev": "7eea0a9213e801ad9479a6499fd0330ec1db8693",
|
||||
"hash": "sha256-JkOjOnLrDOcYHi3hptT1BDRvsKpTtOsBHT8YLb1hlJM="
|
||||
"rev": "b396a6fbb2e173f52edb3360485dedf3389ef830",
|
||||
"hash": "sha256-UroGjERR5TW9KbyLwR/NBpytXrW1tHfu6ZvQPngROq4="
|
||||
},
|
||||
"src/third_party/farmhash/src": {
|
||||
"url": "https://chromium.googlesource.com/external/github.com/google/farmhash.git",
|
||||
@@ -1031,8 +1036,8 @@
|
||||
},
|
||||
"src/third_party/ffmpeg": {
|
||||
"url": "https://chromium.googlesource.com/chromium/third_party/ffmpeg.git",
|
||||
"rev": "686d6944501a6ee9c849581e3fe343273d4af3f6",
|
||||
"hash": "sha256-j5mpWn4j+U4rRlXbq8okUUXrRKycZkiV+UntiS90ChM="
|
||||
"rev": "591ae4b02eaff9a03e2ec863da895128b0b49910",
|
||||
"hash": "sha256-wwHxNuZe2hBmGBpVg/iQJBoL350jfPYPTPqDn3RiqZE="
|
||||
},
|
||||
"src/third_party/flac": {
|
||||
"url": "https://chromium.googlesource.com/chromium/deps/flac.git",
|
||||
@@ -1066,8 +1071,8 @@
|
||||
},
|
||||
"src/third_party/freetype/src": {
|
||||
"url": "https://chromium.googlesource.com/chromium/src/third_party/freetype2.git",
|
||||
"rev": "f02bffad0fd57f3acfa835c3f2899c5b71ff8be0",
|
||||
"hash": "sha256-Lc2hbmZnnXQa0vzlJCizNBQ5WCOI5sJglTTe5gWVYUA="
|
||||
"rev": "0ae7e607370cc66218ccfacf5de4db8a35424c2f",
|
||||
"hash": "sha256-+nbRZi3vAMTURhhFVUu5+59fVIv0GH3YZog2JavyVLY="
|
||||
},
|
||||
"src/third_party/freetype-testing/src": {
|
||||
"url": "https://chromium.googlesource.com/external/github.com/freetype/freetype2-testing.git",
|
||||
@@ -1116,8 +1121,8 @@
|
||||
},
|
||||
"src/third_party/googletest/src": {
|
||||
"url": "https://chromium.googlesource.com/external/github.com/google/googletest.git",
|
||||
"rev": "62df7bdbc10887e094661e07ec2595b7920376fd",
|
||||
"hash": "sha256-Iv/7r79cKC1pFkxPPHK/IHv/HFx18XZ4YVr+C2CX8+M="
|
||||
"rev": "d144031940543e15423a25ae5a8a74141044862f",
|
||||
"hash": "sha256-n7tiIFAj8AiSCa9Tw+1j+ro9cSt5vagZpkbBBUUtYQY="
|
||||
},
|
||||
"src/third_party/hunspell_dictionaries": {
|
||||
"url": "https://chromium.googlesource.com/chromium/deps/hunspell_dictionaries.git",
|
||||
@@ -1141,8 +1146,8 @@
|
||||
},
|
||||
"src/third_party/libFuzzer/src": {
|
||||
"url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/compiler-rt/lib/fuzzer.git",
|
||||
"rev": "487e79376394754705984c5de7c4ce7f82f2bd7c",
|
||||
"hash": "sha256-xQXfRIcQmAVP0k2mT7Blv1wBxL6wDaWTbIPGcTiMZRo="
|
||||
"rev": "a7128317fe7935a43d6c9f39df54f21113951941",
|
||||
"hash": "sha256-jPS+Xi/ia0sMspxSGN38zasmVS/HslxH/qOFsV9TguE="
|
||||
},
|
||||
"src/third_party/fuzztest/src": {
|
||||
"url": "https://chromium.googlesource.com/external/github.com/google/fuzztest.git",
|
||||
@@ -1161,28 +1166,23 @@
|
||||
},
|
||||
"src/third_party/libaom/source/libaom": {
|
||||
"url": "https://aomedia.googlesource.com/aom.git",
|
||||
"rev": "840f8797871cc587f7113ea9d2483a1156d57c0e",
|
||||
"hash": "sha256-2XHqNAmv2L3TEFXu4Q6rnASLmuE93QplSVKNqyhlKUk="
|
||||
"rev": "be60f06ab420d6a65c477213f04c8b0f2e12ba2e",
|
||||
"hash": "sha256-9VhEVOG9cReDOGoX+x5G/jJ8Y5RDoQIiLMoZtt5c9pI="
|
||||
},
|
||||
"src/third_party/libavif/src": {
|
||||
"url": "https://chromium.googlesource.com/external/github.com/AOMediaCodec/libavif.git",
|
||||
"rev": "2c36aed375fff68611641b57d919b191f33431d5",
|
||||
"hash": "sha256-fApdfzEtQnmio6BVzkcr/VkwojrNs+cx/+Am80H9dXw="
|
||||
"rev": "1cdeff7ecf456492c47cf48fc0cef6591cdc95da",
|
||||
"hash": "sha256-lUuVyh2srhWMNUp4lEivyDic3MSZf5s63iAb84We80M="
|
||||
},
|
||||
"src/third_party/crabbyavif/src": {
|
||||
"url": "https://chromium.googlesource.com/external/github.com/webmproject/CrabbyAvif.git",
|
||||
"rev": "ffad64ff4e349f926ad5ffcc882e205a94156d77",
|
||||
"hash": "sha256-M2ExAgLm/NZ2soQEv3Ap/qx/B3+nd3NdDqYOL0E/pc8="
|
||||
},
|
||||
"src/third_party/libavifinfo/src": {
|
||||
"url": "https://aomedia.googlesource.com/libavifinfo.git",
|
||||
"rev": "8d8b58a3f517ef8d1794baa28ca6ae7d19f65514",
|
||||
"hash": "sha256-61OPjdMCIbHvWncmBzNw6sqlHcuc1kyqm9k1j4UTcZ0="
|
||||
"rev": "c3548280e0a516ed7cad7ff1591b5807cef64aa4",
|
||||
"hash": "sha256-hO5epHYNYI6pGwVSUv1Hp3qb7qOv8uOs4u+IdhDxd8Q="
|
||||
},
|
||||
"src/third_party/nearby/src": {
|
||||
"url": "https://chromium.googlesource.com/external/github.com/google/nearby-connections.git",
|
||||
"rev": "1b382075dd1bd545655af7ebef949b3090061b74",
|
||||
"hash": "sha256-kpyJiFXtk8eK8EkgzUbG0GS+znEeqzlB62qy9tPpEC8="
|
||||
"rev": "8e87a6e51c93e7836ecdbcc0a520c7992f3ece13",
|
||||
"hash": "sha256-DO3FW5Q233ctFKk4K5F8oZec9kfrVl6uxAwMn0niKz4="
|
||||
},
|
||||
"src/third_party/beto-core/src": {
|
||||
"url": "https://beto-core.googlesource.com/beto-core.git",
|
||||
@@ -1206,8 +1206,8 @@
|
||||
},
|
||||
"src/third_party/cros-components/src": {
|
||||
"url": "https://chromium.googlesource.com/external/google3/cros_components.git",
|
||||
"rev": "902e8ca804ae6c05f505e510c16647c32ce4d1cb",
|
||||
"hash": "sha256-j2m9zVajkAdPF1ehLX0Gxp4LyMunhFDDCzrCm2WzArc="
|
||||
"rev": "9129cf4b2a5ca775c280243257a0b4856a93c7fb",
|
||||
"hash": "sha256-owXaTIj0pbhUeJkirxaRoCmgIN9DwNzY3h771kaN+Fc="
|
||||
},
|
||||
"src/third_party/libdrm/src": {
|
||||
"url": "https://chromium.googlesource.com/chromiumos/third_party/libdrm.git",
|
||||
@@ -1256,8 +1256,8 @@
|
||||
},
|
||||
"src/third_party/libvpx/source/libvpx": {
|
||||
"url": "https://chromium.googlesource.com/webm/libvpx.git",
|
||||
"rev": "906334ac1de2b0afa666472dce5545b82c1251fb",
|
||||
"hash": "sha256-7GInV/uHuK6bUa1dSBuxJn6adyjfoOqSqfmfTvQbAoc="
|
||||
"rev": "727319a77ffe68e9aacb08e09ae7151b3a8f70a3",
|
||||
"hash": "sha256-QGm37X4uid8zv+vRu0pVTvoQd2WcKztrj3tJkDjx82o="
|
||||
},
|
||||
"src/third_party/libwebm/source": {
|
||||
"url": "https://chromium.googlesource.com/webm/libwebm.git",
|
||||
@@ -1271,8 +1271,8 @@
|
||||
},
|
||||
"src/third_party/libyuv": {
|
||||
"url": "https://chromium.googlesource.com/libyuv/libyuv.git",
|
||||
"rev": "a8e59d207483f75b87dd5fc670e937672cdf5776",
|
||||
"hash": "sha256-gTNmhYuYmt/JmWSAVbcE4PqG3kW/JaL7XEWXbiNVfMM="
|
||||
"rev": "6ac7c8f25170c85265fca69fd1fe5d31baf3344f",
|
||||
"hash": "sha256-vPVq7RzqO7gBUgYuNX0Fwxqok9jtXXJZgbhVFchG5Ws="
|
||||
},
|
||||
"src/third_party/lss": {
|
||||
"url": "https://chromium.googlesource.com/linux-syscall-support.git",
|
||||
@@ -1306,8 +1306,8 @@
|
||||
},
|
||||
"src/third_party/openscreen/src": {
|
||||
"url": "https://chromium.googlesource.com/openscreen",
|
||||
"rev": "4f27c4f1698522dfcea36dca948a13e2eaf4c26c",
|
||||
"hash": "sha256-dosSqpFlvli60ZJ0vexVZOK/FmzOYq5BDrZKZW0lMfc="
|
||||
"rev": "cb6fd42532fc3a831d6863d5006217e32a67c417",
|
||||
"hash": "sha256-IlGxfw6Mhc7FYvhU2+Ngt9qflqr4JMC2OcplvksGI+U="
|
||||
},
|
||||
"src/third_party/openscreen/src/buildtools": {
|
||||
"url": "https://chromium.googlesource.com/chromium/src/buildtools",
|
||||
@@ -1321,13 +1321,13 @@
|
||||
},
|
||||
"src/third_party/pdfium": {
|
||||
"url": "https://pdfium.googlesource.com/pdfium.git",
|
||||
"rev": "7a8409531fbb58d7d15ae331e645977b113d7ced",
|
||||
"hash": "sha256-KlqgaOxKJQHHjU1g1VCcJEBhv809DdEUedrxdk8N99I="
|
||||
"rev": "84a8011ec69d0e2de271c05be7d62979608040d9",
|
||||
"hash": "sha256-d8qJECIdq01ct+sS7cHVKFulYJarwahKCEcVf762JNI="
|
||||
},
|
||||
"src/third_party/perfetto": {
|
||||
"url": "https://android.googlesource.com/platform/external/perfetto.git",
|
||||
"rev": "24764a1d9c2fce1e9816ffae691f00353ade330d",
|
||||
"hash": "sha256-FAaxTuIYExmL3PSWwcvLpnPD4qsGDGr4/CIyi0NSrnI="
|
||||
"rev": "ea011a2c2d3aecdc4f1674887e107a56d2905edd",
|
||||
"hash": "sha256-3vervpsq/QLMrR7RcJMwwh+CdFvSEj8yAzj6s9d1XMo="
|
||||
},
|
||||
"src/third_party/protobuf-javascript/src": {
|
||||
"url": "https://chromium.googlesource.com/external/github.com/protocolbuffers/protobuf-javascript",
|
||||
@@ -1346,8 +1346,8 @@
|
||||
},
|
||||
"src/third_party/quic_trace/src": {
|
||||
"url": "https://chromium.googlesource.com/external/github.com/google/quic-trace.git",
|
||||
"rev": "caa0a6eaba816ecb737f9a70782b7c80b8ac8dbc",
|
||||
"hash": "sha256-Nf9ZDLcE1JunhbpEMHhrY2ROnbgrvVZoRkPwWq1DU0g="
|
||||
"rev": "413da873d93a03d3662f24b881ea459a79f9c589",
|
||||
"hash": "sha256-N1uFoNd3mz/LH1z06581Ds7BUyc67SNXUPzqomYREr8="
|
||||
},
|
||||
"src/third_party/pywebsocket3/src": {
|
||||
"url": "https://chromium.googlesource.com/external/github.com/GoogleChromeLabs/pywebsocket3.git",
|
||||
@@ -1366,8 +1366,8 @@
|
||||
},
|
||||
"src/third_party/skia": {
|
||||
"url": "https://skia.googlesource.com/skia.git",
|
||||
"rev": "f14f6b1ab7cf544c0190074488d17821281cfa4d",
|
||||
"hash": "sha256-0p57otDuIShl6MngYs22XA1QYxptDVa3vCwJsH59H34="
|
||||
"rev": "c17fe9bc158c29de3cdd655ac73d14f52c17810a",
|
||||
"hash": "sha256-mRfkEm+NzEX0DkJejk1THx4G7v0sIFmRrAnt3Zl5uco="
|
||||
},
|
||||
"src/third_party/smhasher/src": {
|
||||
"url": "https://chromium.googlesource.com/external/smhasher.git",
|
||||
@@ -1386,8 +1386,8 @@
|
||||
},
|
||||
"src/third_party/swiftshader": {
|
||||
"url": "https://swiftshader.googlesource.com/SwiftShader.git",
|
||||
"rev": "7a9a492a38b7c701f7c96a15a76046aed8f8c0c3",
|
||||
"hash": "sha256-6uBO4jwPSqhT4j+KTE0Za7B4prrE2kstsHNtHwTJX+Q="
|
||||
"rev": "d5c4284774115bb1e32c012a2be1b5fbeb1ab1f9",
|
||||
"hash": "sha256-h2BHyaOM0oscfX5cu8s4N1yyOkg/yQbvwD1DxF+RAQc="
|
||||
},
|
||||
"src/third_party/text-fragments-polyfill/src": {
|
||||
"url": "https://chromium.googlesource.com/external/github.com/GoogleChromeLabs/text-fragments-polyfill.git",
|
||||
@@ -1396,18 +1396,18 @@
|
||||
},
|
||||
"src/third_party/tflite/src": {
|
||||
"url": "https://chromium.googlesource.com/external/github.com/tensorflow/tensorflow.git",
|
||||
"rev": "689e8a82f8070a372981b7476fb673e243330d71",
|
||||
"hash": "sha256-tImVDNyS5hCN6A1ODeVuB7XLCNr3EdxN8x961nPCM9g="
|
||||
"rev": "658227d3b535287dc6859788bde6076c4fe3fe7c",
|
||||
"hash": "sha256-gOUt/NljRK5wMFwy2aLqZ5NHwk4y/GxbQ+AZ3MxM0M8="
|
||||
},
|
||||
"src/third_party/vulkan-deps": {
|
||||
"url": "https://chromium.googlesource.com/vulkan-deps",
|
||||
"rev": "73fd75175922012f21557239b7743a152ea7f1fd",
|
||||
"hash": "sha256-D8UIXXQX6dTxbuqFgd6AbmErr1r9839yiN6MrJlsqPw="
|
||||
"rev": "0b56dd5952b25fad65139b64096fcd187048ed38",
|
||||
"hash": "sha256-LVWvbMLjkMyAUM+0UpQ4oRsfcRU5F/xY60wiwxth4Ko="
|
||||
},
|
||||
"src/third_party/glslang/src": {
|
||||
"url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang",
|
||||
"rev": "2acc4ea0028bc703be2d4e9bc8a4032d015d6516",
|
||||
"hash": "sha256-mwcvSRycM8bq3dDWk4yfkL8Tg5bfEap6lrr1Oxemzy4="
|
||||
"rev": "9c644fcb5b9a1a9c975c50a790fd14c5451292b0",
|
||||
"hash": "sha256-twWSeJp9bNbLYFszCWv9BCztfbXUBKSWV55/U+hd2hw="
|
||||
},
|
||||
"src/third_party/spirv-cross/src": {
|
||||
"url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross",
|
||||
@@ -1416,38 +1416,38 @@
|
||||
},
|
||||
"src/third_party/spirv-headers/src": {
|
||||
"url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers",
|
||||
"rev": "50bc4debdc3eec5045edbeb8ce164090e29b91f3",
|
||||
"hash": "sha256-Zv5QZ8MmP45MH5e6EBDNPmP0vcjjNXJHKva5MNh5ovA="
|
||||
"rev": "996c728cf7dcfb29845cfa15222822318f047810",
|
||||
"hash": "sha256-FrT/kVIMjcu2zv+7kDeNKM77NnOyMBb8pV0w8DBP42A="
|
||||
},
|
||||
"src/third_party/spirv-tools/src": {
|
||||
"url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools",
|
||||
"rev": "42b315c15b1ff941b46bb3949c105e5386be8717",
|
||||
"hash": "sha256-xb0TlPyXP2wu7jMrWZu+z8WC5mk0CbYgvkZEt3r+mww="
|
||||
"rev": "9117e042b93d4ff08d2406542708170f77aaa2a3",
|
||||
"hash": "sha256-m/a1i26u8lzpKuQHyAy6ktWWjbLZEaio1awz8VovTGE="
|
||||
},
|
||||
"src/third_party/vulkan-headers/src": {
|
||||
"url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers",
|
||||
"rev": "14345dab231912ee9601136e96ca67a6e1f632e7",
|
||||
"hash": "sha256-ny/UVx4r+Fj39ZEepaWqDPplAJcrBQEQlkqsSofwLJ0="
|
||||
"rev": "cbcad3c0587dddc768d76641ea00f5c45ab5a278",
|
||||
"hash": "sha256-exXzafLgrgxyRvaF+4pCF+OLtPT2gDmcvzazQ4EQ1eA="
|
||||
},
|
||||
"src/third_party/vulkan-loader/src": {
|
||||
"url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader",
|
||||
"rev": "bd1c8ea9c6ac51e4c3a6ddb9d602bb204678eb5f",
|
||||
"hash": "sha256-Ze/DGiD8Zj3mY+5Pi+tf6xMrX2YBqfl4Nc37b/JgmnI="
|
||||
"rev": "b0177a972b8d47e823a4500cf88df88a8c27add7",
|
||||
"hash": "sha256-NDp2TLeMLAHb92R+PjaPDTx8ckIlpSsS3BNx3lerB68="
|
||||
},
|
||||
"src/third_party/vulkan-tools/src": {
|
||||
"url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools",
|
||||
"rev": "c9a5acda16dc2759457dc856b5d7df00ac5bf4a2",
|
||||
"hash": "sha256-0JzqUW6XbhPbLGs/smuNG6zQoWP8iaAO5VglGSyN94g="
|
||||
"rev": "15f2de809304aba619ee327f3273425418ca83de",
|
||||
"hash": "sha256-PiWKL045DAOGm+Hl/UyO6vmD4fVfuf2fSvXK6gSYbwo="
|
||||
},
|
||||
"src/third_party/vulkan-utility-libraries/src": {
|
||||
"url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries",
|
||||
"rev": "8c907ea21fe0147f791d79051b18e21bc8c4ede0",
|
||||
"hash": "sha256-2abhzNt/rKbAhGQZhUhQ2LoemtU1Yh1fx9rrijOtjy4="
|
||||
"rev": "87ab6b39a97d084a2ef27db85e3cbaf5d2622a09",
|
||||
"hash": "sha256-luDw6g/EMSK67Et2wNta74PHGQU6Y7IRpDlSpgDYV6Q="
|
||||
},
|
||||
"src/third_party/vulkan-validation-layers/src": {
|
||||
"url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers",
|
||||
"rev": "cbb4ab171fc7cd0b636a76ee542e238a8734f4be",
|
||||
"hash": "sha256-nKpS0ddAsN2KhOg6J/SwB8ZlVXrJTVixD4DuUkyxb6c="
|
||||
"rev": "bc2c38412f739c298d6f5c076c064e6b5696959f",
|
||||
"hash": "sha256-WWV+P++0Czeqg5p2UTqIP81pY8oz7cS7E7Z/sc0km6g="
|
||||
},
|
||||
"src/third_party/vulkan_memory_allocator": {
|
||||
"url": "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator.git",
|
||||
@@ -1486,13 +1486,13 @@
|
||||
},
|
||||
"src/third_party/webgpu-cts/src": {
|
||||
"url": "https://chromium.googlesource.com/external/github.com/gpuweb/cts.git",
|
||||
"rev": "ae8b3ca40fbeee0bc67ef41a6c5b6dd5af839344",
|
||||
"hash": "sha256-7u5Ay43GtcVTt3Cwg/5OaYQdG6SXXYtUun7DVN+XChE="
|
||||
"rev": "b9f32fd2943dd2b3d0033bf938c9d843f4b5c9a9",
|
||||
"hash": "sha256-Dd5uWNtnBIc2jiMkh9KjI5O1tJtmMvdlMA2nf+VOkQQ="
|
||||
},
|
||||
"src/third_party/webrtc": {
|
||||
"url": "https://webrtc.googlesource.com/src.git",
|
||||
"rev": "79aff54b0fa9238ce3518dd9eaf9610cd6f22e82",
|
||||
"hash": "sha256-xkMnUduSG88EWiwq6PITN0KgAKjFd4QOis3dgxedK30="
|
||||
"rev": "afaf497805cbb502da89991c2dcd783201efdd08",
|
||||
"hash": "sha256-S8kGTd3+lf5OTayCMOqqrjxH4tcbT0NLZBpKmTCysMs="
|
||||
},
|
||||
"src/third_party/wuffs/src": {
|
||||
"url": "https://skia.googlesource.com/external/github.com/google/wuffs-mirror-release-c.git",
|
||||
@@ -1511,8 +1511,8 @@
|
||||
},
|
||||
"src/third_party/xnnpack/src": {
|
||||
"url": "https://chromium.googlesource.com/external/github.com/google/XNNPACK.git",
|
||||
"rev": "3986629de01e518a3f2359bf5629ef2b7ef72330",
|
||||
"hash": "sha256-x8GQUj75mQXswI3b29tS9u25Zx3peYqDM8v1/wkC9cs="
|
||||
"rev": "d1d33679661a34f03a806af2b813f699db3004f9",
|
||||
"hash": "sha256-aDPlmLxNY9M5+Qb8VtdfxphHXU/X6JwYhkUSXkLh/FE="
|
||||
},
|
||||
"src/tools/page_cycler/acid3": {
|
||||
"url": "https://chromium.googlesource.com/chromium/deps/acid3.git",
|
||||
@@ -1521,13 +1521,13 @@
|
||||
},
|
||||
"src/third_party/zstd/src": {
|
||||
"url": "https://chromium.googlesource.com/external/github.com/facebook/zstd.git",
|
||||
"rev": "20707e3718ee14250fb8a44b3bf023ea36bd88df",
|
||||
"hash": "sha256-/IUfh0De9m7ACrisqKlpxZsb+asoAWGXCaK6L+s24Q8="
|
||||
"rev": "7fb5347e88f10472226c9aa1962a148e55d8c480",
|
||||
"hash": "sha256-4J/F2v2W3mMdhqQ4q35gYkGaqTKlcG6OxUt3vQ8pcLs="
|
||||
},
|
||||
"src/v8": {
|
||||
"url": "https://chromium.googlesource.com/v8/v8.git",
|
||||
"rev": "9c09e7876ff830e1f9a731aa930040d1028ff5a1",
|
||||
"hash": "sha256-OKa0W4s3VfaQ/MBHkrkZ8/LeRGqjGh9hTaqet7S4o58="
|
||||
"rev": "e51f1d7dbd113aa01ddfb30890c8a89b11fcd96c",
|
||||
"hash": "sha256-KJirPTvmC6vRTvrl6Nl0SQSieX/OhgfIiTblMxgoAvU="
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
{
|
||||
"packageVersion": "134.0-1",
|
||||
"packageVersion": "134.0.1-1",
|
||||
"source": {
|
||||
"rev": "134.0-1",
|
||||
"sha256": "bu9ec9gK4b1OkC2Z1ycr/lmhrSB5TcIqcHXaZxf0Vmw="
|
||||
"rev": "134.0.1-1",
|
||||
"hash": "sha256-YtZb+VaJu+zofIjJUUx6FjVsEb1sCgFsGlxgP++Yki0="
|
||||
},
|
||||
"firefox": {
|
||||
"version": "134.0",
|
||||
"sha512": "EnWmhtwKJ7SN9K4FYWURUS9nbgNHTjCVslIerCWjhdNFqj6HhnFtvoEq9J4H1ysydyR5CJ1kiWjiAEygycNTRA=="
|
||||
"version": "134.0.1",
|
||||
"hash": "sha512-P0DKWnU6ZuCK9OixLXX+q2ewVn7P/TT1zwE/Sa64CczUWMgBHpRW3JAsJOr2JgeBF4dFFOtAzuVXTq/Ok+53LQ=="
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,15 +8,19 @@ let
|
||||
in
|
||||
{
|
||||
inherit (src) packageVersion;
|
||||
source = fetchFromGitea {
|
||||
domain = "codeberg.org";
|
||||
owner = "librewolf";
|
||||
repo = "source";
|
||||
fetchSubmodules = true;
|
||||
inherit (src.source) rev sha256;
|
||||
};
|
||||
firefox = fetchurl {
|
||||
url = "mirror://mozilla/firefox/releases/${src.firefox.version}/source/firefox-${src.firefox.version}.source.tar.xz";
|
||||
inherit (src.firefox) sha512;
|
||||
};
|
||||
source = fetchFromGitea (
|
||||
src.source
|
||||
// {
|
||||
domain = "codeberg.org";
|
||||
owner = "librewolf";
|
||||
repo = "source";
|
||||
fetchSubmodules = true;
|
||||
}
|
||||
);
|
||||
firefox = fetchurl (
|
||||
src.firefox
|
||||
// {
|
||||
url = "mirror://mozilla/firefox/releases/${src.firefox.version}/source/firefox-${src.firefox.version}.source.tar.xz";
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
@@ -9,16 +9,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "helmfile";
|
||||
version = "0.169.2";
|
||||
version = "0.170.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "helmfile";
|
||||
repo = "helmfile";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-OoCLFhGeciCUC7Tb6+Md8tmamc/j0AeSlu5Krmkhxyc=";
|
||||
hash = "sha256-HlSpY7+Qct2vxtAejrwmmWhnWq+jVycjuxQ42KScpSs=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-VBgWnDi0jaZ+91kkYeX9QyNBrP9W+mSMjexwzZiKZWs=";
|
||||
vendorHash = "sha256-BmEtzUUORY/ck158+1ItVeiG9mzXdikjjUX7XwQ7xoo=";
|
||||
|
||||
proxyVendor = true; # darwin/linux hash mismatch
|
||||
|
||||
|
||||
@@ -120,9 +120,9 @@ rec {
|
||||
|
||||
nomad_1_9 = generic {
|
||||
buildGoModule = buildGo123Module;
|
||||
version = "1.9.4";
|
||||
sha256 = "sha256-yhOyHfD5099dCY7lIJzTb8tQrqQ86N8HVtSk5mB7saY=";
|
||||
vendorHash = "sha256-Cxjgs4Hmv0sq11OpvYLnNcc76ojwqwcxMmCZT5Or0f4=";
|
||||
version = "1.9.5";
|
||||
sha256 = "sha256-NIv3QPSYoYrDQxxtNDHc3DdBLb45oUdA5Jyjke+XzD8=";
|
||||
vendorHash = "sha256-y4WBOSfkRYNQRWu5B/j2JBLPAxJ1fyLD0DEAjB10Sl8=";
|
||||
license = lib.licenses.bsl11;
|
||||
passthru.tests.nomad = nixosTests.nomad;
|
||||
preCheck = ''
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
diff -rup rsync-3.2.7/configure.sh rsync-3.2.7-fixed/configure.sh
|
||||
--- rsync-3.2.7/configure.sh 2022-10-20 17:57:22
|
||||
+++ rsync-3.2.7-fixed/configure.sh 2024-01-01 19:51:58
|
||||
@@ -7706,7 +7706,7 @@ else $as_nop
|
||||
#include <stdlib.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/socket.h>
|
||||
-main()
|
||||
+int main()
|
||||
{
|
||||
if (socket(AF_INET6, SOCK_STREAM, 0) < 0)
|
||||
exit(1);
|
||||
@@ -22,12 +22,12 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "rsync";
|
||||
version = "3.3.0";
|
||||
version = "3.4.1";
|
||||
|
||||
src = fetchurl {
|
||||
# signed with key 0048 C8B0 26D4 C96F 0E58 9C2F 6C85 9FB1 4B96 A8C5
|
||||
# signed with key 9FEF 112D CE19 A0DC 7E88 2CB8 1BB2 4997 A853 5F6F
|
||||
url = "mirror://samba/rsync/src/rsync-${version}.tar.gz";
|
||||
hash = "sha256-c5nppnCMMtZ4pypjIZ6W8jvgviM25Q/RNISY0HBB35A=";
|
||||
hash = "sha256-KSS8s6Hti1UfwQH3QLnw/gogKxFQJ2R89phQ1l/YjFI=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
@@ -35,23 +35,6 @@ stdenv.mkDerivation rec {
|
||||
perl
|
||||
];
|
||||
|
||||
patches = [
|
||||
# https://github.com/WayneD/rsync/pull/558
|
||||
./configure.ac-fix-failing-IPv6-check.patch
|
||||
./CVE-2024-12084/0001-Some-checksum-buffer-fixes.patch
|
||||
./CVE-2024-12084/0002-Another-cast-when-multiplying-integers.patch
|
||||
./CVE-2024-12085/0001-prevent-information-leak-off-the-stack.patch
|
||||
./CVE-2024-12086/0001-refuse-fuzzy-options-when-fuzzy-not-selected.patch
|
||||
./CVE-2024-12086/0002-added-secure_relative_open.patch
|
||||
./CVE-2024-12086/0003-receiver-use-secure_relative_open-for-basis-file.patch
|
||||
./CVE-2024-12086/0004-disallow-.-elements-in-relpath-for-secure_relative_o.patch
|
||||
./CVE-2024-12087/0001-Refuse-a-duplicate-dirlist.patch
|
||||
./CVE-2024-12087/0002-range-check-dir_ndx-before-use.patch
|
||||
./CVE-2024-12088/0001-make-safe-links-stricter.patch
|
||||
./CVE-2024-12747/0001-fixed-symlink-race-condition-in-sender.patch
|
||||
./raise-protocol-version-to-32.patch
|
||||
];
|
||||
|
||||
buildInputs =
|
||||
[
|
||||
libiconv
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
buildPythonPackage,
|
||||
lib,
|
||||
fetchFromGitLab,
|
||||
callPackage,
|
||||
|
||||
isPy3k,
|
||||
isPyPy,
|
||||
@@ -17,7 +17,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "openpaperwork-core";
|
||||
inherit (import ./src.nix { inherit fetchFromGitLab; }) version src;
|
||||
inherit (callPackage ./src.nix { }) version src;
|
||||
format = "pyproject";
|
||||
|
||||
sourceRoot = "${src.name}/openpaperwork-core";
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
buildPythonPackage,
|
||||
lib,
|
||||
fetchFromGitLab,
|
||||
callPackage,
|
||||
|
||||
isPy3k,
|
||||
isPyPy,
|
||||
@@ -17,7 +17,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "openpaperwork-gtk";
|
||||
inherit (import ./src.nix { inherit fetchFromGitLab; }) version src;
|
||||
inherit (callPackage ./src.nix { }) version src;
|
||||
format = "pyproject";
|
||||
|
||||
sourceRoot = "${src.name}/openpaperwork-gtk";
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
buildPythonPackage,
|
||||
lib,
|
||||
fetchFromGitLab,
|
||||
callPackage,
|
||||
pyenchant,
|
||||
scikit-learn,
|
||||
pypillowfight,
|
||||
@@ -28,7 +28,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "paperwork-backend";
|
||||
inherit (import ./src.nix { inherit fetchFromGitLab; }) version src;
|
||||
inherit (callPackage ./src.nix { }) version src;
|
||||
format = "pyproject";
|
||||
|
||||
sourceRoot = "${src.name}/paperwork-backend";
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
{
|
||||
lib,
|
||||
callPackage,
|
||||
python3Packages,
|
||||
gtk3,
|
||||
cairo,
|
||||
@@ -9,7 +10,6 @@
|
||||
dbus,
|
||||
libnotify,
|
||||
wrapGAppsHook3,
|
||||
fetchFromGitLab,
|
||||
which,
|
||||
gettext,
|
||||
gobject-introspection,
|
||||
@@ -32,7 +32,7 @@ let
|
||||
imagemagick
|
||||
perlPackages.Po4a
|
||||
];
|
||||
inherit (import ./src.nix { inherit fetchFromGitLab; }) version src sample_documents;
|
||||
inherit (callPackage ./src.nix { }) version src sample_documents;
|
||||
in
|
||||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
buildPythonPackage,
|
||||
lib,
|
||||
fetchFromGitLab,
|
||||
callPackage,
|
||||
|
||||
isPy3k,
|
||||
isPyPy,
|
||||
@@ -21,7 +21,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "paperwork-shell";
|
||||
inherit (import ./src.nix { inherit fetchFromGitLab; }) version src;
|
||||
inherit (callPackage ./src.nix { }) version src;
|
||||
format = "pyproject";
|
||||
|
||||
sourceRoot = "${src.name}/paperwork-shell";
|
||||
|
||||
@@ -1,14 +1,34 @@
|
||||
{ fetchFromGitLab }:
|
||||
{
|
||||
fetchFromGitLab,
|
||||
srcOnly,
|
||||
fetchpatch,
|
||||
}:
|
||||
rec {
|
||||
version = "2.2.5";
|
||||
src = fetchFromGitLab {
|
||||
domain = "gitlab.gnome.org";
|
||||
repo = "paperwork";
|
||||
group = "World";
|
||||
owner = "OpenPaperwork";
|
||||
rev = version;
|
||||
sha256 = "sha256-PRh0ohmPLwpM76qYfbExFqq4OK6Hm0fbdzrjXungSoY=";
|
||||
src = srcOnly {
|
||||
pname = "paperwork-patched-src";
|
||||
inherit version;
|
||||
src = fetchFromGitLab {
|
||||
domain = "gitlab.gnome.org";
|
||||
repo = "paperwork";
|
||||
group = "World";
|
||||
owner = "OpenPaperwork";
|
||||
rev = version;
|
||||
sha256 = "sha256-PRh0ohmPLwpM76qYfbExFqq4OK6Hm0fbdzrjXungSoY=";
|
||||
};
|
||||
patches = [
|
||||
# fix installing translations
|
||||
# remove on next release
|
||||
(
|
||||
assert version == "2.2.5";
|
||||
fetchpatch {
|
||||
url = "https://gitlab.gnome.org/World/OpenPaperwork/paperwork/-/commit/b8e2633ace0f3d9d57e68c27db8f594b8a5ddd7e.patch";
|
||||
hash = "sha256-VUT86kF0ZHLGK457ZrrIBMeiZqg/rPRpbkBA/ua9rU8=";
|
||||
}
|
||||
)
|
||||
];
|
||||
};
|
||||
|
||||
sample_documents = fetchFromGitLab {
|
||||
domain = "gitlab.gnome.org";
|
||||
repo = "paperwork-test-documents";
|
||||
|
||||
@@ -1,12 +1,15 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
substitute,
|
||||
fetchpatch,
|
||||
fetchurl,
|
||||
fetchFromGitHub,
|
||||
cmake,
|
||||
pkg-config,
|
||||
# See https://files.ettus.com/manual_archive/v3.15.0.0/html/page_build_guide.html for dependencies explanations
|
||||
boost,
|
||||
# Pin Boost 1.86 due to use of boost::asio::io_service.
|
||||
boost186,
|
||||
ncurses,
|
||||
enableCApi ? true,
|
||||
enablePythonApi ? true,
|
||||
@@ -162,7 +165,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
buildInputs =
|
||||
finalAttrs.pythonPath
|
||||
++ [
|
||||
boost
|
||||
boost186
|
||||
libusb1
|
||||
]
|
||||
++ optionals (enableExamples) [
|
||||
@@ -179,6 +182,23 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
# Build only the host software
|
||||
preConfigure = "cd host";
|
||||
patches = [
|
||||
# fix for boost 187 remove on next update
|
||||
(substitute {
|
||||
src = fetchpatch {
|
||||
name = "boost-187.patch";
|
||||
url = "https://github.com/EttusResearch/uhd/commit/adfe953d965e58b5931c1b1968899492c8087cf6.patch";
|
||||
hash = "sha256-qzxe6QhGoyBul7YjCiPJfeP+3dIoo1hh2sjgYmc9IiI=";
|
||||
};
|
||||
# The last two hunks in client.cc will fail without these substitutions
|
||||
substitutions = [
|
||||
"--replace-fail"
|
||||
"[buffer, idx, func_name, p, this]"
|
||||
"[=]"
|
||||
"--replace-fail"
|
||||
"[buffer, this]"
|
||||
"[=]"
|
||||
];
|
||||
})
|
||||
# Disable tests that fail in the sandbox, last checked at version 4.6.0.0
|
||||
./no-adapter-tests.patch
|
||||
];
|
||||
|
||||
@@ -10,11 +10,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "samtools";
|
||||
version = "1.19.2";
|
||||
version = "1.21";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/samtools/samtools/releases/download/${version}/${pname}-${version}.tar.bz2";
|
||||
hash = "sha256-cfYEmWaOTAjn10X7/yTBXMigl3q6sazV0rtBm9sGXpY=";
|
||||
hash = "sha256-BXJLCDprbwMF/K5SQ6BWzDbPgmMJw8uTR6a4nuP8Wto=";
|
||||
};
|
||||
|
||||
# tests require `bgzip` from the htslib package
|
||||
|
||||
@@ -30,7 +30,7 @@ assert sendEmailSupport -> perlSupport;
|
||||
assert svnSupport -> perlSupport;
|
||||
|
||||
let
|
||||
version = "2.47.0";
|
||||
version = "2.47.1";
|
||||
svn = subversionClient.override { perlBindings = perlSupport; };
|
||||
gitwebPerlLibs = with perlPackages; [ CGI HTMLParser CGIFast FCGI FCGIProcManager HTMLTagCloud ];
|
||||
in
|
||||
@@ -43,7 +43,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://www.kernel.org/pub/software/scm/git/git-${version}.tar.xz";
|
||||
hash = "sha256-HOEU2ohwQnG0PgJ8UeBNk5n4yI6e91Qtrnrrrn2HvE4=";
|
||||
hash = "sha256-89j5uyOuOSN06RzZ05WXDavFucXucvOYhGE82Epu0xA=";
|
||||
};
|
||||
|
||||
outputs = [ "out" ] ++ lib.optional withManual "doc";
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user