Merge staging-next into staging
This commit is contained in:
commit
d07fa982d9
@ -56,11 +56,7 @@ Make sure that your local files aren't added to Git history by adding the follow
|
||||
|
||||
#### `devmode`
|
||||
|
||||
The shell in the manual source directory makes available a command, `devmode`.
|
||||
It is a daemon, that:
|
||||
1. watches the manual's source for changes and when they occur — rebuilds
|
||||
2. HTTP serves the manual, injecting a script that triggers reload on changes
|
||||
3. opens the manual in the default browser
|
||||
Use [`devmode`](../pkgs/by-name/de/devmode/README.md) for a live preview when editing the manual.
|
||||
|
||||
### Testing redirects
|
||||
|
||||
|
||||
@ -37,7 +37,9 @@ Make sure that your local files aren't added to Git history by adding the follow
|
||||
/**/.direnv
|
||||
```
|
||||
|
||||
You might want to also use [`devmode`](https://github.com/NixOS/nixpkgs/blob/master/doc/README.md#devmode) while editing the manual.
|
||||
### `devmode` {#sec-contributing-devmode}
|
||||
|
||||
Use [`devmode`](https://github.com/NixOS/nixpkgs/blob/master/pkgs/by-name/de/devmode/README.md) for a live preview when editing the manual.
|
||||
|
||||
## Testing redirects {#sec-contributing-redirects}
|
||||
|
||||
|
||||
@ -95,6 +95,9 @@
|
||||
"sec-contributing-development-env": [
|
||||
"index.html#sec-contributing-development-env"
|
||||
],
|
||||
"sec-contributing-devmode": [
|
||||
"index.html#sec-contributing-devmode"
|
||||
],
|
||||
"sec-mattermost": [
|
||||
"index.html#sec-mattermost"
|
||||
],
|
||||
@ -551,6 +554,18 @@
|
||||
"module-services-youtrack-upgrade-2022_3-2023_1": [
|
||||
"index.html#module-services-youtrack-upgrade-2022_3-2023_1"
|
||||
],
|
||||
"module-services-szurubooru": [
|
||||
"index.html#module-services-szurubooru"
|
||||
],
|
||||
"module-services-szurubooru-basic-usage": [
|
||||
"index.html#module-services-szurubooru-basic-usage"
|
||||
],
|
||||
"module-services-szurubooru-reverse-proxy-configuration": [
|
||||
"index.html#module-services-szurubooru-reverse-proxy-configuration"
|
||||
],
|
||||
"module-services-szurubooru-extra-config": [
|
||||
"index.html#module-services-szurubooru-extra-config"
|
||||
],
|
||||
"module-services-suwayomi-server": [
|
||||
"index.html#module-services-suwayomi-server"
|
||||
],
|
||||
|
||||
@ -32,6 +32,10 @@
|
||||
|
||||
- [postfix-tlspol](https://github.com/Zuplu/postfix-tlspol), MTA-STS and DANE resolver and TLS policy server for Postfix. Available as [services.postfix-tlspol](#opt-services.postfix-tlspol.enable).
|
||||
|
||||
- [Szurubooru](https://github.com/rr-/szurubooru), an image board engine inspired by services such as Danbooru, dedicated for small and medium communities. Available as [services.szurubooru](#opt-services.szurubooru.enable).
|
||||
|
||||
- [nix-store-veritysetup](https://github.com/nikstur/nix-store-veritysetup-generator), a systemd generator to unlock the Nix Store as a dm-verity protected block device. Available as [boot.initrd.nix-store-veritysetup](options.html#opt-boot.initrd.nix-store-veritysetup.enable).
|
||||
|
||||
- [SuiteNumérique Docs](https://github.com/suitenumerique/docs), a collaborative note taking, wiki and documentation web platform and alternative to Notion or Outline. Available as [services.lasuite-docs](#opt-services.lasuite-docs.enable).
|
||||
|
||||
[dwl](https://codeberg.org/dwl/dwl), a compact, hackable compositor for Wayland based on wlroots. Available as [programs.dwl](#opt-programs.dwl.enable).
|
||||
|
||||
@ -1663,6 +1663,7 @@
|
||||
./services/web-apps/stirling-pdf.nix
|
||||
./services/web-apps/strfry.nix
|
||||
./services/web-apps/suwayomi-server.nix
|
||||
./services/web-apps/szurubooru.nix
|
||||
./services/web-apps/trilium.nix
|
||||
./services/web-apps/tt-rss.nix
|
||||
./services/web-apps/vikunja.nix
|
||||
@ -1785,6 +1786,7 @@
|
||||
./system/boot/luksroot.nix
|
||||
./system/boot/modprobe.nix
|
||||
./system/boot/networkd.nix
|
||||
./system/boot/nix-store-veritysetup.nix
|
||||
./system/boot/plymouth.nix
|
||||
./system/boot/resolved.nix
|
||||
./system/boot/shutdown.nix
|
||||
|
||||
80
nixos/modules/services/web-apps/szurubooru.md
Normal file
80
nixos/modules/services/web-apps/szurubooru.md
Normal file
@ -0,0 +1,80 @@
|
||||
# Szurubooru {#module-services-szurubooru}
|
||||
|
||||
An image board engine dedicated for small and medium communities.
|
||||
|
||||
## Configuration {#module-services-szurubooru-basic-usage}
|
||||
|
||||
By default the module will execute Szurubooru server only, the web client only contains static files that can be reached via a reverse proxy.
|
||||
|
||||
Here is a basic configuration:
|
||||
|
||||
```nix
|
||||
{
|
||||
services.szurubooru = {
|
||||
enable = true;
|
||||
|
||||
server = {
|
||||
port = 8080;
|
||||
|
||||
settings = {
|
||||
domain = "https://szurubooru.domain.tld";
|
||||
secretFile = /path/to/secret/file;
|
||||
};
|
||||
};
|
||||
|
||||
database = {
|
||||
passwordFile = /path/to/secret/file;
|
||||
};
|
||||
};
|
||||
}
|
||||
```
|
||||
|
||||
## Reverse proxy configuration {#module-services-szurubooru-reverse-proxy-configuration}
|
||||
|
||||
The prefered method to run this service is behind a reverse proxy not to expose an open port. For example, here is a minimal Nginx configuration:
|
||||
|
||||
```nix
|
||||
{
|
||||
services.szurubooru = {
|
||||
enable = true;
|
||||
|
||||
server = {
|
||||
port = 8080;
|
||||
...
|
||||
};
|
||||
|
||||
...
|
||||
};
|
||||
|
||||
services.nginx.virtualHosts."szurubooru.domain.tld" = {
|
||||
locations = {
|
||||
"/api/".proxyPass = "http://localhost:8080/";
|
||||
"/data/".root = config.services.szurubooru.dataDir;
|
||||
"/" = {
|
||||
root = config.services.szurubooru.client.package;
|
||||
tryFiles = "$uri /index.htm";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
```
|
||||
|
||||
## Extra configuration {#module-services-szurubooru-extra-config}
|
||||
|
||||
Not all configuration options of the server are available directly in this module, but you can add them in `services.szurubooru.server.settings`:
|
||||
|
||||
```nix
|
||||
{
|
||||
services.szurubooru = {
|
||||
enable = true;
|
||||
|
||||
server.settings = {
|
||||
domain = "https://szurubooru.domain.tld";
|
||||
delete_source_files = "yes";
|
||||
contact_email = "example@domain.tld";
|
||||
};
|
||||
};
|
||||
}
|
||||
```
|
||||
|
||||
You can find all of the options in the default config file available [here](https://github.com/rr-/szurubooru/blob/master/server/config.yaml.dist).
|
||||
331
nixos/modules/services/web-apps/szurubooru.nix
Normal file
331
nixos/modules/services/web-apps/szurubooru.nix
Normal file
@ -0,0 +1,331 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
cfg = config.services.szurubooru;
|
||||
inherit (lib)
|
||||
mkOption
|
||||
mkEnableOption
|
||||
mkIf
|
||||
mkPackageOption
|
||||
types
|
||||
;
|
||||
format = pkgs.formats.yaml { };
|
||||
python = pkgs.python312;
|
||||
in
|
||||
|
||||
{
|
||||
options = {
|
||||
services.szurubooru = {
|
||||
enable = mkEnableOption "Szurubooru, an image board engine dedicated for small and medium communities";
|
||||
|
||||
user = mkOption {
|
||||
type = types.str;
|
||||
default = "szurubooru";
|
||||
description = ''
|
||||
User account under which Szurubooru runs.
|
||||
'';
|
||||
};
|
||||
|
||||
group = mkOption {
|
||||
type = types.str;
|
||||
default = "szurubooru";
|
||||
description = ''
|
||||
Group under which Szurubooru runs.
|
||||
'';
|
||||
};
|
||||
|
||||
dataDir = mkOption {
|
||||
type = types.path;
|
||||
default = "/var/lib/szurubooru";
|
||||
example = "/var/lib/szuru";
|
||||
description = ''
|
||||
The path to the data directory in which Szurubooru will store its data.
|
||||
'';
|
||||
};
|
||||
|
||||
openFirewall = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
example = true;
|
||||
description = ''
|
||||
Whether to open the firewall for the port in {option}`services.szurubooru.server.port`.
|
||||
'';
|
||||
};
|
||||
|
||||
server = {
|
||||
package = mkPackageOption pkgs [
|
||||
"szurubooru"
|
||||
"server"
|
||||
] { };
|
||||
|
||||
port = mkOption {
|
||||
type = types.port;
|
||||
default = 8080;
|
||||
example = 9000;
|
||||
description = ''
|
||||
Port to expose HTTP service.
|
||||
'';
|
||||
};
|
||||
|
||||
threads = mkOption {
|
||||
type = types.int;
|
||||
default = 4;
|
||||
example = 6;
|
||||
description = ''Number of waitress threads to start.'';
|
||||
};
|
||||
|
||||
settings = mkOption {
|
||||
type = types.submodule {
|
||||
freeformType = format.type;
|
||||
options = {
|
||||
name = mkOption {
|
||||
type = types.str;
|
||||
default = "szurubooru";
|
||||
example = "Szuru";
|
||||
description = ''Name shown in the website title and on the front page.'';
|
||||
};
|
||||
|
||||
domain = mkOption {
|
||||
type = types.str;
|
||||
example = "http://example.com";
|
||||
description = ''Full URL to the homepage of this szurubooru site (with no trailing slash).'';
|
||||
};
|
||||
|
||||
# NOTE: this is not a real upstream option
|
||||
secretFile = mkOption {
|
||||
type = types.path;
|
||||
example = "/run/secrets/szurubooru-server-secret";
|
||||
description = ''
|
||||
File containing a secret used to salt the users' password hashes and generate filenames for static content.
|
||||
'';
|
||||
};
|
||||
|
||||
delete_source_files = mkOption {
|
||||
type = types.enum [
|
||||
"yes"
|
||||
"no"
|
||||
];
|
||||
default = "no";
|
||||
example = "yes";
|
||||
description = ''Whether to delete thumbnails and source files on post delete.'';
|
||||
};
|
||||
|
||||
smtp = {
|
||||
host = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
example = "localhost";
|
||||
description = ''Host of the SMTP server used to send reset password.'';
|
||||
};
|
||||
|
||||
port = mkOption {
|
||||
type = types.nullOr types.port;
|
||||
default = null;
|
||||
example = 25;
|
||||
description = ''Port of the SMTP server.'';
|
||||
};
|
||||
|
||||
user = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
example = "bot";
|
||||
description = ''User to connect to the SMTP server.'';
|
||||
};
|
||||
|
||||
# NOTE: this is not a real upstream option
|
||||
passFile = mkOption {
|
||||
type = types.nullOr types.path;
|
||||
default = null;
|
||||
example = "/run/secrets/szurubooru-smtp-pass";
|
||||
description = ''File containing the password associated to the given user for the SMTP server.'';
|
||||
};
|
||||
};
|
||||
|
||||
data_url = mkOption {
|
||||
type = types.str;
|
||||
default = "${cfg.server.settings.domain}/data/";
|
||||
defaultText = lib.literalExpression ''"''${services.szurubooru.server.settings.domain}/data/"'';
|
||||
example = "http://example.com/content/";
|
||||
description = ''Full URL to the data endpoint.'';
|
||||
};
|
||||
|
||||
data_dir = mkOption {
|
||||
type = types.path;
|
||||
default = "${cfg.dataDir}/data";
|
||||
defaultText = lib.literalExpression ''"''${services.szurubooru.dataDir}/data"'';
|
||||
example = "/srv/szurubooru/data";
|
||||
description = ''Path to the static files.'';
|
||||
};
|
||||
|
||||
debug = mkOption {
|
||||
type = types.int;
|
||||
default = 0;
|
||||
example = 1;
|
||||
description = ''Whether to generate server logs.'';
|
||||
};
|
||||
|
||||
show_sql = mkOption {
|
||||
type = types.int;
|
||||
default = 0;
|
||||
example = 1;
|
||||
description = ''Whether to show SQL in server logs.'';
|
||||
};
|
||||
};
|
||||
};
|
||||
description = ''
|
||||
Configuration to write to {file}`config.yaml`.
|
||||
See <https://github.com/rr-/szurubooru/blob/master/server/config.yaml.dist> for more information.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
client = {
|
||||
package = mkPackageOption pkgs [
|
||||
"szurubooru"
|
||||
"client"
|
||||
] { };
|
||||
};
|
||||
|
||||
database = {
|
||||
host = mkOption {
|
||||
type = types.str;
|
||||
default = "localhost";
|
||||
example = "192.168.1.2";
|
||||
description = ''Host on which the PostgreSQL database runs.'';
|
||||
};
|
||||
|
||||
port = mkOption {
|
||||
type = types.port;
|
||||
default = 5432;
|
||||
description = ''The port under which PostgreSQL listens to.'';
|
||||
};
|
||||
|
||||
name = mkOption {
|
||||
type = types.str;
|
||||
default = cfg.database.user;
|
||||
defaultText = lib.literalExpression "szurubooru.database.name";
|
||||
example = "szuru";
|
||||
description = ''Name of the PostgreSQL database.'';
|
||||
};
|
||||
|
||||
user = mkOption {
|
||||
type = types.str;
|
||||
default = "szurubooru";
|
||||
example = "szuru";
|
||||
description = ''PostgreSQL user.'';
|
||||
};
|
||||
|
||||
passwordFile = mkOption {
|
||||
type = types.path;
|
||||
example = "/run/secrets/szurubooru-db-password";
|
||||
description = ''A file containing the password for the PostgreSQL user.'';
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
|
||||
networking.firewall.allowedTCPPorts = mkIf cfg.openFirewall [ cfg.server.port ];
|
||||
|
||||
users.groups = mkIf (cfg.group == "szurubooru") {
|
||||
szurubooru = { };
|
||||
};
|
||||
|
||||
users.users = mkIf (cfg.user == "szurubooru") {
|
||||
szurubooru = {
|
||||
group = cfg.group;
|
||||
description = "Szurubooru Daemon user";
|
||||
isSystemUser = true;
|
||||
};
|
||||
};
|
||||
|
||||
systemd.services.szurubooru =
|
||||
let
|
||||
configFile = format.generate "config.yaml" (
|
||||
lib.pipe cfg.server.settings [
|
||||
(
|
||||
settings:
|
||||
lib.recursiveUpdate settings {
|
||||
secretFile = null;
|
||||
secret = "$SZURUBOORU_SECRET";
|
||||
|
||||
smtp.pass = if settings.smtp.passFile != null then "$SZURUBOORU_SMTP_PASS" else null;
|
||||
smtp.passFile = null;
|
||||
smtp.enable = null;
|
||||
|
||||
database = "postgresql://${cfg.database.user}:$SZURUBOORU_DATABASE_PASSWORD@${cfg.database.host}:${toString cfg.database.port}/${cfg.database.name}";
|
||||
}
|
||||
)
|
||||
(lib.filterAttrsRecursive (_: x: x != null))
|
||||
]
|
||||
);
|
||||
pyenv = python.buildEnv.override {
|
||||
extraLibs = [ (python.pkgs.toPythonModule cfg.server.package) ];
|
||||
};
|
||||
in
|
||||
{
|
||||
description = "Server of Szurubooru, an image board engine dedicated for small and medium communities";
|
||||
|
||||
wantedBy = [
|
||||
"multi-user.target"
|
||||
"szurubooru-client.service"
|
||||
];
|
||||
before = [ "szurubooru-client.service" ];
|
||||
after = [
|
||||
"network.target"
|
||||
"network-online.target"
|
||||
];
|
||||
wants = [ "network-online.target" ];
|
||||
|
||||
environment = {
|
||||
PYTHONPATH = "${pyenv}/${pyenv.sitePackages}/";
|
||||
};
|
||||
|
||||
path =
|
||||
with pkgs;
|
||||
[
|
||||
envsubst
|
||||
ffmpeg_4-full
|
||||
]
|
||||
++ (with python.pkgs; [
|
||||
alembic
|
||||
waitress
|
||||
]);
|
||||
|
||||
script = ''
|
||||
export SZURUBOORU_SECRET="$(<${cfg.server.settings.secretFile})"
|
||||
export SZURUBOORU_DATABASE_PASSWORD="$(<${cfg.database.passwordFile})"
|
||||
${lib.optionalString (cfg.server.settings.smtp.passFile != null) ''
|
||||
export SZURUBOORU_SMTP_PASS=$(<${cfg.server.settings.smtp.passFile})
|
||||
''}
|
||||
install -m0640 ${cfg.server.package.src}/config.yaml.dist ${cfg.dataDir}/config.yaml.dist
|
||||
envsubst -i ${configFile} -o ${cfg.dataDir}/config.yaml
|
||||
sed 's|script_location = |script_location = ${cfg.server.package.src}/|' ${cfg.server.package.src}/alembic.ini > ${cfg.dataDir}/alembic.ini
|
||||
alembic upgrade head
|
||||
waitress-serve --port ${toString cfg.server.port} --threads ${toString cfg.server.threads} szurubooru.facade:app
|
||||
'';
|
||||
|
||||
serviceConfig = {
|
||||
User = cfg.user;
|
||||
Group = cfg.group;
|
||||
|
||||
Type = "simple";
|
||||
Restart = "on-failure";
|
||||
|
||||
StateDirectory = mkIf (cfg.dataDir == "/var/lib/szurubooru") "szurubooru";
|
||||
WorkingDirectory = cfg.dataDir;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
meta = {
|
||||
maintainers = with lib.maintainers; [ ratcornu ];
|
||||
doc = ./szurubooru.md;
|
||||
};
|
||||
}
|
||||
38
nixos/modules/system/boot/nix-store-veritysetup.nix
Normal file
38
nixos/modules/system/boot/nix-store-veritysetup.nix
Normal file
@ -0,0 +1,38 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
cfg = config.boot.initrd.nix-store-veritysetup;
|
||||
in
|
||||
{
|
||||
meta.maintainers = with lib.maintainers; [ nikstur ];
|
||||
|
||||
options.boot.initrd.nix-store-veritysetup = {
|
||||
enable = lib.mkEnableOption "nix-store-veritysetup";
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
assertions = [
|
||||
{
|
||||
assertion = config.boot.initrd.systemd.dmVerity.enable;
|
||||
message = "nix-store-veritysetup requires dm-verity in the systemd initrd.";
|
||||
}
|
||||
];
|
||||
|
||||
boot.initrd.systemd = {
|
||||
contents = {
|
||||
"/etc/systemd/system-generators/nix-store-veritysetup-generator".source =
|
||||
"${lib.getExe pkgs.nix-store-veritysetup-generator}";
|
||||
};
|
||||
|
||||
storePaths = [
|
||||
"${config.boot.initrd.systemd.package}/bin/systemd-escape"
|
||||
];
|
||||
};
|
||||
|
||||
};
|
||||
}
|
||||
@ -306,7 +306,7 @@ in
|
||||
cinnamon-wayland = runTest ./cinnamon-wayland.nix;
|
||||
cjdns = runTest ./cjdns.nix;
|
||||
clatd = runTest ./clatd.nix;
|
||||
clickhouse = runTest ./clickhouse.nix;
|
||||
clickhouse = import ./clickhouse { inherit runTest; };
|
||||
cloud-init = handleTest ./cloud-init.nix { };
|
||||
cloud-init-hostname = handleTest ./cloud-init-hostname.nix { };
|
||||
cloudlog = runTest ./cloudlog.nix;
|
||||
@ -938,6 +938,7 @@ in
|
||||
nix-required-mounts = runTest ./nix-required-mounts;
|
||||
nix-serve = runTest ./nix-serve.nix;
|
||||
nix-serve-ssh = runTest ./nix-serve-ssh.nix;
|
||||
nix-store-veritysetup = runTest ./nix-store-veritysetup.nix;
|
||||
nixops = handleTest ./nixops/default.nix { };
|
||||
nixos-generate-config = runTest ./nixos-generate-config.nix;
|
||||
nixos-rebuild-install-bootloader = handleTestOn [
|
||||
@ -1372,6 +1373,7 @@ in
|
||||
systemd-homed = runTest ./systemd-homed.nix;
|
||||
systemtap = handleTest ./systemtap.nix { };
|
||||
startx = import ./startx.nix { inherit pkgs runTest; };
|
||||
szurubooru = handleTest ./szurubooru.nix { };
|
||||
taler = handleTest ./taler { };
|
||||
tandoor-recipes = runTest ./tandoor-recipes.nix;
|
||||
tandoor-recipes-script-name = runTest ./tandoor-recipes-script-name.nix;
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
name = "clickhouse";
|
||||
meta.maintainers = with pkgs.lib.maintainers; [ ];
|
||||
meta.maintainers = with pkgs.lib.maintainers; [ jpds ];
|
||||
|
||||
nodes.machine = {
|
||||
services.clickhouse.enable = true;
|
||||
8
nixos/tests/clickhouse/default.nix
Normal file
8
nixos/tests/clickhouse/default.nix
Normal file
@ -0,0 +1,8 @@
|
||||
{ runTest }:
|
||||
|
||||
{
|
||||
base = runTest ./base.nix;
|
||||
kafka = runTest ./kafka.nix;
|
||||
keeper = runTest ./keeper.nix;
|
||||
s3 = runTest ./s3.nix;
|
||||
}
|
||||
172
nixos/tests/clickhouse/kafka.nix
Normal file
172
nixos/tests/clickhouse/kafka.nix
Normal file
@ -0,0 +1,172 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
let
|
||||
kafkaNamedCollectionConfig = ''
|
||||
<clickhouse>
|
||||
<named_collections>
|
||||
<cluster_1>
|
||||
<!-- ClickHouse Kafka engine parameters -->
|
||||
<kafka_broker_list>kafka:9092</kafka_broker_list>
|
||||
<kafka_topic_list>test_topic</kafka_topic_list>
|
||||
<kafka_group_name>clickhouse</kafka_group_name>
|
||||
<kafka_format>JSONEachRow</kafka_format>
|
||||
<kafka_commit_every_batch>0</kafka_commit_every_batch>
|
||||
<kafka_num_consumers>1</kafka_num_consumers>
|
||||
<kafka_thread_per_consumer>1</kafka_thread_per_consumer>
|
||||
|
||||
<!-- Kafka extended configuration -->
|
||||
<kafka>
|
||||
<debug>all</debug>
|
||||
<auto_offset_reset>earliest</auto_offset_reset>
|
||||
</kafka>
|
||||
</cluster_1>
|
||||
</named_collections>
|
||||
</clickhouse>
|
||||
'';
|
||||
|
||||
kafkaNamedCollection = pkgs.writeText "kafka.xml" kafkaNamedCollectionConfig;
|
||||
in
|
||||
{
|
||||
name = "clickhouse-kafka";
|
||||
meta.maintainers = with pkgs.lib.maintainers; [ jpds ];
|
||||
|
||||
nodes = {
|
||||
clickhouse = {
|
||||
environment.etc = {
|
||||
"clickhouse-server/config.d/kafka.xml" = {
|
||||
source = "${kafkaNamedCollection}";
|
||||
};
|
||||
};
|
||||
|
||||
services.clickhouse.enable = true;
|
||||
virtualisation.memorySize = 4096;
|
||||
};
|
||||
|
||||
kafka = {
|
||||
networking.firewall.allowedTCPPorts = [
|
||||
9092
|
||||
9093
|
||||
];
|
||||
|
||||
environment.systemPackages = [
|
||||
pkgs.apacheKafka
|
||||
pkgs.jq
|
||||
];
|
||||
|
||||
services.apache-kafka = {
|
||||
enable = true;
|
||||
|
||||
# Randomly generated uuid. You can get one by running:
|
||||
# kafka-storage.sh random-uuid
|
||||
clusterId = "b81s-MuGSwyt_B9_h37wtQ";
|
||||
|
||||
formatLogDirs = true;
|
||||
|
||||
settings = {
|
||||
listeners = [
|
||||
"PLAINTEXT://:9092"
|
||||
"CONTROLLER://:9093"
|
||||
];
|
||||
"listener.security.protocol.map" = [
|
||||
"PLAINTEXT:PLAINTEXT"
|
||||
"CONTROLLER:PLAINTEXT"
|
||||
];
|
||||
"controller.quorum.voters" = [
|
||||
"1@kafka:9093"
|
||||
];
|
||||
"controller.listener.names" = [ "CONTROLLER" ];
|
||||
|
||||
"node.id" = 1;
|
||||
"broker.rack" = 1;
|
||||
|
||||
"process.roles" = [
|
||||
"broker"
|
||||
"controller"
|
||||
];
|
||||
|
||||
"log.dirs" = [ "/var/lib/apache-kafka" ];
|
||||
"num.partitions" = 1;
|
||||
"offsets.topic.replication.factor" = 1;
|
||||
"transaction.state.log.replication.factor" = 1;
|
||||
"transaction.state.log.min.isr" = 1;
|
||||
};
|
||||
};
|
||||
|
||||
systemd.services.apache-kafka.serviceConfig.StateDirectory = "apache-kafka";
|
||||
};
|
||||
};
|
||||
|
||||
testScript =
|
||||
let
|
||||
jsonTestMessage = pkgs.writeText "kafka-test-data.json" ''
|
||||
{ "id": 1, "first_name": "Fred", "age": 32 }
|
||||
{ "id": 2, "first_name": "Barbara", "age": 30 }
|
||||
{ "id": 3, "first_name": "Nicola", "age": 12 }
|
||||
'';
|
||||
# work around quote/substitution complexity by Nix, Perl, bash and SQL.
|
||||
tableKafkaDDL = pkgs.writeText "ddl-kafka.sql" ''
|
||||
CREATE TABLE `test_kafka_topic` (
|
||||
`id` UInt32,
|
||||
`first_name` String,
|
||||
`age` UInt32
|
||||
) ENGINE = Kafka(cluster_1);
|
||||
'';
|
||||
|
||||
tableDDL = pkgs.writeText "ddl.sql" ''
|
||||
CREATE TABLE `test_topic` (
|
||||
`id` UInt32,
|
||||
`first_name` String,
|
||||
`age` UInt32
|
||||
) ENGINE = MergeTree ORDER BY id;
|
||||
'';
|
||||
|
||||
viewDDL = pkgs.writeText "view.sql" ''
|
||||
CREATE MATERIALIZED VIEW kafka_view TO test_topic AS
|
||||
SELECT
|
||||
id,
|
||||
first_name,
|
||||
age,
|
||||
FROM test_kafka_topic;
|
||||
'';
|
||||
selectQuery = pkgs.writeText "select.sql" "SELECT sum(age) from `test_topic`";
|
||||
in
|
||||
''
|
||||
kafka.start()
|
||||
kafka.wait_for_unit("apache-kafka")
|
||||
kafka.wait_for_open_port(9092)
|
||||
|
||||
clickhouse.start()
|
||||
clickhouse.wait_for_unit("clickhouse")
|
||||
clickhouse.wait_for_open_port(9000)
|
||||
|
||||
clickhouse.wait_until_succeeds(
|
||||
"""
|
||||
journalctl -o cat -u clickhouse.service | grep "Merging configuration file '/etc/clickhouse-server/config.d/kafka.xml'"
|
||||
"""
|
||||
)
|
||||
|
||||
clickhouse.succeed(
|
||||
"cat ${tableKafkaDDL} | clickhouse-client"
|
||||
)
|
||||
|
||||
clickhouse.succeed(
|
||||
"cat ${tableDDL} | clickhouse-client"
|
||||
)
|
||||
|
||||
clickhouse.succeed(
|
||||
"cat ${viewDDL} | clickhouse-client"
|
||||
)
|
||||
|
||||
kafka.succeed(
|
||||
"jq -rc . ${jsonTestMessage} | kafka-console-producer.sh --topic test_topic --bootstrap-server kafka:9092"
|
||||
)
|
||||
|
||||
kafka.wait_until_succeeds(
|
||||
"journalctl -o cat -u apache-kafka.service | grep 'Created a new member id ClickHouse-clickhouse-default-test_kafka_topic'"
|
||||
)
|
||||
|
||||
clickhouse.wait_until_succeeds(
|
||||
"cat ${selectQuery} | clickhouse-client | grep 74"
|
||||
)
|
||||
'';
|
||||
}
|
||||
183
nixos/tests/clickhouse/keeper.nix
Normal file
183
nixos/tests/clickhouse/keeper.nix
Normal file
@ -0,0 +1,183 @@
|
||||
{ lib, pkgs, ... }:
|
||||
rec {
|
||||
name = "clickhouse-keeper";
|
||||
meta.maintainers = with pkgs.lib.maintainers; [ jpds ];
|
||||
|
||||
nodes =
|
||||
let
|
||||
node = i: {
|
||||
|
||||
environment.etc = {
|
||||
"clickhouse-server/config.d/cluster.xml".text = ''
|
||||
<clickhouse>
|
||||
<remote_servers>
|
||||
<perftest_2shards_1replicas>
|
||||
${lib.concatStrings (
|
||||
lib.imap0 (j: name: ''
|
||||
<shard>
|
||||
<replica>
|
||||
<host>${name}</host>
|
||||
<port>9000</port>
|
||||
</replica>
|
||||
</shard>
|
||||
'') (builtins.attrNames nodes)
|
||||
)}
|
||||
</perftest_2shards_1replicas>
|
||||
</remote_servers>
|
||||
</clickhouse>
|
||||
'';
|
||||
|
||||
"clickhouse-server/config.d/keeper.xml".text = ''
|
||||
<clickhouse>
|
||||
<keeper_server>
|
||||
<server_id>${toString i}</server_id>
|
||||
<tcp_port>9181</tcp_port>
|
||||
<log_storage_path>/var/lib/clickhouse/coordination/log</log_storage_path>
|
||||
<snapshot_storage_path>/var/lib/clickhouse/coordination/snapshots</snapshot_storage_path>
|
||||
|
||||
<coordination_settings>
|
||||
<operation_timeout_ms>10000</operation_timeout_ms>
|
||||
<session_timeout_ms>30000</session_timeout_ms>
|
||||
<raft_logs_level>trace</raft_logs_level>
|
||||
<rotate_log_storage_interval>10000</rotate_log_storage_interval>
|
||||
</coordination_settings>
|
||||
|
||||
<raft_configuration>
|
||||
${lib.concatStrings (
|
||||
lib.imap1 (j: name: ''
|
||||
<server>
|
||||
<id>${toString j}</id>
|
||||
<hostname>${name}</hostname>
|
||||
<port>9444</port>
|
||||
</server>
|
||||
'') (builtins.attrNames nodes)
|
||||
)}
|
||||
</raft_configuration>
|
||||
</keeper_server>
|
||||
|
||||
<zookeeper>
|
||||
${lib.concatStrings (
|
||||
lib.imap0 (j: name: ''
|
||||
<node>
|
||||
<host>${name}</host>
|
||||
<port>9181</port>
|
||||
</node>
|
||||
'') (builtins.attrNames nodes)
|
||||
)}
|
||||
</zookeeper>
|
||||
|
||||
<distributed_ddl>
|
||||
<path>/clickhouse/testcluster/task_queue/ddl</path>
|
||||
</distributed_ddl>
|
||||
</clickhouse>
|
||||
'';
|
||||
|
||||
"clickhouse-server/config.d/listen.xml".text = ''
|
||||
<clickhouse>
|
||||
<listen_host>::</listen_host>
|
||||
</clickhouse>
|
||||
'';
|
||||
|
||||
"clickhouse-server/config.d/macros.xml".text = ''
|
||||
<clickhouse>
|
||||
<macros>
|
||||
<replica>${toString i}</replica>
|
||||
<cluster>perftest_2shards_1replicas</cluster>
|
||||
</macros>
|
||||
</clickhouse>
|
||||
'';
|
||||
};
|
||||
|
||||
networking.firewall.allowedTCPPorts = [
|
||||
9009
|
||||
9181
|
||||
9444
|
||||
];
|
||||
|
||||
services.clickhouse.enable = true;
|
||||
|
||||
systemd.services.clickhouse = {
|
||||
after = [ "network-online.target" ];
|
||||
requires = [ "network-online.target" ];
|
||||
};
|
||||
|
||||
virtualisation.memorySize = 1024 * 4;
|
||||
virtualisation.diskSize = 1024 * 10;
|
||||
};
|
||||
in
|
||||
{
|
||||
clickhouse1 = node 1;
|
||||
clickhouse2 = node 2;
|
||||
};
|
||||
|
||||
testScript =
|
||||
let
|
||||
# work around quote/substitution complexity by Nix, Perl, bash and SQL.
|
||||
clustersQuery = pkgs.writeText "clusters.sql" "SHOW clusters";
|
||||
keeperQuery = pkgs.writeText "keeper.sql" "SELECT * FROM system.zookeeper WHERE path IN ('/', '/clickhouse') FORMAT VERTICAL";
|
||||
systemClustersQuery = pkgs.writeText "system-clusters.sql" "SELECT host_name, host_address, replica_num FROM system.clusters WHERE cluster = 'perftest_2shards_1replicas'";
|
||||
|
||||
tableDDL = pkgs.writeText "table.sql" ''
|
||||
CREATE TABLE test ON cluster 'perftest_2shards_1replicas' ( A Int64, S String)
|
||||
Engine = ReplicatedMergeTree('/clickhouse/{cluster}/tables/{database}/{table}', '{replica}')
|
||||
ORDER BY A;
|
||||
'';
|
||||
|
||||
insertDDL = pkgs.writeText "insert.sql" "
|
||||
INSERT INTO test SELECT number, '' FROM numbers(100000000);
|
||||
";
|
||||
|
||||
selectCountQuery = pkgs.writeText "select-count.sql" "
|
||||
select count() from test;
|
||||
";
|
||||
in
|
||||
''
|
||||
clickhouse1.start()
|
||||
clickhouse2.start()
|
||||
|
||||
for machine in clickhouse1, clickhouse2:
|
||||
machine.wait_for_unit("clickhouse.service")
|
||||
machine.wait_for_open_port(9000)
|
||||
machine.wait_for_open_port(9009)
|
||||
machine.wait_for_open_port(9181)
|
||||
machine.wait_for_open_port(9444)
|
||||
|
||||
machine.wait_until_succeeds(
|
||||
"""
|
||||
journalctl -o cat -u clickhouse.service | grep "Merging configuration file '/etc/clickhouse-server/config.d/keeper.xml'"
|
||||
"""
|
||||
)
|
||||
|
||||
machine.log(machine.succeed(
|
||||
"cat ${clustersQuery} | clickhouse-client | grep perftest_2shards_1replicas"
|
||||
))
|
||||
|
||||
machine.log(machine.succeed(
|
||||
"cat ${keeperQuery} | clickhouse-client"
|
||||
))
|
||||
|
||||
machine.succeed(
|
||||
"cat ${systemClustersQuery} | clickhouse-client | grep clickhouse1"
|
||||
)
|
||||
machine.succeed(
|
||||
"cat ${systemClustersQuery} | clickhouse-client | grep clickhouse2"
|
||||
)
|
||||
|
||||
machine.succeed(
|
||||
"ls /var/lib/clickhouse/coordination/log | grep changelog"
|
||||
)
|
||||
|
||||
clickhouse2.succeed(
|
||||
"cat ${tableDDL} | clickhouse-client"
|
||||
)
|
||||
|
||||
clickhouse2.succeed(
|
||||
"cat ${insertDDL} | clickhouse-client"
|
||||
)
|
||||
|
||||
for machine in clickhouse1, clickhouse2:
|
||||
machine.wait_until_succeeds(
|
||||
"cat ${selectCountQuery} | clickhouse-client | grep 100000000"
|
||||
)
|
||||
'';
|
||||
}
|
||||
121
nixos/tests/clickhouse/s3.nix
Normal file
121
nixos/tests/clickhouse/s3.nix
Normal file
@ -0,0 +1,121 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
let
|
||||
s3 = {
|
||||
bucket = "clickhouse-bucket";
|
||||
accessKey = "BKIKJAA5BMMU2RHO6IBB";
|
||||
secretKey = "V7f1CwQqAcwo80UEIJEjc5gVQUSSx5ohQ9GSrr12";
|
||||
};
|
||||
|
||||
clickhouseS3StorageConfig = ''
|
||||
<clickhouse>
|
||||
<storage_configuration>
|
||||
<disks>
|
||||
<s3_disk>
|
||||
<type>s3</type>
|
||||
<endpoint>http://minio:9000/${s3.bucket}/</endpoint>
|
||||
<access_key_id>${s3.accessKey}</access_key_id>
|
||||
<secret_access_key>${s3.secretKey}</secret_access_key>
|
||||
<metadata_path>/var/lib/clickhouse/disks/s3_disk/</metadata_path>
|
||||
</s3_disk>
|
||||
<s3_cache>
|
||||
<type>cache</type>
|
||||
<disk>s3_disk</disk>
|
||||
<path>/var/lib/clickhouse/disks/s3_cache/</path>
|
||||
<max_size>10Gi</max_size>
|
||||
</s3_cache>
|
||||
</disks>
|
||||
<policies>
|
||||
<s3_main>
|
||||
<volumes>
|
||||
<main>
|
||||
<disk>s3_disk</disk>
|
||||
</main>
|
||||
</volumes>
|
||||
</s3_main>
|
||||
</policies>
|
||||
</storage_configuration>
|
||||
</clickhouse>
|
||||
'';
|
||||
in
|
||||
{
|
||||
name = "clickhouse-s3";
|
||||
meta.maintainers = with pkgs.lib.maintainers; [ jpds ];
|
||||
|
||||
nodes = {
|
||||
clickhouse = {
|
||||
environment.etc = {
|
||||
"clickhouse-server/config.d/s3.xml" = {
|
||||
text = "${clickhouseS3StorageConfig}";
|
||||
};
|
||||
};
|
||||
|
||||
services.clickhouse.enable = true;
|
||||
virtualisation.diskSize = 15 * 1024;
|
||||
virtualisation.memorySize = 4 * 1024;
|
||||
};
|
||||
|
||||
minio =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
virtualisation.diskSize = 2 * 1024;
|
||||
networking.firewall.allowedTCPPorts = [ 9000 ];
|
||||
|
||||
services.minio = {
|
||||
enable = true;
|
||||
inherit (s3) accessKey secretKey;
|
||||
};
|
||||
|
||||
environment.systemPackages = [ pkgs.minio-client ];
|
||||
};
|
||||
};
|
||||
|
||||
testScript =
|
||||
let
|
||||
# work around quote/substitution complexity by Nix, Perl, bash and SQL.
|
||||
tableDDL = pkgs.writeText "ddl.sql" ''
|
||||
CREATE TABLE `demo` (
|
||||
`value` String
|
||||
)
|
||||
ENGINE = MergeTree
|
||||
ORDER BY value
|
||||
SETTINGS storage_policy = 's3_main';
|
||||
'';
|
||||
insertQuery = pkgs.writeText "insert.sql" "INSERT INTO `demo` (`value`) VALUES ('foo');";
|
||||
selectQuery = pkgs.writeText "select.sql" "SELECT * from `demo`";
|
||||
in
|
||||
''
|
||||
minio.wait_for_unit("minio")
|
||||
minio.wait_for_open_port(9000)
|
||||
minio.succeed(
|
||||
"mc alias set minio "
|
||||
+ "http://localhost:9000 "
|
||||
+ "${s3.accessKey} ${s3.secretKey} --api s3v4",
|
||||
"mc mb minio/${s3.bucket}",
|
||||
)
|
||||
|
||||
clickhouse.start()
|
||||
clickhouse.wait_for_unit("clickhouse.service")
|
||||
clickhouse.wait_for_open_port(9000)
|
||||
|
||||
clickhouse.wait_until_succeeds(
|
||||
"""
|
||||
journalctl -o cat -u clickhouse.service | grep "Merging configuration file '/etc/clickhouse-server/config.d/s3.xml'"
|
||||
"""
|
||||
)
|
||||
|
||||
clickhouse.succeed(
|
||||
"cat ${tableDDL} | clickhouse-client"
|
||||
)
|
||||
clickhouse.succeed(
|
||||
"cat ${insertQuery} | clickhouse-client"
|
||||
)
|
||||
clickhouse.succeed(
|
||||
"cat ${selectQuery} | clickhouse-client | grep foo"
|
||||
)
|
||||
|
||||
minio.log(minio.succeed(
|
||||
"mc ls minio/${s3.bucket}",
|
||||
))
|
||||
'';
|
||||
}
|
||||
108
nixos/tests/nix-store-veritysetup.nix
Normal file
108
nixos/tests/nix-store-veritysetup.nix
Normal file
@ -0,0 +1,108 @@
|
||||
{ lib, ... }:
|
||||
{
|
||||
|
||||
name = "nix-store-veritysetup";
|
||||
|
||||
meta.maintainers = with lib.maintainers; [ nikstur ];
|
||||
|
||||
nodes.machine =
|
||||
{ config, modulesPath, ... }:
|
||||
{
|
||||
|
||||
imports = [
|
||||
"${modulesPath}/image/repart.nix"
|
||||
];
|
||||
|
||||
image.repart = {
|
||||
name = "nix-store";
|
||||
partitions = {
|
||||
"nix-store" = {
|
||||
storePaths = [ config.system.build.toplevel ];
|
||||
stripNixStorePrefix = true;
|
||||
repartConfig = {
|
||||
Type = "linux-generic";
|
||||
Label = "nix-store";
|
||||
Format = "erofs";
|
||||
Minimize = "best";
|
||||
Verity = "data";
|
||||
VerityMatchKey = "nix-store";
|
||||
};
|
||||
};
|
||||
"nix-store-verity" = {
|
||||
repartConfig = {
|
||||
Type = "linux-generic";
|
||||
Label = "nix-store-verity";
|
||||
Verity = "hash";
|
||||
VerityMatchKey = "nix-store";
|
||||
Minimize = "best";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
boot.initrd = {
|
||||
systemd = {
|
||||
enable = true;
|
||||
dmVerity.enable = true;
|
||||
};
|
||||
nix-store-veritysetup.enable = true;
|
||||
};
|
||||
|
||||
virtualisation = {
|
||||
mountHostNixStore = false;
|
||||
qemu.drives = [
|
||||
{
|
||||
name = "nix-store";
|
||||
file = ''"$NIX_STORE"'';
|
||||
}
|
||||
];
|
||||
fileSystems = {
|
||||
"/nix/store" = {
|
||||
fsType = "erofs";
|
||||
device = "/dev/mapper/nix-store";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
testScript =
|
||||
{ nodes, ... }:
|
||||
''
|
||||
import os
|
||||
import json
|
||||
import subprocess
|
||||
import tempfile
|
||||
|
||||
with open("${nodes.machine.system.build.image}/repart-output.json") as f:
|
||||
data = json.load(f)
|
||||
|
||||
storehash = data[0]["roothash"]
|
||||
|
||||
os.environ["QEMU_KERNEL_PARAMS"] = f"storehash={storehash}"
|
||||
|
||||
tmp_disk_image = tempfile.NamedTemporaryFile()
|
||||
|
||||
subprocess.run([
|
||||
"${nodes.machine.virtualisation.qemu.package}/bin/qemu-img",
|
||||
"create",
|
||||
"-f",
|
||||
"qcow2",
|
||||
"-b",
|
||||
"${nodes.machine.system.build.image}/${nodes.machine.image.repart.imageFile}",
|
||||
"-F",
|
||||
"raw",
|
||||
tmp_disk_image.name,
|
||||
])
|
||||
|
||||
os.environ["NIX_STORE"] = tmp_disk_image.name
|
||||
|
||||
machine.start()
|
||||
|
||||
print(machine.succeed("findmnt"))
|
||||
print(machine.succeed("dmsetup info nix-store"))
|
||||
|
||||
machine.wait_for_unit("multi-user.target")
|
||||
'';
|
||||
|
||||
}
|
||||
52
nixos/tests/szurubooru.nix
Normal file
52
nixos/tests/szurubooru.nix
Normal file
@ -0,0 +1,52 @@
|
||||
import ./make-test-python.nix (
|
||||
{ lib, pkgs, ... }:
|
||||
{
|
||||
name = "szurubooru";
|
||||
meta.maintainers = with lib.maintainers; [ ratcornu ];
|
||||
|
||||
nodes.machine =
|
||||
let
|
||||
dbpass = "changeme";
|
||||
in
|
||||
|
||||
{ config, ... }:
|
||||
{
|
||||
services.postgresql = {
|
||||
enable = true;
|
||||
initialScript = pkgs.writeText "init.sql" ''
|
||||
CREATE USER ${config.services.szurubooru.database.user} WITH PASSWORD '${dbpass}';
|
||||
CREATE DATABASE ${config.services.szurubooru.database.name} WITH OWNER ${config.services.szurubooru.database.user};
|
||||
'';
|
||||
};
|
||||
|
||||
services.szurubooru = {
|
||||
enable = true;
|
||||
|
||||
dataDir = "/var/lib/szurubooru";
|
||||
|
||||
server = {
|
||||
port = 6666;
|
||||
settings = {
|
||||
domain = "http://127.0.0.1";
|
||||
secretFile = pkgs.writeText "secret" "secret";
|
||||
debug = 1;
|
||||
};
|
||||
};
|
||||
|
||||
database = {
|
||||
host = "localhost";
|
||||
port = 5432;
|
||||
name = "szurubooru";
|
||||
user = "szurubooru";
|
||||
passwordFile = pkgs.writeText "pass" "${dbpass}";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
machine.wait_for_unit("szurubooru.service")
|
||||
machine.wait_for_open_port(6666)
|
||||
machine.succeed('curl -H "Content-Type: application/json" -H "Accept: application/json" --fail http://127.0.0.1:6666/info')
|
||||
'';
|
||||
}
|
||||
)
|
||||
@ -13199,6 +13199,19 @@ final: prev: {
|
||||
meta.hydraPlatforms = [ ];
|
||||
};
|
||||
|
||||
search-and-replace-nvim = buildVimPlugin {
|
||||
pname = "search-and-replace.nvim";
|
||||
version = "2025-06-16";
|
||||
src = fetchFromGitHub {
|
||||
owner = "mahyarmirrashed";
|
||||
repo = "search-and-replace.nvim";
|
||||
rev = "12dce26afc7f3c66d6ffbf2eae91ce19d4cdcc74";
|
||||
sha256 = "0i197fs58qk6mgqsxi7cacba8sya7kh9cdnnz6sa79ry42cdff6a";
|
||||
};
|
||||
meta.homepage = "https://github.com/mahyarmirrashed/search-and-replace.nvim/";
|
||||
meta.hydraPlatforms = [ ];
|
||||
};
|
||||
|
||||
searchbox-nvim = buildVimPlugin {
|
||||
pname = "searchbox.nvim";
|
||||
version = "2025-01-09";
|
||||
|
||||
@ -124,6 +124,9 @@
|
||||
uv,
|
||||
# nvim-vstsl dependencies
|
||||
vtsls,
|
||||
# search-and-replace.nvim dependencies
|
||||
fd,
|
||||
sad,
|
||||
}:
|
||||
self: super:
|
||||
let
|
||||
@ -3022,6 +3025,13 @@ in
|
||||
dependencies = [ self.nui-nvim ];
|
||||
};
|
||||
|
||||
search-and-replace-nvim = super.search-and-replace-nvim.overrideAttrs {
|
||||
runtimeDeps = [
|
||||
fd
|
||||
sad
|
||||
];
|
||||
};
|
||||
|
||||
skim = buildVimPlugin {
|
||||
pname = "skim";
|
||||
inherit (skim) version;
|
||||
|
||||
@ -1,56 +1,58 @@
|
||||
#!/usr/bin/env nix-shell
|
||||
#!nix-shell update-shell.nix -i python
|
||||
#!nix-shell ./update-shell.nix -i python
|
||||
|
||||
import json
|
||||
import logging
|
||||
import os
|
||||
import subprocess
|
||||
from concurrent.futures import ThreadPoolExecutor
|
||||
from pathlib import Path
|
||||
|
||||
import requests
|
||||
|
||||
log = logging.getLogger("vim-updater")
|
||||
|
||||
NURR_JSON_URL = "https://raw.githubusercontent.com/nvim-neorocks/nurr/main/tree-sitter-parsers.json"
|
||||
NURR_JSON_URL = (
|
||||
"https://raw.githubusercontent.com/nvim-neorocks/nurr/main/tree-sitter-parsers.json"
|
||||
)
|
||||
|
||||
|
||||
def generate_grammar(lang, parser_info):
|
||||
"""Generate grammar for a language based on the parser info"""
|
||||
try:
|
||||
if "install_info" not in parser_info:
|
||||
log.warning(f"Parser {lang} does not have install_info, skipping")
|
||||
return ""
|
||||
if "install_info" not in parser_info:
|
||||
log.warning(f"Parser {lang} does not have install_info, skipping")
|
||||
return ""
|
||||
|
||||
install_info = parser_info["install_info"]
|
||||
install_info = parser_info["install_info"]
|
||||
|
||||
url = install_info["url"]
|
||||
rev = install_info["revision"]
|
||||
url = install_info["url"]
|
||||
rev = install_info["revision"]
|
||||
|
||||
generated = f""" {lang} = buildGrammar {{
|
||||
generated = f""" {lang} = buildGrammar {{
|
||||
language = "{lang}";
|
||||
version = "0.0.0+rev={rev[:7]}";
|
||||
src = """
|
||||
|
||||
generated += subprocess.check_output(["nurl", url, rev, "--indent=4"], text=True)
|
||||
generated += ";"
|
||||
generated += subprocess.check_output(
|
||||
["nurl", url, rev, "--indent=4"], text=True
|
||||
)
|
||||
generated += ";"
|
||||
|
||||
location = install_info.get("location", "")
|
||||
if location:
|
||||
generated += f"""
|
||||
location = install_info.get("location", "")
|
||||
if location:
|
||||
generated += f"""
|
||||
location = "{location}";"""
|
||||
|
||||
if install_info.get("generate", False):
|
||||
generated += """
|
||||
if install_info.get("generate", False):
|
||||
generated += """
|
||||
generate = true;"""
|
||||
|
||||
generated += f"""
|
||||
generated += f"""
|
||||
meta.homepage = "{url}";
|
||||
}};
|
||||
"""
|
||||
|
||||
return generated
|
||||
except Exception as e:
|
||||
log.error(f"Error generating grammar for {lang}: {e}")
|
||||
return ""
|
||||
return generated
|
||||
|
||||
|
||||
def fetch_nurr_parsers():
|
||||
@ -81,12 +83,7 @@ def fetch_nurr_parsers():
|
||||
|
||||
def process_parser_info(parser_info):
|
||||
"""Process a single parser info entry and generate grammar for it"""
|
||||
try:
|
||||
lang = parser_info["lang"]
|
||||
return generate_grammar(lang, parser_info)
|
||||
except Exception as e:
|
||||
log.error(f"Error processing parser: {e}")
|
||||
return ""
|
||||
return generate_grammar(parser_info["lang"], parser_info)
|
||||
|
||||
|
||||
def update_grammars():
|
||||
@ -119,13 +116,10 @@ def update_grammars():
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
logging.basicConfig(level=logging.INFO, format='%(levelname)s: %(message)s')
|
||||
logging.basicConfig(level=logging.INFO, format="%(levelname)s: %(message)s")
|
||||
|
||||
generated = update_grammars()
|
||||
output_path = os.path.join(
|
||||
os.path.dirname(__file__),
|
||||
"../../nvim-treesitter/generated.nix"
|
||||
)
|
||||
output_path = Path(__file__).parent.parent / "nvim-treesitter/generated.nix"
|
||||
log.info("Writing output to %s", output_path)
|
||||
with open(output_path, "w") as f:
|
||||
f.write(generated)
|
||||
|
||||
@ -1013,6 +1013,7 @@ https://github.com/tiagovla/scope.nvim/,HEAD,
|
||||
https://github.com/0xJohnnyboy/scretch.nvim/,HEAD,
|
||||
https://github.com/Xuyuanp/scrollbar.nvim/,,
|
||||
https://github.com/cakebaker/scss-syntax.vim/,,
|
||||
https://github.com/mahyarmirrashed/search-and-replace.nvim/,HEAD,
|
||||
https://github.com/VonHeikemen/searchbox.nvim/,,
|
||||
https://github.com/RobertAudi/securemodelines/,,
|
||||
https://github.com/megaannum/self/,,
|
||||
|
||||
@ -2129,8 +2129,8 @@ let
|
||||
mktplcRef = {
|
||||
name = "gitlab-workflow";
|
||||
publisher = "gitlab";
|
||||
version = "6.21.0";
|
||||
hash = "sha256-vaOAk4ovQjUcnBtxqMlRstYLvR6uzmqGk3Sx6zV6wvY=";
|
||||
version = "6.25.0";
|
||||
hash = "sha256-Y4NeeT2CddHj++hE0JxionmEPQHaIeibsrwztCjHYHs=";
|
||||
};
|
||||
meta = {
|
||||
description = "GitLab extension for Visual Studio Code";
|
||||
|
||||
@ -21,15 +21,22 @@ assert
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "box64";
|
||||
version = "0.3.4";
|
||||
version = "0.3.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ptitSeb";
|
||||
repo = "box64";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-CY5Emg5TsMVs++2EukhVzqn9440kF/BO8HZGQgCpGu4=";
|
||||
hash = "sha256-Z8r7aonVj7VSifgLKx/L7VRdGNnQtTvS4mjI+2+uPxY=";
|
||||
};
|
||||
|
||||
# Setting cpu doesn't seem to work (or maybe isn't enough / gets overwritten by the wrapper's arch flag?), errors about unsupported instructions for target
|
||||
# (this is for code that gets executed conditionally if the cpu at runtime supports their features, so setting this should be fine)
|
||||
postPatch = ''
|
||||
substituteInPlace CMakeLists.txt \
|
||||
--replace-fail 'ASMFLAGS -pipe -mcpu=cortex-a76' 'ASMFLAGS -pipe -march=armv8.2-a+fp16+dotprod'
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
python3
|
||||
|
||||
@ -1,77 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
gccStdenv,
|
||||
fetchFromGitLab,
|
||||
zlib,
|
||||
}:
|
||||
|
||||
let
|
||||
stdenv = gccStdenv;
|
||||
meta = with lib; {
|
||||
description = "Fast and exact comparison and clustering of sequences";
|
||||
homepage = "https://metabarcoding.org/sumatra";
|
||||
maintainers = [ maintainers.bzizou ];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
|
||||
in
|
||||
rec {
|
||||
|
||||
# Suma library
|
||||
sumalibs = stdenv.mkDerivation rec {
|
||||
version = "1.0.34";
|
||||
pname = "sumalibs";
|
||||
src = fetchFromGitLab {
|
||||
domain = "git.metabarcoding.org";
|
||||
owner = "obitools";
|
||||
repo = pname;
|
||||
rev = "sumalib_v${version}";
|
||||
sha256 = "0hwkrxzfz7m5wdjvmrhkjg8kis378iaqr5n4nhdhkwwhn8x1jn5a";
|
||||
};
|
||||
makeFlags = [ "PREFIX=$(out)" ];
|
||||
inherit meta;
|
||||
};
|
||||
|
||||
# Sumatra
|
||||
sumatra = stdenv.mkDerivation rec {
|
||||
version = "1.0.34";
|
||||
pname = "sumatra";
|
||||
src = fetchFromGitLab {
|
||||
domain = "git.metabarcoding.org";
|
||||
owner = "obitools";
|
||||
repo = pname;
|
||||
rev = "${pname}_v${version}";
|
||||
sha256 = "1bbpbdkshdc3xffqnr1qfy8qk64ldsmdc3s8mrcrlx132rgbi5f6";
|
||||
};
|
||||
buildInputs = [
|
||||
sumalibs
|
||||
zlib
|
||||
];
|
||||
makeFlags = [
|
||||
"LIBSUMA=${sumalibs}/lib/libsuma.a"
|
||||
"LIBSUMAPATH=-L${sumalibs}"
|
||||
"PREFIX=$(out)"
|
||||
];
|
||||
inherit meta;
|
||||
};
|
||||
|
||||
# Sumaclust
|
||||
sumaclust = stdenv.mkDerivation rec {
|
||||
version = "1.0.34";
|
||||
pname = "sumaclust";
|
||||
src = fetchFromGitLab {
|
||||
domain = "git.metabarcoding.org";
|
||||
owner = "obitools";
|
||||
repo = pname;
|
||||
rev = "${pname}_v${version}";
|
||||
sha256 = "0x8yi3k3jxhmv2krp4rcjlj2f9zg0qrk7gx4kpclf9c3yxgsgrds";
|
||||
};
|
||||
buildInputs = [ sumalibs ];
|
||||
makeFlags = [
|
||||
"LIBSUMA=${sumalibs}/lib/libsuma.a"
|
||||
"LIBSUMAPATH=-L${sumalibs}"
|
||||
"PREFIX=$(out)"
|
||||
];
|
||||
inherit meta;
|
||||
};
|
||||
}
|
||||
@ -360,45 +360,17 @@ rec {
|
||||
# Get revisions from
|
||||
# https://github.com/moby/moby/tree/${version}/hack/dockerfile/install/*
|
||||
docker_25 = callPackage dockerGen rec {
|
||||
version = "25.0.8";
|
||||
version = "25.0.10";
|
||||
# Upstream forgot to tag release
|
||||
# https://github.com/docker/cli/issues/5789
|
||||
cliRev = "43987fca488a535d810c429f75743d8c7b63bf4f";
|
||||
cliHash = "sha256-OwufdfuUPbPtgqfPeiKrQVkOOacU2g4ommHb770gV40=";
|
||||
mobyRev = "v${version}";
|
||||
mobyHash = "sha256-n7GdjQEceqyC7E2sPXQWyxpRThtH35eM/J20yLa5NSs=";
|
||||
runcRev = "v1.2.4";
|
||||
runcHash = "sha256-LdYCMxdqDP7rKo6Ek/B1DE6QvUFrltbSJVggkVkXQZo=";
|
||||
containerdRev = "v1.7.25";
|
||||
containerdHash = "sha256-T0F5bwxSCqa4Czs/W01NaAlJJFvgrzkBC1y/r+muivA=";
|
||||
tiniRev = "v0.19.0";
|
||||
tiniHash = "sha256-ZDKu/8yE5G0RYFJdhgmCdN3obJNyRWv6K/Gd17zc1sI=";
|
||||
};
|
||||
|
||||
docker_26 = callPackage dockerGen rec {
|
||||
version = "26.1.5";
|
||||
cliRev = "v${version}";
|
||||
cliHash = "sha256-UlN+Uc0YHhLyu14h5oDBXP4K9y2tYKPOIPTGZCe4PVY=";
|
||||
mobyRev = "v${version}";
|
||||
mobyHash = "sha256-6Hx7GnA7P6HqDlnGoc+HpPHSl69XezwAEGbvWYUVQlE=";
|
||||
runcRev = "v1.1.12";
|
||||
runcHash = "sha256-N77CU5XiGYIdwQNPFyluXjseTeaYuNJ//OsEUS0g/v0=";
|
||||
containerdRev = "v1.7.18";
|
||||
containerdHash = "sha256-IlK5IwniaBhqMgxQzV8btQcbdJkNEQeUMoh6aOsBOHQ=";
|
||||
tiniRev = "v0.19.0";
|
||||
tiniHash = "sha256-ZDKu/8yE5G0RYFJdhgmCdN3obJNyRWv6K/Gd17zc1sI=";
|
||||
};
|
||||
|
||||
docker_27 = callPackage dockerGen rec {
|
||||
version = "27.5.1";
|
||||
cliRev = "v${version}";
|
||||
cliHash = "sha256-7laxRfssh2aGfJeZI0PsJ/MCiy2npigSmCa1SUlWY4s=";
|
||||
mobyRev = "v${version}";
|
||||
mobyHash = "sha256-q+VCJZ93jvPJQE0xn89prH/6spsarVY3VUEmgwyMxU4=";
|
||||
runcRev = "v1.2.4";
|
||||
runcHash = "sha256-LdYCMxdqDP7rKo6Ek/B1DE6QvUFrltbSJVggkVkXQZo=";
|
||||
containerdRev = "v1.7.25";
|
||||
containerdHash = "sha256-T0F5bwxSCqa4Czs/W01NaAlJJFvgrzkBC1y/r+muivA=";
|
||||
mobyHash = "sha256-57iXL+QYtbEz099yOTR4k/2Z7CT08OAkQ3kVJSmsa/U=";
|
||||
runcRev = "v1.2.5";
|
||||
runcHash = "sha256-J/QmOZxYnMPpzm87HhPTkYdt+fN+yeSUu2sv6aUeTY4=";
|
||||
containerdRev = "v1.7.27";
|
||||
containerdHash = "sha256-H94EHnfW2Z59KcHcbfJn+BipyZiNUvHe50G5EXbrIps=";
|
||||
tiniRev = "v0.19.0";
|
||||
tiniHash = "sha256-ZDKu/8yE5G0RYFJdhgmCdN3obJNyRWv6K/Gd17zc1sI=";
|
||||
};
|
||||
|
||||
@ -1,10 +1,10 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
stdenvNoCC,
|
||||
fetchFromGitHub,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
stdenvNoCC.mkDerivation {
|
||||
pname = "antonio";
|
||||
version = "0-unstable-2013-11-21";
|
||||
|
||||
|
||||
@ -0,0 +1,21 @@
|
||||
The clean command line compiler clm uses timestamps of dcl, icl, abc and o files
|
||||
to decide what must be rebuild. However as for chroot builds, all of the
|
||||
library files will have equal timestamps, this leads to clm trying to rebuild
|
||||
the library modules distributed with the Clean installation every time a user
|
||||
compiles any file, which fails ue to the absence of write permission on the Nix
|
||||
store.
|
||||
|
||||
This patch changes the freshness check to use less than instead of less than or
|
||||
equal to in order to avoid this.
|
||||
|
||||
--- b/src/clm/clm.c
|
||||
+++ a/src/clm/clm.c
|
||||
@@ -250,7 +250,7 @@
|
||||
|| (t1.dwHighDateTime==t2.dwHighDateTime && (unsigned)(t1.dwLowDateTime)<=(unsigned)(t2.dwLowDateTime)))
|
||||
#else
|
||||
typedef unsigned long FileTime;
|
||||
-# define FILE_TIME_LE(t1,t2) (t1<=t2)
|
||||
+# define FILE_TIME_LE(t1,t2) (t1<t2)
|
||||
#endif
|
||||
|
||||
typedef struct project_node {
|
||||
@ -0,0 +1,22 @@
|
||||
--- a/src/RuntimeSystem/scon.c
|
||||
+++ b/src/RuntimeSystem/scon.c
|
||||
@@ -858,6 +858,8 @@
|
||||
int execution_aborted;
|
||||
int return_code;
|
||||
|
||||
+extern void abc_main (void);
|
||||
+
|
||||
int main (int argc,char **argv)
|
||||
{
|
||||
int arg_n;
|
||||
|
||||
--- a/src/clm/cachingcompiler.h
|
||||
+++ b/src/clm/cachingcompiler.h
|
||||
@@ -1,6 +1,7 @@
|
||||
Clean (:: *Thread :== Int)
|
||||
int start_caching_compiler (CleanCharArray compiler_path);
|
||||
Clean (start_caching_compiler :: {#Char} Thread -> (Int, Thread))
|
||||
+int start_caching_compiler_with_args (CleanCharArray coc_path, char** cocl_argv, int cocl_argv_size);
|
||||
int call_caching_compiler (CleanCharArray args);
|
||||
Clean (call_caching_compiler :: {#Char} Thread -> (Int, Thread))
|
||||
int stop_caching_compiler (void);
|
||||
80
pkgs/by-name/cl/clean/package.nix
Normal file
80
pkgs/by-name/cl/clean/package.nix
Normal file
@ -0,0 +1,80 @@
|
||||
{
|
||||
binutils,
|
||||
fetchurl,
|
||||
gcc,
|
||||
lib,
|
||||
runCommand,
|
||||
stdenv,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "clean";
|
||||
version = "3.1";
|
||||
|
||||
src =
|
||||
if stdenv.hostPlatform.system == "i686-linux" then
|
||||
(fetchurl {
|
||||
url = "https://ftp.cs.ru.nl/Clean/Clean31/linux/clean3.1_32_boot.tar.gz";
|
||||
sha256 = "Ls0IKf+o7yhRLhtSV61jzmnYukfh5x5fogHaP5ke/Ck=";
|
||||
})
|
||||
else if stdenv.hostPlatform.system == "x86_64-linux" then
|
||||
(fetchurl {
|
||||
url = "https://ftp.cs.ru.nl/Clean/Clean31/linux/clean3.1_64_boot.tar.gz";
|
||||
sha256 = "Gg5CVZjrwDBtV7Vuw21Xj6Rn+qN1Mf6B3ls6r/16oBc=";
|
||||
})
|
||||
else
|
||||
throw "Architecture not supported";
|
||||
|
||||
hardeningDisable = [ "pic" ];
|
||||
|
||||
patches = [
|
||||
./chroot-build-support-do-not-rebuild-equal-timestamps.patch
|
||||
./declare-functions-explicitly-for-gcc14.patch
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace Makefile \
|
||||
--replace-fail 'INSTALL_DIR = $(CURRENTDIR)' "INSTALL_DIR = $out"
|
||||
substituteInPlace src/clm/clm.c \
|
||||
--replace-fail /usr/bin/as ${binutils}/bin/as \
|
||||
--replace-fail /usr/bin/gcc ${gcc}/bin/gcc
|
||||
'';
|
||||
|
||||
buildFlags = [ "-C src/" ];
|
||||
|
||||
# do not strip libraries and executables since all symbols since they are
|
||||
# required as is for compilation. Especially the labels of unused section need
|
||||
# to be kept.
|
||||
dontStrip = true;
|
||||
|
||||
passthru.tests.compile-hello-world = runCommand "compile-hello-world" { } ''
|
||||
cat >HelloWorld.icl <<EOF
|
||||
module HelloWorld
|
||||
Start = "Hello, world!"
|
||||
EOF
|
||||
${finalAttrs.finalPackage}/bin/clm HelloWorld -o hello-world
|
||||
touch $out
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "General purpose, state-of-the-art, pure and lazy functional programming language";
|
||||
longDescription = ''
|
||||
Clean is a general purpose, state-of-the-art, pure and lazy functional
|
||||
programming language designed for making real-world applications. Some
|
||||
of its most notable language features are uniqueness typing, dynamic typing,
|
||||
and generic functions.
|
||||
'';
|
||||
|
||||
homepage = "http://wiki.clean.cs.ru.nl/Clean";
|
||||
license = lib.licenses.bsd2;
|
||||
maintainers = with lib.maintainers; [
|
||||
bmrips
|
||||
erin
|
||||
];
|
||||
platforms = [
|
||||
"i686-linux"
|
||||
"x86_64-linux"
|
||||
];
|
||||
mainProgram = "clean";
|
||||
};
|
||||
})
|
||||
@ -45,11 +45,11 @@ let
|
||||
in
|
||||
stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
pname = "copilot-language-server";
|
||||
version = "1.330.0";
|
||||
version = "1.335.0";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://github.com/github/copilot-language-server-release/releases/download/${finalAttrs.version}/copilot-language-server-native-${finalAttrs.version}.zip";
|
||||
hash = "sha256-/Em00UVEg46gEI52fG7aQo2rqKwqrF3V1tAVx2hpyMc=";
|
||||
hash = "sha256-ZMnbfVLe1ZtYYCaMhSNqeWfHEtKJf8BImiipypa57w0=";
|
||||
stripRoot = false;
|
||||
};
|
||||
|
||||
|
||||
@ -14,12 +14,14 @@ stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
hash = "sha256-XYL76L266MKqClxfbPn/C6+x/vcs7AD56DtiDmQam2A=";
|
||||
};
|
||||
|
||||
sourceRoot = "${finalAttrs.src.name}/DepartureMono-${finalAttrs.version}";
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
install -D -m 444 DepartureMono-1.500/*.otf -t $out/share/fonts/otf
|
||||
install -D -m 444 DepartureMono-1.500/*.woff -t $out/share/fonts/woff
|
||||
install -D -m 444 DepartureMono-1.500/*.woff2 -t $out/share/fonts/woff2
|
||||
install -D -m 444 *.otf -t $out/share/fonts/otf
|
||||
install -D -m 444 *.woff -t $out/share/fonts/woff
|
||||
install -D -m 444 *.woff2 -t $out/share/fonts/woff2
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
@ -1,43 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
appimageTools,
|
||||
fetchurl,
|
||||
}:
|
||||
|
||||
let
|
||||
version = "0.7.2";
|
||||
pname = "devdocs-desktop";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/egoist/devdocs-desktop/releases/download/v${version}/DevDocs-${version}.AppImage";
|
||||
sha256 = "sha256-4ugpzh0Dweae6tKb6uqRhEW9HT+iVIo8MQRbVKTdRFw=";
|
||||
};
|
||||
|
||||
appimageContents = appimageTools.extractType2 {
|
||||
inherit pname version src;
|
||||
};
|
||||
|
||||
in
|
||||
appimageTools.wrapType2 rec {
|
||||
inherit pname version src;
|
||||
|
||||
extraInstallCommands = ''
|
||||
install -m 444 -D ${appimageContents}/devdocs.desktop $out/share/applications/devdocs.desktop
|
||||
install -m 444 -D ${appimageContents}/devdocs.png $out/share/icons/hicolor/0x0/apps/devdocs.png
|
||||
substituteInPlace $out/share/applications/devdocs.desktop \
|
||||
--replace 'Exec=AppRun' 'Exec=${pname}'
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Full-featured desktop app for DevDocs.io";
|
||||
longDescription = ''
|
||||
DevDocs.io combines multiple API documentations in a fast, organized, and searchable interface. This is an unofficial desktop app for it.
|
||||
'';
|
||||
homepage = "https://github.com/egoist/devdocs-desktop";
|
||||
downloadPage = "https://github.com/egoist/devdocs-desktop/releases";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ ymarkus ];
|
||||
platforms = [ "x86_64-linux" ];
|
||||
mainProgram = "devdocs-desktop";
|
||||
};
|
||||
}
|
||||
6
pkgs/by-name/de/devmode/README.md
Normal file
6
pkgs/by-name/de/devmode/README.md
Normal file
@ -0,0 +1,6 @@
|
||||
# `devmode`
|
||||
|
||||
`devmode` is a daemon, that:
|
||||
1. watches the manual's source for changes and when they occur — rebuilds
|
||||
2. HTTP serves the manual, injecting a script that triggers reload on changes
|
||||
3. opens the manual in the default browser
|
||||
@ -8,14 +8,14 @@
|
||||
|
||||
python3Packages.buildPythonPackage {
|
||||
pname = "edl";
|
||||
version = "3.52.1-unstable-2025-05-05";
|
||||
version = "3.52.1-unstable-2025-06-08";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "bkerler";
|
||||
repo = "edl";
|
||||
rev = "407f1a98572cd41bfb9fbda3c15db854d42a54f6";
|
||||
rev = "bc1534496c83571b199b30b64774abc495744418";
|
||||
fetchSubmodules = true;
|
||||
hash = "sha256-KISUWlQxblNMaBoL+cckgEBAIJUgBXBNr1w1Z2kVIIc=";
|
||||
hash = "sha256-aWNYTWbCHFhPBVH2tEfEdW3n35OKoQ2DPxnUDcSghWM=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = with python3Packages; [
|
||||
|
||||
3
pkgs/by-name/ey/eyed3/package.nix
Normal file
3
pkgs/by-name/ey/eyed3/package.nix
Normal file
@ -0,0 +1,3 @@
|
||||
{ python3Packages }:
|
||||
|
||||
python3Packages.toPythonApplication python3Packages.eyed3
|
||||
@ -7,6 +7,7 @@
|
||||
dbus,
|
||||
xorg,
|
||||
pkg-config,
|
||||
protobuf,
|
||||
writableTmpDirAsHomeHook,
|
||||
nix-update-script,
|
||||
llvmPackages,
|
||||
@ -26,19 +27,22 @@ let
|
||||
in
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "goose-cli";
|
||||
version = "1.0.24";
|
||||
version = "1.0.27";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "block";
|
||||
repo = "goose";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-pkqZZwA25IszAnaW0G5adUI2NIEqqQnTQRqlqHWgJRg=";
|
||||
hash = "sha256-+HNAOw/BJVNHiDHeEBKoAAs66IXCdYhm1VzVFIzk4m8=";
|
||||
};
|
||||
|
||||
useFetchCargoVendor = true;
|
||||
cargoHash = "sha256-Wct5XnBueG58+A4zZpcKy0vA2Kjwmtk505JZKNPFTDQ=";
|
||||
cargoHash = "sha256-v+UQFbFpkwX+7oNFvKf2v2u3OSkPdgOWntXLW6XJibE=";
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
protobuf
|
||||
];
|
||||
|
||||
buildInputs = [ dbus ] ++ lib.optionals stdenv.hostPlatform.isLinux [ xorg.libxcb ];
|
||||
|
||||
@ -70,6 +74,10 @@ rustPlatform.buildRustPackage (finalAttrs: {
|
||||
"--skip=logging::tests::test_log_file_name::with_session_name_without_error_capture"
|
||||
"--skip=logging::tests::test_log_file_name::without_session_name"
|
||||
"--skip=developer::tests::test_text_editor_str_replace"
|
||||
# need API keys
|
||||
"--skip=providers::factory::tests::test_create_lead_worker_provider"
|
||||
"--skip=providers::factory::tests::test_create_regular_provider_without_lead_config"
|
||||
"--skip=providers::factory::tests::test_lead_model_env_vars_with_defaults"
|
||||
]
|
||||
++ lib.optionals stdenv.hostPlatform.isDarwin [
|
||||
"--skip=providers::gcpauth::tests::test_load_from_metadata_server"
|
||||
|
||||
@ -3,17 +3,16 @@
|
||||
buildGoModule,
|
||||
fetchFromGitHub,
|
||||
testers,
|
||||
goreman,
|
||||
}:
|
||||
|
||||
buildGoModule rec {
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "goreman";
|
||||
version = "0.3.16";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mattn";
|
||||
repo = "goreman";
|
||||
rev = "v${version}";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-hOFnLxHsrauOrsbJYKNrwFFT5yYX/rdZUVjscBIGDLo=";
|
||||
};
|
||||
|
||||
@ -25,15 +24,15 @@ buildGoModule rec {
|
||||
];
|
||||
|
||||
passthru.tests.version = testers.testVersion {
|
||||
package = goreman;
|
||||
package = finalAttrs.finalPackage;
|
||||
command = "goreman version";
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
description = "foreman clone written in go language";
|
||||
mainProgram = "goreman";
|
||||
homepage = "https://github.com/mattn/goreman";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ zimbatm ];
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ zimbatm ];
|
||||
};
|
||||
}
|
||||
})
|
||||
|
||||
@ -8,10 +8,10 @@
|
||||
}:
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "halo";
|
||||
version = "2.20.21";
|
||||
version = "2.21.0";
|
||||
src = fetchurl {
|
||||
url = "https://github.com/halo-dev/halo/releases/download/v${version}/halo-${version}.jar";
|
||||
hash = "sha256-hUR5zG6jr8u8pFaGcZJs8MFv+WBMm1oDo6zGaS4Y7BI=";
|
||||
hash = "sha256-taEaHhPy/jR2ThY9Qk+cded3+LyZSNnrytWh8G5zqVE=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@ -1,44 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchurl,
|
||||
pkg-config,
|
||||
libjack2,
|
||||
ladspaH,
|
||||
gtk2,
|
||||
alsa-lib,
|
||||
libxml2,
|
||||
lrdf,
|
||||
}:
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "jack-rack";
|
||||
version = "1.4.7";
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.bz2";
|
||||
sha256 = "1lmibx9gicagcpcisacj6qhq6i08lkl5x8szysjqvbgpxl9qg045";
|
||||
};
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
buildInputs = [
|
||||
libjack2
|
||||
ladspaH
|
||||
gtk2
|
||||
alsa-lib
|
||||
libxml2
|
||||
lrdf
|
||||
];
|
||||
NIX_LDFLAGS = "-lm -lpthread";
|
||||
|
||||
meta = {
|
||||
description = ''An effects "rack" for the JACK low latency audio API'';
|
||||
longDescription = ''
|
||||
JACK Rack is an effects "rack" for the JACK low latency audio
|
||||
API. The rack can be filled with LADSPA effects plugins and can
|
||||
be controlled using the ALSA sequencer. It's phat; it turns your
|
||||
computer into an effects box.
|
||||
'';
|
||||
homepage = "https://jack-rack.sourceforge.net/";
|
||||
license = lib.licenses.gpl2Plus;
|
||||
maintainers = [ lib.maintainers.astsmtl ];
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
}
|
||||
@ -11,13 +11,13 @@
|
||||
}:
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
pname = "kcc";
|
||||
version = "7.3.3";
|
||||
version = "7.4.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ciromattia";
|
||||
repo = "kcc";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-6zHUV4s1bOdARsTwNRxFM+s0p+6FLJhqJ9qG5BaBgas=";
|
||||
hash = "sha256-9XYc749dSFNYK61BfuNxH/CJrT/P7YsXNroBsHcsZNA=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ qt6.wrapQtAppsHook ];
|
||||
|
||||
@ -8,16 +8,16 @@
|
||||
|
||||
buildNpmPackage rec {
|
||||
pname = "lint-staged";
|
||||
version = "16.1.0";
|
||||
version = "16.1.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "okonet";
|
||||
repo = "lint-staged";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-dR0z/60CHDqCl9pEc9KQww1S5aSZ4XGsfNqxBSZe0Ig=";
|
||||
hash = "sha256-DBLS0hMu2mG4+sGhhGjIlfj2y2A33RccEP3plweaKio=";
|
||||
};
|
||||
|
||||
npmDepsHash = "sha256-MznWvv61Z+8t+Nicj6yWlQqUHVx7AAtkDXu2L2E5dw8=";
|
||||
npmDepsHash = "sha256-LJipxwO5B01KlfjOVhlhw5veH2+wpzWm0EwcRdVFleQ=";
|
||||
|
||||
dontNpmBuild = true;
|
||||
|
||||
|
||||
@ -47,6 +47,7 @@ stdenv.mkDerivation rec {
|
||||
++ lib.optionals withPython [
|
||||
swig
|
||||
python3.pkgs.setuptools
|
||||
python3.pkgs.pythonImportsCheckHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
@ -82,6 +83,13 @@ stdenv.mkDerivation rec {
|
||||
(lib.cmakeBool "CMAKE_SKIP_BUILD_RPATH" true)
|
||||
];
|
||||
|
||||
postInstall = lib.optionalString withPython ''
|
||||
mkdir -p $out/${python3.sitePackages}
|
||||
cp -r src/mapscript/python/mapscript $out/${python3.sitePackages}
|
||||
'';
|
||||
|
||||
pythonImportsCheck = [ "mapscript" ];
|
||||
|
||||
meta = {
|
||||
description = "Platform for publishing spatial data and interactive mapping applications to the web";
|
||||
homepage = "https://mapserver.org/";
|
||||
|
||||
@ -1,21 +1,21 @@
|
||||
{
|
||||
"version": "3.143.0",
|
||||
"version": "3.144.0",
|
||||
"assets": {
|
||||
"x86_64-linux": {
|
||||
"url": "https://github.com/metalbear-co/mirrord/releases/download/3.143.0/mirrord_linux_x86_64",
|
||||
"hash": "sha256-0wu90iNAP7OQYENHIPsTSPk8Ko2jK0uBdZWe2d1URS8="
|
||||
"url": "https://github.com/metalbear-co/mirrord/releases/download/3.144.0/mirrord_linux_x86_64",
|
||||
"hash": "sha256-XbveB71EIChiuPVfqOshEhPZHnTGd7xJt48/zuyq5TA="
|
||||
},
|
||||
"aarch64-linux": {
|
||||
"url": "https://github.com/metalbear-co/mirrord/releases/download/3.143.0/mirrord_linux_aarch64",
|
||||
"hash": "sha256-MWQ5k9Tk6q7f5QQ3Og9O5dyEDd+wNi3FFYqbFpa7uxM="
|
||||
"url": "https://github.com/metalbear-co/mirrord/releases/download/3.144.0/mirrord_linux_aarch64",
|
||||
"hash": "sha256-4Tw68aWpNsjfi6d7qgBhbVvAMsHwUsttfVSpx3Kv2Nk="
|
||||
},
|
||||
"aarch64-darwin": {
|
||||
"url": "https://github.com/metalbear-co/mirrord/releases/download/3.143.0/mirrord_mac_universal",
|
||||
"hash": "sha256-GdwZWtNTuiUf+DcuZkVUm0YVH0EKfT6V6clcv1E7BxY="
|
||||
"url": "https://github.com/metalbear-co/mirrord/releases/download/3.144.0/mirrord_mac_universal",
|
||||
"hash": "sha256-FhRgopH7QRH+30Bofoiwdx3Vlne6D/ftaqhGuUnyH0g="
|
||||
},
|
||||
"x86_64-darwin": {
|
||||
"url": "https://github.com/metalbear-co/mirrord/releases/download/3.143.0/mirrord_mac_universal",
|
||||
"hash": "sha256-GdwZWtNTuiUf+DcuZkVUm0YVH0EKfT6V6clcv1E7BxY="
|
||||
"url": "https://github.com/metalbear-co/mirrord/releases/download/3.144.0/mirrord_mac_universal",
|
||||
"hash": "sha256-FhRgopH7QRH+30Bofoiwdx3Vlne6D/ftaqhGuUnyH0g="
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -7,13 +7,13 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "mkbrr";
|
||||
version = "1.12.1";
|
||||
version = "1.13.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "autobrr";
|
||||
repo = "mkbrr";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-gUIX271eaG15329pLnZ8QnZD7BrdCk+cWs43uUzKxOE=";
|
||||
hash = "sha256-E5UiV7JoMzmnj8/LzVDqOuPNSockgmExmc0B9+KjGII=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-G8WM5x99UZfAZUkE5W37Ogx/OKk8JypPzGBrIuBOFNo=";
|
||||
|
||||
@ -40,5 +40,6 @@ rustPlatform.buildRustPackage rec {
|
||||
homepage = "https://github.com/nikstur/nix-store-veritysetup-generator";
|
||||
license = licenses.mit;
|
||||
maintainers = with lib.maintainers; [ nikstur ];
|
||||
mainProgram = "nix-store-veritysetup-generator";
|
||||
};
|
||||
}
|
||||
|
||||
@ -11,17 +11,17 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "novops";
|
||||
version = "0.19.0";
|
||||
version = "0.20.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "PierreBeucher";
|
||||
repo = "novops";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-bpv8Ybrsb2CAV8Qxj69F2E/mekYsOuAiZWuDNHDtxw0=";
|
||||
hash = "sha256-TvlbA9RXuAPm1rN3VaIrVKMfyePT9oLSh87Bqclwcj8=";
|
||||
};
|
||||
|
||||
useFetchCargoVendor = true;
|
||||
cargoHash = "sha256-w5jBCVoLm0zzLMa7COHsQbHq+TlJZCnabNZyO8nlTKk=";
|
||||
cargoHash = "sha256-oXOK8LQZ2+u566HIi0DYuocEsZMfj1ogkHciH8hFVR8=";
|
||||
|
||||
buildInputs =
|
||||
[
|
||||
|
||||
@ -8,13 +8,13 @@
|
||||
|
||||
stdenvNoCC.mkDerivation rec {
|
||||
pname = "pfetch";
|
||||
version = "1.9.0";
|
||||
version = "1.9.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Un1q32";
|
||||
repo = "pfetch";
|
||||
tag = version;
|
||||
hash = "sha256-DWntcAowiia4gEiYcZCJ6+uDGQ5h2eh/XwSSW+ThPKY=";
|
||||
hash = "sha256-a2ay+Ag9vYwGGENRPCcFLCmtyOCyHhF6/P7NAn/CzSI=";
|
||||
};
|
||||
|
||||
dontBuild = true;
|
||||
|
||||
@ -109,9 +109,12 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
done
|
||||
|
||||
# Rewrite library references for all executables.
|
||||
find "$out" -executable -type f | while read executable; do
|
||||
install_name_tool "''${change_args[@]}" "$executable"
|
||||
done
|
||||
find "$out" -type f -executable -path "*/bin/*" -o -type f -executable -path "*/share/*/samples/*" \
|
||||
| while read executable; do
|
||||
if isMachO "$executable"; then
|
||||
install_name_tool "''${change_args[@]}" "$executable"
|
||||
fi
|
||||
done
|
||||
'';
|
||||
|
||||
# We need the libgcc_s.so.1 loadable (for pthread_cancel to work)
|
||||
|
||||
@ -3,19 +3,15 @@
|
||||
fetchgit,
|
||||
fetchFromGitHub,
|
||||
rustPlatform,
|
||||
pkg-config,
|
||||
pkgconf,
|
||||
openssl,
|
||||
fuse3,
|
||||
libuuid,
|
||||
acl,
|
||||
libxcrypt,
|
||||
git,
|
||||
installShellFiles,
|
||||
sphinx,
|
||||
systemd,
|
||||
stdenv,
|
||||
fetchpatch,
|
||||
versionCheckHook,
|
||||
}:
|
||||
|
||||
@ -113,12 +109,19 @@ rustPlatform.buildRustPackage {
|
||||
|
||||
cp ${./Cargo.lock} Cargo.lock
|
||||
rm .cargo/config.toml
|
||||
|
||||
# avoid some unnecessary dependendcies, stemming from greedy linkage by rustc
|
||||
# see also upstream Makefile for similar workaround
|
||||
mkdir -p .dep-stubs
|
||||
echo '!<arch>' >.dep-stubs/libsystemd.a
|
||||
echo '!<arch>' >.dep-stubs/libuuid.a
|
||||
echo '!<arch>' >.dep-stubs/libcrypt.a
|
||||
'';
|
||||
|
||||
postBuild = ''
|
||||
make -C docs \
|
||||
DEB_VERSION=${version} DEB_VERSION_UPSTREAM=${version} \
|
||||
RUSTC_TARGET=${stdenv.hostPlatform.config} \
|
||||
RUSTC_TARGET=${stdenv.targetPlatform.rust.rustcTarget} \
|
||||
BUILD_MODE=release \
|
||||
proxmox-backup-client.1 pxar.1
|
||||
'';
|
||||
@ -147,25 +150,28 @@ rustPlatform.buildRustPackage {
|
||||
"--bin=pxar"
|
||||
];
|
||||
|
||||
RUSTFLAGS = [ "-L.dep-stubs" ];
|
||||
|
||||
doCheck = false;
|
||||
|
||||
# pbs-buildcfg requires this set, would be the git commit id
|
||||
REPOID = "";
|
||||
|
||||
nativeBuildInputs = [
|
||||
git
|
||||
pkg-config
|
||||
pkgconf
|
||||
rustPlatform.bindgenHook
|
||||
installShellFiles
|
||||
sphinx
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
openssl
|
||||
fuse3
|
||||
libuuid
|
||||
acl
|
||||
libxcrypt
|
||||
systemd.dev
|
||||
];
|
||||
|
||||
strictDeps = true;
|
||||
|
||||
doInstallCheck = true;
|
||||
nativeInstallCheckInputs = [ versionCheckHook ];
|
||||
versionCheckProgramArg = "version";
|
||||
|
||||
@ -7,13 +7,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "quill-log";
|
||||
version = "9.0.3";
|
||||
version = "10.0.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "odygrd";
|
||||
repo = "quill";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-G7DUxN32g32744kfGVth4G7GJz8xguIfvX/ojkgh/Ao=";
|
||||
hash = "sha256-za0ech+rkhhtFumrkMMJXccd14PKXoiBQPXSYcK8Y7A=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
|
||||
@ -10,13 +10,13 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "s-search";
|
||||
version = "0.7.2";
|
||||
version = "0.7.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "zquestz";
|
||||
repo = "s";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-5hkorROs11nrDK5/BBEPIugVYeVUWtAnpCBBuKTj15g=";
|
||||
hash = "sha256-g+Gz16U5rP3v+RbutDUh5+1YdTDe+ROFEnNAlNZX1fw=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-0E/9fONanSxb2Tv5wKIpf1J/A6Hdge23xy3r6pFyV9E=";
|
||||
|
||||
@ -19,14 +19,14 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "s7";
|
||||
version = "11.5-unstable-2025-06-14";
|
||||
version = "11.5-unstable-2025-06-15";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
domain = "cm-gitlab.stanford.edu";
|
||||
owner = "bil";
|
||||
repo = "s7";
|
||||
rev = "02ac5499a1273553c344b1cba3363cef9fd18f41";
|
||||
hash = "sha256-VqkQT5N/ggIRVL98puikMJEBwenhMGx+Fwfx99prYc4=";
|
||||
rev = "9ab3baa97bd90b1fb3d8d7cef1e0adc31f89c6e2";
|
||||
hash = "sha256-ZhhaRdk6hf+tu2THGFnnpTB/0VE8h87RxLDT46MuiLc=";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
|
||||
22
pkgs/by-name/sg/sgdboop/hide_desktop_entry.patch
Normal file
22
pkgs/by-name/sg/sgdboop/hide_desktop_entry.patch
Normal file
@ -0,0 +1,22 @@
|
||||
From a4ca664abfac0b7efa7dbc48c6438bc1a5333962 Mon Sep 17 00:00:00 2001
|
||||
From: Fazzi <faaris.ansari@proton.me>
|
||||
Date: Sat, 24 May 2025 20:55:50 +0100
|
||||
Subject: [PATCH] desktopFile: hide entry from app launchers
|
||||
|
||||
---
|
||||
linux-release/com.steamgriddb.SGDBoop.desktop | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/linux-release/com.steamgriddb.SGDBoop.desktop b/linux-release/com.steamgriddb.SGDBoop.desktop
|
||||
index 9c84cdb..9899682 100644
|
||||
--- a/linux-release/com.steamgriddb.SGDBoop.desktop
|
||||
+++ b/linux-release/com.steamgriddb.SGDBoop.desktop
|
||||
@@ -4,7 +4,7 @@ Comment=Apply Steam assets from SteamGridDB
|
||||
Exec=SGDBoop %U
|
||||
Terminal=false
|
||||
Type=Application
|
||||
-NoDisplay=false
|
||||
+NoDisplay=true
|
||||
Icon=com.steamgriddb.SGDBoop
|
||||
MimeType=x-scheme-handler/sgdb
|
||||
Categories=Utility
|
||||
60
pkgs/by-name/sg/sgdboop/package.nix
Normal file
60
pkgs/by-name/sg/sgdboop/package.nix
Normal file
@ -0,0 +1,60 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
curl,
|
||||
pkg-config,
|
||||
wrapGAppsHook3,
|
||||
}:
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "sgdboop";
|
||||
version = "1.3.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "SteamGridDB";
|
||||
repo = "SGDBoop";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-FpVQQo2N/qV+cFhYZ1FVm+xlPHSVMH4L+irnQEMlUQs=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Hide the app from app launchers, as it is not meant to be run directly
|
||||
# Remove when https://github.com/SteamGridDB/SGDBoop/pull/112 is merged
|
||||
./hide_desktop_entry.patch
|
||||
];
|
||||
|
||||
makeFlags = [
|
||||
# The flatpak install just copies things to /app - otherwise wants to do things with XDG
|
||||
"FLATPAK_ID=fake"
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace Makefile \
|
||||
--replace-fail "/app/" "$out/"
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
rm -r "$out/share/metainfo"
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
wrapGAppsHook3
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
curl
|
||||
];
|
||||
|
||||
meta = {
|
||||
description = "Applying custom artwork to Steam, using SteamGridDB";
|
||||
homepage = "https://github.com/SteamGridDB/SGDBoop/";
|
||||
license = lib.licenses.zlib;
|
||||
maintainers = with lib.maintainers; [
|
||||
saturn745
|
||||
fazzi
|
||||
];
|
||||
mainProgram = "SGDBoop";
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
}
|
||||
@ -12,13 +12,13 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "shellhub-agent";
|
||||
version = "0.19.0";
|
||||
version = "0.19.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "shellhub-io";
|
||||
repo = "shellhub";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-xoGOiaUIjlR2l+l+oM1s3J7YBW9af2dfd+hXwq8zZU8=";
|
||||
hash = "sha256-xFCUq1x9C+W1xxo6UIpW7ej7ltquvEqNUUvvF86rA9o=";
|
||||
};
|
||||
|
||||
modRoot = "./agent";
|
||||
|
||||
30
pkgs/by-name/sm/smfh/package.nix
Normal file
30
pkgs/by-name/sm/smfh/package.nix
Normal file
@ -0,0 +1,30 @@
|
||||
{
|
||||
lib,
|
||||
rustPlatform,
|
||||
fetchFromGitHub,
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "smfh";
|
||||
version = "1.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "feel-co";
|
||||
repo = "smfh";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-/9Ww10kYopxfCNNnNDwENTubs7Wzqlw+O6PJAHNOYQw=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-MpqbmhjNsE1krs7g3zWSXGxzb4G/A+cz/zxD2Jk2HC8=";
|
||||
|
||||
meta = {
|
||||
description = "Sleek Manifest File Handler";
|
||||
homepage = "https://github.com/feel-co/smfh";
|
||||
license = lib.licenses.agpl3Only;
|
||||
maintainers = with lib.maintainers; [
|
||||
arthsmn
|
||||
gerg-l
|
||||
];
|
||||
mainProgram = "smfh";
|
||||
};
|
||||
})
|
||||
@ -1,50 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
appimageTools,
|
||||
fetchurl,
|
||||
makeWrapper,
|
||||
nix-update-script,
|
||||
}:
|
||||
let
|
||||
version = "3.3.0";
|
||||
pname = "station";
|
||||
src = fetchurl {
|
||||
url = "https://github.com/getstation/desktop-app/releases/download/v${version}/Station-x86_64.AppImage";
|
||||
hash = "sha256-OiUVRKpU2W1dJ6z9Dqvxd+W4/oNpG+Zolj43ZHpKaO0=";
|
||||
};
|
||||
appimageContents = appimageTools.extractType2 {
|
||||
inherit pname version src;
|
||||
};
|
||||
in
|
||||
appimageTools.wrapType2 {
|
||||
inherit pname version src;
|
||||
extraInstallCommands = ''
|
||||
source "${makeWrapper}/nix-support/setup-hook"
|
||||
wrapProgram $out/bin/${pname} \
|
||||
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}"
|
||||
install -m 444 -D ${appimageContents}/station-desktop-app.desktop \
|
||||
$out/share/applications/station-desktop-app.desktop
|
||||
install -m 444 -D ${appimageContents}/usr/share/icons/hicolor/512x512/apps/station-desktop-app.png \
|
||||
$out/share/icons/hicolor/512x512/apps/station-desktop-app.png
|
||||
substituteInPlace $out/share/applications/station-desktop-app.desktop \
|
||||
--replace-fail 'Exec=AppRun' 'Exec=station'
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = nix-update-script {
|
||||
extraArgs = [ "--url=https://github.com/getstation/desktop-app" ];
|
||||
};
|
||||
};
|
||||
|
||||
meta = {
|
||||
changelog = "https://github.com/getstation/desktop-app/releases/tag/v${version}";
|
||||
description = "A single place for all of your web applications";
|
||||
downloadPage = "https://github.com/getstation/desktop-app/releases";
|
||||
homepage = "https://getstation.com/";
|
||||
license = lib.licenses.asl20;
|
||||
mainProgram = "station";
|
||||
maintainers = with lib.maintainers; [ flexiondotorg ];
|
||||
platforms = [ "x86_64-linux" ];
|
||||
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
|
||||
};
|
||||
}
|
||||
@ -13,17 +13,17 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "termscp";
|
||||
version = "0.17.0";
|
||||
version = "0.18.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "veeso";
|
||||
repo = "termscp";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-ClCPXux1sM3hRbtJ3YngrAmc4btTgQmg/Bg/7uFHCOw=";
|
||||
hash = "sha256-QBvxXl1+f2617dwoZzSJq9vQY6hOXeHZjEh4xqMyayA=";
|
||||
};
|
||||
|
||||
useFetchCargoVendor = true;
|
||||
cargoHash = "sha256-k/6+EWHAXd8BN551xDlQkYsBZsP/jgT+NO5GbVXJkVI=";
|
||||
cargoHash = "sha256-ghJdAou3IsDVmOnDYiYO1yR3BtkrfUek10Bh9GuVH1E=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
|
||||
@ -6,15 +6,15 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "twiggy";
|
||||
version = "0.7.0";
|
||||
version = "0.8.0";
|
||||
|
||||
src = fetchCrate {
|
||||
inherit pname version;
|
||||
hash = "sha256-NbtS7A5Zl8634Q3xyjVzNraNszjt1uIXqmctArfnqkk=";
|
||||
hash = "sha256-FguDuah3MlC0wgz8VnXV5xepIVhTwYmQzijgX0sbdNY=";
|
||||
};
|
||||
|
||||
useFetchCargoVendor = true;
|
||||
cargoHash = "sha256-thGehtb8cF4b/G76nbkuBqQyNodaCbAiDBsrUKQ3zbQ=";
|
||||
cargoHash = "sha256-FaoEqCdMb3h93zGvc+EZ8LfYgMPY3dT/fScpRgGVeAo=";
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://rustwasm.github.io/twiggy/";
|
||||
|
||||
@ -6,17 +6,17 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "twitch-hls-client";
|
||||
version = "1.4.1";
|
||||
version = "1.4.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "2bc4";
|
||||
repo = "twitch-hls-client";
|
||||
rev = version;
|
||||
hash = "sha256-m6ci7jKmWGsvJZt9CxfU0OCk5GA7I87c5HHdPP+4O94=";
|
||||
hash = "sha256-UOXz1Gbo1alBnnwOWKlP5ZtaaTYr+Bqxe/+Y5A5B4Eg=";
|
||||
};
|
||||
|
||||
useFetchCargoVendor = true;
|
||||
cargoHash = "sha256-4/a94VFlOvw3TR+LYkq3qghhUudt0S9HF85fy4mYbQM=";
|
||||
cargoHash = "sha256-0bcnObIBsjgzmIrKaypb/iXnloHCRXpJtVXXl2Agk94=";
|
||||
|
||||
meta = with lib; {
|
||||
description = "Minimal CLI client for watching/recording Twitch streams";
|
||||
|
||||
@ -2,6 +2,7 @@
|
||||
stdenv,
|
||||
lib,
|
||||
fetchurl,
|
||||
fetchpatch,
|
||||
pkg-config,
|
||||
libcdio,
|
||||
libxml2,
|
||||
@ -18,6 +19,14 @@ stdenv.mkDerivation rec {
|
||||
sha256 = "0ypnb1vp49nmzp5571ynlz6n1gh90f23w3z4x95hb7c2p7pmylb7";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Fix build with libxml 2.14
|
||||
(fetchpatch {
|
||||
url = "https://gitlab.archlinux.org/archlinux/packaging/packages/vcdimager/-/raw/88dc511b7f3dea8fb45e0c2bfa1345a75a088848/libxml214.diff";
|
||||
hash = "sha256-gGD6gKsbR76zkQsT6RWo7zJpOQSbR8f0ZTyzwZ2oDJY=";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
|
||||
buildInputs = [
|
||||
|
||||
@ -48,14 +48,14 @@ effectiveStdenv.mkDerivation rec {
|
||||
# in \
|
||||
# rWrapper.override{ packages = [ xgb ]; }"
|
||||
pname = lib.optionalString rLibrary "r-" + pnameBase;
|
||||
version = "3.0.1";
|
||||
version = "3.0.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "dmlc";
|
||||
repo = pnameBase;
|
||||
rev = "v${version}";
|
||||
fetchSubmodules = true;
|
||||
hash = "sha256-sa8Ea/3ypHqnjn0Rl5dgqGejh6921T6JVHXo8y5gp90=";
|
||||
hash = "sha256-8mj8uw7bbwhRaL0JZf9L9//a+Re2AwbL0e7Oiw/BqIA=";
|
||||
};
|
||||
|
||||
nativeBuildInputs =
|
||||
|
||||
@ -0,0 +1,34 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
cffi,
|
||||
piexif,
|
||||
pillow,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "heif-image-plugin";
|
||||
version = "0.6.2";
|
||||
format = "setuptools";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "uploadcare";
|
||||
repo = "heif-image-plugin";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-SlnnlBscNelNH0XkOenq3nolyqzRMK10SzVii61Moi4=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
cffi
|
||||
piexif
|
||||
pillow
|
||||
];
|
||||
|
||||
meta = {
|
||||
description = "Simple HEIF/HEIC images plugin for Pillow base on pyhief library";
|
||||
homepage = "https://github.com/uploadcare/heif-image-plugin";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ ratcornu ];
|
||||
};
|
||||
}
|
||||
@ -12,7 +12,7 @@
|
||||
}:
|
||||
buildPythonPackage rec {
|
||||
pname = "mozjpeg_lossless_optimization";
|
||||
version = "1.1.3";
|
||||
version = "1.3.0";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
@ -20,7 +20,7 @@ buildPythonPackage rec {
|
||||
repo = "mozjpeg-lossless-optimization";
|
||||
# https://github.com/NixOS/nixpkgs/issues/26302
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-OKNt9XtfZ6hhRJN1Asn1T2dVjyXKQAsnFvXKYnrRZ98=";
|
||||
hash = "sha256-g2+QpV3F7wtu37qRJlA4a5r1J9yuJZcC99fDDy03JqU=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
|
||||
@ -0,0 +1,30 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchPypi,
|
||||
setuptools,
|
||||
libavif,
|
||||
pillow,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "pillow-avif-plugin";
|
||||
version = "1.4.6";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-hVz1DQP2/Bbh/V42SzzqC3n0v5DTn/ISOWlzXYUeCLo=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ setuptools ];
|
||||
buildInputs = [ libavif ];
|
||||
propagatedBuildInputs = [ pillow ];
|
||||
|
||||
meta = {
|
||||
description = "Pillow plugin that adds support for AVIF files";
|
||||
homepage = "https://github.com/fdintino/pillow-avif-plugin";
|
||||
license = lib.licenses.bsd2;
|
||||
maintainers = with lib.maintainers; [ ratcornu ];
|
||||
};
|
||||
}
|
||||
@ -42,6 +42,7 @@ stdenv.mkDerivation {
|
||||
doc = "share/doc/cpupower";
|
||||
conf = "etc";
|
||||
bash_completion_ = "share/bash-completion/completions";
|
||||
unit = "lib/systemd/system";
|
||||
};
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
{
|
||||
"testing": {
|
||||
"version": "6.16-rc1",
|
||||
"hash": "sha256:0wi66d2wma4lfs3pbwqg7k1pavxc3wyr54yxii3mmaab81pfdx27"
|
||||
"version": "6.16-rc2",
|
||||
"hash": "sha256:1hzkpp5161ss40d8j9nzvzyw6vljslx0pk5fin0klj884l5i8igh"
|
||||
},
|
||||
"6.1": {
|
||||
"version": "6.1.141",
|
||||
|
||||
36
pkgs/servers/web-apps/szurubooru/client.nix
Normal file
36
pkgs/servers/web-apps/szurubooru/client.nix
Normal file
@ -0,0 +1,36 @@
|
||||
{
|
||||
src,
|
||||
version,
|
||||
lib,
|
||||
buildNpmPackage,
|
||||
}:
|
||||
|
||||
buildNpmPackage {
|
||||
pname = "szurubooru-client";
|
||||
inherit version;
|
||||
|
||||
src = "${src}/client";
|
||||
|
||||
npmDepsHash = "sha256-HtcitZl2idgVleB6c0KCTSNLxh7hP8/G/RGdMaQG3iI=";
|
||||
makeCacheWritable = true;
|
||||
|
||||
npmBuildFlags = [
|
||||
"--gzip"
|
||||
];
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir $out
|
||||
mv ./public/* $out
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Client of szurubooru, an image board engine for small and medium communities";
|
||||
homepage = "https://github.com/rr-/szurubooru";
|
||||
license = licenses.gpl3;
|
||||
maintainers = with maintainers; [ ratcornu ];
|
||||
};
|
||||
}
|
||||
20
pkgs/servers/web-apps/szurubooru/default.nix
Normal file
20
pkgs/servers/web-apps/szurubooru/default.nix
Normal file
@ -0,0 +1,20 @@
|
||||
{
|
||||
callPackage,
|
||||
fetchFromGitHub,
|
||||
recurseIntoAttrs,
|
||||
}:
|
||||
|
||||
let
|
||||
version = "2.5-unstable-2025-02-11";
|
||||
src = fetchFromGitHub {
|
||||
owner = "rr-";
|
||||
repo = "szurubooru";
|
||||
rev = "376f687c386f65522b2f65e98b998b21af26ee29";
|
||||
hash = "sha256-4w1iOYp+CVg60dYxRilj08D4Hle6R9Y0v+Nd3fws1Zc=";
|
||||
};
|
||||
in
|
||||
|
||||
recurseIntoAttrs {
|
||||
client = callPackage ./client.nix { inherit src version; };
|
||||
server = callPackage ./server.nix { inherit src version; };
|
||||
}
|
||||
85
pkgs/servers/web-apps/szurubooru/server.nix
Normal file
85
pkgs/servers/web-apps/szurubooru/server.nix
Normal file
@ -0,0 +1,85 @@
|
||||
{
|
||||
src,
|
||||
version,
|
||||
lib,
|
||||
nixosTests,
|
||||
fetchPypi,
|
||||
python3,
|
||||
}:
|
||||
|
||||
let
|
||||
overrides = [
|
||||
(self: super: {
|
||||
alembic = super.alembic.overridePythonAttrs (oldAttrs: rec {
|
||||
version = "1.14.1";
|
||||
src = fetchPypi {
|
||||
pname = "alembic";
|
||||
inherit version;
|
||||
sha256 = "sha256-SW6IgkWlOt8UmPyrMXE6Rpxlg2+N524BOZqhw+kN0hM=";
|
||||
};
|
||||
doCheck = false;
|
||||
});
|
||||
|
||||
pyheif = super.pyheif.overridePythonAttrs (oldAttrs: {
|
||||
doCheck = false;
|
||||
});
|
||||
|
||||
sqlalchemy = super.sqlalchemy.overridePythonAttrs (oldAttrs: rec {
|
||||
version = "1.3.23";
|
||||
src = fetchPypi {
|
||||
pname = "SQLAlchemy";
|
||||
inherit version;
|
||||
sha256 = "sha256-b8ozZyV4Zm9lfBMVUsTviXnBYG5JT3jNUZl0LfsmkYs=";
|
||||
};
|
||||
|
||||
doCheck = false;
|
||||
});
|
||||
})
|
||||
];
|
||||
|
||||
python = python3.override {
|
||||
self = python;
|
||||
packageOverrides = lib.composeManyExtensions overrides;
|
||||
};
|
||||
in
|
||||
|
||||
python.pkgs.buildPythonApplication {
|
||||
pname = "szurubooru-server";
|
||||
inherit version;
|
||||
pyproject = true;
|
||||
|
||||
src = "${src}/server";
|
||||
|
||||
nativeBuildInputs = with python.pkgs; [ setuptools ];
|
||||
propagatedBuildInputs = with python.pkgs; [
|
||||
alembic
|
||||
certifi
|
||||
coloredlogs
|
||||
heif-image-plugin
|
||||
numpy
|
||||
pillow-avif-plugin
|
||||
pillow
|
||||
psycopg2-binary
|
||||
pyheif
|
||||
pynacl
|
||||
pyrfc3339
|
||||
pytz
|
||||
pyyaml
|
||||
sqlalchemy
|
||||
yt-dlp
|
||||
];
|
||||
|
||||
postInstall = ''
|
||||
mkdir $out/bin
|
||||
install -m0755 $src/szuru-admin $out/bin/szuru-admin
|
||||
'';
|
||||
|
||||
passthru.tests.szurubooru = nixosTests.szurubooru;
|
||||
|
||||
meta = with lib; {
|
||||
description = "Server of szurubooru, an image board engine for small and medium communities";
|
||||
homepage = "https://github.com/rr-/szurubooru";
|
||||
license = licenses.gpl3;
|
||||
maintainers = with maintainers; [ ratcornu ];
|
||||
};
|
||||
}
|
||||
@ -43,7 +43,12 @@ stdenv.mkDerivation rec {
|
||||
rimeDataDrv = symlinkJoin {
|
||||
name = "fcitx5-rime-data";
|
||||
paths = rimeDataPkgs;
|
||||
postBuild = "mkdir -p $out/share/rime-data";
|
||||
postBuild = ''
|
||||
mkdir -p $out/share/rime-data
|
||||
|
||||
# Ensure default.yaml exists
|
||||
[ -e "$out/share/rime-data/default.yaml" ] || touch "$out/share/rime-data/default.yaml"
|
||||
'';
|
||||
};
|
||||
|
||||
postInstall = ''
|
||||
|
||||
@ -1,15 +1,19 @@
|
||||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
abbrev (0.1.2)
|
||||
chronic (0.10.2)
|
||||
csv (3.3.5)
|
||||
highline (2.1.0)
|
||||
matrix (0.4.2)
|
||||
rchardet (1.8.0)
|
||||
reckon (0.9.2)
|
||||
reckon (0.11.1)
|
||||
abbrev (> 0.1)
|
||||
chronic (>= 0.3.0)
|
||||
highline (>= 1.5.2)
|
||||
csv (> 0.1)
|
||||
highline (~> 2.0)
|
||||
matrix (>= 0.4.2)
|
||||
rchardet (>= 1.8.0)
|
||||
rchardet (= 1.8.0)
|
||||
|
||||
PLATFORMS
|
||||
ruby
|
||||
@ -18,4 +22,4 @@ DEPENDENCIES
|
||||
reckon
|
||||
|
||||
BUNDLED WITH
|
||||
2.4.13
|
||||
2.6.6
|
||||
|
||||
@ -5,6 +5,8 @@
|
||||
bundlerUpdateScript,
|
||||
makeWrapper,
|
||||
file,
|
||||
testers,
|
||||
reckon,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
@ -31,7 +33,13 @@ stdenv.mkDerivation rec {
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
passthru.updateScript = bundlerUpdateScript "reckon";
|
||||
passthru = {
|
||||
tests.version = testers.testVersion {
|
||||
package = reckon;
|
||||
version = "${version}";
|
||||
};
|
||||
updateScript = bundlerUpdateScript "reckon";
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "Flexibly import bank account CSV files into Ledger for command line accounting";
|
||||
|
||||
@ -1,4 +1,14 @@
|
||||
{
|
||||
abbrev = {
|
||||
groups = [ "default" ];
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "0hj2qyx7rzpc7awhvqlm597x7qdxwi4kkml4aqnp5jylmsm4w6xd";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.1.2";
|
||||
};
|
||||
chronic = {
|
||||
groups = [ "default" ];
|
||||
platforms = [ ];
|
||||
@ -9,6 +19,16 @@
|
||||
};
|
||||
version = "0.10.2";
|
||||
};
|
||||
csv = {
|
||||
groups = [ "default" ];
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "0gz7r2kazwwwyrwi95hbnhy54kwkfac5swh2gy5p5vw36fn38lbf";
|
||||
type = "gem";
|
||||
};
|
||||
version = "3.3.5";
|
||||
};
|
||||
highline = {
|
||||
groups = [ "default" ];
|
||||
platforms = [ ];
|
||||
@ -41,7 +61,9 @@
|
||||
};
|
||||
reckon = {
|
||||
dependencies = [
|
||||
"abbrev"
|
||||
"chronic"
|
||||
"csv"
|
||||
"highline"
|
||||
"matrix"
|
||||
"rchardet"
|
||||
@ -50,9 +72,9 @@
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "0188k41lvz5vnn03qw1hbi6c2i88n5p3183rb0xz9rfjcngh2ly3";
|
||||
sha256 = "1y4iqjmgzj9nrp22pmayia54mpb4d6ga85q9xzqir7mhcd2bdca1";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.9.2";
|
||||
version = "0.11.1";
|
||||
};
|
||||
}
|
||||
|
||||
@ -439,7 +439,6 @@ mapAliases {
|
||||
citra = throw "citra has been removed from nixpkgs, as it has been taken down upstream"; # added 2024-03-04
|
||||
citra-nightly = throw "citra-nightly has been removed from nixpkgs, as it has been taken down upstream"; # added 2024-03-04
|
||||
citra-canary = throw "citra-canary has been removed from nixpkgs, as it has been taken down upstream"; # added 2024-03-04
|
||||
clean = throw "'clean' has been removed from nixpkgs, as it is unmaintained and broken"; # Added 2025-05-18
|
||||
cloog = throw "cloog has been removed from Nixpkgs, as it is unmaintained and obsolete"; # Added 2024-09-13
|
||||
cloog_0_18_0 = throw "cloog_0_18_0 has been removed from Nixpkgs, as it is unmaintained and obsolete"; # Added 2024-09-13
|
||||
cloogppl = throw "cloogppl has been removed from Nixpkgs, as it is unmaintained and obsolete"; # Added 2024-09-13
|
||||
@ -538,6 +537,7 @@ mapAliases {
|
||||
|
||||
demjson = with python3Packages; toPythonApplication demjson; # Added 2022-01-18
|
||||
devdash = throw "'devdash' has been removed as the upstream project was archived"; # Added 2025-03-27
|
||||
devdocs-desktop = throw "'devdocs-desktop' has been removed as it is unmaintained upstream and vendors insecure dependencies"; # Added 2025-06-11
|
||||
dfilemanager = throw "'dfilemanager' has been dropped as it was unmaintained"; # Added 2025-06-03
|
||||
dgsh = throw "'dgsh' has been removed, as it was broken and unmaintained"; # added 2024-05-09
|
||||
dibbler = throw "dibbler was removed because it is not maintained anymore"; # Added 2024-05-14
|
||||
@ -553,6 +553,8 @@ mapAliases {
|
||||
dnscrypt-wrapper = throw "dnscrypt-wrapper was removed because it has been effectively unmaintained since 2018. Use DNSCcrypt support in dnsdist instead"; # Added 2024-09-14
|
||||
docear = throw "Docear was removed because it was unmaintained upstream. JabRef, Zotero, or Mendeley are potential replacements."; # Added 2024-11-02
|
||||
docker_24 = throw "'docker_24' has been removed because it has been unmaintained since June 2024. Use docker_25 or newer instead."; # Added 2024-12-21
|
||||
docker_26 = throw "'docker_26' has been removed because it has been unmaintained since February 2025. Use docker_28 or newer instead."; # Added 2025-06-21
|
||||
docker_27 = throw "'docker_27' has been removed because it has been unmaintained since May 2025. Use docker_28 or newer instead."; # Added 2025-06-15
|
||||
docker-compose_1 = throw "'docker-compose_1' has been removed because it has been unmaintained since May 2021. Use docker-compose instead."; # Added 2024-07-29
|
||||
docker-distribution = distribution; # Added 2023-12-26
|
||||
dolphin-emu-beta = dolphin-emu; # Added 2023-02-11
|
||||
@ -940,6 +942,7 @@ mapAliases {
|
||||
### J ###
|
||||
|
||||
jack2Full = throw "'jack2Full' has been renamed to/replaced by 'jack2'"; # Converted to throw 2024-10-17
|
||||
jack_rack = throw "'jack_rack' has been removed due to lack of maintenance upstream."; # Added 2025-06-10
|
||||
jami-client-qt = jami-client; # Added 2022-11-06
|
||||
jami-client = jami; # Added 2023-02-10
|
||||
jami-daemon = jami.daemon; # Added 2023-02-10
|
||||
@ -1834,6 +1837,7 @@ mapAliases {
|
||||
ssm-agent = amazon-ssm-agent; # Added 2023-10-17
|
||||
starpls-bin = starpls;
|
||||
starspace = throw "starspace has been removed from nixpkgs, as it was broken"; # Added 2024-07-15
|
||||
station = throw "station has been removed from nixpkgs, as there were no committers among its maintainers to unblock security issues"; # added 2025-06-16
|
||||
steamPackages = {
|
||||
steamArch = throw "`steamPackages.steamArch` has been removed as it's no longer applicable";
|
||||
steam = lib.warnOnInstantiate "`steamPackages.steam` has been moved to top level as `steam-unwrapped`" steam-unwrapped;
|
||||
@ -1855,6 +1859,9 @@ mapAliases {
|
||||
suidChroot = throw "'suidChroot' has been dropped as it was unmaintained, failed to build and had questionable security considerations"; # Added 2025-05-17
|
||||
suitesparse_4_2 = throw "'suitesparse_4_2' has been removed as it was unmaintained upstream"; # Added 2025-05-17
|
||||
suitesparse_4_4 = throw "'suitesparse_4_4' has been removed as it was unmaintained upstream"; # Added 2025-05-17
|
||||
sumaclust = throw "'sumaclust' has been removed as it was archived upstream and broken with GCC 14"; # Added 2025-06-14
|
||||
sumalibs = throw "'sumalibs' has been removed as it was archived upstream and broken with GCC 14"; # Added 2025-06-14
|
||||
sumatra = throw "'sumatra' has been removed as it was archived upstream and broken with GCC 14"; # Added 2025-06-14
|
||||
sumneko-lua-language-server = lua-language-server; # Added 2023-02-07
|
||||
sumokoin = throw "sumokoin has been removed as it was abandoned upstream"; # Added 2024-11-23
|
||||
supertag = throw "supertag has been removed as it was abandoned upstream and fails to build"; # Added 2025-04-20
|
||||
|
||||
@ -9673,6 +9673,8 @@ with pkgs;
|
||||
|
||||
svxlink = libsForQt5.callPackage ../applications/radio/svxlink { };
|
||||
|
||||
szurubooru = callPackage ../servers/web-apps/szurubooru { };
|
||||
|
||||
tclap = tclap_1_2;
|
||||
|
||||
tclap_1_2 = callPackage ../development/libraries/tclap/1.2.nix { };
|
||||
@ -12126,8 +12128,6 @@ with pkgs;
|
||||
|
||||
inherit (callPackage ../applications/virtualization/docker { })
|
||||
docker_25
|
||||
docker_26
|
||||
docker_27
|
||||
docker_28
|
||||
;
|
||||
|
||||
@ -15495,12 +15495,6 @@ with pkgs;
|
||||
|
||||
samtools = callPackage ../applications/science/biology/samtools { };
|
||||
|
||||
inherit (callPackages ../applications/science/biology/sumatools { })
|
||||
sumalibs
|
||||
sumaclust
|
||||
sumatra
|
||||
;
|
||||
|
||||
trimmomatic = callPackage ../applications/science/biology/trimmomatic {
|
||||
jdk = pkgs.jdk21_headless;
|
||||
# Reduce closure size
|
||||
|
||||
@ -6386,6 +6386,8 @@ self: super: with self; {
|
||||
|
||||
hebg = callPackage ../development/python-modules/hebg { };
|
||||
|
||||
heif-image-plugin = callPackage ../development/python-modules/heif-image-plugin { };
|
||||
|
||||
help2man = callPackage ../development/python-modules/help2man { };
|
||||
|
||||
helpdev = callPackage ../development/python-modules/helpdev { };
|
||||
@ -11378,6 +11380,8 @@ self: super: with self; {
|
||||
inherit (pkgs.xorg) libxcb;
|
||||
};
|
||||
|
||||
pillow-avif-plugin = callPackage ../development/python-modules/pillow-avif-plugin { };
|
||||
|
||||
pillow-heif = callPackage ../development/python-modules/pillow-heif { };
|
||||
|
||||
pillow-jpls = callPackage ../development/python-modules/pillow-jpls { };
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user