Merge master into haskell-updates
This commit is contained in:
commit
a1ed79952d
|
@ -1,37 +1,104 @@
|
||||||
# pkgs.ociTools {#sec-pkgs-ociTools}
|
# 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}
|
## 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
|
```nix
|
||||||
buildContainer {
|
{ ociTools, lib, bash }:
|
||||||
|
ociTools.buildContainer {
|
||||||
args = [
|
args = [
|
||||||
(with pkgs;
|
(lib.getExe bash)
|
||||||
writeScript "run.sh" ''
|
|
||||||
#!${bash}/bin/bash
|
|
||||||
exec ${bash}/bin/bash
|
|
||||||
'').outPath
|
|
||||||
];
|
];
|
||||||
|
|
||||||
mounts = {
|
|
||||||
"/data" = {
|
|
||||||
type = "none";
|
|
||||||
source = "/var/lib/mydata";
|
|
||||||
options = [ "bind" ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
readonly = false;
|
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 {#sec-pkgs-portableService}
|
||||||
|
|
||||||
`pkgs.portableService` is a function to create _portable service images_,
|
`pkgs.portableService` is a function to create [Portable Services](https://systemd.io/PORTABLE_SERVICES/) in a read-only, immutable, `squashfs` raw disk image.
|
||||||
as read-only, immutable, `squashfs` archives.
|
This lets you use Nix to build images which can be run on many recent Linux distributions.
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
::: {.note}
|
::: {.note}
|
||||||
Portable services are supported starting with systemd 239 (released on 2018-06-22).
|
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}
|
[]{#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
|
```nix
|
||||||
pkgs.portableService {
|
{ lib, writeText, portableService, hello }:
|
||||||
pname = "demo";
|
let
|
||||||
version = "1.0";
|
hello-service = writeText "hello.service" ''
|
||||||
units = [ demo-service demo-socket ];
|
[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
|
After building the package, the generated image can be loaded into a system through {manpage}`portablectl(1)`:
|
||||||
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.
|
|
||||||
|
|
||||||
::: {.note}
|
```shell
|
||||||
The `.raw` file extension of the image is required by the portable services specification.
|
$ 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:
|
:::{.example #ex-portableService-symlinks}
|
||||||
- `description`, `homepage`
|
# 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.
|
Some services may expect files or directories to be available globally.
|
||||||
Default to empty values, not added to os-release.
|
An example is a service which expects all trusted SSL certificates to exist in a specific location by default.
|
||||||
- `symlinks`
|
|
||||||
|
|
||||||
A list of attribute sets {object, symlink}. Symlinks will be created in the root filesystem of the image to
|
To make things available globally, you must specify the `symlinks` attribute when using `portableService`.
|
||||||
objects in the Nix store. Defaults to an empty list.
|
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`).
|
||||||
- `contents`
|
|
||||||
|
|
||||||
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
|
```nix
|
||||||
symlinks = [
|
{ lib, writeText, portableService, hello, cacert }:
|
||||||
{ object = "${pkgs.cacert}/etc/ssl"; symlink = "/etc/ssl"; }
|
let
|
||||||
{ object = "${pkgs.bash}/bin/bash"; symlink = "/bin/sh"; }
|
hello-service = writeText "hello.service" ''
|
||||||
{ object = "${pkgs.php}/bin/php"; symlink = "/usr/bin/php"; }
|
[Unit]
|
||||||
];
|
Description=Hello world service
|
||||||
```
|
|
||||||
to create these symlinks for legacy applications that assume them existing globally.
|
|
||||||
|
|
||||||
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:
|
[Service]
|
||||||
```console
|
Type=oneshot
|
||||||
portablectl attach demo_1.0.raw
|
ExecStart=${lib.getExe hello}
|
||||||
systemctl enable --now demo.socket
|
'';
|
||||||
systemctl enable --now demo.service
|
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",
|
"passwd(5)": "https://man.archlinux.org/man/passwd.5",
|
||||||
"group(5)": "https://man.archlinux.org/man/group.5",
|
"group(5)": "https://man.archlinux.org/man/group.5",
|
||||||
"login.defs(5)": "https://man.archlinux.org/man/login.defs.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
|
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}
|
:::{.example}
|
||||||
|
|
||||||
# Extend a fixed-point function with an overlay
|
# Extend a fixed-point function with an overlay
|
||||||
|
@ -230,13 +236,6 @@ rec {
|
||||||
|
|
||||||
fix (extends (final: prev: { c = final.a + final.b; }) f)
|
fix (extends (final: prev: { c = final.a + final.b; }) f)
|
||||||
=> { a = 1; b = 3; c = 4; }
|
=> { 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 =
|
extends =
|
||||||
# The overlay to apply to the fixed-point function
|
# The overlay to apply to the fixed-point function
|
||||||
|
|
|
@ -203,6 +203,15 @@
|
||||||
fingerprint = "D292 365E 3C46 A5AA 75EE B30B 78DB 7EDE 3540 794B";
|
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 = {
|
_6AA4FD = {
|
||||||
email = "f6442954@gmail.com";
|
email = "f6442954@gmail.com";
|
||||||
github = "6AA4FD";
|
github = "6AA4FD";
|
||||||
|
@ -7038,6 +7047,15 @@
|
||||||
github = "ghostbuster91";
|
github = "ghostbuster91";
|
||||||
githubId = 5662622;
|
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 = {
|
ghuntley = {
|
||||||
email = "ghuntley@ghuntley.com";
|
email = "ghuntley@ghuntley.com";
|
||||||
github = "ghuntley";
|
github = "ghuntley";
|
||||||
|
@ -20280,6 +20298,12 @@
|
||||||
githubId = 326263;
|
githubId = 326263;
|
||||||
name = "Danny Wilson";
|
name = "Danny Wilson";
|
||||||
};
|
};
|
||||||
|
vizid = {
|
||||||
|
email = "vizid1337@gmail.com";
|
||||||
|
github = "ViZiD";
|
||||||
|
githubId = 7444430;
|
||||||
|
name = "Radik Islamov";
|
||||||
|
};
|
||||||
vklquevs = {
|
vklquevs = {
|
||||||
email = "vklquevs@gmail.com";
|
email = "vklquevs@gmail.com";
|
||||||
github = "vklquevs";
|
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`
|
It returns a set with INI-specific attributes `type` and `generate`
|
||||||
as specified [below](#pkgs-formats-result).
|
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` { }
|
`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).
|
- [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).
|
- [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)
|
- [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:
|
targetToUnit = name: def:
|
||||||
{ inherit (def) aliases wantedBy requiredBy enable overrideStrategy;
|
{ inherit (def) aliases wantedBy requiredBy upheldBy enable overrideStrategy;
|
||||||
text =
|
text =
|
||||||
''
|
''
|
||||||
[Unit]
|
[Unit]
|
||||||
|
@ -387,7 +387,7 @@ in rec {
|
||||||
};
|
};
|
||||||
|
|
||||||
serviceToUnit = name: def:
|
serviceToUnit = name: def:
|
||||||
{ inherit (def) aliases wantedBy requiredBy enable overrideStrategy;
|
{ inherit (def) aliases wantedBy requiredBy upheldBy enable overrideStrategy;
|
||||||
text = commonUnitText def (''
|
text = commonUnitText def (''
|
||||||
[Service]
|
[Service]
|
||||||
'' + (let env = cfg.globalEnvironment // def.environment;
|
'' + (let env = cfg.globalEnvironment // def.environment;
|
||||||
|
@ -408,7 +408,7 @@ in rec {
|
||||||
};
|
};
|
||||||
|
|
||||||
socketToUnit = name: def:
|
socketToUnit = name: def:
|
||||||
{ inherit (def) aliases wantedBy requiredBy enable overrideStrategy;
|
{ inherit (def) aliases wantedBy requiredBy upheldBy enable overrideStrategy;
|
||||||
text = commonUnitText def ''
|
text = commonUnitText def ''
|
||||||
[Socket]
|
[Socket]
|
||||||
${attrsToSection def.socketConfig}
|
${attrsToSection def.socketConfig}
|
||||||
|
@ -418,7 +418,7 @@ in rec {
|
||||||
};
|
};
|
||||||
|
|
||||||
timerToUnit = name: def:
|
timerToUnit = name: def:
|
||||||
{ inherit (def) aliases wantedBy requiredBy enable overrideStrategy;
|
{ inherit (def) aliases wantedBy requiredBy upheldBy enable overrideStrategy;
|
||||||
text = commonUnitText def ''
|
text = commonUnitText def ''
|
||||||
[Timer]
|
[Timer]
|
||||||
${attrsToSection def.timerConfig}
|
${attrsToSection def.timerConfig}
|
||||||
|
@ -426,7 +426,7 @@ in rec {
|
||||||
};
|
};
|
||||||
|
|
||||||
pathToUnit = name: def:
|
pathToUnit = name: def:
|
||||||
{ inherit (def) aliases wantedBy requiredBy enable overrideStrategy;
|
{ inherit (def) aliases wantedBy requiredBy upheldBy enable overrideStrategy;
|
||||||
text = commonUnitText def ''
|
text = commonUnitText def ''
|
||||||
[Path]
|
[Path]
|
||||||
${attrsToSection def.pathConfig}
|
${attrsToSection def.pathConfig}
|
||||||
|
@ -434,7 +434,7 @@ in rec {
|
||||||
};
|
};
|
||||||
|
|
||||||
mountToUnit = name: def:
|
mountToUnit = name: def:
|
||||||
{ inherit (def) aliases wantedBy requiredBy enable overrideStrategy;
|
{ inherit (def) aliases wantedBy requiredBy upheldBy enable overrideStrategy;
|
||||||
text = commonUnitText def ''
|
text = commonUnitText def ''
|
||||||
[Mount]
|
[Mount]
|
||||||
${attrsToSection def.mountConfig}
|
${attrsToSection def.mountConfig}
|
||||||
|
@ -442,7 +442,7 @@ in rec {
|
||||||
};
|
};
|
||||||
|
|
||||||
automountToUnit = name: def:
|
automountToUnit = name: def:
|
||||||
{ inherit (def) aliases wantedBy requiredBy enable overrideStrategy;
|
{ inherit (def) aliases wantedBy requiredBy upheldBy enable overrideStrategy;
|
||||||
text = commonUnitText def ''
|
text = commonUnitText def ''
|
||||||
[Automount]
|
[Automount]
|
||||||
${attrsToSection def.automountConfig}
|
${attrsToSection def.automountConfig}
|
||||||
|
@ -450,7 +450,7 @@ in rec {
|
||||||
};
|
};
|
||||||
|
|
||||||
sliceToUnit = name: def:
|
sliceToUnit = name: def:
|
||||||
{ inherit (def) aliases wantedBy requiredBy enable overrideStrategy;
|
{ inherit (def) aliases wantedBy requiredBy upheldBy enable overrideStrategy;
|
||||||
text = commonUnitText def ''
|
text = commonUnitText def ''
|
||||||
[Slice]
|
[Slice]
|
||||||
${attrsToSection def.sliceConfig}
|
${attrsToSection def.sliceConfig}
|
||||||
|
|
|
@ -512,6 +512,7 @@
|
||||||
./services/editors/infinoted.nix
|
./services/editors/infinoted.nix
|
||||||
./services/finance/odoo.nix
|
./services/finance/odoo.nix
|
||||||
./services/games/archisteamfarm.nix
|
./services/games/archisteamfarm.nix
|
||||||
|
./services/games/armagetronad.nix
|
||||||
./services/games/crossfire-server.nix
|
./services/games/crossfire-server.nix
|
||||||
./services/games/deliantra-server.nix
|
./services/games/deliantra-server.nix
|
||||||
./services/games/factorio.nix
|
./services/games/factorio.nix
|
||||||
|
|
|
@ -119,10 +119,10 @@ in {
|
||||||
extraPackages = mkOption {
|
extraPackages = mkOption {
|
||||||
type = with types; listOf package;
|
type = with types; listOf package;
|
||||||
default = with pkgs; [
|
default = with pkgs; [
|
||||||
swaylock swayidle foot dmenu
|
swaylock swayidle foot dmenu wmenu
|
||||||
];
|
];
|
||||||
defaultText = literalExpression ''
|
defaultText = literalExpression ''
|
||||||
with pkgs; [ swaylock swayidle foot dmenu ];
|
with pkgs; [ swaylock swayidle foot dmenu wmenu ];
|
||||||
'';
|
'';
|
||||||
example = literalExpression ''
|
example = literalExpression ''
|
||||||
with pkgs; [
|
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";
|
Restart = "on-failure";
|
||||||
};
|
};
|
||||||
environment = env;
|
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 = {
|
systemd.services.paperless-web = {
|
||||||
|
|
|
@ -213,7 +213,7 @@ in
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
User = "searx";
|
User = "searx";
|
||||||
Group = "searx";
|
Group = "searx";
|
||||||
ExecStart = "${cfg.package}/bin/searx-run";
|
ExecStart = lib.getExe cfg.package;
|
||||||
} // optionalAttrs (cfg.environmentFile != null)
|
} // optionalAttrs (cfg.environmentFile != null)
|
||||||
{ EnvironmentFile = builtins.toPath cfg.environmentFile; };
|
{ EnvironmentFile = builtins.toPath cfg.environmentFile; };
|
||||||
environment = {
|
environment = {
|
||||||
|
|
|
@ -24,12 +24,24 @@ let
|
||||||
confNoServer = concatStringsSep "\n" ((mapAttrsToList (toConf "") (builtins.removeAttrs cfg.settings [ "server" ])) ++ [""]);
|
confNoServer = concatStringsSep "\n" ((mapAttrsToList (toConf "") (builtins.removeAttrs cfg.settings [ "server" ])) ++ [""]);
|
||||||
confServer = concatStringsSep "\n" (mapAttrsToList (toConf " ") (builtins.removeAttrs cfg.settings.server [ "define-tag" ]));
|
confServer = concatStringsSep "\n" (mapAttrsToList (toConf " ") (builtins.removeAttrs cfg.settings.server [ "define-tag" ]));
|
||||||
|
|
||||||
confFile = pkgs.writeText "unbound.conf" ''
|
confFileUnchecked = pkgs.writeText "unbound.conf" ''
|
||||||
server:
|
server:
|
||||||
${optionalString (cfg.settings.server.define-tag != "") (toOption " " "define-tag" cfg.settings.server.define-tag)}
|
${optionalString (cfg.settings.server.define-tag != "") (toOption " " "define-tag" cfg.settings.server.define-tag)}
|
||||||
${confServer}
|
${confServer}
|
||||||
${confNoServer}
|
${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";
|
rootTrustAnchorFile = "${cfg.stateDir}/root.key";
|
||||||
|
|
||||||
|
@ -62,6 +74,17 @@ in {
|
||||||
description = lib.mdDoc "Directory holding all state for unbound to run.";
|
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 {
|
resolveLocalQueries = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = true;
|
default = true;
|
||||||
|
|
|
@ -132,6 +132,28 @@ in
|
||||||
default = "WriteReplica";
|
default = "WriteReplica";
|
||||||
type = lib.types.enum [ "WriteReplica" "WriteReplicaNoUI" "ReadOnlyReplica" ];
|
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 = { };
|
default = { };
|
||||||
|
@ -233,6 +255,14 @@ in
|
||||||
|
|
||||||
environment.systemPackages = lib.mkIf cfg.enableClient [ cfg.package ];
|
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 {
|
systemd.services.kanidm = lib.mkIf cfg.enableServer {
|
||||||
description = "kanidm identity management daemon";
|
description = "kanidm identity management daemon";
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
@ -253,6 +283,8 @@ in
|
||||||
BindPaths = [
|
BindPaths = [
|
||||||
# To create the socket
|
# To create the socket
|
||||||
"/run/kanidmd:/run/kanidmd"
|
"/run/kanidmd:/run/kanidmd"
|
||||||
|
# To store backups
|
||||||
|
cfg.serverSettings.online_backup.path
|
||||||
];
|
];
|
||||||
|
|
||||||
AmbientCapabilities = [ "CAP_NET_BIND_SERVICE" ];
|
AmbientCapabilities = [ "CAP_NET_BIND_SERVICE" ];
|
||||||
|
|
|
@ -216,9 +216,11 @@ in
|
||||||
requires = [ "podman.service" ];
|
requires = [ "podman.service" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
systemd.services.podman.environment = config.networking.proxy.envVars;
|
||||||
systemd.sockets.podman.wantedBy = [ "sockets.target" ];
|
systemd.sockets.podman.wantedBy = [ "sockets.target" ];
|
||||||
systemd.sockets.podman.socketConfig.SocketGroup = "podman";
|
systemd.sockets.podman.socketConfig.SocketGroup = "podman";
|
||||||
|
|
||||||
|
systemd.user.services.podman.environment = config.networking.proxy.envVars;
|
||||||
systemd.user.sockets.podman.wantedBy = [ "sockets.target" ];
|
systemd.user.sockets.podman.wantedBy = [ "sockets.target" ];
|
||||||
|
|
||||||
systemd.timers.podman-prune.timerConfig = lib.mkIf cfg.autoPrune.enable {
|
systemd.timers.podman-prune.timerConfig = lib.mkIf cfg.autoPrune.enable {
|
||||||
|
|
|
@ -128,6 +128,7 @@ in {
|
||||||
appliance-repart-image = runTest ./appliance-repart-image.nix;
|
appliance-repart-image = runTest ./appliance-repart-image.nix;
|
||||||
apparmor = handleTest ./apparmor.nix {};
|
apparmor = handleTest ./apparmor.nix {};
|
||||||
archi = handleTest ./archi.nix {};
|
archi = handleTest ./archi.nix {};
|
||||||
|
armagetronad = handleTest ./armagetronad.nix {};
|
||||||
atd = handleTest ./atd.nix {};
|
atd = handleTest ./atd.nix {};
|
||||||
atop = handleTest ./atop.nix {};
|
atop = handleTest ./atop.nix {};
|
||||||
atuin = handleTest ./atuin.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
|
# fancy setup: run in uWSGI and use nginx as proxy
|
||||||
nodes.fancy = { ... }: {
|
nodes.fancy = { config, ... }: {
|
||||||
imports = [ ../modules/profiles/minimal.nix ];
|
imports = [ ../modules/profiles/minimal.nix ];
|
||||||
|
|
||||||
services.searx = {
|
services.searx = {
|
||||||
|
@ -65,7 +65,7 @@ import ./make-test-python.nix ({ pkgs, ...} :
|
||||||
include ${pkgs.nginx}/conf/uwsgi_params;
|
include ${pkgs.nginx}/conf/uwsgi_params;
|
||||||
uwsgi_pass unix:/run/searx/uwsgi.sock;
|
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
|
# 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"
|
"${pkgs.curl}/bin/curl --fail http://localhost/searx >&2"
|
||||||
)
|
)
|
||||||
fancy.succeed(
|
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 {
|
pythonPackages.buildPythonApplication rec {
|
||||||
pname = "mopidy-spotify";
|
pname = "mopidy-spotify";
|
||||||
version = "unstable-2024-02-11";
|
version = "unstable-2024-02-27";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "mopidy";
|
owner = "mopidy";
|
||||||
repo = "mopidy-spotify";
|
repo = "mopidy-spotify";
|
||||||
rev = "fc6ffb3bbbae9224316e2a888db08ef56608966a";
|
rev = "112d4abbb3f5b6477dab796f2824fa42196bfa0a";
|
||||||
hash = "sha256-V1SW8OyuBKLbUoQ4O5iiS4mq3MOXidcVKpiw125vxjQ=";
|
hash = "sha256-RkXDzAbOOll3uCNZ2mFRnjqMkT/NkXOGjywLRTC9i60=";
|
||||||
};
|
};
|
||||||
|
|
||||||
propagatedBuildInputs = [
|
propagatedBuildInputs = [
|
||||||
|
|
|
@ -6,13 +6,13 @@
|
||||||
|
|
||||||
python3Packages.buildPythonApplication rec {
|
python3Packages.buildPythonApplication rec {
|
||||||
pname = "pyradio";
|
pname = "pyradio";
|
||||||
version = "0.9.1";
|
version = "0.9.2.25";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "coderholic";
|
owner = "coderholic";
|
||||||
repo = pname;
|
repo = "pyradio";
|
||||||
rev = "refs/tags/${version}";
|
rev = "refs/tags/${version}";
|
||||||
hash = "sha256-tu/qlrbTcUCIRF15x9ATKHH+LDy1OsGJpo5x+CerTKg=";
|
hash = "sha256-GkOp0iK84HDvVH8RmtmIKJ5EtQIECgZS5g8pmaIhUcc=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
|
@ -20,9 +20,12 @@ python3Packages.buildPythonApplication rec {
|
||||||
];
|
];
|
||||||
|
|
||||||
propagatedBuildInputs = with python3Packages; [
|
propagatedBuildInputs = with python3Packages; [
|
||||||
requests
|
|
||||||
psutil
|
|
||||||
dnspython
|
dnspython
|
||||||
|
netifaces
|
||||||
|
psutil
|
||||||
|
python-dateutil
|
||||||
|
requests
|
||||||
|
rich
|
||||||
];
|
];
|
||||||
|
|
||||||
checkPhase = ''
|
checkPhase = ''
|
||||||
|
|
|
@ -5,6 +5,8 @@ let
|
||||||
inherit (self) callPackage;
|
inherit (self) callPackage;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
inherit (pkgs) emacspeak;
|
||||||
|
|
||||||
acm = callPackage ./manual-packages/acm { };
|
acm = callPackage ./manual-packages/acm { };
|
||||||
|
|
||||||
acm-terminal = callPackage ./manual-packages/acm-terminal { };
|
acm-terminal = callPackage ./manual-packages/acm-terminal { };
|
||||||
|
@ -31,8 +33,6 @@ in
|
||||||
|
|
||||||
elisp-ffi = callPackage ./manual-packages/elisp-ffi { };
|
elisp-ffi = callPackage ./manual-packages/elisp-ffi { };
|
||||||
|
|
||||||
emacspeak = callPackage ./manual-packages/emacspeak { };
|
|
||||||
|
|
||||||
ess-R-object-popup = callPackage ./manual-packages/ess-R-object-popup { };
|
ess-R-object-popup = callPackage ./manual-packages/ess-R-object-popup { };
|
||||||
|
|
||||||
evil-markdown = callPackage ./manual-packages/evil-markdown { };
|
evil-markdown = callPackage ./manual-packages/evil-markdown { };
|
||||||
|
|
|
@ -4,13 +4,13 @@
|
||||||
|
|
||||||
buildGoModule rec {
|
buildGoModule rec {
|
||||||
pname = "orbiton";
|
pname = "orbiton";
|
||||||
version = "2.65.10";
|
version = "2.65.11";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "xyproto";
|
owner = "xyproto";
|
||||||
repo = "orbiton";
|
repo = "orbiton";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
hash = "sha256-z81Xled6OFs9tKVJgUnws81C86Vle5XR85f3z96N2Gw=";
|
hash = "sha256-eb7Ku1hgvYdmRgemXcEZMl53oNXYcomh4wYHpRzLTUc=";
|
||||||
};
|
};
|
||||||
|
|
||||||
vendorHash = null;
|
vendorHash = null;
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -50,12 +50,12 @@
|
||||||
};
|
};
|
||||||
arduino = buildGrammar {
|
arduino = buildGrammar {
|
||||||
language = "arduino";
|
language = "arduino";
|
||||||
version = "0.0.0+rev=2372f16";
|
version = "0.0.0+rev=a282270";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "ObserverOfTime";
|
owner = "ObserverOfTime";
|
||||||
repo = "tree-sitter-arduino";
|
repo = "tree-sitter-arduino";
|
||||||
rev = "2372f163b8416eeea674686fe0222e39fa06bad5";
|
rev = "a282270857b7be447b8be91411468349a31d73b7";
|
||||||
hash = "sha256-nX0JXEP+fAADlKqMA1rrhKlUS4JMrOtFTQ/wxoOxcIY=";
|
hash = "sha256-NAE/E3glGz509nOKO5xsJIwe1Q2OSh6Aj5krUOVhqvw=";
|
||||||
};
|
};
|
||||||
meta.homepage = "https://github.com/ObserverOfTime/tree-sitter-arduino";
|
meta.homepage = "https://github.com/ObserverOfTime/tree-sitter-arduino";
|
||||||
};
|
};
|
||||||
|
@ -116,14 +116,14 @@
|
||||||
};
|
};
|
||||||
bass = buildGrammar {
|
bass = buildGrammar {
|
||||||
language = "bass";
|
language = "bass";
|
||||||
version = "0.0.0+rev=27f110d";
|
version = "0.0.0+rev=c9ba456";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "amaanq";
|
owner = "vito";
|
||||||
repo = "tree-sitter-bass";
|
repo = "tree-sitter-bass";
|
||||||
rev = "27f110dfe79620993f5493ffa0d0f2fe12d250ed";
|
rev = "c9ba4568af24cd3403029730687c0a43d1350a43";
|
||||||
hash = "sha256-OmYtp2TAsAjw2fgdSezHUrP46b/QXgCbDeJa4ANrtvY=";
|
hash = "sha256-F131TkIt2mW2n8Da3zI1/B0yoT9Ezo2hWoptpsdMrb4=";
|
||||||
};
|
};
|
||||||
meta.homepage = "https://github.com/amaanq/tree-sitter-bass";
|
meta.homepage = "https://github.com/vito/tree-sitter-bass";
|
||||||
};
|
};
|
||||||
beancount = buildGrammar {
|
beancount = buildGrammar {
|
||||||
language = "beancount";
|
language = "beancount";
|
||||||
|
@ -182,12 +182,12 @@
|
||||||
};
|
};
|
||||||
c = buildGrammar {
|
c = buildGrammar {
|
||||||
language = "c";
|
language = "c";
|
||||||
version = "0.0.0+rev=72a60ea";
|
version = "0.0.0+rev=652433f";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "tree-sitter";
|
owner = "tree-sitter";
|
||||||
repo = "tree-sitter-c";
|
repo = "tree-sitter-c";
|
||||||
rev = "72a60ea888fb59a8e143883661f021139c905b74";
|
rev = "652433fce487d8c3943207da38e3e65e4550e288";
|
||||||
hash = "sha256-huEi/PEzjG9mtwL30mJ2oVy+D64d8I9Z/LZc856qlbw=";
|
hash = "sha256-Ld8ufwdOVqRYb9YpOa6z6fWoA+gj0w0nlq3dqhFCap8=";
|
||||||
};
|
};
|
||||||
meta.homepage = "https://github.com/tree-sitter/tree-sitter-c";
|
meta.homepage = "https://github.com/tree-sitter/tree-sitter-c";
|
||||||
};
|
};
|
||||||
|
@ -226,12 +226,12 @@
|
||||||
};
|
};
|
||||||
chatito = buildGrammar {
|
chatito = buildGrammar {
|
||||||
language = "chatito";
|
language = "chatito";
|
||||||
version = "0.0.0+rev=308b591";
|
version = "0.0.0+rev=7162ec1";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "ObserverOfTime";
|
owner = "ObserverOfTime";
|
||||||
repo = "tree-sitter-chatito";
|
repo = "tree-sitter-chatito";
|
||||||
rev = "308b5913fd2ae6b527183ba1b3a490f90da32012";
|
rev = "7162ec1e8e9154fb334e84aa7637a4af051dfe42";
|
||||||
hash = "sha256-oD49Rc1J/CkIAqEFI87efdzGLYl73se0ekpQll/Mpxs=";
|
hash = "sha256-phvENW6wEqhKQakeXxsTclhSmFWFgfK9ztCszOGuaYY=";
|
||||||
};
|
};
|
||||||
meta.homepage = "https://github.com/ObserverOfTime/tree-sitter-chatito";
|
meta.homepage = "https://github.com/ObserverOfTime/tree-sitter-chatito";
|
||||||
};
|
};
|
||||||
|
@ -248,12 +248,12 @@
|
||||||
};
|
};
|
||||||
cmake = buildGrammar {
|
cmake = buildGrammar {
|
||||||
language = "cmake";
|
language = "cmake";
|
||||||
version = "0.0.0+rev=73ab4b8";
|
version = "0.0.0+rev=f8de25f";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "uyha";
|
owner = "uyha";
|
||||||
repo = "tree-sitter-cmake";
|
repo = "tree-sitter-cmake";
|
||||||
rev = "73ab4b8e9522f014a67f87f585e820d36fa47408";
|
rev = "f8de25f30757a2def006a7c144354710fe63dcf3";
|
||||||
hash = "sha256-5X4ho6tqPZFQWqoQ6WBsfuA+RbxTX5XzX7xzyFSTifw=";
|
hash = "sha256-J8Ro3J9kkH7k/v+nwekCotoS/l28yInhk9p/xaSbegc=";
|
||||||
};
|
};
|
||||||
meta.homepage = "https://github.com/uyha/tree-sitter-cmake";
|
meta.homepage = "https://github.com/uyha/tree-sitter-cmake";
|
||||||
};
|
};
|
||||||
|
@ -314,12 +314,12 @@
|
||||||
};
|
};
|
||||||
cpp = buildGrammar {
|
cpp = buildGrammar {
|
||||||
language = "cpp";
|
language = "cpp";
|
||||||
version = "0.0.0+rev=3d98832";
|
version = "0.0.0+rev=e0c1678";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "tree-sitter";
|
owner = "tree-sitter";
|
||||||
repo = "tree-sitter-cpp";
|
repo = "tree-sitter-cpp";
|
||||||
rev = "3d988327a1cfd724c0d195b37a1056174fae99bc";
|
rev = "e0c1678a78731e78655b7d953efb4daecf58be46";
|
||||||
hash = "sha256-s7+dRY3OWE7iz9nlqHEOyLlrWaDPF0buDSIjsRYPc7s=";
|
hash = "sha256-CdNCVDMAmeJrHgPb2JLxFHj/tHnUYC8flmxj+UaVXTo=";
|
||||||
};
|
};
|
||||||
meta.homepage = "https://github.com/tree-sitter/tree-sitter-cpp";
|
meta.homepage = "https://github.com/tree-sitter/tree-sitter-cpp";
|
||||||
};
|
};
|
||||||
|
@ -348,12 +348,12 @@
|
||||||
};
|
};
|
||||||
cuda = buildGrammar {
|
cuda = buildGrammar {
|
||||||
language = "cuda";
|
language = "cuda";
|
||||||
version = "0.0.0+rev=2c6e806";
|
version = "0.0.0+rev=221179d";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "theHamsta";
|
owner = "theHamsta";
|
||||||
repo = "tree-sitter-cuda";
|
repo = "tree-sitter-cuda";
|
||||||
rev = "2c6e806949197e7898910c78f514a3b7ff679068";
|
rev = "221179d4287a2c24c08e4c67ff383ef67dc32156";
|
||||||
hash = "sha256-JAShJo+jDv4kzFCPID0C3EokmeiWxMVcJoEsVOzKBEw=";
|
hash = "sha256-e01PTB+SduikiiDvOW411v0pBXCqOFBWlu3HgmM6jFg=";
|
||||||
};
|
};
|
||||||
meta.homepage = "https://github.com/theHamsta/tree-sitter-cuda";
|
meta.homepage = "https://github.com/theHamsta/tree-sitter-cuda";
|
||||||
};
|
};
|
||||||
|
@ -370,12 +370,12 @@
|
||||||
};
|
};
|
||||||
d = buildGrammar {
|
d = buildGrammar {
|
||||||
language = "d";
|
language = "d";
|
||||||
version = "0.0.0+rev=d9a1a2e";
|
version = "0.0.0+rev=a33d400";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "gdamore";
|
owner = "gdamore";
|
||||||
repo = "tree-sitter-d";
|
repo = "tree-sitter-d";
|
||||||
rev = "d9a1a2ed77017c23f715643f4739433a5ea7ab6f";
|
rev = "a33d400f025d6bbd37b4c681c93054976f579890";
|
||||||
hash = "sha256-GgecDpsZMBTEqHjSbNyUUA6HzGuYEgtqZ9AB+6+fsDo=";
|
hash = "sha256-LUb+1dTj1IP5ZtWaWBT8UWnGEqb0DJodgbkwnT7xywk=";
|
||||||
};
|
};
|
||||||
meta.homepage = "https://github.com/gdamore/tree-sitter-d";
|
meta.homepage = "https://github.com/gdamore/tree-sitter-d";
|
||||||
};
|
};
|
||||||
|
@ -469,12 +469,12 @@
|
||||||
};
|
};
|
||||||
dtd = buildGrammar {
|
dtd = buildGrammar {
|
||||||
language = "dtd";
|
language = "dtd";
|
||||||
version = "0.0.0+rev=2743ff8";
|
version = "0.0.0+rev=52b3783";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "tree-sitter-grammars";
|
owner = "tree-sitter-grammars";
|
||||||
repo = "tree-sitter-xml";
|
repo = "tree-sitter-xml";
|
||||||
rev = "2743ff864eac85cec830ff400f2e0024b9ca588b";
|
rev = "52b3783d0c89a69ec64b2d49eee95f44a7fdcd2a";
|
||||||
hash = "sha256-wuj3Q+LAtAS99pwJUD+3BzndVeNhzvQlaugzTHRvUjI=";
|
hash = "sha256-DVx/JwQXFEgY3XXo2rOVIWBRHdqprNgja9lAashkh5g=";
|
||||||
};
|
};
|
||||||
location = "dtd";
|
location = "dtd";
|
||||||
meta.homepage = "https://github.com/tree-sitter-grammars/tree-sitter-xml";
|
meta.homepage = "https://github.com/tree-sitter-grammars/tree-sitter-xml";
|
||||||
|
@ -526,12 +526,12 @@
|
||||||
};
|
};
|
||||||
elm = buildGrammar {
|
elm = buildGrammar {
|
||||||
language = "elm";
|
language = "elm";
|
||||||
version = "0.0.0+rev=c26afd7";
|
version = "0.0.0+rev=09dbf22";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "elm-tooling";
|
owner = "elm-tooling";
|
||||||
repo = "tree-sitter-elm";
|
repo = "tree-sitter-elm";
|
||||||
rev = "c26afd7f2316f689410a1622f1780eff054994b1";
|
rev = "09dbf221d7491dc8d8839616b27c21b9c025c457";
|
||||||
hash = "sha256-vYN1E49IpsvTUmxuzRyydCmhYZYGndcZPMBYgSMudrE=";
|
hash = "sha256-Bq2oWtqEAsKyV0iHNKC+hXW4fh4yUwbfUhPtZWg5pug=";
|
||||||
};
|
};
|
||||||
meta.homepage = "https://github.com/elm-tooling/tree-sitter-elm";
|
meta.homepage = "https://github.com/elm-tooling/tree-sitter-elm";
|
||||||
};
|
};
|
||||||
|
@ -592,25 +592,36 @@
|
||||||
};
|
};
|
||||||
faust = buildGrammar {
|
faust = buildGrammar {
|
||||||
language = "faust";
|
language = "faust";
|
||||||
version = "0.0.0+rev=9e514af";
|
version = "0.0.0+rev=f3b9274";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "khiner";
|
owner = "khiner";
|
||||||
repo = "tree-sitter-faust";
|
repo = "tree-sitter-faust";
|
||||||
rev = "9e514af33bfe061d0ccf1999dbcc93fca91f133c";
|
rev = "f3b9274514b5f9bf6b0dd4a01c30f9cc15c58bc4";
|
||||||
hash = "sha256-FZ5wl6Pl2Y86dNpaRMTh8Q7TEx/s0YoV9/H1J+qwlwo=";
|
hash = "sha256-JwR8LCEptgQmEG/ruK5ukIGCNtvKJw5bobZ0WXF1ulY=";
|
||||||
};
|
};
|
||||||
meta.homepage = "https://github.com/khiner/tree-sitter-faust";
|
meta.homepage = "https://github.com/khiner/tree-sitter-faust";
|
||||||
};
|
};
|
||||||
fennel = buildGrammar {
|
fennel = buildGrammar {
|
||||||
language = "fennel";
|
language = "fennel";
|
||||||
version = "0.0.0+rev=15e4f8c";
|
version = "0.0.0+rev=215e391";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "travonted";
|
owner = "alexmozaidze";
|
||||||
repo = "tree-sitter-fennel";
|
repo = "tree-sitter-fennel";
|
||||||
rev = "15e4f8c417281768db17080c4447297f8ff5343a";
|
rev = "215e3913524abc119daa9db7cf6ad2f2f5620189";
|
||||||
hash = "sha256-BdhgDS+yJ/DUYJknVksLSNHvei+MOkqVW7gp6AffKhU=";
|
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 {
|
firrtl = buildGrammar {
|
||||||
language = "firrtl";
|
language = "firrtl";
|
||||||
|
@ -702,12 +713,12 @@
|
||||||
};
|
};
|
||||||
gdscript = buildGrammar {
|
gdscript = buildGrammar {
|
||||||
language = "gdscript";
|
language = "gdscript";
|
||||||
version = "0.0.0+rev=03f20b9";
|
version = "0.0.0+rev=b5dea4d";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "PrestonKnopp";
|
owner = "PrestonKnopp";
|
||||||
repo = "tree-sitter-gdscript";
|
repo = "tree-sitter-gdscript";
|
||||||
rev = "03f20b94707a21bed90bb95101684bc4036139ce";
|
rev = "b5dea4d852db65f0872d849c24533eb121e03c76";
|
||||||
hash = "sha256-im87Rws9PPcBWNN0M8PNqnthJZlWKzn3iPLMGR+jtGo=";
|
hash = "sha256-/fmg7DfVX62F3sEovFaMs4dTA4rvPexOdQop3257op4=";
|
||||||
};
|
};
|
||||||
meta.homepage = "https://github.com/PrestonKnopp/tree-sitter-gdscript";
|
meta.homepage = "https://github.com/PrestonKnopp/tree-sitter-gdscript";
|
||||||
};
|
};
|
||||||
|
@ -735,12 +746,12 @@
|
||||||
};
|
};
|
||||||
gitattributes = buildGrammar {
|
gitattributes = buildGrammar {
|
||||||
language = "gitattributes";
|
language = "gitattributes";
|
||||||
version = "0.0.0+rev=3d03b37";
|
version = "0.0.0+rev=0750b59";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "ObserverOfTime";
|
owner = "ObserverOfTime";
|
||||||
repo = "tree-sitter-gitattributes";
|
repo = "tree-sitter-gitattributes";
|
||||||
rev = "3d03b37395f5707b6a2bfb43f62957fe0e669c0c";
|
rev = "0750b5904f37d6b2f47f6e4655001c2c35a172ec";
|
||||||
hash = "sha256-+DvxhL+m3Nagv0GXWWWYsIIDuWNzlK1vNVLOO0qBl2E=";
|
hash = "sha256-BXsF++uut1WWxe67E+CUh3e6VWrezNJaPfYJhXB0VlY=";
|
||||||
};
|
};
|
||||||
meta.homepage = "https://github.com/ObserverOfTime/tree-sitter-gitattributes";
|
meta.homepage = "https://github.com/ObserverOfTime/tree-sitter-gitattributes";
|
||||||
};
|
};
|
||||||
|
@ -999,23 +1010,23 @@
|
||||||
};
|
};
|
||||||
hlsl = buildGrammar {
|
hlsl = buildGrammar {
|
||||||
language = "hlsl";
|
language = "hlsl";
|
||||||
version = "0.0.0+rev=840fd07";
|
version = "0.0.0+rev=f820ee8";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "theHamsta";
|
owner = "theHamsta";
|
||||||
repo = "tree-sitter-hlsl";
|
repo = "tree-sitter-hlsl";
|
||||||
rev = "840fd07f09304bca415b93a15483e9ab1e44bc3f";
|
rev = "f820ee8417451f69020791cf691904ec1b63f20d";
|
||||||
hash = "sha256-GPY6udz0YZawmQ6WcItXchUeag9EO+eMMGoYSaRsdrY=";
|
hash = "sha256-d80vNrZGaPWlST5tgvf25CliuzS+zSZ60f49cRuucZ4=";
|
||||||
};
|
};
|
||||||
meta.homepage = "https://github.com/theHamsta/tree-sitter-hlsl";
|
meta.homepage = "https://github.com/theHamsta/tree-sitter-hlsl";
|
||||||
};
|
};
|
||||||
hlsplaylist = buildGrammar {
|
hlsplaylist = buildGrammar {
|
||||||
language = "hlsplaylist";
|
language = "hlsplaylist";
|
||||||
version = "0.0.0+rev=ff121d3";
|
version = "0.0.0+rev=5be34b0";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "Freed-Wu";
|
owner = "Freed-Wu";
|
||||||
repo = "tree-sitter-hlsplaylist";
|
repo = "tree-sitter-hlsplaylist";
|
||||||
rev = "ff121d397cf7cc709e3bbc928107fc25529e11e0";
|
rev = "5be34b0f6ea01b24f017c2c715729a3a919f57fd";
|
||||||
hash = "sha256-FItkJbxWfpRne27OPRq5fCHUCX35fxmiT6k1eX8UkhI=";
|
hash = "sha256-3ZFaIc4BrfR7dLxftbSLuFdErjYrJgi0Cd8jp9PB19U=";
|
||||||
};
|
};
|
||||||
meta.homepage = "https://github.com/Freed-Wu/tree-sitter-hlsplaylist";
|
meta.homepage = "https://github.com/Freed-Wu/tree-sitter-hlsplaylist";
|
||||||
};
|
};
|
||||||
|
@ -1043,12 +1054,12 @@
|
||||||
};
|
};
|
||||||
html = buildGrammar {
|
html = buildGrammar {
|
||||||
language = "html";
|
language = "html";
|
||||||
version = "0.0.0+rev=438d694";
|
version = "0.0.0+rev=b5d9758";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "tree-sitter";
|
owner = "tree-sitter";
|
||||||
repo = "tree-sitter-html";
|
repo = "tree-sitter-html";
|
||||||
rev = "438d694a1f51e1704cb779ad4fec2517523b1d7f";
|
rev = "b5d9758e22b4d3d25704b72526670759a9e4d195";
|
||||||
hash = "sha256-NL1tOr7V3QVsVu2OfzLzFpe/FpYVD6MCgdSV0I6AkRY=";
|
hash = "sha256-v3BD36OKkzJ1xqQV87HAyQpnQzi/4+PuyEAM1HfkW3U=";
|
||||||
};
|
};
|
||||||
meta.homepage = "https://github.com/tree-sitter/tree-sitter-html";
|
meta.homepage = "https://github.com/tree-sitter/tree-sitter-html";
|
||||||
};
|
};
|
||||||
|
@ -1175,12 +1186,12 @@
|
||||||
};
|
};
|
||||||
json = buildGrammar {
|
json = buildGrammar {
|
||||||
language = "json";
|
language = "json";
|
||||||
version = "0.0.0+rev=ac6ddfa";
|
version = "0.0.0+rev=3b12920";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "tree-sitter";
|
owner = "tree-sitter";
|
||||||
repo = "tree-sitter-json";
|
repo = "tree-sitter-json";
|
||||||
rev = "ac6ddfa7775795a3d8f5edab4a71e3a49f932b6a";
|
rev = "3b129203f4b72d532f58e72c5310c0a7db3b8e6d";
|
||||||
hash = "sha256-T/y1xfHv3G3cTD2xw43tMiW8agKwE5CV/uwThSHkd84=";
|
hash = "sha256-dVErHgsUDEN42wc/Gd68vQfVc8+/r/8No9KZk2GFzmY=";
|
||||||
};
|
};
|
||||||
meta.homepage = "https://github.com/tree-sitter/tree-sitter-json";
|
meta.homepage = "https://github.com/tree-sitter/tree-sitter-json";
|
||||||
};
|
};
|
||||||
|
@ -1351,12 +1362,12 @@
|
||||||
};
|
};
|
||||||
lua = buildGrammar {
|
lua = buildGrammar {
|
||||||
language = "lua";
|
language = "lua";
|
||||||
version = "0.0.0+rev=9668709";
|
version = "0.0.0+rev=04c9579";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "MunifTanjim";
|
owner = "MunifTanjim";
|
||||||
repo = "tree-sitter-lua";
|
repo = "tree-sitter-lua";
|
||||||
rev = "9668709211b2e683f27f414454a8b51bf0a6bda1";
|
rev = "04c9579dcb917255b2e5f8199df4ae7f587d472f";
|
||||||
hash = "sha256-5t5w8KqbefInNbA12/jpNzmky/uOUhsLjKdEqpl1GEc=";
|
hash = "sha256-kzyn6XF4/PN8civ/0UV+ancCMkh7DF2B7WUYxix6aaM=";
|
||||||
};
|
};
|
||||||
meta.homepage = "https://github.com/MunifTanjim/tree-sitter-lua";
|
meta.homepage = "https://github.com/MunifTanjim/tree-sitter-lua";
|
||||||
};
|
};
|
||||||
|
@ -1417,24 +1428,24 @@
|
||||||
};
|
};
|
||||||
markdown = buildGrammar {
|
markdown = buildGrammar {
|
||||||
language = "markdown";
|
language = "markdown";
|
||||||
version = "0.0.0+rev=23d9cb2";
|
version = "0.0.0+rev=2821521";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "MDeiml";
|
owner = "MDeiml";
|
||||||
repo = "tree-sitter-markdown";
|
repo = "tree-sitter-markdown";
|
||||||
rev = "23d9cb2ce2f4d0914e7609b500c5fc8dfae0176f";
|
rev = "2821521a4e6eab37b63dff6a8e169cd88554047d";
|
||||||
hash = "sha256-Z42w7gSUV9/9Q1jtCrd03cjlMUjHC5Vjie1x8m8K5uw=";
|
hash = "sha256-JoZ/CKIMHVowwqTMFdys+Qu1CHMsP+8Wr2LJo5h30B4=";
|
||||||
};
|
};
|
||||||
location = "tree-sitter-markdown";
|
location = "tree-sitter-markdown";
|
||||||
meta.homepage = "https://github.com/MDeiml/tree-sitter-markdown";
|
meta.homepage = "https://github.com/MDeiml/tree-sitter-markdown";
|
||||||
};
|
};
|
||||||
markdown_inline = buildGrammar {
|
markdown_inline = buildGrammar {
|
||||||
language = "markdown_inline";
|
language = "markdown_inline";
|
||||||
version = "0.0.0+rev=23d9cb2";
|
version = "0.0.0+rev=2821521";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "MDeiml";
|
owner = "MDeiml";
|
||||||
repo = "tree-sitter-markdown";
|
repo = "tree-sitter-markdown";
|
||||||
rev = "23d9cb2ce2f4d0914e7609b500c5fc8dfae0176f";
|
rev = "2821521a4e6eab37b63dff6a8e169cd88554047d";
|
||||||
hash = "sha256-Z42w7gSUV9/9Q1jtCrd03cjlMUjHC5Vjie1x8m8K5uw=";
|
hash = "sha256-JoZ/CKIMHVowwqTMFdys+Qu1CHMsP+8Wr2LJo5h30B4=";
|
||||||
};
|
};
|
||||||
location = "tree-sitter-markdown-inline";
|
location = "tree-sitter-markdown-inline";
|
||||||
meta.homepage = "https://github.com/MDeiml/tree-sitter-markdown";
|
meta.homepage = "https://github.com/MDeiml/tree-sitter-markdown";
|
||||||
|
@ -1474,35 +1485,35 @@
|
||||||
};
|
};
|
||||||
meson = buildGrammar {
|
meson = buildGrammar {
|
||||||
language = "meson";
|
language = "meson";
|
||||||
version = "0.0.0+rev=3d6dfbd";
|
version = "0.0.0+rev=d6ec8ce";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "Decodetalkers";
|
owner = "Decodetalkers";
|
||||||
repo = "tree-sitter-meson";
|
repo = "tree-sitter-meson";
|
||||||
rev = "3d6dfbdb2432603bc84ca7dc009bb39ed9a8a7b1";
|
rev = "d6ec8ce0963c3c8180161391f15d8f7d415f650d";
|
||||||
hash = "sha256-NRiecSr5UjISlFtmtvy3SYaWSmXMf0bKCKQVA83Jx+Y=";
|
hash = "sha256-SwcBhg6luPAOtaL5dhvLxCpJcwlGhZxhvVmn5pa6ecA=";
|
||||||
};
|
};
|
||||||
meta.homepage = "https://github.com/Decodetalkers/tree-sitter-meson";
|
meta.homepage = "https://github.com/Decodetalkers/tree-sitter-meson";
|
||||||
};
|
};
|
||||||
mlir = buildGrammar {
|
mlir = buildGrammar {
|
||||||
language = "mlir";
|
language = "mlir";
|
||||||
version = "0.0.0+rev=650a8fb";
|
version = "0.0.0+rev=117cbbc";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "artagnon";
|
owner = "artagnon";
|
||||||
repo = "tree-sitter-mlir";
|
repo = "tree-sitter-mlir";
|
||||||
rev = "650a8fb72013ba8d169bdb458e480d640fc545c9";
|
rev = "117cbbc46bbf82ae30b24f8939573655017226da";
|
||||||
hash = "sha256-Xmn5WaOgvAVyr1Bgzr+QG9G/kymtl4CUvLL5SPZdikU=";
|
hash = "sha256-c0+Pvhe++fHmRL9Ptri+vsdRN3MCb2Z/7EqWmFaK/CE=";
|
||||||
};
|
};
|
||||||
generate = true;
|
generate = true;
|
||||||
meta.homepage = "https://github.com/artagnon/tree-sitter-mlir";
|
meta.homepage = "https://github.com/artagnon/tree-sitter-mlir";
|
||||||
};
|
};
|
||||||
muttrc = buildGrammar {
|
muttrc = buildGrammar {
|
||||||
language = "muttrc";
|
language = "muttrc";
|
||||||
version = "0.0.0+rev=0af0e0d";
|
version = "0.0.0+rev=67d9e23";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "neomutt";
|
owner = "neomutt";
|
||||||
repo = "tree-sitter-muttrc";
|
repo = "tree-sitter-muttrc";
|
||||||
rev = "0af0e0d8c8cf59dc21cfe565489da0c247374b9f";
|
rev = "67d9e23ca7aa22d9bce9d16c53d2c927dff5159a";
|
||||||
hash = "sha256-AB8c2mV2sTNwN8sZkv3RbRKdxZW467P6epX+Z4LWqbU=";
|
hash = "sha256-B3/VoPq8h7TiwOP0nhsuPmFtkLsucpDm9RnUNXkfKpo=";
|
||||||
};
|
};
|
||||||
meta.homepage = "https://github.com/neomutt/tree-sitter-muttrc";
|
meta.homepage = "https://github.com/neomutt/tree-sitter-muttrc";
|
||||||
};
|
};
|
||||||
|
@ -1519,23 +1530,23 @@
|
||||||
};
|
};
|
||||||
nickel = buildGrammar {
|
nickel = buildGrammar {
|
||||||
language = "nickel";
|
language = "nickel";
|
||||||
version = "0.0.0+rev=091b5dc";
|
version = "0.0.0+rev=19fb551";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "nickel-lang";
|
owner = "nickel-lang";
|
||||||
repo = "tree-sitter-nickel";
|
repo = "tree-sitter-nickel";
|
||||||
rev = "091b5dcc7d138901bcc162da9409c0bb626c0d27";
|
rev = "19fb551196d18b75160631f5e3a8a006b3875276";
|
||||||
hash = "sha256-HyHdameEgET5UXKMgw7EJvZsJxToc9Qz26XHvc5qmU0=";
|
hash = "sha256-NXyagRPUT3h8G6R+eE4YrTnWtfB3AT/piXeun5ETU6s=";
|
||||||
};
|
};
|
||||||
meta.homepage = "https://github.com/nickel-lang/tree-sitter-nickel";
|
meta.homepage = "https://github.com/nickel-lang/tree-sitter-nickel";
|
||||||
};
|
};
|
||||||
nim = buildGrammar {
|
nim = buildGrammar {
|
||||||
language = "nim";
|
language = "nim";
|
||||||
version = "0.0.0+rev=70ceee8";
|
version = "0.0.0+rev=c5f0ce3";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "alaviss";
|
owner = "alaviss";
|
||||||
repo = "tree-sitter-nim";
|
repo = "tree-sitter-nim";
|
||||||
rev = "70ceee835e033acbc7092cd7f4f6a251789af121";
|
rev = "c5f0ce3b65222f5dbb1a12f9fe894524881ad590";
|
||||||
hash = "sha256-9+ADYNrtdva/DkkjPwavyU0cL6eunqq4TX9IUQi9eKw=";
|
hash = "sha256-KzAZf5vgrdp33esrgle71i0m52MvRJ3z/sMwzb+CueU=";
|
||||||
};
|
};
|
||||||
meta.homepage = "https://github.com/alaviss/tree-sitter-nim";
|
meta.homepage = "https://github.com/alaviss/tree-sitter-nim";
|
||||||
};
|
};
|
||||||
|
@ -1698,46 +1709,46 @@
|
||||||
};
|
};
|
||||||
pem = buildGrammar {
|
pem = buildGrammar {
|
||||||
language = "pem";
|
language = "pem";
|
||||||
version = "0.0.0+rev=7905a16";
|
version = "0.0.0+rev=db307bb";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "ObserverOfTime";
|
owner = "ObserverOfTime";
|
||||||
repo = "tree-sitter-pem";
|
repo = "tree-sitter-pem";
|
||||||
rev = "7905a168036e23605160a0d32a142f58ab5eaa06";
|
rev = "db307bbb7dc4f721bf2f5ba7fcedaf58feeb59e0";
|
||||||
hash = "sha256-6gEOrpJ/5UDMMVqKh0XQX+K3JOPiOk5H6CWZgB59h00=";
|
hash = "sha256-uBZo16QtZtbYc4jHdFt1w/zMx9F+WKBB+ANre8IURHA=";
|
||||||
};
|
};
|
||||||
meta.homepage = "https://github.com/ObserverOfTime/tree-sitter-pem";
|
meta.homepage = "https://github.com/ObserverOfTime/tree-sitter-pem";
|
||||||
};
|
};
|
||||||
perl = buildGrammar {
|
perl = buildGrammar {
|
||||||
language = "perl";
|
language = "perl";
|
||||||
version = "0.0.0+rev=a30394f";
|
version = "0.0.0+rev=fd8b951";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "tree-sitter-perl";
|
owner = "tree-sitter-perl";
|
||||||
repo = "tree-sitter-perl";
|
repo = "tree-sitter-perl";
|
||||||
rev = "a30394f61b607f48c841c6e085d5219f23872816";
|
rev = "fd8b951cf6f72d48dfd07679de8cf0260836b231";
|
||||||
hash = "sha256-3aWBh5jKXUYXxOv+RKyEpwJVOoP7QuaRQZHw0yOy6tQ=";
|
hash = "sha256-ejbpska3Ar0cjqDGZXXjRkpDLNsnDUJD0TBsb2cZfY4=";
|
||||||
};
|
};
|
||||||
meta.homepage = "https://github.com/tree-sitter-perl/tree-sitter-perl";
|
meta.homepage = "https://github.com/tree-sitter-perl/tree-sitter-perl";
|
||||||
};
|
};
|
||||||
php = buildGrammar {
|
php = buildGrammar {
|
||||||
language = "php";
|
language = "php";
|
||||||
version = "0.0.0+rev=caf4d67";
|
version = "0.0.0+rev=710754c";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "tree-sitter";
|
owner = "tree-sitter";
|
||||||
repo = "tree-sitter-php";
|
repo = "tree-sitter-php";
|
||||||
rev = "caf4d67d55386d3e4f85d29450b8d9cacbb02d19";
|
rev = "710754c879435178b7643e525c84cd53f32c510c";
|
||||||
hash = "sha256-L0M9v/T3W3v+pES2AytZ6V4jHfnSklFBRGPW3/oB2Aw=";
|
hash = "sha256-vOvuctPCcKs5iQ88Tv3Euxk7fDg06o1leRWUic4qzLQ=";
|
||||||
};
|
};
|
||||||
location = "php";
|
location = "php";
|
||||||
meta.homepage = "https://github.com/tree-sitter/tree-sitter-php";
|
meta.homepage = "https://github.com/tree-sitter/tree-sitter-php";
|
||||||
};
|
};
|
||||||
php_only = buildGrammar {
|
php_only = buildGrammar {
|
||||||
language = "php_only";
|
language = "php_only";
|
||||||
version = "0.0.0+rev=caf4d67";
|
version = "0.0.0+rev=710754c";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "tree-sitter";
|
owner = "tree-sitter";
|
||||||
repo = "tree-sitter-php";
|
repo = "tree-sitter-php";
|
||||||
rev = "caf4d67d55386d3e4f85d29450b8d9cacbb02d19";
|
rev = "710754c879435178b7643e525c84cd53f32c510c";
|
||||||
hash = "sha256-L0M9v/T3W3v+pES2AytZ6V4jHfnSklFBRGPW3/oB2Aw=";
|
hash = "sha256-vOvuctPCcKs5iQ88Tv3Euxk7fDg06o1leRWUic4qzLQ=";
|
||||||
};
|
};
|
||||||
location = "php_only";
|
location = "php_only";
|
||||||
meta.homepage = "https://github.com/tree-sitter/tree-sitter-php";
|
meta.homepage = "https://github.com/tree-sitter/tree-sitter-php";
|
||||||
|
@ -1788,12 +1799,12 @@
|
||||||
};
|
};
|
||||||
poe_filter = buildGrammar {
|
poe_filter = buildGrammar {
|
||||||
language = "poe_filter";
|
language = "poe_filter";
|
||||||
version = "0.0.0+rev=99ce487";
|
version = "0.0.0+rev=bf912df";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "ObserverOfTime";
|
owner = "ObserverOfTime";
|
||||||
repo = "tree-sitter-poe-filter";
|
repo = "tree-sitter-poe-filter";
|
||||||
rev = "99ce487804eab781e1e1cb39de82aea236346c96";
|
rev = "bf912df70f60b356c70631d9cbb317b41c1ea319";
|
||||||
hash = "sha256-kMk0gCb2/FExKyGPeRDCd6rW/R3eH1iuE7udnFoI5UY=";
|
hash = "sha256-EHftq35YJzElvYiJxiu7iIcugoXME7CXuQSo1ktG584=";
|
||||||
};
|
};
|
||||||
meta.homepage = "https://github.com/ObserverOfTime/tree-sitter-poe-filter";
|
meta.homepage = "https://github.com/ObserverOfTime/tree-sitter-poe-filter";
|
||||||
};
|
};
|
||||||
|
@ -1810,12 +1821,12 @@
|
||||||
};
|
};
|
||||||
printf = buildGrammar {
|
printf = buildGrammar {
|
||||||
language = "printf";
|
language = "printf";
|
||||||
version = "0.0.0+rev=ddff4ce";
|
version = "0.0.0+rev=0e0acea";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "ObserverOfTime";
|
owner = "ObserverOfTime";
|
||||||
repo = "tree-sitter-printf";
|
repo = "tree-sitter-printf";
|
||||||
rev = "ddff4ce4d630d1f1a3b591d77b2618a4169b36b9";
|
rev = "0e0aceabbf607ea09e03562f5d8a56f048ddea3d";
|
||||||
hash = "sha256-MIj4tP2+zb43pcnSBSVjPpKxjbxKFJTcz8AJphEvh6k=";
|
hash = "sha256-y/7CDnHpT3D6hL0f+52mReCphn+lvElfQQKJwY4fr9c=";
|
||||||
};
|
};
|
||||||
meta.homepage = "https://github.com/ObserverOfTime/tree-sitter-printf";
|
meta.homepage = "https://github.com/ObserverOfTime/tree-sitter-printf";
|
||||||
};
|
};
|
||||||
|
@ -1843,14 +1854,14 @@
|
||||||
};
|
};
|
||||||
properties = buildGrammar {
|
properties = buildGrammar {
|
||||||
language = "properties";
|
language = "properties";
|
||||||
version = "0.0.0+rev=74e5d3c";
|
version = "0.0.0+rev=189b3cc";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "ObserverOfTime";
|
owner = "tree-sitter-grammars";
|
||||||
repo = "tree-sitter-properties";
|
repo = "tree-sitter-properties";
|
||||||
rev = "74e5d3c63d0da17c0800b3cf9090b24637ef6b59";
|
rev = "189b3cc18d36871c27ebb0adcf0cddd123b0cbba";
|
||||||
hash = "sha256-oB5TA8dZtuFop7Urggv2ZWWi8s6wDsIL+ZG5+sCQgq8=";
|
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 {
|
proto = buildGrammar {
|
||||||
language = "proto";
|
language = "proto";
|
||||||
|
@ -1899,12 +1910,12 @@
|
||||||
};
|
};
|
||||||
puppet = buildGrammar {
|
puppet = buildGrammar {
|
||||||
language = "puppet";
|
language = "puppet";
|
||||||
version = "0.0.0+rev=9ce9a5f";
|
version = "0.0.0+rev=3641b9e";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "amaanq";
|
owner = "amaanq";
|
||||||
repo = "tree-sitter-puppet";
|
repo = "tree-sitter-puppet";
|
||||||
rev = "9ce9a5f7d64528572aaa8d59459ba869e634086b";
|
rev = "3641b9e854ac9c84c7576e71c4c9a357bcfd9550";
|
||||||
hash = "sha256-YEjjy9WLwITERYqoeSVrRYnwVBIAwdc4o0lvAK9wizw=";
|
hash = "sha256-J1DBjQRdV4R85NTyg/qmwbjm1bryKe3UOdp4XyH6BQc=";
|
||||||
};
|
};
|
||||||
meta.homepage = "https://github.com/amaanq/tree-sitter-puppet";
|
meta.homepage = "https://github.com/amaanq/tree-sitter-puppet";
|
||||||
};
|
};
|
||||||
|
@ -2042,12 +2053,12 @@
|
||||||
};
|
};
|
||||||
readline = buildGrammar {
|
readline = buildGrammar {
|
||||||
language = "readline";
|
language = "readline";
|
||||||
version = "0.0.0+rev=f2f98d4";
|
version = "0.0.0+rev=e436eae";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "ribru17";
|
owner = "ribru17";
|
||||||
repo = "tree-sitter-readline";
|
repo = "tree-sitter-readline";
|
||||||
rev = "f2f98d4263949d696e69a425f65326c59d1ceedc";
|
rev = "e436eaef452266a3d00c195f0eb757d6502c767a";
|
||||||
hash = "sha256-+T4HS2QqoXFRgBfY61NHK4EyQ/HF26eeMt9KV2Ud0Ug=";
|
hash = "sha256-y38TDQ+7wBzEKol/UQ5Xk6f15wUW7hJxByDuhx9d0hQ=";
|
||||||
};
|
};
|
||||||
meta.homepage = "https://github.com/ribru17/tree-sitter-readline";
|
meta.homepage = "https://github.com/ribru17/tree-sitter-readline";
|
||||||
};
|
};
|
||||||
|
@ -2141,12 +2152,12 @@
|
||||||
};
|
};
|
||||||
rust = buildGrammar {
|
rust = buildGrammar {
|
||||||
language = "rust";
|
language = "rust";
|
||||||
version = "0.0.0+rev=a70daac";
|
version = "0.0.0+rev=85a21c9";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "tree-sitter";
|
owner = "tree-sitter";
|
||||||
repo = "tree-sitter-rust";
|
repo = "tree-sitter-rust";
|
||||||
rev = "a70daac064145c84e9d51767c2575bb68d51df58";
|
rev = "85a21c96d31b2a5c4369e5836a7f4ab059268fea";
|
||||||
hash = "sha256-2Y7sQ5bhKEpbDAHd5zJMGAlDWH32tJXxAgFOYY8S7o8=";
|
hash = "sha256-uxOjdB65+HjNuOybbYb2N9R0I+bt909bIBOzmh9vfVc=";
|
||||||
};
|
};
|
||||||
meta.homepage = "https://github.com/tree-sitter/tree-sitter-rust";
|
meta.homepage = "https://github.com/tree-sitter/tree-sitter-rust";
|
||||||
};
|
};
|
||||||
|
@ -2197,23 +2208,23 @@
|
||||||
};
|
};
|
||||||
slang = buildGrammar {
|
slang = buildGrammar {
|
||||||
language = "slang";
|
language = "slang";
|
||||||
version = "0.0.0+rev=130b2f5";
|
version = "0.0.0+rev=0cdfb17";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "theHamsta";
|
owner = "theHamsta";
|
||||||
repo = "tree-sitter-slang";
|
repo = "tree-sitter-slang";
|
||||||
rev = "130b2f5c7a1d5c24645c3518db4bc2b22dd90718";
|
rev = "0cdfb1741323f38e9a33798674145c22cfc0092b";
|
||||||
hash = "sha256-gDN8nyQjxE7Hko3MJJj2Le0Ey0pd3GlG5QWkDf8c7Q0=";
|
hash = "sha256-1xSnb3n9u45B2gEBApZpZlb1VvbJOrmgQwrPL2OuGro=";
|
||||||
};
|
};
|
||||||
meta.homepage = "https://github.com/theHamsta/tree-sitter-slang";
|
meta.homepage = "https://github.com/theHamsta/tree-sitter-slang";
|
||||||
};
|
};
|
||||||
slint = buildGrammar {
|
slint = buildGrammar {
|
||||||
language = "slint";
|
language = "slint";
|
||||||
version = "0.0.0+rev=68405a4";
|
version = "0.0.0+rev=3c82235";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "slint-ui";
|
owner = "slint-ui";
|
||||||
repo = "tree-sitter-slint";
|
repo = "tree-sitter-slint";
|
||||||
rev = "68405a45f7a5311cd1f77e40ba84199573303f52";
|
rev = "3c82235f41b63f35a01ae3888206e93585cbb84a";
|
||||||
hash = "sha256-zmmxXU7w5N8XjKn2Uu/nAc/FjCAprdKyJ0c75CGUgpk=";
|
hash = "sha256-D3X2YwvxvseIGnKzaSocr3Ak7qoASZhxyRS+rtpir0g=";
|
||||||
};
|
};
|
||||||
meta.homepage = "https://github.com/slint-ui/tree-sitter-slint";
|
meta.homepage = "https://github.com/slint-ui/tree-sitter-slint";
|
||||||
};
|
};
|
||||||
|
@ -2287,12 +2298,12 @@
|
||||||
};
|
};
|
||||||
sourcepawn = buildGrammar {
|
sourcepawn = buildGrammar {
|
||||||
language = "sourcepawn";
|
language = "sourcepawn";
|
||||||
version = "0.0.0+rev=846ec64";
|
version = "0.0.0+rev=39ce73a";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "nilshelmig";
|
owner = "nilshelmig";
|
||||||
repo = "tree-sitter-sourcepawn";
|
repo = "tree-sitter-sourcepawn";
|
||||||
rev = "846ec647109a1f3dfab17c025c80ecdf6fd56581";
|
rev = "39ce73ad42b2c4f52848d16093c24feddaa7d226";
|
||||||
hash = "sha256-3yRBrzuzjWKKpLO+58P/JdNvjPj2o1HuBZOKkFh2RCs=";
|
hash = "sha256-CyCUGGycWpgQl/BGDjRHwYoa9Mess49jUf9WUkRaliE=";
|
||||||
};
|
};
|
||||||
meta.homepage = "https://github.com/nilshelmig/tree-sitter-sourcepawn";
|
meta.homepage = "https://github.com/nilshelmig/tree-sitter-sourcepawn";
|
||||||
};
|
};
|
||||||
|
@ -2397,23 +2408,23 @@
|
||||||
};
|
};
|
||||||
svelte = buildGrammar {
|
svelte = buildGrammar {
|
||||||
language = "svelte";
|
language = "svelte";
|
||||||
version = "0.0.0+rev=bd60db7";
|
version = "0.0.0+rev=04a126d";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "Himujjal";
|
owner = "tree-sitter-grammars";
|
||||||
repo = "tree-sitter-svelte";
|
repo = "tree-sitter-svelte";
|
||||||
rev = "bd60db7d3d06f89b6ec3b287c9a6e9190b5564bd";
|
rev = "04a126d9210def99f06d9ab84a255110b862d47c";
|
||||||
hash = "sha256-FZuzbTOP9LokPb77DSUwIXCFvMmDQPyyLKt7vNtEuAY=";
|
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 {
|
swift = buildGrammar {
|
||||||
language = "swift";
|
language = "swift";
|
||||||
version = "0.0.0+rev=dabbcf9";
|
version = "0.0.0+rev=e1ac0c3";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "alex-pinkus";
|
owner = "alex-pinkus";
|
||||||
repo = "tree-sitter-swift";
|
repo = "tree-sitter-swift";
|
||||||
rev = "dabbcf9a2311e08c1b020e1258849b8359e9de1a";
|
rev = "e1ac0c3b48f4c42c40f92f400f14c6561369d4dd";
|
||||||
hash = "sha256-U4r2uEDqBXeDC0NkOvSwkKreJnFSStxJisNPLJ4CTZs=";
|
hash = "sha256-7MXH3ZDMH3Im/t5FPMGw6MGKMS+hKaHKUvTXXCrvgtI=";
|
||||||
};
|
};
|
||||||
generate = true;
|
generate = true;
|
||||||
meta.homepage = "https://github.com/alex-pinkus/tree-sitter-swift";
|
meta.homepage = "https://github.com/alex-pinkus/tree-sitter-swift";
|
||||||
|
@ -2552,6 +2563,17 @@
|
||||||
};
|
};
|
||||||
meta.homepage = "https://github.com/tlaplus-community/tree-sitter-tlaplus";
|
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 {
|
todotxt = buildGrammar {
|
||||||
language = "todotxt";
|
language = "todotxt";
|
||||||
version = "0.0.0+rev=3937c5c";
|
version = "0.0.0+rev=3937c5c";
|
||||||
|
@ -2643,6 +2665,17 @@
|
||||||
};
|
};
|
||||||
meta.homepage = "https://github.com/Teddytrombone/tree-sitter-typoscript";
|
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 {
|
udev = buildGrammar {
|
||||||
language = "udev";
|
language = "udev";
|
||||||
version = "0.0.0+rev=15d89be";
|
version = "0.0.0+rev=15d89be";
|
||||||
|
@ -2746,23 +2779,23 @@
|
||||||
};
|
};
|
||||||
vim = buildGrammar {
|
vim = buildGrammar {
|
||||||
language = "vim";
|
language = "vim";
|
||||||
version = "0.0.0+rev=32c76f1";
|
version = "0.0.0+rev=bc1364d";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "neovim";
|
owner = "neovim";
|
||||||
repo = "tree-sitter-vim";
|
repo = "tree-sitter-vim";
|
||||||
rev = "32c76f150347c1cd044e90b8e2bc73c00677fa55";
|
rev = "bc1364d922952138957a62105171ed68e73fbb6c";
|
||||||
hash = "sha256-14lkrGZ5JpbPvb5Pm2UzLodhO1IEz5rBETTU0RZDFc4=";
|
hash = "sha256-5h1GYjyYMJd5GS0zXh0LP1wBs60fYohpFv89gcdZ4vU=";
|
||||||
};
|
};
|
||||||
meta.homepage = "https://github.com/neovim/tree-sitter-vim";
|
meta.homepage = "https://github.com/neovim/tree-sitter-vim";
|
||||||
};
|
};
|
||||||
vimdoc = buildGrammar {
|
vimdoc = buildGrammar {
|
||||||
language = "vimdoc";
|
language = "vimdoc";
|
||||||
version = "0.0.0+rev=ed8695a";
|
version = "0.0.0+rev=40fcd50";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "neovim";
|
owner = "neovim";
|
||||||
repo = "tree-sitter-vimdoc";
|
repo = "tree-sitter-vimdoc";
|
||||||
rev = "ed8695ad8de39c3f073da130156f00b1148e2891";
|
rev = "40fcd50a2c7b5a3ef98294795116773b24fb61ab";
|
||||||
hash = "sha256-q5Ln8WPFrtKBfZnaAAlMh3Q/eczEt6wCMZAtx+ISCKg=";
|
hash = "sha256-i/O8vIjiyOoFECS1nmKfL/8hofzSvwg5cJo7JooJGOY=";
|
||||||
};
|
};
|
||||||
meta.homepage = "https://github.com/neovim/tree-sitter-vimdoc";
|
meta.homepage = "https://github.com/neovim/tree-sitter-vimdoc";
|
||||||
};
|
};
|
||||||
|
@ -2790,23 +2823,23 @@
|
||||||
};
|
};
|
||||||
wgsl_bevy = buildGrammar {
|
wgsl_bevy = buildGrammar {
|
||||||
language = "wgsl_bevy";
|
language = "wgsl_bevy";
|
||||||
version = "0.0.0+rev=a041228";
|
version = "0.0.0+rev=cbd58ee";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "theHamsta";
|
owner = "theHamsta";
|
||||||
repo = "tree-sitter-wgsl-bevy";
|
repo = "tree-sitter-wgsl-bevy";
|
||||||
rev = "a041228ae64632f59b9bd37346a0dbcb7817f36b";
|
rev = "cbd58ee33e24f46d16b9882b001eefb25a958ee2";
|
||||||
hash = "sha256-bBGunOcFPrHWLsP1ISgdFBNDIBbB0uhwxKAwmQZg7/k=";
|
hash = "sha256-EPpI4UJ/5GB2iDQGoSziUOcP1TVf7VU4FMTKvrujcAY=";
|
||||||
};
|
};
|
||||||
meta.homepage = "https://github.com/theHamsta/tree-sitter-wgsl-bevy";
|
meta.homepage = "https://github.com/theHamsta/tree-sitter-wgsl-bevy";
|
||||||
};
|
};
|
||||||
wing = buildGrammar {
|
wing = buildGrammar {
|
||||||
language = "wing";
|
language = "wing";
|
||||||
version = "0.0.0+rev=f7965a9";
|
version = "0.0.0+rev=52ef462";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "winglang";
|
owner = "winglang";
|
||||||
repo = "wing";
|
repo = "wing";
|
||||||
rev = "f7965a947d2eaa8b5b9bba1c42a0e1891f1a0b2a";
|
rev = "52ef462f76e199845a5df4834b838339e0a6efdb";
|
||||||
hash = "sha256-qQ74aj7pccc3gvmeNoa0BBTMdNTmcc0h8aWNcLvpMRY=";
|
hash = "sha256-eZEyk285EyfduzrVH3Ojbwu8mbRFfZY6lrQQQT1kWM8=";
|
||||||
};
|
};
|
||||||
location = "libs/tree-sitter-wing";
|
location = "libs/tree-sitter-wing";
|
||||||
generate = true;
|
generate = true;
|
||||||
|
@ -2814,23 +2847,23 @@
|
||||||
};
|
};
|
||||||
xcompose = buildGrammar {
|
xcompose = buildGrammar {
|
||||||
language = "xcompose";
|
language = "xcompose";
|
||||||
version = "0.0.0+rev=8898238";
|
version = "0.0.0+rev=7fd1494";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "ObserverOfTime";
|
owner = "ObserverOfTime";
|
||||||
repo = "tree-sitter-xcompose";
|
repo = "tree-sitter-xcompose";
|
||||||
rev = "8898238fca7e143760386448093392b87e58002e";
|
rev = "7fd14940e0478fce79ea195067ed14a2c42c654a";
|
||||||
hash = "sha256-1U3FFO6j4jdynDTRQlD8kfTYTiKvC7ZjxSECMW9NYGY=";
|
hash = "sha256-elnm1HjE4hLFMR/XhCPhOcGjqS9FbCULPRb/IntpQ3U=";
|
||||||
};
|
};
|
||||||
meta.homepage = "https://github.com/ObserverOfTime/tree-sitter-xcompose";
|
meta.homepage = "https://github.com/ObserverOfTime/tree-sitter-xcompose";
|
||||||
};
|
};
|
||||||
xml = buildGrammar {
|
xml = buildGrammar {
|
||||||
language = "xml";
|
language = "xml";
|
||||||
version = "0.0.0+rev=2743ff8";
|
version = "0.0.0+rev=52b3783";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "tree-sitter-grammars";
|
owner = "tree-sitter-grammars";
|
||||||
repo = "tree-sitter-xml";
|
repo = "tree-sitter-xml";
|
||||||
rev = "2743ff864eac85cec830ff400f2e0024b9ca588b";
|
rev = "52b3783d0c89a69ec64b2d49eee95f44a7fdcd2a";
|
||||||
hash = "sha256-wuj3Q+LAtAS99pwJUD+3BzndVeNhzvQlaugzTHRvUjI=";
|
hash = "sha256-DVx/JwQXFEgY3XXo2rOVIWBRHdqprNgja9lAashkh5g=";
|
||||||
};
|
};
|
||||||
location = "xml";
|
location = "xml";
|
||||||
meta.homepage = "https://github.com/tree-sitter-grammars/tree-sitter-xml";
|
meta.homepage = "https://github.com/tree-sitter-grammars/tree-sitter-xml";
|
||||||
|
@ -2870,12 +2903,12 @@
|
||||||
};
|
};
|
||||||
zathurarc = buildGrammar {
|
zathurarc = buildGrammar {
|
||||||
language = "zathurarc";
|
language = "zathurarc";
|
||||||
version = "0.0.0+rev=fe37e85";
|
version = "0.0.0+rev=353bdf2";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "Freed-Wu";
|
owner = "Freed-Wu";
|
||||||
repo = "tree-sitter-zathurarc";
|
repo = "tree-sitter-zathurarc";
|
||||||
rev = "fe37e85db355c737573315f278672534c40fe140";
|
rev = "353bdf25e7af9c2830e254977fd3fb57ccaa8203";
|
||||||
hash = "sha256-lQFCJhyJTCa+zdsobMutgbQqJ9mhehaIbRLbds0riEo=";
|
hash = "sha256-vFDz4X0ujqM9GbrpGt3dRjvo0SR07E2qXrT/ppTegBQ=";
|
||||||
};
|
};
|
||||||
meta.homepage = "https://github.com/Freed-Wu/tree-sitter-zathurarc";
|
meta.homepage = "https://github.com/Freed-Wu/tree-sitter-zathurarc";
|
||||||
};
|
};
|
||||||
|
|
|
@ -998,7 +998,7 @@
|
||||||
inherit (old) version src;
|
inherit (old) version src;
|
||||||
sourceRoot = "source/spectre_oxi";
|
sourceRoot = "source/spectre_oxi";
|
||||||
|
|
||||||
cargoHash = "sha256-822+3s6FJVqBRYJAL/89bJfGv8fNhSN3nQelB29mXvQ=";
|
cargoHash = "sha256-gCGuD5kipgfR0Le8npNmyBxNsUq0PavXvKkxkiPx13E=";
|
||||||
|
|
||||||
|
|
||||||
preCheck = ''
|
preCheck = ''
|
||||||
|
@ -1671,6 +1671,14 @@
|
||||||
dependencies = with self; [ vim-repeat ];
|
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 {
|
vim-textobj-entire = super.vim-textobj-entire.overrideAttrs {
|
||||||
dependencies = with self; [ vim-textobj-user ];
|
dependencies = with self; [ vim-textobj-user ];
|
||||||
meta.maintainers = with lib.maintainers; [ farlion ];
|
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/pocco81/auto-save.nvim/,HEAD,
|
||||||
https://github.com/rmagatti/auto-session/,,
|
https://github.com/rmagatti/auto-session/,,
|
||||||
https://github.com/m4xshen/autoclose.nvim/,HEAD,
|
https://github.com/m4xshen/autoclose.nvim/,HEAD,
|
||||||
|
https://github.com/gaoDean/autolist.nvim/,,
|
||||||
https://github.com/vim-scripts/autoload_cscope.vim/,,
|
https://github.com/vim-scripts/autoload_cscope.vim/,,
|
||||||
https://github.com/nullishamy/autosave.nvim/,HEAD,
|
https://github.com/nullishamy/autosave.nvim/,HEAD,
|
||||||
https://github.com/rafi/awesome-vim-colorschemes/,,
|
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/mickael-menu/zk-nvim/,HEAD,
|
||||||
https://github.com/troydm/zoomwintab.vim/,,
|
https://github.com/troydm/zoomwintab.vim/,,
|
||||||
https://github.com/nanotee/zoxide.vim/,,
|
https://github.com/nanotee/zoxide.vim/,,
|
||||||
|
https://github.com/TabbyML/vim-tabby/,HEAD,
|
||||||
|
|
|
@ -3928,8 +3928,8 @@ let
|
||||||
mktplcRef = {
|
mktplcRef = {
|
||||||
name = "uiua-vscode";
|
name = "uiua-vscode";
|
||||||
publisher = "uiua-lang";
|
publisher = "uiua-lang";
|
||||||
version = "0.0.27";
|
version = "0.0.39";
|
||||||
sha256 = "sha256-wEY1FZjgiQJ7VrJGZX0SgZqz/14v//jxgrqdafLjIfM=";
|
sha256 = "sha256-B+p5bIwVhzWAdKQPCGPlImQihYCeTtYFTlkZIkgWayk=";
|
||||||
};
|
};
|
||||||
meta = {
|
meta = {
|
||||||
description = "VSCode language extension for Uiua";
|
description = "VSCode language extension for Uiua";
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
, rustPlatform
|
, rustPlatform
|
||||||
, fetchFromGitHub
|
, fetchFromGitHub
|
||||||
, pkg-config
|
, pkg-config
|
||||||
, libgit2_1_5
|
, libgit2
|
||||||
, openssl
|
, openssl
|
||||||
, zlib
|
, zlib
|
||||||
, stdenv
|
, stdenv
|
||||||
|
@ -27,7 +27,7 @@ rustPlatform.buildRustPackage rec {
|
||||||
];
|
];
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
libgit2_1_5
|
libgit2
|
||||||
openssl
|
openssl
|
||||||
zlib
|
zlib
|
||||||
] ++ lib.optionals stdenv.isDarwin [
|
] ++ lib.optionals stdenv.isDarwin [
|
||||||
|
@ -35,6 +35,7 @@ rustPlatform.buildRustPackage rec {
|
||||||
];
|
];
|
||||||
|
|
||||||
env = {
|
env = {
|
||||||
|
LIBGIT2_NO_VENDOR = 1;
|
||||||
OPENSSL_NO_VENDOR = true;
|
OPENSSL_NO_VENDOR = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -16,13 +16,13 @@
|
||||||
|
|
||||||
python3Packages.buildPythonApplication rec {
|
python3Packages.buildPythonApplication rec {
|
||||||
pname = "nwg-panel";
|
pname = "nwg-panel";
|
||||||
version = "0.9.24";
|
version = "0.9.25";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "nwg-piotr";
|
owner = "nwg-piotr";
|
||||||
repo = "nwg-panel";
|
repo = "nwg-panel";
|
||||||
rev = "refs/tags/v${version}";
|
rev = "refs/tags/v${version}";
|
||||||
hash = "sha256-qd2fnGdpHXX35ZtNGe59GnmhYGn6VJibc0KEr60VIJM=";
|
hash = "sha256-dTBV2OckPJNA707PNz/jmfUPpufhItt4EEDHAI79kxQ=";
|
||||||
};
|
};
|
||||||
|
|
||||||
# No tests
|
# No tests
|
||||||
|
|
|
@ -39,6 +39,9 @@ stdenv.mkDerivation (finalAttrs: rec {
|
||||||
hash = "sha256-7O+DX4uuncUqx5zEKQprZE6tctteT6NU01V2EBHiFqA=";
|
hash = "sha256-7O+DX4uuncUqx5zEKQprZE6tctteT6NU01V2EBHiFqA=";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# build pkg-config is required to locate the native `scdoc` input
|
||||||
|
depsBuildBuild = [ pkg-config ];
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
bash-completion
|
bash-completion
|
||||||
# cmake # currently conflicts with meson
|
# cmake # currently conflicts with meson
|
||||||
|
@ -50,7 +53,6 @@ stdenv.mkDerivation (finalAttrs: rec {
|
||||||
pkg-config
|
pkg-config
|
||||||
python3
|
python3
|
||||||
sassc
|
sassc
|
||||||
pantheon.granite
|
|
||||||
scdoc
|
scdoc
|
||||||
vala
|
vala
|
||||||
wrapGAppsHook
|
wrapGAppsHook
|
||||||
|
@ -68,6 +70,7 @@ stdenv.mkDerivation (finalAttrs: rec {
|
||||||
libhandy
|
libhandy
|
||||||
libpulseaudio
|
libpulseaudio
|
||||||
librsvg
|
librsvg
|
||||||
|
pantheon.granite
|
||||||
# systemd # ends with broken permission
|
# systemd # ends with broken permission
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
|
@ -28,12 +28,12 @@
|
||||||
version = "2024-01-22";
|
version = "2024-01-22";
|
||||||
};
|
};
|
||||||
ungoogled-patches = {
|
ungoogled-patches = {
|
||||||
hash = "sha256-G+agHdsssYhsyi4TgJUJBqMEnEgQ7bYeqpTqmonXI6I=";
|
hash = "sha256-vqiizzSVWV2/iADPac8qgfdZcbunc0QgMqN15NwJ9js=";
|
||||||
rev = "122.0.6261.69-1";
|
rev = "122.0.6261.94-1";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
hash = "sha256-uEN1hN6DOLgw4QDrMBZdiLLPx+yKQc5MimIf/vbCC84=";
|
hash = "sha256-7fIs8qQon9L0iNmM/cHuyqtVm09qf7L4j9qb6KSbw2w=";
|
||||||
hash_deb_amd64 = "sha256-k3/Phs72eIMB6LAU4aU0+ze/cRu6KlRhpBshKhmq9N4=";
|
hash_deb_amd64 = "sha256-hOm7YZ9ya/SmwKhj6uIPkdgIDv5bIbss398szBYHuXk=";
|
||||||
version = "122.0.6261.69";
|
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 {
|
firefox-beta = buildMozillaMach rec {
|
||||||
pname = "firefox-beta";
|
pname = "firefox-beta";
|
||||||
version = "124.0b2";
|
version = "124.0b5";
|
||||||
applicationName = "Mozilla Firefox Beta";
|
applicationName = "Mozilla Firefox Beta";
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
|
url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
|
||||||
sha512 = "a98bedcf2bb6e58a20b4ab49d53db0899ed7c6589b20266522521c3db5c583807be1d536a580a1b42dd5783c0d81d95c4f42be6a157fb08a588447ca4fa21dde";
|
sha512 = "a232d5f8d3118ef37166ef8706ab17d4cceaf67f0b12da4780c52253eec297c79e95ab42fe15165fdda62cda045ac923a53550c3525e9fd94ea3dca586510637";
|
||||||
};
|
};
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
|
@ -62,13 +62,13 @@
|
||||||
|
|
||||||
firefox-devedition = buildMozillaMach rec {
|
firefox-devedition = buildMozillaMach rec {
|
||||||
pname = "firefox-devedition";
|
pname = "firefox-devedition";
|
||||||
version = "124.0b2";
|
version = "124.0b5";
|
||||||
applicationName = "Mozilla Firefox Developer Edition";
|
applicationName = "Mozilla Firefox Developer Edition";
|
||||||
requireSigning = false;
|
requireSigning = false;
|
||||||
branding = "browser/branding/aurora";
|
branding = "browser/branding/aurora";
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://mozilla/devedition/releases/${version}/source/firefox-${version}.source.tar.xz";
|
url = "mirror://mozilla/devedition/releases/${version}/source/firefox-${version}.source.tar.xz";
|
||||||
sha512 = "a65a522130d95ef5ffd4ee351c79a64517abdd60a80a74e66b147f6b179613240ab2abd6eb9cd939dfe31dd5b971773e882eb234a358e9546ab0272d8ed94145";
|
sha512 = "bea92dcf8703dab99cc8248a0d205b8613f74efa81cbe789aa3ef863093fa78ac4e362956dfd57186954389cd87cd97bc0b077d3f80bfe5b7dd3b6435874fa98";
|
||||||
};
|
};
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
|
|
|
@ -1,20 +1,20 @@
|
||||||
{
|
{
|
||||||
beta = import ./browser.nix {
|
beta = import ./browser.nix {
|
||||||
channel = "beta";
|
channel = "beta";
|
||||||
version = "122.0.2365.52";
|
version = "122.0.2365.59";
|
||||||
revision = "1";
|
revision = "1";
|
||||||
hash = "sha256-H8VTDyDY2Rm5z4cJruzMa1YorBAUL0pJuwhQ6cy4WfY=";
|
hash = "sha256-hs6NHAdqji5Cg1ReGWqalFHv6wyRlyclssyc0cxM+ZU=";
|
||||||
};
|
};
|
||||||
dev = import ./browser.nix {
|
dev = import ./browser.nix {
|
||||||
channel = "dev";
|
channel = "dev";
|
||||||
version = "123.0.2400.1";
|
version = "123.0.2420.6";
|
||||||
revision = "1";
|
revision = "1";
|
||||||
hash = "sha256-I9PT320DJgqJYNwB0pvngyLlV+N2jaS5tOwVwwNHex0=";
|
hash = "sha256-fX6lxhJstz2cZZODu7xRe1fez8WTXqlYNgsMhIVTLaU=";
|
||||||
};
|
};
|
||||||
stable = import ./browser.nix {
|
stable = import ./browser.nix {
|
||||||
channel = "stable";
|
channel = "stable";
|
||||||
version = "122.0.2365.52";
|
version = "122.0.2365.59";
|
||||||
revision = "1";
|
revision = "1";
|
||||||
hash = "sha256-hULyUUFhMjiareXr1zTynyknVyert45N0H4iR8woGRw=";
|
hash = "sha256-LbyipfA5TZWSZu1jeUykGZ2FXwt9rZ7ak7mmryXRnMQ=";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,7 +24,7 @@ let
|
||||||
vivaldiName = if isSnapshot then "vivaldi-snapshot" else "vivaldi";
|
vivaldiName = if isSnapshot then "vivaldi-snapshot" else "vivaldi";
|
||||||
in stdenv.mkDerivation rec {
|
in stdenv.mkDerivation rec {
|
||||||
pname = "vivaldi";
|
pname = "vivaldi";
|
||||||
version = "6.5.3206.55";
|
version = "6.5.3206.63";
|
||||||
|
|
||||||
suffix = {
|
suffix = {
|
||||||
aarch64-linux = "arm64";
|
aarch64-linux = "arm64";
|
||||||
|
@ -34,8 +34,8 @@ in stdenv.mkDerivation rec {
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://downloads.vivaldi.com/${branch}/vivaldi-${branch}_${version}-1_${suffix}.deb";
|
url = "https://downloads.vivaldi.com/${branch}/vivaldi-${branch}_${version}-1_${suffix}.deb";
|
||||||
hash = {
|
hash = {
|
||||||
aarch64-linux = "sha256-lr+9+w1vRZSG/2dP5K3mcKLCQijckPdkM/I2DgjO4wg=";
|
aarch64-linux = "sha256-MyKTihImCd1/4UwnC/GqyeQcYnJNvKW5UfIIRN45r8E=";
|
||||||
x86_64-linux = "sha256-ElkuuaZfK8F6CVA5xbKszkbqdcPACFR+xd0pRxnd6+U=";
|
x86_64-linux = "sha256-RbGoOKQyAaNY+y+jCT+r7GI9vymTT9kPDrwl9/bhaNw=";
|
||||||
}.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
|
}.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -8,13 +8,13 @@
|
||||||
buildGoModule rec {
|
buildGoModule rec {
|
||||||
pname = "bosh-cli";
|
pname = "bosh-cli";
|
||||||
|
|
||||||
version = "7.5.2";
|
version = "7.5.4";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "cloudfoundry";
|
owner = "cloudfoundry";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "sha256-gT0Oivo5QE+pr5PpD/7JAj8oYF9UmSi5F6Ps8RtACzc=";
|
sha256 = "sha256-aNzKp7QwyhC/ado0NrCyxrRZu+ePGBNSq31/Iw6k6n0=";
|
||||||
};
|
};
|
||||||
vendorHash = null;
|
vendorHash = null;
|
||||||
|
|
||||||
|
|
|
@ -2,13 +2,13 @@
|
||||||
|
|
||||||
buildGoModule rec {
|
buildGoModule rec {
|
||||||
pname = "popeye";
|
pname = "popeye";
|
||||||
version = "0.20.3";
|
version = "0.20.4";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
owner = "derailed";
|
owner = "derailed";
|
||||||
repo = "popeye";
|
repo = "popeye";
|
||||||
sha256 = "sha256-Iq33TEl6yCw4e6LeOsXcaMGRmOJqq9XV4KChEArDL6Q=";
|
sha256 = "sha256-rUG2tZokWXWVvGiyDAxVYfVwSDInaLptBCBuawtP1bc=";
|
||||||
};
|
};
|
||||||
|
|
||||||
ldflags = [
|
ldflags = [
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
callPackage ./generic.nix {} rec {
|
callPackage ./generic.nix {} rec {
|
||||||
pname = "signal-desktop";
|
pname = "signal-desktop";
|
||||||
dir = "Signal";
|
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";
|
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
|
{ lib
|
||||||
, stdenv
|
, stdenv
|
||||||
, buildPythonApplication
|
, buildPythonApplication
|
||||||
, substituteAll
|
, cepa
|
||||||
, fetchFromGitHub
|
|
||||||
, isPy3k
|
|
||||||
, colorama
|
, colorama
|
||||||
|
, fetchFromGitHub
|
||||||
, flask
|
, flask
|
||||||
|
, flask-compress
|
||||||
, flask-httpauth
|
, flask-httpauth
|
||||||
, flask-socketio
|
, flask-socketio
|
||||||
, gevent-socketio
|
, gevent-socketio
|
||||||
, gevent-websocket
|
, gevent-websocket
|
||||||
, cepa
|
, obfs4
|
||||||
, psutil
|
, psutil
|
||||||
, pyqt5
|
|
||||||
, pycrypto
|
, pycrypto
|
||||||
, pynacl
|
, pynacl
|
||||||
, pyside2
|
, pyqt5
|
||||||
|
, pyside6
|
||||||
, pysocks
|
, pysocks
|
||||||
, pytestCheckHook
|
, pytestCheckHook
|
||||||
, qrcode
|
, qrcode
|
||||||
, qt5
|
, qt5
|
||||||
, requests
|
, requests
|
||||||
, unidecode
|
|
||||||
, tor
|
|
||||||
, obfs4
|
|
||||||
, snowflake
|
, snowflake
|
||||||
|
, substituteAll
|
||||||
|
, tor
|
||||||
|
, unidecode
|
||||||
|
, waitress
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
version = "2.6";
|
version = "2.6.1";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "onionshare";
|
owner = "onionshare";
|
||||||
repo = "onionshare";
|
repo = "onionshare";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "sha256-LA7XlzoCXUiG/9subTddAd22336wO9sOHCIBlQK4Ga4=";
|
sha256 = "sha256-LR3Ao4Q8kEDwrFV+gYdMSEeYF4hDtEa1rJgvRRrJMwc=";
|
||||||
};
|
};
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "Securely and anonymously send and receive files";
|
description = "Securely and anonymously send and receive files";
|
||||||
|
@ -79,23 +80,27 @@ rec {
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
propagatedBuildInputs = [
|
propagatedBuildInputs = [
|
||||||
|
cepa
|
||||||
colorama
|
colorama
|
||||||
flask
|
flask
|
||||||
|
flask-compress
|
||||||
flask-httpauth
|
flask-httpauth
|
||||||
flask-socketio
|
flask-socketio
|
||||||
gevent-socketio
|
gevent-socketio
|
||||||
gevent-websocket
|
gevent-websocket
|
||||||
cepa
|
|
||||||
psutil
|
psutil
|
||||||
pycrypto
|
pycrypto
|
||||||
pynacl
|
pynacl
|
||||||
|
pyside6
|
||||||
|
qrcode
|
||||||
requests
|
requests
|
||||||
unidecode
|
unidecode
|
||||||
|
waitress
|
||||||
];
|
];
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
tor
|
|
||||||
obfs4
|
obfs4
|
||||||
|
tor
|
||||||
];
|
];
|
||||||
|
|
||||||
nativeCheckInputs = [
|
nativeCheckInputs = [
|
||||||
|
@ -107,9 +112,11 @@ rec {
|
||||||
export HOME="$(mktemp -d)"
|
export HOME="$(mktemp -d)"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
disabledTests = [
|
disabledTests = lib.optionals stdenv.isLinux [
|
||||||
"test_get_tor_paths_linux" # expects /usr instead of /nix/store
|
"test_get_tor_paths_linux" # expects /usr instead of /nix/store
|
||||||
] ++ lib.optionals stdenv.isDarwin [
|
] ++ 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
|
# on darwin (and only on darwin) onionshare attempts to discover
|
||||||
# user's *real* homedir via /etc/passwd, making it more painful
|
# user's *real* homedir via /etc/passwd, making it more painful
|
||||||
# to fake
|
# to fake
|
||||||
|
@ -128,16 +135,15 @@ rec {
|
||||||
inherit tor meek obfs4 snowflake;
|
inherit tor meek obfs4 snowflake;
|
||||||
inherit (tor) geoip;
|
inherit (tor) geoip;
|
||||||
})
|
})
|
||||||
./fix-qrcode-gui.patch
|
|
||||||
];
|
];
|
||||||
|
|
||||||
propagatedBuildInputs = [
|
propagatedBuildInputs = [
|
||||||
onionshare
|
onionshare
|
||||||
pyqt5
|
|
||||||
pyside2
|
|
||||||
psutil
|
psutil
|
||||||
qrcode
|
pyqt5
|
||||||
|
pyside6
|
||||||
pysocks
|
pysocks
|
||||||
|
qrcode
|
||||||
];
|
];
|
||||||
|
|
||||||
nativeBuildInputs = [ qt5.wrapQtAppsHook ];
|
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 }:
|
{ lib, stdenv, fetchFromGitHub, fetchYarnDeps, mkYarnPackage, nixosTests, writeText, python3 }:
|
||||||
|
|
||||||
let
|
let
|
||||||
version = "0.4.1";
|
version = "0.4.2";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "PowerDNS-Admin";
|
owner = "PowerDNS-Admin";
|
||||||
repo = "PowerDNS-Admin";
|
repo = "PowerDNS-Admin";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
hash = "sha256-AwqEcAPD1SF1Ma3wtH03mXlTywM0Q19hciCmTtlr3gk=";
|
hash = "sha256-q9mt8wjSNFb452Xsg+qhNOWa03KJkYVGAeCWVSzZCyk=";
|
||||||
};
|
};
|
||||||
|
|
||||||
python = python3;
|
python = python3;
|
||||||
|
@ -29,7 +29,7 @@ let
|
||||||
|
|
||||||
offlineCache = fetchYarnDeps {
|
offlineCache = fetchYarnDeps {
|
||||||
yarnLock = "${src}/yarn.lock";
|
yarnLock = "${src}/yarn.lock";
|
||||||
hash = "sha256-3ebT19LrbYuypdJaoB3tClVVP0Fi8tHx3Xi6ge/DpA4=";
|
hash = "sha256-rXIts+dgOuZQGyiSke1NIG7b4lFlR/Gfu3J6T3wP3aY=";
|
||||||
};
|
};
|
||||||
|
|
||||||
# Copied from package.json, see also
|
# Copied from package.json, see also
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{ lib, stdenv, buildGoModule, fetchFromGitHub, buildPackages, installShellFiles
|
{ lib, stdenv, buildGoModule, fetchFromGitHub, buildPackages, installShellFiles
|
||||||
, makeWrapper
|
, makeWrapper
|
||||||
, enableCmount ? true, fuse, macfuse-stubs
|
, enableCmount ? true, fuse, fuse3, macfuse-stubs
|
||||||
, librclone
|
, librclone
|
||||||
}:
|
}:
|
||||||
|
|
||||||
|
@ -46,12 +46,12 @@ buildGoModule rec {
|
||||||
ln -s $out/bin/rclone $out/bin/rclonefs
|
ln -s $out/bin/rclone $out/bin/rclonefs
|
||||||
ln -s $out/bin/rclone $out/bin/mount.rclone
|
ln -s $out/bin/rclone $out/bin/mount.rclone
|
||||||
'' + lib.optionalString (enableCmount && !stdenv.isDarwin)
|
'' + 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.
|
# as the setuid wrapper is required as non-root on NixOS.
|
||||||
''
|
''
|
||||||
wrapProgram $out/bin/rclone \
|
wrapProgram $out/bin/rclone \
|
||||||
--suffix PATH : "${lib.makeBinPath [ fuse ] }" \
|
--suffix PATH : "${lib.makeBinPath [ fuse3 ] }" \
|
||||||
--prefix LD_LIBRARY_PATH : "${fuse}/lib"
|
--prefix LD_LIBRARY_PATH : "${fuse3}/lib"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
passthru.tests = {
|
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 {
|
stdenv.mkDerivation rec {
|
||||||
pname = "last";
|
pname = "last";
|
||||||
version = "1541";
|
version = "1542";
|
||||||
|
|
||||||
src = fetchFromGitLab {
|
src = fetchFromGitLab {
|
||||||
owner = "mcfrith";
|
owner = "mcfrith";
|
||||||
repo = "last";
|
repo = "last";
|
||||||
rev = "refs/tags/${version}";
|
rev = "refs/tags/${version}";
|
||||||
hash = "sha256-gEesPeGY2RozoViZpBWNTXFJriKVb/r0Efw9XEXwXmM=";
|
hash = "sha256-ZzvyyecYiBscogfN9/FnDbHg/lqb8y14n9C2KLIqhFA=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
|
|
||||||
python3.pkgs.buildPythonApplication rec {
|
python3.pkgs.buildPythonApplication rec {
|
||||||
pname = "commitizen";
|
pname = "commitizen";
|
||||||
version = "3.15.0";
|
version = "3.16.0";
|
||||||
format = "pyproject";
|
format = "pyproject";
|
||||||
|
|
||||||
disabled = python3.pythonOlder "3.8";
|
disabled = python3.pythonOlder "3.8";
|
||||||
|
@ -20,7 +20,7 @@ python3.pkgs.buildPythonApplication rec {
|
||||||
owner = "commitizen-tools";
|
owner = "commitizen-tools";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = "refs/tags/v${version}";
|
rev = "refs/tags/v${version}";
|
||||||
hash = "sha256-WXsEkJRis9L9heHj6SkTFFTuGmnDXPMKfr7rYy8vzcI=";
|
hash = "sha256-vd8MtkzI7PPow0Ld0NhwbWOUWgSgecAT/DZK0ocUWCw=";
|
||||||
};
|
};
|
||||||
|
|
||||||
pythonRelaxDeps = [
|
pythonRelaxDeps = [
|
||||||
|
|
|
@ -2,8 +2,7 @@
|
||||||
, rustPlatform
|
, rustPlatform
|
||||||
, fetchFromGitHub
|
, fetchFromGitHub
|
||||||
, pkg-config
|
, pkg-config
|
||||||
# libgit2-sys doesn't support libgit2 1.6 yet
|
, libgit2
|
||||||
, libgit2_1_5
|
|
||||||
, oniguruma
|
, oniguruma
|
||||||
, zlib
|
, zlib
|
||||||
, stdenv
|
, stdenv
|
||||||
|
@ -29,7 +28,7 @@ rustPlatform.buildRustPackage rec {
|
||||||
];
|
];
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
libgit2_1_5
|
libgit2
|
||||||
oniguruma
|
oniguruma
|
||||||
zlib
|
zlib
|
||||||
] ++ lib.optionals stdenv.isDarwin [
|
] ++ lib.optionals stdenv.isDarwin [
|
||||||
|
@ -54,7 +53,10 @@ rustPlatform.buildRustPackage rec {
|
||||||
git config --global user.email nixbld@example.com
|
git config --global user.email nixbld@example.com
|
||||||
'';
|
'';
|
||||||
|
|
||||||
RUSTONIG_SYSTEM_LIBONIG = true;
|
env = {
|
||||||
|
LIBGIT2_NO_VENDOR = 1;
|
||||||
|
RUSTONIG_SYSTEM_LIBONIG = true;
|
||||||
|
};
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "Dive into a file's history to find root cause";
|
description = "Dive into a file's history to find root cause";
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
, rustPlatform
|
, rustPlatform
|
||||||
, fetchFromGitHub
|
, fetchFromGitHub
|
||||||
, pkg-config
|
, pkg-config
|
||||||
, libgit2_1_5
|
, libgit2
|
||||||
, openssl
|
, openssl
|
||||||
, zlib
|
, zlib
|
||||||
, stdenv
|
, stdenv
|
||||||
|
@ -28,13 +28,17 @@ rustPlatform.buildRustPackage {
|
||||||
nativeBuildInputs = [ pkg-config ];
|
nativeBuildInputs = [ pkg-config ];
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
libgit2_1_5
|
libgit2
|
||||||
openssl
|
openssl
|
||||||
zlib
|
zlib
|
||||||
] ++ lib.optionals stdenv.isDarwin [
|
] ++ lib.optionals stdenv.isDarwin [
|
||||||
darwin.apple_sdk.frameworks.AppKit
|
darwin.apple_sdk.frameworks.AppKit
|
||||||
];
|
];
|
||||||
|
|
||||||
|
env = {
|
||||||
|
LIBGIT2_NO_VENDOR = 1;
|
||||||
|
};
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "Minimalist set of hooks to aid pairing and link commits to issues";
|
description = "Minimalist set of hooks to aid pairing and link commits to issues";
|
||||||
homepage = "https://github.com/PurpleBooth/git-mit";
|
homepage = "https://github.com/PurpleBooth/git-mit";
|
||||||
|
|
|
@ -9,9 +9,14 @@
|
||||||
, SystemConfiguration
|
, SystemConfiguration
|
||||||
, curl
|
, curl
|
||||||
, openssl
|
, 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";
|
pname = "gitoxide";
|
||||||
version = "0.33.0";
|
version = "0.33.0";
|
||||||
|
|
||||||
|
@ -24,12 +29,19 @@ rustPlatform.buildRustPackage rec {
|
||||||
|
|
||||||
cargoHash = "sha256-JOl/hhyuc6vqeK6/oXXMB3fGRapBsuOTaUG+BQ9QSnk=";
|
cargoHash = "sha256-JOl/hhyuc6vqeK6/oXXMB3fGRapBsuOTaUG+BQ9QSnk=";
|
||||||
|
|
||||||
nativeBuildInputs = [ cmake pkg-config ];
|
nativeBuildInputs = [ cmake pkg-config installShellFiles ];
|
||||||
|
|
||||||
buildInputs = [ curl ] ++ (if stdenv.isDarwin
|
buildInputs = [ curl ] ++ (if stdenv.isDarwin
|
||||||
then [ libiconv Security SystemConfiguration ]
|
then [ libiconv Security SystemConfiguration ]
|
||||||
else [ openssl ]);
|
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.
|
# Needed to get openssl-sys to use pkg-config.
|
||||||
env.OPENSSL_NO_VENDOR = 1;
|
env.OPENSSL_NO_VENDOR = 1;
|
||||||
|
|
||||||
|
|
|
@ -2,13 +2,13 @@
|
||||||
|
|
||||||
buildLua rec {
|
buildLua rec {
|
||||||
pname = "mpv-playlistmanager";
|
pname = "mpv-playlistmanager";
|
||||||
version = "unstable-2023-11-28";
|
version = "unstable-2024-02-26";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "jonniek";
|
owner = "jonniek";
|
||||||
repo = "mpv-playlistmanager";
|
repo = "mpv-playlistmanager";
|
||||||
rev = "579490c7ae1becc129736b7632deec4f3fb90b99";
|
rev = "1911dc053951169c98cfcfd9f44ef87d9122ca80";
|
||||||
hash = "sha256-swOtoB8UV/HPTpQRGXswAfUYsyC2Nj/QRIkGP8X1jk0=";
|
hash = "sha256-pcdOMhkivLF5B86aNuHrqj77DuYLAFGlwFwY7jxkDkE=";
|
||||||
};
|
};
|
||||||
passthru.updateScript = unstableGitUpdater {};
|
passthru.updateScript = unstableGitUpdater {};
|
||||||
|
|
||||||
|
|
|
@ -64,6 +64,8 @@ let
|
||||||
# https://github.com/NixOS/nix/blob/9348f9291e5d9e4ba3c4347ea1b235640f54fd79/src/libutil/util.cc#L478
|
# https://github.com/NixOS/nix/blob/9348f9291e5d9e4ba3c4347ea1b235640f54fd79/src/libutil/util.cc#L478
|
||||||
export USER=nobody
|
export USER=nobody
|
||||||
${buildPackages.nix}/bin/nix-store --load-db < ${closureInfo {rootPaths = contentsList;}}/registration
|
${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/
|
mkdir -p nix/var/nix/gcroots/docker/
|
||||||
for i in ${lib.concatStringsSep " " contentsList}; do
|
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."
|
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"
|
) + "-patched"
|
||||||
, patches ? [ ]
|
, patches ? [ ]
|
||||||
|
, prePatch ? ""
|
||||||
, postPatch ? ""
|
, postPatch ? ""
|
||||||
, ...
|
, ...
|
||||||
}@args:
|
}@args:
|
||||||
if patches == [ ] && postPatch == ""
|
if patches == [ ] && prePatch == "" && postPatch == ""
|
||||||
then src # nothing to do, so use original src to avoid additional drv
|
then src # nothing to do, so use original src to avoid additional drv
|
||||||
else stdenvNoCC.mkDerivation
|
else stdenvNoCC.mkDerivation
|
||||||
{
|
({
|
||||||
inherit name src patches postPatch;
|
inherit name src patches prePatch postPatch;
|
||||||
preferLocalBuild = true;
|
preferLocalBuild = true;
|
||||||
allowSubstitutes = false;
|
allowSubstitutes = false;
|
||||||
phases = "unpackPhase patchPhase installPhase";
|
phases = "unpackPhase patchPhase installPhase";
|
||||||
installPhase = "cp -R ./ $out";
|
installPhase = "cp -R ./ $out";
|
||||||
}
|
}
|
||||||
# Carry `meta` information from the underlying `src` if present.
|
# Carry `meta` information from the underlying `src` if present.
|
||||||
// (optionalAttrs (src?meta) { inherit (src) meta; })
|
// (optionalAttrs (src?meta) { inherit (src) meta; })
|
||||||
// (removeAttrs args [ "src" "name" "patches" "postPatch" ]);
|
// (removeAttrs args [ "src" "name" "patches" "prePatch" "postPatch" ]));
|
||||||
|
|
||||||
/* An immutable file in the store with a length of 0 bytes. */
|
/* An immutable file in the store with a length of 0 bytes. */
|
||||||
emptyFile = runCommand "empty-file"
|
emptyFile = runCommand "empty-file"
|
||||||
|
|
|
@ -5,13 +5,13 @@
|
||||||
|
|
||||||
stdenvNoCC.mkDerivation rec {
|
stdenvNoCC.mkDerivation rec {
|
||||||
pname = "bemoji";
|
pname = "bemoji";
|
||||||
version = "0.3.0";
|
version = "0.4.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "marty-oehme";
|
owner = "marty-oehme";
|
||||||
repo = "bemoji";
|
repo = "bemoji";
|
||||||
rev = "refs/tags/v${version}";
|
rev = "refs/tags/v${version}";
|
||||||
hash = "sha256-DhsJX5HlyTh0QLlHy1OwyaYg4vxWpBSsF71D9fxqPWE=";
|
hash = "sha256-HXwho0vRI9ZrUuDMicMH4ZNExY+zJfbrne2LMQmmHww=";
|
||||||
};
|
};
|
||||||
|
|
||||||
strictDeps = true;
|
strictDeps = true;
|
||||||
|
|
|
@ -2,13 +2,13 @@
|
||||||
|
|
||||||
let
|
let
|
||||||
pname = "chrysalis";
|
pname = "chrysalis";
|
||||||
version = "0.13.2";
|
version = "0.13.3";
|
||||||
name = "${pname}-${version}-binary";
|
name = "${pname}-${version}-binary";
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url =
|
url =
|
||||||
"https://github.com/keyboardio/${pname}/releases/download/v${version}/${pname}-${version}-x64.AppImage";
|
"https://github.com/keyboardio/${pname}/releases/download/v${version}/${pname}-${version}-x64.AppImage";
|
||||||
hash =
|
hash =
|
||||||
"sha512-WuItdQ/hDxbZZ3zulHI74NUkuYfesV/31rA1gPakCFgX2hpPrmKzwUez2vqt4N5qrGyphrR0bcelUatGZhOn5A==";
|
"sha512-F6Y87rgIclj1OA3gVX/gqqp9AvXKQlBXrbqk/26F1KHPF9NzHJgVmeszSo3Nhb6xg4CzWmzkqc8IW2H/Bg57kw==";
|
||||||
};
|
};
|
||||||
appimageContents = appimageTools.extract { inherit name src; };
|
appimageContents = appimageTools.extract { inherit name src; };
|
||||||
in appimageTools.wrapType2 rec {
|
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
|
install -Dm444 ${appimageContents}/usr/share/icons/hicolor/256x256/chrysalis.png -t $out/share/pixmaps
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
passthru.updateScript = ./update.sh;
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "A graphical configurator for Kaleidoscope-powered keyboards";
|
description = "A graphical configurator for Kaleidoscope-powered keyboards";
|
||||||
homepage = "https://github.com/keyboardio/Chrysalis";
|
homepage = "https://github.com/keyboardio/Chrysalis";
|
||||||
license = licenses.gpl3Only;
|
license = licenses.gpl3Only;
|
||||||
maintainers = with maintainers; [ aw ];
|
maintainers = with maintainers; [ aw eclairevoyant nshalman ];
|
||||||
platforms = [ "x86_64-linux" ];
|
platforms = [ "x86_64-linux" ];
|
||||||
mainProgram = "chrysalis";
|
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
|
{ lib
|
||||||
, stdenv
|
|
||||||
, fetchFromGitHub
|
|
||||||
, curl
|
, curl
|
||||||
, duktape
|
, duktape
|
||||||
|
, fetchFromGitHub
|
||||||
, html-tidy
|
, html-tidy
|
||||||
, openssl
|
, openssl
|
||||||
, pcre
|
, pcre
|
||||||
|
@ -10,24 +9,45 @@
|
||||||
, pkg-config
|
, pkg-config
|
||||||
, quickjs
|
, quickjs
|
||||||
, readline
|
, readline
|
||||||
|
, stdenv
|
||||||
|
, unixODBC
|
||||||
, which
|
, which
|
||||||
|
, withODBC ? true
|
||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation (finalAttrs: {
|
||||||
pname = "edbrowse";
|
pname = "edbrowse";
|
||||||
version = "3.8.0";
|
version = "3.8.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "CMB";
|
owner = "CMB";
|
||||||
repo = pname;
|
repo = "edbrowse";
|
||||||
rev = "v${version}";
|
rev = "v${finalAttrs.version}";
|
||||||
hash = "sha256-ZXxzQBAmu7kM3sjqg/rDLBXNucO8sFRFKXV8UxQVQZU=";
|
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 = [
|
nativeBuildInputs = [
|
||||||
pkg-config
|
pkg-config
|
||||||
which
|
which
|
||||||
];
|
];
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
curl
|
curl
|
||||||
duktape
|
duktape
|
||||||
|
@ -37,27 +57,23 @@ stdenv.mkDerivation rec {
|
||||||
perl
|
perl
|
||||||
quickjs
|
quickjs
|
||||||
readline
|
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 = [
|
makeFlags = [
|
||||||
"-C" "src"
|
|
||||||
"PREFIX=${placeholder "out"}"
|
"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/";
|
homepage = "https://edbrowse.org/";
|
||||||
description = "Command Line Editor Browser";
|
description = "Command Line Editor Browser";
|
||||||
longDescription = ''
|
longDescription = ''
|
||||||
|
@ -71,10 +87,14 @@ stdenv.mkDerivation rec {
|
||||||
send email, with no human intervention whatsoever. edbrowse can also tap
|
send email, with no human intervention whatsoever. edbrowse can also tap
|
||||||
into databases through odbc. It was primarily written by Karl Dahlke.
|
into databases through odbc. It was primarily written by Karl Dahlke.
|
||||||
'';
|
'';
|
||||||
license = licenses.gpl1Plus;
|
license = with lib.licenses; [ gpl1Plus ];
|
||||||
maintainers = with maintainers; [ schmitthenner vrthra equirosa ];
|
|
||||||
platforms = platforms.linux;
|
|
||||||
mainProgram = "edbrowse";
|
mainProgram = "edbrowse";
|
||||||
|
maintainers = with lib.maintainers; [
|
||||||
|
schmitthenner
|
||||||
|
equirosa
|
||||||
|
AndersonTorres
|
||||||
|
];
|
||||||
|
platforms = lib.platforms.linux;
|
||||||
};
|
};
|
||||||
}
|
})
|
||||||
# TODO: send the patch to upstream developers
|
# TODO: send the patch to upstream developers
|
|
@ -1,34 +1,37 @@
|
||||||
{ lib
|
{ lib
|
||||||
, stdenv
|
, emacs
|
||||||
|
, espeak-ng
|
||||||
, fetchFromGitHub
|
, fetchFromGitHub
|
||||||
, makeWrapper
|
, makeWrapper
|
||||||
, emacs
|
, stdenv
|
||||||
, tcl
|
, tcl
|
||||||
, tclx
|
, tclx
|
||||||
, espeak-ng
|
|
||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation (finalAttrs: {
|
||||||
pname = "emacspeak";
|
pname = "emacspeak";
|
||||||
version = "58.0";
|
version = "59.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "tvraman";
|
owner = "tvraman";
|
||||||
repo = pname;
|
repo = "emacspeak";
|
||||||
rev = version;
|
rev = finalAttrs.version;
|
||||||
hash= "sha256-5pWC17nvy3ZuG0bR//LqDVpKsH5hFSFf63Q33a1BfBk=";
|
hash = "sha256-npS/wlqI7nBde/2S/rzp79jdfYXIIhgsVs5VizxEDAQ=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
emacs
|
emacs
|
||||||
makeWrapper
|
makeWrapper
|
||||||
];
|
];
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
espeak-ng
|
espeak-ng
|
||||||
tcl
|
tcl
|
||||||
tclx
|
tclx
|
||||||
];
|
];
|
||||||
|
|
||||||
|
strictDeps = true;
|
||||||
|
|
||||||
preConfigure = ''
|
preConfigure = ''
|
||||||
make config
|
make config
|
||||||
'';
|
'';
|
||||||
|
@ -44,17 +47,21 @@ stdenv.mkDerivation rec {
|
||||||
cp -a . "$d"
|
cp -a . "$d"
|
||||||
find "$d" \( -type d -or \( -type f -executable \) \) -execdir chmod 755 {} +
|
find "$d" \( -type d -or \( -type f -executable \) \) -execdir chmod 755 {} +
|
||||||
find "$d" -type f -not -executable -execdir chmod 644 {} +
|
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 DTK_PROGRAM "${placeholder "out"}/share/emacs/site-lisp/emacspeak/servers/espeak" \
|
||||||
--set TCLLIBPATH "${tclx}/lib" \
|
--set TCLLIBPATH "${tclx}/lib" \
|
||||||
--add-flags '-l "${placeholder "out"}/share/emacs/site-lisp/emacspeak/lisp/emacspeak-setup.elc"'
|
--add-flags '-l "${placeholder "out"}/share/emacs/site-lisp/emacspeak/lisp/emacspeak-setup.elc"'
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = with lib; {
|
meta = {
|
||||||
homepage = "https://github.com/tvraman/emacspeak/";
|
homepage = "https://github.com/tvraman/emacspeak/";
|
||||||
description = "Emacs extension that provides spoken output";
|
description = "Emacs extension that provides spoken output";
|
||||||
license = licenses.gpl2Plus;
|
changelog = "https://github.com/tvraman/emacspeak/blob/${finalAttrs.src.rev}/etc/NEWS";
|
||||||
maintainers = [ maintainers.AndersonTorres ];
|
license = with lib.licenses; [ gpl2Plus ];
|
||||||
platforms = platforms.linux;
|
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 {
|
rustPlatform.buildRustPackage rec {
|
||||||
pname = "eza";
|
pname = "eza";
|
||||||
version = "0.18.4";
|
version = "0.18.5";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "eza-community";
|
owner = "eza-community";
|
||||||
repo = "eza";
|
repo = "eza";
|
||||||
rev = "v${version}";
|
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 ];
|
nativeBuildInputs = [ cmake pkg-config installShellFiles pandoc ];
|
||||||
buildInputs = [ zlib ]
|
buildInputs = [ zlib ]
|
||||||
|
|
|
@ -1,21 +1,25 @@
|
||||||
{ lib
|
{ lib
|
||||||
, python3Packages
|
|
||||||
, fetchFromGitHub
|
, fetchFromGitHub
|
||||||
|
, python3
|
||||||
}:
|
}:
|
||||||
|
|
||||||
python3Packages.buildPythonApplication rec {
|
python3.pkgs.buildPythonApplication rec {
|
||||||
pname = "ffsubsync";
|
pname = "ffsubsync";
|
||||||
version = "0.4.25";
|
version = "0.4.25";
|
||||||
format = "pyproject";
|
pyproject = true;
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "smacke";
|
owner = "smacke";
|
||||||
repo = "ffsubsync";
|
repo = "ffsubsync";
|
||||||
rev = version;
|
rev = "refs/tags/${version}";
|
||||||
hash = "sha256-ZdKZeKfAUe/FXLOur9Btb5RgXewmy3EHunQphqlxpIc=";
|
hash = "sha256-ZdKZeKfAUe/FXLOur9Btb5RgXewmy3EHunQphqlxpIc=";
|
||||||
};
|
};
|
||||||
|
|
||||||
propagatedBuildInputs = with python3Packages; [
|
nativeBuildInputs = with python3.pkgs; [
|
||||||
|
setuptools
|
||||||
|
];
|
||||||
|
|
||||||
|
propagatedBuildInputs = with python3.pkgs; [
|
||||||
auditok
|
auditok
|
||||||
charset-normalizer
|
charset-normalizer
|
||||||
faust-cchardet
|
faust-cchardet
|
||||||
|
@ -32,9 +36,13 @@ python3Packages.buildPythonApplication rec {
|
||||||
webrtcvad
|
webrtcvad
|
||||||
];
|
];
|
||||||
|
|
||||||
nativeCheckInputs = with python3Packages; [ pytestCheckHook ];
|
nativeCheckInputs = with python3.pkgs; [
|
||||||
|
pytestCheckHook
|
||||||
|
];
|
||||||
|
|
||||||
pythonImportsCheck = [ "ffsubsync" ];
|
pythonImportsCheck = [
|
||||||
|
"ffsubsync"
|
||||||
|
];
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
homepage = "https://github.com/smacke/ffsubsync";
|
homepage = "https://github.com/smacke/ffsubsync";
|
||||||
|
|
|
@ -6,13 +6,13 @@
|
||||||
}:
|
}:
|
||||||
buildGoModule rec {
|
buildGoModule rec {
|
||||||
pname = "flottbot";
|
pname = "flottbot";
|
||||||
version = "0.13.0";
|
version = "0.13.1";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "target";
|
owner = "target";
|
||||||
repo = "flottbot";
|
repo = "flottbot";
|
||||||
rev = version;
|
rev = version;
|
||||||
hash = "sha256-ldWE5QcLHyIqap5Qe6OTTIJZ1sshI+CVoJoRUxWHfxM=";
|
hash = "sha256-Fv4ZBCQA7gwt11ULIiyFwn+QgoMNgu+1TM9yy2Jz7og=";
|
||||||
};
|
};
|
||||||
|
|
||||||
patches = [
|
patches = [
|
||||||
|
@ -24,7 +24,7 @@ buildGoModule rec {
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
|
|
||||||
vendorHash = "sha256-XRcTp3ZnoPupzI1kjoM4oF5+VlNJFV0Bu+WAwfRWl7g=";
|
vendorHash = "sha256-wOUQKFd2Xm/2rvLw8kw8Ejbcq/JUvup/BzZs0fllBYY=";
|
||||||
|
|
||||||
subPackages = [ "cmd/flottbot" ];
|
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
|
in
|
||||||
stdenv.mkDerivation (finalAttrs: {
|
stdenv.mkDerivation (finalAttrs: {
|
||||||
pname = "fwupd";
|
pname = "fwupd";
|
||||||
version = "1.9.13";
|
version = "1.9.14";
|
||||||
|
|
||||||
# libfwupd goes to lib
|
# libfwupd goes to lib
|
||||||
# daemon, plug-ins and libfwupdplugin go to out
|
# daemon, plug-ins and libfwupdplugin go to out
|
||||||
|
@ -131,7 +131,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||||
owner = "fwupd";
|
owner = "fwupd";
|
||||||
repo = "fwupd";
|
repo = "fwupd";
|
||||||
rev = finalAttrs.version;
|
rev = finalAttrs.version;
|
||||||
hash = "sha256-h2e9MFTb777xbNRlzKWXc5GUdu/BHSkJTaogEE5byjo=";
|
hash = "sha256-pG4pRksHw8p8rz99UnLURP+ROE+P+ySt4IlfmyRc1CQ=";
|
||||||
};
|
};
|
||||||
|
|
||||||
patches = [
|
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
|
{ lib
|
||||||
, stdenvNoCC
|
|
||||||
, fetchFromGitHub
|
|
||||||
, bash
|
, bash
|
||||||
, coreutils
|
, coreutils
|
||||||
|
, fetchFromGitHub
|
||||||
, findutils
|
, findutils
|
||||||
, gettext
|
, gettext
|
||||||
, gnused
|
, gnused
|
||||||
|
, installShellFiles
|
||||||
, less
|
, less
|
||||||
, ncurses
|
, ncurses
|
||||||
, nixos-option
|
, nixos-option
|
||||||
|
, stdenvNoCC
|
||||||
, unixtools
|
, unixtools
|
||||||
, installShellFiles
|
|
||||||
, unstableGitUpdater
|
, unstableGitUpdater
|
||||||
}:
|
}:
|
||||||
|
|
||||||
stdenvNoCC.mkDerivation (finalAttrs: {
|
stdenvNoCC.mkDerivation (finalAttrs: {
|
||||||
pname = "home-manager";
|
pname = "home-manager";
|
||||||
version = "unstable-2024-02-20";
|
version = "0-unstable-2024-02-24";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
name = "home-manager-source";
|
name = "home-manager-source";
|
||||||
owner = "nix-community";
|
owner = "nix-community";
|
||||||
repo = "home-manager";
|
repo = "home-manager";
|
||||||
rev = "517601b37c6d495274454f63c5a483c8e3ca6be1";
|
rev = "4ee704cb13a5a7645436f400b9acc89a67b9c08a";
|
||||||
hash = "sha256-tgZ38NummEdnXvxj4D0StHBzXgceAw8CptytHljH790=";
|
hash = "sha256-MSbxtF3RThI8ANs/G4o1zIqF5/XlShHvwjl9Ws0QAbI=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
|
@ -40,6 +40,21 @@ stdenvNoCC.mkDerivation (finalAttrs: {
|
||||||
install -D -m755 home-manager/home-manager $out/bin/home-manager
|
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
|
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 \
|
substituteInPlace $out/bin/home-manager \
|
||||||
--subst-var-by bash "${bash}" \
|
--subst-var-by bash "${bash}" \
|
||||||
--subst-var-by DEP_PATH "${
|
--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_LIB '${placeholder "out"}/share/bash/home-manager.sh' \
|
||||||
--subst-var-by HOME_MANAGER_PATH "${finalAttrs.src}" \
|
--subst-var-by HOME_MANAGER_PATH "${finalAttrs.src}" \
|
||||||
--subst-var-by OUT '${placeholder "out"}'
|
--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 {
|
passthru.updateScript = unstableGitUpdater {
|
||||||
|
@ -86,8 +88,8 @@ stdenvNoCC.mkDerivation (finalAttrs: {
|
||||||
(non global) packages and dotfiles.
|
(non global) packages and dotfiles.
|
||||||
'';
|
'';
|
||||||
license = lib.licenses.mit;
|
license = lib.licenses.mit;
|
||||||
|
mainProgram = "home-manager";
|
||||||
maintainers = with lib.maintainers; [ AndersonTorres ];
|
maintainers = with lib.maintainers; [ AndersonTorres ];
|
||||||
platforms = lib.platforms.unix;
|
platforms = lib.platforms.unix;
|
||||||
mainProgram = "home-manager";
|
|
||||||
};
|
};
|
||||||
})
|
})
|
|
@ -15,12 +15,16 @@
|
||||||
, openclSupport ? false
|
, openclSupport ? false
|
||||||
, clblast
|
, clblast
|
||||||
|
|
||||||
, blasSupport ? !rocmSupport && !cudaSupport
|
, blasSupport ? builtins.all (x: !x) [ cudaSupport metalSupport openclSupport rocmSupport vulkanSupport ]
|
||||||
, openblas
|
|
||||||
, pkg-config
|
, pkg-config
|
||||||
, metalSupport ? stdenv.isDarwin && stdenv.isAarch64 && !openclSupport
|
, metalSupport ? stdenv.isDarwin && stdenv.isAarch64 && !openclSupport
|
||||||
, patchelf
|
, vulkanSupport ? false
|
||||||
, static ? true # if false will build the shared objects as well
|
, mpiSupport ? false # Increases the runtime closure by ~700M
|
||||||
|
, vulkan-headers
|
||||||
|
, vulkan-loader
|
||||||
|
, ninja
|
||||||
|
, git
|
||||||
|
, mpi
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
|
@ -28,42 +32,18 @@ let
|
||||||
# otherwise we get libstdc++ errors downstream.
|
# 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
|
# 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;
|
effectiveStdenv = if cudaSupport then cudaPackages.backendStdenv else stdenv;
|
||||||
in
|
inherit (lib) cmakeBool cmakeFeature optionals;
|
||||||
effectiveStdenv.mkDerivation (finalAttrs: {
|
|
||||||
pname = "llama-cpp";
|
|
||||||
version = "2249";
|
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
darwinBuildInputs =
|
||||||
owner = "ggerganov";
|
with darwin.apple_sdk.frameworks;
|
||||||
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; [
|
|
||||||
Accelerate
|
Accelerate
|
||||||
CoreGraphics
|
|
||||||
CoreVideo
|
CoreVideo
|
||||||
Foundation
|
CoreGraphics
|
||||||
])
|
]
|
||||||
++ lib.optionals metalSupport (with darwin.apple_sdk.frameworks; [
|
++ optionals metalSupport [ MetalKit ];
|
||||||
MetalKit
|
|
||||||
])
|
cudaBuildInputs = with cudaPackages; [
|
||||||
++ lib.optionals cudaSupport (with cudaPackages; [
|
|
||||||
cuda_cccl.dev # <nv/target>
|
cuda_cccl.dev # <nv/target>
|
||||||
|
|
||||||
# A temporary hack for reducing the closure size, remove once cudaPackages
|
# A temporary hack for reducing the closure size, remove once cudaPackages
|
||||||
|
@ -74,65 +54,93 @@ effectiveStdenv.mkDerivation (finalAttrs: {
|
||||||
libcublas.dev
|
libcublas.dev
|
||||||
libcublas.lib
|
libcublas.lib
|
||||||
libcublas.static
|
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 = [
|
cmakeFlags = [
|
||||||
"-DLLAMA_NATIVE=OFF"
|
# -march=native is non-deterministic; override with platform-specific flags if needed
|
||||||
"-DLLAMA_BUILD_SERVER=ON"
|
(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 [
|
++ optionals cudaSupport [
|
||||||
"-DCMAKE_C_FLAGS=-D__ARM_FEATURE_DOTPROD=1"
|
(
|
||||||
"-DLLAMA_METAL=ON"
|
with cudaPackages.flags;
|
||||||
]
|
cmakeFeature "CMAKE_CUDA_ARCHITECTURES" (
|
||||||
++ lib.optionals cudaSupport [
|
builtins.concatStringsSep ";" (map dropDot cudaCapabilities)
|
||||||
"-DLLAMA_CUBLAS=ON"
|
)
|
||||||
]
|
)
|
||||||
++ lib.optionals rocmSupport [
|
]
|
||||||
"-DLLAMA_HIPBLAS=1"
|
++ optionals rocmSupport [
|
||||||
"-DCMAKE_C_COMPILER=hipcc"
|
(cmakeFeature "CMAKE_C_COMPILER" "hipcc")
|
||||||
"-DCMAKE_CXX_COMPILER=hipcc"
|
(cmakeFeature "CMAKE_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)
|
|
||||||
];
|
|
||||||
|
|
||||||
installPhase = ''
|
# Build all targets supported by rocBLAS. When updating search for TARGET_LIST_ROCM
|
||||||
runHook preInstall
|
# 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
|
# upstream plans on adding targets at the cmakelevel, remove those
|
||||||
${lib.optionalString (!static) ''
|
# additional steps after that
|
||||||
mkdir $out/lib
|
postInstall = ''
|
||||||
cp libggml_shared.so $out/lib
|
mv $out/bin/main $out/bin/llama
|
||||||
cp libllama.so $out/lib
|
mv $out/bin/server $out/bin/llama-server
|
||||||
''}
|
mkdir -p $out/include
|
||||||
|
cp $src/llama.h $out/include/
|
||||||
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
|
|
||||||
'';
|
'';
|
||||||
|
|
||||||
passthru.updateScript = nix-update-script {
|
passthru.updateScript = nix-update-script {
|
||||||
|
@ -144,9 +152,10 @@ effectiveStdenv.mkDerivation (finalAttrs: {
|
||||||
description = "Port of Facebook's LLaMA model in C/C++";
|
description = "Port of Facebook's LLaMA model in C/C++";
|
||||||
homepage = "https://github.com/ggerganov/llama.cpp/";
|
homepage = "https://github.com/ggerganov/llama.cpp/";
|
||||||
license = licenses.mit;
|
license = licenses.mit;
|
||||||
mainProgram = "llama-cpp-main";
|
mainProgram = "llama";
|
||||||
maintainers = with maintainers; [ dit7ya elohmeier ];
|
maintainers = with maintainers; [ dit7ya elohmeier philiptaron ];
|
||||||
broken = (effectiveStdenv.isDarwin && effectiveStdenv.isx86_64) || lib.count lib.id [openclSupport blasSupport rocmSupport cudaSupport] == 0;
|
|
||||||
platforms = platforms.unix;
|
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 {
|
rustPlatform.buildRustPackage rec {
|
||||||
pname = "niri";
|
pname = "niri";
|
||||||
version = "0.1.1";
|
version = "0.1.2";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "YaLTeR";
|
owner = "YaLTeR";
|
||||||
repo = "niri";
|
repo = "niri";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
hash = "sha256-+Y7dnq8gwVxefwvRnamqGneCTI4uUXgAo0SEffIvNB0=";
|
hash = "sha256-vO6ak5rT6ntBC20vYC36zcEcHv7Cki9y8A+c7ThfsUg=";
|
||||||
};
|
};
|
||||||
|
|
||||||
cargoLock = {
|
cargoLock = {
|
||||||
lockFile = ./Cargo.lock;
|
lockFile = ./Cargo.lock;
|
||||||
outputHashes = {
|
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";
|
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; {
|
meta = with lib; {
|
||||||
description = "A scrollable-tiling Wayland compositor";
|
description = "A scrollable-tiling Wayland compositor";
|
||||||
homepage = "https://github.com/YaLTeR/niri";
|
homepage = "https://github.com/YaLTeR/niri";
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
fetchurl,
|
fetchurl,
|
||||||
jdk21,
|
jdk21,
|
||||||
stdenv,
|
stdenv,
|
||||||
undmg
|
_7zz
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
pname = "nosql-workbench";
|
pname = "nosql-workbench";
|
||||||
|
@ -39,30 +39,19 @@ if stdenv.isDarwin then stdenv.mkDerivation {
|
||||||
|
|
||||||
sourceRoot = ".";
|
sourceRoot = ".";
|
||||||
|
|
||||||
|
nativeBuildInputs = [ _7zz ];
|
||||||
|
|
||||||
buildInputs = [ jdk21 ];
|
buildInputs = [ jdk21 ];
|
||||||
|
|
||||||
# DMG file is using APFS which is unsupported by "undmg".
|
# 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
|
# "undmg" issue: https://github.com/matthewbauer/undmg/issues/4
|
||||||
unpackCmd = ''
|
unpackCmd = ''
|
||||||
echo "Creating temp directory"
|
runHook preUnpack
|
||||||
mnt=$(TMPDIR=/tmp mktemp -d -t nix-XXXXXXXXXX)
|
|
||||||
|
|
||||||
function finish {
|
7zz x $curSrc
|
||||||
echo "Ejecting temp directory"
|
|
||||||
/usr/bin/hdiutil detach $mnt -force
|
|
||||||
rm -rf $mnt
|
|
||||||
}
|
|
||||||
# Detach volume when receiving SIG "0"
|
|
||||||
trap finish EXIT
|
|
||||||
|
|
||||||
# Mount DMG file
|
runHook postUnpack
|
||||||
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/
|
|
||||||
'';
|
'';
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
|
|
|
@ -6,13 +6,13 @@
|
||||||
|
|
||||||
python3.pkgs.buildPythonApplication rec {
|
python3.pkgs.buildPythonApplication rec {
|
||||||
pname = "oelint-adv";
|
pname = "oelint-adv";
|
||||||
version = "4.4.0";
|
version = "4.4.1";
|
||||||
format = "setuptools";
|
format = "setuptools";
|
||||||
|
|
||||||
src = fetchPypi {
|
src = fetchPypi {
|
||||||
inherit version;
|
inherit version;
|
||||||
pname = "oelint_adv";
|
pname = "oelint_adv";
|
||||||
hash = "sha256-Sg7qn/yZUJEJdMmaGm27kyL+fKkUsZo25eExZPOem40=";
|
hash = "sha256-Yv0GCz0vZTVrnFjHFIl4XF/jbVD4DJ4J6V6+X5IllJ8=";
|
||||||
};
|
};
|
||||||
|
|
||||||
propagatedBuildInputs = with python3.pkgs; [
|
propagatedBuildInputs = with python3.pkgs; [
|
||||||
|
|
|
@ -2,13 +2,13 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "outils";
|
pname = "outils";
|
||||||
version = "0.10";
|
version = "0.13";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "leahneukirchen";
|
owner = "leahneukirchen";
|
||||||
repo = pname;
|
repo = "outils";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "sha256-xYjILa0Km57q/xNP+M34r29WLGC15tzUNoUgPzQTtIs=";
|
hash = "sha256-FokJytwQsbGsryBzyglpb1Hg3wti/CPQTOfIGIz9ThA=";
|
||||||
};
|
};
|
||||||
|
|
||||||
makeFlags = [ "PREFIX=$(out)" ];
|
makeFlags = [ "PREFIX=$(out)" ];
|
|
@ -2,14 +2,14 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "scitokens-cpp";
|
pname = "scitokens-cpp";
|
||||||
version = "1.1.0";
|
version = "1.1.1";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "scitokens";
|
owner = "scitokens";
|
||||||
repo = "scitokens-cpp";
|
repo = "scitokens-cpp";
|
||||||
|
|
||||||
rev = "v1.1.0";
|
rev = "v1.1.1";
|
||||||
hash = "sha256-g97Ah5Oob0iOvMQegpG/AACLZCW37kA0RpSIcKOyQnE=";
|
hash = "sha256-G3z9DYYWCNeA/rufNHQP3SwT5WS2AvUWm1rd8lx6XxA=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ cmake pkg-config ];
|
nativeBuildInputs = [ cmake pkg-config ];
|
||||||
|
|
|
@ -73,6 +73,7 @@ python3.pkgs.toPythonModule (python3.pkgs.buildPythonApplication rec {
|
||||||
homepage = "https://github.com/searxng/searxng";
|
homepage = "https://github.com/searxng/searxng";
|
||||||
description = "A fork of Searx, a privacy-respecting, hackable metasearch engine";
|
description = "A fork of Searx, a privacy-respecting, hackable metasearch engine";
|
||||||
license = licenses.agpl3Plus;
|
license = licenses.agpl3Plus;
|
||||||
|
mainProgram = "searxng-run";
|
||||||
maintainers = with maintainers; [ SuperSandro2000 _999eagle ];
|
maintainers = with maintainers; [ SuperSandro2000 _999eagle ];
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
, meson, ninja, pkg-config, wayland-scanner, scdoc
|
, meson, ninja, pkg-config, wayland-scanner, scdoc
|
||||||
, libGL, wayland, libxkbcommon, pcre2, json_c, libevdev
|
, libGL, wayland, libxkbcommon, pcre2, json_c, libevdev
|
||||||
, pango, cairo, libinput, gdk-pixbuf, librsvg
|
, pango, cairo, libinput, gdk-pixbuf, librsvg
|
||||||
, wlroots_0_16, wayland-protocols, libdrm
|
, wlroots, wayland-protocols, libdrm
|
||||||
, nixosTests
|
, nixosTests
|
||||||
# Used by the NixOS module:
|
# Used by the NixOS module:
|
||||||
, isNixOS ? false
|
, isNixOS ? false
|
||||||
|
@ -11,19 +11,16 @@
|
||||||
, trayEnabled ? systemdSupport
|
, trayEnabled ? systemdSupport
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
|
||||||
wlroots = wlroots_0_16;
|
|
||||||
in
|
|
||||||
stdenv.mkDerivation (finalAttrs: {
|
stdenv.mkDerivation (finalAttrs: {
|
||||||
pname = "sway-unwrapped";
|
pname = "sway-unwrapped";
|
||||||
version = "1.8.1";
|
version = "1.9";
|
||||||
|
|
||||||
inherit enableXWayland isNixOS systemdSupport trayEnabled;
|
inherit enableXWayland isNixOS systemdSupport trayEnabled;
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "swaywm";
|
owner = "swaywm";
|
||||||
repo = "sway";
|
repo = "sway";
|
||||||
rev = finalAttrs.version;
|
rev = finalAttrs.version;
|
||||||
hash = "sha256-WxnT+le9vneQLFPz2KoBduOI+zfZPhn1fKlaqbPL6/g=";
|
hash = "sha256-/6+iDkQfdLcL/pTJaqNc6QdP4SRVOYLjfOItEu/bZtg=";
|
||||||
};
|
};
|
||||||
|
|
||||||
patches = [
|
patches = [
|
||||||
|
@ -34,11 +31,6 @@ stdenv.mkDerivation (finalAttrs: {
|
||||||
inherit swaybg;
|
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) [
|
] ++ lib.optionals (!finalAttrs.isNixOS) [
|
||||||
# References to /nix/store/... will get GC'ed which causes problems when
|
# References to /nix/store/... will get GC'ed which causes problems when
|
||||||
# copying the default configuration:
|
# copying the default configuration:
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
sway-unwrapped,
|
sway-unwrapped,
|
||||||
stdenv,
|
stdenv,
|
||||||
systemd,
|
systemd,
|
||||||
|
wlroots_0_16,
|
||||||
# Used by the NixOS module:
|
# Used by the NixOS module:
|
||||||
isNixOS ? false,
|
isNixOS ? false,
|
||||||
enableXWayland ? true,
|
enableXWayland ? true,
|
||||||
|
@ -18,6 +19,8 @@
|
||||||
systemdSupport
|
systemdSupport
|
||||||
trayEnabled
|
trayEnabled
|
||||||
;
|
;
|
||||||
|
|
||||||
|
wlroots = wlroots_0_16;
|
||||||
}).overrideAttrs (oldAttrs: rec {
|
}).overrideAttrs (oldAttrs: rec {
|
||||||
pname = "swayfx-unwrapped";
|
pname = "swayfx-unwrapped";
|
||||||
version = "0.3.2";
|
version = "0.3.2";
|
||||||
|
@ -29,18 +32,6 @@
|
||||||
sha256 = "sha256-Gwewb0yDVhEBrefSSGDf1hLtpWcntzifPCPJQhqLqI0=";
|
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; {
|
meta = with lib; {
|
||||||
description = "Sway, but with eye candy!";
|
description = "Sway, but with eye candy!";
|
||||||
homepage = "https://github.com/WillPower3309/swayfx";
|
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 {
|
rustPlatform.buildRustPackage rec {
|
||||||
pname = "uiua";
|
pname = "uiua";
|
||||||
version = "0.8.0";
|
version = "0.9.5";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "uiua-lang";
|
owner = "uiua-lang";
|
||||||
repo = "uiua";
|
repo = "uiua";
|
||||||
rev = version;
|
rev = version;
|
||||||
hash = "sha256-JilYPIeJbVf9wgGpLTy8pbMwFRrW7Od+8y0tWwAXU84=";
|
hash = "sha256-629hJLSGf0LJ+P1j1b87RV6XGgsDaWif1a6+Eo3NmMw=";
|
||||||
};
|
};
|
||||||
|
|
||||||
cargoHash = "sha256-oXO2TBdKmVIpZD0jLI1CK9b48r3SwdeygcJoUG6HGXo=";
|
cargoHash = "sha256-ZRiDlsSZ5jjTrOrB/bg2xOcOTsCNFdP0jY0SwZ1zwGU=";
|
||||||
|
|
||||||
nativeBuildInputs = lib.optionals stdenv.isDarwin [
|
nativeBuildInputs = lib.optionals stdenv.isDarwin [
|
||||||
rustPlatform.bindgenHook
|
rustPlatform.bindgenHook
|
||||||
|
@ -41,6 +41,7 @@ rustPlatform.buildRustPackage rec {
|
||||||
|
|
||||||
buildFeatures = lib.optional audioSupport "audio";
|
buildFeatures = lib.optional audioSupport "audio";
|
||||||
|
|
||||||
|
passthru.updateScript = ./update.sh;
|
||||||
passthru.tests.run = runCommand "uiua-test-run" { nativeBuildInputs = [ uiua ]; } ''
|
passthru.tests.run = runCommand "uiua-test-run" { nativeBuildInputs = [ uiua ]; } ''
|
||||||
uiua init
|
uiua init
|
||||||
diff -U3 --color=auto <(uiua run main.ua) <(echo '"Hello, World!"')
|
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]]
|
[[package]]
|
||||||
name = "anstream"
|
name = "anstream"
|
||||||
version = "0.6.11"
|
version = "0.6.12"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "6e2e1ebcb11de5c03c67de28a7df593d32191b44939c482e97702baaaa6ab6a5"
|
checksum = "96b09b5178381e0874812a9b157f7fe84982617e48f71f4e3235482775e5b540"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anstyle",
|
"anstyle",
|
||||||
"anstyle-parse",
|
"anstyle-parse",
|
||||||
|
@ -147,9 +147,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "assert_cmd"
|
name = "assert_cmd"
|
||||||
version = "2.0.13"
|
version = "2.0.14"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "00ad3f3a942eee60335ab4342358c161ee296829e0d16ff42fc1d6cb07815467"
|
checksum = "ed72493ac66d5804837f480ab3766c72bdfab91a65e565fc54fa9e42db0073a8"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anstyle",
|
"anstyle",
|
||||||
"bstr",
|
"bstr",
|
||||||
|
@ -1587,25 +1587,21 @@ dependencies = [
|
||||||
"data-encoding",
|
"data-encoding",
|
||||||
"distribution-filename",
|
"distribution-filename",
|
||||||
"fs-err",
|
"fs-err",
|
||||||
"fs2",
|
|
||||||
"goblin",
|
|
||||||
"indoc",
|
"indoc",
|
||||||
"mailparse",
|
"mailparse",
|
||||||
"once_cell",
|
"once_cell",
|
||||||
|
"pathdiff",
|
||||||
"pep440_rs",
|
"pep440_rs",
|
||||||
"platform-host",
|
"platform-host",
|
||||||
"platform-info",
|
"platform-info",
|
||||||
"plist",
|
"plist",
|
||||||
"pyo3",
|
|
||||||
"pypi-types",
|
"pypi-types",
|
||||||
"rayon",
|
|
||||||
"reflink-copy",
|
"reflink-copy",
|
||||||
"regex",
|
"regex",
|
||||||
"rustc-hash",
|
"rustc-hash",
|
||||||
"serde",
|
"serde",
|
||||||
"serde_json",
|
"serde_json",
|
||||||
"sha2",
|
"sha2",
|
||||||
"target-lexicon",
|
|
||||||
"tempfile",
|
"tempfile",
|
||||||
"thiserror",
|
"thiserror",
|
||||||
"tracing",
|
"tracing",
|
||||||
|
@ -2193,6 +2189,12 @@ version = "1.0.14"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c"
|
checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "pathdiff"
|
||||||
|
version = "0.2.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pep440_rs"
|
name = "pep440_rs"
|
||||||
version = "0.5.0"
|
version = "0.5.0"
|
||||||
|
@ -3189,18 +3191,18 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "serde"
|
name = "serde"
|
||||||
version = "1.0.196"
|
version = "1.0.197"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32"
|
checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"serde_derive",
|
"serde_derive",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "serde_derive"
|
name = "serde_derive"
|
||||||
version = "1.0.196"
|
version = "1.0.197"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67"
|
checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
|
@ -3209,9 +3211,9 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "serde_json"
|
name = "serde_json"
|
||||||
version = "1.0.113"
|
version = "1.0.114"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "69801b70b1c3dac963ecb03a364ba0ceda9cf60c71cfe475e99864759c8b8a79"
|
checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"itoa",
|
"itoa",
|
||||||
"ryu",
|
"ryu",
|
||||||
|
@ -3496,9 +3498,9 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "target-lexicon"
|
name = "target-lexicon"
|
||||||
version = "0.12.13"
|
version = "0.12.14"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "69758bda2e78f098e4ccb393021a0963bb3442eac05f135c30f61b7370bbafae"
|
checksum = "e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "task-local-extensions"
|
name = "task-local-extensions"
|
||||||
|
@ -4131,7 +4133,7 @@ checksum = "f00cc9702ca12d3c81455259621e676d0f7251cec66a21e98fe2e9a37db93b2a"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "uv"
|
name = "uv"
|
||||||
version = "0.1.11"
|
version = "0.1.12"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anstream",
|
"anstream",
|
||||||
"anyhow",
|
"anyhow",
|
||||||
|
@ -4151,6 +4153,7 @@ dependencies = [
|
||||||
"fs-err",
|
"fs-err",
|
||||||
"futures",
|
"futures",
|
||||||
"gourgeist",
|
"gourgeist",
|
||||||
|
"indexmap 2.2.3",
|
||||||
"indicatif",
|
"indicatif",
|
||||||
"indoc",
|
"indoc",
|
||||||
"insta",
|
"insta",
|
||||||
|
@ -4493,12 +4496,15 @@ dependencies = [
|
||||||
"pep508_rs",
|
"pep508_rs",
|
||||||
"platform-tags",
|
"platform-tags",
|
||||||
"pypi-types",
|
"pypi-types",
|
||||||
|
"pyproject-toml",
|
||||||
"rayon",
|
"rayon",
|
||||||
"requirements-txt",
|
"requirements-txt",
|
||||||
"rustc-hash",
|
"rustc-hash",
|
||||||
|
"serde",
|
||||||
"tempfile",
|
"tempfile",
|
||||||
"thiserror",
|
"thiserror",
|
||||||
"tokio",
|
"tokio",
|
||||||
|
"toml",
|
||||||
"tracing",
|
"tracing",
|
||||||
"url",
|
"url",
|
||||||
"uv-cache",
|
"uv-cache",
|
||||||
|
@ -4518,9 +4524,11 @@ version = "0.0.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"cache-key",
|
"cache-key",
|
||||||
|
"configparser",
|
||||||
"fs-err",
|
"fs-err",
|
||||||
"indoc",
|
"indoc",
|
||||||
"insta",
|
"insta",
|
||||||
|
"install-wheel-rs",
|
||||||
"itertools 0.12.1",
|
"itertools 0.12.1",
|
||||||
"once_cell",
|
"once_cell",
|
||||||
"pep440_rs",
|
"pep440_rs",
|
||||||
|
|
|
@ -1,31 +1,25 @@
|
||||||
{ lib
|
{ lib
|
||||||
, cargo
|
|
||||||
, cmake
|
, cmake
|
||||||
, darwin
|
, darwin
|
||||||
, fetchFromGitHub
|
, fetchFromGitHub
|
||||||
, libgit2
|
|
||||||
, openssl
|
, openssl
|
||||||
, pkg-config
|
, pkg-config
|
||||||
, python3
|
|
||||||
, rustPlatform
|
, rustPlatform
|
||||||
, rustc
|
|
||||||
, stdenv
|
, stdenv
|
||||||
, zlib
|
|
||||||
}:
|
}:
|
||||||
|
|
||||||
python3.pkgs.buildPythonApplication rec {
|
rustPlatform.buildRustPackage rec {
|
||||||
pname = "uv";
|
pname = "uv";
|
||||||
version = "0.1.11";
|
version = "0.1.12";
|
||||||
pyproject = true;
|
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "astral-sh";
|
owner = "astral-sh";
|
||||||
repo = "uv";
|
repo = "uv";
|
||||||
rev = version;
|
rev = version;
|
||||||
hash = "sha256-0J6m/DgalYA+GGmgjFrNoo9KAv6WgMcx+gasgqG5v1Q=";
|
hash = "sha256-tM8NX4BPGm8Xxlau+qpKSljTdSJutipsYFsZAdtmZuo=";
|
||||||
};
|
};
|
||||||
|
|
||||||
cargoDeps = rustPlatform.importCargoLock {
|
cargoLock = {
|
||||||
lockFile = ./Cargo.lock;
|
lockFile = ./Cargo.lock;
|
||||||
outputHashes = {
|
outputHashes = {
|
||||||
"async_zip-0.0.16" = "sha256-M94ceTCtyQc1AtPXYrVGplShQhItqZZa/x5qLiL+gs0=";
|
"async_zip-0.0.16" = "sha256-M94ceTCtyQc1AtPXYrVGplShQhItqZZa/x5qLiL+gs0=";
|
||||||
|
@ -34,25 +28,20 @@ python3.pkgs.buildPythonApplication rec {
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
cargo
|
|
||||||
cmake
|
cmake
|
||||||
pkg-config
|
pkg-config
|
||||||
rustPlatform.cargoSetupHook
|
|
||||||
rustPlatform.maturinBuildHook
|
|
||||||
rustc
|
|
||||||
];
|
];
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
libgit2
|
|
||||||
openssl
|
openssl
|
||||||
zlib
|
|
||||||
] ++ lib.optionals stdenv.isDarwin [
|
] ++ lib.optionals stdenv.isDarwin [
|
||||||
darwin.apple_sdk.frameworks.SystemConfiguration
|
darwin.apple_sdk.frameworks.SystemConfiguration
|
||||||
];
|
];
|
||||||
|
|
||||||
dontUseCmakeConfigure = true;
|
cargoBuildFlags = [ "--package" "uv" ];
|
||||||
|
|
||||||
pythonImportsCheck = [ "uv" ];
|
# Tests require network access
|
||||||
|
doCheck = false;
|
||||||
|
|
||||||
env = {
|
env = {
|
||||||
OPENSSL_NO_VENDOR = true;
|
OPENSSL_NO_VENDOR = true;
|
||||||
|
@ -61,7 +50,7 @@ python3.pkgs.buildPythonApplication rec {
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "An extremely fast Python package installer and resolver, written in Rust";
|
description = "An extremely fast Python package installer and resolver, written in Rust";
|
||||||
homepage = "https://github.com/astral-sh/uv";
|
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 ];
|
license = with licenses; [ asl20 mit ];
|
||||||
maintainers = with maintainers; [ marsam ];
|
maintainers = with maintainers; [ marsam ];
|
||||||
mainProgram = "uv";
|
mainProgram = "uv";
|
||||||
|
|
|
@ -1,8 +1,4 @@
|
||||||
{ lib
|
{ lib
|
||||||
, stdenv
|
|
||||||
, pkgsBuildBuild
|
|
||||||
, fetchurl
|
|
||||||
, fetchpatch
|
|
||||||
, SDL
|
, SDL
|
||||||
, SDL_image
|
, SDL_image
|
||||||
, a52dec
|
, a52dec
|
||||||
|
@ -11,6 +7,8 @@
|
||||||
, avahi
|
, avahi
|
||||||
, dbus
|
, dbus
|
||||||
, faad2
|
, faad2
|
||||||
|
, fetchpatch
|
||||||
|
, fetchurl
|
||||||
, ffmpeg
|
, ffmpeg
|
||||||
, flac
|
, flac
|
||||||
, fluidsynth
|
, fluidsynth
|
||||||
|
@ -48,6 +46,7 @@
|
||||||
, libpulseaudio
|
, libpulseaudio
|
||||||
, libraw1394
|
, libraw1394
|
||||||
, librsvg
|
, librsvg
|
||||||
|
, libsForQt5
|
||||||
, libsamplerate
|
, libsamplerate
|
||||||
, libspatialaudio
|
, libspatialaudio
|
||||||
, libssh2
|
, libssh2
|
||||||
|
@ -65,23 +64,20 @@
|
||||||
, ncurses
|
, ncurses
|
||||||
, perl
|
, perl
|
||||||
, pkg-config
|
, pkg-config
|
||||||
|
, pkgsBuildBuild
|
||||||
, protobuf
|
, protobuf
|
||||||
, qtbase
|
|
||||||
, qtsvg
|
|
||||||
, qtwayland
|
|
||||||
, qtx11extras
|
|
||||||
, removeReferencesTo
|
, removeReferencesTo
|
||||||
, samba
|
, samba
|
||||||
, schroedinger
|
, schroedinger
|
||||||
, speex
|
, speex
|
||||||
, srt
|
, srt
|
||||||
|
, stdenv
|
||||||
, systemd
|
, systemd
|
||||||
, taglib
|
, taglib
|
||||||
, unzip
|
, unzip
|
||||||
, wayland
|
, wayland
|
||||||
, wayland-protocols
|
, wayland-protocols
|
||||||
, wrapGAppsHook
|
, wrapGAppsHook
|
||||||
, wrapQtAppsHook
|
|
||||||
, xcbutilkeysyms
|
, xcbutilkeysyms
|
||||||
, zlib
|
, zlib
|
||||||
|
|
||||||
|
@ -98,7 +94,7 @@
|
||||||
# networking.firewall.allowedTCPPorts = [ 8010 ];
|
# networking.firewall.allowedTCPPorts = [ 8010 ];
|
||||||
|
|
||||||
let
|
let
|
||||||
inherit (lib) optionalString optional optionals;
|
inherit (lib) optionalString optionals;
|
||||||
in
|
in
|
||||||
stdenv.mkDerivation (finalAttrs: {
|
stdenv.mkDerivation (finalAttrs: {
|
||||||
pname = "${optionalString onlyLibVLC "lib"}vlc";
|
pname = "${optionalString onlyLibVLC "lib"}vlc";
|
||||||
|
@ -118,8 +114,8 @@ stdenv.mkDerivation (finalAttrs: {
|
||||||
unzip
|
unzip
|
||||||
wrapGAppsHook
|
wrapGAppsHook
|
||||||
]
|
]
|
||||||
++ optional chromecastSupport protobuf
|
++ optionals chromecastSupport [ protobuf ]
|
||||||
++ optionals withQt5 [ wrapQtAppsHook ]
|
++ optionals withQt5 [ libsForQt5.wrapQtAppsHook ]
|
||||||
++ optionals waylandSupport [
|
++ optionals waylandSupport [
|
||||||
wayland
|
wayland
|
||||||
wayland-protocols
|
wayland-protocols
|
||||||
|
@ -191,8 +187,8 @@ stdenv.mkDerivation (finalAttrs: {
|
||||||
xcbutilkeysyms
|
xcbutilkeysyms
|
||||||
zlib
|
zlib
|
||||||
]
|
]
|
||||||
++ optional (!stdenv.hostPlatform.isAarch && !onlyLibVLC) live555
|
++ optionals (!stdenv.hostPlatform.isAarch && !onlyLibVLC) [ live555 ]
|
||||||
++ optional jackSupport libjack2
|
++ optionals jackSupport [ libjack2 ]
|
||||||
++ optionals chromecastSupport [ libmicrodns protobuf ]
|
++ optionals chromecastSupport [ libmicrodns protobuf ]
|
||||||
++ optionals skins2Support [
|
++ optionals skins2Support [
|
||||||
freetype
|
freetype
|
||||||
|
@ -201,8 +197,12 @@ stdenv.mkDerivation (finalAttrs: {
|
||||||
libXpm
|
libXpm
|
||||||
]
|
]
|
||||||
++ optionals waylandSupport [ wayland wayland-protocols ]
|
++ optionals waylandSupport [ wayland wayland-protocols ]
|
||||||
++ optionals withQt5 [ qtbase qtsvg qtx11extras ]
|
++ optionals withQt5 (with libsForQt5; [
|
||||||
++ optional (waylandSupport && withQt5) qtwayland;
|
qtbase
|
||||||
|
qtsvg
|
||||||
|
qtx11extras
|
||||||
|
])
|
||||||
|
++ optionals (waylandSupport && withQt5) [ libsForQt5.qtwayland ];
|
||||||
|
|
||||||
env = {
|
env = {
|
||||||
# vlc depends on a c11-gcc wrapper script which we don't have so we need to
|
# 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
|
# upstream issue: https://code.videolan.org/videolan/vlc/-/issues/25473
|
||||||
(fetchpatch {
|
(fetchpatch {
|
||||||
url = "https://code.videolan.org/videolan/vlc/uploads/eb1c313d2d499b8a777314f789794f9d/0001-Add-lssl-and-lcrypto-to-liblive555_plugin_la_LIBADD.patch";
|
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 = ''
|
postPatch = ''
|
||||||
substituteInPlace modules/text_renderer/freetype/platform_fonts.h --replace \
|
substituteInPlace modules/text_renderer/freetype/platform_fonts.h \
|
||||||
/usr/share/fonts/truetype/freefont ${freefont_ttf}/share/fonts/truetype
|
--replace \
|
||||||
'' + lib.optionalString (!stdenv.hostPlatform.canExecute stdenv.buildPlatform) ''
|
/usr/share/fonts/truetype/freefont \
|
||||||
# Upstream luac can't cross compile, so we have to install the lua
|
${freefont_ttf}/share/fonts/truetype
|
||||||
# sources, not bytecode:
|
''
|
||||||
# https://www.lua.org/wshop13/Jericke.pdf#page=39
|
# Upstream luac can't cross compile, so we have to install the lua sources
|
||||||
substituteInPlace share/Makefile.am --replace $'.luac \\\n' $'.lua \\\n'
|
# 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;
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
dontWrapGApps = true; # to prevent double wrapping of Qtwrap and Gwrap
|
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
|
# Most of the libraries are auto-detected so we don't need to set a bunch of
|
||||||
# "--enable-foo" flags here
|
# "--enable-foo" flags here
|
||||||
configureFlags = [
|
configureFlags = [
|
||||||
"--enable-srt" # Explicit enable srt to ensure the patch is applied.
|
"--enable-srt" # Explicit enable srt to ensure the patch is applied.
|
||||||
"--with-kde-solid=$out/share/apps/solid/actions"
|
"--with-kde-solid=$out/share/apps/solid/actions"
|
||||||
]
|
]
|
||||||
++ optional onlyLibVLC "--disable-vlc"
|
++ optionals onlyLibVLC [ "--disable-vlc" ]
|
||||||
++ optional skins2Support "--enable-skins2"
|
++ optionals skins2Support [ "--enable-skins2" ]
|
||||||
++ optional waylandSupport "--enable-wayland"
|
++ optionals waylandSupport [ "--enable-wayland" ]
|
||||||
++ optionals chromecastSupport [
|
++ optionals chromecastSupport [
|
||||||
"--enable-sout"
|
"--enable-sout"
|
||||||
"--enable-chromecast"
|
"--enable-chromecast"
|
||||||
|
@ -285,6 +271,24 @@ stdenv.mkDerivation (finalAttrs: {
|
||||||
cp -R share/hrtfs $out/share/vlc
|
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 = {
|
meta = {
|
||||||
description = "Cross-platform media player and streaming server";
|
description = "Cross-platform media player and streaming server";
|
||||||
homepage = "https://www.videolan.org/vlc/";
|
homepage = "https://www.videolan.org/vlc/";
|
|
@ -6,13 +6,13 @@
|
||||||
# Testing this requires a Thinkpad or the presence of /proc/acpi/ibm/fan
|
# Testing this requires a Thinkpad or the presence of /proc/acpi/ibm/fan
|
||||||
stdenv.mkDerivation (finalAttrs: {
|
stdenv.mkDerivation (finalAttrs: {
|
||||||
pname = "zcfan";
|
pname = "zcfan";
|
||||||
version = "1.2.1";
|
version = "1.3.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "cdown";
|
owner = "cdown";
|
||||||
repo = "zcfan";
|
repo = "zcfan";
|
||||||
rev = finalAttrs.version;
|
rev = finalAttrs.version;
|
||||||
hash = "sha256-XngchR06HP2iExKJVe+XKBDgsv98AEYWOkl1a/Hktgs=";
|
hash = "sha256-zpYQEHXt8LBNX+luM4YxP0dKH+hb2c8Z0BEeGP09oZo=";
|
||||||
};
|
};
|
||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
|
|
|
@ -5,11 +5,11 @@
|
||||||
|
|
||||||
stdenvNoCC.mkDerivation rec {
|
stdenvNoCC.mkDerivation rec {
|
||||||
pname = "lxgw-neoxihei";
|
pname = "lxgw-neoxihei";
|
||||||
version = "1.110";
|
version = "1.120";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://github.com/lxgw/LxgwNeoXiHei/releases/download/v${version}/LXGWNeoXiHei.ttf";
|
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;
|
dontUnpack = true;
|
||||||
|
|
|
@ -3,12 +3,12 @@
|
||||||
let
|
let
|
||||||
generator = pkgsBuildBuild.buildGoModule rec {
|
generator = pkgsBuildBuild.buildGoModule rec {
|
||||||
pname = "v2ray-domain-list-community";
|
pname = "v2ray-domain-list-community";
|
||||||
version = "20240217140518";
|
version = "20240221053250";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "v2fly";
|
owner = "v2fly";
|
||||||
repo = "domain-list-community";
|
repo = "domain-list-community";
|
||||||
rev = version;
|
rev = version;
|
||||||
hash = "sha256-7Voepx8+tFWpugtUKoRJ55nSX3cWtXgPhYiNDhE3OGs=";
|
hash = "sha256-oPffStUx2CD4gfSNIYqCzLLj+IAhm3aGQknRsrauD+k=";
|
||||||
};
|
};
|
||||||
vendorHash = "sha256-azvMUi8eLNoNofRa2X4SKTTiMd6aOyO6H/rOiKjkpIY=";
|
vendorHash = "sha256-azvMUi8eLNoNofRa2X4SKTTiMd6aOyO6H/rOiKjkpIY=";
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
|
|
|
@ -6,13 +6,13 @@
|
||||||
|
|
||||||
stdenvNoCC.mkDerivation (self: {
|
stdenvNoCC.mkDerivation (self: {
|
||||||
name = "alacritty-theme";
|
name = "alacritty-theme";
|
||||||
version = "unstable-2024-02-25";
|
version = "unstable-2024-02-28";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "alacritty";
|
owner = "alacritty";
|
||||||
repo = "alacritty-theme";
|
repo = "alacritty-theme";
|
||||||
rev = "07c10441dae4d0490145a0f40178f8846b24e800";
|
rev = "4aefb7c079721474078b28bbf9f582b592749ca6";
|
||||||
hash = "sha256-aZlsKbFcm1bswx7k0cjwhj1MudR0Q0rD8sdHa7kQ0rY=";
|
hash = "sha256-+35S6eQkxLBuS/fDKD5bglQDIuz2xeEc5KSaK6k7IjI=";
|
||||||
};
|
};
|
||||||
|
|
||||||
dontConfigure = true;
|
dontConfigure = true;
|
||||||
|
|
|
@ -9,13 +9,13 @@
|
||||||
|
|
||||||
stdenvNoCC.mkDerivation (finalAttrs: {
|
stdenvNoCC.mkDerivation (finalAttrs: {
|
||||||
pname = "suru-icon-theme";
|
pname = "suru-icon-theme";
|
||||||
version = "20.05.1";
|
version = "2024.02.1";
|
||||||
|
|
||||||
src = fetchFromGitLab {
|
src = fetchFromGitLab {
|
||||||
owner = "ubports";
|
owner = "ubports";
|
||||||
repo = "development/core/suru-icon-theme";
|
repo = "development/core/suru-icon-theme";
|
||||||
rev = finalAttrs.version;
|
rev = finalAttrs.version;
|
||||||
hash = "sha256-jJ6J+SjSABZCgnCF9cIFBpeSXX2LMnV+nPLPpoXQv30=";
|
hash = "sha256-7T9FILhZrs5bbdBEV/FszCOwUd/C1Rl9tbDt77SIzRk=";
|
||||||
};
|
};
|
||||||
|
|
||||||
strictDeps = true;
|
strictDeps = true;
|
||||||
|
@ -50,6 +50,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "Suru Icon Theme for Lomiri Operating Environment";
|
description = "Suru Icon Theme for Lomiri Operating Environment";
|
||||||
homepage = "https://gitlab.com/ubports/development/core/suru-icon-theme";
|
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;
|
license = licenses.cc-by-sa-30;
|
||||||
maintainers = teams.lomiri.members;
|
maintainers = teams.lomiri.members;
|
||||||
platforms = platforms.all;
|
platforms = platforms.all;
|
||||||
|
|
|
@ -57,7 +57,7 @@ let
|
||||||
# Defined in gdk-pixbuf setup hook
|
# Defined in gdk-pixbuf setup hook
|
||||||
findGdkPixbufLoaders "${librsvg}"
|
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" \
|
--set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
|
||||||
--argv0 factor \
|
--argv0 factor \
|
||||||
--prefix LD_LIBRARY_PATH : /run/opengl-driver/lib:${lib.makeLibraryPath runtimeLibs} \
|
--prefix LD_LIBRARY_PATH : /run/opengl-driver/lib:${lib.makeLibraryPath runtimeLibs} \
|
||||||
|
@ -72,7 +72,7 @@ let
|
||||||
passthru.runtimeLibs = runtimeLibs ++ interpreter.runtimeLibs;
|
passthru.runtimeLibs = runtimeLibs ++ interpreter.runtimeLibs;
|
||||||
}
|
}
|
||||||
(wrapFactorScript {
|
(wrapFactorScript {
|
||||||
from = "${interpreter}/lib/factor/.factor.wrapped";
|
from = "${interpreter}/lib/factor/.factor-wrapped";
|
||||||
to = "$out/bin/factor";
|
to = "$out/bin/factor";
|
||||||
runtimeLibs = (runtimeLibs ++ interpreter.runtimeLibs);
|
runtimeLibs = (runtimeLibs ++ interpreter.runtimeLibs);
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,20 +1,16 @@
|
||||||
{ lib
|
{ lib
|
||||||
, stdenv
|
|
||||||
, fetchFromRepoOrCz
|
|
||||||
, copyPkgconfigItems
|
, copyPkgconfigItems
|
||||||
|
, fetchFromRepoOrCz
|
||||||
, makePkgconfigItem
|
, makePkgconfigItem
|
||||||
, perl
|
, perl
|
||||||
|
, stdenv
|
||||||
, texinfo
|
, texinfo
|
||||||
, which
|
, which
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
stdenv.mkDerivation (finalAttrs: {
|
||||||
# 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 {
|
|
||||||
pname = "tcc";
|
pname = "tcc";
|
||||||
version = "unstable-2022-07-15";
|
version = "0.9.27-unstable-2022-07-15";
|
||||||
|
|
||||||
src = fetchFromRepoOrCz {
|
src = fetchFromRepoOrCz {
|
||||||
repo = "tinycc";
|
repo = "tinycc";
|
||||||
|
@ -22,6 +18,8 @@ stdenv.mkDerivation rec {
|
||||||
hash = "sha256-jY0P2GErmo//YBaz6u4/jj/voOE3C2JaIDRmo0orXN8=";
|
hash = "sha256-jY0P2GErmo//YBaz6u4/jj/voOE3C2JaIDRmo0orXN8=";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
outputs = [ "out" "info" "man" ];
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
copyPkgconfigItems
|
copyPkgconfigItems
|
||||||
perl
|
perl
|
||||||
|
@ -29,23 +27,27 @@ stdenv.mkDerivation rec {
|
||||||
which
|
which
|
||||||
];
|
];
|
||||||
|
|
||||||
pkgconfigItems = [
|
strictDeps = true;
|
||||||
(makePkgconfigItem rec {
|
|
||||||
|
pkgconfigItems = let
|
||||||
|
libtcc-pcitem = {
|
||||||
name = "libtcc";
|
name = "libtcc";
|
||||||
inherit version;
|
inherit (finalAttrs) version;
|
||||||
cflags = [ "-I${variables.includedir}" ];
|
cflags = [ "-I${libtcc-pcitem.variables.includedir}" ];
|
||||||
libs = [
|
libs = [
|
||||||
"-L${variables.libdir}"
|
"-L${libtcc-pcitem.variables.libdir}"
|
||||||
"-Wl,--rpath ${variables.libdir}"
|
"-Wl,--rpath ${libtcc-pcitem.variables.libdir}"
|
||||||
"-ltcc"
|
"-ltcc"
|
||||||
];
|
];
|
||||||
variables = rec {
|
variables = {
|
||||||
prefix = "${placeholder "out"}";
|
prefix = "${placeholder "out"}";
|
||||||
includedir = "${prefix}/include";
|
includedir = "${placeholder "dev"}/include";
|
||||||
libdir = "${prefix}/lib";
|
libdir = "${placeholder "lib"}/lib";
|
||||||
};
|
};
|
||||||
description = "Tiny C compiler backend";
|
description = "Tiny C compiler backend";
|
||||||
})
|
};
|
||||||
|
in [
|
||||||
|
(makePkgconfigItem libtcc-pcitem)
|
||||||
];
|
];
|
||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
|
@ -64,17 +66,19 @@ stdenv.mkDerivation rec {
|
||||||
"--config-musl"
|
"--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'"
|
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)")
|
configureFlagsArray+=("--elfinterp=$(< $NIX_CC/nix-support/dynamic-linker)")
|
||||||
'';
|
'';
|
||||||
|
|
||||||
outputs = [ "out" "info" "man" ];
|
|
||||||
|
|
||||||
# Test segfault for static build
|
# Test segfault for static build
|
||||||
doCheck = !stdenv.hostPlatform.isStatic;
|
doCheck = !stdenv.hostPlatform.isStatic;
|
||||||
|
|
||||||
|
@ -84,7 +88,7 @@ stdenv.mkDerivation rec {
|
||||||
rm tests/tests2/{108,114}*
|
rm tests/tests2/{108,114}*
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = with lib; {
|
meta = {
|
||||||
homepage = "https://repo.or.cz/tinycc.git";
|
homepage = "https://repo.or.cz/tinycc.git";
|
||||||
description = "Small, fast, and embeddable C compiler and interpreter";
|
description = "Small, fast, and embeddable C compiler and interpreter";
|
||||||
longDescription = ''
|
longDescription = ''
|
||||||
|
@ -108,13 +112,13 @@ stdenv.mkDerivation rec {
|
||||||
|
|
||||||
With libtcc, you can use TCC as a backend for dynamic code generation.
|
With libtcc, you can use TCC as a backend for dynamic code generation.
|
||||||
'';
|
'';
|
||||||
license = licenses.lgpl21Only;
|
license = with lib.licenses; [ lgpl21Only ];
|
||||||
maintainers = with maintainers; [ joachifm AndersonTorres ];
|
mainProgram = "tcc";
|
||||||
platforms = platforms.unix;
|
maintainers = with lib.maintainers; [ joachifm AndersonTorres ];
|
||||||
|
platforms = lib.platforms.unix;
|
||||||
# https://www.mail-archive.com/tinycc-devel@nongnu.org/msg10199.html
|
# https://www.mail-archive.com/tinycc-devel@nongnu.org/msg10199.html
|
||||||
broken = stdenv.isDarwin && stdenv.isAarch64;
|
broken = stdenv.isDarwin && stdenv.isAarch64;
|
||||||
};
|
};
|
||||||
}
|
})
|
||||||
# TODO: more multiple outputs
|
# TODO: more multiple outputs
|
||||||
# TODO: self-compilation
|
# TODO: self-compilation
|
||||||
# TODO: provide expression for stable release
|
|
||||||
|
|
|
@ -28,7 +28,6 @@ let
|
||||||
rev = googleapisRev;
|
rev = googleapisRev;
|
||||||
hash = "sha256-4Qiz0pBgW3OZi+Z8Zq6k9E94+8q6/EFMwPh8eQxDjdI=";
|
hash = "sha256-4Qiz0pBgW3OZi+Z8Zq6k9E94+8q6/EFMwPh8eQxDjdI=";
|
||||||
};
|
};
|
||||||
excludedTests = builtins.fromTOML (builtins.readFile ./skipped_tests.toml);
|
|
||||||
in
|
in
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "google-cloud-cpp";
|
pname = "google-cloud-cpp";
|
||||||
|
@ -106,16 +105,17 @@ stdenv.mkDerivation rec {
|
||||||
lib.optionalString doInstallCheck (
|
lib.optionalString doInstallCheck (
|
||||||
lib.optionalString (!staticOnly) ''
|
lib.optionalString (!staticOnly) ''
|
||||||
export ${ldLibraryPathName}=${lib.concatStringsSep ":" additionalLibraryPaths}
|
export ${ldLibraryPathName}=${lib.concatStringsSep ":" additionalLibraryPaths}
|
||||||
'' + ''
|
|
||||||
export GTEST_FILTER="-${lib.concatStringsSep ":" excludedTests.cases}"
|
|
||||||
''
|
''
|
||||||
);
|
);
|
||||||
|
|
||||||
installCheckPhase = lib.optionalString doInstallCheck ''
|
installCheckPhase = lib.optionalString doInstallCheck ''
|
||||||
runHook preInstallCheck
|
runHook preInstallCheck
|
||||||
|
|
||||||
# disable tests that contact the internet
|
# Disable any integration tests, which need to contact the internet.
|
||||||
ctest --exclude-regex '^(${lib.concatStringsSep "|" excludedTests.whole})'
|
# 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
|
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 = th-th;
|
||||||
th-th = mkDict {
|
th-th = mkDict {
|
||||||
pname = "hunspell-dict-th-th";
|
pname = "hunspell-dict-th-th";
|
||||||
version = "experimental-2023-03-01";
|
version = "experimental-2024-02-27";
|
||||||
dictFileName = "th_TH";
|
dictFileName = "th_TH";
|
||||||
readmeFile = "README.md";
|
readmeFile = "README.md";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "SyafiqHadzir";
|
owner = "SyafiqHadzir";
|
||||||
repo = "Hunspell-TH";
|
repo = "Hunspell-TH";
|
||||||
rev = "9c09f1b7c0eb4d04b9f6f427901686c5c3d9fa54";
|
rev = "62d35f9211ca1eb4c367eac2ae57193efe6e88d2";
|
||||||
sha256 = "1wszpnbgj31k72x1vvcfkzcpmxsncdpqsi3zagah7swilpi7cqm4";
|
sha256 = "sha256-t4m4u+qIgJPrKz58Cu2Q+knYm/+cvrNLzQsiiSRTB1A=";
|
||||||
};
|
};
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "Hunspell dictionary for Central Thai (Thailand)";
|
description = "Hunspell dictionary for Central Thai (Thailand)";
|
||||||
|
|
|
@ -2,13 +2,13 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "libgbinder";
|
pname = "libgbinder";
|
||||||
version = "1.1.36";
|
version = "1.1.37";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "mer-hybris";
|
owner = "mer-hybris";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "sha256-QTlOiZG6qpNeicMJpOTMSTk2WwKbOzkaLulgmsxYaVI=";
|
sha256 = "sha256-/XxWOaT2f6+0apv0NzMsPoYBf3GLuaXyPkmTMTDtOes=";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = [ "out" "dev" ];
|
outputs = [ "out" "dev" ];
|
||||||
|
|
|
@ -32,6 +32,11 @@ stdenv.mkDerivation rec {
|
||||||
sha256 = "+h0dKLECtvfsxwD5aRTIgiNI9jG/tortUJYFiYMe60g=";
|
sha256 = "+h0dKLECtvfsxwD5aRTIgiNI9jG/tortUJYFiYMe60g=";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
depsBuildBuild = [
|
||||||
|
# required to find native gi-docgen when cross compiling
|
||||||
|
pkg-config
|
||||||
|
];
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
gi-docgen
|
gi-docgen
|
||||||
meson
|
meson
|
||||||
|
|
|
@ -42,7 +42,7 @@ let
|
||||||
qtModule = callPackage ./qtModule.nix { };
|
qtModule = callPackage ./qtModule.nix { };
|
||||||
|
|
||||||
qtbase = callPackage ./modules/qtbase.nix {
|
qtbase = callPackage ./modules/qtbase.nix {
|
||||||
withGtk3 = true;
|
withGtk3 = !stdenv.hostPlatform.isMinGW;
|
||||||
inherit (srcs.qtbase) src version;
|
inherit (srcs.qtbase) src version;
|
||||||
inherit developerBuild;
|
inherit developerBuild;
|
||||||
inherit (darwin.apple_sdk_11_0.frameworks)
|
inherit (darwin.apple_sdk_11_0.frameworks)
|
||||||
|
@ -69,47 +69,49 @@ let
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
env = callPackage ./qt-env.nix { };
|
env = callPackage ./qt-env.nix { };
|
||||||
full = callPackage ({ env, qtbase }: env "qt-full-${qtbase.version}"
|
full = callPackage
|
||||||
# `with self` is ok to use here because having these spliced is unnecessary
|
({ env, qtbase }: env "qt-full-${qtbase.version}"
|
||||||
( with self;[
|
# `with self` is ok to use here because having these spliced is unnecessary
|
||||||
qt3d
|
(with self;[
|
||||||
qt5compat
|
qt3d
|
||||||
qtcharts
|
qt5compat
|
||||||
qtconnectivity
|
qtcharts
|
||||||
qtdatavis3d
|
qtconnectivity
|
||||||
qtdeclarative
|
qtdatavis3d
|
||||||
qtdoc
|
qtdeclarative
|
||||||
qtgraphs
|
qtdoc
|
||||||
qtgrpc
|
qtgraphs
|
||||||
qthttpserver
|
qtgrpc
|
||||||
qtimageformats
|
qthttpserver
|
||||||
qtlanguageserver
|
qtimageformats
|
||||||
qtlocation
|
qtlanguageserver
|
||||||
qtlottie
|
qtlocation
|
||||||
qtmultimedia
|
qtlottie
|
||||||
qtmqtt
|
qtmultimedia
|
||||||
qtnetworkauth
|
qtmqtt
|
||||||
qtpositioning
|
qtnetworkauth
|
||||||
qtsensors
|
qtpositioning
|
||||||
qtserialbus
|
qtsensors
|
||||||
qtserialport
|
qtserialbus
|
||||||
qtshadertools
|
qtserialport
|
||||||
qtspeech
|
qtshadertools
|
||||||
qtquick3d
|
qtspeech
|
||||||
qtquick3dphysics
|
qtquick3d
|
||||||
qtquickeffectmaker
|
qtquick3dphysics
|
||||||
qtquicktimeline
|
qtquickeffectmaker
|
||||||
qtremoteobjects
|
qtquicktimeline
|
||||||
qtsvg
|
qtremoteobjects
|
||||||
qtscxml
|
qtsvg
|
||||||
qttools
|
qtscxml
|
||||||
qttranslations
|
qttools
|
||||||
qtvirtualkeyboard
|
qttranslations
|
||||||
qtwebchannel
|
qtvirtualkeyboard
|
||||||
qtwebengine
|
qtwebchannel
|
||||||
qtwebsockets
|
qtwebengine
|
||||||
qtwebview
|
qtwebsockets
|
||||||
] ++ lib.optionals (!stdenv.hostPlatform.isDarwin) [ qtwayland libglvnd ])) { };
|
qtwebview
|
||||||
|
] ++ lib.optionals (!stdenv.isDarwin) [ qtwayland libglvnd ]))
|
||||||
|
{ };
|
||||||
|
|
||||||
qt3d = callPackage ./modules/qt3d.nix { };
|
qt3d = callPackage ./modules/qt3d.nix { };
|
||||||
qt5compat = callPackage ./modules/qt5compat.nix { };
|
qt5compat = callPackage ./modules/qt5compat.nix { };
|
||||||
|
@ -162,11 +164,14 @@ let
|
||||||
GameController ImageCaptureCore LocalAuthentication
|
GameController ImageCaptureCore LocalAuthentication
|
||||||
MediaAccessibility MediaPlayer MetalKit Network OpenDirectory Quartz
|
MediaAccessibility MediaPlayer MetalKit Network OpenDirectory Quartz
|
||||||
ReplayKit SecurityInterface Vision;
|
ReplayKit SecurityInterface Vision;
|
||||||
qtModule = callPackage ({ qtModule }: qtModule.override {
|
qtModule = callPackage
|
||||||
stdenv = if stdenv.hostPlatform.isDarwin
|
({ qtModule }: qtModule.override {
|
||||||
then overrideSDK stdenv { darwinMinVersion = "10.13"; darwinSdkVersion = "11.0"; }
|
stdenv =
|
||||||
else stdenv;
|
if stdenv.isDarwin
|
||||||
}) { };
|
then overrideSDK stdenv { darwinMinVersion = "10.13"; darwinSdkVersion = "11.0"; }
|
||||||
|
else stdenv;
|
||||||
|
})
|
||||||
|
{ };
|
||||||
xcbuild = buildPackages.xcbuild.override {
|
xcbuild = buildPackages.xcbuild.override {
|
||||||
productBuildVer = "20A2408";
|
productBuildVer = "20A2408";
|
||||||
};
|
};
|
||||||
|
@ -176,21 +181,25 @@ let
|
||||||
inherit (darwin.apple_sdk_11_0.frameworks) WebKit;
|
inherit (darwin.apple_sdk_11_0.frameworks) WebKit;
|
||||||
};
|
};
|
||||||
|
|
||||||
wrapQtAppsHook = callPackage ({ makeBinaryWrapper }: makeSetupHook
|
wrapQtAppsHook = callPackage
|
||||||
{
|
({ makeBinaryWrapper }: makeSetupHook
|
||||||
name = "wrap-qt6-apps-hook";
|
{
|
||||||
propagatedBuildInputs = [ makeBinaryWrapper ];
|
name = "wrap-qt6-apps-hook";
|
||||||
} ./hooks/wrap-qt-apps-hook.sh) { };
|
propagatedBuildInputs = [ makeBinaryWrapper ];
|
||||||
|
} ./hooks/wrap-qt-apps-hook.sh)
|
||||||
|
{ };
|
||||||
|
|
||||||
qmake = callPackage ({ qtbase }: makeSetupHook
|
qmake = callPackage
|
||||||
{
|
({ qtbase }: makeSetupHook
|
||||||
name = "qmake6-hook";
|
{
|
||||||
propagatedBuildInputs = [ qtbase.dev ];
|
name = "qmake6-hook";
|
||||||
substitutions = {
|
propagatedBuildInputs = [ qtbase.dev ];
|
||||||
inherit debug;
|
substitutions = {
|
||||||
fix_qmake_libtool = ./hooks/fix-qmake-libtool.sh;
|
inherit debug;
|
||||||
};
|
fix_qmake_libtool = ./hooks/fix-qmake-libtool.sh;
|
||||||
} ./hooks/qmake-hook.sh) { };
|
};
|
||||||
|
} ./hooks/qmake-hook.sh)
|
||||||
|
{ };
|
||||||
} // lib.optionalAttrs config.allowAliases {
|
} // lib.optionalAttrs config.allowAliases {
|
||||||
# Convert to a throw on 03-01-2023 and backport the change.
|
# Convert to a throw on 03-01-2023 and backport the change.
|
||||||
# Warnings show up in various cli tool outputs, throws do not.
|
# Warnings show up in various cli tool outputs, throws do not.
|
||||||
|
@ -203,12 +212,13 @@ let
|
||||||
f = addPackages;
|
f = addPackages;
|
||||||
};
|
};
|
||||||
|
|
||||||
bootstrapScope = baseScope.overrideScope(final: prev: {
|
bootstrapScope = baseScope.overrideScope (final: prev: {
|
||||||
qtbase = prev.qtbase.override { qttranslations = null; };
|
qtbase = prev.qtbase.override { qttranslations = null; };
|
||||||
qtdeclarative = null;
|
qtdeclarative = null;
|
||||||
});
|
});
|
||||||
|
|
||||||
finalScope = baseScope.overrideScope(final: prev: {
|
finalScope = baseScope.overrideScope (final: prev: {
|
||||||
qttranslations = bootstrapScope.qttranslations;
|
qttranslations = bootstrapScope.qttranslations;
|
||||||
});
|
});
|
||||||
in finalScope
|
in
|
||||||
|
finalScope
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
, patches ? [ ]
|
, patches ? [ ]
|
||||||
, version
|
, version
|
||||||
, coreutils
|
, coreutils
|
||||||
|
, buildPackages
|
||||||
, bison
|
, bison
|
||||||
, flex
|
, flex
|
||||||
, gdb
|
, gdb
|
||||||
|
@ -79,6 +80,8 @@
|
||||||
, EventKit
|
, EventKit
|
||||||
, GSS
|
, GSS
|
||||||
, MetalKit
|
, MetalKit
|
||||||
|
# mingw
|
||||||
|
, pkgsBuildBuild
|
||||||
# optional dependencies
|
# optional dependencies
|
||||||
, cups
|
, cups
|
||||||
, libmysqlclient
|
, libmysqlclient
|
||||||
|
@ -96,6 +99,7 @@
|
||||||
|
|
||||||
let
|
let
|
||||||
debugSymbols = debug || developerBuild;
|
debugSymbols = debug || developerBuild;
|
||||||
|
isCrossBuild = !stdenv.buildPlatform.canExecute stdenv.hostPlatform;
|
||||||
in
|
in
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "qtbase";
|
pname = "qtbase";
|
||||||
|
@ -110,7 +114,6 @@ stdenv.mkDerivation rec {
|
||||||
openssl
|
openssl
|
||||||
sqlite
|
sqlite
|
||||||
zlib
|
zlib
|
||||||
unixODBC
|
|
||||||
# Text rendering
|
# Text rendering
|
||||||
harfbuzz
|
harfbuzz
|
||||||
icu
|
icu
|
||||||
|
@ -119,14 +122,16 @@ stdenv.mkDerivation rec {
|
||||||
libpng
|
libpng
|
||||||
pcre2
|
pcre2
|
||||||
pcre
|
pcre
|
||||||
libproxy
|
|
||||||
zstd
|
zstd
|
||||||
double-conversion
|
|
||||||
libb2
|
libb2
|
||||||
md4c
|
md4c
|
||||||
|
double-conversion
|
||||||
|
] ++ lib.optionals (!stdenv.hostPlatform.isMinGW) [
|
||||||
|
libproxy
|
||||||
dbus
|
dbus
|
||||||
glib
|
glib
|
||||||
# unixODBC drivers
|
# unixODBC drivers
|
||||||
|
unixODBC
|
||||||
unixODBCDrivers.psql
|
unixODBCDrivers.psql
|
||||||
unixODBCDrivers.sqlite
|
unixODBCDrivers.sqlite
|
||||||
unixODBCDrivers.mariadb
|
unixODBCDrivers.mariadb
|
||||||
|
@ -174,11 +179,16 @@ stdenv.mkDerivation rec {
|
||||||
EventKit
|
EventKit
|
||||||
GSS
|
GSS
|
||||||
MetalKit
|
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
|
at-spi2-core
|
||||||
] ++ lib.optionals (!stdenv.hostPlatform.isDarwin) [
|
] ++ lib.optionals (lib.meta.availableOn stdenv.hostPlatform libinput) [
|
||||||
libinput
|
libinput
|
||||||
] ++ lib.optionals (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isx86_64) [
|
] ++ lib.optionals (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isx86_64) [
|
||||||
AppKit
|
AppKit
|
||||||
|
@ -186,9 +196,9 @@ stdenv.mkDerivation rec {
|
||||||
]
|
]
|
||||||
++ lib.optional withGtk3 gtk3
|
++ lib.optional withGtk3 gtk3
|
||||||
++ lib.optional developerBuild gdb
|
++ lib.optional developerBuild gdb
|
||||||
++ lib.optional (cups != null) cups
|
++ lib.optional (cups != null && lib.meta.availableOn stdenv.hostPlatform cups) cups
|
||||||
++ lib.optional (libmysqlclient != null) libmysqlclient
|
++ lib.optional (libmysqlclient != null && !stdenv.hostPlatform.isMinGW) libmysqlclient
|
||||||
++ lib.optional (postgresql != null) postgresql;
|
++ lib.optional (postgresql != null && lib.meta.availableOn stdenv.hostPlatform postgresql) postgresql;
|
||||||
|
|
||||||
nativeBuildInputs = [ bison flex gperf lndir perl pkg-config which cmake xmlstarlet ninja ]
|
nativeBuildInputs = [ bison flex gperf lndir perl pkg-config which cmake xmlstarlet ninja ]
|
||||||
++ lib.optionals stdenv.hostPlatform.isDarwin [ moveBuildTree ];
|
++ lib.optionals stdenv.hostPlatform.isDarwin [ moveBuildTree ];
|
||||||
|
@ -203,7 +213,7 @@ stdenv.mkDerivation rec {
|
||||||
|
|
||||||
# https://bugreports.qt.io/browse/QTBUG-97568
|
# https://bugreports.qt.io/browse/QTBUG-97568
|
||||||
postPatch = ''
|
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 ''
|
'' + lib.optionalString stdenv.hostPlatform.isDarwin ''
|
||||||
substituteInPlace cmake/QtPublicAppleHelpers.cmake --replace-fail "/usr/bin/xcrun" "${xcbuild}/bin/xcrun"
|
substituteInPlace cmake/QtPublicAppleHelpers.cmake --replace-fail "/usr/bin/xcrun" "${xcbuild}/bin/xcrun"
|
||||||
'';
|
'';
|
||||||
|
@ -232,7 +242,11 @@ stdenv.mkDerivation rec {
|
||||||
] ++ lib.optionals stdenv.hostPlatform.isDarwin [
|
] ++ lib.optionals stdenv.hostPlatform.isDarwin [
|
||||||
# error: 'path' is unavailable: introduced in macOS 10.15
|
# error: 'path' is unavailable: introduced in macOS 10.15
|
||||||
"-DQT_FEATURE_cxx17_filesystem=OFF"
|
"-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 [
|
env.NIX_LDFLAGS = toString (lib.optionals stdenv.hostPlatform.isDarwin [
|
||||||
# Undefined symbols for architecture arm64: "___gss_c_nt_hostbased_service_oid_desc"
|
# Undefined symbols for architecture arm64: "___gss_c_nt_hostbased_service_oid_desc"
|
||||||
|
@ -253,6 +267,8 @@ stdenv.mkDerivation rec {
|
||||||
|
|
||||||
dontStrip = debugSymbols;
|
dontStrip = debugSymbols;
|
||||||
|
|
||||||
|
dontWrapQtApps = true;
|
||||||
|
|
||||||
setupHook = ../hooks/qtbase-setup-hook.sh;
|
setupHook = ../hooks/qtbase-setup-hook.sh;
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
|
@ -260,6 +276,6 @@ stdenv.mkDerivation rec {
|
||||||
description = "A cross-platform application framework for C++";
|
description = "A cross-platform application framework for C++";
|
||||||
license = with licenses; [ fdl13Plus gpl2Plus lgpl21Plus lgpl3Plus ];
|
license = with licenses; [ fdl13Plus gpl2Plus lgpl21Plus lgpl3Plus ];
|
||||||
maintainers = with maintainers; [ milahu nickcao LunNova ];
|
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>
|
From: =?UTF-8?q?Milan=20P=C3=A4ssler?= <me@pbb.lc>
|
||||||
Date: Sun, 10 May 2020 12:47:28 +0200
|
Date: Sun, 10 May 2020 12:47:28 +0200
|
||||||
Subject: [PATCH 11/11] qtbase: derive plugin load path from PATH
|
Subject: [PATCH 11/11] qtbase: derive plugin load path from PATH
|
||||||
|
|
||||||
---
|
---
|
||||||
src/corelib/kernel/qcoreapplication.cpp | 10 ++++++++++
|
src/corelib/kernel/qcoreapplication.cpp | 9 +++++++++
|
||||||
1 file changed, 10 insertions(+)
|
1 file changed, 9 insertions(+)
|
||||||
|
|
||||||
diff --git a/src/corelib/kernel/qcoreapplication.cpp b/src/corelib/kernel/qcoreapplication.cpp
|
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
|
--- a/src/corelib/kernel/qcoreapplication.cpp
|
||||||
+++ b/src/corelib/kernel/qcoreapplication.cpp
|
+++ b/src/corelib/kernel/qcoreapplication.cpp
|
||||||
@@ -2991,6 +2991,16 @@ QStringList QCoreApplication::libraryPathsLocked()
|
@@ -3032,6 +3032,15 @@ QStringList QCoreApplication::libraryPathsLocked()
|
||||||
QStringList *app_libpaths = new QStringList;
|
app_libpaths->append(installPathPlugins);
|
||||||
coreappdata()->app_libpaths.reset(app_libpaths);
|
}
|
||||||
|
|
||||||
+ // Add library paths derived from PATH
|
+ // Add library paths derived from PATH
|
||||||
+ const QStringList paths = QFile::decodeName(qgetenv("PATH")).split(QStringLiteral(":"));
|
+ const QStringList paths = QFile::decodeName(qgetenv("PATH")).split(QStringLiteral(":"));
|
||||||
|
@ -24,10 +24,9 @@ index a80efbb5622..8cf9e85da43 100644
|
||||||
+ }
|
+ }
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+
|
// If QCoreApplication is not yet instantiated,
|
||||||
auto setPathsFromEnv = [&](QString libPathEnv) {
|
// make sure we add the application path when we construct the QCoreApplication
|
||||||
if (!libPathEnv.isEmpty()) {
|
if (self) self->d_func()->appendApplicationPathToLibraryPaths();
|
||||||
QStringList paths = libPathEnv.split(QDir::listSeparator(), Qt::SkipEmptyParts);
|
|
||||||
--
|
--
|
||||||
2.42.0
|
2.43.1
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "suitesparse-graphblas";
|
pname = "suitesparse-graphblas";
|
||||||
version = "9.0.1";
|
version = "9.0.2";
|
||||||
|
|
||||||
outputs = [ "out" "dev" ];
|
outputs = [ "out" "dev" ];
|
||||||
|
|
||||||
|
@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
|
||||||
owner = "DrTimothyAldenDavis";
|
owner = "DrTimothyAldenDavis";
|
||||||
repo = "GraphBLAS";
|
repo = "GraphBLAS";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
hash = "sha256-eNd6jlpW3KiRvOCKvNP5ttpgjPPXt2M2vLhk1Zn4gTE=";
|
hash = "sha256-wPg5A1lwtRPDO5gPbllEFkRJFRIhkqqaVd4CBdPavKE=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [
|
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