Merge staging-next into staging

Changed files
+1819 -392
doc
nixos
pkgs
applications
editors
vim
plugins
vscode
extensions
emulators
box64
science
biology
sumatools
virtualization
docker
by-name
an
antonio-font
cl
co
copilot-language-server
de
departure-mono
devdocs-desktop
devmode
ed
ey
eyed3
go
goose-cli
goreman
ha
ja
jack_rack
kc
li
lint-staged
ma
mapserver
mi
mirrord
mk
mkbrr
ni
nix-store-veritysetup-generator
no
novops
pf
pfetch
pj
pjsip
pr
proxmox-backup-client
qu
quill-log
s-
s-search
s7
sg
sh
shellhub-agent
sm
st
station
te
termscp
tw
twiggy
twitch-hls-client
vc
vcdimager
xg
xgboost
development
python-modules
heif-image-plugin
mozjpeg_lossless_optimization
pillow-avif-plugin
os-specific
linux
cpupower
kernel
servers
web-apps
tools
inputmethods
text
top-level
+1 -5
doc/README.md
···
#### `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
+3 -1
nixos/doc/manual/contributing-to-this-manual.chapter.md
···
/**/.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}
+15
nixos/doc/manual/redirects.json
···
"sec-contributing-development-env": [
"index.html#sec-contributing-development-env"
],
+
"sec-contributing-devmode": [
+
"index.html#sec-contributing-devmode"
+
],
"sec-mattermost": [
"index.html#sec-mattermost"
],
···
],
"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"
+4
nixos/doc/manual/release-notes/rl-2511.section.md
···
- [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).
+2
nixos/modules/module-list.nix
···
./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
···
./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
···
+
# 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
···
+
{
+
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
···
+
{
+
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"
+
];
+
};
+
+
};
+
}
+3 -1
nixos/tests/all-tests.nix
···
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;
···
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 [
···
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 -1
nixos/tests/clickhouse.nix nixos/tests/clickhouse/base.nix
···
{ 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
···
+
{ runTest }:
+
+
{
+
base = runTest ./base.nix;
+
kafka = runTest ./kafka.nix;
+
keeper = runTest ./keeper.nix;
+
s3 = runTest ./s3.nix;
+
}
+172
nixos/tests/clickhouse/kafka.nix
···
+
{ 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
···
+
{ 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
···
+
{ 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
···
+
{ 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
···
+
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')
+
'';
+
}
+
)
+13
pkgs/applications/editors/vim/plugins/generated.nix
···
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";
+10
pkgs/applications/editors/vim/plugins/overrides.nix
···
uv,
# nvim-vstsl dependencies
vtsls,
+
# search-and-replace.nvim dependencies
+
fd,
+
sad,
}:
self: super:
let
···
searchbox-nvim = super.searchbox-nvim.overrideAttrs {
dependencies = [ self.nui-nvim ];
+
};
+
+
search-and-replace-nvim = super.search-and-replace-nvim.overrideAttrs {
+
runtimeDeps = [
+
fd
+
sad
+
];
};
skim = buildVimPlugin {
+27 -33
pkgs/applications/editors/vim/plugins/utils/nvim-treesitter/update.py
···
#!/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():
···
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():
···
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)
+1
pkgs/applications/editors/vim/plugins/vim-plugin-names
···
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/,,
+2 -2
pkgs/applications/editors/vscode/extensions/default.nix
···
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";
+9 -2
pkgs/applications/emulators/box64/default.nix
···
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
-77
pkgs/applications/science/biology/sumatools/default.nix
···
-
{
-
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;
-
};
-
}
+6 -34
pkgs/applications/virtualization/docker/default.nix
···
# 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=";
};
+2 -2
pkgs/by-name/an/antonio-font/package.nix
···
{
lib,
-
stdenv,
+
stdenvNoCC,
fetchFromGitHub,
}:
-
stdenv.mkDerivation {
+
stdenvNoCC.mkDerivation {
pname = "antonio";
version = "0-unstable-2013-11-21";
+21
pkgs/by-name/cl/clean/chroot-build-support-do-not-rebuild-equal-timestamps.patch
···
+
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 {
+22
pkgs/by-name/cl/clean/declare-functions-explicitly-for-gcc14.patch
···
+
--- 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
···
+
{
+
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";
+
};
+
})
+2 -2
pkgs/by-name/co/copilot-language-server/package.nix
···
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;
};
+5 -3
pkgs/by-name/de/departure-mono/package.nix
···
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
'';
-43
pkgs/by-name/de/devdocs-desktop/package.nix
···
-
{
-
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
···
+
# `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
+3 -3
pkgs/by-name/ed/edl/package.nix
···
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
···
+
{ python3Packages }:
+
+
python3Packages.toPythonApplication python3Packages.eyed3
+12 -4
pkgs/by-name/go/goose-cli/package.nix
···
dbus,
xorg,
pkg-config,
+
protobuf,
writableTmpDirAsHomeHook,
nix-update-script,
llvmPackages,
···
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 ];
···
"--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"
+7 -8
pkgs/by-name/go/goreman/package.nix
···
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=";
};
···
];
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 ];
};
-
}
+
})
+2 -2
pkgs/by-name/ha/halo/package.nix
···
}:
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 = [
-44
pkgs/by-name/ja/jack_rack/package.nix
···
-
{
-
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;
-
};
-
}
+2 -2
pkgs/by-name/kc/kcc/package.nix
···
}:
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 ];
+3 -3
pkgs/by-name/li/lint-staged/package.nix
···
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;
+8
pkgs/by-name/ma/mapserver/package.nix
···
++ lib.optionals withPython [
swig
python3.pkgs.setuptools
+
python3.pkgs.pythonImportsCheckHook
];
buildInputs = [
···
# RPATH of binary /nix/store/.../bin/... contains a forbidden reference to /build/
(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";
+9 -9
pkgs/by-name/mi/mirrord/manifest.json
···
{
-
"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="
}
}
}
+2 -2
pkgs/by-name/mk/mkbrr/package.nix
···
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=";
+1
pkgs/by-name/ni/nix-store-veritysetup-generator/package.nix
···
homepage = "https://github.com/nikstur/nix-store-veritysetup-generator";
license = licenses.mit;
maintainers = with lib.maintainers; [ nikstur ];
+
mainProgram = "nix-store-veritysetup-generator";
};
}
+3 -3
pkgs/by-name/no/novops/package.nix
···
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 =
[
+2 -2
pkgs/by-name/pf/pfetch/package.nix
···
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;
+6 -3
pkgs/by-name/pj/pjsip/package.nix
···
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)
+16 -10
pkgs/by-name/pr/proxmox-backup-client/package.nix
···
fetchgit,
fetchFromGitHub,
rustPlatform,
-
pkg-config,
pkgconf,
openssl,
fuse3,
libuuid,
acl,
libxcrypt,
-
git,
installShellFiles,
sphinx,
-
systemd,
stdenv,
-
fetchpatch,
versionCheckHook,
}:
···
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
'';
···
"--package=pxar-bin"
"--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 ];
+2 -2
pkgs/by-name/qu/quill-log/package.nix
···
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 ];
+2 -2
pkgs/by-name/s-/s-search/package.nix
···
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=";
+3 -3
pkgs/by-name/s7/s7/package.nix
···
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
···
+
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
···
+
{
+
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;
+
};
+
}
+2 -2
pkgs/by-name/sh/shellhub-agent/package.nix
···
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
···
+
{
+
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";
+
};
+
})
-50
pkgs/by-name/st/station/package.nix
···
-
{
-
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 ];
-
};
-
}
+3 -3
pkgs/by-name/te/termscp/package.nix
···
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
+3 -3
pkgs/by-name/tw/twiggy/package.nix
···
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/";
+3 -3
pkgs/by-name/tw/twitch-hls-client/package.nix
···
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";
+9
pkgs/by-name/vc/vcdimager/package.nix
···
stdenv,
lib,
fetchurl,
+
fetchpatch,
pkg-config,
libcdio,
libxml2,
···
url = "mirror://gnu/vcdimager/${pname}-${version}.tar.gz";
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 ];
+2 -2
pkgs/by-name/xg/xgboost/package.nix
···
# 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 =
+34
pkgs/development/python-modules/heif-image-plugin/default.nix
···
+
{
+
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 ];
+
};
+
}
+2 -2
pkgs/development/python-modules/mozjpeg_lossless_optimization/default.nix
···
}:
buildPythonPackage rec {
pname = "mozjpeg_lossless_optimization";
-
version = "1.1.3";
+
version = "1.3.0";
pyproject = true;
src = fetchFromGitHub {
···
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;
};
+30
pkgs/development/python-modules/pillow-avif-plugin/default.nix
···
+
{
+
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 ];
+
};
+
}
+1
pkgs/os-specific/linux/cpupower/default.nix
···
doc = "share/doc/cpupower";
conf = "etc";
bash_completion_ = "share/bash-completion/completions";
+
unit = "lib/systemd/system";
};
enableParallelBuilding = true;
+2 -2
pkgs/os-specific/linux/kernel/kernels-org.json
···
{
"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
···
+
{
+
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
···
+
{
+
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
···
+
{
+
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 ];
+
};
+
}
+6 -1
pkgs/tools/inputmethods/fcitx5/fcitx5-rime.nix
···
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 = ''
+8 -4
pkgs/tools/text/reckon/Gemfile.lock
···
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
···
reckon
BUNDLED WITH
-
2.4.13
+
2.6.6
+9 -1
pkgs/tools/text/reckon/default.nix
···
bundlerUpdateScript,
makeWrapper,
file,
+
testers,
+
reckon,
}:
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";
+24 -2
pkgs/tools/text/reckon/gemset.nix
···
{
+
abbrev = {
+
groups = [ "default" ];
+
platforms = [ ];
+
source = {
+
remotes = [ "https://rubygems.org" ];
+
sha256 = "0hj2qyx7rzpc7awhvqlm597x7qdxwi4kkml4aqnp5jylmsm4w6xd";
+
type = "gem";
+
};
+
version = "0.1.2";
+
};
chronic = {
groups = [ "default" ];
platforms = [ ];
···
};
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 = [ ];
···
};
reckon = {
dependencies = [
+
"abbrev"
"chronic"
+
"csv"
"highline"
"matrix"
"rchardet"
···
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
-
sha256 = "0188k41lvz5vnn03qw1hbi6c2i88n5p3183rb0xz9rfjcngh2ly3";
+
sha256 = "1y4iqjmgzj9nrp22pmayia54mpb4d6ga85q9xzqir7mhcd2bdca1";
type = "gem";
};
-
version = "0.9.2";
+
version = "0.11.1";
};
}
+8 -1
pkgs/top-level/aliases.nix
···
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
···
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
···
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
···
### 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
···
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;
···
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
+2 -8
pkgs/top-level/all-packages.nix
···
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 { };
···
inherit (callPackage ../applications/virtualization/docker { })
docker_25
-
docker_26
-
docker_27
docker_28
···
raxml-mpi = raxml.override { useMpi = true; };
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;
+4
pkgs/top-level/python-packages.nix
···
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 { };
···
inherit (pkgs.xorg) libxcb;
+
+
pillow-avif-plugin = callPackage ../development/python-modules/pillow-avif-plugin { };
pillow-heif = callPackage ../development/python-modules/pillow-heif { };