Merge master into haskell-updates
This commit is contained in:
commit
a1ed79952d
|
@ -1,37 +1,104 @@
|
|||
# pkgs.ociTools {#sec-pkgs-ociTools}
|
||||
|
||||
`pkgs.ociTools` is a set of functions for creating containers according to the [OCI container specification v1.0.0](https://github.com/opencontainers/runtime-spec). Beyond that, it makes no assumptions about the container runner you choose to use to run the created container.
|
||||
`pkgs.ociTools` is a set of functions for creating runtime container bundles according to the [OCI runtime specification v1.0.0](https://github.com/opencontainers/runtime-spec/blob/v1.0.0/spec.md).
|
||||
It makes no assumptions about the container runner you choose to use to run the created container.
|
||||
|
||||
The set of functions in `pkgs.ociTools` currently does not handle the [OCI image specification](https://github.com/opencontainers/image-spec).
|
||||
|
||||
At a high-level an OCI implementation would download an OCI Image then unpack that image into an OCI Runtime filesystem bundle.
|
||||
At this point the OCI Runtime Bundle would be run by an OCI Runtime.
|
||||
`pkgs.ociTools` provides utilities to create OCI Runtime bundles.
|
||||
|
||||
## buildContainer {#ssec-pkgs-ociTools-buildContainer}
|
||||
|
||||
This function creates a simple OCI container that runs a single command inside of it. An OCI container consists of a `config.json` and a rootfs directory. The nix store of the container will contain all referenced dependencies of the given command.
|
||||
This function creates an OCI runtime container (consisting of a `config.json` and a root filesystem directory) that runs a single command inside of it.
|
||||
The nix store of the container will contain all referenced dependencies of the given command.
|
||||
|
||||
The parameters of `buildContainer` with an example value are described below:
|
||||
This function has an assumption that the container will run on POSIX platforms, and sets configurations (such as the user running the process or certain mounts) according to this assumption.
|
||||
Because of this, a container built with `buildContainer` will not work on Windows or other non-POSIX platforms without modifications to the container configuration.
|
||||
These modifications aren't supported by `buildContainer`.
|
||||
|
||||
For `linux` platforms, `buildContainer` also configures the following namespaces (see {manpage}`unshare(1)`) to isolate the OCI container from the global namespace:
|
||||
PID, network, mount, IPC, and UTS.
|
||||
|
||||
Note that no user namespace is created, which means that you won't be able to run the container unless you are the `root` user.
|
||||
|
||||
### Inputs {#ssec-pkgs-ociTools-buildContainer-inputs}
|
||||
|
||||
`buildContainer` expects an argument with the following attributes:
|
||||
|
||||
`args` (List of String)
|
||||
|
||||
: Specifies a set of arguments to run inside the container.
|
||||
Any packages referenced by `args` will be made available inside the container.
|
||||
|
||||
`mounts` (Attribute Set; _optional_)
|
||||
|
||||
: Would specify additional mounts that the runtime must make available to the container.
|
||||
|
||||
:::{.warning}
|
||||
As explained in [issue #290879](https://github.com/NixOS/nixpkgs/issues/290879), this attribute is currently ignored.
|
||||
:::
|
||||
|
||||
:::{.note}
|
||||
`buildContainer` includes a minimal set of necessary filesystems to be mounted into the container, and this set can't be changed with the `mounts` attribute.
|
||||
:::
|
||||
|
||||
_Default value:_ `{}`.
|
||||
|
||||
`readonly` (Boolean; _optional_)
|
||||
|
||||
: If `true`, sets the container's root filesystem as read-only.
|
||||
|
||||
_Default value:_ `false`.
|
||||
|
||||
`os` **DEPRECATED**
|
||||
|
||||
: Specifies the operating system on which the container filesystem is based on.
|
||||
If specified, its value should follow the [OCI Image Configuration Specification](https://github.com/opencontainers/image-spec/blob/main/config.md#properties).
|
||||
According to the linked specification, all possible values for `$GOOS` in [the Go docs](https://go.dev/doc/install/source#environment) should be valid, but will commonly be one of `darwin` or `linux`.
|
||||
|
||||
_Default value:_ `"linux"`.
|
||||
|
||||
`arch` **DEPRECATED**
|
||||
|
||||
: Used to specify the architecture for which the binaries in the container filesystem have been compiled.
|
||||
If specified, its value should follow the [OCI Image Configuration Specification](https://github.com/opencontainers/image-spec/blob/main/config.md#properties).
|
||||
According to the linked specification, all possible values for `$GOARCH` in [the Go docs](https://go.dev/doc/install/source#environment) should be valid, but will commonly be one of `386`, `amd64`, `arm`, or `arm64`.
|
||||
|
||||
_Default value:_ `x86_64`.
|
||||
|
||||
### Examples {#ssec-pkgs-ociTools-buildContainer-examples}
|
||||
|
||||
::: {.example #ex-ociTools-buildContainer-bash}
|
||||
# Creating an OCI runtime container that runs `bash`
|
||||
|
||||
This example uses `ociTools.buildContainer` to create a simple container that runs `bash`.
|
||||
|
||||
```nix
|
||||
buildContainer {
|
||||
{ ociTools, lib, bash }:
|
||||
ociTools.buildContainer {
|
||||
args = [
|
||||
(with pkgs;
|
||||
writeScript "run.sh" ''
|
||||
#!${bash}/bin/bash
|
||||
exec ${bash}/bin/bash
|
||||
'').outPath
|
||||
(lib.getExe bash)
|
||||
];
|
||||
|
||||
mounts = {
|
||||
"/data" = {
|
||||
type = "none";
|
||||
source = "/var/lib/mydata";
|
||||
options = [ "bind" ];
|
||||
};
|
||||
};
|
||||
|
||||
readonly = false;
|
||||
}
|
||||
```
|
||||
|
||||
- `args` specifies a set of arguments to run inside the container. This is the only required argument for `buildContainer`. All referenced packages inside the derivation will be made available inside the container.
|
||||
As an example of how to run the container generated by this package, we'll use `runc` to start the container.
|
||||
Any other tool that supports OCI containers could be used instead.
|
||||
|
||||
- `mounts` specifies additional mount points chosen by the user. By default only a minimal set of necessary filesystems are mounted into the container (e.g procfs, cgroupfs)
|
||||
```shell
|
||||
$ nix-build
|
||||
(some output removed for clarity)
|
||||
/nix/store/7f9hgx0arvhzp2a3qphp28rxbn748l25-join
|
||||
|
||||
- `readonly` makes the container's rootfs read-only if it is set to true. The default value is false `false`.
|
||||
$ cd /nix/store/7f9hgx0arvhzp2a3qphp28rxbn748l25-join
|
||||
$ nix-shell -p runc
|
||||
[nix-shell:/nix/store/7f9hgx0arvhzp2a3qphp28rxbn748l25-join]$ sudo runc run ocitools-example
|
||||
help
|
||||
GNU bash, version 5.2.26(1)-release (x86_64-pc-linux-gnu)
|
||||
(some output removed for clarity)
|
||||
```
|
||||
:::
|
||||
|
|
|
@ -1,81 +1,174 @@
|
|||
# pkgs.portableService {#sec-pkgs-portableService}
|
||||
|
||||
`pkgs.portableService` is a function to create _portable service images_,
|
||||
as read-only, immutable, `squashfs` archives.
|
||||
|
||||
systemd supports a concept of [Portable Services](https://systemd.io/PORTABLE_SERVICES/).
|
||||
Portable Services are a delivery method for system services that uses two specific features of container management:
|
||||
|
||||
* Applications are bundled. I.e. multiple services, their binaries and
|
||||
all their dependencies are packaged in an image, and are run directly from it.
|
||||
* Stricter default security policies, i.e. sandboxing of applications.
|
||||
|
||||
This allows using Nix to build images which can be run on many recent Linux distributions.
|
||||
|
||||
The primary tool for interacting with Portable Services is `portablectl`,
|
||||
and they are managed by the `systemd-portabled` system service.
|
||||
`pkgs.portableService` is a function to create [Portable Services](https://systemd.io/PORTABLE_SERVICES/) in a read-only, immutable, `squashfs` raw disk image.
|
||||
This lets you use Nix to build images which can be run on many recent Linux distributions.
|
||||
|
||||
::: {.note}
|
||||
Portable services are supported starting with systemd 239 (released on 2018-06-22).
|
||||
:::
|
||||
|
||||
A very simple example of using `portableService` is described below:
|
||||
The generated image will contain the file system structure as required by the Portable Services specification, along with the packages given to `portableService` and all of their dependencies.
|
||||
When generated, the image will exist in the Nix store with the `.raw` file extension, as required by the specification.
|
||||
See [](#ex-portableService-hello) to understand how to use the output of `portableService`.
|
||||
|
||||
## Inputs {#ssec-pkgs-portableService-inputs}
|
||||
|
||||
`portableService` expects one argument with the following attributes:
|
||||
|
||||
`pname` (String)
|
||||
|
||||
: The name of the portable service.
|
||||
The generated image will be named according to the template `$pname_$version.raw`, which is supported by the Portable Services specification.
|
||||
|
||||
`version` (String)
|
||||
|
||||
: The version of the portable service.
|
||||
The generated image will be named according to the template `$pname_$version.raw`, which is supported by the Portable Services specification.
|
||||
|
||||
`units` (List of Attribute Set)
|
||||
|
||||
: A list of derivations for systemd unit files.
|
||||
Each derivation must produce a single file, and must have a name that starts with the value of `pname` and ends with the suffix of the unit type (e.g. ".service", ".socket", ".timer", and so on).
|
||||
See [](#ex-portableService-hello) to better understand this naming constraint.
|
||||
|
||||
`description` (String or Null; _optional_)
|
||||
|
||||
: If specified, the value is added as `PORTABLE_PRETTY_NAME` to the `/etc/os-release` file in the generated image.
|
||||
This could be used to provide more information to anyone inspecting the image.
|
||||
|
||||
_Default value:_ `null`.
|
||||
|
||||
`homepage` (String or Null; _optional_)
|
||||
|
||||
: If specified, the value is added as `HOME_URL` to the `/etc/os-release` file in the generated image.
|
||||
This could be used to provide more information to anyone inspecting the image.
|
||||
|
||||
_Default value:_ `null`.
|
||||
|
||||
`symlinks` (List of Attribute Set; _optional_)
|
||||
|
||||
: A list of attribute sets in the format `{object, symlink}`.
|
||||
For each item in the list, `portableService` will create a symlink in the path specified by `symlink` (relative to the root of the image) that points to `object`.
|
||||
|
||||
All packages that `object` depends on and their dependencies are automatically copied into the image.
|
||||
|
||||
This can be used to create symlinks for applications that assume some files to exist globally (`/etc/ssl` or `/bin/bash`, for example).
|
||||
See [](#ex-portableService-symlinks) to understand how to do that.
|
||||
|
||||
_Default value:_ `[]`.
|
||||
|
||||
`contents` (List of Attribute Set; _optional_)
|
||||
|
||||
: A list of additional derivations to be included as-is in the image.
|
||||
These derivations will be included directly in a `/nix/store` directory inside the image.
|
||||
|
||||
_Default value:_ `[]`.
|
||||
|
||||
`squashfsTools` (Attribute Set; _optional_)
|
||||
|
||||
: Allows you to override the package that provides {manpage}`mksquashfs(1)`, which is used internally by `portableService`.
|
||||
|
||||
_Default value:_ `pkgs.squashfsTools`.
|
||||
|
||||
`squash-compression` (String; _optional_)
|
||||
|
||||
: Passed as the compression option to {manpage}`mksquashfs(1)`, which is used internally by `portableService`.
|
||||
|
||||
_Default value:_ `"xz -Xdict-size 100%"`.
|
||||
|
||||
`squash-block-size` (String; _optional_)
|
||||
|
||||
: Passed as the block size option to {manpage}`mksquashfs(1)`, which is used internally by `portableService`.
|
||||
|
||||
_Default value:_ `"1M"`.
|
||||
|
||||
## Examples {#ssec-pkgs-portableService-examples}
|
||||
|
||||
[]{#ex-pkgs-portableService}
|
||||
:::{.example #ex-portableService-hello}
|
||||
# Building a Portable Service image
|
||||
|
||||
The following example builds a Portable Service image with the `hello` package, along with a service unit that runs it.
|
||||
|
||||
```nix
|
||||
pkgs.portableService {
|
||||
pname = "demo";
|
||||
version = "1.0";
|
||||
units = [ demo-service demo-socket ];
|
||||
{ lib, writeText, portableService, hello }:
|
||||
let
|
||||
hello-service = writeText "hello.service" ''
|
||||
[Unit]
|
||||
Description=Hello world service
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
ExecStart=${lib.getExe hello}
|
||||
'';
|
||||
in
|
||||
portableService {
|
||||
pname = "hello";
|
||||
inherit (hello) version;
|
||||
units = [ hello-service ];
|
||||
}
|
||||
```
|
||||
|
||||
The above example will build an squashfs archive image in `result/$pname_$version.raw`. The image will contain the
|
||||
file system structure as required by the portable service specification, and a subset of the Nix store with all the
|
||||
dependencies of the two derivations in the `units` list.
|
||||
`units` must be a list of derivations, and their names must be prefixed with the service name (`"demo"` in this case).
|
||||
Otherwise `systemd-portabled` will ignore them.
|
||||
After building the package, the generated image can be loaded into a system through {manpage}`portablectl(1)`:
|
||||
|
||||
::: {.note}
|
||||
The `.raw` file extension of the image is required by the portable services specification.
|
||||
```shell
|
||||
$ nix-build
|
||||
(some output removed for clarity)
|
||||
/nix/store/8c20z1vh7z8w8dwagl8w87b45dn5k6iq-hello-img-2.12.1
|
||||
|
||||
$ portablectl attach /nix/store/8c20z1vh7z8w8dwagl8w87b45dn5k6iq-hello-img-2.12.1/hello_2.12.1.raw
|
||||
Created directory /etc/systemd/system.attached.
|
||||
Created directory /etc/systemd/system.attached/hello.service.d.
|
||||
Written /etc/systemd/system.attached/hello.service.d/20-portable.conf.
|
||||
Created symlink /etc/systemd/system.attached/hello.service.d/10-profile.conf → /usr/lib/systemd/portable/profile/default/service.conf.
|
||||
Copied /etc/systemd/system.attached/hello.service.
|
||||
Created symlink /etc/portables/hello_2.12.1.raw → /nix/store/8c20z1vh7z8w8dwagl8w87b45dn5k6iq-hello-img-2.12.1/hello_2.12.1.raw.
|
||||
|
||||
$ systemctl start hello
|
||||
$ journalctl -u hello
|
||||
Feb 28 22:39:16 hostname systemd[1]: Starting Hello world service...
|
||||
Feb 28 22:39:16 hostname hello[102887]: Hello, world!
|
||||
Feb 28 22:39:16 hostname systemd[1]: hello.service: Deactivated successfully.
|
||||
Feb 28 22:39:16 hostname systemd[1]: Finished Hello world service.
|
||||
|
||||
$ portablectl detach hello_2.12.1
|
||||
Removed /etc/systemd/system.attached/hello.service.
|
||||
Removed /etc/systemd/system.attached/hello.service.d/10-profile.conf.
|
||||
Removed /etc/systemd/system.attached/hello.service.d/20-portable.conf.
|
||||
Removed /etc/systemd/system.attached/hello.service.d.
|
||||
Removed /etc/portables/hello_2.12.1.raw.
|
||||
Removed /etc/systemd/system.attached.
|
||||
```
|
||||
:::
|
||||
|
||||
Some other options available are:
|
||||
- `description`, `homepage`
|
||||
:::{.example #ex-portableService-symlinks}
|
||||
# Specifying symlinks when building a Portable Service image
|
||||
|
||||
Are added to the `/etc/os-release` in the image and are shown by the portable services tooling.
|
||||
Default to empty values, not added to os-release.
|
||||
- `symlinks`
|
||||
Some services may expect files or directories to be available globally.
|
||||
An example is a service which expects all trusted SSL certificates to exist in a specific location by default.
|
||||
|
||||
A list of attribute sets {object, symlink}. Symlinks will be created in the root filesystem of the image to
|
||||
objects in the Nix store. Defaults to an empty list.
|
||||
- `contents`
|
||||
To make things available globally, you must specify the `symlinks` attribute when using `portableService`.
|
||||
The following package builds on the package from [](#ex-portableService-hello) to make `/etc/ssl` available globally (this is only for illustrative purposes, because `hello` doesn't use `/etc/ssl`).
|
||||
|
||||
A list of additional derivations to be included in the image Nix store, as-is. Defaults to an empty list.
|
||||
- `squashfsTools`
|
||||
|
||||
Defaults to `pkgs.squashfsTools`, allows you to override the package that provides `mksquashfs`.
|
||||
- `squash-compression`, `squash-block-size`
|
||||
|
||||
Options to `mksquashfs`. Default to `"xz -Xdict-size 100%"` and `"1M"` respectively.
|
||||
|
||||
A typical usage of `symlinks` would be:
|
||||
```nix
|
||||
symlinks = [
|
||||
{ object = "${pkgs.cacert}/etc/ssl"; symlink = "/etc/ssl"; }
|
||||
{ object = "${pkgs.bash}/bin/bash"; symlink = "/bin/sh"; }
|
||||
{ object = "${pkgs.php}/bin/php"; symlink = "/usr/bin/php"; }
|
||||
];
|
||||
```
|
||||
to create these symlinks for legacy applications that assume them existing globally.
|
||||
{ lib, writeText, portableService, hello, cacert }:
|
||||
let
|
||||
hello-service = writeText "hello.service" ''
|
||||
[Unit]
|
||||
Description=Hello world service
|
||||
|
||||
Once the image is created, and deployed on a host in `/var/lib/portables/`, you can attach the image and run the service. As root run:
|
||||
```console
|
||||
portablectl attach demo_1.0.raw
|
||||
systemctl enable --now demo.socket
|
||||
systemctl enable --now demo.service
|
||||
[Service]
|
||||
Type=oneshot
|
||||
ExecStart=${lib.getExe hello}
|
||||
'';
|
||||
in
|
||||
portableService {
|
||||
pname = "hello";
|
||||
inherit (hello) version;
|
||||
units = [ hello-service ];
|
||||
symlinks = [
|
||||
{ object = "${cacert}/etc/ssl"; symlink = "/etc/ssl"; }
|
||||
];
|
||||
}
|
||||
```
|
||||
::: {.note}
|
||||
See the [man page](https://www.freedesktop.org/software/systemd/man/portablectl.html) of `portablectl` for more info on its usage.
|
||||
:::
|
||||
|
|
|
@ -318,5 +318,7 @@
|
|||
"passwd(5)": "https://man.archlinux.org/man/passwd.5",
|
||||
"group(5)": "https://man.archlinux.org/man/group.5",
|
||||
"login.defs(5)": "https://man.archlinux.org/man/login.defs.5",
|
||||
"nix-shell(1)": "https://nixos.org/manual/nix/stable/command-ref/nix-shell.html"
|
||||
"unshare(1)": "https://man.archlinux.org/man/unshare.1.en",
|
||||
"nix-shell(1)": "https://nixos.org/manual/nix/stable/command-ref/nix-shell.html",
|
||||
"mksquashfs(1)": "https://man.archlinux.org/man/extra/squashfs-tools/mksquashfs.1.en"
|
||||
}
|
||||
|
|
|
@ -145,6 +145,12 @@ rec {
|
|||
in fix g
|
||||
```
|
||||
|
||||
:::{.note}
|
||||
The argument to the given fixed-point function after applying an overlay will *not* refer to its own return value, but rather to the value after evaluating the overlay function.
|
||||
|
||||
The given fixed-point function is called with a separate argument than if it was evaluated with `lib.fix`.
|
||||
:::
|
||||
|
||||
:::{.example}
|
||||
|
||||
# Extend a fixed-point function with an overlay
|
||||
|
@ -230,13 +236,6 @@ rec {
|
|||
|
||||
fix (extends (final: prev: { c = final.a + final.b; }) f)
|
||||
=> { a = 1; b = 3; c = 4; }
|
||||
|
||||
:::{.note}
|
||||
The argument to the given fixed-point function after applying an overlay will *not* refer to its own return value, but rather to the value after evaluating the overlay function.
|
||||
|
||||
The given fixed-point function is called with a separate argument than if it was evaluated with `lib.fix`.
|
||||
The new argument
|
||||
:::
|
||||
*/
|
||||
extends =
|
||||
# The overlay to apply to the fixed-point function
|
||||
|
|
|
@ -203,6 +203,15 @@
|
|||
fingerprint = "D292 365E 3C46 A5AA 75EE B30B 78DB 7EDE 3540 794B";
|
||||
}];
|
||||
};
|
||||
_6543 = {
|
||||
email = "6543@obermui.de";
|
||||
github = "6543";
|
||||
githubId = 24977596;
|
||||
name = "6543";
|
||||
keys = [{
|
||||
fingerprint = "8722 B61D 7234 1082 553B 201C B8BE 6D61 0E61 C862";
|
||||
}];
|
||||
};
|
||||
_6AA4FD = {
|
||||
email = "f6442954@gmail.com";
|
||||
github = "6AA4FD";
|
||||
|
@ -7038,6 +7047,15 @@
|
|||
github = "ghostbuster91";
|
||||
githubId = 5662622;
|
||||
};
|
||||
ghthor = {
|
||||
email = "ghthor@gmail.com";
|
||||
github = "ghthor";
|
||||
githubId = 160298;
|
||||
name = "Will Owens";
|
||||
keys = [{
|
||||
fingerprint = "8E98 BB01 BFF8 AEA4 E303 FC4C 8074 09C9 2CE2 3033";
|
||||
}];
|
||||
};
|
||||
ghuntley = {
|
||||
email = "ghuntley@ghuntley.com";
|
||||
github = "ghuntley";
|
||||
|
@ -20280,6 +20298,12 @@
|
|||
githubId = 326263;
|
||||
name = "Danny Wilson";
|
||||
};
|
||||
vizid = {
|
||||
email = "vizid1337@gmail.com";
|
||||
github = "ViZiD";
|
||||
githubId = 7444430;
|
||||
name = "Radik Islamov";
|
||||
};
|
||||
vklquevs = {
|
||||
email = "vklquevs@gmail.com";
|
||||
github = "vklquevs";
|
||||
|
|
|
@ -73,6 +73,34 @@ have a predefined type and string generator already declared under
|
|||
|
||||
It returns a set with INI-specific attributes `type` and `generate`
|
||||
as specified [below](#pkgs-formats-result).
|
||||
The type of the input is an *attrset* of sections; key-value pairs where
|
||||
the key is the section name and the value is the corresponding content
|
||||
which is also an *attrset* of key-value pairs for the actual key-value
|
||||
mappings of the INI format.
|
||||
The values of the INI atoms are subject to the above parameters (e.g. lists
|
||||
may be transformed into multiple key-value pairs depending on
|
||||
`listToValue`).
|
||||
|
||||
`pkgs.formats.iniWithGlobalSection` { *`listsAsDuplicateKeys`* ? false, *`listToValue`* ? null, \.\.\. }
|
||||
|
||||
: A function taking an attribute set with values
|
||||
|
||||
`listsAsDuplicateKeys`
|
||||
|
||||
: A boolean for controlling whether list values can be used to
|
||||
represent duplicate INI keys
|
||||
|
||||
`listToValue`
|
||||
|
||||
: A function for turning a list of values into a single value.
|
||||
|
||||
It returns a set with INI-specific attributes `type` and `generate`
|
||||
as specified [below](#pkgs-formats-result).
|
||||
The type of the input is an *attrset* of the structure
|
||||
`{ sections = {}; globalSection = {}; }` where *sections* are several
|
||||
sections as with *pkgs.formats.ini* and *globalSection* being just a single
|
||||
attrset of key-value pairs for a single section, the global section which
|
||||
preceedes the section definitions.
|
||||
|
||||
`pkgs.formats.toml` { }
|
||||
|
||||
|
|
|
@ -93,6 +93,8 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
|
|||
|
||||
- [Clevis](https://github.com/latchset/clevis), a pluggable framework for automated decryption, used to unlock encrypted devices in initrd. Available as [boot.initrd.clevis.enable](#opt-boot.initrd.clevis.enable).
|
||||
|
||||
- [armagetronad](https://wiki.armagetronad.org), a mid-2000s 3D lightcycle game widely played at iD Tech Camps. You can define multiple servers using `services.armagetronad.<server>.enable`.
|
||||
|
||||
- [TuxClocker](https://github.com/Lurkki14/tuxclocker), a hardware control and monitoring program. Available as [programs.tuxclocker](#opt-programs.tuxclocker.enable).
|
||||
|
||||
- [ALVR](https://github.com/alvr-org/alvr), a VR desktop streamer. Available as [programs.alvr](#opt-programs.alvr.enable)
|
||||
|
|
|
@ -378,7 +378,7 @@ in rec {
|
|||
'';
|
||||
|
||||
targetToUnit = name: def:
|
||||
{ inherit (def) aliases wantedBy requiredBy enable overrideStrategy;
|
||||
{ inherit (def) aliases wantedBy requiredBy upheldBy enable overrideStrategy;
|
||||
text =
|
||||
''
|
||||
[Unit]
|
||||
|
@ -387,7 +387,7 @@ in rec {
|
|||
};
|
||||
|
||||
serviceToUnit = name: def:
|
||||
{ inherit (def) aliases wantedBy requiredBy enable overrideStrategy;
|
||||
{ inherit (def) aliases wantedBy requiredBy upheldBy enable overrideStrategy;
|
||||
text = commonUnitText def (''
|
||||
[Service]
|
||||
'' + (let env = cfg.globalEnvironment // def.environment;
|
||||
|
@ -408,7 +408,7 @@ in rec {
|
|||
};
|
||||
|
||||
socketToUnit = name: def:
|
||||
{ inherit (def) aliases wantedBy requiredBy enable overrideStrategy;
|
||||
{ inherit (def) aliases wantedBy requiredBy upheldBy enable overrideStrategy;
|
||||
text = commonUnitText def ''
|
||||
[Socket]
|
||||
${attrsToSection def.socketConfig}
|
||||
|
@ -418,7 +418,7 @@ in rec {
|
|||
};
|
||||
|
||||
timerToUnit = name: def:
|
||||
{ inherit (def) aliases wantedBy requiredBy enable overrideStrategy;
|
||||
{ inherit (def) aliases wantedBy requiredBy upheldBy enable overrideStrategy;
|
||||
text = commonUnitText def ''
|
||||
[Timer]
|
||||
${attrsToSection def.timerConfig}
|
||||
|
@ -426,7 +426,7 @@ in rec {
|
|||
};
|
||||
|
||||
pathToUnit = name: def:
|
||||
{ inherit (def) aliases wantedBy requiredBy enable overrideStrategy;
|
||||
{ inherit (def) aliases wantedBy requiredBy upheldBy enable overrideStrategy;
|
||||
text = commonUnitText def ''
|
||||
[Path]
|
||||
${attrsToSection def.pathConfig}
|
||||
|
@ -434,7 +434,7 @@ in rec {
|
|||
};
|
||||
|
||||
mountToUnit = name: def:
|
||||
{ inherit (def) aliases wantedBy requiredBy enable overrideStrategy;
|
||||
{ inherit (def) aliases wantedBy requiredBy upheldBy enable overrideStrategy;
|
||||
text = commonUnitText def ''
|
||||
[Mount]
|
||||
${attrsToSection def.mountConfig}
|
||||
|
@ -442,7 +442,7 @@ in rec {
|
|||
};
|
||||
|
||||
automountToUnit = name: def:
|
||||
{ inherit (def) aliases wantedBy requiredBy enable overrideStrategy;
|
||||
{ inherit (def) aliases wantedBy requiredBy upheldBy enable overrideStrategy;
|
||||
text = commonUnitText def ''
|
||||
[Automount]
|
||||
${attrsToSection def.automountConfig}
|
||||
|
@ -450,7 +450,7 @@ in rec {
|
|||
};
|
||||
|
||||
sliceToUnit = name: def:
|
||||
{ inherit (def) aliases wantedBy requiredBy enable overrideStrategy;
|
||||
{ inherit (def) aliases wantedBy requiredBy upheldBy enable overrideStrategy;
|
||||
text = commonUnitText def ''
|
||||
[Slice]
|
||||
${attrsToSection def.sliceConfig}
|
||||
|
|
|
@ -512,6 +512,7 @@
|
|||
./services/editors/infinoted.nix
|
||||
./services/finance/odoo.nix
|
||||
./services/games/archisteamfarm.nix
|
||||
./services/games/armagetronad.nix
|
||||
./services/games/crossfire-server.nix
|
||||
./services/games/deliantra-server.nix
|
||||
./services/games/factorio.nix
|
||||
|
|
|
@ -119,10 +119,10 @@ in {
|
|||
extraPackages = mkOption {
|
||||
type = with types; listOf package;
|
||||
default = with pkgs; [
|
||||
swaylock swayidle foot dmenu
|
||||
swaylock swayidle foot dmenu wmenu
|
||||
];
|
||||
defaultText = literalExpression ''
|
||||
with pkgs; [ swaylock swayidle foot dmenu ];
|
||||
with pkgs; [ swaylock swayidle foot dmenu wmenu ];
|
||||
'';
|
||||
example = literalExpression ''
|
||||
with pkgs; [
|
||||
|
|
268
nixos/modules/services/games/armagetronad.nix
Normal file
268
nixos/modules/services/games/armagetronad.nix
Normal file
|
@ -0,0 +1,268 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
let
|
||||
inherit (lib) mkEnableOption mkIf mkOption mkMerge literalExpression;
|
||||
inherit (lib) mapAttrsToList filterAttrs unique recursiveUpdate types;
|
||||
|
||||
mkValueStringArmagetron = with lib; v:
|
||||
if isInt v then toString v
|
||||
else if isFloat v then toString v
|
||||
else if isString v then v
|
||||
else if true == v then "1"
|
||||
else if false == v then "0"
|
||||
else if null == v then ""
|
||||
else throw "unsupported type: ${builtins.typeOf v}: ${(lib.generators.toPretty {} v)}";
|
||||
|
||||
settingsFormat = pkgs.formats.keyValue {
|
||||
mkKeyValue = lib.generators.mkKeyValueDefault
|
||||
{
|
||||
mkValueString = mkValueStringArmagetron;
|
||||
} " ";
|
||||
listsAsDuplicateKeys = true;
|
||||
};
|
||||
|
||||
cfg = config.services.armagetronad;
|
||||
enabledServers = lib.filterAttrs (n: v: v.enable) cfg.servers;
|
||||
nameToId = serverName: "armagetronad-${serverName}";
|
||||
getStateDirectory = serverName: "armagetronad/${serverName}";
|
||||
getServerRoot = serverName: "/var/lib/${getStateDirectory serverName}";
|
||||
in
|
||||
{
|
||||
options = {
|
||||
services.armagetronad = {
|
||||
servers = mkOption {
|
||||
description = lib.mdDoc "Armagetron server definitions.";
|
||||
default = { };
|
||||
type = types.attrsOf (types.submodule {
|
||||
options = {
|
||||
enable = mkEnableOption (lib.mdDoc "armagetronad");
|
||||
|
||||
package = lib.mkPackageOptionMD pkgs "armagetronad-dedicated" {
|
||||
example = ''
|
||||
pkgs.armagetronad."0.2.9-sty+ct+ap".dedicated
|
||||
'';
|
||||
extraDescription = ''
|
||||
Ensure that you use a derivation which contains the path `bin/armagetronad-dedicated`.
|
||||
'';
|
||||
};
|
||||
|
||||
host = mkOption {
|
||||
type = types.str;
|
||||
default = "0.0.0.0";
|
||||
description = lib.mdDoc "Host to listen on. Used for SERVER_IP.";
|
||||
};
|
||||
|
||||
port = mkOption {
|
||||
type = types.port;
|
||||
default = 4534;
|
||||
description = lib.mdDoc "Port to listen on. Used for SERVER_PORT.";
|
||||
};
|
||||
|
||||
dns = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
description = lib.mdDoc "DNS address to use for this server. Optional.";
|
||||
};
|
||||
|
||||
openFirewall = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = lib.mdDoc "Set to true to open the configured UDP port for Armagetron Advanced.";
|
||||
};
|
||||
|
||||
name = mkOption {
|
||||
type = types.str;
|
||||
description = "The name of this server.";
|
||||
};
|
||||
|
||||
settings = mkOption {
|
||||
type = settingsFormat.type;
|
||||
default = { };
|
||||
description = lib.mdDoc ''
|
||||
Armagetron Advanced server rules configuration. Refer to:
|
||||
<https://wiki.armagetronad.org/index.php?title=Console_Commands>
|
||||
or `armagetronad-dedicated --doc` for a list.
|
||||
|
||||
This attrset is used to populate `settings_custom.cfg`; see:
|
||||
<https://wiki.armagetronad.org/index.php/Configuration_Files>
|
||||
'';
|
||||
example = literalExpression ''
|
||||
{
|
||||
CYCLE_RUBBER = 40;
|
||||
}
|
||||
'';
|
||||
};
|
||||
|
||||
roundSettings = mkOption {
|
||||
type = settingsFormat.type;
|
||||
default = { };
|
||||
description = lib.mdDoc ''
|
||||
Armagetron Advanced server per-round configuration. Refer to:
|
||||
<https://wiki.armagetronad.org/index.php?title=Console_Commands>
|
||||
or `armagetronad-dedicated --doc` for a list.
|
||||
|
||||
This attrset is used to populate `everytime.cfg`; see:
|
||||
<https://wiki.armagetronad.org/index.php/Configuration_Files>
|
||||
'';
|
||||
example = literalExpression ''
|
||||
{
|
||||
SAY = [
|
||||
"Hosted on NixOS"
|
||||
"https://nixos.org"
|
||||
"iD Tech High Rubber rul3z!! Happy New Year 2008!!1"
|
||||
];
|
||||
}
|
||||
'';
|
||||
};
|
||||
};
|
||||
});
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf (enabledServers != { }) {
|
||||
systemd.tmpfiles.settings = mkMerge (mapAttrsToList
|
||||
(serverName: serverCfg:
|
||||
let
|
||||
serverId = nameToId serverName;
|
||||
serverRoot = getServerRoot serverName;
|
||||
serverInfo = (
|
||||
{
|
||||
SERVER_IP = serverCfg.host;
|
||||
SERVER_PORT = serverCfg.port;
|
||||
SERVER_NAME = serverCfg.name;
|
||||
} // (lib.optionalAttrs (serverCfg.dns != null) { SERVER_DNS = serverCfg.dns; })
|
||||
);
|
||||
customSettings = serverCfg.settings;
|
||||
everytimeSettings = serverCfg.roundSettings;
|
||||
|
||||
serverInfoCfg = settingsFormat.generate "server_info.${serverName}.cfg" serverInfo;
|
||||
customSettingsCfg = settingsFormat.generate "settings_custom.${serverName}.cfg" customSettings;
|
||||
everytimeSettingsCfg = settingsFormat.generate "everytime.${serverName}.cfg" everytimeSettings;
|
||||
in
|
||||
{
|
||||
"10-armagetronad-${serverId}" = {
|
||||
"${serverRoot}/data" = {
|
||||
d = {
|
||||
group = serverId;
|
||||
user = serverId;
|
||||
mode = "0750";
|
||||
};
|
||||
};
|
||||
"${serverRoot}/settings" = {
|
||||
d = {
|
||||
group = serverId;
|
||||
user = serverId;
|
||||
mode = "0750";
|
||||
};
|
||||
};
|
||||
"${serverRoot}/var" = {
|
||||
d = {
|
||||
group = serverId;
|
||||
user = serverId;
|
||||
mode = "0750";
|
||||
};
|
||||
};
|
||||
"${serverRoot}/resource" = {
|
||||
d = {
|
||||
group = serverId;
|
||||
user = serverId;
|
||||
mode = "0750";
|
||||
};
|
||||
};
|
||||
"${serverRoot}/input" = {
|
||||
"f+" = {
|
||||
group = serverId;
|
||||
user = serverId;
|
||||
mode = "0640";
|
||||
};
|
||||
};
|
||||
"${serverRoot}/settings/server_info.cfg" = {
|
||||
"L+" = {
|
||||
argument = "${serverInfoCfg}";
|
||||
};
|
||||
};
|
||||
"${serverRoot}/settings/settings_custom.cfg" = {
|
||||
"L+" = {
|
||||
argument = "${customSettingsCfg}";
|
||||
};
|
||||
};
|
||||
"${serverRoot}/settings/everytime.cfg" = {
|
||||
"L+" = {
|
||||
argument = "${everytimeSettingsCfg}";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
)
|
||||
enabledServers
|
||||
);
|
||||
|
||||
systemd.services = mkMerge (mapAttrsToList
|
||||
(serverName: serverCfg:
|
||||
let
|
||||
serverId = nameToId serverName;
|
||||
in
|
||||
{
|
||||
"armagetronad-${serverName}" = {
|
||||
description = "Armagetron Advanced Dedicated Server for ${serverName}";
|
||||
wants = [ "basic.target" ];
|
||||
after = [ "basic.target" "network.target" "multi-user.target" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
serviceConfig =
|
||||
let
|
||||
serverRoot = getServerRoot serverName;
|
||||
in
|
||||
{
|
||||
Type = "simple";
|
||||
StateDirectory = getStateDirectory serverName;
|
||||
ExecStart = "${lib.getExe serverCfg.package} --daemon --input ${serverRoot}/input --userdatadir ${serverRoot}/data --userconfigdir ${serverRoot}/settings --vardir ${serverRoot}/var --autoresourcedir ${serverRoot}/resource";
|
||||
Restart = "on-failure";
|
||||
CapabilityBoundingSet = "";
|
||||
LockPersonality = true;
|
||||
NoNewPrivileges = true;
|
||||
PrivateDevices = true;
|
||||
PrivateTmp = true;
|
||||
PrivateUsers = true;
|
||||
ProtectClock = true;
|
||||
ProtectControlGroups = true;
|
||||
ProtectHome = true;
|
||||
ProtectHostname = true;
|
||||
ProtectKernelLogs = true;
|
||||
ProtectKernelModules = true;
|
||||
ProtectKernelTunables = true;
|
||||
ProtectProc = "invisible";
|
||||
ProtectSystem = "strict";
|
||||
RestrictNamespaces = true;
|
||||
RestrictSUIDSGID = true;
|
||||
User = serverId;
|
||||
Group = serverId;
|
||||
};
|
||||
};
|
||||
})
|
||||
enabledServers
|
||||
);
|
||||
|
||||
networking.firewall.allowedUDPPorts =
|
||||
unique (mapAttrsToList (serverName: serverCfg: serverCfg.port) (filterAttrs (serverName: serverCfg: serverCfg.openFirewall) enabledServers));
|
||||
|
||||
users.users = mkMerge (mapAttrsToList
|
||||
(serverName: serverCfg:
|
||||
{
|
||||
${nameToId serverName} = {
|
||||
group = nameToId serverName;
|
||||
description = "Armagetron Advanced dedicated user for server ${serverName}";
|
||||
isSystemUser = true;
|
||||
};
|
||||
})
|
||||
enabledServers
|
||||
);
|
||||
|
||||
users.groups = mkMerge (mapAttrsToList
|
||||
(serverName: serverCfg:
|
||||
{
|
||||
${nameToId serverName} = { };
|
||||
})
|
||||
enabledServers
|
||||
);
|
||||
};
|
||||
}
|
|
@ -307,6 +307,9 @@ in
|
|||
Restart = "on-failure";
|
||||
};
|
||||
environment = env;
|
||||
# Allow the consumer to access the private /tmp directory of the server.
|
||||
# This is required to support consuming files via a local folder.
|
||||
unitConfig.JoinsNamespaceOf = "paperless-task-queue.service";
|
||||
};
|
||||
|
||||
systemd.services.paperless-web = {
|
||||
|
|
|
@ -213,7 +213,7 @@ in
|
|||
serviceConfig = {
|
||||
User = "searx";
|
||||
Group = "searx";
|
||||
ExecStart = "${cfg.package}/bin/searx-run";
|
||||
ExecStart = lib.getExe cfg.package;
|
||||
} // optionalAttrs (cfg.environmentFile != null)
|
||||
{ EnvironmentFile = builtins.toPath cfg.environmentFile; };
|
||||
environment = {
|
||||
|
|
|
@ -24,12 +24,24 @@ let
|
|||
confNoServer = concatStringsSep "\n" ((mapAttrsToList (toConf "") (builtins.removeAttrs cfg.settings [ "server" ])) ++ [""]);
|
||||
confServer = concatStringsSep "\n" (mapAttrsToList (toConf " ") (builtins.removeAttrs cfg.settings.server [ "define-tag" ]));
|
||||
|
||||
confFile = pkgs.writeText "unbound.conf" ''
|
||||
confFileUnchecked = pkgs.writeText "unbound.conf" ''
|
||||
server:
|
||||
${optionalString (cfg.settings.server.define-tag != "") (toOption " " "define-tag" cfg.settings.server.define-tag)}
|
||||
${confServer}
|
||||
${confNoServer}
|
||||
'';
|
||||
confFile = if cfg.checkconf then pkgs.runCommandLocal "unbound-checkconf" { } ''
|
||||
cp ${confFileUnchecked} unbound.conf
|
||||
|
||||
# fake stateDir which is not accesible in the sandbox
|
||||
mkdir -p $PWD/state
|
||||
sed -i unbound.conf \
|
||||
-e '/auto-trust-anchor-file/d' \
|
||||
-e "s|${cfg.stateDir}|$PWD/state|"
|
||||
${cfg.package}/bin/unbound-checkconf unbound.conf
|
||||
|
||||
cp ${confFileUnchecked} $out
|
||||
'' else confFileUnchecked;
|
||||
|
||||
rootTrustAnchorFile = "${cfg.stateDir}/root.key";
|
||||
|
||||
|
@ -62,6 +74,17 @@ in {
|
|||
description = lib.mdDoc "Directory holding all state for unbound to run.";
|
||||
};
|
||||
|
||||
checkconf = mkOption {
|
||||
type = types.bool;
|
||||
default = !cfg.settings ? include;
|
||||
defaultText = "!config.services.unbound.settings ? include";
|
||||
description = lib.mdDoc ''
|
||||
Wether to check the resulting config file with unbound checkconf for syntax errors.
|
||||
|
||||
If settings.include is used, then this options is disabled, as the import can likely not be resolved at build time.
|
||||
'';
|
||||
};
|
||||
|
||||
resolveLocalQueries = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
|
|
|
@ -132,6 +132,28 @@ in
|
|||
default = "WriteReplica";
|
||||
type = lib.types.enum [ "WriteReplica" "WriteReplicaNoUI" "ReadOnlyReplica" ];
|
||||
};
|
||||
online_backup = {
|
||||
path = lib.mkOption {
|
||||
description = lib.mdDoc "Path to the output directory for backups.";
|
||||
type = lib.types.path;
|
||||
default = "/var/lib/kanidm/backups";
|
||||
};
|
||||
schedule = lib.mkOption {
|
||||
description = lib.mdDoc "The schedule for backups in cron format.";
|
||||
type = lib.types.str;
|
||||
default = "00 22 * * *";
|
||||
};
|
||||
versions = lib.mkOption {
|
||||
description = lib.mdDoc ''
|
||||
Number of backups to keep.
|
||||
|
||||
The default is set to `0`, in order to disable backups by default.
|
||||
'';
|
||||
type = lib.types.ints.unsigned;
|
||||
default = 0;
|
||||
example = 7;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
default = { };
|
||||
|
@ -233,6 +255,14 @@ in
|
|||
|
||||
environment.systemPackages = lib.mkIf cfg.enableClient [ cfg.package ];
|
||||
|
||||
systemd.tmpfiles.settings."10-kanidm" = {
|
||||
${cfg.serverSettings.online_backup.path}.d = {
|
||||
mode = "0700";
|
||||
user = "kanidm";
|
||||
group = "kanidm";
|
||||
};
|
||||
};
|
||||
|
||||
systemd.services.kanidm = lib.mkIf cfg.enableServer {
|
||||
description = "kanidm identity management daemon";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
|
@ -253,6 +283,8 @@ in
|
|||
BindPaths = [
|
||||
# To create the socket
|
||||
"/run/kanidmd:/run/kanidmd"
|
||||
# To store backups
|
||||
cfg.serverSettings.online_backup.path
|
||||
];
|
||||
|
||||
AmbientCapabilities = [ "CAP_NET_BIND_SERVICE" ];
|
||||
|
|
|
@ -216,9 +216,11 @@ in
|
|||
requires = [ "podman.service" ];
|
||||
};
|
||||
|
||||
systemd.services.podman.environment = config.networking.proxy.envVars;
|
||||
systemd.sockets.podman.wantedBy = [ "sockets.target" ];
|
||||
systemd.sockets.podman.socketConfig.SocketGroup = "podman";
|
||||
|
||||
systemd.user.services.podman.environment = config.networking.proxy.envVars;
|
||||
systemd.user.sockets.podman.wantedBy = [ "sockets.target" ];
|
||||
|
||||
systemd.timers.podman-prune.timerConfig = lib.mkIf cfg.autoPrune.enable {
|
||||
|
|
|
@ -128,6 +128,7 @@ in {
|
|||
appliance-repart-image = runTest ./appliance-repart-image.nix;
|
||||
apparmor = handleTest ./apparmor.nix {};
|
||||
archi = handleTest ./archi.nix {};
|
||||
armagetronad = handleTest ./armagetronad.nix {};
|
||||
atd = handleTest ./atd.nix {};
|
||||
atop = handleTest ./atop.nix {};
|
||||
atuin = handleTest ./atuin.nix {};
|
||||
|
|
272
nixos/tests/armagetronad.nix
Normal file
272
nixos/tests/armagetronad.nix
Normal file
|
@ -0,0 +1,272 @@
|
|||
import ./make-test-python.nix ({ pkgs, ...} :
|
||||
|
||||
let
|
||||
user = "alice";
|
||||
|
||||
client =
|
||||
{ pkgs, ... }:
|
||||
|
||||
{ imports = [ ./common/user-account.nix ./common/x11.nix ];
|
||||
hardware.opengl.driSupport = true;
|
||||
virtualisation.memorySize = 256;
|
||||
environment = {
|
||||
systemPackages = [ pkgs.armagetronad ];
|
||||
variables.XAUTHORITY = "/home/${user}/.Xauthority";
|
||||
};
|
||||
test-support.displayManager.auto.user = user;
|
||||
};
|
||||
|
||||
in {
|
||||
name = "armagetronad";
|
||||
meta = with pkgs.lib.maintainers; {
|
||||
maintainers = [ numinit ];
|
||||
};
|
||||
|
||||
enableOCR = true;
|
||||
|
||||
nodes =
|
||||
{
|
||||
server = {
|
||||
services.armagetronad.servers = {
|
||||
high-rubber = {
|
||||
enable = true;
|
||||
name = "Smoke Test High Rubber Server";
|
||||
port = 4534;
|
||||
settings = {
|
||||
SERVER_OPTIONS = "High Rubber server made to run smoke tests.";
|
||||
CYCLE_RUBBER = 40;
|
||||
SIZE_FACTOR = 0.5;
|
||||
};
|
||||
roundSettings = {
|
||||
SAY = [
|
||||
"NixOS Smoke Test Server"
|
||||
"https://nixos.org"
|
||||
];
|
||||
};
|
||||
};
|
||||
sty = {
|
||||
enable = true;
|
||||
name = "Smoke Test sty+ct+ap Server";
|
||||
package = pkgs.armagetronad."0.2.9-sty+ct+ap".dedicated;
|
||||
port = 4535;
|
||||
settings = {
|
||||
SERVER_OPTIONS = "sty+ct+ap server made to run smoke tests.";
|
||||
CYCLE_RUBBER = 20;
|
||||
SIZE_FACTOR = 0.5;
|
||||
};
|
||||
roundSettings = {
|
||||
SAY = [
|
||||
"NixOS Smoke Test sty+ct+ap Server"
|
||||
"https://nixos.org"
|
||||
];
|
||||
};
|
||||
};
|
||||
trunk = {
|
||||
enable = true;
|
||||
name = "Smoke Test trunk Server";
|
||||
package = pkgs.armagetronad."0.4".dedicated;
|
||||
port = 4536;
|
||||
settings = {
|
||||
SERVER_OPTIONS = "0.4 server made to run smoke tests.";
|
||||
CYCLE_RUBBER = 20;
|
||||
SIZE_FACTOR = 0.5;
|
||||
};
|
||||
roundSettings = {
|
||||
SAY = [
|
||||
"NixOS Smoke Test 0.4 Server"
|
||||
"https://nixos.org"
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
client1 = client;
|
||||
client2 = client;
|
||||
};
|
||||
|
||||
testScript = let
|
||||
xdo = name: text: let
|
||||
xdoScript = pkgs.writeText "${name}.xdo" text;
|
||||
in "${pkgs.xdotool}/bin/xdotool ${xdoScript}";
|
||||
in
|
||||
''
|
||||
import shlex
|
||||
import threading
|
||||
from collections import namedtuple
|
||||
|
||||
class Client(namedtuple('Client', ('node', 'name'))):
|
||||
def send(self, *keys):
|
||||
for key in keys:
|
||||
self.node.send_key(key)
|
||||
|
||||
def send_on(self, text, *keys):
|
||||
self.node.wait_for_text(text)
|
||||
self.send(*keys)
|
||||
|
||||
Server = namedtuple('Server', ('node', 'name', 'address', 'port', 'welcome', 'attacker', 'victim', 'coredump_delay'))
|
||||
|
||||
# Clients and their in-game names
|
||||
clients = (
|
||||
Client(client1, 'Arduino'),
|
||||
Client(client2, 'SmOoThIcE')
|
||||
)
|
||||
|
||||
# Server configs.
|
||||
servers = (
|
||||
Server(server, 'high-rubber', 'server', 4534, 'NixOS Smoke Test Server', 'SmOoThIcE', 'Arduino', 8),
|
||||
Server(server, 'sty', 'server', 4535, 'NixOS Smoke Test sty+ct+ap Server', 'Arduino', 'SmOoThIcE', 8),
|
||||
Server(server, 'trunk', 'server', 4536, 'NixOS Smoke Test 0.4 Server', 'Arduino', 'SmOoThIcE', 8)
|
||||
)
|
||||
|
||||
"""
|
||||
Runs a command as the client user.
|
||||
"""
|
||||
def run(cmd):
|
||||
return "su - ${user} -c " + shlex.quote(cmd)
|
||||
|
||||
screenshot_idx = 1
|
||||
|
||||
"""
|
||||
Takes screenshots on all clients.
|
||||
"""
|
||||
def take_screenshots(screenshot_idx):
|
||||
for client in clients:
|
||||
client.node.screenshot(f"screen_{client.name}_{screenshot_idx}")
|
||||
return screenshot_idx + 1
|
||||
|
||||
# Wait for the servers to come up.
|
||||
start_all()
|
||||
for srv in servers:
|
||||
srv.node.wait_for_unit(f"armagetronad-{srv.name}")
|
||||
srv.node.wait_until_succeeds(f"ss --numeric --udp --listening | grep -q {srv.port}")
|
||||
|
||||
# Make sure console commands work through the named pipe we created.
|
||||
for srv in servers:
|
||||
srv.node.succeed(
|
||||
f"echo 'say Testing!' >> /var/lib/armagetronad/{srv.name}/input"
|
||||
)
|
||||
srv.node.succeed(
|
||||
f"echo 'say Testing again!' >> /var/lib/armagetronad/{srv.name}/input"
|
||||
)
|
||||
srv.node.wait_until_succeeds(
|
||||
f"journalctl -u armagetronad-{srv.name} -e | grep -q 'Admin: Testing!'"
|
||||
)
|
||||
srv.node.wait_until_succeeds(
|
||||
f"journalctl -u armagetronad-{srv.name} -e | grep -q 'Admin: Testing again!'"
|
||||
)
|
||||
|
||||
"""
|
||||
Sets up a client, waiting for the given barrier on completion.
|
||||
"""
|
||||
def client_setup(client, servers, barrier):
|
||||
client.node.wait_for_x()
|
||||
|
||||
# Configure Armagetron.
|
||||
client.node.succeed(
|
||||
run("mkdir -p ~/.armagetronad/var"),
|
||||
run(f"echo 'PLAYER_1 {client.name}' >> ~/.armagetronad/var/autoexec.cfg")
|
||||
)
|
||||
for idx, srv in enumerate(servers):
|
||||
client.node.succeed(
|
||||
run(f"echo 'BOOKMARK_{idx+1}_ADDRESS {srv.address}' >> ~/.armagetronad/var/autoexec.cfg"),
|
||||
run(f"echo 'BOOKMARK_{idx+1}_NAME {srv.name}' >> ~/.armagetronad/var/autoexec.cfg"),
|
||||
run(f"echo 'BOOKMARK_{idx+1}_PORT {srv.port}' >> ~/.armagetronad/var/autoexec.cfg")
|
||||
)
|
||||
|
||||
# Start Armagetron.
|
||||
client.node.succeed(run("ulimit -c unlimited; armagetronad >&2 & disown"))
|
||||
client.node.wait_until_succeeds(
|
||||
run(
|
||||
"${xdo "create_new_win-select_main_window" ''
|
||||
search --onlyvisible --name "Armagetron Advanced"
|
||||
windowfocus --sync
|
||||
windowactivate --sync
|
||||
''}"
|
||||
)
|
||||
)
|
||||
|
||||
# Get through the tutorial.
|
||||
client.send_on('Language Settings', 'ret')
|
||||
client.send_on('First Setup', 'ret')
|
||||
client.send_on('Welcome to Armagetron Advanced', 'ret')
|
||||
client.send_on('round 1', 'esc')
|
||||
client.send_on('Menu', 'up', 'up', 'ret')
|
||||
client.send_on('We hope you', 'ret')
|
||||
client.send_on('Armagetron Advanced', 'ret')
|
||||
client.send_on('Play Game', 'ret')
|
||||
|
||||
# Online > LAN > Network Setup > Mates > Server Bookmarks
|
||||
client.send_on('Multiplayer', 'down', 'down', 'down', 'down', 'ret')
|
||||
|
||||
barrier.wait()
|
||||
|
||||
# Get to the Server Bookmarks screen on both clients. This takes a while so do it asynchronously.
|
||||
barrier = threading.Barrier(3, timeout=120)
|
||||
for client in clients:
|
||||
threading.Thread(target=client_setup, args=(client, servers, barrier)).start()
|
||||
barrier.wait()
|
||||
|
||||
# Main testing loop. Iterates through each server bookmark and connects to them in sequence.
|
||||
# Assumes that the game is currently on the Server Bookmarks screen.
|
||||
for srv in servers:
|
||||
screenshot_idx = take_screenshots(screenshot_idx)
|
||||
|
||||
# Connect both clients at once, one second apart.
|
||||
for client in clients:
|
||||
client.send('ret')
|
||||
client.node.sleep(1)
|
||||
|
||||
# Wait for clients to connect
|
||||
for client in clients:
|
||||
srv.node.wait_until_succeeds(
|
||||
f"journalctl -u armagetronad-{srv.name} -e | grep -q '{client.name}.*entered the game'"
|
||||
)
|
||||
|
||||
# Wait for the match to start
|
||||
srv.node.wait_until_succeeds(
|
||||
f"journalctl -u armagetronad-{srv.name} -e | grep -q 'Admin: {srv.welcome}'"
|
||||
)
|
||||
srv.node.wait_until_succeeds(
|
||||
f"journalctl -u armagetronad-{srv.name} -e | grep -q 'Admin: https://nixos.org'"
|
||||
)
|
||||
srv.node.wait_until_succeeds(
|
||||
f"journalctl -u armagetronad-{srv.name} -e | grep -q 'Go (round 1 of 10)'"
|
||||
)
|
||||
|
||||
# Wait a bit
|
||||
srv.node.sleep(srv.coredump_delay)
|
||||
|
||||
# Turn the attacker player's lightcycle left
|
||||
attacker = next(client for client in clients if client.name == srv.attacker)
|
||||
victim = next(client for client in clients if client.name == srv.victim)
|
||||
attacker.send('left')
|
||||
screenshot_idx = take_screenshots(screenshot_idx)
|
||||
|
||||
# Wait for coredump.
|
||||
srv.node.wait_until_succeeds(
|
||||
f"journalctl -u armagetronad-{srv.name} -e | grep -q '{attacker.name} core dumped {victim.name}'"
|
||||
)
|
||||
screenshot_idx = take_screenshots(screenshot_idx)
|
||||
|
||||
# Disconnect both clients from the server
|
||||
for client in clients:
|
||||
client.send('esc')
|
||||
client.send_on('Menu', 'up', 'up', 'ret')
|
||||
srv.node.wait_until_succeeds(
|
||||
f"journalctl -u armagetronad-{srv.name} -e | grep -q '{client.name}.*left the game'"
|
||||
)
|
||||
|
||||
# Next server.
|
||||
for client in clients:
|
||||
client.send_on('Server Bookmarks', 'down')
|
||||
|
||||
# Stop the servers
|
||||
for srv in servers:
|
||||
srv.node.succeed(
|
||||
f"systemctl stop armagetronad-{srv.name}"
|
||||
)
|
||||
srv.node.wait_until_fails(f"ss --numeric --udp --listening | grep -q {srv.port}")
|
||||
'';
|
||||
|
||||
})
|
|
@ -36,7 +36,7 @@ import ./make-test-python.nix ({ pkgs, ...} :
|
|||
};
|
||||
|
||||
# fancy setup: run in uWSGI and use nginx as proxy
|
||||
nodes.fancy = { ... }: {
|
||||
nodes.fancy = { config, ... }: {
|
||||
imports = [ ../modules/profiles/minimal.nix ];
|
||||
|
||||
services.searx = {
|
||||
|
@ -65,7 +65,7 @@ import ./make-test-python.nix ({ pkgs, ...} :
|
|||
include ${pkgs.nginx}/conf/uwsgi_params;
|
||||
uwsgi_pass unix:/run/searx/uwsgi.sock;
|
||||
'';
|
||||
locations."/searx/static/".alias = "${pkgs.searx}/share/static/";
|
||||
locations."/searx/static/".alias = "${config.services.searx.package}/share/static/";
|
||||
};
|
||||
|
||||
# allow nginx access to the searx socket
|
||||
|
@ -108,7 +108,7 @@ import ./make-test-python.nix ({ pkgs, ...} :
|
|||
"${pkgs.curl}/bin/curl --fail http://localhost/searx >&2"
|
||||
)
|
||||
fancy.succeed(
|
||||
"${pkgs.curl}/bin/curl --fail http://localhost/searx/static/themes/oscar/js/bootstrap.min.js >&2"
|
||||
"${pkgs.curl}/bin/curl --fail http://localhost/searx/static/themes/simple/js/leaflet.js >&2"
|
||||
)
|
||||
'';
|
||||
})
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
pythonPackages.buildPythonApplication rec {
|
||||
pname = "mopidy-spotify";
|
||||
version = "unstable-2024-02-11";
|
||||
version = "unstable-2024-02-27";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mopidy";
|
||||
repo = "mopidy-spotify";
|
||||
rev = "fc6ffb3bbbae9224316e2a888db08ef56608966a";
|
||||
hash = "sha256-V1SW8OyuBKLbUoQ4O5iiS4mq3MOXidcVKpiw125vxjQ=";
|
||||
rev = "112d4abbb3f5b6477dab796f2824fa42196bfa0a";
|
||||
hash = "sha256-RkXDzAbOOll3uCNZ2mFRnjqMkT/NkXOGjywLRTC9i60=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
|
|
@ -6,13 +6,13 @@
|
|||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "pyradio";
|
||||
version = "0.9.1";
|
||||
version = "0.9.2.25";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "coderholic";
|
||||
repo = pname;
|
||||
repo = "pyradio";
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-tu/qlrbTcUCIRF15x9ATKHH+LDy1OsGJpo5x+CerTKg=";
|
||||
hash = "sha256-GkOp0iK84HDvVH8RmtmIKJ5EtQIECgZS5g8pmaIhUcc=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -20,9 +20,12 @@ python3Packages.buildPythonApplication rec {
|
|||
];
|
||||
|
||||
propagatedBuildInputs = with python3Packages; [
|
||||
requests
|
||||
psutil
|
||||
dnspython
|
||||
netifaces
|
||||
psutil
|
||||
python-dateutil
|
||||
requests
|
||||
rich
|
||||
];
|
||||
|
||||
checkPhase = ''
|
||||
|
|
|
@ -5,6 +5,8 @@ let
|
|||
inherit (self) callPackage;
|
||||
in
|
||||
{
|
||||
inherit (pkgs) emacspeak;
|
||||
|
||||
acm = callPackage ./manual-packages/acm { };
|
||||
|
||||
acm-terminal = callPackage ./manual-packages/acm-terminal { };
|
||||
|
@ -31,8 +33,6 @@ in
|
|||
|
||||
elisp-ffi = callPackage ./manual-packages/elisp-ffi { };
|
||||
|
||||
emacspeak = callPackage ./manual-packages/emacspeak { };
|
||||
|
||||
ess-R-object-popup = callPackage ./manual-packages/ess-R-object-popup { };
|
||||
|
||||
evil-markdown = callPackage ./manual-packages/evil-markdown { };
|
||||
|
|
|
@ -4,13 +4,13 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "orbiton";
|
||||
version = "2.65.10";
|
||||
version = "2.65.11";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "xyproto";
|
||||
repo = "orbiton";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-z81Xled6OFs9tKVJgUnws81C86Vle5XR85f3z96N2Gw=";
|
||||
hash = "sha256-eb7Ku1hgvYdmRgemXcEZMl53oNXYcomh4wYHpRzLTUc=";
|
||||
};
|
||||
|
||||
vendorHash = null;
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -50,12 +50,12 @@
|
|||
};
|
||||
arduino = buildGrammar {
|
||||
language = "arduino";
|
||||
version = "0.0.0+rev=2372f16";
|
||||
version = "0.0.0+rev=a282270";
|
||||
src = fetchFromGitHub {
|
||||
owner = "ObserverOfTime";
|
||||
repo = "tree-sitter-arduino";
|
||||
rev = "2372f163b8416eeea674686fe0222e39fa06bad5";
|
||||
hash = "sha256-nX0JXEP+fAADlKqMA1rrhKlUS4JMrOtFTQ/wxoOxcIY=";
|
||||
rev = "a282270857b7be447b8be91411468349a31d73b7";
|
||||
hash = "sha256-NAE/E3glGz509nOKO5xsJIwe1Q2OSh6Aj5krUOVhqvw=";
|
||||
};
|
||||
meta.homepage = "https://github.com/ObserverOfTime/tree-sitter-arduino";
|
||||
};
|
||||
|
@ -116,14 +116,14 @@
|
|||
};
|
||||
bass = buildGrammar {
|
||||
language = "bass";
|
||||
version = "0.0.0+rev=27f110d";
|
||||
version = "0.0.0+rev=c9ba456";
|
||||
src = fetchFromGitHub {
|
||||
owner = "amaanq";
|
||||
owner = "vito";
|
||||
repo = "tree-sitter-bass";
|
||||
rev = "27f110dfe79620993f5493ffa0d0f2fe12d250ed";
|
||||
hash = "sha256-OmYtp2TAsAjw2fgdSezHUrP46b/QXgCbDeJa4ANrtvY=";
|
||||
rev = "c9ba4568af24cd3403029730687c0a43d1350a43";
|
||||
hash = "sha256-F131TkIt2mW2n8Da3zI1/B0yoT9Ezo2hWoptpsdMrb4=";
|
||||
};
|
||||
meta.homepage = "https://github.com/amaanq/tree-sitter-bass";
|
||||
meta.homepage = "https://github.com/vito/tree-sitter-bass";
|
||||
};
|
||||
beancount = buildGrammar {
|
||||
language = "beancount";
|
||||
|
@ -182,12 +182,12 @@
|
|||
};
|
||||
c = buildGrammar {
|
||||
language = "c";
|
||||
version = "0.0.0+rev=72a60ea";
|
||||
version = "0.0.0+rev=652433f";
|
||||
src = fetchFromGitHub {
|
||||
owner = "tree-sitter";
|
||||
repo = "tree-sitter-c";
|
||||
rev = "72a60ea888fb59a8e143883661f021139c905b74";
|
||||
hash = "sha256-huEi/PEzjG9mtwL30mJ2oVy+D64d8I9Z/LZc856qlbw=";
|
||||
rev = "652433fce487d8c3943207da38e3e65e4550e288";
|
||||
hash = "sha256-Ld8ufwdOVqRYb9YpOa6z6fWoA+gj0w0nlq3dqhFCap8=";
|
||||
};
|
||||
meta.homepage = "https://github.com/tree-sitter/tree-sitter-c";
|
||||
};
|
||||
|
@ -226,12 +226,12 @@
|
|||
};
|
||||
chatito = buildGrammar {
|
||||
language = "chatito";
|
||||
version = "0.0.0+rev=308b591";
|
||||
version = "0.0.0+rev=7162ec1";
|
||||
src = fetchFromGitHub {
|
||||
owner = "ObserverOfTime";
|
||||
repo = "tree-sitter-chatito";
|
||||
rev = "308b5913fd2ae6b527183ba1b3a490f90da32012";
|
||||
hash = "sha256-oD49Rc1J/CkIAqEFI87efdzGLYl73se0ekpQll/Mpxs=";
|
||||
rev = "7162ec1e8e9154fb334e84aa7637a4af051dfe42";
|
||||
hash = "sha256-phvENW6wEqhKQakeXxsTclhSmFWFgfK9ztCszOGuaYY=";
|
||||
};
|
||||
meta.homepage = "https://github.com/ObserverOfTime/tree-sitter-chatito";
|
||||
};
|
||||
|
@ -248,12 +248,12 @@
|
|||
};
|
||||
cmake = buildGrammar {
|
||||
language = "cmake";
|
||||
version = "0.0.0+rev=73ab4b8";
|
||||
version = "0.0.0+rev=f8de25f";
|
||||
src = fetchFromGitHub {
|
||||
owner = "uyha";
|
||||
repo = "tree-sitter-cmake";
|
||||
rev = "73ab4b8e9522f014a67f87f585e820d36fa47408";
|
||||
hash = "sha256-5X4ho6tqPZFQWqoQ6WBsfuA+RbxTX5XzX7xzyFSTifw=";
|
||||
rev = "f8de25f30757a2def006a7c144354710fe63dcf3";
|
||||
hash = "sha256-J8Ro3J9kkH7k/v+nwekCotoS/l28yInhk9p/xaSbegc=";
|
||||
};
|
||||
meta.homepage = "https://github.com/uyha/tree-sitter-cmake";
|
||||
};
|
||||
|
@ -314,12 +314,12 @@
|
|||
};
|
||||
cpp = buildGrammar {
|
||||
language = "cpp";
|
||||
version = "0.0.0+rev=3d98832";
|
||||
version = "0.0.0+rev=e0c1678";
|
||||
src = fetchFromGitHub {
|
||||
owner = "tree-sitter";
|
||||
repo = "tree-sitter-cpp";
|
||||
rev = "3d988327a1cfd724c0d195b37a1056174fae99bc";
|
||||
hash = "sha256-s7+dRY3OWE7iz9nlqHEOyLlrWaDPF0buDSIjsRYPc7s=";
|
||||
rev = "e0c1678a78731e78655b7d953efb4daecf58be46";
|
||||
hash = "sha256-CdNCVDMAmeJrHgPb2JLxFHj/tHnUYC8flmxj+UaVXTo=";
|
||||
};
|
||||
meta.homepage = "https://github.com/tree-sitter/tree-sitter-cpp";
|
||||
};
|
||||
|
@ -348,12 +348,12 @@
|
|||
};
|
||||
cuda = buildGrammar {
|
||||
language = "cuda";
|
||||
version = "0.0.0+rev=2c6e806";
|
||||
version = "0.0.0+rev=221179d";
|
||||
src = fetchFromGitHub {
|
||||
owner = "theHamsta";
|
||||
repo = "tree-sitter-cuda";
|
||||
rev = "2c6e806949197e7898910c78f514a3b7ff679068";
|
||||
hash = "sha256-JAShJo+jDv4kzFCPID0C3EokmeiWxMVcJoEsVOzKBEw=";
|
||||
rev = "221179d4287a2c24c08e4c67ff383ef67dc32156";
|
||||
hash = "sha256-e01PTB+SduikiiDvOW411v0pBXCqOFBWlu3HgmM6jFg=";
|
||||
};
|
||||
meta.homepage = "https://github.com/theHamsta/tree-sitter-cuda";
|
||||
};
|
||||
|
@ -370,12 +370,12 @@
|
|||
};
|
||||
d = buildGrammar {
|
||||
language = "d";
|
||||
version = "0.0.0+rev=d9a1a2e";
|
||||
version = "0.0.0+rev=a33d400";
|
||||
src = fetchFromGitHub {
|
||||
owner = "gdamore";
|
||||
repo = "tree-sitter-d";
|
||||
rev = "d9a1a2ed77017c23f715643f4739433a5ea7ab6f";
|
||||
hash = "sha256-GgecDpsZMBTEqHjSbNyUUA6HzGuYEgtqZ9AB+6+fsDo=";
|
||||
rev = "a33d400f025d6bbd37b4c681c93054976f579890";
|
||||
hash = "sha256-LUb+1dTj1IP5ZtWaWBT8UWnGEqb0DJodgbkwnT7xywk=";
|
||||
};
|
||||
meta.homepage = "https://github.com/gdamore/tree-sitter-d";
|
||||
};
|
||||
|
@ -469,12 +469,12 @@
|
|||
};
|
||||
dtd = buildGrammar {
|
||||
language = "dtd";
|
||||
version = "0.0.0+rev=2743ff8";
|
||||
version = "0.0.0+rev=52b3783";
|
||||
src = fetchFromGitHub {
|
||||
owner = "tree-sitter-grammars";
|
||||
repo = "tree-sitter-xml";
|
||||
rev = "2743ff864eac85cec830ff400f2e0024b9ca588b";
|
||||
hash = "sha256-wuj3Q+LAtAS99pwJUD+3BzndVeNhzvQlaugzTHRvUjI=";
|
||||
rev = "52b3783d0c89a69ec64b2d49eee95f44a7fdcd2a";
|
||||
hash = "sha256-DVx/JwQXFEgY3XXo2rOVIWBRHdqprNgja9lAashkh5g=";
|
||||
};
|
||||
location = "dtd";
|
||||
meta.homepage = "https://github.com/tree-sitter-grammars/tree-sitter-xml";
|
||||
|
@ -526,12 +526,12 @@
|
|||
};
|
||||
elm = buildGrammar {
|
||||
language = "elm";
|
||||
version = "0.0.0+rev=c26afd7";
|
||||
version = "0.0.0+rev=09dbf22";
|
||||
src = fetchFromGitHub {
|
||||
owner = "elm-tooling";
|
||||
repo = "tree-sitter-elm";
|
||||
rev = "c26afd7f2316f689410a1622f1780eff054994b1";
|
||||
hash = "sha256-vYN1E49IpsvTUmxuzRyydCmhYZYGndcZPMBYgSMudrE=";
|
||||
rev = "09dbf221d7491dc8d8839616b27c21b9c025c457";
|
||||
hash = "sha256-Bq2oWtqEAsKyV0iHNKC+hXW4fh4yUwbfUhPtZWg5pug=";
|
||||
};
|
||||
meta.homepage = "https://github.com/elm-tooling/tree-sitter-elm";
|
||||
};
|
||||
|
@ -592,25 +592,36 @@
|
|||
};
|
||||
faust = buildGrammar {
|
||||
language = "faust";
|
||||
version = "0.0.0+rev=9e514af";
|
||||
version = "0.0.0+rev=f3b9274";
|
||||
src = fetchFromGitHub {
|
||||
owner = "khiner";
|
||||
repo = "tree-sitter-faust";
|
||||
rev = "9e514af33bfe061d0ccf1999dbcc93fca91f133c";
|
||||
hash = "sha256-FZ5wl6Pl2Y86dNpaRMTh8Q7TEx/s0YoV9/H1J+qwlwo=";
|
||||
rev = "f3b9274514b5f9bf6b0dd4a01c30f9cc15c58bc4";
|
||||
hash = "sha256-JwR8LCEptgQmEG/ruK5ukIGCNtvKJw5bobZ0WXF1ulY=";
|
||||
};
|
||||
meta.homepage = "https://github.com/khiner/tree-sitter-faust";
|
||||
};
|
||||
fennel = buildGrammar {
|
||||
language = "fennel";
|
||||
version = "0.0.0+rev=15e4f8c";
|
||||
version = "0.0.0+rev=215e391";
|
||||
src = fetchFromGitHub {
|
||||
owner = "travonted";
|
||||
owner = "alexmozaidze";
|
||||
repo = "tree-sitter-fennel";
|
||||
rev = "15e4f8c417281768db17080c4447297f8ff5343a";
|
||||
hash = "sha256-BdhgDS+yJ/DUYJknVksLSNHvei+MOkqVW7gp6AffKhU=";
|
||||
rev = "215e3913524abc119daa9db7cf6ad2f2f5620189";
|
||||
hash = "sha256-myh0+ZNDzdUZFAdsw8uVGyo0VYh0wKNZ11vlJKTSZnA=";
|
||||
};
|
||||
meta.homepage = "https://github.com/travonted/tree-sitter-fennel";
|
||||
meta.homepage = "https://github.com/alexmozaidze/tree-sitter-fennel";
|
||||
};
|
||||
fidl = buildGrammar {
|
||||
language = "fidl";
|
||||
version = "0.0.0+rev=bdbb635";
|
||||
src = fetchFromGitHub {
|
||||
owner = "google";
|
||||
repo = "tree-sitter-fidl";
|
||||
rev = "bdbb635a7f5035e424f6173f2f11b9cd79703f8d";
|
||||
hash = "sha256-+s9AC7kAfPumREnc7xCSsYiaDwLp3uirLntwd2wK6Wo=";
|
||||
};
|
||||
meta.homepage = "https://github.com/google/tree-sitter-fidl";
|
||||
};
|
||||
firrtl = buildGrammar {
|
||||
language = "firrtl";
|
||||
|
@ -702,12 +713,12 @@
|
|||
};
|
||||
gdscript = buildGrammar {
|
||||
language = "gdscript";
|
||||
version = "0.0.0+rev=03f20b9";
|
||||
version = "0.0.0+rev=b5dea4d";
|
||||
src = fetchFromGitHub {
|
||||
owner = "PrestonKnopp";
|
||||
repo = "tree-sitter-gdscript";
|
||||
rev = "03f20b94707a21bed90bb95101684bc4036139ce";
|
||||
hash = "sha256-im87Rws9PPcBWNN0M8PNqnthJZlWKzn3iPLMGR+jtGo=";
|
||||
rev = "b5dea4d852db65f0872d849c24533eb121e03c76";
|
||||
hash = "sha256-/fmg7DfVX62F3sEovFaMs4dTA4rvPexOdQop3257op4=";
|
||||
};
|
||||
meta.homepage = "https://github.com/PrestonKnopp/tree-sitter-gdscript";
|
||||
};
|
||||
|
@ -735,12 +746,12 @@
|
|||
};
|
||||
gitattributes = buildGrammar {
|
||||
language = "gitattributes";
|
||||
version = "0.0.0+rev=3d03b37";
|
||||
version = "0.0.0+rev=0750b59";
|
||||
src = fetchFromGitHub {
|
||||
owner = "ObserverOfTime";
|
||||
repo = "tree-sitter-gitattributes";
|
||||
rev = "3d03b37395f5707b6a2bfb43f62957fe0e669c0c";
|
||||
hash = "sha256-+DvxhL+m3Nagv0GXWWWYsIIDuWNzlK1vNVLOO0qBl2E=";
|
||||
rev = "0750b5904f37d6b2f47f6e4655001c2c35a172ec";
|
||||
hash = "sha256-BXsF++uut1WWxe67E+CUh3e6VWrezNJaPfYJhXB0VlY=";
|
||||
};
|
||||
meta.homepage = "https://github.com/ObserverOfTime/tree-sitter-gitattributes";
|
||||
};
|
||||
|
@ -999,23 +1010,23 @@
|
|||
};
|
||||
hlsl = buildGrammar {
|
||||
language = "hlsl";
|
||||
version = "0.0.0+rev=840fd07";
|
||||
version = "0.0.0+rev=f820ee8";
|
||||
src = fetchFromGitHub {
|
||||
owner = "theHamsta";
|
||||
repo = "tree-sitter-hlsl";
|
||||
rev = "840fd07f09304bca415b93a15483e9ab1e44bc3f";
|
||||
hash = "sha256-GPY6udz0YZawmQ6WcItXchUeag9EO+eMMGoYSaRsdrY=";
|
||||
rev = "f820ee8417451f69020791cf691904ec1b63f20d";
|
||||
hash = "sha256-d80vNrZGaPWlST5tgvf25CliuzS+zSZ60f49cRuucZ4=";
|
||||
};
|
||||
meta.homepage = "https://github.com/theHamsta/tree-sitter-hlsl";
|
||||
};
|
||||
hlsplaylist = buildGrammar {
|
||||
language = "hlsplaylist";
|
||||
version = "0.0.0+rev=ff121d3";
|
||||
version = "0.0.0+rev=5be34b0";
|
||||
src = fetchFromGitHub {
|
||||
owner = "Freed-Wu";
|
||||
repo = "tree-sitter-hlsplaylist";
|
||||
rev = "ff121d397cf7cc709e3bbc928107fc25529e11e0";
|
||||
hash = "sha256-FItkJbxWfpRne27OPRq5fCHUCX35fxmiT6k1eX8UkhI=";
|
||||
rev = "5be34b0f6ea01b24f017c2c715729a3a919f57fd";
|
||||
hash = "sha256-3ZFaIc4BrfR7dLxftbSLuFdErjYrJgi0Cd8jp9PB19U=";
|
||||
};
|
||||
meta.homepage = "https://github.com/Freed-Wu/tree-sitter-hlsplaylist";
|
||||
};
|
||||
|
@ -1043,12 +1054,12 @@
|
|||
};
|
||||
html = buildGrammar {
|
||||
language = "html";
|
||||
version = "0.0.0+rev=438d694";
|
||||
version = "0.0.0+rev=b5d9758";
|
||||
src = fetchFromGitHub {
|
||||
owner = "tree-sitter";
|
||||
repo = "tree-sitter-html";
|
||||
rev = "438d694a1f51e1704cb779ad4fec2517523b1d7f";
|
||||
hash = "sha256-NL1tOr7V3QVsVu2OfzLzFpe/FpYVD6MCgdSV0I6AkRY=";
|
||||
rev = "b5d9758e22b4d3d25704b72526670759a9e4d195";
|
||||
hash = "sha256-v3BD36OKkzJ1xqQV87HAyQpnQzi/4+PuyEAM1HfkW3U=";
|
||||
};
|
||||
meta.homepage = "https://github.com/tree-sitter/tree-sitter-html";
|
||||
};
|
||||
|
@ -1175,12 +1186,12 @@
|
|||
};
|
||||
json = buildGrammar {
|
||||
language = "json";
|
||||
version = "0.0.0+rev=ac6ddfa";
|
||||
version = "0.0.0+rev=3b12920";
|
||||
src = fetchFromGitHub {
|
||||
owner = "tree-sitter";
|
||||
repo = "tree-sitter-json";
|
||||
rev = "ac6ddfa7775795a3d8f5edab4a71e3a49f932b6a";
|
||||
hash = "sha256-T/y1xfHv3G3cTD2xw43tMiW8agKwE5CV/uwThSHkd84=";
|
||||
rev = "3b129203f4b72d532f58e72c5310c0a7db3b8e6d";
|
||||
hash = "sha256-dVErHgsUDEN42wc/Gd68vQfVc8+/r/8No9KZk2GFzmY=";
|
||||
};
|
||||
meta.homepage = "https://github.com/tree-sitter/tree-sitter-json";
|
||||
};
|
||||
|
@ -1351,12 +1362,12 @@
|
|||
};
|
||||
lua = buildGrammar {
|
||||
language = "lua";
|
||||
version = "0.0.0+rev=9668709";
|
||||
version = "0.0.0+rev=04c9579";
|
||||
src = fetchFromGitHub {
|
||||
owner = "MunifTanjim";
|
||||
repo = "tree-sitter-lua";
|
||||
rev = "9668709211b2e683f27f414454a8b51bf0a6bda1";
|
||||
hash = "sha256-5t5w8KqbefInNbA12/jpNzmky/uOUhsLjKdEqpl1GEc=";
|
||||
rev = "04c9579dcb917255b2e5f8199df4ae7f587d472f";
|
||||
hash = "sha256-kzyn6XF4/PN8civ/0UV+ancCMkh7DF2B7WUYxix6aaM=";
|
||||
};
|
||||
meta.homepage = "https://github.com/MunifTanjim/tree-sitter-lua";
|
||||
};
|
||||
|
@ -1417,24 +1428,24 @@
|
|||
};
|
||||
markdown = buildGrammar {
|
||||
language = "markdown";
|
||||
version = "0.0.0+rev=23d9cb2";
|
||||
version = "0.0.0+rev=2821521";
|
||||
src = fetchFromGitHub {
|
||||
owner = "MDeiml";
|
||||
repo = "tree-sitter-markdown";
|
||||
rev = "23d9cb2ce2f4d0914e7609b500c5fc8dfae0176f";
|
||||
hash = "sha256-Z42w7gSUV9/9Q1jtCrd03cjlMUjHC5Vjie1x8m8K5uw=";
|
||||
rev = "2821521a4e6eab37b63dff6a8e169cd88554047d";
|
||||
hash = "sha256-JoZ/CKIMHVowwqTMFdys+Qu1CHMsP+8Wr2LJo5h30B4=";
|
||||
};
|
||||
location = "tree-sitter-markdown";
|
||||
meta.homepage = "https://github.com/MDeiml/tree-sitter-markdown";
|
||||
};
|
||||
markdown_inline = buildGrammar {
|
||||
language = "markdown_inline";
|
||||
version = "0.0.0+rev=23d9cb2";
|
||||
version = "0.0.0+rev=2821521";
|
||||
src = fetchFromGitHub {
|
||||
owner = "MDeiml";
|
||||
repo = "tree-sitter-markdown";
|
||||
rev = "23d9cb2ce2f4d0914e7609b500c5fc8dfae0176f";
|
||||
hash = "sha256-Z42w7gSUV9/9Q1jtCrd03cjlMUjHC5Vjie1x8m8K5uw=";
|
||||
rev = "2821521a4e6eab37b63dff6a8e169cd88554047d";
|
||||
hash = "sha256-JoZ/CKIMHVowwqTMFdys+Qu1CHMsP+8Wr2LJo5h30B4=";
|
||||
};
|
||||
location = "tree-sitter-markdown-inline";
|
||||
meta.homepage = "https://github.com/MDeiml/tree-sitter-markdown";
|
||||
|
@ -1474,35 +1485,35 @@
|
|||
};
|
||||
meson = buildGrammar {
|
||||
language = "meson";
|
||||
version = "0.0.0+rev=3d6dfbd";
|
||||
version = "0.0.0+rev=d6ec8ce";
|
||||
src = fetchFromGitHub {
|
||||
owner = "Decodetalkers";
|
||||
repo = "tree-sitter-meson";
|
||||
rev = "3d6dfbdb2432603bc84ca7dc009bb39ed9a8a7b1";
|
||||
hash = "sha256-NRiecSr5UjISlFtmtvy3SYaWSmXMf0bKCKQVA83Jx+Y=";
|
||||
rev = "d6ec8ce0963c3c8180161391f15d8f7d415f650d";
|
||||
hash = "sha256-SwcBhg6luPAOtaL5dhvLxCpJcwlGhZxhvVmn5pa6ecA=";
|
||||
};
|
||||
meta.homepage = "https://github.com/Decodetalkers/tree-sitter-meson";
|
||||
};
|
||||
mlir = buildGrammar {
|
||||
language = "mlir";
|
||||
version = "0.0.0+rev=650a8fb";
|
||||
version = "0.0.0+rev=117cbbc";
|
||||
src = fetchFromGitHub {
|
||||
owner = "artagnon";
|
||||
repo = "tree-sitter-mlir";
|
||||
rev = "650a8fb72013ba8d169bdb458e480d640fc545c9";
|
||||
hash = "sha256-Xmn5WaOgvAVyr1Bgzr+QG9G/kymtl4CUvLL5SPZdikU=";
|
||||
rev = "117cbbc46bbf82ae30b24f8939573655017226da";
|
||||
hash = "sha256-c0+Pvhe++fHmRL9Ptri+vsdRN3MCb2Z/7EqWmFaK/CE=";
|
||||
};
|
||||
generate = true;
|
||||
meta.homepage = "https://github.com/artagnon/tree-sitter-mlir";
|
||||
};
|
||||
muttrc = buildGrammar {
|
||||
language = "muttrc";
|
||||
version = "0.0.0+rev=0af0e0d";
|
||||
version = "0.0.0+rev=67d9e23";
|
||||
src = fetchFromGitHub {
|
||||
owner = "neomutt";
|
||||
repo = "tree-sitter-muttrc";
|
||||
rev = "0af0e0d8c8cf59dc21cfe565489da0c247374b9f";
|
||||
hash = "sha256-AB8c2mV2sTNwN8sZkv3RbRKdxZW467P6epX+Z4LWqbU=";
|
||||
rev = "67d9e23ca7aa22d9bce9d16c53d2c927dff5159a";
|
||||
hash = "sha256-B3/VoPq8h7TiwOP0nhsuPmFtkLsucpDm9RnUNXkfKpo=";
|
||||
};
|
||||
meta.homepage = "https://github.com/neomutt/tree-sitter-muttrc";
|
||||
};
|
||||
|
@ -1519,23 +1530,23 @@
|
|||
};
|
||||
nickel = buildGrammar {
|
||||
language = "nickel";
|
||||
version = "0.0.0+rev=091b5dc";
|
||||
version = "0.0.0+rev=19fb551";
|
||||
src = fetchFromGitHub {
|
||||
owner = "nickel-lang";
|
||||
repo = "tree-sitter-nickel";
|
||||
rev = "091b5dcc7d138901bcc162da9409c0bb626c0d27";
|
||||
hash = "sha256-HyHdameEgET5UXKMgw7EJvZsJxToc9Qz26XHvc5qmU0=";
|
||||
rev = "19fb551196d18b75160631f5e3a8a006b3875276";
|
||||
hash = "sha256-NXyagRPUT3h8G6R+eE4YrTnWtfB3AT/piXeun5ETU6s=";
|
||||
};
|
||||
meta.homepage = "https://github.com/nickel-lang/tree-sitter-nickel";
|
||||
};
|
||||
nim = buildGrammar {
|
||||
language = "nim";
|
||||
version = "0.0.0+rev=70ceee8";
|
||||
version = "0.0.0+rev=c5f0ce3";
|
||||
src = fetchFromGitHub {
|
||||
owner = "alaviss";
|
||||
repo = "tree-sitter-nim";
|
||||
rev = "70ceee835e033acbc7092cd7f4f6a251789af121";
|
||||
hash = "sha256-9+ADYNrtdva/DkkjPwavyU0cL6eunqq4TX9IUQi9eKw=";
|
||||
rev = "c5f0ce3b65222f5dbb1a12f9fe894524881ad590";
|
||||
hash = "sha256-KzAZf5vgrdp33esrgle71i0m52MvRJ3z/sMwzb+CueU=";
|
||||
};
|
||||
meta.homepage = "https://github.com/alaviss/tree-sitter-nim";
|
||||
};
|
||||
|
@ -1698,46 +1709,46 @@
|
|||
};
|
||||
pem = buildGrammar {
|
||||
language = "pem";
|
||||
version = "0.0.0+rev=7905a16";
|
||||
version = "0.0.0+rev=db307bb";
|
||||
src = fetchFromGitHub {
|
||||
owner = "ObserverOfTime";
|
||||
repo = "tree-sitter-pem";
|
||||
rev = "7905a168036e23605160a0d32a142f58ab5eaa06";
|
||||
hash = "sha256-6gEOrpJ/5UDMMVqKh0XQX+K3JOPiOk5H6CWZgB59h00=";
|
||||
rev = "db307bbb7dc4f721bf2f5ba7fcedaf58feeb59e0";
|
||||
hash = "sha256-uBZo16QtZtbYc4jHdFt1w/zMx9F+WKBB+ANre8IURHA=";
|
||||
};
|
||||
meta.homepage = "https://github.com/ObserverOfTime/tree-sitter-pem";
|
||||
};
|
||||
perl = buildGrammar {
|
||||
language = "perl";
|
||||
version = "0.0.0+rev=a30394f";
|
||||
version = "0.0.0+rev=fd8b951";
|
||||
src = fetchFromGitHub {
|
||||
owner = "tree-sitter-perl";
|
||||
repo = "tree-sitter-perl";
|
||||
rev = "a30394f61b607f48c841c6e085d5219f23872816";
|
||||
hash = "sha256-3aWBh5jKXUYXxOv+RKyEpwJVOoP7QuaRQZHw0yOy6tQ=";
|
||||
rev = "fd8b951cf6f72d48dfd07679de8cf0260836b231";
|
||||
hash = "sha256-ejbpska3Ar0cjqDGZXXjRkpDLNsnDUJD0TBsb2cZfY4=";
|
||||
};
|
||||
meta.homepage = "https://github.com/tree-sitter-perl/tree-sitter-perl";
|
||||
};
|
||||
php = buildGrammar {
|
||||
language = "php";
|
||||
version = "0.0.0+rev=caf4d67";
|
||||
version = "0.0.0+rev=710754c";
|
||||
src = fetchFromGitHub {
|
||||
owner = "tree-sitter";
|
||||
repo = "tree-sitter-php";
|
||||
rev = "caf4d67d55386d3e4f85d29450b8d9cacbb02d19";
|
||||
hash = "sha256-L0M9v/T3W3v+pES2AytZ6V4jHfnSklFBRGPW3/oB2Aw=";
|
||||
rev = "710754c879435178b7643e525c84cd53f32c510c";
|
||||
hash = "sha256-vOvuctPCcKs5iQ88Tv3Euxk7fDg06o1leRWUic4qzLQ=";
|
||||
};
|
||||
location = "php";
|
||||
meta.homepage = "https://github.com/tree-sitter/tree-sitter-php";
|
||||
};
|
||||
php_only = buildGrammar {
|
||||
language = "php_only";
|
||||
version = "0.0.0+rev=caf4d67";
|
||||
version = "0.0.0+rev=710754c";
|
||||
src = fetchFromGitHub {
|
||||
owner = "tree-sitter";
|
||||
repo = "tree-sitter-php";
|
||||
rev = "caf4d67d55386d3e4f85d29450b8d9cacbb02d19";
|
||||
hash = "sha256-L0M9v/T3W3v+pES2AytZ6V4jHfnSklFBRGPW3/oB2Aw=";
|
||||
rev = "710754c879435178b7643e525c84cd53f32c510c";
|
||||
hash = "sha256-vOvuctPCcKs5iQ88Tv3Euxk7fDg06o1leRWUic4qzLQ=";
|
||||
};
|
||||
location = "php_only";
|
||||
meta.homepage = "https://github.com/tree-sitter/tree-sitter-php";
|
||||
|
@ -1788,12 +1799,12 @@
|
|||
};
|
||||
poe_filter = buildGrammar {
|
||||
language = "poe_filter";
|
||||
version = "0.0.0+rev=99ce487";
|
||||
version = "0.0.0+rev=bf912df";
|
||||
src = fetchFromGitHub {
|
||||
owner = "ObserverOfTime";
|
||||
repo = "tree-sitter-poe-filter";
|
||||
rev = "99ce487804eab781e1e1cb39de82aea236346c96";
|
||||
hash = "sha256-kMk0gCb2/FExKyGPeRDCd6rW/R3eH1iuE7udnFoI5UY=";
|
||||
rev = "bf912df70f60b356c70631d9cbb317b41c1ea319";
|
||||
hash = "sha256-EHftq35YJzElvYiJxiu7iIcugoXME7CXuQSo1ktG584=";
|
||||
};
|
||||
meta.homepage = "https://github.com/ObserverOfTime/tree-sitter-poe-filter";
|
||||
};
|
||||
|
@ -1810,12 +1821,12 @@
|
|||
};
|
||||
printf = buildGrammar {
|
||||
language = "printf";
|
||||
version = "0.0.0+rev=ddff4ce";
|
||||
version = "0.0.0+rev=0e0acea";
|
||||
src = fetchFromGitHub {
|
||||
owner = "ObserverOfTime";
|
||||
repo = "tree-sitter-printf";
|
||||
rev = "ddff4ce4d630d1f1a3b591d77b2618a4169b36b9";
|
||||
hash = "sha256-MIj4tP2+zb43pcnSBSVjPpKxjbxKFJTcz8AJphEvh6k=";
|
||||
rev = "0e0aceabbf607ea09e03562f5d8a56f048ddea3d";
|
||||
hash = "sha256-y/7CDnHpT3D6hL0f+52mReCphn+lvElfQQKJwY4fr9c=";
|
||||
};
|
||||
meta.homepage = "https://github.com/ObserverOfTime/tree-sitter-printf";
|
||||
};
|
||||
|
@ -1843,14 +1854,14 @@
|
|||
};
|
||||
properties = buildGrammar {
|
||||
language = "properties";
|
||||
version = "0.0.0+rev=74e5d3c";
|
||||
version = "0.0.0+rev=189b3cc";
|
||||
src = fetchFromGitHub {
|
||||
owner = "ObserverOfTime";
|
||||
owner = "tree-sitter-grammars";
|
||||
repo = "tree-sitter-properties";
|
||||
rev = "74e5d3c63d0da17c0800b3cf9090b24637ef6b59";
|
||||
hash = "sha256-oB5TA8dZtuFop7Urggv2ZWWi8s6wDsIL+ZG5+sCQgq8=";
|
||||
rev = "189b3cc18d36871c27ebb0adcf0cddd123b0cbba";
|
||||
hash = "sha256-5cA2DDMiP8axu8Jl1M+CoxHoB+Jc/VMy3vXME+yxH9o=";
|
||||
};
|
||||
meta.homepage = "https://github.com/ObserverOfTime/tree-sitter-properties";
|
||||
meta.homepage = "https://github.com/tree-sitter-grammars/tree-sitter-properties";
|
||||
};
|
||||
proto = buildGrammar {
|
||||
language = "proto";
|
||||
|
@ -1899,12 +1910,12 @@
|
|||
};
|
||||
puppet = buildGrammar {
|
||||
language = "puppet";
|
||||
version = "0.0.0+rev=9ce9a5f";
|
||||
version = "0.0.0+rev=3641b9e";
|
||||
src = fetchFromGitHub {
|
||||
owner = "amaanq";
|
||||
repo = "tree-sitter-puppet";
|
||||
rev = "9ce9a5f7d64528572aaa8d59459ba869e634086b";
|
||||
hash = "sha256-YEjjy9WLwITERYqoeSVrRYnwVBIAwdc4o0lvAK9wizw=";
|
||||
rev = "3641b9e854ac9c84c7576e71c4c9a357bcfd9550";
|
||||
hash = "sha256-J1DBjQRdV4R85NTyg/qmwbjm1bryKe3UOdp4XyH6BQc=";
|
||||
};
|
||||
meta.homepage = "https://github.com/amaanq/tree-sitter-puppet";
|
||||
};
|
||||
|
@ -2042,12 +2053,12 @@
|
|||
};
|
||||
readline = buildGrammar {
|
||||
language = "readline";
|
||||
version = "0.0.0+rev=f2f98d4";
|
||||
version = "0.0.0+rev=e436eae";
|
||||
src = fetchFromGitHub {
|
||||
owner = "ribru17";
|
||||
repo = "tree-sitter-readline";
|
||||
rev = "f2f98d4263949d696e69a425f65326c59d1ceedc";
|
||||
hash = "sha256-+T4HS2QqoXFRgBfY61NHK4EyQ/HF26eeMt9KV2Ud0Ug=";
|
||||
rev = "e436eaef452266a3d00c195f0eb757d6502c767a";
|
||||
hash = "sha256-y38TDQ+7wBzEKol/UQ5Xk6f15wUW7hJxByDuhx9d0hQ=";
|
||||
};
|
||||
meta.homepage = "https://github.com/ribru17/tree-sitter-readline";
|
||||
};
|
||||
|
@ -2141,12 +2152,12 @@
|
|||
};
|
||||
rust = buildGrammar {
|
||||
language = "rust";
|
||||
version = "0.0.0+rev=a70daac";
|
||||
version = "0.0.0+rev=85a21c9";
|
||||
src = fetchFromGitHub {
|
||||
owner = "tree-sitter";
|
||||
repo = "tree-sitter-rust";
|
||||
rev = "a70daac064145c84e9d51767c2575bb68d51df58";
|
||||
hash = "sha256-2Y7sQ5bhKEpbDAHd5zJMGAlDWH32tJXxAgFOYY8S7o8=";
|
||||
rev = "85a21c96d31b2a5c4369e5836a7f4ab059268fea";
|
||||
hash = "sha256-uxOjdB65+HjNuOybbYb2N9R0I+bt909bIBOzmh9vfVc=";
|
||||
};
|
||||
meta.homepage = "https://github.com/tree-sitter/tree-sitter-rust";
|
||||
};
|
||||
|
@ -2197,23 +2208,23 @@
|
|||
};
|
||||
slang = buildGrammar {
|
||||
language = "slang";
|
||||
version = "0.0.0+rev=130b2f5";
|
||||
version = "0.0.0+rev=0cdfb17";
|
||||
src = fetchFromGitHub {
|
||||
owner = "theHamsta";
|
||||
repo = "tree-sitter-slang";
|
||||
rev = "130b2f5c7a1d5c24645c3518db4bc2b22dd90718";
|
||||
hash = "sha256-gDN8nyQjxE7Hko3MJJj2Le0Ey0pd3GlG5QWkDf8c7Q0=";
|
||||
rev = "0cdfb1741323f38e9a33798674145c22cfc0092b";
|
||||
hash = "sha256-1xSnb3n9u45B2gEBApZpZlb1VvbJOrmgQwrPL2OuGro=";
|
||||
};
|
||||
meta.homepage = "https://github.com/theHamsta/tree-sitter-slang";
|
||||
};
|
||||
slint = buildGrammar {
|
||||
language = "slint";
|
||||
version = "0.0.0+rev=68405a4";
|
||||
version = "0.0.0+rev=3c82235";
|
||||
src = fetchFromGitHub {
|
||||
owner = "slint-ui";
|
||||
repo = "tree-sitter-slint";
|
||||
rev = "68405a45f7a5311cd1f77e40ba84199573303f52";
|
||||
hash = "sha256-zmmxXU7w5N8XjKn2Uu/nAc/FjCAprdKyJ0c75CGUgpk=";
|
||||
rev = "3c82235f41b63f35a01ae3888206e93585cbb84a";
|
||||
hash = "sha256-D3X2YwvxvseIGnKzaSocr3Ak7qoASZhxyRS+rtpir0g=";
|
||||
};
|
||||
meta.homepage = "https://github.com/slint-ui/tree-sitter-slint";
|
||||
};
|
||||
|
@ -2287,12 +2298,12 @@
|
|||
};
|
||||
sourcepawn = buildGrammar {
|
||||
language = "sourcepawn";
|
||||
version = "0.0.0+rev=846ec64";
|
||||
version = "0.0.0+rev=39ce73a";
|
||||
src = fetchFromGitHub {
|
||||
owner = "nilshelmig";
|
||||
repo = "tree-sitter-sourcepawn";
|
||||
rev = "846ec647109a1f3dfab17c025c80ecdf6fd56581";
|
||||
hash = "sha256-3yRBrzuzjWKKpLO+58P/JdNvjPj2o1HuBZOKkFh2RCs=";
|
||||
rev = "39ce73ad42b2c4f52848d16093c24feddaa7d226";
|
||||
hash = "sha256-CyCUGGycWpgQl/BGDjRHwYoa9Mess49jUf9WUkRaliE=";
|
||||
};
|
||||
meta.homepage = "https://github.com/nilshelmig/tree-sitter-sourcepawn";
|
||||
};
|
||||
|
@ -2397,23 +2408,23 @@
|
|||
};
|
||||
svelte = buildGrammar {
|
||||
language = "svelte";
|
||||
version = "0.0.0+rev=bd60db7";
|
||||
version = "0.0.0+rev=04a126d";
|
||||
src = fetchFromGitHub {
|
||||
owner = "Himujjal";
|
||||
owner = "tree-sitter-grammars";
|
||||
repo = "tree-sitter-svelte";
|
||||
rev = "bd60db7d3d06f89b6ec3b287c9a6e9190b5564bd";
|
||||
hash = "sha256-FZuzbTOP9LokPb77DSUwIXCFvMmDQPyyLKt7vNtEuAY=";
|
||||
rev = "04a126d9210def99f06d9ab84a255110b862d47c";
|
||||
hash = "sha256-F6AC72IHMKs1jTwshwNkAXFfiBGEbBn7m83xedCoDsA=";
|
||||
};
|
||||
meta.homepage = "https://github.com/Himujjal/tree-sitter-svelte";
|
||||
meta.homepage = "https://github.com/tree-sitter-grammars/tree-sitter-svelte";
|
||||
};
|
||||
swift = buildGrammar {
|
||||
language = "swift";
|
||||
version = "0.0.0+rev=dabbcf9";
|
||||
version = "0.0.0+rev=e1ac0c3";
|
||||
src = fetchFromGitHub {
|
||||
owner = "alex-pinkus";
|
||||
repo = "tree-sitter-swift";
|
||||
rev = "dabbcf9a2311e08c1b020e1258849b8359e9de1a";
|
||||
hash = "sha256-U4r2uEDqBXeDC0NkOvSwkKreJnFSStxJisNPLJ4CTZs=";
|
||||
rev = "e1ac0c3b48f4c42c40f92f400f14c6561369d4dd";
|
||||
hash = "sha256-7MXH3ZDMH3Im/t5FPMGw6MGKMS+hKaHKUvTXXCrvgtI=";
|
||||
};
|
||||
generate = true;
|
||||
meta.homepage = "https://github.com/alex-pinkus/tree-sitter-swift";
|
||||
|
@ -2552,6 +2563,17 @@
|
|||
};
|
||||
meta.homepage = "https://github.com/tlaplus-community/tree-sitter-tlaplus";
|
||||
};
|
||||
tmux = buildGrammar {
|
||||
language = "tmux";
|
||||
version = "0.0.0+rev=10737f5";
|
||||
src = fetchFromGitHub {
|
||||
owner = "Freed-Wu";
|
||||
repo = "tree-sitter-tmux";
|
||||
rev = "10737f5dc4d8e68c9667f11a6996688a1185755f";
|
||||
hash = "sha256-7MQYyWu1Rw3Vwmp3nbuorn9rD0xcEU5nRXPuTVpOqkM=";
|
||||
};
|
||||
meta.homepage = "https://github.com/Freed-Wu/tree-sitter-tmux";
|
||||
};
|
||||
todotxt = buildGrammar {
|
||||
language = "todotxt";
|
||||
version = "0.0.0+rev=3937c5c";
|
||||
|
@ -2643,6 +2665,17 @@
|
|||
};
|
||||
meta.homepage = "https://github.com/Teddytrombone/tree-sitter-typoscript";
|
||||
};
|
||||
typst = buildGrammar {
|
||||
language = "typst";
|
||||
version = "0.0.0+rev=c757be0";
|
||||
src = fetchFromGitHub {
|
||||
owner = "uben0";
|
||||
repo = "tree-sitter-typst";
|
||||
rev = "c757be0898e2a58f4e9761aa164dc413bf5beaf8";
|
||||
hash = "sha256-z0x47Qrr8mYroDtXapRmzOMHOxlYmQmonN0P7VSCBu0=";
|
||||
};
|
||||
meta.homepage = "https://github.com/uben0/tree-sitter-typst";
|
||||
};
|
||||
udev = buildGrammar {
|
||||
language = "udev";
|
||||
version = "0.0.0+rev=15d89be";
|
||||
|
@ -2746,23 +2779,23 @@
|
|||
};
|
||||
vim = buildGrammar {
|
||||
language = "vim";
|
||||
version = "0.0.0+rev=32c76f1";
|
||||
version = "0.0.0+rev=bc1364d";
|
||||
src = fetchFromGitHub {
|
||||
owner = "neovim";
|
||||
repo = "tree-sitter-vim";
|
||||
rev = "32c76f150347c1cd044e90b8e2bc73c00677fa55";
|
||||
hash = "sha256-14lkrGZ5JpbPvb5Pm2UzLodhO1IEz5rBETTU0RZDFc4=";
|
||||
rev = "bc1364d922952138957a62105171ed68e73fbb6c";
|
||||
hash = "sha256-5h1GYjyYMJd5GS0zXh0LP1wBs60fYohpFv89gcdZ4vU=";
|
||||
};
|
||||
meta.homepage = "https://github.com/neovim/tree-sitter-vim";
|
||||
};
|
||||
vimdoc = buildGrammar {
|
||||
language = "vimdoc";
|
||||
version = "0.0.0+rev=ed8695a";
|
||||
version = "0.0.0+rev=40fcd50";
|
||||
src = fetchFromGitHub {
|
||||
owner = "neovim";
|
||||
repo = "tree-sitter-vimdoc";
|
||||
rev = "ed8695ad8de39c3f073da130156f00b1148e2891";
|
||||
hash = "sha256-q5Ln8WPFrtKBfZnaAAlMh3Q/eczEt6wCMZAtx+ISCKg=";
|
||||
rev = "40fcd50a2c7b5a3ef98294795116773b24fb61ab";
|
||||
hash = "sha256-i/O8vIjiyOoFECS1nmKfL/8hofzSvwg5cJo7JooJGOY=";
|
||||
};
|
||||
meta.homepage = "https://github.com/neovim/tree-sitter-vimdoc";
|
||||
};
|
||||
|
@ -2790,23 +2823,23 @@
|
|||
};
|
||||
wgsl_bevy = buildGrammar {
|
||||
language = "wgsl_bevy";
|
||||
version = "0.0.0+rev=a041228";
|
||||
version = "0.0.0+rev=cbd58ee";
|
||||
src = fetchFromGitHub {
|
||||
owner = "theHamsta";
|
||||
repo = "tree-sitter-wgsl-bevy";
|
||||
rev = "a041228ae64632f59b9bd37346a0dbcb7817f36b";
|
||||
hash = "sha256-bBGunOcFPrHWLsP1ISgdFBNDIBbB0uhwxKAwmQZg7/k=";
|
||||
rev = "cbd58ee33e24f46d16b9882b001eefb25a958ee2";
|
||||
hash = "sha256-EPpI4UJ/5GB2iDQGoSziUOcP1TVf7VU4FMTKvrujcAY=";
|
||||
};
|
||||
meta.homepage = "https://github.com/theHamsta/tree-sitter-wgsl-bevy";
|
||||
};
|
||||
wing = buildGrammar {
|
||||
language = "wing";
|
||||
version = "0.0.0+rev=f7965a9";
|
||||
version = "0.0.0+rev=52ef462";
|
||||
src = fetchFromGitHub {
|
||||
owner = "winglang";
|
||||
repo = "wing";
|
||||
rev = "f7965a947d2eaa8b5b9bba1c42a0e1891f1a0b2a";
|
||||
hash = "sha256-qQ74aj7pccc3gvmeNoa0BBTMdNTmcc0h8aWNcLvpMRY=";
|
||||
rev = "52ef462f76e199845a5df4834b838339e0a6efdb";
|
||||
hash = "sha256-eZEyk285EyfduzrVH3Ojbwu8mbRFfZY6lrQQQT1kWM8=";
|
||||
};
|
||||
location = "libs/tree-sitter-wing";
|
||||
generate = true;
|
||||
|
@ -2814,23 +2847,23 @@
|
|||
};
|
||||
xcompose = buildGrammar {
|
||||
language = "xcompose";
|
||||
version = "0.0.0+rev=8898238";
|
||||
version = "0.0.0+rev=7fd1494";
|
||||
src = fetchFromGitHub {
|
||||
owner = "ObserverOfTime";
|
||||
repo = "tree-sitter-xcompose";
|
||||
rev = "8898238fca7e143760386448093392b87e58002e";
|
||||
hash = "sha256-1U3FFO6j4jdynDTRQlD8kfTYTiKvC7ZjxSECMW9NYGY=";
|
||||
rev = "7fd14940e0478fce79ea195067ed14a2c42c654a";
|
||||
hash = "sha256-elnm1HjE4hLFMR/XhCPhOcGjqS9FbCULPRb/IntpQ3U=";
|
||||
};
|
||||
meta.homepage = "https://github.com/ObserverOfTime/tree-sitter-xcompose";
|
||||
};
|
||||
xml = buildGrammar {
|
||||
language = "xml";
|
||||
version = "0.0.0+rev=2743ff8";
|
||||
version = "0.0.0+rev=52b3783";
|
||||
src = fetchFromGitHub {
|
||||
owner = "tree-sitter-grammars";
|
||||
repo = "tree-sitter-xml";
|
||||
rev = "2743ff864eac85cec830ff400f2e0024b9ca588b";
|
||||
hash = "sha256-wuj3Q+LAtAS99pwJUD+3BzndVeNhzvQlaugzTHRvUjI=";
|
||||
rev = "52b3783d0c89a69ec64b2d49eee95f44a7fdcd2a";
|
||||
hash = "sha256-DVx/JwQXFEgY3XXo2rOVIWBRHdqprNgja9lAashkh5g=";
|
||||
};
|
||||
location = "xml";
|
||||
meta.homepage = "https://github.com/tree-sitter-grammars/tree-sitter-xml";
|
||||
|
@ -2870,12 +2903,12 @@
|
|||
};
|
||||
zathurarc = buildGrammar {
|
||||
language = "zathurarc";
|
||||
version = "0.0.0+rev=fe37e85";
|
||||
version = "0.0.0+rev=353bdf2";
|
||||
src = fetchFromGitHub {
|
||||
owner = "Freed-Wu";
|
||||
repo = "tree-sitter-zathurarc";
|
||||
rev = "fe37e85db355c737573315f278672534c40fe140";
|
||||
hash = "sha256-lQFCJhyJTCa+zdsobMutgbQqJ9mhehaIbRLbds0riEo=";
|
||||
rev = "353bdf25e7af9c2830e254977fd3fb57ccaa8203";
|
||||
hash = "sha256-vFDz4X0ujqM9GbrpGt3dRjvo0SR07E2qXrT/ppTegBQ=";
|
||||
};
|
||||
meta.homepage = "https://github.com/Freed-Wu/tree-sitter-zathurarc";
|
||||
};
|
||||
|
|
|
@ -998,7 +998,7 @@
|
|||
inherit (old) version src;
|
||||
sourceRoot = "source/spectre_oxi";
|
||||
|
||||
cargoHash = "sha256-822+3s6FJVqBRYJAL/89bJfGv8fNhSN3nQelB29mXvQ=";
|
||||
cargoHash = "sha256-gCGuD5kipgfR0Le8npNmyBxNsUq0PavXvKkxkiPx13E=";
|
||||
|
||||
|
||||
preCheck = ''
|
||||
|
@ -1671,6 +1671,14 @@
|
|||
dependencies = with self; [ vim-repeat ];
|
||||
};
|
||||
|
||||
vim-tabby = super.vim-tabby.overrideAttrs {
|
||||
postPatch = ''
|
||||
substituteInPlace autoload/tabby/globals.vim --replace-fail \
|
||||
"let g:tabby_node_binary = get(g:, 'tabby_node_binary', 'node')" \
|
||||
"let g:tabby_node_binary = get(g:, 'tabby_node_binary', '${nodejs}/bin/node')"
|
||||
'';
|
||||
};
|
||||
|
||||
vim-textobj-entire = super.vim-textobj-entire.overrideAttrs {
|
||||
dependencies = with self; [ vim-textobj-user ];
|
||||
meta.maintainers = with lib.maintainers; [ farlion ];
|
||||
|
|
|
@ -75,6 +75,7 @@ https://github.com/jiangmiao/auto-pairs/,,
|
|||
https://github.com/pocco81/auto-save.nvim/,HEAD,
|
||||
https://github.com/rmagatti/auto-session/,,
|
||||
https://github.com/m4xshen/autoclose.nvim/,HEAD,
|
||||
https://github.com/gaoDean/autolist.nvim/,,
|
||||
https://github.com/vim-scripts/autoload_cscope.vim/,,
|
||||
https://github.com/nullishamy/autosave.nvim/,HEAD,
|
||||
https://github.com/rafi/awesome-vim-colorschemes/,,
|
||||
|
@ -1400,3 +1401,4 @@ https://github.com/ziglang/zig.vim/,,
|
|||
https://github.com/mickael-menu/zk-nvim/,HEAD,
|
||||
https://github.com/troydm/zoomwintab.vim/,,
|
||||
https://github.com/nanotee/zoxide.vim/,,
|
||||
https://github.com/TabbyML/vim-tabby/,HEAD,
|
||||
|
|
|
@ -3928,8 +3928,8 @@ let
|
|||
mktplcRef = {
|
||||
name = "uiua-vscode";
|
||||
publisher = "uiua-lang";
|
||||
version = "0.0.27";
|
||||
sha256 = "sha256-wEY1FZjgiQJ7VrJGZX0SgZqz/14v//jxgrqdafLjIfM=";
|
||||
version = "0.0.39";
|
||||
sha256 = "sha256-B+p5bIwVhzWAdKQPCGPlImQihYCeTtYFTlkZIkgWayk=";
|
||||
};
|
||||
meta = {
|
||||
description = "VSCode language extension for Uiua";
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
, rustPlatform
|
||||
, fetchFromGitHub
|
||||
, pkg-config
|
||||
, libgit2_1_5
|
||||
, libgit2
|
||||
, openssl
|
||||
, zlib
|
||||
, stdenv
|
||||
|
@ -27,7 +27,7 @@ rustPlatform.buildRustPackage rec {
|
|||
];
|
||||
|
||||
buildInputs = [
|
||||
libgit2_1_5
|
||||
libgit2
|
||||
openssl
|
||||
zlib
|
||||
] ++ lib.optionals stdenv.isDarwin [
|
||||
|
@ -35,6 +35,7 @@ rustPlatform.buildRustPackage rec {
|
|||
];
|
||||
|
||||
env = {
|
||||
LIBGIT2_NO_VENDOR = 1;
|
||||
OPENSSL_NO_VENDOR = true;
|
||||
};
|
||||
|
||||
|
|
|
@ -16,13 +16,13 @@
|
|||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "nwg-panel";
|
||||
version = "0.9.24";
|
||||
version = "0.9.25";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "nwg-piotr";
|
||||
repo = "nwg-panel";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-qd2fnGdpHXX35ZtNGe59GnmhYGn6VJibc0KEr60VIJM=";
|
||||
hash = "sha256-dTBV2OckPJNA707PNz/jmfUPpufhItt4EEDHAI79kxQ=";
|
||||
};
|
||||
|
||||
# No tests
|
||||
|
|
|
@ -39,6 +39,9 @@ stdenv.mkDerivation (finalAttrs: rec {
|
|||
hash = "sha256-7O+DX4uuncUqx5zEKQprZE6tctteT6NU01V2EBHiFqA=";
|
||||
};
|
||||
|
||||
# build pkg-config is required to locate the native `scdoc` input
|
||||
depsBuildBuild = [ pkg-config ];
|
||||
|
||||
nativeBuildInputs = [
|
||||
bash-completion
|
||||
# cmake # currently conflicts with meson
|
||||
|
@ -50,7 +53,6 @@ stdenv.mkDerivation (finalAttrs: rec {
|
|||
pkg-config
|
||||
python3
|
||||
sassc
|
||||
pantheon.granite
|
||||
scdoc
|
||||
vala
|
||||
wrapGAppsHook
|
||||
|
@ -68,6 +70,7 @@ stdenv.mkDerivation (finalAttrs: rec {
|
|||
libhandy
|
||||
libpulseaudio
|
||||
librsvg
|
||||
pantheon.granite
|
||||
# systemd # ends with broken permission
|
||||
];
|
||||
|
||||
|
|
|
@ -28,12 +28,12 @@
|
|||
version = "2024-01-22";
|
||||
};
|
||||
ungoogled-patches = {
|
||||
hash = "sha256-G+agHdsssYhsyi4TgJUJBqMEnEgQ7bYeqpTqmonXI6I=";
|
||||
rev = "122.0.6261.69-1";
|
||||
hash = "sha256-vqiizzSVWV2/iADPac8qgfdZcbunc0QgMqN15NwJ9js=";
|
||||
rev = "122.0.6261.94-1";
|
||||
};
|
||||
};
|
||||
hash = "sha256-uEN1hN6DOLgw4QDrMBZdiLLPx+yKQc5MimIf/vbCC84=";
|
||||
hash_deb_amd64 = "sha256-k3/Phs72eIMB6LAU4aU0+ze/cRu6KlRhpBshKhmq9N4=";
|
||||
version = "122.0.6261.69";
|
||||
hash = "sha256-7fIs8qQon9L0iNmM/cHuyqtVm09qf7L4j9qb6KSbw2w=";
|
||||
hash_deb_amd64 = "sha256-hOm7YZ9ya/SmwKhj6uIPkdgIDv5bIbss398szBYHuXk=";
|
||||
version = "122.0.6261.94";
|
||||
};
|
||||
}
|
||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -33,11 +33,11 @@
|
|||
|
||||
firefox-beta = buildMozillaMach rec {
|
||||
pname = "firefox-beta";
|
||||
version = "124.0b2";
|
||||
version = "124.0b5";
|
||||
applicationName = "Mozilla Firefox Beta";
|
||||
src = fetchurl {
|
||||
url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
|
||||
sha512 = "a98bedcf2bb6e58a20b4ab49d53db0899ed7c6589b20266522521c3db5c583807be1d536a580a1b42dd5783c0d81d95c4f42be6a157fb08a588447ca4fa21dde";
|
||||
sha512 = "a232d5f8d3118ef37166ef8706ab17d4cceaf67f0b12da4780c52253eec297c79e95ab42fe15165fdda62cda045ac923a53550c3525e9fd94ea3dca586510637";
|
||||
};
|
||||
|
||||
meta = {
|
||||
|
@ -62,13 +62,13 @@
|
|||
|
||||
firefox-devedition = buildMozillaMach rec {
|
||||
pname = "firefox-devedition";
|
||||
version = "124.0b2";
|
||||
version = "124.0b5";
|
||||
applicationName = "Mozilla Firefox Developer Edition";
|
||||
requireSigning = false;
|
||||
branding = "browser/branding/aurora";
|
||||
src = fetchurl {
|
||||
url = "mirror://mozilla/devedition/releases/${version}/source/firefox-${version}.source.tar.xz";
|
||||
sha512 = "a65a522130d95ef5ffd4ee351c79a64517abdd60a80a74e66b147f6b179613240ab2abd6eb9cd939dfe31dd5b971773e882eb234a358e9546ab0272d8ed94145";
|
||||
sha512 = "bea92dcf8703dab99cc8248a0d205b8613f74efa81cbe789aa3ef863093fa78ac4e362956dfd57186954389cd87cd97bc0b077d3f80bfe5b7dd3b6435874fa98";
|
||||
};
|
||||
|
||||
meta = {
|
||||
|
|
|
@ -1,20 +1,20 @@
|
|||
{
|
||||
beta = import ./browser.nix {
|
||||
channel = "beta";
|
||||
version = "122.0.2365.52";
|
||||
version = "122.0.2365.59";
|
||||
revision = "1";
|
||||
hash = "sha256-H8VTDyDY2Rm5z4cJruzMa1YorBAUL0pJuwhQ6cy4WfY=";
|
||||
hash = "sha256-hs6NHAdqji5Cg1ReGWqalFHv6wyRlyclssyc0cxM+ZU=";
|
||||
};
|
||||
dev = import ./browser.nix {
|
||||
channel = "dev";
|
||||
version = "123.0.2400.1";
|
||||
version = "123.0.2420.6";
|
||||
revision = "1";
|
||||
hash = "sha256-I9PT320DJgqJYNwB0pvngyLlV+N2jaS5tOwVwwNHex0=";
|
||||
hash = "sha256-fX6lxhJstz2cZZODu7xRe1fez8WTXqlYNgsMhIVTLaU=";
|
||||
};
|
||||
stable = import ./browser.nix {
|
||||
channel = "stable";
|
||||
version = "122.0.2365.52";
|
||||
version = "122.0.2365.59";
|
||||
revision = "1";
|
||||
hash = "sha256-hULyUUFhMjiareXr1zTynyknVyert45N0H4iR8woGRw=";
|
||||
hash = "sha256-LbyipfA5TZWSZu1jeUykGZ2FXwt9rZ7ak7mmryXRnMQ=";
|
||||
};
|
||||
}
|
||||
|
|
|
@ -24,7 +24,7 @@ let
|
|||
vivaldiName = if isSnapshot then "vivaldi-snapshot" else "vivaldi";
|
||||
in stdenv.mkDerivation rec {
|
||||
pname = "vivaldi";
|
||||
version = "6.5.3206.55";
|
||||
version = "6.5.3206.63";
|
||||
|
||||
suffix = {
|
||||
aarch64-linux = "arm64";
|
||||
|
@ -34,8 +34,8 @@ in stdenv.mkDerivation rec {
|
|||
src = fetchurl {
|
||||
url = "https://downloads.vivaldi.com/${branch}/vivaldi-${branch}_${version}-1_${suffix}.deb";
|
||||
hash = {
|
||||
aarch64-linux = "sha256-lr+9+w1vRZSG/2dP5K3mcKLCQijckPdkM/I2DgjO4wg=";
|
||||
x86_64-linux = "sha256-ElkuuaZfK8F6CVA5xbKszkbqdcPACFR+xd0pRxnd6+U=";
|
||||
aarch64-linux = "sha256-MyKTihImCd1/4UwnC/GqyeQcYnJNvKW5UfIIRN45r8E=";
|
||||
x86_64-linux = "sha256-RbGoOKQyAaNY+y+jCT+r7GI9vymTT9kPDrwl9/bhaNw=";
|
||||
}.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
|
||||
};
|
||||
|
||||
|
|
|
@ -8,13 +8,13 @@
|
|||
buildGoModule rec {
|
||||
pname = "bosh-cli";
|
||||
|
||||
version = "7.5.2";
|
||||
version = "7.5.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "cloudfoundry";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-gT0Oivo5QE+pr5PpD/7JAj8oYF9UmSi5F6Ps8RtACzc=";
|
||||
sha256 = "sha256-aNzKp7QwyhC/ado0NrCyxrRZu+ePGBNSq31/Iw6k6n0=";
|
||||
};
|
||||
vendorHash = null;
|
||||
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "popeye";
|
||||
version = "0.20.3";
|
||||
version = "0.20.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
rev = "v${version}";
|
||||
owner = "derailed";
|
||||
repo = "popeye";
|
||||
sha256 = "sha256-Iq33TEl6yCw4e6LeOsXcaMGRmOJqq9XV4KChEArDL6Q=";
|
||||
sha256 = "sha256-rUG2tZokWXWVvGiyDAxVYfVwSDInaLptBCBuawtP1bc=";
|
||||
};
|
||||
|
||||
ldflags = [
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
callPackage ./generic.nix {} rec {
|
||||
pname = "signal-desktop";
|
||||
dir = "Signal";
|
||||
version = "6.48.1";
|
||||
version = "7.0.0";
|
||||
url = "https://updates.signal.org/desktop/apt/pool/s/signal-desktop/signal-desktop_${version}_amd64.deb";
|
||||
hash = "sha256-3FJdgWmpfHAy5Hd97bH1DAbXYLsabom22tUKNK2bF2c=";
|
||||
hash = "sha256-xwKisiOE2g+pg1P9mX6AlwYU1JWXIWSSygwauoU05E8=";
|
||||
}
|
||||
|
|
|
@ -1,39 +1,40 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, buildPythonApplication
|
||||
, substituteAll
|
||||
, fetchFromGitHub
|
||||
, isPy3k
|
||||
, cepa
|
||||
, colorama
|
||||
, fetchFromGitHub
|
||||
, flask
|
||||
, flask-compress
|
||||
, flask-httpauth
|
||||
, flask-socketio
|
||||
, gevent-socketio
|
||||
, gevent-websocket
|
||||
, cepa
|
||||
, obfs4
|
||||
, psutil
|
||||
, pyqt5
|
||||
, pycrypto
|
||||
, pynacl
|
||||
, pyside2
|
||||
, pyqt5
|
||||
, pyside6
|
||||
, pysocks
|
||||
, pytestCheckHook
|
||||
, qrcode
|
||||
, qt5
|
||||
, requests
|
||||
, unidecode
|
||||
, tor
|
||||
, obfs4
|
||||
, snowflake
|
||||
, substituteAll
|
||||
, tor
|
||||
, unidecode
|
||||
, waitress
|
||||
}:
|
||||
|
||||
let
|
||||
version = "2.6";
|
||||
version = "2.6.1";
|
||||
src = fetchFromGitHub {
|
||||
owner = "onionshare";
|
||||
repo = "onionshare";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-LA7XlzoCXUiG/9subTddAd22336wO9sOHCIBlQK4Ga4=";
|
||||
sha256 = "sha256-LR3Ao4Q8kEDwrFV+gYdMSEeYF4hDtEa1rJgvRRrJMwc=";
|
||||
};
|
||||
meta = with lib; {
|
||||
description = "Securely and anonymously send and receive files";
|
||||
|
@ -79,23 +80,27 @@ rec {
|
|||
})
|
||||
];
|
||||
propagatedBuildInputs = [
|
||||
cepa
|
||||
colorama
|
||||
flask
|
||||
flask-compress
|
||||
flask-httpauth
|
||||
flask-socketio
|
||||
gevent-socketio
|
||||
gevent-websocket
|
||||
cepa
|
||||
psutil
|
||||
pycrypto
|
||||
pynacl
|
||||
pyside6
|
||||
qrcode
|
||||
requests
|
||||
unidecode
|
||||
waitress
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
tor
|
||||
obfs4
|
||||
tor
|
||||
];
|
||||
|
||||
nativeCheckInputs = [
|
||||
|
@ -107,9 +112,11 @@ rec {
|
|||
export HOME="$(mktemp -d)"
|
||||
'';
|
||||
|
||||
disabledTests = [
|
||||
disabledTests = lib.optionals stdenv.isLinux [
|
||||
"test_get_tor_paths_linux" # expects /usr instead of /nix/store
|
||||
] ++ lib.optionals stdenv.isDarwin [
|
||||
# requires meek-client which is not packaged
|
||||
"test_get_tor_paths_darwin"
|
||||
# on darwin (and only on darwin) onionshare attempts to discover
|
||||
# user's *real* homedir via /etc/passwd, making it more painful
|
||||
# to fake
|
||||
|
@ -128,16 +135,15 @@ rec {
|
|||
inherit tor meek obfs4 snowflake;
|
||||
inherit (tor) geoip;
|
||||
})
|
||||
./fix-qrcode-gui.patch
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
onionshare
|
||||
pyqt5
|
||||
pyside2
|
||||
psutil
|
||||
qrcode
|
||||
pyqt5
|
||||
pyside6
|
||||
pysocks
|
||||
qrcode
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ qt5.wrapQtAppsHook ];
|
||||
|
|
|
@ -1,14 +0,0 @@
|
|||
diff --git desktop/onionshare/widgets.py desktop/onionshare/widgets.py
|
||||
index 64a07703..bca974fb 100644
|
||||
--- desktop/onionshare/widgets.py
|
||||
+++ desktop/onionshare/widgets.py
|
||||
@@ -101,7 +101,7 @@ class Image(qrcode.image.base.BaseImage):
|
||||
A custom Image class, for use with the QR Code pixmap.
|
||||
"""
|
||||
|
||||
- def __init__(self, border, width, box_size):
|
||||
+ def __init__(self, border, width, box_size, *args, **kargs):
|
||||
self.border = border
|
||||
self.width = width
|
||||
self.box_size = box_size
|
||||
|
|
@ -1,12 +1,12 @@
|
|||
{ lib, stdenv, fetchFromGitHub, fetchYarnDeps, mkYarnPackage, nixosTests, writeText, python3 }:
|
||||
|
||||
let
|
||||
version = "0.4.1";
|
||||
version = "0.4.2";
|
||||
src = fetchFromGitHub {
|
||||
owner = "PowerDNS-Admin";
|
||||
repo = "PowerDNS-Admin";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-AwqEcAPD1SF1Ma3wtH03mXlTywM0Q19hciCmTtlr3gk=";
|
||||
hash = "sha256-q9mt8wjSNFb452Xsg+qhNOWa03KJkYVGAeCWVSzZCyk=";
|
||||
};
|
||||
|
||||
python = python3;
|
||||
|
@ -29,7 +29,7 @@ let
|
|||
|
||||
offlineCache = fetchYarnDeps {
|
||||
yarnLock = "${src}/yarn.lock";
|
||||
hash = "sha256-3ebT19LrbYuypdJaoB3tClVVP0Fi8tHx3Xi6ge/DpA4=";
|
||||
hash = "sha256-rXIts+dgOuZQGyiSke1NIG7b4lFlR/Gfu3J6T3wP3aY=";
|
||||
};
|
||||
|
||||
# Copied from package.json, see also
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{ lib, stdenv, buildGoModule, fetchFromGitHub, buildPackages, installShellFiles
|
||||
, makeWrapper
|
||||
, enableCmount ? true, fuse, macfuse-stubs
|
||||
, enableCmount ? true, fuse, fuse3, macfuse-stubs
|
||||
, librclone
|
||||
}:
|
||||
|
||||
|
@ -46,12 +46,12 @@ buildGoModule rec {
|
|||
ln -s $out/bin/rclone $out/bin/rclonefs
|
||||
ln -s $out/bin/rclone $out/bin/mount.rclone
|
||||
'' + lib.optionalString (enableCmount && !stdenv.isDarwin)
|
||||
# use --suffix here to ensure we don't shadow /run/wrappers/bin/fusermount,
|
||||
# use --suffix here to ensure we don't shadow /run/wrappers/bin/fusermount3,
|
||||
# as the setuid wrapper is required as non-root on NixOS.
|
||||
''
|
||||
wrapProgram $out/bin/rclone \
|
||||
--suffix PATH : "${lib.makeBinPath [ fuse ] }" \
|
||||
--prefix LD_LIBRARY_PATH : "${fuse}/lib"
|
||||
--suffix PATH : "${lib.makeBinPath [ fuse3 ] }" \
|
||||
--prefix LD_LIBRARY_PATH : "${fuse3}/lib"
|
||||
'';
|
||||
|
||||
passthru.tests = {
|
||||
|
|
|
@ -1,123 +0,0 @@
|
|||
{ lib, stdenv, fetchurl, patchelf, coreutils, pcsclite
|
||||
, zlib, glib, gdk-pixbuf, gtk2, cairo, pango, libX11, atk, openssl
|
||||
, runtimeShell }:
|
||||
|
||||
let
|
||||
libPath = lib.makeLibraryPath [
|
||||
stdenv.cc.cc zlib glib gdk-pixbuf gtk2 cairo pango libX11 atk openssl
|
||||
];
|
||||
|
||||
src_i686 = {
|
||||
url = "http://www.matrica.com/download/distribution/moneyplex_16_install32_22424.tar.gz";
|
||||
sha256 = "0yfpc6s85r08g796dycl378kagkma865vp7j72npia3hjc4vwamr";
|
||||
};
|
||||
|
||||
src_x86_64 = {
|
||||
url = "http://www.matrica.com/download/distribution/moneyplex_16_install64_22424.tar.gz";
|
||||
sha256 = "03vxbg1yp8qyvcn6bw2a5s134nxzq9cn0vqbmlld7hh4knbsfqzw";
|
||||
};
|
||||
in
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "moneyplex";
|
||||
version = "16.0.22424";
|
||||
|
||||
src = fetchurl (if stdenv.hostPlatform.system == "i686-linux" then src_i686
|
||||
else if stdenv.hostPlatform.system == "x86_64-linux" then src_x86_64
|
||||
else throw "moneyplex requires i686-linux or x86_64-linux");
|
||||
|
||||
|
||||
phases = [ "unpackPhase" "installPhase" "postInstall" ];
|
||||
|
||||
buildInputs = [ ];
|
||||
|
||||
installPhase =
|
||||
''
|
||||
mkdir -p "$out/opt/moneyplex"
|
||||
cp -r . $out/opt/moneyplex
|
||||
|
||||
mkdir "$out/bin"
|
||||
|
||||
cat > $out/bin/moneyplex <<EOF
|
||||
#!${runtimeShell}
|
||||
|
||||
if [ -z "\$XDG_DATA_HOME" ]; then
|
||||
MDIR=\$HOME/.local/share/moneyplex
|
||||
else
|
||||
MDIR=\$XDG_DATA_HOME/moneyplex
|
||||
fi
|
||||
|
||||
if [ ! -d "\$MDIR" ]; then
|
||||
${coreutils}/bin/mkdir -p \$MDIR
|
||||
${coreutils}/bin/cp -r $out/opt/moneyplex/* \$MDIR
|
||||
${coreutils}/bin/chmod 0644 \$MDIR/*
|
||||
${coreutils}/bin/chmod 0755 \$MDIR/system
|
||||
${coreutils}/bin/chmod 0644 \$MDIR/system/*
|
||||
${coreutils}/bin/chmod 0755 \$MDIR/reports
|
||||
${coreutils}/bin/chmod 0644 \$MDIR/reports/*
|
||||
${coreutils}/bin/chmod 0755 \$MDIR/moneyplex
|
||||
${coreutils}/bin/chmod 0755 \$MDIR/prestart
|
||||
${coreutils}/bin/chmod 0755 \$MDIR/mpxalarm
|
||||
fi
|
||||
|
||||
if [ ! -d "\$MDIR/pcsc" ]; then
|
||||
${coreutils}/bin/mkdir -p \$MDIR/pcsc
|
||||
fi
|
||||
if [ ! -e "\$MDIR/pcsc/libpcsclite.so.1" ] || [ ! \`${coreutils}/bin/readlink -f "\$MDIR/pcsc/libpcsclite.so.1"\` -ef "${lib.getLib pcsclite}/lib/libpcsclite.so.1" ]; then
|
||||
${coreutils}/bin/ln -sf "${lib.getLib pcsclite}/lib/libpcsclite.so.1" "\$MDIR/pcsc/libpcsclite.so.1"
|
||||
fi
|
||||
|
||||
|
||||
if [ -e "\$MDIR/rup/rupremote.lst" ]; then
|
||||
for i in \`${coreutils}/bin/cat "\$MDIR/rup/rupremote.lst"\`; do
|
||||
${coreutils}/bin/mv "\$MDIR/rup/"\`${coreutils}/bin/basename \$i\` "\$MDIR/\$i"
|
||||
done
|
||||
rm -r "\$MDIR/rup/rupremote.lst"
|
||||
fi
|
||||
|
||||
if [ ! -e "\$MDIR/moneyplex.patched" ] || [ "\$MDIR/moneyplex" -nt "\$MDIR/moneyplex.patched" ]; then
|
||||
${coreutils}/bin/cp "\$MDIR/moneyplex" "\$MDIR/moneyplex.patched"
|
||||
${coreutils}/bin/chmod 0755 "\$MDIR/moneyplex.patched"
|
||||
fi
|
||||
if [ ! \`${patchelf}/bin/patchelf --print-interpreter \$MDIR/moneyplex.patched\` = $(cat $NIX_CC/nix-support/dynamic-linker) ] ||
|
||||
[ ! \`${patchelf}/bin/patchelf --print-rpath \$MDIR/moneyplex.patched\` = "${libPath}" ]; then
|
||||
${patchelf}/bin/patchelf --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) --set-rpath "${libPath}" "\$MDIR/moneyplex.patched"
|
||||
fi
|
||||
|
||||
exec \$MDIR/moneyplex.patched
|
||||
EOF
|
||||
|
||||
chmod +x $out/bin/moneyplex
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
mkdir -p $out/share/icons
|
||||
cp -r $out/opt/moneyplex/system/mpx256.png $out/share/icons/moneyplex.png
|
||||
|
||||
mkdir -p $out/share/applications
|
||||
cat > $out/share/applications/moneyplex.desktop <<EOF
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
Encoding=UTF-8
|
||||
Name=Moneyplex
|
||||
GenericName=Moneyplex online banking software
|
||||
Comment=Online banking software
|
||||
Icon=$out/share/icons/moneyplex.png
|
||||
Exec=$out/bin/moneyplex
|
||||
Terminal=false
|
||||
Categories=Application;
|
||||
StartupNotify=true
|
||||
EOF
|
||||
'';
|
||||
|
||||
|
||||
meta = with lib; {
|
||||
description = "Moneyplex online banking software";
|
||||
maintainers = with maintainers; [ ];
|
||||
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
|
||||
platforms = platforms.linux;
|
||||
license = licenses.unfree;
|
||||
downloadPage = "http://matrica.de/download/download.html";
|
||||
};
|
||||
|
||||
}
|
|
@ -9,13 +9,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "last";
|
||||
version = "1541";
|
||||
version = "1542";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
owner = "mcfrith";
|
||||
repo = "last";
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-gEesPeGY2RozoViZpBWNTXFJriKVb/r0Efw9XEXwXmM=";
|
||||
hash = "sha256-ZzvyyecYiBscogfN9/FnDbHg/lqb8y14n9C2KLIqhFA=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
pname = "commitizen";
|
||||
version = "3.15.0";
|
||||
version = "3.16.0";
|
||||
format = "pyproject";
|
||||
|
||||
disabled = python3.pythonOlder "3.8";
|
||||
|
@ -20,7 +20,7 @@ python3.pkgs.buildPythonApplication rec {
|
|||
owner = "commitizen-tools";
|
||||
repo = pname;
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-WXsEkJRis9L9heHj6SkTFFTuGmnDXPMKfr7rYy8vzcI=";
|
||||
hash = "sha256-vd8MtkzI7PPow0Ld0NhwbWOUWgSgecAT/DZK0ocUWCw=";
|
||||
};
|
||||
|
||||
pythonRelaxDeps = [
|
||||
|
|
|
@ -2,8 +2,7 @@
|
|||
, rustPlatform
|
||||
, fetchFromGitHub
|
||||
, pkg-config
|
||||
# libgit2-sys doesn't support libgit2 1.6 yet
|
||||
, libgit2_1_5
|
||||
, libgit2
|
||||
, oniguruma
|
||||
, zlib
|
||||
, stdenv
|
||||
|
@ -29,7 +28,7 @@ rustPlatform.buildRustPackage rec {
|
|||
];
|
||||
|
||||
buildInputs = [
|
||||
libgit2_1_5
|
||||
libgit2
|
||||
oniguruma
|
||||
zlib
|
||||
] ++ lib.optionals stdenv.isDarwin [
|
||||
|
@ -54,7 +53,10 @@ rustPlatform.buildRustPackage rec {
|
|||
git config --global user.email nixbld@example.com
|
||||
'';
|
||||
|
||||
RUSTONIG_SYSTEM_LIBONIG = true;
|
||||
env = {
|
||||
LIBGIT2_NO_VENDOR = 1;
|
||||
RUSTONIG_SYSTEM_LIBONIG = true;
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "Dive into a file's history to find root cause";
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
, rustPlatform
|
||||
, fetchFromGitHub
|
||||
, pkg-config
|
||||
, libgit2_1_5
|
||||
, libgit2
|
||||
, openssl
|
||||
, zlib
|
||||
, stdenv
|
||||
|
@ -28,13 +28,17 @@ rustPlatform.buildRustPackage {
|
|||
nativeBuildInputs = [ pkg-config ];
|
||||
|
||||
buildInputs = [
|
||||
libgit2_1_5
|
||||
libgit2
|
||||
openssl
|
||||
zlib
|
||||
] ++ lib.optionals stdenv.isDarwin [
|
||||
darwin.apple_sdk.frameworks.AppKit
|
||||
];
|
||||
|
||||
env = {
|
||||
LIBGIT2_NO_VENDOR = 1;
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "Minimalist set of hooks to aid pairing and link commits to issues";
|
||||
homepage = "https://github.com/PurpleBooth/git-mit";
|
||||
|
|
|
@ -9,9 +9,14 @@
|
|||
, SystemConfiguration
|
||||
, curl
|
||||
, openssl
|
||||
, buildPackages
|
||||
, installShellFiles
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
let
|
||||
canRunCmd = stdenv.hostPlatform.emulatorAvailable buildPackages;
|
||||
gix = "${stdenv.hostPlatform.emulator buildPackages} $out/bin/gix";
|
||||
in rustPlatform.buildRustPackage rec {
|
||||
pname = "gitoxide";
|
||||
version = "0.33.0";
|
||||
|
||||
|
@ -24,12 +29,19 @@ rustPlatform.buildRustPackage rec {
|
|||
|
||||
cargoHash = "sha256-JOl/hhyuc6vqeK6/oXXMB3fGRapBsuOTaUG+BQ9QSnk=";
|
||||
|
||||
nativeBuildInputs = [ cmake pkg-config ];
|
||||
nativeBuildInputs = [ cmake pkg-config installShellFiles ];
|
||||
|
||||
buildInputs = [ curl ] ++ (if stdenv.isDarwin
|
||||
then [ libiconv Security SystemConfiguration ]
|
||||
else [ openssl ]);
|
||||
|
||||
preFixup = lib.optionalString canRunCmd ''
|
||||
installShellCompletion --cmd gix \
|
||||
--bash <(${gix} completions --shell bash) \
|
||||
--fish <(${gix} completions --shell fish) \
|
||||
--zsh <(${gix} completions --shell zsh)
|
||||
'';
|
||||
|
||||
# Needed to get openssl-sys to use pkg-config.
|
||||
env.OPENSSL_NO_VENDOR = 1;
|
||||
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
buildLua rec {
|
||||
pname = "mpv-playlistmanager";
|
||||
version = "unstable-2023-11-28";
|
||||
version = "unstable-2024-02-26";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jonniek";
|
||||
repo = "mpv-playlistmanager";
|
||||
rev = "579490c7ae1becc129736b7632deec4f3fb90b99";
|
||||
hash = "sha256-swOtoB8UV/HPTpQRGXswAfUYsyC2Nj/QRIkGP8X1jk0=";
|
||||
rev = "1911dc053951169c98cfcfd9f44ef87d9122ca80";
|
||||
hash = "sha256-pcdOMhkivLF5B86aNuHrqj77DuYLAFGlwFwY7jxkDkE=";
|
||||
};
|
||||
passthru.updateScript = unstableGitUpdater {};
|
||||
|
||||
|
|
|
@ -64,6 +64,8 @@ let
|
|||
# https://github.com/NixOS/nix/blob/9348f9291e5d9e4ba3c4347ea1b235640f54fd79/src/libutil/util.cc#L478
|
||||
export USER=nobody
|
||||
${buildPackages.nix}/bin/nix-store --load-db < ${closureInfo {rootPaths = contentsList;}}/registration
|
||||
# Reset registration times to make the image reproducible
|
||||
${buildPackages.sqlite}/bin/sqlite3 nix/var/nix/db/db.sqlite "UPDATE ValidPaths SET registrationTime = ''${SOURCE_DATE_EPOCH}"
|
||||
|
||||
mkdir -p nix/var/nix/gcroots/docker/
|
||||
for i in ${lib.concatStringsSep " " contentsList}; do
|
||||
|
|
|
@ -904,22 +904,23 @@ rec {
|
|||
else throw "applyPatches: please supply a `name` argument because a default name can only be computed when the `src` is a path or is an attribute set with a `name` attribute."
|
||||
) + "-patched"
|
||||
, patches ? [ ]
|
||||
, prePatch ? ""
|
||||
, postPatch ? ""
|
||||
, ...
|
||||
}@args:
|
||||
if patches == [ ] && postPatch == ""
|
||||
if patches == [ ] && prePatch == "" && postPatch == ""
|
||||
then src # nothing to do, so use original src to avoid additional drv
|
||||
else stdenvNoCC.mkDerivation
|
||||
{
|
||||
inherit name src patches postPatch;
|
||||
({
|
||||
inherit name src patches prePatch postPatch;
|
||||
preferLocalBuild = true;
|
||||
allowSubstitutes = false;
|
||||
phases = "unpackPhase patchPhase installPhase";
|
||||
installPhase = "cp -R ./ $out";
|
||||
}
|
||||
# Carry `meta` information from the underlying `src` if present.
|
||||
// (optionalAttrs (src?meta) { inherit (src) meta; })
|
||||
// (removeAttrs args [ "src" "name" "patches" "postPatch" ]);
|
||||
# Carry `meta` information from the underlying `src` if present.
|
||||
// (optionalAttrs (src?meta) { inherit (src) meta; })
|
||||
// (removeAttrs args [ "src" "name" "patches" "prePatch" "postPatch" ]));
|
||||
|
||||
/* An immutable file in the store with a length of 0 bytes. */
|
||||
emptyFile = runCommand "empty-file"
|
||||
|
|
|
@ -5,13 +5,13 @@
|
|||
|
||||
stdenvNoCC.mkDerivation rec {
|
||||
pname = "bemoji";
|
||||
version = "0.3.0";
|
||||
version = "0.4.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "marty-oehme";
|
||||
repo = "bemoji";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-DhsJX5HlyTh0QLlHy1OwyaYg4vxWpBSsF71D9fxqPWE=";
|
||||
hash = "sha256-HXwho0vRI9ZrUuDMicMH4ZNExY+zJfbrne2LMQmmHww=";
|
||||
};
|
||||
|
||||
strictDeps = true;
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
let
|
||||
pname = "chrysalis";
|
||||
version = "0.13.2";
|
||||
version = "0.13.3";
|
||||
name = "${pname}-${version}-binary";
|
||||
src = fetchurl {
|
||||
url =
|
||||
"https://github.com/keyboardio/${pname}/releases/download/v${version}/${pname}-${version}-x64.AppImage";
|
||||
hash =
|
||||
"sha512-WuItdQ/hDxbZZ3zulHI74NUkuYfesV/31rA1gPakCFgX2hpPrmKzwUez2vqt4N5qrGyphrR0bcelUatGZhOn5A==";
|
||||
"sha512-F6Y87rgIclj1OA3gVX/gqqp9AvXKQlBXrbqk/26F1KHPF9NzHJgVmeszSo3Nhb6xg4CzWmzkqc8IW2H/Bg57kw==";
|
||||
};
|
||||
appimageContents = appimageTools.extract { inherit name src; };
|
||||
in appimageTools.wrapType2 rec {
|
||||
|
@ -38,11 +38,13 @@ in appimageTools.wrapType2 rec {
|
|||
install -Dm444 ${appimageContents}/usr/share/icons/hicolor/256x256/chrysalis.png -t $out/share/pixmaps
|
||||
'';
|
||||
|
||||
passthru.updateScript = ./update.sh;
|
||||
|
||||
meta = with lib; {
|
||||
description = "A graphical configurator for Kaleidoscope-powered keyboards";
|
||||
homepage = "https://github.com/keyboardio/Chrysalis";
|
||||
license = licenses.gpl3Only;
|
||||
maintainers = with maintainers; [ aw ];
|
||||
maintainers = with maintainers; [ aw eclairevoyant nshalman ];
|
||||
platforms = [ "x86_64-linux" ];
|
||||
mainProgram = "chrysalis";
|
||||
};
|
16
pkgs/by-name/ch/chrysalis/update.sh
Normal file
16
pkgs/by-name/ch/chrysalis/update.sh
Normal file
|
@ -0,0 +1,16 @@
|
|||
#! /usr/bin/env nix-shell
|
||||
#! nix-shell -i bash --pure -p curl cacert jq
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
cd "$(dirname "${BASH_SOURCE[0]}")"
|
||||
DRV_DIR="$PWD"
|
||||
|
||||
relinfo=$(curl -sL 'https://api.github.com/repos/keyboardio/chrysalis/releases' | jq 'map(select(.prerelease == false)) | max_by(.tag_name)')
|
||||
newver=$(echo "$relinfo" | jq --raw-output '.tag_name' | sed 's|^v||')
|
||||
hashurl=$(echo "$relinfo" | jq --raw-output '.assets[] | select(.name == "latest-linux.yml").browser_download_url')
|
||||
newhash=$(curl -sL "$hashurl" | grep -Po '^sha512: \K.*')
|
||||
|
||||
sed -i package.nix \
|
||||
-e "/^ version =/ s|\".*\"|\"$newver\"|" \
|
||||
-e "/sha512-/ s|\".*\"|\"sha512-$newhash\"|" \
|
|
@ -1,8 +1,7 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, curl
|
||||
, duktape
|
||||
, fetchFromGitHub
|
||||
, html-tidy
|
||||
, openssl
|
||||
, pcre
|
||||
|
@ -10,24 +9,45 @@
|
|||
, pkg-config
|
||||
, quickjs
|
||||
, readline
|
||||
, stdenv
|
||||
, unixODBC
|
||||
, which
|
||||
, withODBC ? true
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "edbrowse";
|
||||
version = "3.8.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "CMB";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
repo = "edbrowse";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-ZXxzQBAmu7kM3sjqg/rDLBXNucO8sFRFKXV8UxQVQZU=";
|
||||
};
|
||||
|
||||
sourceRoot = "${finalAttrs.src.name}/src";
|
||||
|
||||
patches = [
|
||||
# Fixes some small annoyances on src/makefile
|
||||
./0001-small-fixes.patch
|
||||
];
|
||||
|
||||
patchFlags = [
|
||||
"-p2"
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
for file in $(find ./tools/ -type f ! -name '*.c'); do
|
||||
patchShebangs $file
|
||||
done
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
which
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
curl
|
||||
duktape
|
||||
|
@ -37,27 +57,23 @@ stdenv.mkDerivation rec {
|
|||
perl
|
||||
quickjs
|
||||
readline
|
||||
] ++ lib.optionals withODBC [
|
||||
unixODBC
|
||||
];
|
||||
|
||||
patches = [
|
||||
# Fixes some small annoyances on src/makefile
|
||||
./0001-small-fixes.patch
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace src/makefile --replace\
|
||||
'-L/usr/local/lib/quickjs' '-L${quickjs}/lib/quickjs'
|
||||
for i in $(find ./tools/ -type f ! -name '*.c'); do
|
||||
patchShebangs $i
|
||||
done
|
||||
'';
|
||||
|
||||
makeFlags = [
|
||||
"-C" "src"
|
||||
"PREFIX=${placeholder "out"}"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
preBuild = ''
|
||||
buildFlagsArray+=(
|
||||
BUILD_EDBR_ODBC=${if withODBC then "on" else "off"}
|
||||
EBDEMIN=on
|
||||
QUICKJS_LDFLAGS="-L${quickjs}/lib/quickjs -lquickjs -ldl -latomic"
|
||||
)
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = "https://edbrowse.org/";
|
||||
description = "Command Line Editor Browser";
|
||||
longDescription = ''
|
||||
|
@ -71,10 +87,14 @@ stdenv.mkDerivation rec {
|
|||
send email, with no human intervention whatsoever. edbrowse can also tap
|
||||
into databases through odbc. It was primarily written by Karl Dahlke.
|
||||
'';
|
||||
license = licenses.gpl1Plus;
|
||||
maintainers = with maintainers; [ schmitthenner vrthra equirosa ];
|
||||
platforms = platforms.linux;
|
||||
license = with lib.licenses; [ gpl1Plus ];
|
||||
mainProgram = "edbrowse";
|
||||
maintainers = with lib.maintainers; [
|
||||
schmitthenner
|
||||
equirosa
|
||||
AndersonTorres
|
||||
];
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
}
|
||||
})
|
||||
# TODO: send the patch to upstream developers
|
|
@ -1,34 +1,37 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, emacs
|
||||
, espeak-ng
|
||||
, fetchFromGitHub
|
||||
, makeWrapper
|
||||
, emacs
|
||||
, stdenv
|
||||
, tcl
|
||||
, tclx
|
||||
, espeak-ng
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "emacspeak";
|
||||
version = "58.0";
|
||||
version = "59.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "tvraman";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
hash= "sha256-5pWC17nvy3ZuG0bR//LqDVpKsH5hFSFf63Q33a1BfBk=";
|
||||
repo = "emacspeak";
|
||||
rev = finalAttrs.version;
|
||||
hash = "sha256-npS/wlqI7nBde/2S/rzp79jdfYXIIhgsVs5VizxEDAQ=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
emacs
|
||||
makeWrapper
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
espeak-ng
|
||||
tcl
|
||||
tclx
|
||||
];
|
||||
|
||||
strictDeps = true;
|
||||
|
||||
preConfigure = ''
|
||||
make config
|
||||
'';
|
||||
|
@ -44,17 +47,21 @@ stdenv.mkDerivation rec {
|
|||
cp -a . "$d"
|
||||
find "$d" \( -type d -or \( -type f -executable \) \) -execdir chmod 755 {} +
|
||||
find "$d" -type f -not -executable -execdir chmod 644 {} +
|
||||
makeWrapper ${emacs}/bin/emacs $out/bin/emacspeak \
|
||||
makeWrapper ${lib.getExe emacs} $out/bin/emacspeak \
|
||||
--set DTK_PROGRAM "${placeholder "out"}/share/emacs/site-lisp/emacspeak/servers/espeak" \
|
||||
--set TCLLIBPATH "${tclx}/lib" \
|
||||
--add-flags '-l "${placeholder "out"}/share/emacs/site-lisp/emacspeak/lisp/emacspeak-setup.elc"'
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
homepage = "https://github.com/tvraman/emacspeak/";
|
||||
description = "Emacs extension that provides spoken output";
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = [ maintainers.AndersonTorres ];
|
||||
platforms = platforms.linux;
|
||||
changelog = "https://github.com/tvraman/emacspeak/blob/${finalAttrs.src.rev}/etc/NEWS";
|
||||
license = with lib.licenses; [ gpl2Plus ];
|
||||
mainProgram = "emacspeak";
|
||||
maintainers = with lib.maintainers; [ AndersonTorres ];
|
||||
platforms = lib.platforms.linux;
|
||||
# Emacspeak requires a minimal Emacs version; let's use the broken flag
|
||||
broken = lib.versionOlder (lib.getVersion emacs) "29.1";
|
||||
};
|
||||
}
|
||||
})
|
|
@ -17,16 +17,16 @@
|
|||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "eza";
|
||||
version = "0.18.4";
|
||||
version = "0.18.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "eza-community";
|
||||
repo = "eza";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-G8Ow38vNSMMYINYhGp33rls5AV4EFZDEJhkNn5H64LA=";
|
||||
hash = "sha256-L0FF9pN4WGCFpg2MPAvrKC/DwyWK6BWGxwYEpQBl9Rw=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-A/EIkWSdMqSdrnjMTfIdg0scSBK/xsI5PPsOn+cRogA=";
|
||||
cargoHash = "sha256-bZ2NzFpB9vpT0mB2LsETdmtzYAwNrpzBRoqmm4+13+0=";
|
||||
|
||||
nativeBuildInputs = [ cmake pkg-config installShellFiles pandoc ];
|
||||
buildInputs = [ zlib ]
|
||||
|
|
|
@ -1,21 +1,25 @@
|
|||
{ lib
|
||||
, python3Packages
|
||||
, fetchFromGitHub
|
||||
, python3
|
||||
}:
|
||||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
pname = "ffsubsync";
|
||||
version = "0.4.25";
|
||||
format = "pyproject";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "smacke";
|
||||
repo = "ffsubsync";
|
||||
rev = version;
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-ZdKZeKfAUe/FXLOur9Btb5RgXewmy3EHunQphqlxpIc=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = with python3Packages; [
|
||||
nativeBuildInputs = with python3.pkgs; [
|
||||
setuptools
|
||||
];
|
||||
|
||||
propagatedBuildInputs = with python3.pkgs; [
|
||||
auditok
|
||||
charset-normalizer
|
||||
faust-cchardet
|
||||
|
@ -32,9 +36,13 @@ python3Packages.buildPythonApplication rec {
|
|||
webrtcvad
|
||||
];
|
||||
|
||||
nativeCheckInputs = with python3Packages; [ pytestCheckHook ];
|
||||
nativeCheckInputs = with python3.pkgs; [
|
||||
pytestCheckHook
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "ffsubsync" ];
|
||||
pythonImportsCheck = [
|
||||
"ffsubsync"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/smacke/ffsubsync";
|
||||
|
|
|
@ -6,13 +6,13 @@
|
|||
}:
|
||||
buildGoModule rec {
|
||||
pname = "flottbot";
|
||||
version = "0.13.0";
|
||||
version = "0.13.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "target";
|
||||
repo = "flottbot";
|
||||
rev = version;
|
||||
hash = "sha256-ldWE5QcLHyIqap5Qe6OTTIJZ1sshI+CVoJoRUxWHfxM=";
|
||||
hash = "sha256-Fv4ZBCQA7gwt11ULIiyFwn+QgoMNgu+1TM9yy2Jz7og=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
@ -24,7 +24,7 @@ buildGoModule rec {
|
|||
})
|
||||
];
|
||||
|
||||
vendorHash = "sha256-XRcTp3ZnoPupzI1kjoM4oF5+VlNJFV0Bu+WAwfRWl7g=";
|
||||
vendorHash = "sha256-wOUQKFd2Xm/2rvLw8kw8Ejbcq/JUvup/BzZs0fllBYY=";
|
||||
|
||||
subPackages = [ "cmd/flottbot" ];
|
||||
|
||||
|
|
31
pkgs/by-name/fm/fm-go/package.nix
Normal file
31
pkgs/by-name/fm/fm-go/package.nix
Normal file
|
@ -0,0 +1,31 @@
|
|||
{ lib
|
||||
, buildGoModule
|
||||
, fetchFromGitHub
|
||||
, stdenv
|
||||
}:
|
||||
|
||||
let
|
||||
finalAttrs = {
|
||||
pname = "fm";
|
||||
version = "0.16.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mistakenelf";
|
||||
repo = "fm";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-wiACaszbkO9jBYmIfeQpcx984RY41Emyu911nkJxUFY=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-AfRGoKiVZGVIbsDj5pV1zCkp2FpcfWKS0t+cTU51RRc=";
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/mistakenelf/fm";
|
||||
description = "A terminal based file manager";
|
||||
changelog = "https://github.com/mistakenelf/fm/releases/tag/${finalAttrs.src.rev}";
|
||||
license = with lib.licenses; [ mit ];
|
||||
mainProgram = "fm";
|
||||
maintainers = with lib.maintainers; [ AndersonTorres ];
|
||||
};
|
||||
};
|
||||
in
|
||||
buildGoModule finalAttrs
|
|
@ -120,7 +120,7 @@ let
|
|||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "fwupd";
|
||||
version = "1.9.13";
|
||||
version = "1.9.14";
|
||||
|
||||
# libfwupd goes to lib
|
||||
# daemon, plug-ins and libfwupdplugin go to out
|
||||
|
@ -131,7 +131,7 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
owner = "fwupd";
|
||||
repo = "fwupd";
|
||||
rev = finalAttrs.version;
|
||||
hash = "sha256-h2e9MFTb777xbNRlzKWXc5GUdu/BHSkJTaogEE5byjo=";
|
||||
hash = "sha256-pG4pRksHw8p8rz99UnLURP+ROE+P+ySt4IlfmyRc1CQ=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
|
29
pkgs/by-name/go/go-errorlint/package.nix
Normal file
29
pkgs/by-name/go/go-errorlint/package.nix
Normal file
|
@ -0,0 +1,29 @@
|
|||
{ lib
|
||||
, buildGoModule
|
||||
, fetchFromGitHub
|
||||
}:
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "go-errorlint";
|
||||
version = "1.4.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "polyfloyd";
|
||||
repo = "go-errorlint";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-BU+3sLUGBCFA1JYFxTEyIan+iWB7Y7SaMFVomfNObMg=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-xn7Ou4l8vbPD44rsN0mdFjTzOvkfv6QN6i5XR1XPxTE=";
|
||||
|
||||
ldflags = [ "-s" "-w" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "A source code linter that can be used to find code that will cause problems with Go's error wrapping scheme";
|
||||
homepage = "https://github.com/polyfloyd/go-errorlint";
|
||||
changelog = "https://github.com/polyfloyd/go-errorlint/blob/${src.rev}/CHANGELOG.md";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ meain ];
|
||||
mainProgram = "go-errorlint";
|
||||
};
|
||||
}
|
|
@ -1,29 +1,29 @@
|
|||
{ lib
|
||||
, stdenvNoCC
|
||||
, fetchFromGitHub
|
||||
, bash
|
||||
, coreutils
|
||||
, fetchFromGitHub
|
||||
, findutils
|
||||
, gettext
|
||||
, gnused
|
||||
, installShellFiles
|
||||
, less
|
||||
, ncurses
|
||||
, nixos-option
|
||||
, stdenvNoCC
|
||||
, unixtools
|
||||
, installShellFiles
|
||||
, unstableGitUpdater
|
||||
}:
|
||||
|
||||
stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
pname = "home-manager";
|
||||
version = "unstable-2024-02-20";
|
||||
version = "0-unstable-2024-02-24";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
name = "home-manager-source";
|
||||
owner = "nix-community";
|
||||
repo = "home-manager";
|
||||
rev = "517601b37c6d495274454f63c5a483c8e3ca6be1";
|
||||
hash = "sha256-tgZ38NummEdnXvxj4D0StHBzXgceAw8CptytHljH790=";
|
||||
rev = "4ee704cb13a5a7645436f400b9acc89a67b9c08a";
|
||||
hash = "sha256-MSbxtF3RThI8ANs/G4o1zIqF5/XlShHvwjl9Ws0QAbI=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -40,6 +40,21 @@ stdenvNoCC.mkDerivation (finalAttrs: {
|
|||
install -D -m755 home-manager/home-manager $out/bin/home-manager
|
||||
install -D -m755 lib/bash/home-manager.sh $out/share/bash/home-manager.sh
|
||||
|
||||
installShellCompletion --bash --name home-manager.bash home-manager/completion.bash
|
||||
installShellCompletion --fish --name home-manager.fish home-manager/completion.fish
|
||||
installShellCompletion --zsh --name _home-manager home-manager/completion.zsh
|
||||
|
||||
for pofile in home-manager/po/*.po; do
|
||||
lang="''${pofile##*/}"
|
||||
lang="''${lang%%.*}"
|
||||
mkdir -p "$out/share/locale/$lang/LC_MESSAGES"
|
||||
msgfmt -o "$out/share/locale/$lang/LC_MESSAGES/home-manager.mo" "$pofile"
|
||||
done
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
postFixup = ''
|
||||
substituteInPlace $out/bin/home-manager \
|
||||
--subst-var-by bash "${bash}" \
|
||||
--subst-var-by DEP_PATH "${
|
||||
|
@ -57,19 +72,6 @@ stdenvNoCC.mkDerivation (finalAttrs: {
|
|||
--subst-var-by HOME_MANAGER_LIB '${placeholder "out"}/share/bash/home-manager.sh' \
|
||||
--subst-var-by HOME_MANAGER_PATH "${finalAttrs.src}" \
|
||||
--subst-var-by OUT '${placeholder "out"}'
|
||||
|
||||
installShellCompletion --bash --name home-manager.bash home-manager/completion.bash
|
||||
installShellCompletion --fish --name home-manager.fish home-manager/completion.fish
|
||||
installShellCompletion --zsh --name _home-manager home-manager/completion.zsh
|
||||
|
||||
for pofile in home-manager/po/*.po; do
|
||||
lang="''${pofile##*/}"
|
||||
lang="''${lang%%.*}"
|
||||
mkdir -p "$out/share/locale/$lang/LC_MESSAGES"
|
||||
msgfmt -o "$out/share/locale/$lang/LC_MESSAGES/home-manager.mo" "$pofile"
|
||||
done
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
passthru.updateScript = unstableGitUpdater {
|
||||
|
@ -86,8 +88,8 @@ stdenvNoCC.mkDerivation (finalAttrs: {
|
|||
(non global) packages and dotfiles.
|
||||
'';
|
||||
license = lib.licenses.mit;
|
||||
mainProgram = "home-manager";
|
||||
maintainers = with lib.maintainers; [ AndersonTorres ];
|
||||
platforms = lib.platforms.unix;
|
||||
mainProgram = "home-manager";
|
||||
};
|
||||
})
|
|
@ -15,12 +15,16 @@
|
|||
, openclSupport ? false
|
||||
, clblast
|
||||
|
||||
, blasSupport ? !rocmSupport && !cudaSupport
|
||||
, openblas
|
||||
, blasSupport ? builtins.all (x: !x) [ cudaSupport metalSupport openclSupport rocmSupport vulkanSupport ]
|
||||
, pkg-config
|
||||
, metalSupport ? stdenv.isDarwin && stdenv.isAarch64 && !openclSupport
|
||||
, patchelf
|
||||
, static ? true # if false will build the shared objects as well
|
||||
, vulkanSupport ? false
|
||||
, mpiSupport ? false # Increases the runtime closure by ~700M
|
||||
, vulkan-headers
|
||||
, vulkan-loader
|
||||
, ninja
|
||||
, git
|
||||
, mpi
|
||||
}:
|
||||
|
||||
let
|
||||
|
@ -28,42 +32,18 @@ let
|
|||
# otherwise we get libstdc++ errors downstream.
|
||||
# cuda imposes an upper bound on the gcc version, e.g. the latest gcc compatible with cudaPackages_11 is gcc11
|
||||
effectiveStdenv = if cudaSupport then cudaPackages.backendStdenv else stdenv;
|
||||
in
|
||||
effectiveStdenv.mkDerivation (finalAttrs: {
|
||||
pname = "llama-cpp";
|
||||
version = "2249";
|
||||
inherit (lib) cmakeBool cmakeFeature optionals;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ggerganov";
|
||||
repo = "llama.cpp";
|
||||
rev = "refs/tags/b${finalAttrs.version}";
|
||||
hash = "sha256-ikJUToUbA60u/8azR6dPmPyodq/nQe5L2aotlYBclaE=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace ./ggml-metal.m \
|
||||
--replace '[bundle pathForResource:@"ggml-metal" ofType:@"metal"];' "@\"$out/bin/ggml-metal.metal\";"
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [ cmake ] ++ lib.optionals blasSupport [ pkg-config ] ++ lib.optionals cudaSupport [
|
||||
cudaPackages.cuda_nvcc
|
||||
|
||||
# TODO: Replace with autoAddDriverRunpath
|
||||
# once https://github.com/NixOS/nixpkgs/pull/275241 has been merged
|
||||
cudaPackages.autoAddOpenGLRunpathHook
|
||||
];
|
||||
|
||||
buildInputs = lib.optionals effectiveStdenv.isDarwin
|
||||
(with darwin.apple_sdk.frameworks; [
|
||||
darwinBuildInputs =
|
||||
with darwin.apple_sdk.frameworks;
|
||||
[
|
||||
Accelerate
|
||||
CoreGraphics
|
||||
CoreVideo
|
||||
Foundation
|
||||
])
|
||||
++ lib.optionals metalSupport (with darwin.apple_sdk.frameworks; [
|
||||
MetalKit
|
||||
])
|
||||
++ lib.optionals cudaSupport (with cudaPackages; [
|
||||
CoreGraphics
|
||||
]
|
||||
++ optionals metalSupport [ MetalKit ];
|
||||
|
||||
cudaBuildInputs = with cudaPackages; [
|
||||
cuda_cccl.dev # <nv/target>
|
||||
|
||||
# A temporary hack for reducing the closure size, remove once cudaPackages
|
||||
|
@ -74,65 +54,93 @@ effectiveStdenv.mkDerivation (finalAttrs: {
|
|||
libcublas.dev
|
||||
libcublas.lib
|
||||
libcublas.static
|
||||
]) ++ lib.optionals rocmSupport [
|
||||
rocmPackages.clr
|
||||
rocmPackages.hipblas
|
||||
rocmPackages.rocblas
|
||||
] ++ lib.optionals openclSupport [
|
||||
clblast
|
||||
] ++ lib.optionals blasSupport [
|
||||
openblas
|
||||
];
|
||||
|
||||
rocmBuildInputs = with rocmPackages; [
|
||||
clr
|
||||
hipblas
|
||||
rocblas
|
||||
];
|
||||
|
||||
vulkanBuildInputs = [
|
||||
vulkan-headers
|
||||
vulkan-loader
|
||||
];
|
||||
in
|
||||
effectiveStdenv.mkDerivation (finalAttrs: {
|
||||
pname = "llama-cpp";
|
||||
version = "2294";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ggerganov";
|
||||
repo = "llama.cpp";
|
||||
rev = "refs/tags/b${finalAttrs.version}";
|
||||
hash = "sha256-uZi4Bj03PgfFV+jS5M+A1sMCWC/GMY5IyyrlR1b4Sh4=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace ./ggml-metal.m \
|
||||
--replace '[bundle pathForResource:@"ggml-metal" ofType:@"metal"];' "@\"$out/bin/ggml-metal.metal\";"
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [ cmake ninja pkg-config git ]
|
||||
++ optionals cudaSupport [
|
||||
cudaPackages.cuda_nvcc
|
||||
|
||||
# TODO: Replace with autoAddDriverRunpath
|
||||
# once https://github.com/NixOS/nixpkgs/pull/275241 has been merged
|
||||
cudaPackages.autoAddOpenGLRunpathHook
|
||||
];
|
||||
|
||||
buildInputs = optionals effectiveStdenv.isDarwin darwinBuildInputs
|
||||
++ optionals cudaSupport cudaBuildInputs
|
||||
++ optionals mpiSupport mpi
|
||||
++ optionals openclSupport [ clblast ]
|
||||
++ optionals rocmSupport rocmBuildInputs
|
||||
++ optionals vulkanSupport vulkanBuildInputs;
|
||||
|
||||
cmakeFlags = [
|
||||
"-DLLAMA_NATIVE=OFF"
|
||||
"-DLLAMA_BUILD_SERVER=ON"
|
||||
# -march=native is non-deterministic; override with platform-specific flags if needed
|
||||
(cmakeBool "LLAMA_NATIVE" false)
|
||||
(cmakeBool "BUILD_SHARED_SERVER" true)
|
||||
(cmakeBool "BUILD_SHARED_LIBS" true)
|
||||
(cmakeBool "BUILD_SHARED_LIBS" true)
|
||||
(cmakeBool "LLAMA_BLAS" blasSupport)
|
||||
(cmakeBool "LLAMA_CLBLAST" openclSupport)
|
||||
(cmakeBool "LLAMA_CUBLAS" cudaSupport)
|
||||
(cmakeBool "LLAMA_HIPBLAS" rocmSupport)
|
||||
(cmakeBool "LLAMA_METAL" metalSupport)
|
||||
(cmakeBool "LLAMA_MPI" mpiSupport)
|
||||
(cmakeBool "LLAMA_VULKAN" vulkanSupport)
|
||||
]
|
||||
++ lib.optionals metalSupport [
|
||||
"-DCMAKE_C_FLAGS=-D__ARM_FEATURE_DOTPROD=1"
|
||||
"-DLLAMA_METAL=ON"
|
||||
]
|
||||
++ lib.optionals cudaSupport [
|
||||
"-DLLAMA_CUBLAS=ON"
|
||||
]
|
||||
++ lib.optionals rocmSupport [
|
||||
"-DLLAMA_HIPBLAS=1"
|
||||
"-DCMAKE_C_COMPILER=hipcc"
|
||||
"-DCMAKE_CXX_COMPILER=hipcc"
|
||||
"-DCMAKE_POSITION_INDEPENDENT_CODE=ON"
|
||||
]
|
||||
++ lib.optionals openclSupport [
|
||||
"-DLLAMA_CLBLAST=ON"
|
||||
]
|
||||
++ lib.optionals blasSupport [
|
||||
"-DLLAMA_BLAS=ON"
|
||||
"-DLLAMA_BLAS_VENDOR=OpenBLAS"
|
||||
]
|
||||
++ lib.optionals (!static) [
|
||||
(lib.cmakeBool "BUILD_SHARED_LIBS" true)
|
||||
];
|
||||
++ optionals cudaSupport [
|
||||
(
|
||||
with cudaPackages.flags;
|
||||
cmakeFeature "CMAKE_CUDA_ARCHITECTURES" (
|
||||
builtins.concatStringsSep ";" (map dropDot cudaCapabilities)
|
||||
)
|
||||
)
|
||||
]
|
||||
++ optionals rocmSupport [
|
||||
(cmakeFeature "CMAKE_C_COMPILER" "hipcc")
|
||||
(cmakeFeature "CMAKE_CXX_COMPILER" "hipcc")
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
# Build all targets supported by rocBLAS. When updating search for TARGET_LIST_ROCM
|
||||
# in https://github.com/ROCmSoftwarePlatform/rocBLAS/blob/develop/CMakeLists.txt
|
||||
# and select the line that matches the current nixpkgs version of rocBLAS.
|
||||
# Should likely use `rocmPackages.clr.gpuTargets`.
|
||||
"-DAMDGPU_TARGETS=gfx803;gfx900;gfx906:xnack-;gfx908:xnack-;gfx90a:xnack+;gfx90a:xnack-;gfx940;gfx941;gfx942;gfx1010;gfx1012;gfx1030;gfx1100;gfx1101;gfx1102"
|
||||
]
|
||||
++ optionals metalSupport [ (cmakeFeature "CMAKE_C_FLAGS" "-D__ARM_FEATURE_DOTPROD=1") ]
|
||||
++ optionals blasSupport [ (cmakeFeature "LLAMA_BLAS_VENDOR" "OpenBLAS") ];
|
||||
|
||||
mkdir -p $out/bin
|
||||
${lib.optionalString (!static) ''
|
||||
mkdir $out/lib
|
||||
cp libggml_shared.so $out/lib
|
||||
cp libllama.so $out/lib
|
||||
''}
|
||||
|
||||
for f in bin/*; do
|
||||
test -x "$f" || continue
|
||||
${lib.optionalString (!static) ''
|
||||
${patchelf}/bin/patchelf "$f" --set-rpath "$out/lib"
|
||||
''}
|
||||
cp "$f" $out/bin/llama-cpp-"$(basename "$f")"
|
||||
done
|
||||
|
||||
${lib.optionalString metalSupport "cp ./bin/ggml-metal.metal $out/bin/ggml-metal.metal"}
|
||||
|
||||
runHook postInstall
|
||||
# upstream plans on adding targets at the cmakelevel, remove those
|
||||
# additional steps after that
|
||||
postInstall = ''
|
||||
mv $out/bin/main $out/bin/llama
|
||||
mv $out/bin/server $out/bin/llama-server
|
||||
mkdir -p $out/include
|
||||
cp $src/llama.h $out/include/
|
||||
'';
|
||||
|
||||
passthru.updateScript = nix-update-script {
|
||||
|
@ -144,9 +152,10 @@ effectiveStdenv.mkDerivation (finalAttrs: {
|
|||
description = "Port of Facebook's LLaMA model in C/C++";
|
||||
homepage = "https://github.com/ggerganov/llama.cpp/";
|
||||
license = licenses.mit;
|
||||
mainProgram = "llama-cpp-main";
|
||||
maintainers = with maintainers; [ dit7ya elohmeier ];
|
||||
broken = (effectiveStdenv.isDarwin && effectiveStdenv.isx86_64) || lib.count lib.id [openclSupport blasSupport rocmSupport cudaSupport] == 0;
|
||||
mainProgram = "llama";
|
||||
maintainers = with maintainers; [ dit7ya elohmeier philiptaron ];
|
||||
platforms = platforms.unix;
|
||||
badPlatforms = optionals (cudaSupport || openclSupport) lib.platforms.darwin;
|
||||
broken = (metalSupport && !effectiveStdenv.isDarwin);
|
||||
};
|
||||
})
|
||||
|
|
46
pkgs/by-name/mf/mfcj880dwcupswrapper/package.nix
Normal file
46
pkgs/by-name/mf/mfcj880dwcupswrapper/package.nix
Normal file
|
@ -0,0 +1,46 @@
|
|||
{ lib, stdenv, fetchurl, mfcj880dwlpr, makeWrapper, bash }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "mfcj880dw-cupswrapper";
|
||||
version = "1.0.0-0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://download.brother.com/welcome/dlf102044/mfcj880dw_cupswrapper_GPL_source_${version}.tar.gz";
|
||||
sha256 = "bf291fe31d64afeaefb5b0e606f4baf80c41d80009e34b32b77d56f759e9cf94";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
buildInputs = [
|
||||
bash # shebang
|
||||
];
|
||||
|
||||
makeFlags = [ "-C" "brcupsconfig" "all" ];
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
TARGETFOLDER=$out/opt/brother/Printers/mfcj880dw/cupswrapper
|
||||
mkdir -p $TARGETFOLDER
|
||||
cp PPD/brother_mfcj880dw_printer_en.ppd $TARGETFOLDER
|
||||
cp brcupsconfig/brcupsconfpt1 $TARGETFOLDER
|
||||
cp cupswrapper/cupswrappermfcj880dw $TARGETFOLDER
|
||||
sed -i -e '26,306d' $TARGETFOLDER/cupswrappermfcj880dw
|
||||
substituteInPlace $TARGETFOLDER/cupswrappermfcj880dw \
|
||||
--replace-fail "\$ppd_file_name" "$TARGETFOLDER/brother_mfcj880dw_printer_en.ppd"
|
||||
|
||||
CPUSFILTERFOLDER=$out/lib/cups/filter
|
||||
mkdir -p $TARGETFOLDER $CPUSFILTERFOLDER
|
||||
ln -s ${mfcj880dwlpr}/lib/cups/filter/brother_lpdwrapper_mfcj880dw $out/lib/cups/filter/brother_lpdwrapper_mfcj880dw
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "http://www.brother.com/";
|
||||
description = "Brother MFC-J880DW CUPS wrapper driver";
|
||||
license = with licenses; gpl2;
|
||||
platforms = with platforms; linux;
|
||||
downloadPage = "https://support.brother.com/g/b/downloadlist.aspx?c=us&lang=en&prod=mfcj880dw_us_eu_as&os=128";
|
||||
maintainers = with maintainers; [ _6543 ];
|
||||
};
|
||||
}
|
94
pkgs/by-name/mf/mfcj880dwlpr/package.nix
Normal file
94
pkgs/by-name/mf/mfcj880dwlpr/package.nix
Normal file
|
@ -0,0 +1,94 @@
|
|||
{ lib, stdenv, fetchurl, pkgsi686Linux, dpkg, makeWrapper, coreutils, gnused, gawk, file, cups, util-linux, xxd, runtimeShell
|
||||
, ghostscript, a2ps, bash }:
|
||||
|
||||
# Why:
|
||||
# The executable "brprintconf_mfcj880dw" binary is looking for "/opt/brother/Printers/%s/inf/br%sfunc" and "/opt/brother/Printers/%s/inf/br%src".
|
||||
# Whereby, %s is printf(3) string substitution for stdin's arg0 (the command's own filename) from the 10th char forwards, as a runtime dependency.
|
||||
# e.g. Say the filename is "0123456789ABCDE", the runtime will be looking for /opt/brother/Printers/ABCDE/inf/brABCDEfunc.
|
||||
# Presumably, the binary was designed to be deployed under the filename "printconf_mfcj880dw", whereby it will search for "/opt/brother/Printers/mfcj880dw/inf/brmfcj880dwfunc".
|
||||
# For NixOS, we want to change the string to the store path of brmfcj880dwfunc and brmfcj880dwrc but we're faced with two complications:
|
||||
# 1. Too little room to specify the nix store path. We can't even take advantage of %s by renaming the file to the store path hash since the variable is too short and can't contain the whole hash.
|
||||
# 2. The binary needs the directory it's running from to be r/w.
|
||||
# What:
|
||||
# As such, we strip the path and substitution altogether, leaving only "brmfcj880dwfunc" and "brmfcj880dwrc", while filling the leftovers with nulls.
|
||||
# Fully null terminating the cstrings is necessary to keep the array the same size and preventing overflows.
|
||||
# We then use a shell script to link and execute the binary, func and rc files in a temporary directory.
|
||||
# How:
|
||||
# In the package, we dump the raw binary as a string of search-able hex values using hexdump. We execute the substitution with sed. We then convert the hex values back to binary form using xxd.
|
||||
# We also write a shell script that invoked "mktemp -d" to produce a r/w temporary directory and link what we need in the temporary directory.
|
||||
# Result:
|
||||
# The user can run brprintconf_mfcj880dw in the shell.
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "mfcj880dwlpr";
|
||||
version = "1.0.0-0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://download.brother.com/welcome/dlf102038/mfcj880dwlpr-${version}.i386.deb";
|
||||
sha256 = "1680b301f660a407fe0b69f5de59c7473d2d66dc472a1589b0cd9f51736bfea7";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
buildInputs = [ cups ghostscript dpkg a2ps ];
|
||||
|
||||
dontUnpack = true;
|
||||
|
||||
brprintconf_mfcj880dw_script = ''
|
||||
#!${runtimeShell}
|
||||
cd $(mktemp -d)
|
||||
ln -s @out@/usr/bin/brprintconf_mfcj880dw_patched brprintconf_mfcj880dw_patched
|
||||
ln -s @out@/opt/brother/Printers/mfcj880dw/inf/brmfcj880dwfunc brmfcj880dwfunc
|
||||
ln -s @out@/opt/brother/Printers/mfcj880dw/inf/brmfcj880dwrc brmfcj880dwrc
|
||||
./brprintconf_mfcj880dw_patched "$@"
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
dpkg-deb -x $src $out
|
||||
substituteInPlace $out/opt/brother/Printers/mfcj880dw/lpd/filtermfcj880dw \
|
||||
--replace-fail /opt "$out/opt"
|
||||
substituteInPlace $out/opt/brother/Printers/mfcj880dw/lpd/psconvertij2 \
|
||||
--replace-fail "GHOST_SCRIPT=`which gs`" "GHOST_SCRIPT=${ghostscript}/bin/gs"
|
||||
substituteInPlace $out/opt/brother/Printers/mfcj880dw/inf/setupPrintcapij \
|
||||
--replace-fail "/opt/brother/Printers" "$out/opt/brother/Printers" \
|
||||
--replace-fail "printcap.local" "printcap"
|
||||
|
||||
patchelf --set-interpreter ${pkgsi686Linux.stdenv.cc.libc.out}/lib/ld-linux.so.2 \
|
||||
--set-rpath $out/opt/brother/Printers/mfcj880dw/inf:$out/opt/brother/Printers/mfcj880dw/lpd \
|
||||
$out/opt/brother/Printers/mfcj880dw/lpd/brmfcj880dwfilter
|
||||
patchelf --set-interpreter ${pkgsi686Linux.stdenv.cc.libc.out}/lib/ld-linux.so.2 $out/usr/bin/brprintconf_mfcj880dw
|
||||
|
||||
#stripping the hardcoded path.
|
||||
# /opt/brother/Printers/%s/inf/br%sfunc -> brmfcj880dwfunc
|
||||
# /opt/brother/Printers/%s/inf/br%src -> brmfcj880dwrc
|
||||
${util-linux}/bin/hexdump -ve '1/1 "%.2X"' $out/usr/bin/brprintconf_mfcj880dw | \
|
||||
sed 's.2F6F70742F62726F746865722F5072696E746572732F25732F696E662F6272257366756E63.62726d66636a383830647766756e6300000000000000000000000000000000000000000000.' | \
|
||||
sed 's.2F6F70742F62726F746865722F5072696E746572732F25732F696E662F627225737263.62726d66636a3838306477726300000000000000000000000000000000000000000000.' | \
|
||||
${xxd}/bin/xxd -r -p > $out/usr/bin/brprintconf_mfcj880dw_patched
|
||||
chmod +x $out/usr/bin/brprintconf_mfcj880dw_patched
|
||||
#executing from current dir. segfaults if it's not r\w.
|
||||
mkdir -p $out/bin
|
||||
echo -n "$brprintconf_mfcj880dw_script" > $out/bin/brprintconf_mfcj880dw
|
||||
chmod +x $out/bin/brprintconf_mfcj880dw
|
||||
substituteInPlace $out/bin/brprintconf_mfcj880dw --replace-fail @out@ $out
|
||||
|
||||
# NOTE: opt/brother/Printers/mfcj880dw/lpd/brmfcj880dwfilter also has cardcoded paths, but we can not simply replace them
|
||||
|
||||
mkdir -p $out/lib/cups/filter/
|
||||
ln -s $out/opt/brother/Printers/mfcj880dw/lpd/filtermfcj880dw $out/lib/cups/filter/brother_lpdwrapper_mfcj880dw
|
||||
|
||||
wrapProgram $out/opt/brother/Printers/mfcj880dw/lpd/psconvertij2 \
|
||||
--prefix PATH ":" ${ lib.makeBinPath [ coreutils gnused gawk ] }
|
||||
wrapProgram $out/opt/brother/Printers/mfcj880dw/lpd/filtermfcj880dw \
|
||||
--prefix PATH ":" ${ lib.makeBinPath [ coreutils gnused file ghostscript a2ps ] }
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Brother MFC-J880DW LPR driver";
|
||||
downloadPage = "https://support.brother.com/g/b/downloadlist.aspx?c=us&lang=en&prod=mfcj880dw_us_eu_as&os=128";
|
||||
homepage = "http://www.brother.com/";
|
||||
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
|
||||
license = with licenses; unfree;
|
||||
maintainers = with maintainers; [ _6543 ];
|
||||
platforms = with platforms; linux;
|
||||
};
|
||||
}
|
590
pkgs/by-name/ni/niri/Cargo.lock
generated
590
pkgs/by-name/ni/niri/Cargo.lock
generated
File diff suppressed because it is too large
Load Diff
|
@ -20,19 +20,19 @@
|
|||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "niri";
|
||||
version = "0.1.1";
|
||||
version = "0.1.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "YaLTeR";
|
||||
repo = "niri";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-+Y7dnq8gwVxefwvRnamqGneCTI4uUXgAo0SEffIvNB0=";
|
||||
hash = "sha256-vO6ak5rT6ntBC20vYC36zcEcHv7Cki9y8A+c7ThfsUg=";
|
||||
};
|
||||
|
||||
cargoLock = {
|
||||
lockFile = ./Cargo.lock;
|
||||
outputHashes = {
|
||||
"smithay-0.3.0" = "sha256-TWq4L7Pe4/s0+hGjvTixoOFQ3P6tJXzV4/VgKcJ0tWU=";
|
||||
"smithay-0.3.0" = "sha256-ZEWamojE5ZRlhPVv/DK2Mj+QIz7zudw9+AxFD7Onr9Q=";
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -64,6 +64,22 @@ rustPlatform.buildRustPackage rec {
|
|||
|
||||
LIBCLANG_PATH = "${libclang.lib}/lib";
|
||||
|
||||
passthru.providedSessions = ["niri"];
|
||||
|
||||
postInstall = ''
|
||||
mkdir -p $out/share/{systemd/user,wayland-sessions,xdg-desktop-portal}
|
||||
|
||||
cp ./resources/niri-session $out/bin/niri-session
|
||||
cp ./resources/niri.service $out/share/systemd/user/niri.service
|
||||
cp ./resources/niri-shutdown.target $out/share/systemd/user/niri-shutdown.target
|
||||
cp ./resources/niri.desktop $out/share/wayland-sessions/niri.desktop
|
||||
cp ./resources/niri-portals.conf $out/share/xdg-desktop-portal/niri-portals.conf
|
||||
'';
|
||||
|
||||
postFixup = ''
|
||||
sed -i "s#/usr#$out#" $out/share/systemd/user/niri.service
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "A scrollable-tiling Wayland compositor";
|
||||
homepage = "https://github.com/YaLTeR/niri";
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
fetchurl,
|
||||
jdk21,
|
||||
stdenv,
|
||||
undmg
|
||||
_7zz
|
||||
}:
|
||||
let
|
||||
pname = "nosql-workbench";
|
||||
|
@ -39,30 +39,19 @@ if stdenv.isDarwin then stdenv.mkDerivation {
|
|||
|
||||
sourceRoot = ".";
|
||||
|
||||
nativeBuildInputs = [ _7zz ];
|
||||
|
||||
buildInputs = [ jdk21 ];
|
||||
|
||||
# DMG file is using APFS which is unsupported by "undmg".
|
||||
# Fix found: https://discourse.nixos.org/t/help-with-error-only-hfs-file-systems-are-supported-on-ventura/25873/8
|
||||
# Instead, use "7zz" to extract the contents.
|
||||
# "undmg" issue: https://github.com/matthewbauer/undmg/issues/4
|
||||
unpackCmd = ''
|
||||
echo "Creating temp directory"
|
||||
mnt=$(TMPDIR=/tmp mktemp -d -t nix-XXXXXXXXXX)
|
||||
runHook preUnpack
|
||||
|
||||
function finish {
|
||||
echo "Ejecting temp directory"
|
||||
/usr/bin/hdiutil detach $mnt -force
|
||||
rm -rf $mnt
|
||||
}
|
||||
# Detach volume when receiving SIG "0"
|
||||
trap finish EXIT
|
||||
7zz x $curSrc
|
||||
|
||||
# Mount DMG file
|
||||
echo "Mounting DMG file into \"$mnt\""
|
||||
/usr/bin/hdiutil attach -nobrowse -mountpoint $mnt $curSrc
|
||||
|
||||
# Copy content to local dir for later use
|
||||
echo 'Copying extracted content into "sourceRoot"'
|
||||
cp -a $mnt/NoSQL\ Workbench.app $PWD/
|
||||
runHook postUnpack
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
|
|
|
@ -6,13 +6,13 @@
|
|||
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
pname = "oelint-adv";
|
||||
version = "4.4.0";
|
||||
version = "4.4.1";
|
||||
format = "setuptools";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit version;
|
||||
pname = "oelint_adv";
|
||||
hash = "sha256-Sg7qn/yZUJEJdMmaGm27kyL+fKkUsZo25eExZPOem40=";
|
||||
hash = "sha256-Yv0GCz0vZTVrnFjHFIl4XF/jbVD4DJ4J6V6+X5IllJ8=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = with python3.pkgs; [
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "outils";
|
||||
version = "0.10";
|
||||
version = "0.13";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "leahneukirchen";
|
||||
repo = pname;
|
||||
repo = "outils";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-xYjILa0Km57q/xNP+M34r29WLGC15tzUNoUgPzQTtIs=";
|
||||
hash = "sha256-FokJytwQsbGsryBzyglpb1Hg3wti/CPQTOfIGIz9ThA=";
|
||||
};
|
||||
|
||||
makeFlags = [ "PREFIX=$(out)" ];
|
|
@ -2,14 +2,14 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "scitokens-cpp";
|
||||
version = "1.1.0";
|
||||
version = "1.1.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "scitokens";
|
||||
repo = "scitokens-cpp";
|
||||
|
||||
rev = "v1.1.0";
|
||||
hash = "sha256-g97Ah5Oob0iOvMQegpG/AACLZCW37kA0RpSIcKOyQnE=";
|
||||
rev = "v1.1.1";
|
||||
hash = "sha256-G3z9DYYWCNeA/rufNHQP3SwT5WS2AvUWm1rd8lx6XxA=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake pkg-config ];
|
||||
|
|
|
@ -73,6 +73,7 @@ python3.pkgs.toPythonModule (python3.pkgs.buildPythonApplication rec {
|
|||
homepage = "https://github.com/searxng/searxng";
|
||||
description = "A fork of Searx, a privacy-respecting, hackable metasearch engine";
|
||||
license = licenses.agpl3Plus;
|
||||
mainProgram = "searxng-run";
|
||||
maintainers = with maintainers; [ SuperSandro2000 _999eagle ];
|
||||
};
|
||||
})
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
, meson, ninja, pkg-config, wayland-scanner, scdoc
|
||||
, libGL, wayland, libxkbcommon, pcre2, json_c, libevdev
|
||||
, pango, cairo, libinput, gdk-pixbuf, librsvg
|
||||
, wlroots_0_16, wayland-protocols, libdrm
|
||||
, wlroots, wayland-protocols, libdrm
|
||||
, nixosTests
|
||||
# Used by the NixOS module:
|
||||
, isNixOS ? false
|
||||
|
@ -11,19 +11,16 @@
|
|||
, trayEnabled ? systemdSupport
|
||||
}:
|
||||
|
||||
let
|
||||
wlroots = wlroots_0_16;
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "sway-unwrapped";
|
||||
version = "1.8.1";
|
||||
version = "1.9";
|
||||
|
||||
inherit enableXWayland isNixOS systemdSupport trayEnabled;
|
||||
src = fetchFromGitHub {
|
||||
owner = "swaywm";
|
||||
repo = "sway";
|
||||
rev = finalAttrs.version;
|
||||
hash = "sha256-WxnT+le9vneQLFPz2KoBduOI+zfZPhn1fKlaqbPL6/g=";
|
||||
hash = "sha256-/6+iDkQfdLcL/pTJaqNc6QdP4SRVOYLjfOItEu/bZtg=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
@ -34,11 +31,6 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
inherit swaybg;
|
||||
})
|
||||
|
||||
(fetchpatch {
|
||||
name = "LIBINPUT_CONFIG_ACCEL_PROFILE_CUSTOM.patch";
|
||||
url = "https://github.com/swaywm/sway/commit/dee032d0a0ecd958c902b88302dc59703d703c7f.diff";
|
||||
hash = "sha256-dx+7MpEiAkxTBnJcsT3/1BO8rYRfNLecXmpAvhqGMD0=";
|
||||
})
|
||||
] ++ lib.optionals (!finalAttrs.isNixOS) [
|
||||
# References to /nix/store/... will get GC'ed which causes problems when
|
||||
# copying the default configuration:
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
sway-unwrapped,
|
||||
stdenv,
|
||||
systemd,
|
||||
wlroots_0_16,
|
||||
# Used by the NixOS module:
|
||||
isNixOS ? false,
|
||||
enableXWayland ? true,
|
||||
|
@ -18,6 +19,8 @@
|
|||
systemdSupport
|
||||
trayEnabled
|
||||
;
|
||||
|
||||
wlroots = wlroots_0_16;
|
||||
}).overrideAttrs (oldAttrs: rec {
|
||||
pname = "swayfx-unwrapped";
|
||||
version = "0.3.2";
|
||||
|
@ -29,18 +32,6 @@
|
|||
sha256 = "sha256-Gwewb0yDVhEBrefSSGDf1hLtpWcntzifPCPJQhqLqI0=";
|
||||
};
|
||||
|
||||
# This patch was backported into SwayFX
|
||||
# remove when next release is rebased on Sway 1.9
|
||||
patches =
|
||||
let
|
||||
removePatches = [
|
||||
"LIBINPUT_CONFIG_ACCEL_PROFILE_CUSTOM.patch"
|
||||
];
|
||||
in
|
||||
builtins.filter
|
||||
(patch: !builtins.elem (patch.name or null) removePatches)
|
||||
(oldAttrs.patches or [ ]);
|
||||
|
||||
meta = with lib; {
|
||||
description = "Sway, but with eye candy!";
|
||||
homepage = "https://github.com/WillPower3309/swayfx";
|
||||
|
|
73
pkgs/by-name/ta/tabby/package.nix
Normal file
73
pkgs/by-name/ta/tabby/package.nix
Normal file
|
@ -0,0 +1,73 @@
|
|||
{ lib
|
||||
, fetchFromGitHub
|
||||
, gcc12
|
||||
, cmake
|
||||
, git
|
||||
, openssl
|
||||
, pkg-config
|
||||
, protobuf
|
||||
, rustPlatform
|
||||
, addOpenGLRunpath
|
||||
, cudatoolkit
|
||||
, nvidia ? true
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
version = "0.7.0";
|
||||
pname = "tabby";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "TabbyML";
|
||||
repo = "tabby";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-BTPJWvqO4IuQAiUEER9PYfu4aQsz5RI77WsA/gQu5Jc=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
cargoHash = "sha256-Du0ya9J+0tz72mSid5If0VFX2lLC7YtwNQ/MALpFv2M=";
|
||||
|
||||
# https://github.com/TabbyML/tabby/blob/v0.7.0/.github/workflows/release.yml#L39
|
||||
cargoBuildFlags = [
|
||||
"--release"
|
||||
"--package" "tabby"
|
||||
] ++ lib.optional nvidia [
|
||||
"--features" "cuda"
|
||||
];
|
||||
|
||||
OPENSSL_NO_VENDOR = 1;
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
protobuf
|
||||
git
|
||||
cmake
|
||||
gcc12
|
||||
|
||||
] ++ lib.optional nvidia [
|
||||
addOpenGLRunpath
|
||||
];
|
||||
|
||||
buildInputs = [ openssl ]
|
||||
++ lib.optional nvidia cudatoolkit
|
||||
;
|
||||
|
||||
postInstall = ''
|
||||
${if nvidia then ''
|
||||
addOpenGLRunpath "$out/bin/tabby"
|
||||
'' else ''
|
||||
''}
|
||||
'';
|
||||
|
||||
# Fails with:
|
||||
# file cannot create directory: /var/empty/local/lib64/cmake/Llama
|
||||
doCheck = false;
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/TabbyML/tabby";
|
||||
changelog = "https://github.com/TabbyML/tabby/releases/tag/v${version}";
|
||||
description = "Self-hosted AI coding assistant";
|
||||
mainProgram = "tabby";
|
||||
license = licenses.asl20;
|
||||
maintainers = [ maintainers.ghthor ];
|
||||
};
|
||||
}
|
|
@ -14,16 +14,16 @@
|
|||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "uiua";
|
||||
version = "0.8.0";
|
||||
version = "0.9.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "uiua-lang";
|
||||
repo = "uiua";
|
||||
rev = version;
|
||||
hash = "sha256-JilYPIeJbVf9wgGpLTy8pbMwFRrW7Od+8y0tWwAXU84=";
|
||||
hash = "sha256-629hJLSGf0LJ+P1j1b87RV6XGgsDaWif1a6+Eo3NmMw=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-oXO2TBdKmVIpZD0jLI1CK9b48r3SwdeygcJoUG6HGXo=";
|
||||
cargoHash = "sha256-ZRiDlsSZ5jjTrOrB/bg2xOcOTsCNFdP0jY0SwZ1zwGU=";
|
||||
|
||||
nativeBuildInputs = lib.optionals stdenv.isDarwin [
|
||||
rustPlatform.bindgenHook
|
||||
|
@ -41,6 +41,7 @@ rustPlatform.buildRustPackage rec {
|
|||
|
||||
buildFeatures = lib.optional audioSupport "audio";
|
||||
|
||||
passthru.updateScript = ./update.sh;
|
||||
passthru.tests.run = runCommand "uiua-test-run" { nativeBuildInputs = [ uiua ]; } ''
|
||||
uiua init
|
||||
diff -U3 --color=auto <(uiua run main.ua) <(echo '"Hello, World!"')
|
||||
|
|
7
pkgs/by-name/ui/uiua/update.sh
Executable file
7
pkgs/by-name/ui/uiua/update.sh
Executable file
|
@ -0,0 +1,7 @@
|
|||
#!/usr/bin/env nix-shell
|
||||
#!nix-shell -i bash -p curl jq nix-update common-updater-scripts
|
||||
|
||||
nix-update uiua
|
||||
|
||||
EXT_VER=$(curl https://raw.githubusercontent.com/uiua-lang/uiua-vscode/main/package.json | jq -r .version)
|
||||
update-source-version vscode-extensions.uiua-lang.uiua-vscode $EXT_VER
|
44
pkgs/by-name/uv/uv/Cargo.lock
generated
44
pkgs/by-name/uv/uv/Cargo.lock
generated
|
@ -75,9 +75,9 @@ checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299"
|
|||
|
||||
[[package]]
|
||||
name = "anstream"
|
||||
version = "0.6.11"
|
||||
version = "0.6.12"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6e2e1ebcb11de5c03c67de28a7df593d32191b44939c482e97702baaaa6ab6a5"
|
||||
checksum = "96b09b5178381e0874812a9b157f7fe84982617e48f71f4e3235482775e5b540"
|
||||
dependencies = [
|
||||
"anstyle",
|
||||
"anstyle-parse",
|
||||
|
@ -147,9 +147,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711"
|
|||
|
||||
[[package]]
|
||||
name = "assert_cmd"
|
||||
version = "2.0.13"
|
||||
version = "2.0.14"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "00ad3f3a942eee60335ab4342358c161ee296829e0d16ff42fc1d6cb07815467"
|
||||
checksum = "ed72493ac66d5804837f480ab3766c72bdfab91a65e565fc54fa9e42db0073a8"
|
||||
dependencies = [
|
||||
"anstyle",
|
||||
"bstr",
|
||||
|
@ -1587,25 +1587,21 @@ dependencies = [
|
|||
"data-encoding",
|
||||
"distribution-filename",
|
||||
"fs-err",
|
||||
"fs2",
|
||||
"goblin",
|
||||
"indoc",
|
||||
"mailparse",
|
||||
"once_cell",
|
||||
"pathdiff",
|
||||
"pep440_rs",
|
||||
"platform-host",
|
||||
"platform-info",
|
||||
"plist",
|
||||
"pyo3",
|
||||
"pypi-types",
|
||||
"rayon",
|
||||
"reflink-copy",
|
||||
"regex",
|
||||
"rustc-hash",
|
||||
"serde",
|
||||
"serde_json",
|
||||
"sha2",
|
||||
"target-lexicon",
|
||||
"tempfile",
|
||||
"thiserror",
|
||||
"tracing",
|
||||
|
@ -2193,6 +2189,12 @@ version = "1.0.14"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c"
|
||||
|
||||
[[package]]
|
||||
name = "pathdiff"
|
||||
version = "0.2.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd"
|
||||
|
||||
[[package]]
|
||||
name = "pep440_rs"
|
||||
version = "0.5.0"
|
||||
|
@ -3189,18 +3191,18 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "serde"
|
||||
version = "1.0.196"
|
||||
version = "1.0.197"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32"
|
||||
checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2"
|
||||
dependencies = [
|
||||
"serde_derive",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "serde_derive"
|
||||
version = "1.0.196"
|
||||
version = "1.0.197"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67"
|
||||
checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
|
@ -3209,9 +3211,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "serde_json"
|
||||
version = "1.0.113"
|
||||
version = "1.0.114"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "69801b70b1c3dac963ecb03a364ba0ceda9cf60c71cfe475e99864759c8b8a79"
|
||||
checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0"
|
||||
dependencies = [
|
||||
"itoa",
|
||||
"ryu",
|
||||
|
@ -3496,9 +3498,9 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369"
|
|||
|
||||
[[package]]
|
||||
name = "target-lexicon"
|
||||
version = "0.12.13"
|
||||
version = "0.12.14"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "69758bda2e78f098e4ccb393021a0963bb3442eac05f135c30f61b7370bbafae"
|
||||
checksum = "e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f"
|
||||
|
||||
[[package]]
|
||||
name = "task-local-extensions"
|
||||
|
@ -4131,7 +4133,7 @@ checksum = "f00cc9702ca12d3c81455259621e676d0f7251cec66a21e98fe2e9a37db93b2a"
|
|||
|
||||
[[package]]
|
||||
name = "uv"
|
||||
version = "0.1.11"
|
||||
version = "0.1.12"
|
||||
dependencies = [
|
||||
"anstream",
|
||||
"anyhow",
|
||||
|
@ -4151,6 +4153,7 @@ dependencies = [
|
|||
"fs-err",
|
||||
"futures",
|
||||
"gourgeist",
|
||||
"indexmap 2.2.3",
|
||||
"indicatif",
|
||||
"indoc",
|
||||
"insta",
|
||||
|
@ -4493,12 +4496,15 @@ dependencies = [
|
|||
"pep508_rs",
|
||||
"platform-tags",
|
||||
"pypi-types",
|
||||
"pyproject-toml",
|
||||
"rayon",
|
||||
"requirements-txt",
|
||||
"rustc-hash",
|
||||
"serde",
|
||||
"tempfile",
|
||||
"thiserror",
|
||||
"tokio",
|
||||
"toml",
|
||||
"tracing",
|
||||
"url",
|
||||
"uv-cache",
|
||||
|
@ -4518,9 +4524,11 @@ version = "0.0.1"
|
|||
dependencies = [
|
||||
"anyhow",
|
||||
"cache-key",
|
||||
"configparser",
|
||||
"fs-err",
|
||||
"indoc",
|
||||
"insta",
|
||||
"install-wheel-rs",
|
||||
"itertools 0.12.1",
|
||||
"once_cell",
|
||||
"pep440_rs",
|
||||
|
|
|
@ -1,31 +1,25 @@
|
|||
{ lib
|
||||
, cargo
|
||||
, cmake
|
||||
, darwin
|
||||
, fetchFromGitHub
|
||||
, libgit2
|
||||
, openssl
|
||||
, pkg-config
|
||||
, python3
|
||||
, rustPlatform
|
||||
, rustc
|
||||
, stdenv
|
||||
, zlib
|
||||
}:
|
||||
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "uv";
|
||||
version = "0.1.11";
|
||||
pyproject = true;
|
||||
version = "0.1.12";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "astral-sh";
|
||||
repo = "uv";
|
||||
rev = version;
|
||||
hash = "sha256-0J6m/DgalYA+GGmgjFrNoo9KAv6WgMcx+gasgqG5v1Q=";
|
||||
hash = "sha256-tM8NX4BPGm8Xxlau+qpKSljTdSJutipsYFsZAdtmZuo=";
|
||||
};
|
||||
|
||||
cargoDeps = rustPlatform.importCargoLock {
|
||||
cargoLock = {
|
||||
lockFile = ./Cargo.lock;
|
||||
outputHashes = {
|
||||
"async_zip-0.0.16" = "sha256-M94ceTCtyQc1AtPXYrVGplShQhItqZZa/x5qLiL+gs0=";
|
||||
|
@ -34,25 +28,20 @@ python3.pkgs.buildPythonApplication rec {
|
|||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
cargo
|
||||
cmake
|
||||
pkg-config
|
||||
rustPlatform.cargoSetupHook
|
||||
rustPlatform.maturinBuildHook
|
||||
rustc
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
libgit2
|
||||
openssl
|
||||
zlib
|
||||
] ++ lib.optionals stdenv.isDarwin [
|
||||
darwin.apple_sdk.frameworks.SystemConfiguration
|
||||
];
|
||||
|
||||
dontUseCmakeConfigure = true;
|
||||
cargoBuildFlags = [ "--package" "uv" ];
|
||||
|
||||
pythonImportsCheck = [ "uv" ];
|
||||
# Tests require network access
|
||||
doCheck = false;
|
||||
|
||||
env = {
|
||||
OPENSSL_NO_VENDOR = true;
|
||||
|
@ -61,7 +50,7 @@ python3.pkgs.buildPythonApplication rec {
|
|||
meta = with lib; {
|
||||
description = "An extremely fast Python package installer and resolver, written in Rust";
|
||||
homepage = "https://github.com/astral-sh/uv";
|
||||
changelog = "https://github.com/astral-sh/uv/releases/tag/${version}";
|
||||
changelog = "https://github.com/astral-sh/uv/blob/${src.rev}/CHANGELOG.md";
|
||||
license = with licenses; [ asl20 mit ];
|
||||
maintainers = with maintainers; [ marsam ];
|
||||
mainProgram = "uv";
|
||||
|
|
|
@ -1,8 +1,4 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, pkgsBuildBuild
|
||||
, fetchurl
|
||||
, fetchpatch
|
||||
, SDL
|
||||
, SDL_image
|
||||
, a52dec
|
||||
|
@ -11,6 +7,8 @@
|
|||
, avahi
|
||||
, dbus
|
||||
, faad2
|
||||
, fetchpatch
|
||||
, fetchurl
|
||||
, ffmpeg
|
||||
, flac
|
||||
, fluidsynth
|
||||
|
@ -48,6 +46,7 @@
|
|||
, libpulseaudio
|
||||
, libraw1394
|
||||
, librsvg
|
||||
, libsForQt5
|
||||
, libsamplerate
|
||||
, libspatialaudio
|
||||
, libssh2
|
||||
|
@ -65,23 +64,20 @@
|
|||
, ncurses
|
||||
, perl
|
||||
, pkg-config
|
||||
, pkgsBuildBuild
|
||||
, protobuf
|
||||
, qtbase
|
||||
, qtsvg
|
||||
, qtwayland
|
||||
, qtx11extras
|
||||
, removeReferencesTo
|
||||
, samba
|
||||
, schroedinger
|
||||
, speex
|
||||
, srt
|
||||
, stdenv
|
||||
, systemd
|
||||
, taglib
|
||||
, unzip
|
||||
, wayland
|
||||
, wayland-protocols
|
||||
, wrapGAppsHook
|
||||
, wrapQtAppsHook
|
||||
, xcbutilkeysyms
|
||||
, zlib
|
||||
|
||||
|
@ -98,7 +94,7 @@
|
|||
# networking.firewall.allowedTCPPorts = [ 8010 ];
|
||||
|
||||
let
|
||||
inherit (lib) optionalString optional optionals;
|
||||
inherit (lib) optionalString optionals;
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "${optionalString onlyLibVLC "lib"}vlc";
|
||||
|
@ -118,8 +114,8 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
unzip
|
||||
wrapGAppsHook
|
||||
]
|
||||
++ optional chromecastSupport protobuf
|
||||
++ optionals withQt5 [ wrapQtAppsHook ]
|
||||
++ optionals chromecastSupport [ protobuf ]
|
||||
++ optionals withQt5 [ libsForQt5.wrapQtAppsHook ]
|
||||
++ optionals waylandSupport [
|
||||
wayland
|
||||
wayland-protocols
|
||||
|
@ -191,8 +187,8 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
xcbutilkeysyms
|
||||
zlib
|
||||
]
|
||||
++ optional (!stdenv.hostPlatform.isAarch && !onlyLibVLC) live555
|
||||
++ optional jackSupport libjack2
|
||||
++ optionals (!stdenv.hostPlatform.isAarch && !onlyLibVLC) [ live555 ]
|
||||
++ optionals jackSupport [ libjack2 ]
|
||||
++ optionals chromecastSupport [ libmicrodns protobuf ]
|
||||
++ optionals skins2Support [
|
||||
freetype
|
||||
|
@ -201,8 +197,12 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
libXpm
|
||||
]
|
||||
++ optionals waylandSupport [ wayland wayland-protocols ]
|
||||
++ optionals withQt5 [ qtbase qtsvg qtx11extras ]
|
||||
++ optional (waylandSupport && withQt5) qtwayland;
|
||||
++ optionals withQt5 (with libsForQt5; [
|
||||
qtbase
|
||||
qtsvg
|
||||
qtx11extras
|
||||
])
|
||||
++ optionals (waylandSupport && withQt5) [ libsForQt5.qtwayland ];
|
||||
|
||||
env = {
|
||||
# vlc depends on a c11-gcc wrapper script which we don't have so we need to
|
||||
|
@ -218,51 +218,37 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
# upstream issue: https://code.videolan.org/videolan/vlc/-/issues/25473
|
||||
(fetchpatch {
|
||||
url = "https://code.videolan.org/videolan/vlc/uploads/eb1c313d2d499b8a777314f789794f9d/0001-Add-lssl-and-lcrypto-to-liblive555_plugin_la_LIBADD.patch";
|
||||
sha256 = "0kyi8q2zn2ww148ngbia9c7qjgdrijf4jlvxyxgrj29cb5iy1kda";
|
||||
hash = "sha256-qs3gY1ksCZlf931TSZyMuT2JD0sqrmcRCZwL+wVG0U8=";
|
||||
})
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace modules/text_renderer/freetype/platform_fonts.h --replace \
|
||||
/usr/share/fonts/truetype/freefont ${freefont_ttf}/share/fonts/truetype
|
||||
'' + lib.optionalString (!stdenv.hostPlatform.canExecute stdenv.buildPlatform) ''
|
||||
# Upstream luac can't cross compile, so we have to install the lua
|
||||
# sources, not bytecode:
|
||||
# https://www.lua.org/wshop13/Jericke.pdf#page=39
|
||||
substituteInPlace share/Makefile.am --replace $'.luac \\\n' $'.lua \\\n'
|
||||
substituteInPlace modules/text_renderer/freetype/platform_fonts.h \
|
||||
--replace \
|
||||
/usr/share/fonts/truetype/freefont \
|
||||
${freefont_ttf}/share/fonts/truetype
|
||||
''
|
||||
# Upstream luac can't cross compile, so we have to install the lua sources
|
||||
# instead of bytecode:
|
||||
# https://www.lua.org/wshop13/Jericke.pdf#page=39
|
||||
+ lib.optionalString (!stdenv.hostPlatform.canExecute stdenv.buildPlatform) ''
|
||||
substituteInPlace share/Makefile.am \
|
||||
--replace $'.luac \\\n' $'.lua \\\n'
|
||||
'';
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
dontWrapGApps = true; # to prevent double wrapping of Qtwrap and Gwrap
|
||||
|
||||
preFixup = ''
|
||||
qtWrapperArgs+=("''${gappsWrapperArgs[@]}")
|
||||
'';
|
||||
|
||||
# - Touch plugins (plugins cache keyed off mtime and file size:
|
||||
# https://github.com/NixOS/nixpkgs/pull/35124#issuecomment-370552830
|
||||
# - Remove references to the Qt development headers (used in error messages)
|
||||
#
|
||||
# pkgsBuildBuild is used here because buildPackages.libvlc somehow
|
||||
# depends on a qt5.qttranslations that doesn't build, even though it
|
||||
# should be the same as pkgsBuildBuild.qt5.qttranslations.
|
||||
postFixup = ''
|
||||
find $out/lib/vlc/plugins -exec touch -d @1 '{}' ';'
|
||||
${if stdenv.buildPlatform.canExecute stdenv.hostPlatform then "$out" else pkgsBuildBuild.libvlc}/lib/vlc/vlc-cache-gen $out/vlc/plugins
|
||||
'' + optionalString withQt5 ''
|
||||
remove-references-to -t "${qtbase.dev}" $out/lib/vlc/plugins/gui/libqt_plugin.so
|
||||
'';
|
||||
|
||||
# Most of the libraries are auto-detected so we don't need to set a bunch of
|
||||
# "--enable-foo" flags here
|
||||
configureFlags = [
|
||||
"--enable-srt" # Explicit enable srt to ensure the patch is applied.
|
||||
"--with-kde-solid=$out/share/apps/solid/actions"
|
||||
]
|
||||
++ optional onlyLibVLC "--disable-vlc"
|
||||
++ optional skins2Support "--enable-skins2"
|
||||
++ optional waylandSupport "--enable-wayland"
|
||||
++ optionals onlyLibVLC [ "--disable-vlc" ]
|
||||
++ optionals skins2Support [ "--enable-skins2" ]
|
||||
++ optionals waylandSupport [ "--enable-wayland" ]
|
||||
++ optionals chromecastSupport [
|
||||
"--enable-sout"
|
||||
"--enable-chromecast"
|
||||
|
@ -285,6 +271,24 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
cp -R share/hrtfs $out/share/vlc
|
||||
'';
|
||||
|
||||
preFixup = ''
|
||||
qtWrapperArgs+=("''${gappsWrapperArgs[@]}")
|
||||
'';
|
||||
|
||||
# - Touch plugins (plugins cache keyed off mtime and file size:
|
||||
# https://github.com/NixOS/nixpkgs/pull/35124#issuecomment-370552830
|
||||
# - Remove references to the Qt development headers (used in error messages)
|
||||
#
|
||||
# pkgsBuildBuild is used here because buildPackages.libvlc somehow
|
||||
# depends on a qt5.qttranslations that doesn't build, even though it
|
||||
# should be the same as pkgsBuildBuild.qt5.qttranslations.
|
||||
postFixup = ''
|
||||
find $out/lib/vlc/plugins -exec touch -d @1 '{}' ';'
|
||||
${if stdenv.buildPlatform.canExecute stdenv.hostPlatform then "$out" else pkgsBuildBuild.libvlc}/lib/vlc/vlc-cache-gen $out/vlc/plugins
|
||||
'' + optionalString withQt5 ''
|
||||
remove-references-to -t "${libsForQt5.qtbase.dev}" $out/lib/vlc/plugins/gui/libqt_plugin.so
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "Cross-platform media player and streaming server";
|
||||
homepage = "https://www.videolan.org/vlc/";
|
|
@ -6,13 +6,13 @@
|
|||
# Testing this requires a Thinkpad or the presence of /proc/acpi/ibm/fan
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "zcfan";
|
||||
version = "1.2.1";
|
||||
version = "1.3.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "cdown";
|
||||
repo = "zcfan";
|
||||
rev = finalAttrs.version;
|
||||
hash = "sha256-XngchR06HP2iExKJVe+XKBDgsv98AEYWOkl1a/Hktgs=";
|
||||
hash = "sha256-zpYQEHXt8LBNX+luM4YxP0dKH+hb2c8Z0BEeGP09oZo=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
|
|
@ -5,11 +5,11 @@
|
|||
|
||||
stdenvNoCC.mkDerivation rec {
|
||||
pname = "lxgw-neoxihei";
|
||||
version = "1.110";
|
||||
version = "1.120";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/lxgw/LxgwNeoXiHei/releases/download/v${version}/LXGWNeoXiHei.ttf";
|
||||
hash = "sha256-6KeKz8lJBCc/sc5pCkS2mSwMAQ8XpwDIMCjSbVXuyH4=";
|
||||
hash = "sha256-rQ+gbmUYr+iWm5WCUSqb+8+aMD5JZUsbPXZ0Nio2cl8=";
|
||||
};
|
||||
|
||||
dontUnpack = true;
|
||||
|
|
|
@ -3,12 +3,12 @@
|
|||
let
|
||||
generator = pkgsBuildBuild.buildGoModule rec {
|
||||
pname = "v2ray-domain-list-community";
|
||||
version = "20240217140518";
|
||||
version = "20240221053250";
|
||||
src = fetchFromGitHub {
|
||||
owner = "v2fly";
|
||||
repo = "domain-list-community";
|
||||
rev = version;
|
||||
hash = "sha256-7Voepx8+tFWpugtUKoRJ55nSX3cWtXgPhYiNDhE3OGs=";
|
||||
hash = "sha256-oPffStUx2CD4gfSNIYqCzLLj+IAhm3aGQknRsrauD+k=";
|
||||
};
|
||||
vendorHash = "sha256-azvMUi8eLNoNofRa2X4SKTTiMd6aOyO6H/rOiKjkpIY=";
|
||||
meta = with lib; {
|
||||
|
|
|
@ -6,13 +6,13 @@
|
|||
|
||||
stdenvNoCC.mkDerivation (self: {
|
||||
name = "alacritty-theme";
|
||||
version = "unstable-2024-02-25";
|
||||
version = "unstable-2024-02-28";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "alacritty";
|
||||
repo = "alacritty-theme";
|
||||
rev = "07c10441dae4d0490145a0f40178f8846b24e800";
|
||||
hash = "sha256-aZlsKbFcm1bswx7k0cjwhj1MudR0Q0rD8sdHa7kQ0rY=";
|
||||
rev = "4aefb7c079721474078b28bbf9f582b592749ca6";
|
||||
hash = "sha256-+35S6eQkxLBuS/fDKD5bglQDIuz2xeEc5KSaK6k7IjI=";
|
||||
};
|
||||
|
||||
dontConfigure = true;
|
||||
|
|
|
@ -9,13 +9,13 @@
|
|||
|
||||
stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
pname = "suru-icon-theme";
|
||||
version = "20.05.1";
|
||||
version = "2024.02.1";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
owner = "ubports";
|
||||
repo = "development/core/suru-icon-theme";
|
||||
rev = finalAttrs.version;
|
||||
hash = "sha256-jJ6J+SjSABZCgnCF9cIFBpeSXX2LMnV+nPLPpoXQv30=";
|
||||
hash = "sha256-7T9FILhZrs5bbdBEV/FszCOwUd/C1Rl9tbDt77SIzRk=";
|
||||
};
|
||||
|
||||
strictDeps = true;
|
||||
|
@ -50,6 +50,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
|
|||
meta = with lib; {
|
||||
description = "Suru Icon Theme for Lomiri Operating Environment";
|
||||
homepage = "https://gitlab.com/ubports/development/core/suru-icon-theme";
|
||||
changelog = "https://gitlab.com/ubports/development/core/suru-icon-theme/-/blob/${finalAttrs.version}/ChangeLog";
|
||||
license = licenses.cc-by-sa-30;
|
||||
maintainers = teams.lomiri.members;
|
||||
platforms = platforms.all;
|
||||
|
|
|
@ -57,7 +57,7 @@ let
|
|||
# Defined in gdk-pixbuf setup hook
|
||||
findGdkPixbufLoaders "${librsvg}"
|
||||
|
||||
${if to then "makeWrapper ${from} ${to}" else "wrapProgram ${from}"} \
|
||||
${if (builtins.isString to) then "makeWrapper ${from} ${to}" else "wrapProgram ${from}"} \
|
||||
--set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
|
||||
--argv0 factor \
|
||||
--prefix LD_LIBRARY_PATH : /run/opengl-driver/lib:${lib.makeLibraryPath runtimeLibs} \
|
||||
|
@ -72,7 +72,7 @@ let
|
|||
passthru.runtimeLibs = runtimeLibs ++ interpreter.runtimeLibs;
|
||||
}
|
||||
(wrapFactorScript {
|
||||
from = "${interpreter}/lib/factor/.factor.wrapped";
|
||||
from = "${interpreter}/lib/factor/.factor-wrapped";
|
||||
to = "$out/bin/factor";
|
||||
runtimeLibs = (runtimeLibs ++ interpreter.runtimeLibs);
|
||||
});
|
||||
|
|
|
@ -1,20 +1,16 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchFromRepoOrCz
|
||||
, copyPkgconfigItems
|
||||
, fetchFromRepoOrCz
|
||||
, makePkgconfigItem
|
||||
, perl
|
||||
, stdenv
|
||||
, texinfo
|
||||
, which
|
||||
}:
|
||||
|
||||
let
|
||||
# avoid "malformed 32-bit x.y.z" error on mac when using clang
|
||||
isCleanVer = version: builtins.match "^[0-9]\\.+[0-9]+\\.[0-9]+" version != null;
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "tcc";
|
||||
version = "unstable-2022-07-15";
|
||||
version = "0.9.27-unstable-2022-07-15";
|
||||
|
||||
src = fetchFromRepoOrCz {
|
||||
repo = "tinycc";
|
||||
|
@ -22,6 +18,8 @@ stdenv.mkDerivation rec {
|
|||
hash = "sha256-jY0P2GErmo//YBaz6u4/jj/voOE3C2JaIDRmo0orXN8=";
|
||||
};
|
||||
|
||||
outputs = [ "out" "info" "man" ];
|
||||
|
||||
nativeBuildInputs = [
|
||||
copyPkgconfigItems
|
||||
perl
|
||||
|
@ -29,23 +27,27 @@ stdenv.mkDerivation rec {
|
|||
which
|
||||
];
|
||||
|
||||
pkgconfigItems = [
|
||||
(makePkgconfigItem rec {
|
||||
strictDeps = true;
|
||||
|
||||
pkgconfigItems = let
|
||||
libtcc-pcitem = {
|
||||
name = "libtcc";
|
||||
inherit version;
|
||||
cflags = [ "-I${variables.includedir}" ];
|
||||
inherit (finalAttrs) version;
|
||||
cflags = [ "-I${libtcc-pcitem.variables.includedir}" ];
|
||||
libs = [
|
||||
"-L${variables.libdir}"
|
||||
"-Wl,--rpath ${variables.libdir}"
|
||||
"-L${libtcc-pcitem.variables.libdir}"
|
||||
"-Wl,--rpath ${libtcc-pcitem.variables.libdir}"
|
||||
"-ltcc"
|
||||
];
|
||||
variables = rec {
|
||||
variables = {
|
||||
prefix = "${placeholder "out"}";
|
||||
includedir = "${prefix}/include";
|
||||
libdir = "${prefix}/lib";
|
||||
includedir = "${placeholder "dev"}/include";
|
||||
libdir = "${placeholder "lib"}/lib";
|
||||
};
|
||||
description = "Tiny C compiler backend";
|
||||
})
|
||||
};
|
||||
in [
|
||||
(makePkgconfigItem libtcc-pcitem)
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
|
@ -64,17 +66,19 @@ stdenv.mkDerivation rec {
|
|||
"--config-musl"
|
||||
];
|
||||
|
||||
preConfigure = ''
|
||||
preConfigure = let
|
||||
# To avoid "malformed 32-bit x.y.z" error on mac when using clang
|
||||
versionIsClean = version:
|
||||
builtins.match "^[0-9]\\.+[0-9]+\\.[0-9]+" version != null;
|
||||
in ''
|
||||
${
|
||||
if stdenv.isDarwin && ! isCleanVer version
|
||||
if stdenv.isDarwin && ! versionIsClean finalAttrs.version
|
||||
then "echo 'not overwriting VERSION since it would upset ld'"
|
||||
else "echo ${version} > VERSION"
|
||||
else "echo ${finalAttrs.version} > VERSION"
|
||||
}
|
||||
configureFlagsArray+=("--elfinterp=$(< $NIX_CC/nix-support/dynamic-linker)")
|
||||
'';
|
||||
|
||||
outputs = [ "out" "info" "man" ];
|
||||
|
||||
# Test segfault for static build
|
||||
doCheck = !stdenv.hostPlatform.isStatic;
|
||||
|
||||
|
@ -84,7 +88,7 @@ stdenv.mkDerivation rec {
|
|||
rm tests/tests2/{108,114}*
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
homepage = "https://repo.or.cz/tinycc.git";
|
||||
description = "Small, fast, and embeddable C compiler and interpreter";
|
||||
longDescription = ''
|
||||
|
@ -108,13 +112,13 @@ stdenv.mkDerivation rec {
|
|||
|
||||
With libtcc, you can use TCC as a backend for dynamic code generation.
|
||||
'';
|
||||
license = licenses.lgpl21Only;
|
||||
maintainers = with maintainers; [ joachifm AndersonTorres ];
|
||||
platforms = platforms.unix;
|
||||
license = with lib.licenses; [ lgpl21Only ];
|
||||
mainProgram = "tcc";
|
||||
maintainers = with lib.maintainers; [ joachifm AndersonTorres ];
|
||||
platforms = lib.platforms.unix;
|
||||
# https://www.mail-archive.com/tinycc-devel@nongnu.org/msg10199.html
|
||||
broken = stdenv.isDarwin && stdenv.isAarch64;
|
||||
};
|
||||
}
|
||||
})
|
||||
# TODO: more multiple outputs
|
||||
# TODO: self-compilation
|
||||
# TODO: provide expression for stable release
|
||||
|
|
|
@ -28,7 +28,6 @@ let
|
|||
rev = googleapisRev;
|
||||
hash = "sha256-4Qiz0pBgW3OZi+Z8Zq6k9E94+8q6/EFMwPh8eQxDjdI=";
|
||||
};
|
||||
excludedTests = builtins.fromTOML (builtins.readFile ./skipped_tests.toml);
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "google-cloud-cpp";
|
||||
|
@ -106,16 +105,17 @@ stdenv.mkDerivation rec {
|
|||
lib.optionalString doInstallCheck (
|
||||
lib.optionalString (!staticOnly) ''
|
||||
export ${ldLibraryPathName}=${lib.concatStringsSep ":" additionalLibraryPaths}
|
||||
'' + ''
|
||||
export GTEST_FILTER="-${lib.concatStringsSep ":" excludedTests.cases}"
|
||||
''
|
||||
);
|
||||
|
||||
installCheckPhase = lib.optionalString doInstallCheck ''
|
||||
runHook preInstallCheck
|
||||
|
||||
# disable tests that contact the internet
|
||||
ctest --exclude-regex '^(${lib.concatStringsSep "|" excludedTests.whole})'
|
||||
# Disable any integration tests, which need to contact the internet.
|
||||
# Also disable the `storage_benchmark_*` tests.
|
||||
# With Protobuf < 23.x they require -DGOOGLE_CLOUD_CPP_ENABLE_CTYPE_WORKAROUND=ON.
|
||||
# With Protobuf >= 23.x they require They require setting -DGOOGLE_CLOUD_CPP_ENABLE_CTYPE_WORKAROUND=OFF
|
||||
ctest --label-exclude integration-test --exclude-regex storage_benchmarks_
|
||||
|
||||
runHook postInstallCheck
|
||||
'';
|
||||
|
|
|
@ -1,139 +0,0 @@
|
|||
whole = [
|
||||
"common_samples_samples",
|
||||
"common_internal_grpc_impersonate_service_account_integration_test",
|
||||
"common_internal_unified_rest_credentials_integration_test",
|
||||
"iam_samples_iam_credentials_samples",
|
||||
"iam_samples_iam_samples",
|
||||
"iam_admin_v1_samples_iam_client_samples",
|
||||
"iam_credentials_v1_samples_iam_credentials_client_samples",
|
||||
"iam_v1_samples_iam_policy_client_samples",
|
||||
"iam_v2_samples_policies_client_samples",
|
||||
"bigtable_admin_admin_iam_policy_integration_test",
|
||||
"bigtable_bigtable_instance_admin_client_samples",
|
||||
"bigtable_bigtable_table_admin_client_samples",
|
||||
"bigtable_apply_read_latency_benchmark",
|
||||
"bigtable_endurance_benchmark",
|
||||
"bigtable_mutation_batcher_throughput_benchmark",
|
||||
"bigtable_read_sync_vs_async_benchmark",
|
||||
"bigtable_scan_throughput_benchmark",
|
||||
"bigtable_admin_iam_policy_integration_test",
|
||||
"bigtable_data_async_future_integration_test",
|
||||
"bigtable_data_integration_test",
|
||||
"bigtable_filters_integration_test",
|
||||
"bigtable_mutations_integration_test",
|
||||
"bigtable_table_sample_rows_integration_test",
|
||||
"bigquery_samples_bigquery_read_samples",
|
||||
"bigquery_analyticshub_v1_samples_analytics_hub_client_samples",
|
||||
"bigquery_biglake_v1_samples_metastore_client_samples",
|
||||
"bigquery_connection_v1_samples_connection_client_samples",
|
||||
"bigquery_datapolicies_v1_samples_data_policy_client_samples",
|
||||
"bigquery_datatransfer_v1_samples_data_transfer_client_samples",
|
||||
"bigquery_migration_v2_samples_migration_client_samples",
|
||||
"bigquery_reservation_v1_samples_reservation_client_samples",
|
||||
"bigquery_storage_v1_samples_bigquery_read_client_samples",
|
||||
"bigquery_storage_v1_samples_bigquery_write_client_samples",
|
||||
"logging_quickstart",
|
||||
"logging_v2_samples_config_service_v2_client_samples",
|
||||
"logging_v2_samples_logging_service_v2_client_samples",
|
||||
"logging_v2_samples_metrics_service_v2_client_samples",
|
||||
"pubsub_endurance",
|
||||
"pubsub_throughput",
|
||||
"pubsub_subscriber_integration_test",
|
||||
"pubsub_subscription_admin_integration_test",
|
||||
"pubsub_topic_admin_integration_test",
|
||||
"spanner_client_integration_test",
|
||||
"spanner_client_stress_test",
|
||||
"spanner_data_types_integration_test",
|
||||
"spanner_database_admin_integration_test",
|
||||
"spanner_instance_admin_integration_test",
|
||||
"spanner_session_pool_integration_test",
|
||||
"spanner_admin_database_admin_integration_test",
|
||||
"spanner_admin_instance_admin_integration_test",
|
||||
"spanner_database_admin_client_samples",
|
||||
"spanner_instance_admin_client_samples",
|
||||
"spanner_multiple_rows_cpu_benchmark",
|
||||
"spanner_single_row_throughput_benchmark",
|
||||
"storage_alternative_endpoint_integration_test",
|
||||
"storage_auto_finalize_integration_test",
|
||||
"storage_bucket_integration_test",
|
||||
"storage_create_client_integration_test",
|
||||
"storage_curl_sign_blob_integration_test",
|
||||
"storage_decompressive_transcoding_integration_test",
|
||||
"storage_grpc_bucket_acl_integration_test",
|
||||
"storage_grpc_bucket_metadata_integration_test",
|
||||
"storage_grpc_default_object_acl_integration_test",
|
||||
"storage_grpc_integration_test",
|
||||
"storage_grpc_object_acl_integration_test",
|
||||
"storage_grpc_object_media_integration_test",
|
||||
"storage_grpc_object_metadata_integration_test",
|
||||
"storage_key_file_integration_test",
|
||||
"storage_minimal_iam_credentials_rest_integration_test",
|
||||
"storage_object_basic_crud_integration_test",
|
||||
"storage_object_checksum_integration_test",
|
||||
"storage_object_compose_many_integration_test",
|
||||
"storage_object_file_integration_test",
|
||||
"storage_object_hash_integration_test",
|
||||
"storage_object_insert_integration_test",
|
||||
"storage_object_insert_preconditions_integration_test",
|
||||
"storage_object_integration_test",
|
||||
"storage_object_list_objects_versions_integration_test",
|
||||
"storage_object_media_integration_test",
|
||||
"storage_object_parallel_upload_integration_test",
|
||||
"storage_object_plenty_clients_serially_integration_test",
|
||||
"storage_object_plenty_clients_simultaneously_integration_test",
|
||||
"storage_object_read_headers_integration_test",
|
||||
"storage_object_read_preconditions_integration_test",
|
||||
"storage_object_read_range_integration_test",
|
||||
"storage_object_read_stream_integration_test",
|
||||
"storage_object_resumable_parallel_upload_integration_test",
|
||||
"storage_object_resumable_write_integration_test",
|
||||
"storage_object_rewrite_integration_test",
|
||||
"storage_object_write_preconditions_integration_test",
|
||||
"storage_object_write_stream_integration_test",
|
||||
"storage_object_write_streambuf_integration_test",
|
||||
"storage_service_account_integration_test",
|
||||
"storage_signed_url_integration_test",
|
||||
"storage_small_reads_integration_test",
|
||||
"storage_thread_integration_test",
|
||||
"storage_tracing_integration_test",
|
||||
"storage_unified_credentials_integration_test",
|
||||
"storage_aggregate_download_throughput_benchmark",
|
||||
"storage_aggregate_upload_throughput_benchmark",
|
||||
"storage_create_dataset",
|
||||
"storage_storage_file_transfer_benchmark",
|
||||
"storage_storage_parallel_uploads_benchmark",
|
||||
"storage_storage_throughput_vs_cpu_benchmark",
|
||||
"storage_throughput_experiment_test"
|
||||
]
|
||||
cases = [
|
||||
"BackupExtraIntegrationTest.CreateBackupWithExpiredVersionTime",
|
||||
"BackupExtraIntegrationTest.BackupWithExpiredVersionTime",
|
||||
"BackupExtraIntegrationTest.BackupWithFutureVersionTime",
|
||||
"BackupExtraIntegrationTest.CreateBackupWithFutureVersionTime",
|
||||
"BlockingPublisherIntegrationTest.Basic",
|
||||
"DatabaseAdminClientTest.CreateWithEncryptionKey",
|
||||
"DatabaseAdminClientTest.CreateWithNonexistentEncryptionKey",
|
||||
"DatabaseAdminClientTest.DatabaseBasicCRUD",
|
||||
"DatabaseAdminClientTest.VersionRetentionPeriodCreate",
|
||||
"DatabaseAdminClientTest.VersionRetentionPeriodCreateFailure",
|
||||
"DatabaseAdminClientTest.VersionRetentionPeriodUpdate",
|
||||
"DatabaseAdminClientTest.VersionRetentionPeriodUpdateFailure",
|
||||
"ErrorParsingIntegrationTest.FailureContainsErrorInfo",
|
||||
"GrpcServiceAccountIntegrationTest.GetServiceAccount",
|
||||
"GrpcBucketMetadataIntegrationTest.ObjectMetadataCRUD",
|
||||
"InstanceAdminClientTest.InstanceConfig",
|
||||
"InstanceAdminClientTest.InstanceIam",
|
||||
"InstanceAdminClientTest.InstanceReadOperations",
|
||||
"LoggingIntegrationTest.ListMonitoredResourceDescriptors",
|
||||
"LoggingIntegrationTest.WriteLogEntries",
|
||||
"ObjectFileMultiThreadedTest.Download",
|
||||
"ObjectReadLargeIntegrationTest.LimitedMemoryGrowth",
|
||||
"SubscriberIntegrationTest.FireAndForget",
|
||||
"SubscriberIntegrationTest.PublishOrdered",
|
||||
"SubscriberIntegrationTest.PublishPullAck",
|
||||
"SubscriberIntegrationTest.RawStub",
|
||||
"SubscriberIntegrationTest.ReportNotFound",
|
||||
"SubscriberIntegrationTest.StreamingSubscriptionBatchSource",
|
||||
"SubscriptionAdminIntegrationTest.SubscriptionCRUD",
|
||||
"TopicAdminIntegrationTest.TopicCRUD"
|
||||
]
|
|
@ -828,14 +828,14 @@ rec {
|
|||
th_TH = th-th;
|
||||
th-th = mkDict {
|
||||
pname = "hunspell-dict-th-th";
|
||||
version = "experimental-2023-03-01";
|
||||
version = "experimental-2024-02-27";
|
||||
dictFileName = "th_TH";
|
||||
readmeFile = "README.md";
|
||||
src = fetchFromGitHub {
|
||||
owner = "SyafiqHadzir";
|
||||
repo = "Hunspell-TH";
|
||||
rev = "9c09f1b7c0eb4d04b9f6f427901686c5c3d9fa54";
|
||||
sha256 = "1wszpnbgj31k72x1vvcfkzcpmxsncdpqsi3zagah7swilpi7cqm4";
|
||||
rev = "62d35f9211ca1eb4c367eac2ae57193efe6e88d2";
|
||||
sha256 = "sha256-t4m4u+qIgJPrKz58Cu2Q+knYm/+cvrNLzQsiiSRTB1A=";
|
||||
};
|
||||
meta = with lib; {
|
||||
description = "Hunspell dictionary for Central Thai (Thailand)";
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "libgbinder";
|
||||
version = "1.1.36";
|
||||
version = "1.1.37";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mer-hybris";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-QTlOiZG6qpNeicMJpOTMSTk2WwKbOzkaLulgmsxYaVI=";
|
||||
sha256 = "sha256-/XxWOaT2f6+0apv0NzMsPoYBf3GLuaXyPkmTMTDtOes=";
|
||||
};
|
||||
|
||||
outputs = [ "out" "dev" ];
|
||||
|
|
|
@ -32,6 +32,11 @@ stdenv.mkDerivation rec {
|
|||
sha256 = "+h0dKLECtvfsxwD5aRTIgiNI9jG/tortUJYFiYMe60g=";
|
||||
};
|
||||
|
||||
depsBuildBuild = [
|
||||
# required to find native gi-docgen when cross compiling
|
||||
pkg-config
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
gi-docgen
|
||||
meson
|
||||
|
|
|
@ -42,7 +42,7 @@ let
|
|||
qtModule = callPackage ./qtModule.nix { };
|
||||
|
||||
qtbase = callPackage ./modules/qtbase.nix {
|
||||
withGtk3 = true;
|
||||
withGtk3 = !stdenv.hostPlatform.isMinGW;
|
||||
inherit (srcs.qtbase) src version;
|
||||
inherit developerBuild;
|
||||
inherit (darwin.apple_sdk_11_0.frameworks)
|
||||
|
@ -69,47 +69,49 @@ let
|
|||
];
|
||||
};
|
||||
env = callPackage ./qt-env.nix { };
|
||||
full = callPackage ({ env, qtbase }: env "qt-full-${qtbase.version}"
|
||||
# `with self` is ok to use here because having these spliced is unnecessary
|
||||
( with self;[
|
||||
qt3d
|
||||
qt5compat
|
||||
qtcharts
|
||||
qtconnectivity
|
||||
qtdatavis3d
|
||||
qtdeclarative
|
||||
qtdoc
|
||||
qtgraphs
|
||||
qtgrpc
|
||||
qthttpserver
|
||||
qtimageformats
|
||||
qtlanguageserver
|
||||
qtlocation
|
||||
qtlottie
|
||||
qtmultimedia
|
||||
qtmqtt
|
||||
qtnetworkauth
|
||||
qtpositioning
|
||||
qtsensors
|
||||
qtserialbus
|
||||
qtserialport
|
||||
qtshadertools
|
||||
qtspeech
|
||||
qtquick3d
|
||||
qtquick3dphysics
|
||||
qtquickeffectmaker
|
||||
qtquicktimeline
|
||||
qtremoteobjects
|
||||
qtsvg
|
||||
qtscxml
|
||||
qttools
|
||||
qttranslations
|
||||
qtvirtualkeyboard
|
||||
qtwebchannel
|
||||
qtwebengine
|
||||
qtwebsockets
|
||||
qtwebview
|
||||
] ++ lib.optionals (!stdenv.hostPlatform.isDarwin) [ qtwayland libglvnd ])) { };
|
||||
full = callPackage
|
||||
({ env, qtbase }: env "qt-full-${qtbase.version}"
|
||||
# `with self` is ok to use here because having these spliced is unnecessary
|
||||
(with self;[
|
||||
qt3d
|
||||
qt5compat
|
||||
qtcharts
|
||||
qtconnectivity
|
||||
qtdatavis3d
|
||||
qtdeclarative
|
||||
qtdoc
|
||||
qtgraphs
|
||||
qtgrpc
|
||||
qthttpserver
|
||||
qtimageformats
|
||||
qtlanguageserver
|
||||
qtlocation
|
||||
qtlottie
|
||||
qtmultimedia
|
||||
qtmqtt
|
||||
qtnetworkauth
|
||||
qtpositioning
|
||||
qtsensors
|
||||
qtserialbus
|
||||
qtserialport
|
||||
qtshadertools
|
||||
qtspeech
|
||||
qtquick3d
|
||||
qtquick3dphysics
|
||||
qtquickeffectmaker
|
||||
qtquicktimeline
|
||||
qtremoteobjects
|
||||
qtsvg
|
||||
qtscxml
|
||||
qttools
|
||||
qttranslations
|
||||
qtvirtualkeyboard
|
||||
qtwebchannel
|
||||
qtwebengine
|
||||
qtwebsockets
|
||||
qtwebview
|
||||
] ++ lib.optionals (!stdenv.isDarwin) [ qtwayland libglvnd ]))
|
||||
{ };
|
||||
|
||||
qt3d = callPackage ./modules/qt3d.nix { };
|
||||
qt5compat = callPackage ./modules/qt5compat.nix { };
|
||||
|
@ -162,11 +164,14 @@ let
|
|||
GameController ImageCaptureCore LocalAuthentication
|
||||
MediaAccessibility MediaPlayer MetalKit Network OpenDirectory Quartz
|
||||
ReplayKit SecurityInterface Vision;
|
||||
qtModule = callPackage ({ qtModule }: qtModule.override {
|
||||
stdenv = if stdenv.hostPlatform.isDarwin
|
||||
then overrideSDK stdenv { darwinMinVersion = "10.13"; darwinSdkVersion = "11.0"; }
|
||||
else stdenv;
|
||||
}) { };
|
||||
qtModule = callPackage
|
||||
({ qtModule }: qtModule.override {
|
||||
stdenv =
|
||||
if stdenv.isDarwin
|
||||
then overrideSDK stdenv { darwinMinVersion = "10.13"; darwinSdkVersion = "11.0"; }
|
||||
else stdenv;
|
||||
})
|
||||
{ };
|
||||
xcbuild = buildPackages.xcbuild.override {
|
||||
productBuildVer = "20A2408";
|
||||
};
|
||||
|
@ -176,21 +181,25 @@ let
|
|||
inherit (darwin.apple_sdk_11_0.frameworks) WebKit;
|
||||
};
|
||||
|
||||
wrapQtAppsHook = callPackage ({ makeBinaryWrapper }: makeSetupHook
|
||||
{
|
||||
name = "wrap-qt6-apps-hook";
|
||||
propagatedBuildInputs = [ makeBinaryWrapper ];
|
||||
} ./hooks/wrap-qt-apps-hook.sh) { };
|
||||
wrapQtAppsHook = callPackage
|
||||
({ makeBinaryWrapper }: makeSetupHook
|
||||
{
|
||||
name = "wrap-qt6-apps-hook";
|
||||
propagatedBuildInputs = [ makeBinaryWrapper ];
|
||||
} ./hooks/wrap-qt-apps-hook.sh)
|
||||
{ };
|
||||
|
||||
qmake = callPackage ({ qtbase }: makeSetupHook
|
||||
{
|
||||
name = "qmake6-hook";
|
||||
propagatedBuildInputs = [ qtbase.dev ];
|
||||
substitutions = {
|
||||
inherit debug;
|
||||
fix_qmake_libtool = ./hooks/fix-qmake-libtool.sh;
|
||||
};
|
||||
} ./hooks/qmake-hook.sh) { };
|
||||
qmake = callPackage
|
||||
({ qtbase }: makeSetupHook
|
||||
{
|
||||
name = "qmake6-hook";
|
||||
propagatedBuildInputs = [ qtbase.dev ];
|
||||
substitutions = {
|
||||
inherit debug;
|
||||
fix_qmake_libtool = ./hooks/fix-qmake-libtool.sh;
|
||||
};
|
||||
} ./hooks/qmake-hook.sh)
|
||||
{ };
|
||||
} // lib.optionalAttrs config.allowAliases {
|
||||
# Convert to a throw on 03-01-2023 and backport the change.
|
||||
# Warnings show up in various cli tool outputs, throws do not.
|
||||
|
@ -203,12 +212,13 @@ let
|
|||
f = addPackages;
|
||||
};
|
||||
|
||||
bootstrapScope = baseScope.overrideScope(final: prev: {
|
||||
bootstrapScope = baseScope.overrideScope (final: prev: {
|
||||
qtbase = prev.qtbase.override { qttranslations = null; };
|
||||
qtdeclarative = null;
|
||||
});
|
||||
|
||||
finalScope = baseScope.overrideScope(final: prev: {
|
||||
finalScope = baseScope.overrideScope (final: prev: {
|
||||
qttranslations = bootstrapScope.qttranslations;
|
||||
});
|
||||
in finalScope
|
||||
in
|
||||
finalScope
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
, patches ? [ ]
|
||||
, version
|
||||
, coreutils
|
||||
, buildPackages
|
||||
, bison
|
||||
, flex
|
||||
, gdb
|
||||
|
@ -79,6 +80,8 @@
|
|||
, EventKit
|
||||
, GSS
|
||||
, MetalKit
|
||||
# mingw
|
||||
, pkgsBuildBuild
|
||||
# optional dependencies
|
||||
, cups
|
||||
, libmysqlclient
|
||||
|
@ -96,6 +99,7 @@
|
|||
|
||||
let
|
||||
debugSymbols = debug || developerBuild;
|
||||
isCrossBuild = !stdenv.buildPlatform.canExecute stdenv.hostPlatform;
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "qtbase";
|
||||
|
@ -110,7 +114,6 @@ stdenv.mkDerivation rec {
|
|||
openssl
|
||||
sqlite
|
||||
zlib
|
||||
unixODBC
|
||||
# Text rendering
|
||||
harfbuzz
|
||||
icu
|
||||
|
@ -119,14 +122,16 @@ stdenv.mkDerivation rec {
|
|||
libpng
|
||||
pcre2
|
||||
pcre
|
||||
libproxy
|
||||
zstd
|
||||
double-conversion
|
||||
libb2
|
||||
md4c
|
||||
double-conversion
|
||||
] ++ lib.optionals (!stdenv.hostPlatform.isMinGW) [
|
||||
libproxy
|
||||
dbus
|
||||
glib
|
||||
# unixODBC drivers
|
||||
unixODBC
|
||||
unixODBCDrivers.psql
|
||||
unixODBCDrivers.sqlite
|
||||
unixODBCDrivers.mariadb
|
||||
|
@ -174,11 +179,16 @@ stdenv.mkDerivation rec {
|
|||
EventKit
|
||||
GSS
|
||||
MetalKit
|
||||
] ++ lib.optional libGLSupported libGL;
|
||||
] ++ lib.optionals libGLSupported [
|
||||
libGL
|
||||
] ++ lib.optionals stdenv.hostPlatform.isMinGW [
|
||||
vulkan-headers
|
||||
vulkan-loader
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
buildInputs = lib.optionals (lib.meta.availableOn stdenv.hostPlatform at-spi2-core) [
|
||||
at-spi2-core
|
||||
] ++ lib.optionals (!stdenv.hostPlatform.isDarwin) [
|
||||
] ++ lib.optionals (lib.meta.availableOn stdenv.hostPlatform libinput) [
|
||||
libinput
|
||||
] ++ lib.optionals (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isx86_64) [
|
||||
AppKit
|
||||
|
@ -186,9 +196,9 @@ stdenv.mkDerivation rec {
|
|||
]
|
||||
++ lib.optional withGtk3 gtk3
|
||||
++ lib.optional developerBuild gdb
|
||||
++ lib.optional (cups != null) cups
|
||||
++ lib.optional (libmysqlclient != null) libmysqlclient
|
||||
++ lib.optional (postgresql != null) postgresql;
|
||||
++ lib.optional (cups != null && lib.meta.availableOn stdenv.hostPlatform cups) cups
|
||||
++ lib.optional (libmysqlclient != null && !stdenv.hostPlatform.isMinGW) libmysqlclient
|
||||
++ lib.optional (postgresql != null && lib.meta.availableOn stdenv.hostPlatform postgresql) postgresql;
|
||||
|
||||
nativeBuildInputs = [ bison flex gperf lndir perl pkg-config which cmake xmlstarlet ninja ]
|
||||
++ lib.optionals stdenv.hostPlatform.isDarwin [ moveBuildTree ];
|
||||
|
@ -203,7 +213,7 @@ stdenv.mkDerivation rec {
|
|||
|
||||
# https://bugreports.qt.io/browse/QTBUG-97568
|
||||
postPatch = ''
|
||||
substituteInPlace src/corelib/CMakeLists.txt --replace-fail "/bin/ls" "${coreutils}/bin/ls"
|
||||
substituteInPlace src/corelib/CMakeLists.txt --replace-fail "/bin/ls" "${buildPackages.coreutils}/bin/ls"
|
||||
'' + lib.optionalString stdenv.hostPlatform.isDarwin ''
|
||||
substituteInPlace cmake/QtPublicAppleHelpers.cmake --replace-fail "/usr/bin/xcrun" "${xcbuild}/bin/xcrun"
|
||||
'';
|
||||
|
@ -232,7 +242,11 @@ stdenv.mkDerivation rec {
|
|||
] ++ lib.optionals stdenv.hostPlatform.isDarwin [
|
||||
# error: 'path' is unavailable: introduced in macOS 10.15
|
||||
"-DQT_FEATURE_cxx17_filesystem=OFF"
|
||||
] ++ lib.optional (qttranslations != null) "-DINSTALL_TRANSLATIONSDIR=${qttranslations}/translations";
|
||||
] ++ lib.optionals isCrossBuild [
|
||||
"-DQT_HOST_PATH=${pkgsBuildBuild.qt6.qtbase}"
|
||||
"-DQt6HostInfo_DIR=${pkgsBuildBuild.qt6.qtbase}/lib/cmake/Qt6HostInfo"
|
||||
]
|
||||
++ lib.optional (qttranslations != null && !isCrossBuild) "-DINSTALL_TRANSLATIONSDIR=${qttranslations}/translations";
|
||||
|
||||
env.NIX_LDFLAGS = toString (lib.optionals stdenv.hostPlatform.isDarwin [
|
||||
# Undefined symbols for architecture arm64: "___gss_c_nt_hostbased_service_oid_desc"
|
||||
|
@ -253,6 +267,8 @@ stdenv.mkDerivation rec {
|
|||
|
||||
dontStrip = debugSymbols;
|
||||
|
||||
dontWrapQtApps = true;
|
||||
|
||||
setupHook = ../hooks/qtbase-setup-hook.sh;
|
||||
|
||||
meta = with lib; {
|
||||
|
@ -260,6 +276,6 @@ stdenv.mkDerivation rec {
|
|||
description = "A cross-platform application framework for C++";
|
||||
license = with licenses; [ fdl13Plus gpl2Plus lgpl21Plus lgpl3Plus ];
|
||||
maintainers = with maintainers; [ milahu nickcao LunNova ];
|
||||
platforms = platforms.unix;
|
||||
platforms = platforms.unix ++ platforms.windows;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,19 +1,19 @@
|
|||
From f0c4d3860b75cb064d066045907622d536044096 Mon Sep 17 00:00:00 2001
|
||||
From 6f0e6fe1e13ca5844a93d3b97111b7ece7e60f0f Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Milan=20P=C3=A4ssler?= <me@pbb.lc>
|
||||
Date: Sun, 10 May 2020 12:47:28 +0200
|
||||
Subject: [PATCH 11/11] qtbase: derive plugin load path from PATH
|
||||
|
||||
---
|
||||
src/corelib/kernel/qcoreapplication.cpp | 10 ++++++++++
|
||||
1 file changed, 10 insertions(+)
|
||||
src/corelib/kernel/qcoreapplication.cpp | 9 +++++++++
|
||||
1 file changed, 9 insertions(+)
|
||||
|
||||
diff --git a/src/corelib/kernel/qcoreapplication.cpp b/src/corelib/kernel/qcoreapplication.cpp
|
||||
index a80efbb5622..8cf9e85da43 100644
|
||||
index a80efbb5622..0d41dabeed3 100644
|
||||
--- a/src/corelib/kernel/qcoreapplication.cpp
|
||||
+++ b/src/corelib/kernel/qcoreapplication.cpp
|
||||
@@ -2991,6 +2991,16 @@ QStringList QCoreApplication::libraryPathsLocked()
|
||||
QStringList *app_libpaths = new QStringList;
|
||||
coreappdata()->app_libpaths.reset(app_libpaths);
|
||||
@@ -3032,6 +3032,15 @@ QStringList QCoreApplication::libraryPathsLocked()
|
||||
app_libpaths->append(installPathPlugins);
|
||||
}
|
||||
|
||||
+ // Add library paths derived from PATH
|
||||
+ const QStringList paths = QFile::decodeName(qgetenv("PATH")).split(QStringLiteral(":"));
|
||||
|
@ -24,10 +24,9 @@ index a80efbb5622..8cf9e85da43 100644
|
|||
+ }
|
||||
+ }
|
||||
+
|
||||
+
|
||||
auto setPathsFromEnv = [&](QString libPathEnv) {
|
||||
if (!libPathEnv.isEmpty()) {
|
||||
QStringList paths = libPathEnv.split(QDir::listSeparator(), Qt::SkipEmptyParts);
|
||||
// If QCoreApplication is not yet instantiated,
|
||||
// make sure we add the application path when we construct the QCoreApplication
|
||||
if (self) self->d_func()->appendApplicationPathToLibraryPaths();
|
||||
--
|
||||
2.42.0
|
||||
2.43.1
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "suitesparse-graphblas";
|
||||
version = "9.0.1";
|
||||
version = "9.0.2";
|
||||
|
||||
outputs = [ "out" "dev" ];
|
||||
|
||||
|
@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
|
|||
owner = "DrTimothyAldenDavis";
|
||||
repo = "GraphBLAS";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-eNd6jlpW3KiRvOCKvNP5ttpgjPPXt2M2vLhk1Zn4gTE=";
|
||||
hash = "sha256-wPg5A1lwtRPDO5gPbllEFkRJFRIhkqqaVd4CBdPavKE=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user