Merge master into haskell-updates

This commit is contained in:
github-actions[bot] 2024-03-01 00:14:10 +00:00 committed by GitHub
commit a1ed79952d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
268 changed files with 6431 additions and 3264 deletions

View File

@ -1,37 +1,104 @@
# pkgs.ociTools {#sec-pkgs-ociTools}
`pkgs.ociTools` is a set of functions for creating containers according to the [OCI container specification v1.0.0](https://github.com/opencontainers/runtime-spec). Beyond that, it makes no assumptions about the container runner you choose to use to run the created container.
`pkgs.ociTools` is a set of functions for creating runtime container bundles according to the [OCI runtime specification v1.0.0](https://github.com/opencontainers/runtime-spec/blob/v1.0.0/spec.md).
It makes no assumptions about the container runner you choose to use to run the created container.
The set of functions in `pkgs.ociTools` currently does not handle the [OCI image specification](https://github.com/opencontainers/image-spec).
At a high-level an OCI implementation would download an OCI Image then unpack that image into an OCI Runtime filesystem bundle.
At this point the OCI Runtime Bundle would be run by an OCI Runtime.
`pkgs.ociTools` provides utilities to create OCI Runtime bundles.
## buildContainer {#ssec-pkgs-ociTools-buildContainer}
This function creates a simple OCI container that runs a single command inside of it. An OCI container consists of a `config.json` and a rootfs directory. The nix store of the container will contain all referenced dependencies of the given command.
This function creates an OCI runtime container (consisting of a `config.json` and a root filesystem directory) that runs a single command inside of it.
The nix store of the container will contain all referenced dependencies of the given command.
The parameters of `buildContainer` with an example value are described below:
This function has an assumption that the container will run on POSIX platforms, and sets configurations (such as the user running the process or certain mounts) according to this assumption.
Because of this, a container built with `buildContainer` will not work on Windows or other non-POSIX platforms without modifications to the container configuration.
These modifications aren't supported by `buildContainer`.
For `linux` platforms, `buildContainer` also configures the following namespaces (see {manpage}`unshare(1)`) to isolate the OCI container from the global namespace:
PID, network, mount, IPC, and UTS.
Note that no user namespace is created, which means that you won't be able to run the container unless you are the `root` user.
### Inputs {#ssec-pkgs-ociTools-buildContainer-inputs}
`buildContainer` expects an argument with the following attributes:
`args` (List of String)
: Specifies a set of arguments to run inside the container.
Any packages referenced by `args` will be made available inside the container.
`mounts` (Attribute Set; _optional_)
: Would specify additional mounts that the runtime must make available to the container.
:::{.warning}
As explained in [issue #290879](https://github.com/NixOS/nixpkgs/issues/290879), this attribute is currently ignored.
:::
:::{.note}
`buildContainer` includes a minimal set of necessary filesystems to be mounted into the container, and this set can't be changed with the `mounts` attribute.
:::
_Default value:_ `{}`.
`readonly` (Boolean; _optional_)
: If `true`, sets the container's root filesystem as read-only.
_Default value:_ `false`.
`os` **DEPRECATED**
: Specifies the operating system on which the container filesystem is based on.
If specified, its value should follow the [OCI Image Configuration Specification](https://github.com/opencontainers/image-spec/blob/main/config.md#properties).
According to the linked specification, all possible values for `$GOOS` in [the Go docs](https://go.dev/doc/install/source#environment) should be valid, but will commonly be one of `darwin` or `linux`.
_Default value:_ `"linux"`.
`arch` **DEPRECATED**
: Used to specify the architecture for which the binaries in the container filesystem have been compiled.
If specified, its value should follow the [OCI Image Configuration Specification](https://github.com/opencontainers/image-spec/blob/main/config.md#properties).
According to the linked specification, all possible values for `$GOARCH` in [the Go docs](https://go.dev/doc/install/source#environment) should be valid, but will commonly be one of `386`, `amd64`, `arm`, or `arm64`.
_Default value:_ `x86_64`.
### Examples {#ssec-pkgs-ociTools-buildContainer-examples}
::: {.example #ex-ociTools-buildContainer-bash}
# Creating an OCI runtime container that runs `bash`
This example uses `ociTools.buildContainer` to create a simple container that runs `bash`.
```nix
buildContainer {
{ ociTools, lib, bash }:
ociTools.buildContainer {
args = [
(with pkgs;
writeScript "run.sh" ''
#!${bash}/bin/bash
exec ${bash}/bin/bash
'').outPath
(lib.getExe bash)
];
mounts = {
"/data" = {
type = "none";
source = "/var/lib/mydata";
options = [ "bind" ];
};
};
readonly = false;
}
```
- `args` specifies a set of arguments to run inside the container. This is the only required argument for `buildContainer`. All referenced packages inside the derivation will be made available inside the container.
As an example of how to run the container generated by this package, we'll use `runc` to start the container.
Any other tool that supports OCI containers could be used instead.
- `mounts` specifies additional mount points chosen by the user. By default only a minimal set of necessary filesystems are mounted into the container (e.g procfs, cgroupfs)
```shell
$ nix-build
(some output removed for clarity)
/nix/store/7f9hgx0arvhzp2a3qphp28rxbn748l25-join
- `readonly` makes the container's rootfs read-only if it is set to true. The default value is false `false`.
$ cd /nix/store/7f9hgx0arvhzp2a3qphp28rxbn748l25-join
$ nix-shell -p runc
[nix-shell:/nix/store/7f9hgx0arvhzp2a3qphp28rxbn748l25-join]$ sudo runc run ocitools-example
help
GNU bash, version 5.2.26(1)-release (x86_64-pc-linux-gnu)
(some output removed for clarity)
```
:::

View File

@ -1,81 +1,174 @@
# pkgs.portableService {#sec-pkgs-portableService}
`pkgs.portableService` is a function to create _portable service images_,
as read-only, immutable, `squashfs` archives.
systemd supports a concept of [Portable Services](https://systemd.io/PORTABLE_SERVICES/).
Portable Services are a delivery method for system services that uses two specific features of container management:
* Applications are bundled. I.e. multiple services, their binaries and
all their dependencies are packaged in an image, and are run directly from it.
* Stricter default security policies, i.e. sandboxing of applications.
This allows using Nix to build images which can be run on many recent Linux distributions.
The primary tool for interacting with Portable Services is `portablectl`,
and they are managed by the `systemd-portabled` system service.
`pkgs.portableService` is a function to create [Portable Services](https://systemd.io/PORTABLE_SERVICES/) in a read-only, immutable, `squashfs` raw disk image.
This lets you use Nix to build images which can be run on many recent Linux distributions.
::: {.note}
Portable services are supported starting with systemd 239 (released on 2018-06-22).
:::
A very simple example of using `portableService` is described below:
The generated image will contain the file system structure as required by the Portable Services specification, along with the packages given to `portableService` and all of their dependencies.
When generated, the image will exist in the Nix store with the `.raw` file extension, as required by the specification.
See [](#ex-portableService-hello) to understand how to use the output of `portableService`.
## Inputs {#ssec-pkgs-portableService-inputs}
`portableService` expects one argument with the following attributes:
`pname` (String)
: The name of the portable service.
The generated image will be named according to the template `$pname_$version.raw`, which is supported by the Portable Services specification.
`version` (String)
: The version of the portable service.
The generated image will be named according to the template `$pname_$version.raw`, which is supported by the Portable Services specification.
`units` (List of Attribute Set)
: A list of derivations for systemd unit files.
Each derivation must produce a single file, and must have a name that starts with the value of `pname` and ends with the suffix of the unit type (e.g. ".service", ".socket", ".timer", and so on).
See [](#ex-portableService-hello) to better understand this naming constraint.
`description` (String or Null; _optional_)
: If specified, the value is added as `PORTABLE_PRETTY_NAME` to the `/etc/os-release` file in the generated image.
This could be used to provide more information to anyone inspecting the image.
_Default value:_ `null`.
`homepage` (String or Null; _optional_)
: If specified, the value is added as `HOME_URL` to the `/etc/os-release` file in the generated image.
This could be used to provide more information to anyone inspecting the image.
_Default value:_ `null`.
`symlinks` (List of Attribute Set; _optional_)
: A list of attribute sets in the format `{object, symlink}`.
For each item in the list, `portableService` will create a symlink in the path specified by `symlink` (relative to the root of the image) that points to `object`.
All packages that `object` depends on and their dependencies are automatically copied into the image.
This can be used to create symlinks for applications that assume some files to exist globally (`/etc/ssl` or `/bin/bash`, for example).
See [](#ex-portableService-symlinks) to understand how to do that.
_Default value:_ `[]`.
`contents` (List of Attribute Set; _optional_)
: A list of additional derivations to be included as-is in the image.
These derivations will be included directly in a `/nix/store` directory inside the image.
_Default value:_ `[]`.
`squashfsTools` (Attribute Set; _optional_)
: Allows you to override the package that provides {manpage}`mksquashfs(1)`, which is used internally by `portableService`.
_Default value:_ `pkgs.squashfsTools`.
`squash-compression` (String; _optional_)
: Passed as the compression option to {manpage}`mksquashfs(1)`, which is used internally by `portableService`.
_Default value:_ `"xz -Xdict-size 100%"`.
`squash-block-size` (String; _optional_)
: Passed as the block size option to {manpage}`mksquashfs(1)`, which is used internally by `portableService`.
_Default value:_ `"1M"`.
## Examples {#ssec-pkgs-portableService-examples}
[]{#ex-pkgs-portableService}
:::{.example #ex-portableService-hello}
# Building a Portable Service image
The following example builds a Portable Service image with the `hello` package, along with a service unit that runs it.
```nix
pkgs.portableService {
pname = "demo";
version = "1.0";
units = [ demo-service demo-socket ];
{ lib, writeText, portableService, hello }:
let
hello-service = writeText "hello.service" ''
[Unit]
Description=Hello world service
[Service]
Type=oneshot
ExecStart=${lib.getExe hello}
'';
in
portableService {
pname = "hello";
inherit (hello) version;
units = [ hello-service ];
}
```
The above example will build an squashfs archive image in `result/$pname_$version.raw`. The image will contain the
file system structure as required by the portable service specification, and a subset of the Nix store with all the
dependencies of the two derivations in the `units` list.
`units` must be a list of derivations, and their names must be prefixed with the service name (`"demo"` in this case).
Otherwise `systemd-portabled` will ignore them.
After building the package, the generated image can be loaded into a system through {manpage}`portablectl(1)`:
::: {.note}
The `.raw` file extension of the image is required by the portable services specification.
```shell
$ nix-build
(some output removed for clarity)
/nix/store/8c20z1vh7z8w8dwagl8w87b45dn5k6iq-hello-img-2.12.1
$ portablectl attach /nix/store/8c20z1vh7z8w8dwagl8w87b45dn5k6iq-hello-img-2.12.1/hello_2.12.1.raw
Created directory /etc/systemd/system.attached.
Created directory /etc/systemd/system.attached/hello.service.d.
Written /etc/systemd/system.attached/hello.service.d/20-portable.conf.
Created symlink /etc/systemd/system.attached/hello.service.d/10-profile.conf → /usr/lib/systemd/portable/profile/default/service.conf.
Copied /etc/systemd/system.attached/hello.service.
Created symlink /etc/portables/hello_2.12.1.raw → /nix/store/8c20z1vh7z8w8dwagl8w87b45dn5k6iq-hello-img-2.12.1/hello_2.12.1.raw.
$ systemctl start hello
$ journalctl -u hello
Feb 28 22:39:16 hostname systemd[1]: Starting Hello world service...
Feb 28 22:39:16 hostname hello[102887]: Hello, world!
Feb 28 22:39:16 hostname systemd[1]: hello.service: Deactivated successfully.
Feb 28 22:39:16 hostname systemd[1]: Finished Hello world service.
$ portablectl detach hello_2.12.1
Removed /etc/systemd/system.attached/hello.service.
Removed /etc/systemd/system.attached/hello.service.d/10-profile.conf.
Removed /etc/systemd/system.attached/hello.service.d/20-portable.conf.
Removed /etc/systemd/system.attached/hello.service.d.
Removed /etc/portables/hello_2.12.1.raw.
Removed /etc/systemd/system.attached.
```
:::
Some other options available are:
- `description`, `homepage`
:::{.example #ex-portableService-symlinks}
# Specifying symlinks when building a Portable Service image
Are added to the `/etc/os-release` in the image and are shown by the portable services tooling.
Default to empty values, not added to os-release.
- `symlinks`
Some services may expect files or directories to be available globally.
An example is a service which expects all trusted SSL certificates to exist in a specific location by default.
A list of attribute sets {object, symlink}. Symlinks will be created in the root filesystem of the image to
objects in the Nix store. Defaults to an empty list.
- `contents`
To make things available globally, you must specify the `symlinks` attribute when using `portableService`.
The following package builds on the package from [](#ex-portableService-hello) to make `/etc/ssl` available globally (this is only for illustrative purposes, because `hello` doesn't use `/etc/ssl`).
A list of additional derivations to be included in the image Nix store, as-is. Defaults to an empty list.
- `squashfsTools`
Defaults to `pkgs.squashfsTools`, allows you to override the package that provides `mksquashfs`.
- `squash-compression`, `squash-block-size`
Options to `mksquashfs`. Default to `"xz -Xdict-size 100%"` and `"1M"` respectively.
A typical usage of `symlinks` would be:
```nix
symlinks = [
{ object = "${pkgs.cacert}/etc/ssl"; symlink = "/etc/ssl"; }
{ object = "${pkgs.bash}/bin/bash"; symlink = "/bin/sh"; }
{ object = "${pkgs.php}/bin/php"; symlink = "/usr/bin/php"; }
];
```
to create these symlinks for legacy applications that assume them existing globally.
{ lib, writeText, portableService, hello, cacert }:
let
hello-service = writeText "hello.service" ''
[Unit]
Description=Hello world service
Once the image is created, and deployed on a host in `/var/lib/portables/`, you can attach the image and run the service. As root run:
```console
portablectl attach demo_1.0.raw
systemctl enable --now demo.socket
systemctl enable --now demo.service
[Service]
Type=oneshot
ExecStart=${lib.getExe hello}
'';
in
portableService {
pname = "hello";
inherit (hello) version;
units = [ hello-service ];
symlinks = [
{ object = "${cacert}/etc/ssl"; symlink = "/etc/ssl"; }
];
}
```
::: {.note}
See the [man page](https://www.freedesktop.org/software/systemd/man/portablectl.html) of `portablectl` for more info on its usage.
:::

View File

@ -318,5 +318,7 @@
"passwd(5)": "https://man.archlinux.org/man/passwd.5",
"group(5)": "https://man.archlinux.org/man/group.5",
"login.defs(5)": "https://man.archlinux.org/man/login.defs.5",
"nix-shell(1)": "https://nixos.org/manual/nix/stable/command-ref/nix-shell.html"
"unshare(1)": "https://man.archlinux.org/man/unshare.1.en",
"nix-shell(1)": "https://nixos.org/manual/nix/stable/command-ref/nix-shell.html",
"mksquashfs(1)": "https://man.archlinux.org/man/extra/squashfs-tools/mksquashfs.1.en"
}

View File

@ -145,6 +145,12 @@ rec {
in fix g
```
:::{.note}
The argument to the given fixed-point function after applying an overlay will *not* refer to its own return value, but rather to the value after evaluating the overlay function.
The given fixed-point function is called with a separate argument than if it was evaluated with `lib.fix`.
:::
:::{.example}
# Extend a fixed-point function with an overlay
@ -230,13 +236,6 @@ rec {
fix (extends (final: prev: { c = final.a + final.b; }) f)
=> { a = 1; b = 3; c = 4; }
:::{.note}
The argument to the given fixed-point function after applying an overlay will *not* refer to its own return value, but rather to the value after evaluating the overlay function.
The given fixed-point function is called with a separate argument than if it was evaluated with `lib.fix`.
The new argument
:::
*/
extends =
# The overlay to apply to the fixed-point function

View File

@ -203,6 +203,15 @@
fingerprint = "D292 365E 3C46 A5AA 75EE B30B 78DB 7EDE 3540 794B";
}];
};
_6543 = {
email = "6543@obermui.de";
github = "6543";
githubId = 24977596;
name = "6543";
keys = [{
fingerprint = "8722 B61D 7234 1082 553B 201C B8BE 6D61 0E61 C862";
}];
};
_6AA4FD = {
email = "f6442954@gmail.com";
github = "6AA4FD";
@ -7038,6 +7047,15 @@
github = "ghostbuster91";
githubId = 5662622;
};
ghthor = {
email = "ghthor@gmail.com";
github = "ghthor";
githubId = 160298;
name = "Will Owens";
keys = [{
fingerprint = "8E98 BB01 BFF8 AEA4 E303 FC4C 8074 09C9 2CE2 3033";
}];
};
ghuntley = {
email = "ghuntley@ghuntley.com";
github = "ghuntley";
@ -20280,6 +20298,12 @@
githubId = 326263;
name = "Danny Wilson";
};
vizid = {
email = "vizid1337@gmail.com";
github = "ViZiD";
githubId = 7444430;
name = "Radik Islamov";
};
vklquevs = {
email = "vklquevs@gmail.com";
github = "vklquevs";

View File

@ -73,6 +73,34 @@ have a predefined type and string generator already declared under
It returns a set with INI-specific attributes `type` and `generate`
as specified [below](#pkgs-formats-result).
The type of the input is an *attrset* of sections; key-value pairs where
the key is the section name and the value is the corresponding content
which is also an *attrset* of key-value pairs for the actual key-value
mappings of the INI format.
The values of the INI atoms are subject to the above parameters (e.g. lists
may be transformed into multiple key-value pairs depending on
`listToValue`).
`pkgs.formats.iniWithGlobalSection` { *`listsAsDuplicateKeys`* ? false, *`listToValue`* ? null, \.\.\. }
: A function taking an attribute set with values
`listsAsDuplicateKeys`
: A boolean for controlling whether list values can be used to
represent duplicate INI keys
`listToValue`
: A function for turning a list of values into a single value.
It returns a set with INI-specific attributes `type` and `generate`
as specified [below](#pkgs-formats-result).
The type of the input is an *attrset* of the structure
`{ sections = {}; globalSection = {}; }` where *sections* are several
sections as with *pkgs.formats.ini* and *globalSection* being just a single
attrset of key-value pairs for a single section, the global section which
preceedes the section definitions.
`pkgs.formats.toml` { }

View File

@ -93,6 +93,8 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
- [Clevis](https://github.com/latchset/clevis), a pluggable framework for automated decryption, used to unlock encrypted devices in initrd. Available as [boot.initrd.clevis.enable](#opt-boot.initrd.clevis.enable).
- [armagetronad](https://wiki.armagetronad.org), a mid-2000s 3D lightcycle game widely played at iD Tech Camps. You can define multiple servers using `services.armagetronad.<server>.enable`.
- [TuxClocker](https://github.com/Lurkki14/tuxclocker), a hardware control and monitoring program. Available as [programs.tuxclocker](#opt-programs.tuxclocker.enable).
- [ALVR](https://github.com/alvr-org/alvr), a VR desktop streamer. Available as [programs.alvr](#opt-programs.alvr.enable)

View File

@ -378,7 +378,7 @@ in rec {
'';
targetToUnit = name: def:
{ inherit (def) aliases wantedBy requiredBy enable overrideStrategy;
{ inherit (def) aliases wantedBy requiredBy upheldBy enable overrideStrategy;
text =
''
[Unit]
@ -387,7 +387,7 @@ in rec {
};
serviceToUnit = name: def:
{ inherit (def) aliases wantedBy requiredBy enable overrideStrategy;
{ inherit (def) aliases wantedBy requiredBy upheldBy enable overrideStrategy;
text = commonUnitText def (''
[Service]
'' + (let env = cfg.globalEnvironment // def.environment;
@ -408,7 +408,7 @@ in rec {
};
socketToUnit = name: def:
{ inherit (def) aliases wantedBy requiredBy enable overrideStrategy;
{ inherit (def) aliases wantedBy requiredBy upheldBy enable overrideStrategy;
text = commonUnitText def ''
[Socket]
${attrsToSection def.socketConfig}
@ -418,7 +418,7 @@ in rec {
};
timerToUnit = name: def:
{ inherit (def) aliases wantedBy requiredBy enable overrideStrategy;
{ inherit (def) aliases wantedBy requiredBy upheldBy enable overrideStrategy;
text = commonUnitText def ''
[Timer]
${attrsToSection def.timerConfig}
@ -426,7 +426,7 @@ in rec {
};
pathToUnit = name: def:
{ inherit (def) aliases wantedBy requiredBy enable overrideStrategy;
{ inherit (def) aliases wantedBy requiredBy upheldBy enable overrideStrategy;
text = commonUnitText def ''
[Path]
${attrsToSection def.pathConfig}
@ -434,7 +434,7 @@ in rec {
};
mountToUnit = name: def:
{ inherit (def) aliases wantedBy requiredBy enable overrideStrategy;
{ inherit (def) aliases wantedBy requiredBy upheldBy enable overrideStrategy;
text = commonUnitText def ''
[Mount]
${attrsToSection def.mountConfig}
@ -442,7 +442,7 @@ in rec {
};
automountToUnit = name: def:
{ inherit (def) aliases wantedBy requiredBy enable overrideStrategy;
{ inherit (def) aliases wantedBy requiredBy upheldBy enable overrideStrategy;
text = commonUnitText def ''
[Automount]
${attrsToSection def.automountConfig}
@ -450,7 +450,7 @@ in rec {
};
sliceToUnit = name: def:
{ inherit (def) aliases wantedBy requiredBy enable overrideStrategy;
{ inherit (def) aliases wantedBy requiredBy upheldBy enable overrideStrategy;
text = commonUnitText def ''
[Slice]
${attrsToSection def.sliceConfig}

View File

@ -512,6 +512,7 @@
./services/editors/infinoted.nix
./services/finance/odoo.nix
./services/games/archisteamfarm.nix
./services/games/armagetronad.nix
./services/games/crossfire-server.nix
./services/games/deliantra-server.nix
./services/games/factorio.nix

View File

@ -119,10 +119,10 @@ in {
extraPackages = mkOption {
type = with types; listOf package;
default = with pkgs; [
swaylock swayidle foot dmenu
swaylock swayidle foot dmenu wmenu
];
defaultText = literalExpression ''
with pkgs; [ swaylock swayidle foot dmenu ];
with pkgs; [ swaylock swayidle foot dmenu wmenu ];
'';
example = literalExpression ''
with pkgs; [

View 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
);
};
}

View File

@ -307,6 +307,9 @@ in
Restart = "on-failure";
};
environment = env;
# Allow the consumer to access the private /tmp directory of the server.
# This is required to support consuming files via a local folder.
unitConfig.JoinsNamespaceOf = "paperless-task-queue.service";
};
systemd.services.paperless-web = {

View File

@ -213,7 +213,7 @@ in
serviceConfig = {
User = "searx";
Group = "searx";
ExecStart = "${cfg.package}/bin/searx-run";
ExecStart = lib.getExe cfg.package;
} // optionalAttrs (cfg.environmentFile != null)
{ EnvironmentFile = builtins.toPath cfg.environmentFile; };
environment = {

View File

@ -24,12 +24,24 @@ let
confNoServer = concatStringsSep "\n" ((mapAttrsToList (toConf "") (builtins.removeAttrs cfg.settings [ "server" ])) ++ [""]);
confServer = concatStringsSep "\n" (mapAttrsToList (toConf " ") (builtins.removeAttrs cfg.settings.server [ "define-tag" ]));
confFile = pkgs.writeText "unbound.conf" ''
confFileUnchecked = pkgs.writeText "unbound.conf" ''
server:
${optionalString (cfg.settings.server.define-tag != "") (toOption " " "define-tag" cfg.settings.server.define-tag)}
${confServer}
${confNoServer}
'';
confFile = if cfg.checkconf then pkgs.runCommandLocal "unbound-checkconf" { } ''
cp ${confFileUnchecked} unbound.conf
# fake stateDir which is not accesible in the sandbox
mkdir -p $PWD/state
sed -i unbound.conf \
-e '/auto-trust-anchor-file/d' \
-e "s|${cfg.stateDir}|$PWD/state|"
${cfg.package}/bin/unbound-checkconf unbound.conf
cp ${confFileUnchecked} $out
'' else confFileUnchecked;
rootTrustAnchorFile = "${cfg.stateDir}/root.key";
@ -62,6 +74,17 @@ in {
description = lib.mdDoc "Directory holding all state for unbound to run.";
};
checkconf = mkOption {
type = types.bool;
default = !cfg.settings ? include;
defaultText = "!config.services.unbound.settings ? include";
description = lib.mdDoc ''
Wether to check the resulting config file with unbound checkconf for syntax errors.
If settings.include is used, then this options is disabled, as the import can likely not be resolved at build time.
'';
};
resolveLocalQueries = mkOption {
type = types.bool;
default = true;

View File

@ -132,6 +132,28 @@ in
default = "WriteReplica";
type = lib.types.enum [ "WriteReplica" "WriteReplicaNoUI" "ReadOnlyReplica" ];
};
online_backup = {
path = lib.mkOption {
description = lib.mdDoc "Path to the output directory for backups.";
type = lib.types.path;
default = "/var/lib/kanidm/backups";
};
schedule = lib.mkOption {
description = lib.mdDoc "The schedule for backups in cron format.";
type = lib.types.str;
default = "00 22 * * *";
};
versions = lib.mkOption {
description = lib.mdDoc ''
Number of backups to keep.
The default is set to `0`, in order to disable backups by default.
'';
type = lib.types.ints.unsigned;
default = 0;
example = 7;
};
};
};
};
default = { };
@ -233,6 +255,14 @@ in
environment.systemPackages = lib.mkIf cfg.enableClient [ cfg.package ];
systemd.tmpfiles.settings."10-kanidm" = {
${cfg.serverSettings.online_backup.path}.d = {
mode = "0700";
user = "kanidm";
group = "kanidm";
};
};
systemd.services.kanidm = lib.mkIf cfg.enableServer {
description = "kanidm identity management daemon";
wantedBy = [ "multi-user.target" ];
@ -253,6 +283,8 @@ in
BindPaths = [
# To create the socket
"/run/kanidmd:/run/kanidmd"
# To store backups
cfg.serverSettings.online_backup.path
];
AmbientCapabilities = [ "CAP_NET_BIND_SERVICE" ];

View File

@ -216,9 +216,11 @@ in
requires = [ "podman.service" ];
};
systemd.services.podman.environment = config.networking.proxy.envVars;
systemd.sockets.podman.wantedBy = [ "sockets.target" ];
systemd.sockets.podman.socketConfig.SocketGroup = "podman";
systemd.user.services.podman.environment = config.networking.proxy.envVars;
systemd.user.sockets.podman.wantedBy = [ "sockets.target" ];
systemd.timers.podman-prune.timerConfig = lib.mkIf cfg.autoPrune.enable {

View File

@ -128,6 +128,7 @@ in {
appliance-repart-image = runTest ./appliance-repart-image.nix;
apparmor = handleTest ./apparmor.nix {};
archi = handleTest ./archi.nix {};
armagetronad = handleTest ./armagetronad.nix {};
atd = handleTest ./atd.nix {};
atop = handleTest ./atop.nix {};
atuin = handleTest ./atuin.nix {};

View 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}")
'';
})

View File

@ -36,7 +36,7 @@ import ./make-test-python.nix ({ pkgs, ...} :
};
# fancy setup: run in uWSGI and use nginx as proxy
nodes.fancy = { ... }: {
nodes.fancy = { config, ... }: {
imports = [ ../modules/profiles/minimal.nix ];
services.searx = {
@ -65,7 +65,7 @@ import ./make-test-python.nix ({ pkgs, ...} :
include ${pkgs.nginx}/conf/uwsgi_params;
uwsgi_pass unix:/run/searx/uwsgi.sock;
'';
locations."/searx/static/".alias = "${pkgs.searx}/share/static/";
locations."/searx/static/".alias = "${config.services.searx.package}/share/static/";
};
# allow nginx access to the searx socket
@ -108,7 +108,7 @@ import ./make-test-python.nix ({ pkgs, ...} :
"${pkgs.curl}/bin/curl --fail http://localhost/searx >&2"
)
fancy.succeed(
"${pkgs.curl}/bin/curl --fail http://localhost/searx/static/themes/oscar/js/bootstrap.min.js >&2"
"${pkgs.curl}/bin/curl --fail http://localhost/searx/static/themes/simple/js/leaflet.js >&2"
)
'';
})

View File

@ -2,13 +2,13 @@
pythonPackages.buildPythonApplication rec {
pname = "mopidy-spotify";
version = "unstable-2024-02-11";
version = "unstable-2024-02-27";
src = fetchFromGitHub {
owner = "mopidy";
repo = "mopidy-spotify";
rev = "fc6ffb3bbbae9224316e2a888db08ef56608966a";
hash = "sha256-V1SW8OyuBKLbUoQ4O5iiS4mq3MOXidcVKpiw125vxjQ=";
rev = "112d4abbb3f5b6477dab796f2824fa42196bfa0a";
hash = "sha256-RkXDzAbOOll3uCNZ2mFRnjqMkT/NkXOGjywLRTC9i60=";
};
propagatedBuildInputs = [

View File

@ -6,13 +6,13 @@
python3Packages.buildPythonApplication rec {
pname = "pyradio";
version = "0.9.1";
version = "0.9.2.25";
src = fetchFromGitHub {
owner = "coderholic";
repo = pname;
repo = "pyradio";
rev = "refs/tags/${version}";
hash = "sha256-tu/qlrbTcUCIRF15x9ATKHH+LDy1OsGJpo5x+CerTKg=";
hash = "sha256-GkOp0iK84HDvVH8RmtmIKJ5EtQIECgZS5g8pmaIhUcc=";
};
nativeBuildInputs = [
@ -20,9 +20,12 @@ python3Packages.buildPythonApplication rec {
];
propagatedBuildInputs = with python3Packages; [
requests
psutil
dnspython
netifaces
psutil
python-dateutil
requests
rich
];
checkPhase = ''

View File

@ -5,6 +5,8 @@ let
inherit (self) callPackage;
in
{
inherit (pkgs) emacspeak;
acm = callPackage ./manual-packages/acm { };
acm-terminal = callPackage ./manual-packages/acm-terminal { };
@ -31,8 +33,6 @@ in
elisp-ffi = callPackage ./manual-packages/elisp-ffi { };
emacspeak = callPackage ./manual-packages/emacspeak { };
ess-R-object-popup = callPackage ./manual-packages/ess-R-object-popup { };
evil-markdown = callPackage ./manual-packages/evil-markdown { };

View File

@ -4,13 +4,13 @@
buildGoModule rec {
pname = "orbiton";
version = "2.65.10";
version = "2.65.11";
src = fetchFromGitHub {
owner = "xyproto";
repo = "orbiton";
rev = "v${version}";
hash = "sha256-z81Xled6OFs9tKVJgUnws81C86Vle5XR85f3z96N2Gw=";
hash = "sha256-eb7Ku1hgvYdmRgemXcEZMl53oNXYcomh4wYHpRzLTUc=";
};
vendorHash = null;

File diff suppressed because it is too large Load Diff

View File

@ -50,12 +50,12 @@
};
arduino = buildGrammar {
language = "arduino";
version = "0.0.0+rev=2372f16";
version = "0.0.0+rev=a282270";
src = fetchFromGitHub {
owner = "ObserverOfTime";
repo = "tree-sitter-arduino";
rev = "2372f163b8416eeea674686fe0222e39fa06bad5";
hash = "sha256-nX0JXEP+fAADlKqMA1rrhKlUS4JMrOtFTQ/wxoOxcIY=";
rev = "a282270857b7be447b8be91411468349a31d73b7";
hash = "sha256-NAE/E3glGz509nOKO5xsJIwe1Q2OSh6Aj5krUOVhqvw=";
};
meta.homepage = "https://github.com/ObserverOfTime/tree-sitter-arduino";
};
@ -116,14 +116,14 @@
};
bass = buildGrammar {
language = "bass";
version = "0.0.0+rev=27f110d";
version = "0.0.0+rev=c9ba456";
src = fetchFromGitHub {
owner = "amaanq";
owner = "vito";
repo = "tree-sitter-bass";
rev = "27f110dfe79620993f5493ffa0d0f2fe12d250ed";
hash = "sha256-OmYtp2TAsAjw2fgdSezHUrP46b/QXgCbDeJa4ANrtvY=";
rev = "c9ba4568af24cd3403029730687c0a43d1350a43";
hash = "sha256-F131TkIt2mW2n8Da3zI1/B0yoT9Ezo2hWoptpsdMrb4=";
};
meta.homepage = "https://github.com/amaanq/tree-sitter-bass";
meta.homepage = "https://github.com/vito/tree-sitter-bass";
};
beancount = buildGrammar {
language = "beancount";
@ -182,12 +182,12 @@
};
c = buildGrammar {
language = "c";
version = "0.0.0+rev=72a60ea";
version = "0.0.0+rev=652433f";
src = fetchFromGitHub {
owner = "tree-sitter";
repo = "tree-sitter-c";
rev = "72a60ea888fb59a8e143883661f021139c905b74";
hash = "sha256-huEi/PEzjG9mtwL30mJ2oVy+D64d8I9Z/LZc856qlbw=";
rev = "652433fce487d8c3943207da38e3e65e4550e288";
hash = "sha256-Ld8ufwdOVqRYb9YpOa6z6fWoA+gj0w0nlq3dqhFCap8=";
};
meta.homepage = "https://github.com/tree-sitter/tree-sitter-c";
};
@ -226,12 +226,12 @@
};
chatito = buildGrammar {
language = "chatito";
version = "0.0.0+rev=308b591";
version = "0.0.0+rev=7162ec1";
src = fetchFromGitHub {
owner = "ObserverOfTime";
repo = "tree-sitter-chatito";
rev = "308b5913fd2ae6b527183ba1b3a490f90da32012";
hash = "sha256-oD49Rc1J/CkIAqEFI87efdzGLYl73se0ekpQll/Mpxs=";
rev = "7162ec1e8e9154fb334e84aa7637a4af051dfe42";
hash = "sha256-phvENW6wEqhKQakeXxsTclhSmFWFgfK9ztCszOGuaYY=";
};
meta.homepage = "https://github.com/ObserverOfTime/tree-sitter-chatito";
};
@ -248,12 +248,12 @@
};
cmake = buildGrammar {
language = "cmake";
version = "0.0.0+rev=73ab4b8";
version = "0.0.0+rev=f8de25f";
src = fetchFromGitHub {
owner = "uyha";
repo = "tree-sitter-cmake";
rev = "73ab4b8e9522f014a67f87f585e820d36fa47408";
hash = "sha256-5X4ho6tqPZFQWqoQ6WBsfuA+RbxTX5XzX7xzyFSTifw=";
rev = "f8de25f30757a2def006a7c144354710fe63dcf3";
hash = "sha256-J8Ro3J9kkH7k/v+nwekCotoS/l28yInhk9p/xaSbegc=";
};
meta.homepage = "https://github.com/uyha/tree-sitter-cmake";
};
@ -314,12 +314,12 @@
};
cpp = buildGrammar {
language = "cpp";
version = "0.0.0+rev=3d98832";
version = "0.0.0+rev=e0c1678";
src = fetchFromGitHub {
owner = "tree-sitter";
repo = "tree-sitter-cpp";
rev = "3d988327a1cfd724c0d195b37a1056174fae99bc";
hash = "sha256-s7+dRY3OWE7iz9nlqHEOyLlrWaDPF0buDSIjsRYPc7s=";
rev = "e0c1678a78731e78655b7d953efb4daecf58be46";
hash = "sha256-CdNCVDMAmeJrHgPb2JLxFHj/tHnUYC8flmxj+UaVXTo=";
};
meta.homepage = "https://github.com/tree-sitter/tree-sitter-cpp";
};
@ -348,12 +348,12 @@
};
cuda = buildGrammar {
language = "cuda";
version = "0.0.0+rev=2c6e806";
version = "0.0.0+rev=221179d";
src = fetchFromGitHub {
owner = "theHamsta";
repo = "tree-sitter-cuda";
rev = "2c6e806949197e7898910c78f514a3b7ff679068";
hash = "sha256-JAShJo+jDv4kzFCPID0C3EokmeiWxMVcJoEsVOzKBEw=";
rev = "221179d4287a2c24c08e4c67ff383ef67dc32156";
hash = "sha256-e01PTB+SduikiiDvOW411v0pBXCqOFBWlu3HgmM6jFg=";
};
meta.homepage = "https://github.com/theHamsta/tree-sitter-cuda";
};
@ -370,12 +370,12 @@
};
d = buildGrammar {
language = "d";
version = "0.0.0+rev=d9a1a2e";
version = "0.0.0+rev=a33d400";
src = fetchFromGitHub {
owner = "gdamore";
repo = "tree-sitter-d";
rev = "d9a1a2ed77017c23f715643f4739433a5ea7ab6f";
hash = "sha256-GgecDpsZMBTEqHjSbNyUUA6HzGuYEgtqZ9AB+6+fsDo=";
rev = "a33d400f025d6bbd37b4c681c93054976f579890";
hash = "sha256-LUb+1dTj1IP5ZtWaWBT8UWnGEqb0DJodgbkwnT7xywk=";
};
meta.homepage = "https://github.com/gdamore/tree-sitter-d";
};
@ -469,12 +469,12 @@
};
dtd = buildGrammar {
language = "dtd";
version = "0.0.0+rev=2743ff8";
version = "0.0.0+rev=52b3783";
src = fetchFromGitHub {
owner = "tree-sitter-grammars";
repo = "tree-sitter-xml";
rev = "2743ff864eac85cec830ff400f2e0024b9ca588b";
hash = "sha256-wuj3Q+LAtAS99pwJUD+3BzndVeNhzvQlaugzTHRvUjI=";
rev = "52b3783d0c89a69ec64b2d49eee95f44a7fdcd2a";
hash = "sha256-DVx/JwQXFEgY3XXo2rOVIWBRHdqprNgja9lAashkh5g=";
};
location = "dtd";
meta.homepage = "https://github.com/tree-sitter-grammars/tree-sitter-xml";
@ -526,12 +526,12 @@
};
elm = buildGrammar {
language = "elm";
version = "0.0.0+rev=c26afd7";
version = "0.0.0+rev=09dbf22";
src = fetchFromGitHub {
owner = "elm-tooling";
repo = "tree-sitter-elm";
rev = "c26afd7f2316f689410a1622f1780eff054994b1";
hash = "sha256-vYN1E49IpsvTUmxuzRyydCmhYZYGndcZPMBYgSMudrE=";
rev = "09dbf221d7491dc8d8839616b27c21b9c025c457";
hash = "sha256-Bq2oWtqEAsKyV0iHNKC+hXW4fh4yUwbfUhPtZWg5pug=";
};
meta.homepage = "https://github.com/elm-tooling/tree-sitter-elm";
};
@ -592,25 +592,36 @@
};
faust = buildGrammar {
language = "faust";
version = "0.0.0+rev=9e514af";
version = "0.0.0+rev=f3b9274";
src = fetchFromGitHub {
owner = "khiner";
repo = "tree-sitter-faust";
rev = "9e514af33bfe061d0ccf1999dbcc93fca91f133c";
hash = "sha256-FZ5wl6Pl2Y86dNpaRMTh8Q7TEx/s0YoV9/H1J+qwlwo=";
rev = "f3b9274514b5f9bf6b0dd4a01c30f9cc15c58bc4";
hash = "sha256-JwR8LCEptgQmEG/ruK5ukIGCNtvKJw5bobZ0WXF1ulY=";
};
meta.homepage = "https://github.com/khiner/tree-sitter-faust";
};
fennel = buildGrammar {
language = "fennel";
version = "0.0.0+rev=15e4f8c";
version = "0.0.0+rev=215e391";
src = fetchFromGitHub {
owner = "travonted";
owner = "alexmozaidze";
repo = "tree-sitter-fennel";
rev = "15e4f8c417281768db17080c4447297f8ff5343a";
hash = "sha256-BdhgDS+yJ/DUYJknVksLSNHvei+MOkqVW7gp6AffKhU=";
rev = "215e3913524abc119daa9db7cf6ad2f2f5620189";
hash = "sha256-myh0+ZNDzdUZFAdsw8uVGyo0VYh0wKNZ11vlJKTSZnA=";
};
meta.homepage = "https://github.com/travonted/tree-sitter-fennel";
meta.homepage = "https://github.com/alexmozaidze/tree-sitter-fennel";
};
fidl = buildGrammar {
language = "fidl";
version = "0.0.0+rev=bdbb635";
src = fetchFromGitHub {
owner = "google";
repo = "tree-sitter-fidl";
rev = "bdbb635a7f5035e424f6173f2f11b9cd79703f8d";
hash = "sha256-+s9AC7kAfPumREnc7xCSsYiaDwLp3uirLntwd2wK6Wo=";
};
meta.homepage = "https://github.com/google/tree-sitter-fidl";
};
firrtl = buildGrammar {
language = "firrtl";
@ -702,12 +713,12 @@
};
gdscript = buildGrammar {
language = "gdscript";
version = "0.0.0+rev=03f20b9";
version = "0.0.0+rev=b5dea4d";
src = fetchFromGitHub {
owner = "PrestonKnopp";
repo = "tree-sitter-gdscript";
rev = "03f20b94707a21bed90bb95101684bc4036139ce";
hash = "sha256-im87Rws9PPcBWNN0M8PNqnthJZlWKzn3iPLMGR+jtGo=";
rev = "b5dea4d852db65f0872d849c24533eb121e03c76";
hash = "sha256-/fmg7DfVX62F3sEovFaMs4dTA4rvPexOdQop3257op4=";
};
meta.homepage = "https://github.com/PrestonKnopp/tree-sitter-gdscript";
};
@ -735,12 +746,12 @@
};
gitattributes = buildGrammar {
language = "gitattributes";
version = "0.0.0+rev=3d03b37";
version = "0.0.0+rev=0750b59";
src = fetchFromGitHub {
owner = "ObserverOfTime";
repo = "tree-sitter-gitattributes";
rev = "3d03b37395f5707b6a2bfb43f62957fe0e669c0c";
hash = "sha256-+DvxhL+m3Nagv0GXWWWYsIIDuWNzlK1vNVLOO0qBl2E=";
rev = "0750b5904f37d6b2f47f6e4655001c2c35a172ec";
hash = "sha256-BXsF++uut1WWxe67E+CUh3e6VWrezNJaPfYJhXB0VlY=";
};
meta.homepage = "https://github.com/ObserverOfTime/tree-sitter-gitattributes";
};
@ -999,23 +1010,23 @@
};
hlsl = buildGrammar {
language = "hlsl";
version = "0.0.0+rev=840fd07";
version = "0.0.0+rev=f820ee8";
src = fetchFromGitHub {
owner = "theHamsta";
repo = "tree-sitter-hlsl";
rev = "840fd07f09304bca415b93a15483e9ab1e44bc3f";
hash = "sha256-GPY6udz0YZawmQ6WcItXchUeag9EO+eMMGoYSaRsdrY=";
rev = "f820ee8417451f69020791cf691904ec1b63f20d";
hash = "sha256-d80vNrZGaPWlST5tgvf25CliuzS+zSZ60f49cRuucZ4=";
};
meta.homepage = "https://github.com/theHamsta/tree-sitter-hlsl";
};
hlsplaylist = buildGrammar {
language = "hlsplaylist";
version = "0.0.0+rev=ff121d3";
version = "0.0.0+rev=5be34b0";
src = fetchFromGitHub {
owner = "Freed-Wu";
repo = "tree-sitter-hlsplaylist";
rev = "ff121d397cf7cc709e3bbc928107fc25529e11e0";
hash = "sha256-FItkJbxWfpRne27OPRq5fCHUCX35fxmiT6k1eX8UkhI=";
rev = "5be34b0f6ea01b24f017c2c715729a3a919f57fd";
hash = "sha256-3ZFaIc4BrfR7dLxftbSLuFdErjYrJgi0Cd8jp9PB19U=";
};
meta.homepage = "https://github.com/Freed-Wu/tree-sitter-hlsplaylist";
};
@ -1043,12 +1054,12 @@
};
html = buildGrammar {
language = "html";
version = "0.0.0+rev=438d694";
version = "0.0.0+rev=b5d9758";
src = fetchFromGitHub {
owner = "tree-sitter";
repo = "tree-sitter-html";
rev = "438d694a1f51e1704cb779ad4fec2517523b1d7f";
hash = "sha256-NL1tOr7V3QVsVu2OfzLzFpe/FpYVD6MCgdSV0I6AkRY=";
rev = "b5d9758e22b4d3d25704b72526670759a9e4d195";
hash = "sha256-v3BD36OKkzJ1xqQV87HAyQpnQzi/4+PuyEAM1HfkW3U=";
};
meta.homepage = "https://github.com/tree-sitter/tree-sitter-html";
};
@ -1175,12 +1186,12 @@
};
json = buildGrammar {
language = "json";
version = "0.0.0+rev=ac6ddfa";
version = "0.0.0+rev=3b12920";
src = fetchFromGitHub {
owner = "tree-sitter";
repo = "tree-sitter-json";
rev = "ac6ddfa7775795a3d8f5edab4a71e3a49f932b6a";
hash = "sha256-T/y1xfHv3G3cTD2xw43tMiW8agKwE5CV/uwThSHkd84=";
rev = "3b129203f4b72d532f58e72c5310c0a7db3b8e6d";
hash = "sha256-dVErHgsUDEN42wc/Gd68vQfVc8+/r/8No9KZk2GFzmY=";
};
meta.homepage = "https://github.com/tree-sitter/tree-sitter-json";
};
@ -1351,12 +1362,12 @@
};
lua = buildGrammar {
language = "lua";
version = "0.0.0+rev=9668709";
version = "0.0.0+rev=04c9579";
src = fetchFromGitHub {
owner = "MunifTanjim";
repo = "tree-sitter-lua";
rev = "9668709211b2e683f27f414454a8b51bf0a6bda1";
hash = "sha256-5t5w8KqbefInNbA12/jpNzmky/uOUhsLjKdEqpl1GEc=";
rev = "04c9579dcb917255b2e5f8199df4ae7f587d472f";
hash = "sha256-kzyn6XF4/PN8civ/0UV+ancCMkh7DF2B7WUYxix6aaM=";
};
meta.homepage = "https://github.com/MunifTanjim/tree-sitter-lua";
};
@ -1417,24 +1428,24 @@
};
markdown = buildGrammar {
language = "markdown";
version = "0.0.0+rev=23d9cb2";
version = "0.0.0+rev=2821521";
src = fetchFromGitHub {
owner = "MDeiml";
repo = "tree-sitter-markdown";
rev = "23d9cb2ce2f4d0914e7609b500c5fc8dfae0176f";
hash = "sha256-Z42w7gSUV9/9Q1jtCrd03cjlMUjHC5Vjie1x8m8K5uw=";
rev = "2821521a4e6eab37b63dff6a8e169cd88554047d";
hash = "sha256-JoZ/CKIMHVowwqTMFdys+Qu1CHMsP+8Wr2LJo5h30B4=";
};
location = "tree-sitter-markdown";
meta.homepage = "https://github.com/MDeiml/tree-sitter-markdown";
};
markdown_inline = buildGrammar {
language = "markdown_inline";
version = "0.0.0+rev=23d9cb2";
version = "0.0.0+rev=2821521";
src = fetchFromGitHub {
owner = "MDeiml";
repo = "tree-sitter-markdown";
rev = "23d9cb2ce2f4d0914e7609b500c5fc8dfae0176f";
hash = "sha256-Z42w7gSUV9/9Q1jtCrd03cjlMUjHC5Vjie1x8m8K5uw=";
rev = "2821521a4e6eab37b63dff6a8e169cd88554047d";
hash = "sha256-JoZ/CKIMHVowwqTMFdys+Qu1CHMsP+8Wr2LJo5h30B4=";
};
location = "tree-sitter-markdown-inline";
meta.homepage = "https://github.com/MDeiml/tree-sitter-markdown";
@ -1474,35 +1485,35 @@
};
meson = buildGrammar {
language = "meson";
version = "0.0.0+rev=3d6dfbd";
version = "0.0.0+rev=d6ec8ce";
src = fetchFromGitHub {
owner = "Decodetalkers";
repo = "tree-sitter-meson";
rev = "3d6dfbdb2432603bc84ca7dc009bb39ed9a8a7b1";
hash = "sha256-NRiecSr5UjISlFtmtvy3SYaWSmXMf0bKCKQVA83Jx+Y=";
rev = "d6ec8ce0963c3c8180161391f15d8f7d415f650d";
hash = "sha256-SwcBhg6luPAOtaL5dhvLxCpJcwlGhZxhvVmn5pa6ecA=";
};
meta.homepage = "https://github.com/Decodetalkers/tree-sitter-meson";
};
mlir = buildGrammar {
language = "mlir";
version = "0.0.0+rev=650a8fb";
version = "0.0.0+rev=117cbbc";
src = fetchFromGitHub {
owner = "artagnon";
repo = "tree-sitter-mlir";
rev = "650a8fb72013ba8d169bdb458e480d640fc545c9";
hash = "sha256-Xmn5WaOgvAVyr1Bgzr+QG9G/kymtl4CUvLL5SPZdikU=";
rev = "117cbbc46bbf82ae30b24f8939573655017226da";
hash = "sha256-c0+Pvhe++fHmRL9Ptri+vsdRN3MCb2Z/7EqWmFaK/CE=";
};
generate = true;
meta.homepage = "https://github.com/artagnon/tree-sitter-mlir";
};
muttrc = buildGrammar {
language = "muttrc";
version = "0.0.0+rev=0af0e0d";
version = "0.0.0+rev=67d9e23";
src = fetchFromGitHub {
owner = "neomutt";
repo = "tree-sitter-muttrc";
rev = "0af0e0d8c8cf59dc21cfe565489da0c247374b9f";
hash = "sha256-AB8c2mV2sTNwN8sZkv3RbRKdxZW467P6epX+Z4LWqbU=";
rev = "67d9e23ca7aa22d9bce9d16c53d2c927dff5159a";
hash = "sha256-B3/VoPq8h7TiwOP0nhsuPmFtkLsucpDm9RnUNXkfKpo=";
};
meta.homepage = "https://github.com/neomutt/tree-sitter-muttrc";
};
@ -1519,23 +1530,23 @@
};
nickel = buildGrammar {
language = "nickel";
version = "0.0.0+rev=091b5dc";
version = "0.0.0+rev=19fb551";
src = fetchFromGitHub {
owner = "nickel-lang";
repo = "tree-sitter-nickel";
rev = "091b5dcc7d138901bcc162da9409c0bb626c0d27";
hash = "sha256-HyHdameEgET5UXKMgw7EJvZsJxToc9Qz26XHvc5qmU0=";
rev = "19fb551196d18b75160631f5e3a8a006b3875276";
hash = "sha256-NXyagRPUT3h8G6R+eE4YrTnWtfB3AT/piXeun5ETU6s=";
};
meta.homepage = "https://github.com/nickel-lang/tree-sitter-nickel";
};
nim = buildGrammar {
language = "nim";
version = "0.0.0+rev=70ceee8";
version = "0.0.0+rev=c5f0ce3";
src = fetchFromGitHub {
owner = "alaviss";
repo = "tree-sitter-nim";
rev = "70ceee835e033acbc7092cd7f4f6a251789af121";
hash = "sha256-9+ADYNrtdva/DkkjPwavyU0cL6eunqq4TX9IUQi9eKw=";
rev = "c5f0ce3b65222f5dbb1a12f9fe894524881ad590";
hash = "sha256-KzAZf5vgrdp33esrgle71i0m52MvRJ3z/sMwzb+CueU=";
};
meta.homepage = "https://github.com/alaviss/tree-sitter-nim";
};
@ -1698,46 +1709,46 @@
};
pem = buildGrammar {
language = "pem";
version = "0.0.0+rev=7905a16";
version = "0.0.0+rev=db307bb";
src = fetchFromGitHub {
owner = "ObserverOfTime";
repo = "tree-sitter-pem";
rev = "7905a168036e23605160a0d32a142f58ab5eaa06";
hash = "sha256-6gEOrpJ/5UDMMVqKh0XQX+K3JOPiOk5H6CWZgB59h00=";
rev = "db307bbb7dc4f721bf2f5ba7fcedaf58feeb59e0";
hash = "sha256-uBZo16QtZtbYc4jHdFt1w/zMx9F+WKBB+ANre8IURHA=";
};
meta.homepage = "https://github.com/ObserverOfTime/tree-sitter-pem";
};
perl = buildGrammar {
language = "perl";
version = "0.0.0+rev=a30394f";
version = "0.0.0+rev=fd8b951";
src = fetchFromGitHub {
owner = "tree-sitter-perl";
repo = "tree-sitter-perl";
rev = "a30394f61b607f48c841c6e085d5219f23872816";
hash = "sha256-3aWBh5jKXUYXxOv+RKyEpwJVOoP7QuaRQZHw0yOy6tQ=";
rev = "fd8b951cf6f72d48dfd07679de8cf0260836b231";
hash = "sha256-ejbpska3Ar0cjqDGZXXjRkpDLNsnDUJD0TBsb2cZfY4=";
};
meta.homepage = "https://github.com/tree-sitter-perl/tree-sitter-perl";
};
php = buildGrammar {
language = "php";
version = "0.0.0+rev=caf4d67";
version = "0.0.0+rev=710754c";
src = fetchFromGitHub {
owner = "tree-sitter";
repo = "tree-sitter-php";
rev = "caf4d67d55386d3e4f85d29450b8d9cacbb02d19";
hash = "sha256-L0M9v/T3W3v+pES2AytZ6V4jHfnSklFBRGPW3/oB2Aw=";
rev = "710754c879435178b7643e525c84cd53f32c510c";
hash = "sha256-vOvuctPCcKs5iQ88Tv3Euxk7fDg06o1leRWUic4qzLQ=";
};
location = "php";
meta.homepage = "https://github.com/tree-sitter/tree-sitter-php";
};
php_only = buildGrammar {
language = "php_only";
version = "0.0.0+rev=caf4d67";
version = "0.0.0+rev=710754c";
src = fetchFromGitHub {
owner = "tree-sitter";
repo = "tree-sitter-php";
rev = "caf4d67d55386d3e4f85d29450b8d9cacbb02d19";
hash = "sha256-L0M9v/T3W3v+pES2AytZ6V4jHfnSklFBRGPW3/oB2Aw=";
rev = "710754c879435178b7643e525c84cd53f32c510c";
hash = "sha256-vOvuctPCcKs5iQ88Tv3Euxk7fDg06o1leRWUic4qzLQ=";
};
location = "php_only";
meta.homepage = "https://github.com/tree-sitter/tree-sitter-php";
@ -1788,12 +1799,12 @@
};
poe_filter = buildGrammar {
language = "poe_filter";
version = "0.0.0+rev=99ce487";
version = "0.0.0+rev=bf912df";
src = fetchFromGitHub {
owner = "ObserverOfTime";
repo = "tree-sitter-poe-filter";
rev = "99ce487804eab781e1e1cb39de82aea236346c96";
hash = "sha256-kMk0gCb2/FExKyGPeRDCd6rW/R3eH1iuE7udnFoI5UY=";
rev = "bf912df70f60b356c70631d9cbb317b41c1ea319";
hash = "sha256-EHftq35YJzElvYiJxiu7iIcugoXME7CXuQSo1ktG584=";
};
meta.homepage = "https://github.com/ObserverOfTime/tree-sitter-poe-filter";
};
@ -1810,12 +1821,12 @@
};
printf = buildGrammar {
language = "printf";
version = "0.0.0+rev=ddff4ce";
version = "0.0.0+rev=0e0acea";
src = fetchFromGitHub {
owner = "ObserverOfTime";
repo = "tree-sitter-printf";
rev = "ddff4ce4d630d1f1a3b591d77b2618a4169b36b9";
hash = "sha256-MIj4tP2+zb43pcnSBSVjPpKxjbxKFJTcz8AJphEvh6k=";
rev = "0e0aceabbf607ea09e03562f5d8a56f048ddea3d";
hash = "sha256-y/7CDnHpT3D6hL0f+52mReCphn+lvElfQQKJwY4fr9c=";
};
meta.homepage = "https://github.com/ObserverOfTime/tree-sitter-printf";
};
@ -1843,14 +1854,14 @@
};
properties = buildGrammar {
language = "properties";
version = "0.0.0+rev=74e5d3c";
version = "0.0.0+rev=189b3cc";
src = fetchFromGitHub {
owner = "ObserverOfTime";
owner = "tree-sitter-grammars";
repo = "tree-sitter-properties";
rev = "74e5d3c63d0da17c0800b3cf9090b24637ef6b59";
hash = "sha256-oB5TA8dZtuFop7Urggv2ZWWi8s6wDsIL+ZG5+sCQgq8=";
rev = "189b3cc18d36871c27ebb0adcf0cddd123b0cbba";
hash = "sha256-5cA2DDMiP8axu8Jl1M+CoxHoB+Jc/VMy3vXME+yxH9o=";
};
meta.homepage = "https://github.com/ObserverOfTime/tree-sitter-properties";
meta.homepage = "https://github.com/tree-sitter-grammars/tree-sitter-properties";
};
proto = buildGrammar {
language = "proto";
@ -1899,12 +1910,12 @@
};
puppet = buildGrammar {
language = "puppet";
version = "0.0.0+rev=9ce9a5f";
version = "0.0.0+rev=3641b9e";
src = fetchFromGitHub {
owner = "amaanq";
repo = "tree-sitter-puppet";
rev = "9ce9a5f7d64528572aaa8d59459ba869e634086b";
hash = "sha256-YEjjy9WLwITERYqoeSVrRYnwVBIAwdc4o0lvAK9wizw=";
rev = "3641b9e854ac9c84c7576e71c4c9a357bcfd9550";
hash = "sha256-J1DBjQRdV4R85NTyg/qmwbjm1bryKe3UOdp4XyH6BQc=";
};
meta.homepage = "https://github.com/amaanq/tree-sitter-puppet";
};
@ -2042,12 +2053,12 @@
};
readline = buildGrammar {
language = "readline";
version = "0.0.0+rev=f2f98d4";
version = "0.0.0+rev=e436eae";
src = fetchFromGitHub {
owner = "ribru17";
repo = "tree-sitter-readline";
rev = "f2f98d4263949d696e69a425f65326c59d1ceedc";
hash = "sha256-+T4HS2QqoXFRgBfY61NHK4EyQ/HF26eeMt9KV2Ud0Ug=";
rev = "e436eaef452266a3d00c195f0eb757d6502c767a";
hash = "sha256-y38TDQ+7wBzEKol/UQ5Xk6f15wUW7hJxByDuhx9d0hQ=";
};
meta.homepage = "https://github.com/ribru17/tree-sitter-readline";
};
@ -2141,12 +2152,12 @@
};
rust = buildGrammar {
language = "rust";
version = "0.0.0+rev=a70daac";
version = "0.0.0+rev=85a21c9";
src = fetchFromGitHub {
owner = "tree-sitter";
repo = "tree-sitter-rust";
rev = "a70daac064145c84e9d51767c2575bb68d51df58";
hash = "sha256-2Y7sQ5bhKEpbDAHd5zJMGAlDWH32tJXxAgFOYY8S7o8=";
rev = "85a21c96d31b2a5c4369e5836a7f4ab059268fea";
hash = "sha256-uxOjdB65+HjNuOybbYb2N9R0I+bt909bIBOzmh9vfVc=";
};
meta.homepage = "https://github.com/tree-sitter/tree-sitter-rust";
};
@ -2197,23 +2208,23 @@
};
slang = buildGrammar {
language = "slang";
version = "0.0.0+rev=130b2f5";
version = "0.0.0+rev=0cdfb17";
src = fetchFromGitHub {
owner = "theHamsta";
repo = "tree-sitter-slang";
rev = "130b2f5c7a1d5c24645c3518db4bc2b22dd90718";
hash = "sha256-gDN8nyQjxE7Hko3MJJj2Le0Ey0pd3GlG5QWkDf8c7Q0=";
rev = "0cdfb1741323f38e9a33798674145c22cfc0092b";
hash = "sha256-1xSnb3n9u45B2gEBApZpZlb1VvbJOrmgQwrPL2OuGro=";
};
meta.homepage = "https://github.com/theHamsta/tree-sitter-slang";
};
slint = buildGrammar {
language = "slint";
version = "0.0.0+rev=68405a4";
version = "0.0.0+rev=3c82235";
src = fetchFromGitHub {
owner = "slint-ui";
repo = "tree-sitter-slint";
rev = "68405a45f7a5311cd1f77e40ba84199573303f52";
hash = "sha256-zmmxXU7w5N8XjKn2Uu/nAc/FjCAprdKyJ0c75CGUgpk=";
rev = "3c82235f41b63f35a01ae3888206e93585cbb84a";
hash = "sha256-D3X2YwvxvseIGnKzaSocr3Ak7qoASZhxyRS+rtpir0g=";
};
meta.homepage = "https://github.com/slint-ui/tree-sitter-slint";
};
@ -2287,12 +2298,12 @@
};
sourcepawn = buildGrammar {
language = "sourcepawn";
version = "0.0.0+rev=846ec64";
version = "0.0.0+rev=39ce73a";
src = fetchFromGitHub {
owner = "nilshelmig";
repo = "tree-sitter-sourcepawn";
rev = "846ec647109a1f3dfab17c025c80ecdf6fd56581";
hash = "sha256-3yRBrzuzjWKKpLO+58P/JdNvjPj2o1HuBZOKkFh2RCs=";
rev = "39ce73ad42b2c4f52848d16093c24feddaa7d226";
hash = "sha256-CyCUGGycWpgQl/BGDjRHwYoa9Mess49jUf9WUkRaliE=";
};
meta.homepage = "https://github.com/nilshelmig/tree-sitter-sourcepawn";
};
@ -2397,23 +2408,23 @@
};
svelte = buildGrammar {
language = "svelte";
version = "0.0.0+rev=bd60db7";
version = "0.0.0+rev=04a126d";
src = fetchFromGitHub {
owner = "Himujjal";
owner = "tree-sitter-grammars";
repo = "tree-sitter-svelte";
rev = "bd60db7d3d06f89b6ec3b287c9a6e9190b5564bd";
hash = "sha256-FZuzbTOP9LokPb77DSUwIXCFvMmDQPyyLKt7vNtEuAY=";
rev = "04a126d9210def99f06d9ab84a255110b862d47c";
hash = "sha256-F6AC72IHMKs1jTwshwNkAXFfiBGEbBn7m83xedCoDsA=";
};
meta.homepage = "https://github.com/Himujjal/tree-sitter-svelte";
meta.homepage = "https://github.com/tree-sitter-grammars/tree-sitter-svelte";
};
swift = buildGrammar {
language = "swift";
version = "0.0.0+rev=dabbcf9";
version = "0.0.0+rev=e1ac0c3";
src = fetchFromGitHub {
owner = "alex-pinkus";
repo = "tree-sitter-swift";
rev = "dabbcf9a2311e08c1b020e1258849b8359e9de1a";
hash = "sha256-U4r2uEDqBXeDC0NkOvSwkKreJnFSStxJisNPLJ4CTZs=";
rev = "e1ac0c3b48f4c42c40f92f400f14c6561369d4dd";
hash = "sha256-7MXH3ZDMH3Im/t5FPMGw6MGKMS+hKaHKUvTXXCrvgtI=";
};
generate = true;
meta.homepage = "https://github.com/alex-pinkus/tree-sitter-swift";
@ -2552,6 +2563,17 @@
};
meta.homepage = "https://github.com/tlaplus-community/tree-sitter-tlaplus";
};
tmux = buildGrammar {
language = "tmux";
version = "0.0.0+rev=10737f5";
src = fetchFromGitHub {
owner = "Freed-Wu";
repo = "tree-sitter-tmux";
rev = "10737f5dc4d8e68c9667f11a6996688a1185755f";
hash = "sha256-7MQYyWu1Rw3Vwmp3nbuorn9rD0xcEU5nRXPuTVpOqkM=";
};
meta.homepage = "https://github.com/Freed-Wu/tree-sitter-tmux";
};
todotxt = buildGrammar {
language = "todotxt";
version = "0.0.0+rev=3937c5c";
@ -2643,6 +2665,17 @@
};
meta.homepage = "https://github.com/Teddytrombone/tree-sitter-typoscript";
};
typst = buildGrammar {
language = "typst";
version = "0.0.0+rev=c757be0";
src = fetchFromGitHub {
owner = "uben0";
repo = "tree-sitter-typst";
rev = "c757be0898e2a58f4e9761aa164dc413bf5beaf8";
hash = "sha256-z0x47Qrr8mYroDtXapRmzOMHOxlYmQmonN0P7VSCBu0=";
};
meta.homepage = "https://github.com/uben0/tree-sitter-typst";
};
udev = buildGrammar {
language = "udev";
version = "0.0.0+rev=15d89be";
@ -2746,23 +2779,23 @@
};
vim = buildGrammar {
language = "vim";
version = "0.0.0+rev=32c76f1";
version = "0.0.0+rev=bc1364d";
src = fetchFromGitHub {
owner = "neovim";
repo = "tree-sitter-vim";
rev = "32c76f150347c1cd044e90b8e2bc73c00677fa55";
hash = "sha256-14lkrGZ5JpbPvb5Pm2UzLodhO1IEz5rBETTU0RZDFc4=";
rev = "bc1364d922952138957a62105171ed68e73fbb6c";
hash = "sha256-5h1GYjyYMJd5GS0zXh0LP1wBs60fYohpFv89gcdZ4vU=";
};
meta.homepage = "https://github.com/neovim/tree-sitter-vim";
};
vimdoc = buildGrammar {
language = "vimdoc";
version = "0.0.0+rev=ed8695a";
version = "0.0.0+rev=40fcd50";
src = fetchFromGitHub {
owner = "neovim";
repo = "tree-sitter-vimdoc";
rev = "ed8695ad8de39c3f073da130156f00b1148e2891";
hash = "sha256-q5Ln8WPFrtKBfZnaAAlMh3Q/eczEt6wCMZAtx+ISCKg=";
rev = "40fcd50a2c7b5a3ef98294795116773b24fb61ab";
hash = "sha256-i/O8vIjiyOoFECS1nmKfL/8hofzSvwg5cJo7JooJGOY=";
};
meta.homepage = "https://github.com/neovim/tree-sitter-vimdoc";
};
@ -2790,23 +2823,23 @@
};
wgsl_bevy = buildGrammar {
language = "wgsl_bevy";
version = "0.0.0+rev=a041228";
version = "0.0.0+rev=cbd58ee";
src = fetchFromGitHub {
owner = "theHamsta";
repo = "tree-sitter-wgsl-bevy";
rev = "a041228ae64632f59b9bd37346a0dbcb7817f36b";
hash = "sha256-bBGunOcFPrHWLsP1ISgdFBNDIBbB0uhwxKAwmQZg7/k=";
rev = "cbd58ee33e24f46d16b9882b001eefb25a958ee2";
hash = "sha256-EPpI4UJ/5GB2iDQGoSziUOcP1TVf7VU4FMTKvrujcAY=";
};
meta.homepage = "https://github.com/theHamsta/tree-sitter-wgsl-bevy";
};
wing = buildGrammar {
language = "wing";
version = "0.0.0+rev=f7965a9";
version = "0.0.0+rev=52ef462";
src = fetchFromGitHub {
owner = "winglang";
repo = "wing";
rev = "f7965a947d2eaa8b5b9bba1c42a0e1891f1a0b2a";
hash = "sha256-qQ74aj7pccc3gvmeNoa0BBTMdNTmcc0h8aWNcLvpMRY=";
rev = "52ef462f76e199845a5df4834b838339e0a6efdb";
hash = "sha256-eZEyk285EyfduzrVH3Ojbwu8mbRFfZY6lrQQQT1kWM8=";
};
location = "libs/tree-sitter-wing";
generate = true;
@ -2814,23 +2847,23 @@
};
xcompose = buildGrammar {
language = "xcompose";
version = "0.0.0+rev=8898238";
version = "0.0.0+rev=7fd1494";
src = fetchFromGitHub {
owner = "ObserverOfTime";
repo = "tree-sitter-xcompose";
rev = "8898238fca7e143760386448093392b87e58002e";
hash = "sha256-1U3FFO6j4jdynDTRQlD8kfTYTiKvC7ZjxSECMW9NYGY=";
rev = "7fd14940e0478fce79ea195067ed14a2c42c654a";
hash = "sha256-elnm1HjE4hLFMR/XhCPhOcGjqS9FbCULPRb/IntpQ3U=";
};
meta.homepage = "https://github.com/ObserverOfTime/tree-sitter-xcompose";
};
xml = buildGrammar {
language = "xml";
version = "0.0.0+rev=2743ff8";
version = "0.0.0+rev=52b3783";
src = fetchFromGitHub {
owner = "tree-sitter-grammars";
repo = "tree-sitter-xml";
rev = "2743ff864eac85cec830ff400f2e0024b9ca588b";
hash = "sha256-wuj3Q+LAtAS99pwJUD+3BzndVeNhzvQlaugzTHRvUjI=";
rev = "52b3783d0c89a69ec64b2d49eee95f44a7fdcd2a";
hash = "sha256-DVx/JwQXFEgY3XXo2rOVIWBRHdqprNgja9lAashkh5g=";
};
location = "xml";
meta.homepage = "https://github.com/tree-sitter-grammars/tree-sitter-xml";
@ -2870,12 +2903,12 @@
};
zathurarc = buildGrammar {
language = "zathurarc";
version = "0.0.0+rev=fe37e85";
version = "0.0.0+rev=353bdf2";
src = fetchFromGitHub {
owner = "Freed-Wu";
repo = "tree-sitter-zathurarc";
rev = "fe37e85db355c737573315f278672534c40fe140";
hash = "sha256-lQFCJhyJTCa+zdsobMutgbQqJ9mhehaIbRLbds0riEo=";
rev = "353bdf25e7af9c2830e254977fd3fb57ccaa8203";
hash = "sha256-vFDz4X0ujqM9GbrpGt3dRjvo0SR07E2qXrT/ppTegBQ=";
};
meta.homepage = "https://github.com/Freed-Wu/tree-sitter-zathurarc";
};

View File

@ -998,7 +998,7 @@
inherit (old) version src;
sourceRoot = "source/spectre_oxi";
cargoHash = "sha256-822+3s6FJVqBRYJAL/89bJfGv8fNhSN3nQelB29mXvQ=";
cargoHash = "sha256-gCGuD5kipgfR0Le8npNmyBxNsUq0PavXvKkxkiPx13E=";
preCheck = ''
@ -1671,6 +1671,14 @@
dependencies = with self; [ vim-repeat ];
};
vim-tabby = super.vim-tabby.overrideAttrs {
postPatch = ''
substituteInPlace autoload/tabby/globals.vim --replace-fail \
"let g:tabby_node_binary = get(g:, 'tabby_node_binary', 'node')" \
"let g:tabby_node_binary = get(g:, 'tabby_node_binary', '${nodejs}/bin/node')"
'';
};
vim-textobj-entire = super.vim-textobj-entire.overrideAttrs {
dependencies = with self; [ vim-textobj-user ];
meta.maintainers = with lib.maintainers; [ farlion ];

View File

@ -75,6 +75,7 @@ https://github.com/jiangmiao/auto-pairs/,,
https://github.com/pocco81/auto-save.nvim/,HEAD,
https://github.com/rmagatti/auto-session/,,
https://github.com/m4xshen/autoclose.nvim/,HEAD,
https://github.com/gaoDean/autolist.nvim/,,
https://github.com/vim-scripts/autoload_cscope.vim/,,
https://github.com/nullishamy/autosave.nvim/,HEAD,
https://github.com/rafi/awesome-vim-colorschemes/,,
@ -1400,3 +1401,4 @@ https://github.com/ziglang/zig.vim/,,
https://github.com/mickael-menu/zk-nvim/,HEAD,
https://github.com/troydm/zoomwintab.vim/,,
https://github.com/nanotee/zoxide.vim/,,
https://github.com/TabbyML/vim-tabby/,HEAD,

View File

@ -3928,8 +3928,8 @@ let
mktplcRef = {
name = "uiua-vscode";
publisher = "uiua-lang";
version = "0.0.27";
sha256 = "sha256-wEY1FZjgiQJ7VrJGZX0SgZqz/14v//jxgrqdafLjIfM=";
version = "0.0.39";
sha256 = "sha256-B+p5bIwVhzWAdKQPCGPlImQihYCeTtYFTlkZIkgWayk=";
};
meta = {
description = "VSCode language extension for Uiua";

View File

@ -2,7 +2,7 @@
, rustPlatform
, fetchFromGitHub
, pkg-config
, libgit2_1_5
, libgit2
, openssl
, zlib
, stdenv
@ -27,7 +27,7 @@ rustPlatform.buildRustPackage rec {
];
buildInputs = [
libgit2_1_5
libgit2
openssl
zlib
] ++ lib.optionals stdenv.isDarwin [
@ -35,6 +35,7 @@ rustPlatform.buildRustPackage rec {
];
env = {
LIBGIT2_NO_VENDOR = 1;
OPENSSL_NO_VENDOR = true;
};

View File

@ -16,13 +16,13 @@
python3Packages.buildPythonApplication rec {
pname = "nwg-panel";
version = "0.9.24";
version = "0.9.25";
src = fetchFromGitHub {
owner = "nwg-piotr";
repo = "nwg-panel";
rev = "refs/tags/v${version}";
hash = "sha256-qd2fnGdpHXX35ZtNGe59GnmhYGn6VJibc0KEr60VIJM=";
hash = "sha256-dTBV2OckPJNA707PNz/jmfUPpufhItt4EEDHAI79kxQ=";
};
# No tests

View File

@ -39,6 +39,9 @@ stdenv.mkDerivation (finalAttrs: rec {
hash = "sha256-7O+DX4uuncUqx5zEKQprZE6tctteT6NU01V2EBHiFqA=";
};
# build pkg-config is required to locate the native `scdoc` input
depsBuildBuild = [ pkg-config ];
nativeBuildInputs = [
bash-completion
# cmake # currently conflicts with meson
@ -50,7 +53,6 @@ stdenv.mkDerivation (finalAttrs: rec {
pkg-config
python3
sassc
pantheon.granite
scdoc
vala
wrapGAppsHook
@ -68,6 +70,7 @@ stdenv.mkDerivation (finalAttrs: rec {
libhandy
libpulseaudio
librsvg
pantheon.granite
# systemd # ends with broken permission
];

View File

@ -28,12 +28,12 @@
version = "2024-01-22";
};
ungoogled-patches = {
hash = "sha256-G+agHdsssYhsyi4TgJUJBqMEnEgQ7bYeqpTqmonXI6I=";
rev = "122.0.6261.69-1";
hash = "sha256-vqiizzSVWV2/iADPac8qgfdZcbunc0QgMqN15NwJ9js=";
rev = "122.0.6261.94-1";
};
};
hash = "sha256-uEN1hN6DOLgw4QDrMBZdiLLPx+yKQc5MimIf/vbCC84=";
hash_deb_amd64 = "sha256-k3/Phs72eIMB6LAU4aU0+ze/cRu6KlRhpBshKhmq9N4=";
version = "122.0.6261.69";
hash = "sha256-7fIs8qQon9L0iNmM/cHuyqtVm09qf7L4j9qb6KSbw2w=";
hash_deb_amd64 = "sha256-hOm7YZ9ya/SmwKhj6uIPkdgIDv5bIbss398szBYHuXk=";
version = "122.0.6261.94";
};
}

View File

@ -33,11 +33,11 @@
firefox-beta = buildMozillaMach rec {
pname = "firefox-beta";
version = "124.0b2";
version = "124.0b5";
applicationName = "Mozilla Firefox Beta";
src = fetchurl {
url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
sha512 = "a98bedcf2bb6e58a20b4ab49d53db0899ed7c6589b20266522521c3db5c583807be1d536a580a1b42dd5783c0d81d95c4f42be6a157fb08a588447ca4fa21dde";
sha512 = "a232d5f8d3118ef37166ef8706ab17d4cceaf67f0b12da4780c52253eec297c79e95ab42fe15165fdda62cda045ac923a53550c3525e9fd94ea3dca586510637";
};
meta = {
@ -62,13 +62,13 @@
firefox-devedition = buildMozillaMach rec {
pname = "firefox-devedition";
version = "124.0b2";
version = "124.0b5";
applicationName = "Mozilla Firefox Developer Edition";
requireSigning = false;
branding = "browser/branding/aurora";
src = fetchurl {
url = "mirror://mozilla/devedition/releases/${version}/source/firefox-${version}.source.tar.xz";
sha512 = "a65a522130d95ef5ffd4ee351c79a64517abdd60a80a74e66b147f6b179613240ab2abd6eb9cd939dfe31dd5b971773e882eb234a358e9546ab0272d8ed94145";
sha512 = "bea92dcf8703dab99cc8248a0d205b8613f74efa81cbe789aa3ef863093fa78ac4e362956dfd57186954389cd87cd97bc0b077d3f80bfe5b7dd3b6435874fa98";
};
meta = {

View File

@ -1,20 +1,20 @@
{
beta = import ./browser.nix {
channel = "beta";
version = "122.0.2365.52";
version = "122.0.2365.59";
revision = "1";
hash = "sha256-H8VTDyDY2Rm5z4cJruzMa1YorBAUL0pJuwhQ6cy4WfY=";
hash = "sha256-hs6NHAdqji5Cg1ReGWqalFHv6wyRlyclssyc0cxM+ZU=";
};
dev = import ./browser.nix {
channel = "dev";
version = "123.0.2400.1";
version = "123.0.2420.6";
revision = "1";
hash = "sha256-I9PT320DJgqJYNwB0pvngyLlV+N2jaS5tOwVwwNHex0=";
hash = "sha256-fX6lxhJstz2cZZODu7xRe1fez8WTXqlYNgsMhIVTLaU=";
};
stable = import ./browser.nix {
channel = "stable";
version = "122.0.2365.52";
version = "122.0.2365.59";
revision = "1";
hash = "sha256-hULyUUFhMjiareXr1zTynyknVyert45N0H4iR8woGRw=";
hash = "sha256-LbyipfA5TZWSZu1jeUykGZ2FXwt9rZ7ak7mmryXRnMQ=";
};
}

View File

@ -24,7 +24,7 @@ let
vivaldiName = if isSnapshot then "vivaldi-snapshot" else "vivaldi";
in stdenv.mkDerivation rec {
pname = "vivaldi";
version = "6.5.3206.55";
version = "6.5.3206.63";
suffix = {
aarch64-linux = "arm64";
@ -34,8 +34,8 @@ in stdenv.mkDerivation rec {
src = fetchurl {
url = "https://downloads.vivaldi.com/${branch}/vivaldi-${branch}_${version}-1_${suffix}.deb";
hash = {
aarch64-linux = "sha256-lr+9+w1vRZSG/2dP5K3mcKLCQijckPdkM/I2DgjO4wg=";
x86_64-linux = "sha256-ElkuuaZfK8F6CVA5xbKszkbqdcPACFR+xd0pRxnd6+U=";
aarch64-linux = "sha256-MyKTihImCd1/4UwnC/GqyeQcYnJNvKW5UfIIRN45r8E=";
x86_64-linux = "sha256-RbGoOKQyAaNY+y+jCT+r7GI9vymTT9kPDrwl9/bhaNw=";
}.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
};

View File

@ -8,13 +8,13 @@
buildGoModule rec {
pname = "bosh-cli";
version = "7.5.2";
version = "7.5.4";
src = fetchFromGitHub {
owner = "cloudfoundry";
repo = pname;
rev = "v${version}";
sha256 = "sha256-gT0Oivo5QE+pr5PpD/7JAj8oYF9UmSi5F6Ps8RtACzc=";
sha256 = "sha256-aNzKp7QwyhC/ado0NrCyxrRZu+ePGBNSq31/Iw6k6n0=";
};
vendorHash = null;

View File

@ -2,13 +2,13 @@
buildGoModule rec {
pname = "popeye";
version = "0.20.3";
version = "0.20.4";
src = fetchFromGitHub {
rev = "v${version}";
owner = "derailed";
repo = "popeye";
sha256 = "sha256-Iq33TEl6yCw4e6LeOsXcaMGRmOJqq9XV4KChEArDL6Q=";
sha256 = "sha256-rUG2tZokWXWVvGiyDAxVYfVwSDInaLptBCBuawtP1bc=";
};
ldflags = [

View File

@ -2,7 +2,7 @@
callPackage ./generic.nix {} rec {
pname = "signal-desktop";
dir = "Signal";
version = "6.48.1";
version = "7.0.0";
url = "https://updates.signal.org/desktop/apt/pool/s/signal-desktop/signal-desktop_${version}_amd64.deb";
hash = "sha256-3FJdgWmpfHAy5Hd97bH1DAbXYLsabom22tUKNK2bF2c=";
hash = "sha256-xwKisiOE2g+pg1P9mX6AlwYU1JWXIWSSygwauoU05E8=";
}

View File

@ -1,39 +1,40 @@
{ lib
, stdenv
, buildPythonApplication
, substituteAll
, fetchFromGitHub
, isPy3k
, cepa
, colorama
, fetchFromGitHub
, flask
, flask-compress
, flask-httpauth
, flask-socketio
, gevent-socketio
, gevent-websocket
, cepa
, obfs4
, psutil
, pyqt5
, pycrypto
, pynacl
, pyside2
, pyqt5
, pyside6
, pysocks
, pytestCheckHook
, qrcode
, qt5
, requests
, unidecode
, tor
, obfs4
, snowflake
, substituteAll
, tor
, unidecode
, waitress
}:
let
version = "2.6";
version = "2.6.1";
src = fetchFromGitHub {
owner = "onionshare";
repo = "onionshare";
rev = "v${version}";
sha256 = "sha256-LA7XlzoCXUiG/9subTddAd22336wO9sOHCIBlQK4Ga4=";
sha256 = "sha256-LR3Ao4Q8kEDwrFV+gYdMSEeYF4hDtEa1rJgvRRrJMwc=";
};
meta = with lib; {
description = "Securely and anonymously send and receive files";
@ -79,23 +80,27 @@ rec {
})
];
propagatedBuildInputs = [
cepa
colorama
flask
flask-compress
flask-httpauth
flask-socketio
gevent-socketio
gevent-websocket
cepa
psutil
pycrypto
pynacl
pyside6
qrcode
requests
unidecode
waitress
];
buildInputs = [
tor
obfs4
tor
];
nativeCheckInputs = [
@ -107,9 +112,11 @@ rec {
export HOME="$(mktemp -d)"
'';
disabledTests = [
disabledTests = lib.optionals stdenv.isLinux [
"test_get_tor_paths_linux" # expects /usr instead of /nix/store
] ++ lib.optionals stdenv.isDarwin [
# requires meek-client which is not packaged
"test_get_tor_paths_darwin"
# on darwin (and only on darwin) onionshare attempts to discover
# user's *real* homedir via /etc/passwd, making it more painful
# to fake
@ -128,16 +135,15 @@ rec {
inherit tor meek obfs4 snowflake;
inherit (tor) geoip;
})
./fix-qrcode-gui.patch
];
propagatedBuildInputs = [
onionshare
pyqt5
pyside2
psutil
qrcode
pyqt5
pyside6
pysocks
qrcode
];
nativeBuildInputs = [ qt5.wrapQtAppsHook ];

View File

@ -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

View File

@ -1,12 +1,12 @@
{ lib, stdenv, fetchFromGitHub, fetchYarnDeps, mkYarnPackage, nixosTests, writeText, python3 }:
let
version = "0.4.1";
version = "0.4.2";
src = fetchFromGitHub {
owner = "PowerDNS-Admin";
repo = "PowerDNS-Admin";
rev = "v${version}";
hash = "sha256-AwqEcAPD1SF1Ma3wtH03mXlTywM0Q19hciCmTtlr3gk=";
hash = "sha256-q9mt8wjSNFb452Xsg+qhNOWa03KJkYVGAeCWVSzZCyk=";
};
python = python3;
@ -29,7 +29,7 @@ let
offlineCache = fetchYarnDeps {
yarnLock = "${src}/yarn.lock";
hash = "sha256-3ebT19LrbYuypdJaoB3tClVVP0Fi8tHx3Xi6ge/DpA4=";
hash = "sha256-rXIts+dgOuZQGyiSke1NIG7b4lFlR/Gfu3J6T3wP3aY=";
};
# Copied from package.json, see also

View File

@ -1,6 +1,6 @@
{ lib, stdenv, buildGoModule, fetchFromGitHub, buildPackages, installShellFiles
, makeWrapper
, enableCmount ? true, fuse, macfuse-stubs
, enableCmount ? true, fuse, fuse3, macfuse-stubs
, librclone
}:
@ -46,12 +46,12 @@ buildGoModule rec {
ln -s $out/bin/rclone $out/bin/rclonefs
ln -s $out/bin/rclone $out/bin/mount.rclone
'' + lib.optionalString (enableCmount && !stdenv.isDarwin)
# use --suffix here to ensure we don't shadow /run/wrappers/bin/fusermount,
# use --suffix here to ensure we don't shadow /run/wrappers/bin/fusermount3,
# as the setuid wrapper is required as non-root on NixOS.
''
wrapProgram $out/bin/rclone \
--suffix PATH : "${lib.makeBinPath [ fuse ] }" \
--prefix LD_LIBRARY_PATH : "${fuse}/lib"
--suffix PATH : "${lib.makeBinPath [ fuse3 ] }" \
--prefix LD_LIBRARY_PATH : "${fuse3}/lib"
'';
passthru.tests = {

View File

@ -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";
};
}

View File

@ -9,13 +9,13 @@
stdenv.mkDerivation rec {
pname = "last";
version = "1541";
version = "1542";
src = fetchFromGitLab {
owner = "mcfrith";
repo = "last";
rev = "refs/tags/${version}";
hash = "sha256-gEesPeGY2RozoViZpBWNTXFJriKVb/r0Efw9XEXwXmM=";
hash = "sha256-ZzvyyecYiBscogfN9/FnDbHg/lqb8y14n9C2KLIqhFA=";
};
nativeBuildInputs = [

View File

@ -11,7 +11,7 @@
python3.pkgs.buildPythonApplication rec {
pname = "commitizen";
version = "3.15.0";
version = "3.16.0";
format = "pyproject";
disabled = python3.pythonOlder "3.8";
@ -20,7 +20,7 @@ python3.pkgs.buildPythonApplication rec {
owner = "commitizen-tools";
repo = pname;
rev = "refs/tags/v${version}";
hash = "sha256-WXsEkJRis9L9heHj6SkTFFTuGmnDXPMKfr7rYy8vzcI=";
hash = "sha256-vd8MtkzI7PPow0Ld0NhwbWOUWgSgecAT/DZK0ocUWCw=";
};
pythonRelaxDeps = [

View File

@ -2,8 +2,7 @@
, rustPlatform
, fetchFromGitHub
, pkg-config
# libgit2-sys doesn't support libgit2 1.6 yet
, libgit2_1_5
, libgit2
, oniguruma
, zlib
, stdenv
@ -29,7 +28,7 @@ rustPlatform.buildRustPackage rec {
];
buildInputs = [
libgit2_1_5
libgit2
oniguruma
zlib
] ++ lib.optionals stdenv.isDarwin [
@ -54,7 +53,10 @@ rustPlatform.buildRustPackage rec {
git config --global user.email nixbld@example.com
'';
RUSTONIG_SYSTEM_LIBONIG = true;
env = {
LIBGIT2_NO_VENDOR = 1;
RUSTONIG_SYSTEM_LIBONIG = true;
};
meta = with lib; {
description = "Dive into a file's history to find root cause";

View File

@ -2,7 +2,7 @@
, rustPlatform
, fetchFromGitHub
, pkg-config
, libgit2_1_5
, libgit2
, openssl
, zlib
, stdenv
@ -28,13 +28,17 @@ rustPlatform.buildRustPackage {
nativeBuildInputs = [ pkg-config ];
buildInputs = [
libgit2_1_5
libgit2
openssl
zlib
] ++ lib.optionals stdenv.isDarwin [
darwin.apple_sdk.frameworks.AppKit
];
env = {
LIBGIT2_NO_VENDOR = 1;
};
meta = with lib; {
description = "Minimalist set of hooks to aid pairing and link commits to issues";
homepage = "https://github.com/PurpleBooth/git-mit";

View File

@ -9,9 +9,14 @@
, SystemConfiguration
, curl
, openssl
, buildPackages
, installShellFiles
}:
rustPlatform.buildRustPackage rec {
let
canRunCmd = stdenv.hostPlatform.emulatorAvailable buildPackages;
gix = "${stdenv.hostPlatform.emulator buildPackages} $out/bin/gix";
in rustPlatform.buildRustPackage rec {
pname = "gitoxide";
version = "0.33.0";
@ -24,12 +29,19 @@ rustPlatform.buildRustPackage rec {
cargoHash = "sha256-JOl/hhyuc6vqeK6/oXXMB3fGRapBsuOTaUG+BQ9QSnk=";
nativeBuildInputs = [ cmake pkg-config ];
nativeBuildInputs = [ cmake pkg-config installShellFiles ];
buildInputs = [ curl ] ++ (if stdenv.isDarwin
then [ libiconv Security SystemConfiguration ]
else [ openssl ]);
preFixup = lib.optionalString canRunCmd ''
installShellCompletion --cmd gix \
--bash <(${gix} completions --shell bash) \
--fish <(${gix} completions --shell fish) \
--zsh <(${gix} completions --shell zsh)
'';
# Needed to get openssl-sys to use pkg-config.
env.OPENSSL_NO_VENDOR = 1;

View File

@ -2,13 +2,13 @@
buildLua rec {
pname = "mpv-playlistmanager";
version = "unstable-2023-11-28";
version = "unstable-2024-02-26";
src = fetchFromGitHub {
owner = "jonniek";
repo = "mpv-playlistmanager";
rev = "579490c7ae1becc129736b7632deec4f3fb90b99";
hash = "sha256-swOtoB8UV/HPTpQRGXswAfUYsyC2Nj/QRIkGP8X1jk0=";
rev = "1911dc053951169c98cfcfd9f44ef87d9122ca80";
hash = "sha256-pcdOMhkivLF5B86aNuHrqj77DuYLAFGlwFwY7jxkDkE=";
};
passthru.updateScript = unstableGitUpdater {};

View File

@ -64,6 +64,8 @@ let
# https://github.com/NixOS/nix/blob/9348f9291e5d9e4ba3c4347ea1b235640f54fd79/src/libutil/util.cc#L478
export USER=nobody
${buildPackages.nix}/bin/nix-store --load-db < ${closureInfo {rootPaths = contentsList;}}/registration
# Reset registration times to make the image reproducible
${buildPackages.sqlite}/bin/sqlite3 nix/var/nix/db/db.sqlite "UPDATE ValidPaths SET registrationTime = ''${SOURCE_DATE_EPOCH}"
mkdir -p nix/var/nix/gcroots/docker/
for i in ${lib.concatStringsSep " " contentsList}; do

View File

@ -904,22 +904,23 @@ rec {
else throw "applyPatches: please supply a `name` argument because a default name can only be computed when the `src` is a path or is an attribute set with a `name` attribute."
) + "-patched"
, patches ? [ ]
, prePatch ? ""
, postPatch ? ""
, ...
}@args:
if patches == [ ] && postPatch == ""
if patches == [ ] && prePatch == "" && postPatch == ""
then src # nothing to do, so use original src to avoid additional drv
else stdenvNoCC.mkDerivation
{
inherit name src patches postPatch;
({
inherit name src patches prePatch postPatch;
preferLocalBuild = true;
allowSubstitutes = false;
phases = "unpackPhase patchPhase installPhase";
installPhase = "cp -R ./ $out";
}
# Carry `meta` information from the underlying `src` if present.
// (optionalAttrs (src?meta) { inherit (src) meta; })
// (removeAttrs args [ "src" "name" "patches" "postPatch" ]);
# Carry `meta` information from the underlying `src` if present.
// (optionalAttrs (src?meta) { inherit (src) meta; })
// (removeAttrs args [ "src" "name" "patches" "prePatch" "postPatch" ]));
/* An immutable file in the store with a length of 0 bytes. */
emptyFile = runCommand "empty-file"

View File

@ -5,13 +5,13 @@
stdenvNoCC.mkDerivation rec {
pname = "bemoji";
version = "0.3.0";
version = "0.4.0";
src = fetchFromGitHub {
owner = "marty-oehme";
repo = "bemoji";
rev = "refs/tags/v${version}";
hash = "sha256-DhsJX5HlyTh0QLlHy1OwyaYg4vxWpBSsF71D9fxqPWE=";
hash = "sha256-HXwho0vRI9ZrUuDMicMH4ZNExY+zJfbrne2LMQmmHww=";
};
strictDeps = true;

View File

@ -2,13 +2,13 @@
let
pname = "chrysalis";
version = "0.13.2";
version = "0.13.3";
name = "${pname}-${version}-binary";
src = fetchurl {
url =
"https://github.com/keyboardio/${pname}/releases/download/v${version}/${pname}-${version}-x64.AppImage";
hash =
"sha512-WuItdQ/hDxbZZ3zulHI74NUkuYfesV/31rA1gPakCFgX2hpPrmKzwUez2vqt4N5qrGyphrR0bcelUatGZhOn5A==";
"sha512-F6Y87rgIclj1OA3gVX/gqqp9AvXKQlBXrbqk/26F1KHPF9NzHJgVmeszSo3Nhb6xg4CzWmzkqc8IW2H/Bg57kw==";
};
appimageContents = appimageTools.extract { inherit name src; };
in appimageTools.wrapType2 rec {
@ -38,11 +38,13 @@ in appimageTools.wrapType2 rec {
install -Dm444 ${appimageContents}/usr/share/icons/hicolor/256x256/chrysalis.png -t $out/share/pixmaps
'';
passthru.updateScript = ./update.sh;
meta = with lib; {
description = "A graphical configurator for Kaleidoscope-powered keyboards";
homepage = "https://github.com/keyboardio/Chrysalis";
license = licenses.gpl3Only;
maintainers = with maintainers; [ aw ];
maintainers = with maintainers; [ aw eclairevoyant nshalman ];
platforms = [ "x86_64-linux" ];
mainProgram = "chrysalis";
};

View 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\"|" \

View File

@ -1,8 +1,7 @@
{ lib
, stdenv
, fetchFromGitHub
, curl
, duktape
, fetchFromGitHub
, html-tidy
, openssl
, pcre
@ -10,24 +9,45 @@
, pkg-config
, quickjs
, readline
, stdenv
, unixODBC
, which
, withODBC ? true
}:
stdenv.mkDerivation rec {
stdenv.mkDerivation (finalAttrs: {
pname = "edbrowse";
version = "3.8.0";
src = fetchFromGitHub {
owner = "CMB";
repo = pname;
rev = "v${version}";
repo = "edbrowse";
rev = "v${finalAttrs.version}";
hash = "sha256-ZXxzQBAmu7kM3sjqg/rDLBXNucO8sFRFKXV8UxQVQZU=";
};
sourceRoot = "${finalAttrs.src.name}/src";
patches = [
# Fixes some small annoyances on src/makefile
./0001-small-fixes.patch
];
patchFlags = [
"-p2"
];
postPatch = ''
for file in $(find ./tools/ -type f ! -name '*.c'); do
patchShebangs $file
done
'';
nativeBuildInputs = [
pkg-config
which
];
buildInputs = [
curl
duktape
@ -37,27 +57,23 @@ stdenv.mkDerivation rec {
perl
quickjs
readline
] ++ lib.optionals withODBC [
unixODBC
];
patches = [
# Fixes some small annoyances on src/makefile
./0001-small-fixes.patch
];
postPatch = ''
substituteInPlace src/makefile --replace\
'-L/usr/local/lib/quickjs' '-L${quickjs}/lib/quickjs'
for i in $(find ./tools/ -type f ! -name '*.c'); do
patchShebangs $i
done
'';
makeFlags = [
"-C" "src"
"PREFIX=${placeholder "out"}"
];
meta = with lib; {
preBuild = ''
buildFlagsArray+=(
BUILD_EDBR_ODBC=${if withODBC then "on" else "off"}
EBDEMIN=on
QUICKJS_LDFLAGS="-L${quickjs}/lib/quickjs -lquickjs -ldl -latomic"
)
'';
meta = {
homepage = "https://edbrowse.org/";
description = "Command Line Editor Browser";
longDescription = ''
@ -71,10 +87,14 @@ stdenv.mkDerivation rec {
send email, with no human intervention whatsoever. edbrowse can also tap
into databases through odbc. It was primarily written by Karl Dahlke.
'';
license = licenses.gpl1Plus;
maintainers = with maintainers; [ schmitthenner vrthra equirosa ];
platforms = platforms.linux;
license = with lib.licenses; [ gpl1Plus ];
mainProgram = "edbrowse";
maintainers = with lib.maintainers; [
schmitthenner
equirosa
AndersonTorres
];
platforms = lib.platforms.linux;
};
}
})
# TODO: send the patch to upstream developers

View File

@ -1,34 +1,37 @@
{ lib
, stdenv
, emacs
, espeak-ng
, fetchFromGitHub
, makeWrapper
, emacs
, stdenv
, tcl
, tclx
, espeak-ng
}:
stdenv.mkDerivation rec {
stdenv.mkDerivation (finalAttrs: {
pname = "emacspeak";
version = "58.0";
version = "59.0";
src = fetchFromGitHub {
owner = "tvraman";
repo = pname;
rev = version;
hash= "sha256-5pWC17nvy3ZuG0bR//LqDVpKsH5hFSFf63Q33a1BfBk=";
repo = "emacspeak";
rev = finalAttrs.version;
hash = "sha256-npS/wlqI7nBde/2S/rzp79jdfYXIIhgsVs5VizxEDAQ=";
};
nativeBuildInputs = [
emacs
makeWrapper
];
buildInputs = [
espeak-ng
tcl
tclx
];
strictDeps = true;
preConfigure = ''
make config
'';
@ -44,17 +47,21 @@ stdenv.mkDerivation rec {
cp -a . "$d"
find "$d" \( -type d -or \( -type f -executable \) \) -execdir chmod 755 {} +
find "$d" -type f -not -executable -execdir chmod 644 {} +
makeWrapper ${emacs}/bin/emacs $out/bin/emacspeak \
makeWrapper ${lib.getExe emacs} $out/bin/emacspeak \
--set DTK_PROGRAM "${placeholder "out"}/share/emacs/site-lisp/emacspeak/servers/espeak" \
--set TCLLIBPATH "${tclx}/lib" \
--add-flags '-l "${placeholder "out"}/share/emacs/site-lisp/emacspeak/lisp/emacspeak-setup.elc"'
'';
meta = with lib; {
meta = {
homepage = "https://github.com/tvraman/emacspeak/";
description = "Emacs extension that provides spoken output";
license = licenses.gpl2Plus;
maintainers = [ maintainers.AndersonTorres ];
platforms = platforms.linux;
changelog = "https://github.com/tvraman/emacspeak/blob/${finalAttrs.src.rev}/etc/NEWS";
license = with lib.licenses; [ gpl2Plus ];
mainProgram = "emacspeak";
maintainers = with lib.maintainers; [ AndersonTorres ];
platforms = lib.platforms.linux;
# Emacspeak requires a minimal Emacs version; let's use the broken flag
broken = lib.versionOlder (lib.getVersion emacs) "29.1";
};
}
})

View File

@ -17,16 +17,16 @@
rustPlatform.buildRustPackage rec {
pname = "eza";
version = "0.18.4";
version = "0.18.5";
src = fetchFromGitHub {
owner = "eza-community";
repo = "eza";
rev = "v${version}";
hash = "sha256-G8Ow38vNSMMYINYhGp33rls5AV4EFZDEJhkNn5H64LA=";
hash = "sha256-L0FF9pN4WGCFpg2MPAvrKC/DwyWK6BWGxwYEpQBl9Rw=";
};
cargoHash = "sha256-A/EIkWSdMqSdrnjMTfIdg0scSBK/xsI5PPsOn+cRogA=";
cargoHash = "sha256-bZ2NzFpB9vpT0mB2LsETdmtzYAwNrpzBRoqmm4+13+0=";
nativeBuildInputs = [ cmake pkg-config installShellFiles pandoc ];
buildInputs = [ zlib ]

View File

@ -1,21 +1,25 @@
{ lib
, python3Packages
, fetchFromGitHub
, python3
}:
python3Packages.buildPythonApplication rec {
python3.pkgs.buildPythonApplication rec {
pname = "ffsubsync";
version = "0.4.25";
format = "pyproject";
pyproject = true;
src = fetchFromGitHub {
owner = "smacke";
repo = "ffsubsync";
rev = version;
rev = "refs/tags/${version}";
hash = "sha256-ZdKZeKfAUe/FXLOur9Btb5RgXewmy3EHunQphqlxpIc=";
};
propagatedBuildInputs = with python3Packages; [
nativeBuildInputs = with python3.pkgs; [
setuptools
];
propagatedBuildInputs = with python3.pkgs; [
auditok
charset-normalizer
faust-cchardet
@ -32,9 +36,13 @@ python3Packages.buildPythonApplication rec {
webrtcvad
];
nativeCheckInputs = with python3Packages; [ pytestCheckHook ];
nativeCheckInputs = with python3.pkgs; [
pytestCheckHook
];
pythonImportsCheck = [ "ffsubsync" ];
pythonImportsCheck = [
"ffsubsync"
];
meta = with lib; {
homepage = "https://github.com/smacke/ffsubsync";

View File

@ -6,13 +6,13 @@
}:
buildGoModule rec {
pname = "flottbot";
version = "0.13.0";
version = "0.13.1";
src = fetchFromGitHub {
owner = "target";
repo = "flottbot";
rev = version;
hash = "sha256-ldWE5QcLHyIqap5Qe6OTTIJZ1sshI+CVoJoRUxWHfxM=";
hash = "sha256-Fv4ZBCQA7gwt11ULIiyFwn+QgoMNgu+1TM9yy2Jz7og=";
};
patches = [
@ -24,7 +24,7 @@ buildGoModule rec {
})
];
vendorHash = "sha256-XRcTp3ZnoPupzI1kjoM4oF5+VlNJFV0Bu+WAwfRWl7g=";
vendorHash = "sha256-wOUQKFd2Xm/2rvLw8kw8Ejbcq/JUvup/BzZs0fllBYY=";
subPackages = [ "cmd/flottbot" ];

View 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

View File

@ -120,7 +120,7 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "fwupd";
version = "1.9.13";
version = "1.9.14";
# libfwupd goes to lib
# daemon, plug-ins and libfwupdplugin go to out
@ -131,7 +131,7 @@ stdenv.mkDerivation (finalAttrs: {
owner = "fwupd";
repo = "fwupd";
rev = finalAttrs.version;
hash = "sha256-h2e9MFTb777xbNRlzKWXc5GUdu/BHSkJTaogEE5byjo=";
hash = "sha256-pG4pRksHw8p8rz99UnLURP+ROE+P+ySt4IlfmyRc1CQ=";
};
patches = [

View 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";
};
}

View File

@ -1,29 +1,29 @@
{ lib
, stdenvNoCC
, fetchFromGitHub
, bash
, coreutils
, fetchFromGitHub
, findutils
, gettext
, gnused
, installShellFiles
, less
, ncurses
, nixos-option
, stdenvNoCC
, unixtools
, installShellFiles
, unstableGitUpdater
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "home-manager";
version = "unstable-2024-02-20";
version = "0-unstable-2024-02-24";
src = fetchFromGitHub {
name = "home-manager-source";
owner = "nix-community";
repo = "home-manager";
rev = "517601b37c6d495274454f63c5a483c8e3ca6be1";
hash = "sha256-tgZ38NummEdnXvxj4D0StHBzXgceAw8CptytHljH790=";
rev = "4ee704cb13a5a7645436f400b9acc89a67b9c08a";
hash = "sha256-MSbxtF3RThI8ANs/G4o1zIqF5/XlShHvwjl9Ws0QAbI=";
};
nativeBuildInputs = [
@ -40,6 +40,21 @@ stdenvNoCC.mkDerivation (finalAttrs: {
install -D -m755 home-manager/home-manager $out/bin/home-manager
install -D -m755 lib/bash/home-manager.sh $out/share/bash/home-manager.sh
installShellCompletion --bash --name home-manager.bash home-manager/completion.bash
installShellCompletion --fish --name home-manager.fish home-manager/completion.fish
installShellCompletion --zsh --name _home-manager home-manager/completion.zsh
for pofile in home-manager/po/*.po; do
lang="''${pofile##*/}"
lang="''${lang%%.*}"
mkdir -p "$out/share/locale/$lang/LC_MESSAGES"
msgfmt -o "$out/share/locale/$lang/LC_MESSAGES/home-manager.mo" "$pofile"
done
runHook postInstall
'';
postFixup = ''
substituteInPlace $out/bin/home-manager \
--subst-var-by bash "${bash}" \
--subst-var-by DEP_PATH "${
@ -57,19 +72,6 @@ stdenvNoCC.mkDerivation (finalAttrs: {
--subst-var-by HOME_MANAGER_LIB '${placeholder "out"}/share/bash/home-manager.sh' \
--subst-var-by HOME_MANAGER_PATH "${finalAttrs.src}" \
--subst-var-by OUT '${placeholder "out"}'
installShellCompletion --bash --name home-manager.bash home-manager/completion.bash
installShellCompletion --fish --name home-manager.fish home-manager/completion.fish
installShellCompletion --zsh --name _home-manager home-manager/completion.zsh
for pofile in home-manager/po/*.po; do
lang="''${pofile##*/}"
lang="''${lang%%.*}"
mkdir -p "$out/share/locale/$lang/LC_MESSAGES"
msgfmt -o "$out/share/locale/$lang/LC_MESSAGES/home-manager.mo" "$pofile"
done
runHook postInstall
'';
passthru.updateScript = unstableGitUpdater {
@ -86,8 +88,8 @@ stdenvNoCC.mkDerivation (finalAttrs: {
(non global) packages and dotfiles.
'';
license = lib.licenses.mit;
mainProgram = "home-manager";
maintainers = with lib.maintainers; [ AndersonTorres ];
platforms = lib.platforms.unix;
mainProgram = "home-manager";
};
})

View File

@ -15,12 +15,16 @@
, openclSupport ? false
, clblast
, blasSupport ? !rocmSupport && !cudaSupport
, openblas
, blasSupport ? builtins.all (x: !x) [ cudaSupport metalSupport openclSupport rocmSupport vulkanSupport ]
, pkg-config
, metalSupport ? stdenv.isDarwin && stdenv.isAarch64 && !openclSupport
, patchelf
, static ? true # if false will build the shared objects as well
, vulkanSupport ? false
, mpiSupport ? false # Increases the runtime closure by ~700M
, vulkan-headers
, vulkan-loader
, ninja
, git
, mpi
}:
let
@ -28,42 +32,18 @@ let
# otherwise we get libstdc++ errors downstream.
# cuda imposes an upper bound on the gcc version, e.g. the latest gcc compatible with cudaPackages_11 is gcc11
effectiveStdenv = if cudaSupport then cudaPackages.backendStdenv else stdenv;
in
effectiveStdenv.mkDerivation (finalAttrs: {
pname = "llama-cpp";
version = "2249";
inherit (lib) cmakeBool cmakeFeature optionals;
src = fetchFromGitHub {
owner = "ggerganov";
repo = "llama.cpp";
rev = "refs/tags/b${finalAttrs.version}";
hash = "sha256-ikJUToUbA60u/8azR6dPmPyodq/nQe5L2aotlYBclaE=";
};
postPatch = ''
substituteInPlace ./ggml-metal.m \
--replace '[bundle pathForResource:@"ggml-metal" ofType:@"metal"];' "@\"$out/bin/ggml-metal.metal\";"
'';
nativeBuildInputs = [ cmake ] ++ lib.optionals blasSupport [ pkg-config ] ++ lib.optionals cudaSupport [
cudaPackages.cuda_nvcc
# TODO: Replace with autoAddDriverRunpath
# once https://github.com/NixOS/nixpkgs/pull/275241 has been merged
cudaPackages.autoAddOpenGLRunpathHook
];
buildInputs = lib.optionals effectiveStdenv.isDarwin
(with darwin.apple_sdk.frameworks; [
darwinBuildInputs =
with darwin.apple_sdk.frameworks;
[
Accelerate
CoreGraphics
CoreVideo
Foundation
])
++ lib.optionals metalSupport (with darwin.apple_sdk.frameworks; [
MetalKit
])
++ lib.optionals cudaSupport (with cudaPackages; [
CoreGraphics
]
++ optionals metalSupport [ MetalKit ];
cudaBuildInputs = with cudaPackages; [
cuda_cccl.dev # <nv/target>
# A temporary hack for reducing the closure size, remove once cudaPackages
@ -74,65 +54,93 @@ effectiveStdenv.mkDerivation (finalAttrs: {
libcublas.dev
libcublas.lib
libcublas.static
]) ++ lib.optionals rocmSupport [
rocmPackages.clr
rocmPackages.hipblas
rocmPackages.rocblas
] ++ lib.optionals openclSupport [
clblast
] ++ lib.optionals blasSupport [
openblas
];
rocmBuildInputs = with rocmPackages; [
clr
hipblas
rocblas
];
vulkanBuildInputs = [
vulkan-headers
vulkan-loader
];
in
effectiveStdenv.mkDerivation (finalAttrs: {
pname = "llama-cpp";
version = "2294";
src = fetchFromGitHub {
owner = "ggerganov";
repo = "llama.cpp";
rev = "refs/tags/b${finalAttrs.version}";
hash = "sha256-uZi4Bj03PgfFV+jS5M+A1sMCWC/GMY5IyyrlR1b4Sh4=";
};
postPatch = ''
substituteInPlace ./ggml-metal.m \
--replace '[bundle pathForResource:@"ggml-metal" ofType:@"metal"];' "@\"$out/bin/ggml-metal.metal\";"
'';
nativeBuildInputs = [ cmake ninja pkg-config git ]
++ optionals cudaSupport [
cudaPackages.cuda_nvcc
# TODO: Replace with autoAddDriverRunpath
# once https://github.com/NixOS/nixpkgs/pull/275241 has been merged
cudaPackages.autoAddOpenGLRunpathHook
];
buildInputs = optionals effectiveStdenv.isDarwin darwinBuildInputs
++ optionals cudaSupport cudaBuildInputs
++ optionals mpiSupport mpi
++ optionals openclSupport [ clblast ]
++ optionals rocmSupport rocmBuildInputs
++ optionals vulkanSupport vulkanBuildInputs;
cmakeFlags = [
"-DLLAMA_NATIVE=OFF"
"-DLLAMA_BUILD_SERVER=ON"
# -march=native is non-deterministic; override with platform-specific flags if needed
(cmakeBool "LLAMA_NATIVE" false)
(cmakeBool "BUILD_SHARED_SERVER" true)
(cmakeBool "BUILD_SHARED_LIBS" true)
(cmakeBool "BUILD_SHARED_LIBS" true)
(cmakeBool "LLAMA_BLAS" blasSupport)
(cmakeBool "LLAMA_CLBLAST" openclSupport)
(cmakeBool "LLAMA_CUBLAS" cudaSupport)
(cmakeBool "LLAMA_HIPBLAS" rocmSupport)
(cmakeBool "LLAMA_METAL" metalSupport)
(cmakeBool "LLAMA_MPI" mpiSupport)
(cmakeBool "LLAMA_VULKAN" vulkanSupport)
]
++ lib.optionals metalSupport [
"-DCMAKE_C_FLAGS=-D__ARM_FEATURE_DOTPROD=1"
"-DLLAMA_METAL=ON"
]
++ lib.optionals cudaSupport [
"-DLLAMA_CUBLAS=ON"
]
++ lib.optionals rocmSupport [
"-DLLAMA_HIPBLAS=1"
"-DCMAKE_C_COMPILER=hipcc"
"-DCMAKE_CXX_COMPILER=hipcc"
"-DCMAKE_POSITION_INDEPENDENT_CODE=ON"
]
++ lib.optionals openclSupport [
"-DLLAMA_CLBLAST=ON"
]
++ lib.optionals blasSupport [
"-DLLAMA_BLAS=ON"
"-DLLAMA_BLAS_VENDOR=OpenBLAS"
]
++ lib.optionals (!static) [
(lib.cmakeBool "BUILD_SHARED_LIBS" true)
];
++ optionals cudaSupport [
(
with cudaPackages.flags;
cmakeFeature "CMAKE_CUDA_ARCHITECTURES" (
builtins.concatStringsSep ";" (map dropDot cudaCapabilities)
)
)
]
++ optionals rocmSupport [
(cmakeFeature "CMAKE_C_COMPILER" "hipcc")
(cmakeFeature "CMAKE_CXX_COMPILER" "hipcc")
installPhase = ''
runHook preInstall
# Build all targets supported by rocBLAS. When updating search for TARGET_LIST_ROCM
# in https://github.com/ROCmSoftwarePlatform/rocBLAS/blob/develop/CMakeLists.txt
# and select the line that matches the current nixpkgs version of rocBLAS.
# Should likely use `rocmPackages.clr.gpuTargets`.
"-DAMDGPU_TARGETS=gfx803;gfx900;gfx906:xnack-;gfx908:xnack-;gfx90a:xnack+;gfx90a:xnack-;gfx940;gfx941;gfx942;gfx1010;gfx1012;gfx1030;gfx1100;gfx1101;gfx1102"
]
++ optionals metalSupport [ (cmakeFeature "CMAKE_C_FLAGS" "-D__ARM_FEATURE_DOTPROD=1") ]
++ optionals blasSupport [ (cmakeFeature "LLAMA_BLAS_VENDOR" "OpenBLAS") ];
mkdir -p $out/bin
${lib.optionalString (!static) ''
mkdir $out/lib
cp libggml_shared.so $out/lib
cp libllama.so $out/lib
''}
for f in bin/*; do
test -x "$f" || continue
${lib.optionalString (!static) ''
${patchelf}/bin/patchelf "$f" --set-rpath "$out/lib"
''}
cp "$f" $out/bin/llama-cpp-"$(basename "$f")"
done
${lib.optionalString metalSupport "cp ./bin/ggml-metal.metal $out/bin/ggml-metal.metal"}
runHook postInstall
# upstream plans on adding targets at the cmakelevel, remove those
# additional steps after that
postInstall = ''
mv $out/bin/main $out/bin/llama
mv $out/bin/server $out/bin/llama-server
mkdir -p $out/include
cp $src/llama.h $out/include/
'';
passthru.updateScript = nix-update-script {
@ -144,9 +152,10 @@ effectiveStdenv.mkDerivation (finalAttrs: {
description = "Port of Facebook's LLaMA model in C/C++";
homepage = "https://github.com/ggerganov/llama.cpp/";
license = licenses.mit;
mainProgram = "llama-cpp-main";
maintainers = with maintainers; [ dit7ya elohmeier ];
broken = (effectiveStdenv.isDarwin && effectiveStdenv.isx86_64) || lib.count lib.id [openclSupport blasSupport rocmSupport cudaSupport] == 0;
mainProgram = "llama";
maintainers = with maintainers; [ dit7ya elohmeier philiptaron ];
platforms = platforms.unix;
badPlatforms = optionals (cudaSupport || openclSupport) lib.platforms.darwin;
broken = (metalSupport && !effectiveStdenv.isDarwin);
};
})

View 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 ];
};
}

View 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;
};
}

File diff suppressed because it is too large Load Diff

View File

@ -20,19 +20,19 @@
rustPlatform.buildRustPackage rec {
pname = "niri";
version = "0.1.1";
version = "0.1.2";
src = fetchFromGitHub {
owner = "YaLTeR";
repo = "niri";
rev = "v${version}";
hash = "sha256-+Y7dnq8gwVxefwvRnamqGneCTI4uUXgAo0SEffIvNB0=";
hash = "sha256-vO6ak5rT6ntBC20vYC36zcEcHv7Cki9y8A+c7ThfsUg=";
};
cargoLock = {
lockFile = ./Cargo.lock;
outputHashes = {
"smithay-0.3.0" = "sha256-TWq4L7Pe4/s0+hGjvTixoOFQ3P6tJXzV4/VgKcJ0tWU=";
"smithay-0.3.0" = "sha256-ZEWamojE5ZRlhPVv/DK2Mj+QIz7zudw9+AxFD7Onr9Q=";
};
};
@ -64,6 +64,22 @@ rustPlatform.buildRustPackage rec {
LIBCLANG_PATH = "${libclang.lib}/lib";
passthru.providedSessions = ["niri"];
postInstall = ''
mkdir -p $out/share/{systemd/user,wayland-sessions,xdg-desktop-portal}
cp ./resources/niri-session $out/bin/niri-session
cp ./resources/niri.service $out/share/systemd/user/niri.service
cp ./resources/niri-shutdown.target $out/share/systemd/user/niri-shutdown.target
cp ./resources/niri.desktop $out/share/wayland-sessions/niri.desktop
cp ./resources/niri-portals.conf $out/share/xdg-desktop-portal/niri-portals.conf
'';
postFixup = ''
sed -i "s#/usr#$out#" $out/share/systemd/user/niri.service
'';
meta = with lib; {
description = "A scrollable-tiling Wayland compositor";
homepage = "https://github.com/YaLTeR/niri";

View File

@ -4,7 +4,7 @@
fetchurl,
jdk21,
stdenv,
undmg
_7zz
}:
let
pname = "nosql-workbench";
@ -39,30 +39,19 @@ if stdenv.isDarwin then stdenv.mkDerivation {
sourceRoot = ".";
nativeBuildInputs = [ _7zz ];
buildInputs = [ jdk21 ];
# DMG file is using APFS which is unsupported by "undmg".
# Fix found: https://discourse.nixos.org/t/help-with-error-only-hfs-file-systems-are-supported-on-ventura/25873/8
# Instead, use "7zz" to extract the contents.
# "undmg" issue: https://github.com/matthewbauer/undmg/issues/4
unpackCmd = ''
echo "Creating temp directory"
mnt=$(TMPDIR=/tmp mktemp -d -t nix-XXXXXXXXXX)
runHook preUnpack
function finish {
echo "Ejecting temp directory"
/usr/bin/hdiutil detach $mnt -force
rm -rf $mnt
}
# Detach volume when receiving SIG "0"
trap finish EXIT
7zz x $curSrc
# Mount DMG file
echo "Mounting DMG file into \"$mnt\""
/usr/bin/hdiutil attach -nobrowse -mountpoint $mnt $curSrc
# Copy content to local dir for later use
echo 'Copying extracted content into "sourceRoot"'
cp -a $mnt/NoSQL\ Workbench.app $PWD/
runHook postUnpack
'';
installPhase = ''

View File

@ -6,13 +6,13 @@
python3.pkgs.buildPythonApplication rec {
pname = "oelint-adv";
version = "4.4.0";
version = "4.4.1";
format = "setuptools";
src = fetchPypi {
inherit version;
pname = "oelint_adv";
hash = "sha256-Sg7qn/yZUJEJdMmaGm27kyL+fKkUsZo25eExZPOem40=";
hash = "sha256-Yv0GCz0vZTVrnFjHFIl4XF/jbVD4DJ4J6V6+X5IllJ8=";
};
propagatedBuildInputs = with python3.pkgs; [

View File

@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "outils";
version = "0.10";
version = "0.13";
src = fetchFromGitHub {
owner = "leahneukirchen";
repo = pname;
repo = "outils";
rev = "v${version}";
sha256 = "sha256-xYjILa0Km57q/xNP+M34r29WLGC15tzUNoUgPzQTtIs=";
hash = "sha256-FokJytwQsbGsryBzyglpb1Hg3wti/CPQTOfIGIz9ThA=";
};
makeFlags = [ "PREFIX=$(out)" ];

View File

@ -2,14 +2,14 @@
stdenv.mkDerivation rec {
pname = "scitokens-cpp";
version = "1.1.0";
version = "1.1.1";
src = fetchFromGitHub {
owner = "scitokens";
repo = "scitokens-cpp";
rev = "v1.1.0";
hash = "sha256-g97Ah5Oob0iOvMQegpG/AACLZCW37kA0RpSIcKOyQnE=";
rev = "v1.1.1";
hash = "sha256-G3z9DYYWCNeA/rufNHQP3SwT5WS2AvUWm1rd8lx6XxA=";
};
nativeBuildInputs = [ cmake pkg-config ];

View File

@ -73,6 +73,7 @@ python3.pkgs.toPythonModule (python3.pkgs.buildPythonApplication rec {
homepage = "https://github.com/searxng/searxng";
description = "A fork of Searx, a privacy-respecting, hackable metasearch engine";
license = licenses.agpl3Plus;
mainProgram = "searxng-run";
maintainers = with maintainers; [ SuperSandro2000 _999eagle ];
};
})

View File

@ -2,7 +2,7 @@
, meson, ninja, pkg-config, wayland-scanner, scdoc
, libGL, wayland, libxkbcommon, pcre2, json_c, libevdev
, pango, cairo, libinput, gdk-pixbuf, librsvg
, wlroots_0_16, wayland-protocols, libdrm
, wlroots, wayland-protocols, libdrm
, nixosTests
# Used by the NixOS module:
, isNixOS ? false
@ -11,19 +11,16 @@
, trayEnabled ? systemdSupport
}:
let
wlroots = wlroots_0_16;
in
stdenv.mkDerivation (finalAttrs: {
pname = "sway-unwrapped";
version = "1.8.1";
version = "1.9";
inherit enableXWayland isNixOS systemdSupport trayEnabled;
src = fetchFromGitHub {
owner = "swaywm";
repo = "sway";
rev = finalAttrs.version;
hash = "sha256-WxnT+le9vneQLFPz2KoBduOI+zfZPhn1fKlaqbPL6/g=";
hash = "sha256-/6+iDkQfdLcL/pTJaqNc6QdP4SRVOYLjfOItEu/bZtg=";
};
patches = [
@ -34,11 +31,6 @@ stdenv.mkDerivation (finalAttrs: {
inherit swaybg;
})
(fetchpatch {
name = "LIBINPUT_CONFIG_ACCEL_PROFILE_CUSTOM.patch";
url = "https://github.com/swaywm/sway/commit/dee032d0a0ecd958c902b88302dc59703d703c7f.diff";
hash = "sha256-dx+7MpEiAkxTBnJcsT3/1BO8rYRfNLecXmpAvhqGMD0=";
})
] ++ lib.optionals (!finalAttrs.isNixOS) [
# References to /nix/store/... will get GC'ed which causes problems when
# copying the default configuration:

View File

@ -4,6 +4,7 @@
sway-unwrapped,
stdenv,
systemd,
wlroots_0_16,
# Used by the NixOS module:
isNixOS ? false,
enableXWayland ? true,
@ -18,6 +19,8 @@
systemdSupport
trayEnabled
;
wlroots = wlroots_0_16;
}).overrideAttrs (oldAttrs: rec {
pname = "swayfx-unwrapped";
version = "0.3.2";
@ -29,18 +32,6 @@
sha256 = "sha256-Gwewb0yDVhEBrefSSGDf1hLtpWcntzifPCPJQhqLqI0=";
};
# This patch was backported into SwayFX
# remove when next release is rebased on Sway 1.9
patches =
let
removePatches = [
"LIBINPUT_CONFIG_ACCEL_PROFILE_CUSTOM.patch"
];
in
builtins.filter
(patch: !builtins.elem (patch.name or null) removePatches)
(oldAttrs.patches or [ ]);
meta = with lib; {
description = "Sway, but with eye candy!";
homepage = "https://github.com/WillPower3309/swayfx";

View 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 ];
};
}

View File

@ -14,16 +14,16 @@
rustPlatform.buildRustPackage rec {
pname = "uiua";
version = "0.8.0";
version = "0.9.5";
src = fetchFromGitHub {
owner = "uiua-lang";
repo = "uiua";
rev = version;
hash = "sha256-JilYPIeJbVf9wgGpLTy8pbMwFRrW7Od+8y0tWwAXU84=";
hash = "sha256-629hJLSGf0LJ+P1j1b87RV6XGgsDaWif1a6+Eo3NmMw=";
};
cargoHash = "sha256-oXO2TBdKmVIpZD0jLI1CK9b48r3SwdeygcJoUG6HGXo=";
cargoHash = "sha256-ZRiDlsSZ5jjTrOrB/bg2xOcOTsCNFdP0jY0SwZ1zwGU=";
nativeBuildInputs = lib.optionals stdenv.isDarwin [
rustPlatform.bindgenHook
@ -41,6 +41,7 @@ rustPlatform.buildRustPackage rec {
buildFeatures = lib.optional audioSupport "audio";
passthru.updateScript = ./update.sh;
passthru.tests.run = runCommand "uiua-test-run" { nativeBuildInputs = [ uiua ]; } ''
uiua init
diff -U3 --color=auto <(uiua run main.ua) <(echo '"Hello, World!"')

7
pkgs/by-name/ui/uiua/update.sh Executable file
View 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

View File

@ -75,9 +75,9 @@ checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299"
[[package]]
name = "anstream"
version = "0.6.11"
version = "0.6.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6e2e1ebcb11de5c03c67de28a7df593d32191b44939c482e97702baaaa6ab6a5"
checksum = "96b09b5178381e0874812a9b157f7fe84982617e48f71f4e3235482775e5b540"
dependencies = [
"anstyle",
"anstyle-parse",
@ -147,9 +147,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711"
[[package]]
name = "assert_cmd"
version = "2.0.13"
version = "2.0.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "00ad3f3a942eee60335ab4342358c161ee296829e0d16ff42fc1d6cb07815467"
checksum = "ed72493ac66d5804837f480ab3766c72bdfab91a65e565fc54fa9e42db0073a8"
dependencies = [
"anstyle",
"bstr",
@ -1587,25 +1587,21 @@ dependencies = [
"data-encoding",
"distribution-filename",
"fs-err",
"fs2",
"goblin",
"indoc",
"mailparse",
"once_cell",
"pathdiff",
"pep440_rs",
"platform-host",
"platform-info",
"plist",
"pyo3",
"pypi-types",
"rayon",
"reflink-copy",
"regex",
"rustc-hash",
"serde",
"serde_json",
"sha2",
"target-lexicon",
"tempfile",
"thiserror",
"tracing",
@ -2193,6 +2189,12 @@ version = "1.0.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c"
[[package]]
name = "pathdiff"
version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd"
[[package]]
name = "pep440_rs"
version = "0.5.0"
@ -3189,18 +3191,18 @@ dependencies = [
[[package]]
name = "serde"
version = "1.0.196"
version = "1.0.197"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32"
checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2"
dependencies = [
"serde_derive",
]
[[package]]
name = "serde_derive"
version = "1.0.196"
version = "1.0.197"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67"
checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
dependencies = [
"proc-macro2",
"quote",
@ -3209,9 +3211,9 @@ dependencies = [
[[package]]
name = "serde_json"
version = "1.0.113"
version = "1.0.114"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "69801b70b1c3dac963ecb03a364ba0ceda9cf60c71cfe475e99864759c8b8a79"
checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0"
dependencies = [
"itoa",
"ryu",
@ -3496,9 +3498,9 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369"
[[package]]
name = "target-lexicon"
version = "0.12.13"
version = "0.12.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "69758bda2e78f098e4ccb393021a0963bb3442eac05f135c30f61b7370bbafae"
checksum = "e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f"
[[package]]
name = "task-local-extensions"
@ -4131,7 +4133,7 @@ checksum = "f00cc9702ca12d3c81455259621e676d0f7251cec66a21e98fe2e9a37db93b2a"
[[package]]
name = "uv"
version = "0.1.11"
version = "0.1.12"
dependencies = [
"anstream",
"anyhow",
@ -4151,6 +4153,7 @@ dependencies = [
"fs-err",
"futures",
"gourgeist",
"indexmap 2.2.3",
"indicatif",
"indoc",
"insta",
@ -4493,12 +4496,15 @@ dependencies = [
"pep508_rs",
"platform-tags",
"pypi-types",
"pyproject-toml",
"rayon",
"requirements-txt",
"rustc-hash",
"serde",
"tempfile",
"thiserror",
"tokio",
"toml",
"tracing",
"url",
"uv-cache",
@ -4518,9 +4524,11 @@ version = "0.0.1"
dependencies = [
"anyhow",
"cache-key",
"configparser",
"fs-err",
"indoc",
"insta",
"install-wheel-rs",
"itertools 0.12.1",
"once_cell",
"pep440_rs",

View File

@ -1,31 +1,25 @@
{ lib
, cargo
, cmake
, darwin
, fetchFromGitHub
, libgit2
, openssl
, pkg-config
, python3
, rustPlatform
, rustc
, stdenv
, zlib
}:
python3.pkgs.buildPythonApplication rec {
rustPlatform.buildRustPackage rec {
pname = "uv";
version = "0.1.11";
pyproject = true;
version = "0.1.12";
src = fetchFromGitHub {
owner = "astral-sh";
repo = "uv";
rev = version;
hash = "sha256-0J6m/DgalYA+GGmgjFrNoo9KAv6WgMcx+gasgqG5v1Q=";
hash = "sha256-tM8NX4BPGm8Xxlau+qpKSljTdSJutipsYFsZAdtmZuo=";
};
cargoDeps = rustPlatform.importCargoLock {
cargoLock = {
lockFile = ./Cargo.lock;
outputHashes = {
"async_zip-0.0.16" = "sha256-M94ceTCtyQc1AtPXYrVGplShQhItqZZa/x5qLiL+gs0=";
@ -34,25 +28,20 @@ python3.pkgs.buildPythonApplication rec {
};
nativeBuildInputs = [
cargo
cmake
pkg-config
rustPlatform.cargoSetupHook
rustPlatform.maturinBuildHook
rustc
];
buildInputs = [
libgit2
openssl
zlib
] ++ lib.optionals stdenv.isDarwin [
darwin.apple_sdk.frameworks.SystemConfiguration
];
dontUseCmakeConfigure = true;
cargoBuildFlags = [ "--package" "uv" ];
pythonImportsCheck = [ "uv" ];
# Tests require network access
doCheck = false;
env = {
OPENSSL_NO_VENDOR = true;
@ -61,7 +50,7 @@ python3.pkgs.buildPythonApplication rec {
meta = with lib; {
description = "An extremely fast Python package installer and resolver, written in Rust";
homepage = "https://github.com/astral-sh/uv";
changelog = "https://github.com/astral-sh/uv/releases/tag/${version}";
changelog = "https://github.com/astral-sh/uv/blob/${src.rev}/CHANGELOG.md";
license = with licenses; [ asl20 mit ];
maintainers = with maintainers; [ marsam ];
mainProgram = "uv";

View File

@ -1,8 +1,4 @@
{ lib
, stdenv
, pkgsBuildBuild
, fetchurl
, fetchpatch
, SDL
, SDL_image
, a52dec
@ -11,6 +7,8 @@
, avahi
, dbus
, faad2
, fetchpatch
, fetchurl
, ffmpeg
, flac
, fluidsynth
@ -48,6 +46,7 @@
, libpulseaudio
, libraw1394
, librsvg
, libsForQt5
, libsamplerate
, libspatialaudio
, libssh2
@ -65,23 +64,20 @@
, ncurses
, perl
, pkg-config
, pkgsBuildBuild
, protobuf
, qtbase
, qtsvg
, qtwayland
, qtx11extras
, removeReferencesTo
, samba
, schroedinger
, speex
, srt
, stdenv
, systemd
, taglib
, unzip
, wayland
, wayland-protocols
, wrapGAppsHook
, wrapQtAppsHook
, xcbutilkeysyms
, zlib
@ -98,7 +94,7 @@
# networking.firewall.allowedTCPPorts = [ 8010 ];
let
inherit (lib) optionalString optional optionals;
inherit (lib) optionalString optionals;
in
stdenv.mkDerivation (finalAttrs: {
pname = "${optionalString onlyLibVLC "lib"}vlc";
@ -118,8 +114,8 @@ stdenv.mkDerivation (finalAttrs: {
unzip
wrapGAppsHook
]
++ optional chromecastSupport protobuf
++ optionals withQt5 [ wrapQtAppsHook ]
++ optionals chromecastSupport [ protobuf ]
++ optionals withQt5 [ libsForQt5.wrapQtAppsHook ]
++ optionals waylandSupport [
wayland
wayland-protocols
@ -191,8 +187,8 @@ stdenv.mkDerivation (finalAttrs: {
xcbutilkeysyms
zlib
]
++ optional (!stdenv.hostPlatform.isAarch && !onlyLibVLC) live555
++ optional jackSupport libjack2
++ optionals (!stdenv.hostPlatform.isAarch && !onlyLibVLC) [ live555 ]
++ optionals jackSupport [ libjack2 ]
++ optionals chromecastSupport [ libmicrodns protobuf ]
++ optionals skins2Support [
freetype
@ -201,8 +197,12 @@ stdenv.mkDerivation (finalAttrs: {
libXpm
]
++ optionals waylandSupport [ wayland wayland-protocols ]
++ optionals withQt5 [ qtbase qtsvg qtx11extras ]
++ optional (waylandSupport && withQt5) qtwayland;
++ optionals withQt5 (with libsForQt5; [
qtbase
qtsvg
qtx11extras
])
++ optionals (waylandSupport && withQt5) [ libsForQt5.qtwayland ];
env = {
# vlc depends on a c11-gcc wrapper script which we don't have so we need to
@ -218,51 +218,37 @@ stdenv.mkDerivation (finalAttrs: {
# upstream issue: https://code.videolan.org/videolan/vlc/-/issues/25473
(fetchpatch {
url = "https://code.videolan.org/videolan/vlc/uploads/eb1c313d2d499b8a777314f789794f9d/0001-Add-lssl-and-lcrypto-to-liblive555_plugin_la_LIBADD.patch";
sha256 = "0kyi8q2zn2ww148ngbia9c7qjgdrijf4jlvxyxgrj29cb5iy1kda";
hash = "sha256-qs3gY1ksCZlf931TSZyMuT2JD0sqrmcRCZwL+wVG0U8=";
})
];
postPatch = ''
substituteInPlace modules/text_renderer/freetype/platform_fonts.h --replace \
/usr/share/fonts/truetype/freefont ${freefont_ttf}/share/fonts/truetype
'' + lib.optionalString (!stdenv.hostPlatform.canExecute stdenv.buildPlatform) ''
# Upstream luac can't cross compile, so we have to install the lua
# sources, not bytecode:
# https://www.lua.org/wshop13/Jericke.pdf#page=39
substituteInPlace share/Makefile.am --replace $'.luac \\\n' $'.lua \\\n'
substituteInPlace modules/text_renderer/freetype/platform_fonts.h \
--replace \
/usr/share/fonts/truetype/freefont \
${freefont_ttf}/share/fonts/truetype
''
# Upstream luac can't cross compile, so we have to install the lua sources
# instead of bytecode:
# https://www.lua.org/wshop13/Jericke.pdf#page=39
+ lib.optionalString (!stdenv.hostPlatform.canExecute stdenv.buildPlatform) ''
substituteInPlace share/Makefile.am \
--replace $'.luac \\\n' $'.lua \\\n'
'';
enableParallelBuilding = true;
dontWrapGApps = true; # to prevent double wrapping of Qtwrap and Gwrap
preFixup = ''
qtWrapperArgs+=("''${gappsWrapperArgs[@]}")
'';
# - Touch plugins (plugins cache keyed off mtime and file size:
# https://github.com/NixOS/nixpkgs/pull/35124#issuecomment-370552830
# - Remove references to the Qt development headers (used in error messages)
#
# pkgsBuildBuild is used here because buildPackages.libvlc somehow
# depends on a qt5.qttranslations that doesn't build, even though it
# should be the same as pkgsBuildBuild.qt5.qttranslations.
postFixup = ''
find $out/lib/vlc/plugins -exec touch -d @1 '{}' ';'
${if stdenv.buildPlatform.canExecute stdenv.hostPlatform then "$out" else pkgsBuildBuild.libvlc}/lib/vlc/vlc-cache-gen $out/vlc/plugins
'' + optionalString withQt5 ''
remove-references-to -t "${qtbase.dev}" $out/lib/vlc/plugins/gui/libqt_plugin.so
'';
# Most of the libraries are auto-detected so we don't need to set a bunch of
# "--enable-foo" flags here
configureFlags = [
"--enable-srt" # Explicit enable srt to ensure the patch is applied.
"--with-kde-solid=$out/share/apps/solid/actions"
]
++ optional onlyLibVLC "--disable-vlc"
++ optional skins2Support "--enable-skins2"
++ optional waylandSupport "--enable-wayland"
++ optionals onlyLibVLC [ "--disable-vlc" ]
++ optionals skins2Support [ "--enable-skins2" ]
++ optionals waylandSupport [ "--enable-wayland" ]
++ optionals chromecastSupport [
"--enable-sout"
"--enable-chromecast"
@ -285,6 +271,24 @@ stdenv.mkDerivation (finalAttrs: {
cp -R share/hrtfs $out/share/vlc
'';
preFixup = ''
qtWrapperArgs+=("''${gappsWrapperArgs[@]}")
'';
# - Touch plugins (plugins cache keyed off mtime and file size:
# https://github.com/NixOS/nixpkgs/pull/35124#issuecomment-370552830
# - Remove references to the Qt development headers (used in error messages)
#
# pkgsBuildBuild is used here because buildPackages.libvlc somehow
# depends on a qt5.qttranslations that doesn't build, even though it
# should be the same as pkgsBuildBuild.qt5.qttranslations.
postFixup = ''
find $out/lib/vlc/plugins -exec touch -d @1 '{}' ';'
${if stdenv.buildPlatform.canExecute stdenv.hostPlatform then "$out" else pkgsBuildBuild.libvlc}/lib/vlc/vlc-cache-gen $out/vlc/plugins
'' + optionalString withQt5 ''
remove-references-to -t "${libsForQt5.qtbase.dev}" $out/lib/vlc/plugins/gui/libqt_plugin.so
'';
meta = {
description = "Cross-platform media player and streaming server";
homepage = "https://www.videolan.org/vlc/";

View File

@ -6,13 +6,13 @@
# Testing this requires a Thinkpad or the presence of /proc/acpi/ibm/fan
stdenv.mkDerivation (finalAttrs: {
pname = "zcfan";
version = "1.2.1";
version = "1.3.0";
src = fetchFromGitHub {
owner = "cdown";
repo = "zcfan";
rev = finalAttrs.version;
hash = "sha256-XngchR06HP2iExKJVe+XKBDgsv98AEYWOkl1a/Hktgs=";
hash = "sha256-zpYQEHXt8LBNX+luM4YxP0dKH+hb2c8Z0BEeGP09oZo=";
};
postPatch = ''

View File

@ -5,11 +5,11 @@
stdenvNoCC.mkDerivation rec {
pname = "lxgw-neoxihei";
version = "1.110";
version = "1.120";
src = fetchurl {
url = "https://github.com/lxgw/LxgwNeoXiHei/releases/download/v${version}/LXGWNeoXiHei.ttf";
hash = "sha256-6KeKz8lJBCc/sc5pCkS2mSwMAQ8XpwDIMCjSbVXuyH4=";
hash = "sha256-rQ+gbmUYr+iWm5WCUSqb+8+aMD5JZUsbPXZ0Nio2cl8=";
};
dontUnpack = true;

View File

@ -3,12 +3,12 @@
let
generator = pkgsBuildBuild.buildGoModule rec {
pname = "v2ray-domain-list-community";
version = "20240217140518";
version = "20240221053250";
src = fetchFromGitHub {
owner = "v2fly";
repo = "domain-list-community";
rev = version;
hash = "sha256-7Voepx8+tFWpugtUKoRJ55nSX3cWtXgPhYiNDhE3OGs=";
hash = "sha256-oPffStUx2CD4gfSNIYqCzLLj+IAhm3aGQknRsrauD+k=";
};
vendorHash = "sha256-azvMUi8eLNoNofRa2X4SKTTiMd6aOyO6H/rOiKjkpIY=";
meta = with lib; {

View File

@ -6,13 +6,13 @@
stdenvNoCC.mkDerivation (self: {
name = "alacritty-theme";
version = "unstable-2024-02-25";
version = "unstable-2024-02-28";
src = fetchFromGitHub {
owner = "alacritty";
repo = "alacritty-theme";
rev = "07c10441dae4d0490145a0f40178f8846b24e800";
hash = "sha256-aZlsKbFcm1bswx7k0cjwhj1MudR0Q0rD8sdHa7kQ0rY=";
rev = "4aefb7c079721474078b28bbf9f582b592749ca6";
hash = "sha256-+35S6eQkxLBuS/fDKD5bglQDIuz2xeEc5KSaK6k7IjI=";
};
dontConfigure = true;

View File

@ -9,13 +9,13 @@
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "suru-icon-theme";
version = "20.05.1";
version = "2024.02.1";
src = fetchFromGitLab {
owner = "ubports";
repo = "development/core/suru-icon-theme";
rev = finalAttrs.version;
hash = "sha256-jJ6J+SjSABZCgnCF9cIFBpeSXX2LMnV+nPLPpoXQv30=";
hash = "sha256-7T9FILhZrs5bbdBEV/FszCOwUd/C1Rl9tbDt77SIzRk=";
};
strictDeps = true;
@ -50,6 +50,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
meta = with lib; {
description = "Suru Icon Theme for Lomiri Operating Environment";
homepage = "https://gitlab.com/ubports/development/core/suru-icon-theme";
changelog = "https://gitlab.com/ubports/development/core/suru-icon-theme/-/blob/${finalAttrs.version}/ChangeLog";
license = licenses.cc-by-sa-30;
maintainers = teams.lomiri.members;
platforms = platforms.all;

View File

@ -57,7 +57,7 @@ let
# Defined in gdk-pixbuf setup hook
findGdkPixbufLoaders "${librsvg}"
${if to then "makeWrapper ${from} ${to}" else "wrapProgram ${from}"} \
${if (builtins.isString to) then "makeWrapper ${from} ${to}" else "wrapProgram ${from}"} \
--set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
--argv0 factor \
--prefix LD_LIBRARY_PATH : /run/opengl-driver/lib:${lib.makeLibraryPath runtimeLibs} \
@ -72,7 +72,7 @@ let
passthru.runtimeLibs = runtimeLibs ++ interpreter.runtimeLibs;
}
(wrapFactorScript {
from = "${interpreter}/lib/factor/.factor.wrapped";
from = "${interpreter}/lib/factor/.factor-wrapped";
to = "$out/bin/factor";
runtimeLibs = (runtimeLibs ++ interpreter.runtimeLibs);
});

View File

@ -1,20 +1,16 @@
{ lib
, stdenv
, fetchFromRepoOrCz
, copyPkgconfigItems
, fetchFromRepoOrCz
, makePkgconfigItem
, perl
, stdenv
, texinfo
, which
}:
let
# avoid "malformed 32-bit x.y.z" error on mac when using clang
isCleanVer = version: builtins.match "^[0-9]\\.+[0-9]+\\.[0-9]+" version != null;
in
stdenv.mkDerivation rec {
stdenv.mkDerivation (finalAttrs: {
pname = "tcc";
version = "unstable-2022-07-15";
version = "0.9.27-unstable-2022-07-15";
src = fetchFromRepoOrCz {
repo = "tinycc";
@ -22,6 +18,8 @@ stdenv.mkDerivation rec {
hash = "sha256-jY0P2GErmo//YBaz6u4/jj/voOE3C2JaIDRmo0orXN8=";
};
outputs = [ "out" "info" "man" ];
nativeBuildInputs = [
copyPkgconfigItems
perl
@ -29,23 +27,27 @@ stdenv.mkDerivation rec {
which
];
pkgconfigItems = [
(makePkgconfigItem rec {
strictDeps = true;
pkgconfigItems = let
libtcc-pcitem = {
name = "libtcc";
inherit version;
cflags = [ "-I${variables.includedir}" ];
inherit (finalAttrs) version;
cflags = [ "-I${libtcc-pcitem.variables.includedir}" ];
libs = [
"-L${variables.libdir}"
"-Wl,--rpath ${variables.libdir}"
"-L${libtcc-pcitem.variables.libdir}"
"-Wl,--rpath ${libtcc-pcitem.variables.libdir}"
"-ltcc"
];
variables = rec {
variables = {
prefix = "${placeholder "out"}";
includedir = "${prefix}/include";
libdir = "${prefix}/lib";
includedir = "${placeholder "dev"}/include";
libdir = "${placeholder "lib"}/lib";
};
description = "Tiny C compiler backend";
})
};
in [
(makePkgconfigItem libtcc-pcitem)
];
postPatch = ''
@ -64,17 +66,19 @@ stdenv.mkDerivation rec {
"--config-musl"
];
preConfigure = ''
preConfigure = let
# To avoid "malformed 32-bit x.y.z" error on mac when using clang
versionIsClean = version:
builtins.match "^[0-9]\\.+[0-9]+\\.[0-9]+" version != null;
in ''
${
if stdenv.isDarwin && ! isCleanVer version
if stdenv.isDarwin && ! versionIsClean finalAttrs.version
then "echo 'not overwriting VERSION since it would upset ld'"
else "echo ${version} > VERSION"
else "echo ${finalAttrs.version} > VERSION"
}
configureFlagsArray+=("--elfinterp=$(< $NIX_CC/nix-support/dynamic-linker)")
'';
outputs = [ "out" "info" "man" ];
# Test segfault for static build
doCheck = !stdenv.hostPlatform.isStatic;
@ -84,7 +88,7 @@ stdenv.mkDerivation rec {
rm tests/tests2/{108,114}*
'';
meta = with lib; {
meta = {
homepage = "https://repo.or.cz/tinycc.git";
description = "Small, fast, and embeddable C compiler and interpreter";
longDescription = ''
@ -108,13 +112,13 @@ stdenv.mkDerivation rec {
With libtcc, you can use TCC as a backend for dynamic code generation.
'';
license = licenses.lgpl21Only;
maintainers = with maintainers; [ joachifm AndersonTorres ];
platforms = platforms.unix;
license = with lib.licenses; [ lgpl21Only ];
mainProgram = "tcc";
maintainers = with lib.maintainers; [ joachifm AndersonTorres ];
platforms = lib.platforms.unix;
# https://www.mail-archive.com/tinycc-devel@nongnu.org/msg10199.html
broken = stdenv.isDarwin && stdenv.isAarch64;
};
}
})
# TODO: more multiple outputs
# TODO: self-compilation
# TODO: provide expression for stable release

View File

@ -28,7 +28,6 @@ let
rev = googleapisRev;
hash = "sha256-4Qiz0pBgW3OZi+Z8Zq6k9E94+8q6/EFMwPh8eQxDjdI=";
};
excludedTests = builtins.fromTOML (builtins.readFile ./skipped_tests.toml);
in
stdenv.mkDerivation rec {
pname = "google-cloud-cpp";
@ -106,16 +105,17 @@ stdenv.mkDerivation rec {
lib.optionalString doInstallCheck (
lib.optionalString (!staticOnly) ''
export ${ldLibraryPathName}=${lib.concatStringsSep ":" additionalLibraryPaths}
'' + ''
export GTEST_FILTER="-${lib.concatStringsSep ":" excludedTests.cases}"
''
);
installCheckPhase = lib.optionalString doInstallCheck ''
runHook preInstallCheck
# disable tests that contact the internet
ctest --exclude-regex '^(${lib.concatStringsSep "|" excludedTests.whole})'
# Disable any integration tests, which need to contact the internet.
# Also disable the `storage_benchmark_*` tests.
# With Protobuf < 23.x they require -DGOOGLE_CLOUD_CPP_ENABLE_CTYPE_WORKAROUND=ON.
# With Protobuf >= 23.x they require They require setting -DGOOGLE_CLOUD_CPP_ENABLE_CTYPE_WORKAROUND=OFF
ctest --label-exclude integration-test --exclude-regex storage_benchmarks_
runHook postInstallCheck
'';

View File

@ -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"
]

View File

@ -828,14 +828,14 @@ rec {
th_TH = th-th;
th-th = mkDict {
pname = "hunspell-dict-th-th";
version = "experimental-2023-03-01";
version = "experimental-2024-02-27";
dictFileName = "th_TH";
readmeFile = "README.md";
src = fetchFromGitHub {
owner = "SyafiqHadzir";
repo = "Hunspell-TH";
rev = "9c09f1b7c0eb4d04b9f6f427901686c5c3d9fa54";
sha256 = "1wszpnbgj31k72x1vvcfkzcpmxsncdpqsi3zagah7swilpi7cqm4";
rev = "62d35f9211ca1eb4c367eac2ae57193efe6e88d2";
sha256 = "sha256-t4m4u+qIgJPrKz58Cu2Q+knYm/+cvrNLzQsiiSRTB1A=";
};
meta = with lib; {
description = "Hunspell dictionary for Central Thai (Thailand)";

View File

@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "libgbinder";
version = "1.1.36";
version = "1.1.37";
src = fetchFromGitHub {
owner = "mer-hybris";
repo = pname;
rev = version;
sha256 = "sha256-QTlOiZG6qpNeicMJpOTMSTk2WwKbOzkaLulgmsxYaVI=";
sha256 = "sha256-/XxWOaT2f6+0apv0NzMsPoYBf3GLuaXyPkmTMTDtOes=";
};
outputs = [ "out" "dev" ];

View File

@ -32,6 +32,11 @@ stdenv.mkDerivation rec {
sha256 = "+h0dKLECtvfsxwD5aRTIgiNI9jG/tortUJYFiYMe60g=";
};
depsBuildBuild = [
# required to find native gi-docgen when cross compiling
pkg-config
];
nativeBuildInputs = [
gi-docgen
meson

View File

@ -42,7 +42,7 @@ let
qtModule = callPackage ./qtModule.nix { };
qtbase = callPackage ./modules/qtbase.nix {
withGtk3 = true;
withGtk3 = !stdenv.hostPlatform.isMinGW;
inherit (srcs.qtbase) src version;
inherit developerBuild;
inherit (darwin.apple_sdk_11_0.frameworks)
@ -69,47 +69,49 @@ let
];
};
env = callPackage ./qt-env.nix { };
full = callPackage ({ env, qtbase }: env "qt-full-${qtbase.version}"
# `with self` is ok to use here because having these spliced is unnecessary
( with self;[
qt3d
qt5compat
qtcharts
qtconnectivity
qtdatavis3d
qtdeclarative
qtdoc
qtgraphs
qtgrpc
qthttpserver
qtimageformats
qtlanguageserver
qtlocation
qtlottie
qtmultimedia
qtmqtt
qtnetworkauth
qtpositioning
qtsensors
qtserialbus
qtserialport
qtshadertools
qtspeech
qtquick3d
qtquick3dphysics
qtquickeffectmaker
qtquicktimeline
qtremoteobjects
qtsvg
qtscxml
qttools
qttranslations
qtvirtualkeyboard
qtwebchannel
qtwebengine
qtwebsockets
qtwebview
] ++ lib.optionals (!stdenv.hostPlatform.isDarwin) [ qtwayland libglvnd ])) { };
full = callPackage
({ env, qtbase }: env "qt-full-${qtbase.version}"
# `with self` is ok to use here because having these spliced is unnecessary
(with self;[
qt3d
qt5compat
qtcharts
qtconnectivity
qtdatavis3d
qtdeclarative
qtdoc
qtgraphs
qtgrpc
qthttpserver
qtimageformats
qtlanguageserver
qtlocation
qtlottie
qtmultimedia
qtmqtt
qtnetworkauth
qtpositioning
qtsensors
qtserialbus
qtserialport
qtshadertools
qtspeech
qtquick3d
qtquick3dphysics
qtquickeffectmaker
qtquicktimeline
qtremoteobjects
qtsvg
qtscxml
qttools
qttranslations
qtvirtualkeyboard
qtwebchannel
qtwebengine
qtwebsockets
qtwebview
] ++ lib.optionals (!stdenv.isDarwin) [ qtwayland libglvnd ]))
{ };
qt3d = callPackage ./modules/qt3d.nix { };
qt5compat = callPackage ./modules/qt5compat.nix { };
@ -162,11 +164,14 @@ let
GameController ImageCaptureCore LocalAuthentication
MediaAccessibility MediaPlayer MetalKit Network OpenDirectory Quartz
ReplayKit SecurityInterface Vision;
qtModule = callPackage ({ qtModule }: qtModule.override {
stdenv = if stdenv.hostPlatform.isDarwin
then overrideSDK stdenv { darwinMinVersion = "10.13"; darwinSdkVersion = "11.0"; }
else stdenv;
}) { };
qtModule = callPackage
({ qtModule }: qtModule.override {
stdenv =
if stdenv.isDarwin
then overrideSDK stdenv { darwinMinVersion = "10.13"; darwinSdkVersion = "11.0"; }
else stdenv;
})
{ };
xcbuild = buildPackages.xcbuild.override {
productBuildVer = "20A2408";
};
@ -176,21 +181,25 @@ let
inherit (darwin.apple_sdk_11_0.frameworks) WebKit;
};
wrapQtAppsHook = callPackage ({ makeBinaryWrapper }: makeSetupHook
{
name = "wrap-qt6-apps-hook";
propagatedBuildInputs = [ makeBinaryWrapper ];
} ./hooks/wrap-qt-apps-hook.sh) { };
wrapQtAppsHook = callPackage
({ makeBinaryWrapper }: makeSetupHook
{
name = "wrap-qt6-apps-hook";
propagatedBuildInputs = [ makeBinaryWrapper ];
} ./hooks/wrap-qt-apps-hook.sh)
{ };
qmake = callPackage ({ qtbase }: makeSetupHook
{
name = "qmake6-hook";
propagatedBuildInputs = [ qtbase.dev ];
substitutions = {
inherit debug;
fix_qmake_libtool = ./hooks/fix-qmake-libtool.sh;
};
} ./hooks/qmake-hook.sh) { };
qmake = callPackage
({ qtbase }: makeSetupHook
{
name = "qmake6-hook";
propagatedBuildInputs = [ qtbase.dev ];
substitutions = {
inherit debug;
fix_qmake_libtool = ./hooks/fix-qmake-libtool.sh;
};
} ./hooks/qmake-hook.sh)
{ };
} // lib.optionalAttrs config.allowAliases {
# Convert to a throw on 03-01-2023 and backport the change.
# Warnings show up in various cli tool outputs, throws do not.
@ -203,12 +212,13 @@ let
f = addPackages;
};
bootstrapScope = baseScope.overrideScope(final: prev: {
bootstrapScope = baseScope.overrideScope (final: prev: {
qtbase = prev.qtbase.override { qttranslations = null; };
qtdeclarative = null;
});
finalScope = baseScope.overrideScope(final: prev: {
finalScope = baseScope.overrideScope (final: prev: {
qttranslations = bootstrapScope.qttranslations;
});
in finalScope
in
finalScope

View File

@ -4,6 +4,7 @@
, patches ? [ ]
, version
, coreutils
, buildPackages
, bison
, flex
, gdb
@ -79,6 +80,8 @@
, EventKit
, GSS
, MetalKit
# mingw
, pkgsBuildBuild
# optional dependencies
, cups
, libmysqlclient
@ -96,6 +99,7 @@
let
debugSymbols = debug || developerBuild;
isCrossBuild = !stdenv.buildPlatform.canExecute stdenv.hostPlatform;
in
stdenv.mkDerivation rec {
pname = "qtbase";
@ -110,7 +114,6 @@ stdenv.mkDerivation rec {
openssl
sqlite
zlib
unixODBC
# Text rendering
harfbuzz
icu
@ -119,14 +122,16 @@ stdenv.mkDerivation rec {
libpng
pcre2
pcre
libproxy
zstd
double-conversion
libb2
md4c
double-conversion
] ++ lib.optionals (!stdenv.hostPlatform.isMinGW) [
libproxy
dbus
glib
# unixODBC drivers
unixODBC
unixODBCDrivers.psql
unixODBCDrivers.sqlite
unixODBCDrivers.mariadb
@ -174,11 +179,16 @@ stdenv.mkDerivation rec {
EventKit
GSS
MetalKit
] ++ lib.optional libGLSupported libGL;
] ++ lib.optionals libGLSupported [
libGL
] ++ lib.optionals stdenv.hostPlatform.isMinGW [
vulkan-headers
vulkan-loader
];
buildInputs = [
buildInputs = lib.optionals (lib.meta.availableOn stdenv.hostPlatform at-spi2-core) [
at-spi2-core
] ++ lib.optionals (!stdenv.hostPlatform.isDarwin) [
] ++ lib.optionals (lib.meta.availableOn stdenv.hostPlatform libinput) [
libinput
] ++ lib.optionals (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isx86_64) [
AppKit
@ -186,9 +196,9 @@ stdenv.mkDerivation rec {
]
++ lib.optional withGtk3 gtk3
++ lib.optional developerBuild gdb
++ lib.optional (cups != null) cups
++ lib.optional (libmysqlclient != null) libmysqlclient
++ lib.optional (postgresql != null) postgresql;
++ lib.optional (cups != null && lib.meta.availableOn stdenv.hostPlatform cups) cups
++ lib.optional (libmysqlclient != null && !stdenv.hostPlatform.isMinGW) libmysqlclient
++ lib.optional (postgresql != null && lib.meta.availableOn stdenv.hostPlatform postgresql) postgresql;
nativeBuildInputs = [ bison flex gperf lndir perl pkg-config which cmake xmlstarlet ninja ]
++ lib.optionals stdenv.hostPlatform.isDarwin [ moveBuildTree ];
@ -203,7 +213,7 @@ stdenv.mkDerivation rec {
# https://bugreports.qt.io/browse/QTBUG-97568
postPatch = ''
substituteInPlace src/corelib/CMakeLists.txt --replace-fail "/bin/ls" "${coreutils}/bin/ls"
substituteInPlace src/corelib/CMakeLists.txt --replace-fail "/bin/ls" "${buildPackages.coreutils}/bin/ls"
'' + lib.optionalString stdenv.hostPlatform.isDarwin ''
substituteInPlace cmake/QtPublicAppleHelpers.cmake --replace-fail "/usr/bin/xcrun" "${xcbuild}/bin/xcrun"
'';
@ -232,7 +242,11 @@ stdenv.mkDerivation rec {
] ++ lib.optionals stdenv.hostPlatform.isDarwin [
# error: 'path' is unavailable: introduced in macOS 10.15
"-DQT_FEATURE_cxx17_filesystem=OFF"
] ++ lib.optional (qttranslations != null) "-DINSTALL_TRANSLATIONSDIR=${qttranslations}/translations";
] ++ lib.optionals isCrossBuild [
"-DQT_HOST_PATH=${pkgsBuildBuild.qt6.qtbase}"
"-DQt6HostInfo_DIR=${pkgsBuildBuild.qt6.qtbase}/lib/cmake/Qt6HostInfo"
]
++ lib.optional (qttranslations != null && !isCrossBuild) "-DINSTALL_TRANSLATIONSDIR=${qttranslations}/translations";
env.NIX_LDFLAGS = toString (lib.optionals stdenv.hostPlatform.isDarwin [
# Undefined symbols for architecture arm64: "___gss_c_nt_hostbased_service_oid_desc"
@ -253,6 +267,8 @@ stdenv.mkDerivation rec {
dontStrip = debugSymbols;
dontWrapQtApps = true;
setupHook = ../hooks/qtbase-setup-hook.sh;
meta = with lib; {
@ -260,6 +276,6 @@ stdenv.mkDerivation rec {
description = "A cross-platform application framework for C++";
license = with licenses; [ fdl13Plus gpl2Plus lgpl21Plus lgpl3Plus ];
maintainers = with maintainers; [ milahu nickcao LunNova ];
platforms = platforms.unix;
platforms = platforms.unix ++ platforms.windows;
};
}

View File

@ -1,19 +1,19 @@
From f0c4d3860b75cb064d066045907622d536044096 Mon Sep 17 00:00:00 2001
From 6f0e6fe1e13ca5844a93d3b97111b7ece7e60f0f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Milan=20P=C3=A4ssler?= <me@pbb.lc>
Date: Sun, 10 May 2020 12:47:28 +0200
Subject: [PATCH 11/11] qtbase: derive plugin load path from PATH
---
src/corelib/kernel/qcoreapplication.cpp | 10 ++++++++++
1 file changed, 10 insertions(+)
src/corelib/kernel/qcoreapplication.cpp | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/src/corelib/kernel/qcoreapplication.cpp b/src/corelib/kernel/qcoreapplication.cpp
index a80efbb5622..8cf9e85da43 100644
index a80efbb5622..0d41dabeed3 100644
--- a/src/corelib/kernel/qcoreapplication.cpp
+++ b/src/corelib/kernel/qcoreapplication.cpp
@@ -2991,6 +2991,16 @@ QStringList QCoreApplication::libraryPathsLocked()
QStringList *app_libpaths = new QStringList;
coreappdata()->app_libpaths.reset(app_libpaths);
@@ -3032,6 +3032,15 @@ QStringList QCoreApplication::libraryPathsLocked()
app_libpaths->append(installPathPlugins);
}
+ // Add library paths derived from PATH
+ const QStringList paths = QFile::decodeName(qgetenv("PATH")).split(QStringLiteral(":"));
@ -24,10 +24,9 @@ index a80efbb5622..8cf9e85da43 100644
+ }
+ }
+
+
auto setPathsFromEnv = [&](QString libPathEnv) {
if (!libPathEnv.isEmpty()) {
QStringList paths = libPathEnv.split(QDir::listSeparator(), Qt::SkipEmptyParts);
// If QCoreApplication is not yet instantiated,
// make sure we add the application path when we construct the QCoreApplication
if (self) self->d_func()->appendApplicationPathToLibraryPaths();
--
2.42.0
2.43.1

View File

@ -7,7 +7,7 @@
stdenv.mkDerivation rec {
pname = "suitesparse-graphblas";
version = "9.0.1";
version = "9.0.2";
outputs = [ "out" "dev" ];
@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
owner = "DrTimothyAldenDavis";
repo = "GraphBLAS";
rev = "v${version}";
hash = "sha256-eNd6jlpW3KiRvOCKvNP5ttpgjPPXt2M2vLhk1Zn4gTE=";
hash = "sha256-wPg5A1lwtRPDO5gPbllEFkRJFRIhkqqaVd4CBdPavKE=";
};
nativeBuildInputs = [

Some files were not shown because too many files have changed in this diff Show More