Merge staging-next into staging

Changed files
+809 -431
doc
release-notes
maintainers
nixos
doc
modules
services
tests
pkgs
applications
editors
vscode
extensions
llvm-vs-code-extensions.lldb-dap
misc
organicmaps
networking
instant-messengers
discord
science
machine-learning
sc2-headless
by-name
bo
boofuzz
cl
de
du
duckdb
fo
fosrl-newt
gc
gcsfuse
ge
gerbolyze
gr
grafana-alloy
ju
just-lsp
lo
local-content-share
lu
lunatask
ma
maigret
mi
minio-client
op
opencode
openmm
pr
pre-commit
proksi
prometheus-opnsense-exporter
ra
raycast
raylib
re
regclient
ro
routersploit
sf
st
strawberry
ti
tigerbeetle
tr
trinity
ty
typstyle
we
wo
worldpainter
x2
x2goserver
desktops
xfce
applications
xfdashboard
panel-plugins
xfce4-i3-workspaces-plugin
development
compilers
mobile
ocaml-modules
python-modules
azure-mgmt-storage
color-parser-py
curvefitgui
django-import-export
duckdb
gerbonara
paddlex
pandera
petl
plopp
plotpy
pyschlage
pytest-reraise
skl2onnx
tools
parsing
tree-sitter
misc
cups
drivers
cnijfilter_2_80
tools
misc
top-level
+2
doc/release-notes/rl-2511.section.md
···
- `conftest` since `0.60.0` has moved to use rego `v1` as default. To continue using `v0` use `--rego-version v0`. For more information about upgrading to Rego v1 syntax, see the [upstream docs](https://www.openpolicyagent.org/docs/latest/v0-upgrade/).
+
- The `archipelago-minecraft` package was removed, as upstream no longer provides support for the Minecraft APWorld.
+
- `tooling-language-server` has been renamed to `deputy` (both the package and binary), following the rename of the upstream project.
- `lima` package now only includes the guest agent for the host's architecture by default. If your guest VM's architecture differs from your Lima host's, you'll need to enable the `lima-additional-guestagents` package by setting `withAdditionalGuestAgents = true` when overriding lima with this input.
+7
maintainers/maintainer-list.nix
···
githubId = 757125;
name = "Dzmitry Lahoda";
};
+
e-v-o-l-v-e = {
+
name = "Ivanoe Megnin-Preiss";
+
email = "megninpreiss.ivanoe@gmail.com";
+
github = "e-v-o-l-v-e";
+
githubId = 84813895;
+
matrix = "@evolve:matrix.imp-network.com";
+
};
e1mo = {
email = "nixpkgs@e1mo.de";
matrix = "@e1mo:chaos.jetzt";
+1 -3
nixos/doc/manual/redirects.json
···
"index.html#module-services-meilisearch-quickstart-search"
],
"module-services-meilisearch-defaults": [
-
"index.html#module-services-meilisearch-defaults"
-
],
-
"module-services-meilisearch-missing": [
+
"index.html#module-services-meilisearch-defaults",
"index.html#module-services-meilisearch-missing"
],
"module-services-networking-yggdrasil": [
+6 -4
nixos/modules/services/search/meilisearch.md
···
- The default nixos package doesn't come with the [dashboard](https://docs.meilisearch.com/learn/getting_started/quick_start.html#search), since the dashboard features makes some assets downloads at compile time.
-
- Anonymized Analytics sent to meilisearch are disabled by default.
+
- `no_analytics` is set to true by default.
-
- Default deployment is development mode. It doesn't require a secret master key. All routes are not protected and accessible.
+
- `http_addr` is derived from {option}`services.meilisearch.listenAddress` and {option}`services.meilisearch.listenPort`. The two sub-fields are separate because this makes it easier to consume in certain other modules.
-
## Missing {#module-services-meilisearch-missing}
+
- `db_path` is set to `/var/lib/meilisearch` by default. Upstream, the default value is equivalent to `/var/lib/meilisearch/data.ms`.
+
+
- `dump_dir` and `snapshot_dir` are set to `/var/lib/meilisearch/dumps` and `/var/lib/meilisearch/snapshots`, respectively. This is equivalent to the upstream defaults.
-
- the snapshot feature is not yet configurable from the module, it's just a matter of adding the relevant environment variables.
+
- All other options inherit their upstream defaults. In particular, the default configuration uses `env = "development"`, which doesn't require a master key, in which case all routes are unprotected.
+160 -90
nixos/modules/services/search/meilisearch.nix
···
let
cfg = config.services.meilisearch;
+
settingsFormat = pkgs.formats.toml { };
+
+
# These secrets are used in the config file and can be set to paths.
+
secrets-with-path =
+
builtins.map
+
(
+
{ environment, name }:
+
{
+
inherit name environment;
+
setting = cfg.settings.${name};
+
}
+
)
+
[
+
{
+
environment = "MEILI_SSL_CERT_PATH";
+
name = "ssl_cert_path";
+
}
+
{
+
environment = "MEILI_SSL_KEY_PATH";
+
name = "ssl_key_path";
+
}
+
{
+
environment = "MEILI_SSL_AUTH_PATH";
+
name = "ssl_auth_path";
+
}
+
{
+
environment = "MEILI_SSL_OCSP_PATH";
+
name = "ssl_ocsp_path";
+
}
+
];
+
+
# We also handle `master_key` separately.
+
# It cannot be set to a path, so we template it.
+
master-key-placeholder = "@MASTER_KEY@";
+
+
configFile = settingsFormat.generate "config.toml" (
+
builtins.removeAttrs (
+
if cfg.masterKeyFile != null then
+
cfg.settings // { master_key = master-key-placeholder; }
+
else
+
builtins.removeAttrs cfg.settings [ "master_key" ]
+
) (map (secret: secret.name) secrets-with-path)
+
);
+
in
{
-
meta.maintainers = with lib.maintainers; [
Br1ght0ne
happysalada
];
meta.doc = ./meilisearch.md;
-
###### interface
+
imports = [
+
(lib.mkRenamedOptionModule
+
[ "services" "meilisearch" "environment" ]
+
[ "services" "meilisearch" "settings" "env" ]
+
)
+
(lib.mkRenamedOptionModule
+
[ "services" "meilisearch" "logLevel" ]
+
[ "services" "meilisearch" "settings" "log_level" ]
+
)
+
(lib.mkRenamedOptionModule
+
[ "services" "meilisearch" "noAnalytics" ]
+
[ "services" "meilisearch" "settings" "no_analytics" ]
+
)
+
(lib.mkRenamedOptionModule
+
[ "services" "meilisearch" "maxIndexSize" ]
+
[ "services" "meilisearch" "settings" "max_index_size" ]
+
)
+
(lib.mkRenamedOptionModule
+
[ "services" "meilisearch" "payloadSizeLimit" ]
+
[ "services" "meilisearch" "settings" "http_payload_size_limit" ]
+
)
+
(lib.mkRenamedOptionModule
+
[ "services" "meilisearch" "dumplessUpgrade" ]
+
[ "services" "meilisearch" "settings" "experimental_dumpless_upgrade" ]
+
)
+
(lib.mkRemovedOptionModule [ "services" "meilisearch" "masterKeyEnvironmentFile" ] ''
+
Use `services.meilisearch.masterKeyFile` instead. It does not require you to prefix the file with "MEILI_MASTER_KEY=".
+
If you were abusing this option to set other options, you can now configure them with `services.meilisearch.settings`.
+
'')
+
];
options.services.meilisearch = {
-
enable = lib.mkEnableOption "MeiliSearch - a RESTful search API";
+
enable = lib.mkEnableOption "Meilisearch - a RESTful search API";
package = lib.mkPackageOption pkgs "meilisearch" {
extraDescription = ''
···
};
listenAddress = lib.mkOption {
-
description = "MeiliSearch listen address.";
-
default = "127.0.0.1";
+
default = "localhost";
type = lib.types.str;
+
description = ''
+
The IP address that Meilisearch will listen on.
+
+
It can also be a hostname like "localhost". If it resolves to an IPv4 and IPv6 address, Meilisearch will listen on both.
+
'';
};
listenPort = lib.mkOption {
-
description = "MeiliSearch port to listen on.";
default = 7700;
type = lib.types.port;
-
};
-
-
environment = lib.mkOption {
-
description = "Defines the running environment of MeiliSearch.";
-
default = "development";
-
type = lib.types.enum [
-
"development"
-
"production"
-
];
+
description = ''
+
The port that Meilisearch will listen on.
+
'';
};
-
# TODO change this to LoadCredentials once possible
-
masterKeyEnvironmentFile = lib.mkOption {
+
masterKeyFile = lib.mkOption {
description = ''
Path to file which contains the master key.
By doing so, all routes will be protected and will require a key to be accessed.
If no master key is provided, all routes can be accessed without requiring any key.
-
The format is the following:
-
MEILI_MASTER_KEY=my_secret_key
'';
default = null;
-
type = with lib.types; nullOr path;
-
};
-
-
noAnalytics = lib.mkOption {
-
description = ''
-
Deactivates analytics.
-
Analytics allow MeiliSearch to know how many users are using MeiliSearch,
-
which versions and which platforms are used.
-
This process is entirely anonymous.
-
'';
-
default = true;
-
type = lib.types.bool;
-
};
-
-
logLevel = lib.mkOption {
-
description = ''
-
Defines how much detail should be present in MeiliSearch's logs.
-
MeiliSearch currently supports four log levels, listed in order of increasing verbosity:
-
- 'ERROR': only log unexpected events indicating MeiliSearch is not functioning as expected
-
- 'WARN:' log all unexpected events, regardless of their severity
-
- 'INFO:' log all events. This is the default value
-
- 'DEBUG': log all events and including detailed information on MeiliSearch's internal processes.
-
Useful when diagnosing issues and debugging
-
'';
-
default = "INFO";
-
type = lib.types.str;
+
type = lib.types.nullOr lib.types.path;
};
-
maxIndexSize = lib.mkOption {
+
settings = lib.mkOption {
description = ''
-
Sets the maximum size of the index.
-
Value must be given in bytes or explicitly stating a base unit.
-
For example, the default value can be written as 107374182400, '107.7Gb', or '107374 Mb'.
-
Default is 100 GiB
+
Configuration settings for Meilisearch.
+
Look at the documentation for available options:
+
https://github.com/meilisearch/meilisearch/blob/main/config.toml
+
https://www.meilisearch.com/docs/learn/self_hosted/configure_meilisearch_at_launch#all-instance-options
'';
-
default = "107374182400";
-
type = lib.types.str;
-
};
-
payloadSizeLimit = lib.mkOption {
-
description = ''
-
Sets the maximum size of accepted JSON payloads.
-
Value must be given in bytes or explicitly stating a base unit.
-
For example, the default value can be written as 107374182400, '107.7Gb', or '107374 Mb'.
-
Default is ~ 100 MB
-
'';
-
default = "104857600";
-
type = lib.types.str;
-
};
+
default = { };
-
# TODO: turn on by default when it stops being experimental
-
dumplessUpgrade = lib.mkOption {
-
default = false;
-
example = true;
-
description = ''
-
Whether to enable (experimental) dumpless upgrade.
+
type = lib.types.submodule {
+
freeformType = settingsFormat.type;
-
Allows upgrading from Meilisearch >=v1.12 to Meilisearch >=v1.13 without manually
-
dumping and importing the database.
+
imports = builtins.map (secret: {
+
# give them proper types, just so they're easier to consume from this file
+
options.${secret.name} = lib.mkOption {
+
# but they should not show up in documentation as special in any way.
+
visible = false;
-
More information at https://www.meilisearch.com/docs/learn/update_and_migration/updating#dumpless-upgrade
-
'';
-
type = lib.types.bool;
+
type = lib.types.nullOr lib.types.path;
+
default = null;
+
};
+
}) secrets-with-path;
+
};
};
+
};
-
};
+
config = lib.mkIf cfg.enable {
+
assertions = [
+
{
+
assertion = !cfg.settings ? master_key;
+
message = ''
+
Do not set `services.meilisearch.settings.master_key` in your configuration.
+
Use `services.meilisearch.masterKeyFile` instead.
+
'';
+
}
+
];
-
###### implementation
+
services.meilisearch.settings = {
+
# we use `listenAddress` and `listenPort` to derive the `http_addr` setting.
+
# this is the only setting we treat like this.
+
# we do this because some dependent services like Misskey/Sharkey need separate host,port for no good reason.
+
http_addr = "${cfg.listenAddress}:${toString cfg.listenPort}";
+
+
# upstream's default for `db_path` is `/var/lib/meilisearch/data.ms/`, but ours is different for no reason.
+
db_path = lib.mkDefault "/var/lib/meilisearch";
+
# these are equivalent to the upstream defaults, because we set a working directory.
+
# they are only set here for consistency with `db_path`.
+
dump_dir = lib.mkDefault "/var/lib/meilisearch/dumps";
+
snapshot_dir = lib.mkDefault "/var/lib/meilisearch/snapshots";
-
config = lib.mkIf cfg.enable {
+
# this is intentionally different from upstream's default.
+
no_analytics = lib.mkDefault true;
+
};
warnings = lib.optional (lib.versionOlder cfg.package.version "1.12") ''
Meilisearch 1.11 will be removed in NixOS 25.11. As it was the last
···
environment.systemPackages = [ cfg.package ];
systemd.services.meilisearch = {
-
description = "MeiliSearch daemon";
+
description = "Meilisearch daemon";
wantedBy = [ "multi-user.target" ];
after = [ "network.target" ];
-
environment = {
-
MEILI_DB_PATH = "/var/lib/meilisearch";
-
MEILI_HTTP_ADDR = "${cfg.listenAddress}:${toString cfg.listenPort}";
-
MEILI_NO_ANALYTICS = lib.boolToString cfg.noAnalytics;
-
MEILI_ENV = cfg.environment;
-
MEILI_DUMP_DIR = "/var/lib/meilisearch/dumps";
-
MEILI_LOG_LEVEL = cfg.logLevel;
-
MEILI_MAX_INDEX_SIZE = cfg.maxIndexSize;
-
MEILI_EXPERIMENTAL_DUMPLESS_UPGRADE = lib.boolToString cfg.dumplessUpgrade;
-
};
+
+
preStart = lib.mkMerge [
+
''
+
install -m 700 '${configFile}' "$RUNTIME_DIRECTORY/config.toml"
+
''
+
(lib.mkIf (cfg.masterKeyFile != null) ''
+
${lib.getExe pkgs.replace-secret} '${master-key-placeholder}' "$CREDENTIALS_DIRECTORY/master_key" "$RUNTIME_DIRECTORY/config.toml"
+
'')
+
];
+
+
environment = builtins.listToAttrs (
+
builtins.map (secret: {
+
name = secret.environment;
+
value = lib.mkIf (secret.setting != null) "%d/${secret.name}";
+
}) secrets-with-path
+
);
+
serviceConfig = {
-
ExecStart = "${cfg.package}/bin/meilisearch";
+
LoadCredential = lib.mkMerge (
+
[
+
(lib.mkIf (cfg.masterKeyFile != null) [ "master_key:${cfg.masterKeyFile}" ])
+
]
+
++ builtins.map (
+
secret: lib.mkIf (secret.setting != null) [ "${secret.name}:${secret.setting}" ]
+
) secrets-with-path
+
);
+
ExecStart = "${lib.getExe cfg.package} --config-file-path \${RUNTIME_DIRECTORY}/config.toml";
DynamicUser = true;
StateDirectory = "meilisearch";
-
EnvironmentFile = lib.mkIf (cfg.masterKeyEnvironmentFile != null) cfg.masterKeyEnvironmentFile;
+
WorkingDirectory = "%S/meilisearch";
+
RuntimeDirectory = "meilisearch";
+
RuntimeDirectoryMode = "0700";
};
};
};
+2 -2
nixos/modules/services/web-apps/sharkey.nix
···
description = ''
Whether to automatically set up a local Meilisearch instance and configure Sharkey to use it.
-
You need to ensure `services.meilisearch.masterKeyEnvironmentFile` is correctly configured for a working
+
You need to ensure `services.meilisearch.masterKeyFile` is correctly configured for a working
Meilisearch setup. You also need to configure Sharkey to use an API key obtained from Meilisearch with the
`MK_CONFIG_MEILISEARCH_APIKEY` environment variable, and set `services.sharkey.settings.meilisearch.index` to
the created index. See https://docs.joinsharkey.org/docs/customisation/search/meilisearch/ for how to create
···
(mkIf cfg.setupMeilisearch {
services.meilisearch = {
enable = mkDefault true;
-
environment = mkDefault "production";
+
settings.env = mkDefault "production";
};
services.sharkey.settings = {
+11 -12
nixos/tests/meilisearch.nix
···
machine.wait_for_unit("meilisearch")
machine.wait_for_open_port(7700)
+
def wait_task(cmd):
+
response = json.loads(machine.succeed(cmd))
+
task_uid = response["taskUid"]
+
machine.wait_until_succeeds(
+
f"curl ${apiUrl}/tasks/{task_uid} | jq -e '.status | IN(\"succeeded\", \"failed\", \"canceled\")'"
+
)
+
machine.succeed(f"curl ${apiUrl}/tasks/{task_uid} | jq -e '.status == \"succeeded\"'")
+
return response
+
with subtest("check version"):
version = json.loads(machine.succeed("curl ${apiUrl}/version"))
assert version["pkgVersion"] == "${pkgs.meilisearch.version}"
with subtest("create index"):
-
machine.succeed(
-
"curl -X POST -H 'Content-Type: application/json' ${apiUrl}/indexes --data @${indexJSON}"
-
)
+
wait_task("curl -X POST -H 'Content-Type: application/json' ${apiUrl}/indexes --data @${indexJSON}")
indexes = json.loads(machine.succeed("curl ${apiUrl}/indexes"))
assert indexes["total"] == 1, "index wasn't created"
with subtest("add documents"):
-
response = json.loads(
-
machine.succeed(
-
"curl -X POST -H 'Content-Type: application/json' ${apiUrl}/indexes/${uid}/documents --data-binary @${moviesJSON}"
-
)
-
)
-
task_uid = response["taskUid"]
-
machine.wait_until_succeeds(
-
f"curl ${apiUrl}/tasks/{task_uid} | jq -e '.status == \"succeeded\"'"
-
)
+
wait_task("curl -X POST -H 'Content-Type: application/json' ${apiUrl}/indexes/${uid}/documents --data-binary @${moviesJSON}")
with subtest("search"):
response = json.loads(
+1 -3
nixos/tests/web-apps/sharkey.nix
···
};
};
-
services.meilisearch.masterKeyEnvironmentFile = pkgs.writeText "meilisearch-key" ''
-
MEILI_MASTER_KEY=${meilisearchKey}
-
'';
+
services.meilisearch.masterKeyFile = pkgs.writeText "meilisearch-key" meilisearchKey;
};
testScript =
+10 -12
pkgs/applications/audio/strawberry/default.nix pkgs/by-name/st/strawberry/package.nix
···
nix-update-script,
p11-kit,
pkg-config,
-
qtbase,
-
qttools,
+
qt6,
sqlite,
stdenv,
taglib,
util-linux,
-
wrapQtAppsHook,
sparsehash,
rapidjson,
}:
-
stdenv.mkDerivation rec {
+
stdenv.mkDerivation (finalAttrs: {
pname = "strawberry";
version = "1.2.11";
src = fetchFromGitHub {
owner = "jonaski";
-
repo = pname;
-
rev = version;
+
repo = "strawberry";
+
rev = finalAttrs.finalPackage.version;
hash = "sha256-AhNx2CdfE7ff3+L47X6lYPD8GA7imkDIJD5ESndn/cc=";
};
# the big strawberry shown in the context menu is *very* much in your face, so use the grey version instead
postPatch = ''
substituteInPlace src/context/contextalbum.cpp \
-
--replace pictures/strawberry.png pictures/strawberry-grey.png
+
--replace-fail pictures/strawberry.png pictures/strawberry-grey.png
'';
buildInputs =
···
libmtp
libpthreadstubs
libtasn1
-
qtbase
+
qt6.qtbase
sqlite
taglib
sparsehash
···
cmake
ninja
pkg-config
-
qttools
-
wrapQtAppsHook
+
qt6.qttools
+
qt6.wrapQtAppsHook
]
++ lib.optionals stdenv.hostPlatform.isLinux [
util-linux
···
meta = {
description = "Music player and music collection organizer";
homepage = "https://www.strawberrymusicplayer.org/";
-
changelog = "https://raw.githubusercontent.com/jonaski/strawberry/${version}/Changelog";
+
changelog = "https://raw.githubusercontent.com/jonaski/strawberry/${finalAttrs.finalPackage.version}/Changelog";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ peterhoeg ];
# upstream says darwin should work but they lack maintainers as of 0.6.6
platforms = lib.platforms.linux;
mainProgram = "strawberry";
};
-
}
+
})
+8 -6
pkgs/applications/editors/vscode/extensions/default.nix
···
mktplcRef = {
publisher = "42Crunch";
name = "vscode-openapi";
-
version = "4.35.0";
-
hash = "sha256-wpWPT8BW2GPo2SCzM+l1HTpiXMTnbDOc9Oj9wDT/o/8=";
+
version = "4.37.2";
+
hash = "sha256-XUD5lXybUdUavbiqCqv561NAPAbZ0Q9oLsQkrSRUmsU=";
};
meta = {
changelog = "https://marketplace.visualstudio.com/items/42Crunch.vscode-openapi/changelog";
···
# semver scheme, contrary to preview versions which are listed on
# the VSCode Marketplace and use a calver scheme. We should avoid
# using preview versions, because they expire after two weeks.
-
version = "17.2.1";
-
hash = "sha256-1p4DDZEFFOIFHV6bkduXmrUGhjMDwrqf5/U2tO00iD0=";
+
version = "17.3.1";
+
hash = "sha256-qZBctE3R39WeU3Fc3pajrUSS6ncni7O+/oAOyZK2EnY=";
};
meta = {
changelog = "https://marketplace.visualstudio.com/items/eamodio.gitlens/changelog";
···
mktplcRef = {
name = "vscode-vibrancy-continued";
publisher = "illixion";
-
version = "1.1.57";
-
hash = "sha256-UJn+RFBlQXmPqKkFIBiD4AblnX4s0O2IK747fG+UC/0=";
+
version = "1.1.58";
+
hash = "sha256-oBm2j7fZBYALkstk1WMgC+o1sq2HY7tX+zLfo5PBMiM=";
};
meta = {
downloadPage = "https://marketplace.visualstudio.com/items?itemName=illixion.vscode-vibrancy-continued";
···
};
llvm-org.lldb-vscode = llvmPackages.lldb;
+
+
llvm-vs-code-extensions.lldb-dap = callPackage ./llvm-vs-code-extensions.lldb-dap { };
llvm-vs-code-extensions.vscode-clangd = buildVscodeMarketplaceExtension {
mktplcRef = {
+18
pkgs/applications/editors/vscode/extensions/llvm-vs-code-extensions.lldb-dap/default.nix
···
+
{ lib, vscode-utils }:
+
+
vscode-utils.buildVscodeMarketplaceExtension {
+
mktplcRef = {
+
name = "lldb-dap";
+
publisher = "llvm-vs-code-extensions";
+
version = "0.2.15";
+
hash = "sha256-Xr/TUpte9JqdvQ8eoD0l8ztg0tR8qwX/Ju1eVU6Xc0s=";
+
};
+
+
meta = {
+
description = "Debugging with LLDB in Visual Studio Code";
+
downloadPage = "hhttps://marketplace.visualstudio.com/items?itemName=llvm-vs-code-extensions.lldb-dap";
+
homepage = "https://github.com/llvm/llvm-project";
+
license = lib.licenses.asl20;
+
maintainers = [ lib.maintainers.m0nsterrr ];
+
};
+
}
+2 -2
pkgs/applications/misc/organicmaps/default.nix
···
in
stdenv.mkDerivation (finalAttrs: {
pname = "organicmaps";
-
version = "2025.06.26-3";
+
version = "2025.07.13-9";
src = fetchFromGitHub {
owner = "organicmaps";
repo = "organicmaps";
tag = "${finalAttrs.version}-android";
-
hash = "sha256-IXpSY1ZGKAPqFT3B4C8Y+FHUuFQJPVptSKKhXZCYSfo=";
+
hash = "sha256-cEQmghS5qg5HTyWfDIB4G/Arh9BpM3iz1tToRWY8KrE=";
fetchSubmodules = true;
};
+2 -2
pkgs/applications/networking/instant-messengers/discord/default.nix
···
if stdenv.hostPlatform.isLinux then
{
stable = "0.0.101";
-
ptb = "0.0.151";
+
ptb = "0.0.152";
canary = "0.0.716";
development = "0.0.83";
}
···
};
ptb = fetchurl {
url = "https://ptb.dl2.discordapp.net/apps/linux/${version}/discord-ptb-${version}.tar.gz";
-
hash = "sha256-7fQFCPUj59c/OfuNa4RDxGexAKZXLL7M+7n36WE5qDg=";
+
hash = "sha256-GbLEAu6gchwkkupU6k6i7bpdMVnCqB74HDYxyTt3J/w=";
};
canary = fetchurl {
url = "https://canary.dl2.discordapp.net/apps/linux/${version}/discord-canary-${version}.tar.gz";
+56 -55
pkgs/applications/science/machine-learning/sc2-headless/default.nix
···
licenseAccepted ? config.sc2-headless.accept_license or false,
}:
-
if !licenseAccepted then
-
throw ''
-
You must accept the Blizzard® Starcraft® II AI and Machine Learning License at
-
https://blzdistsc2-a.akamaihd.net/AI_AND_MACHINE_LEARNING_LICENSE.html
-
by setting nixpkgs config option 'sc2-headless.accept_license = true;'
-
''
-
else
-
assert licenseAccepted;
-
let
-
maps = callPackage ./maps.nix { };
-
in
-
stdenv.mkDerivation rec {
-
version = "4.7.1";
-
pname = "sc2-headless";
+
let
+
maps = callPackage ./maps.nix { inherit licenseAccepted; };
+
in
+
stdenv.mkDerivation rec {
+
version = "4.7.1";
+
pname = "sc2-headless";
-
src = fetchurl {
-
url = "https://blzdistsc2-a.akamaihd.net/Linux/SC2.${version}.zip";
-
sha256 = "0q1ry9bd3dm8y4hvh57yfq7s05hl2k2sxi2wsl6h0r3w690v1kdd";
-
};
+
src = fetchurl {
+
url = "https://blzdistsc2-a.akamaihd.net/Linux/SC2.${version}.zip";
+
sha256 = "0q1ry9bd3dm8y4hvh57yfq7s05hl2k2sxi2wsl6h0r3w690v1kdd";
+
};
-
unpackCmd = ''
-
unzip -P 'iagreetotheeula' $curSrc
-
'';
+
unpackCmd =
+
if !licenseAccepted then
+
throw ''
+
You must accept the Blizzard® Starcraft® II AI and Machine Learning License at
+
https://blzdistsc2-a.akamaihd.net/AI_AND_MACHINE_LEARNING_LICENSE.html
+
by setting nixpkgs config option 'sc2-headless.accept_license = true;'
+
''
+
else
+
assert licenseAccepted;
+
''
+
unzip -P 'iagreetotheeula' $curSrc
+
'';
-
nativeBuildInputs = [ unzip ];
+
nativeBuildInputs = [ unzip ];
-
installPhase = ''
-
mkdir -p $out
-
cp -r . "$out"
-
rm -r $out/Libs
+
installPhase = ''
+
mkdir -p $out
+
cp -r . "$out"
+
rm -r $out/Libs
-
cp -ur "${maps.minigames}"/* "${maps.melee}"/* "${maps.ladder2017season1}"/* "${maps.ladder2017season2}"/* "${maps.ladder2017season3}"/* \
-
"${maps.ladder2017season4}"/* "${maps.ladder2018season1}"/* "${maps.ladder2018season2}"/* \
-
"${maps.ladder2018season3}"/* "${maps.ladder2018season4}"/* "${maps.ladder2019season1}"/* "$out"/Maps/
-
'';
+
cp -ur "${maps.minigames}"/* "${maps.melee}"/* "${maps.ladder2017season1}"/* "${maps.ladder2017season2}"/* "${maps.ladder2017season3}"/* \
+
"${maps.ladder2017season4}"/* "${maps.ladder2018season1}"/* "${maps.ladder2018season2}"/* \
+
"${maps.ladder2018season3}"/* "${maps.ladder2018season4}"/* "${maps.ladder2019season1}"/* "$out"/Maps/
+
'';
-
preFixup = ''
-
find $out -type f -print0 | while IFS=''' read -d ''' -r file; do
-
isELF "$file" || continue
-
patchelf \
-
--interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
-
--set-rpath ${
-
lib.makeLibraryPath [
-
stdenv.cc.cc
-
stdenv.cc.libc
-
]
-
} \
-
"$file"
-
done
-
'';
+
preFixup = ''
+
find $out -type f -print0 | while IFS=''' read -d ''' -r file; do
+
isELF "$file" || continue
+
patchelf \
+
--interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+
--set-rpath ${
+
lib.makeLibraryPath [
+
stdenv.cc.cc
+
stdenv.cc.libc
+
]
+
} \
+
"$file"
+
done
+
'';
-
meta = {
-
platforms = lib.platforms.linux;
-
description = "Starcraft II headless linux client for machine learning research";
-
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
-
license = {
-
fullName = "BLIZZARD® STARCRAFT® II AI AND MACHINE LEARNING LICENSE";
-
url = "https://blzdistsc2-a.akamaihd.net/AI_AND_MACHINE_LEARNING_LICENSE.html";
-
free = false;
-
};
-
maintainers = [ ];
+
meta = {
+
platforms = lib.platforms.linux;
+
description = "Starcraft II headless linux client for machine learning research";
+
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
+
license = {
+
fullName = "BLIZZARD® STARCRAFT® II AI AND MACHINE LEARNING LICENSE";
+
url = "https://blzdistsc2-a.akamaihd.net/AI_AND_MACHINE_LEARNING_LICENSE.html";
+
free = false;
};
-
}
+
maintainers = [ ];
+
};
+
}
+13 -4
pkgs/applications/science/machine-learning/sc2-headless/maps.nix
···
{
fetchzip,
+
licenseAccepted,
}:
let
fetchzip' =
-
args:
-
(fetchzip args).overrideAttrs (old: {
-
UNZIP = "-j -P iagreetotheeula";
-
});
+
if !licenseAccepted then
+
throw ''
+
You must accept the Blizzard® Starcraft® II AI and Machine Learning License at
+
https://blzdistsc2-a.akamaihd.net/AI_AND_MACHINE_LEARNING_LICENSE.html
+
by setting nixpkgs config option 'sc2-headless.accept_license = true;'
+
''
+
else
+
assert licenseAccepted;
+
args:
+
(fetchzip args).overrideAttrs (old: {
+
UNZIP = "-j -P iagreetotheeula";
+
});
in
{
minigames = fetchzip {
+12 -22
pkgs/by-name/bo/boofuzz/package.nix
···
hash = "sha256-ffZVFmfDAJ+Qn3hbeHY/CvYgpDLxB+jaYOiYyZqZ7mo=";
};
-
nativeBuildInputs = with python3.pkgs; [
-
poetry-core
-
];
+
build-system = with python3.pkgs; [ poetry-core ];
-
propagatedBuildInputs = with python3.pkgs; [
+
dependencies = with python3.pkgs; [
attrs
click
colorama
flask
funcy
-
future
psutil
pyserial
pydot
-
six
tornado
];
···
pytestCheckHook
];
-
disabledTests =
-
[
-
"TestNetworkMonitor"
-
"TestNoResponseFailure"
-
"TestProcessMonitor"
-
"TestSocketConnection"
-
]
-
++ lib.optionals stdenv.hostPlatform.isDarwin [
-
"test_time_repeater"
-
];
+
disabledTests = [
+
"TestNetworkMonitor"
+
"TestNoResponseFailure"
+
"TestProcessMonitor"
+
"TestSocketConnection"
+
] ++ lib.optionals stdenv.hostPlatform.isDarwin [ "test_time_repeater" ];
-
pythonImportsCheck = [
-
"boofuzz"
-
];
+
pythonImportsCheck = [ "boofuzz" ];
meta = {
description = "Network protocol fuzzing tool";
-
mainProgram = "boo";
homepage = "https://github.com/jtpereyda/boofuzz";
-
changelog = "https://github.com/jtpereyda/boofuzz/blob/v${version}/CHANGELOG.rst";
-
license = with lib.licenses; [ gpl2Plus ];
+
changelog = "https://github.com/jtpereyda/boofuzz/blob/${src.tag}/CHANGELOG.rst";
+
license = lib.licenses.gpl2Plus;
maintainers = with lib.maintainers; [ fab ];
+
mainProgram = "boo";
};
}
+4 -4
pkgs/by-name/cl/claude-code/package-lock.json
···
"packages": {
"": {
"dependencies": {
-
"@anthropic-ai/claude-code": "^1.0.55"
+
"@anthropic-ai/claude-code": "^1.0.56"
}
},
"node_modules/@anthropic-ai/claude-code": {
-
"version": "1.0.55",
-
"resolved": "https://registry.npmjs.org/@anthropic-ai/claude-code/-/claude-code-1.0.55.tgz",
-
"integrity": "sha512-gCYXKwnU84zhmbNIZaduUY5HtGHBP/SMOxT4i8FmiEGSOeL/nY78mNOawXkRny1Je87WRjWVCBdhRnaxLP5c0w==",
+
"version": "1.0.56",
+
"resolved": "https://registry.npmjs.org/@anthropic-ai/claude-code/-/claude-code-1.0.56.tgz",
+
"integrity": "sha512-LYOlv9uXtLrJcJqSLvQlhy7shhC6MHEXuSGZ/+BazM4LY36ng3cmKjTCDny0kZQxa+u/+MYOXUrkmkJm2qR75Q==",
"license": "SEE LICENSE IN README.md",
"bin": {
"claude": "cli.js"
+3 -3
pkgs/by-name/cl/claude-code/package.nix
···
buildNpmPackage rec {
pname = "claude-code";
-
version = "1.0.55";
+
version = "1.0.56";
nodejs = nodejs_20; # required for sandboxed Nix builds on Darwin
src = fetchzip {
url = "https://registry.npmjs.org/@anthropic-ai/claude-code/-/claude-code-${version}.tgz";
-
hash = "sha256-xx7Nksfa0IN18i6MoU60olnY/BioS+W+OQmyETQYDHI=";
+
hash = "sha256-q/17LfP5MWeKpt8akPXwMvkZ6Qhc+9IGpM6N34JuExY=";
};
-
npmDepsHash = "sha256-v7a3DQD2Syhr3ITX7yHyEtQMCnrXwaf7IXXtl7JS07Q=";
+
npmDepsHash = "sha256-0hr5Tu2/0ETEgNb2s4BQGZXjsHrFzK+iD2ZtZNTlyoI=";
postPatch = ''
cp ${./package-lock.json} package-lock.json
+5 -5
pkgs/by-name/de/deno/librusty_v8.nix
···
{ fetchLibrustyV8 }:
fetchLibrustyV8 {
-
version = "137.1.0";
+
version = "137.2.1";
shas = {
-
x86_64-linux = "sha256-Tiscfy2bzYGR3s0T+SC1IB3xWvTVpVcSEdjq3MCRoRw=";
-
aarch64-linux = "sha256-2GYc+fgZLGUMQCXXSiyYUNKxZM4Mb788by+cWPdA9+4=";
-
x86_64-darwin = "sha256-yOJWfwIdl+uF7z7K6RzTcwnlgkDE8NM+e1tbWshx8+k=";
-
aarch64-darwin = "sha256-QQaC74Itb3D9EaN6PTxrjAGd/F9d6HY6PiLp+8jHK24=";
+
x86_64-linux = "sha256-1mV+UjvJsIyLFpBGVDrGxr/rqUgKzRRFwgnMyYTb/pM=";
+
aarch64-linux = "sha256-Rp7chA+GjsozCkMQrDnOoi4VhVJdrFZd1BuLfcRhGjw=";
+
x86_64-darwin = "sha256-tDMk+F6D/h4osYlzT2qAhqfHYUSDk3nL4RxEKjhBhD0=";
+
aarch64-darwin = "sha256-1eBUjKFalb/CIPfHYP8SvqIaxRep8vU6u9QFShOMUsQ=";
};
}
+3 -3
pkgs/by-name/de/deno/package.nix
···
in
rustPlatform.buildRustPackage (finalAttrs: {
pname = "deno";
-
version = "2.4.0";
+
version = "2.4.2";
src = fetchFromGitHub {
owner = "denoland";
repo = "deno";
tag = "v${finalAttrs.version}";
fetchSubmodules = true; # required for tests
-
hash = "sha256-YEiqp5KwkzRB/b6HhAtxXJNxHsPMTf3LnNxkP6GgYKw=";
+
hash = "sha256-7VHw+jjQ/N2b2AIBrGBcnLJ/k3MRkPnKRHD134A7mmw=";
};
useFetchCargoVendor = true;
-
cargoHash = "sha256-WQle7a2OjZ5kNg/eCQo0USPZssMaifiXGhlnKJDEtsQ=";
+
cargoHash = "sha256-ZEWSnath9v04wU1VyFDAx3LANnVhfE5s93jX4QW3XlI=";
patches = [
./tests-replace-hardcoded-paths.patch
+5 -2
pkgs/by-name/de/devtoolbox/package.nix
···
}:
python3Packages.buildPythonApplication rec {
pname = "devtoolbox";
-
version = "1.2.5";
+
version = "1.3.0";
pyproject = false; # uses meson
src = fetchFromGitHub {
owner = "aleiepure";
repo = "devtoolbox";
tag = "v${version}";
-
hash = "sha256-CgpSZvpwBKo2gzp2QbBPFBK0tPhqKFC/DxXdmTWVAwc=";
+
hash = "sha256-ReF70pNMrMweEB4WAGQT++9TxTN4gV1olln7Y6YWCis=";
};
+
# test after update
postPatch = ''
substituteInPlace src/views/reverse_cron.py \
--replace-fail '"\D"' 'r"\D"'
···
python-dateutil
rcssmin
rjsmin
+
cryptography
+
color-parser-py
];
dontWrapGApps = true;
+3 -3
pkgs/by-name/du/duckdb/versions.json
···
{
-
"version": "1.2.2",
-
"rev": "7c039464e452ddc3330e2691d3fa6d305521d09b",
-
"hash": "sha256-cHQcEA9Gpza/edEVyXUYiINC/Q2b3bf+zEQbl/Otfr4="
+
"version": "1.3.2",
+
"rev": "0b83e5d2f68bc02dfefde74b846bd039f078affa",
+
"hash": "sha256-6NMQ893g+nOiH8dnb63oa+fZMNXs8N6tJv+Er4x547U="
}
+4 -4
pkgs/by-name/fo/fosrl-newt/package.nix
···
buildGoModule rec {
pname = "newt";
-
version = "1.3.0";
+
version = "1.3.2";
src = fetchFromGitHub {
owner = "fosrl";
repo = "newt";
tag = version;
-
hash = "sha256-8wE0ut+pej1rGve4jyT6/Km2yIcubeAlZL+4yEyuNww=";
+
hash = "sha256-6+Cc2ZyFEs9dVBWPQNBlUoFiFZuwlk/qBQULqGguhO8=";
};
-
vendorHash = "sha256-rLyGju1UfKlzOSH2/NIKvZ8hpVE9+yJdcy4CK/NyoNc=";
+
vendorHash = "sha256-Y/f7GCO7Kf1iQiDR32DIEIGJdcN+PKS0OrhBvXiHvwo=";
postPatch = ''
substituteInPlace main.go \
-
--replace-fail "replaceme" "${version}"
+
--replace-fail "version_replaceme" "${version}"
'';
nativeInstallCheckInputs = [ versionCheckHook ];
+3 -3
pkgs/by-name/gc/gcsfuse/package.nix
···
buildGoModule rec {
pname = "gcsfuse";
-
version = "3.0.0";
+
version = "3.1.0";
src = fetchFromGitHub {
owner = "googlecloudplatform";
repo = "gcsfuse";
rev = "v${version}";
-
hash = "sha256-9qm3GmNzjIUdOa3w0cp+UpgTI3VX44qNKHPjoaPL1wc=";
+
hash = "sha256-xTICtyx6YPBe3hfme29M9pX/fX/w+/0pZWUMCbA6ajs=";
};
-
vendorHash = "sha256-7aJ9Nqz4kg1oFCh+VlYPTWFZxACH9uACdhzAwGbAjbc=";
+
vendorHash = "sha256-eTtKjGDJwRJzIb0qLp/HHLc8cYdd3HdWuivVUZOYEBU=";
subPackages = [
"."
+28 -27
pkgs/by-name/ge/gerbolyze/package.nix
···
sourceRoot = "${src.name}/svg-flatten";
-
postPatch = ''
-
substituteInPlace Makefile \
-
--replace "$(INSTALL) $(BUILDDIR)/$(BINARY) $(PREFIX)/bin" \
-
"$(INSTALL) $(BUILDDIR)/$(BINARY) $(PREFIX)/bin/svg-flatten" \
+
preInstall = ''
+
mkdir -p $out/bin
'';
-
installPhase = ''
-
runHook preInstall
-
mkdir -p $out/bin
-
PREFIX=$out make install
-
runHook postInstall
-
'';
+
installFlags = [ "PREFIX=$(out)" ];
meta = with lib; {
description = "svg-flatten SVG downconverter";
···
python3Packages.buildPythonApplication rec {
inherit version src;
pname = "gerbolyze";
+
pyproject = true;
-
format = "setuptools";
+
build-system = with python3Packages; [ setuptools ];
-
nativeBuildInputs = [
-
python3Packages.setuptools
+
pythonRemoveDeps = [
+
# we already provide svg-flatten through a binary on the PATH
+
"svg-flatten-wasi"
];
-
propagatedBuildInputs = [
-
python3Packages.beautifulsoup4
-
python3Packages.click
-
python3Packages.numpy
-
python3Packages.scipy
-
python3Packages.python-slugify
-
python3Packages.lxml
-
python3Packages.gerbonara
-
resvg
-
svg-flatten
+
dependencies = with python3Packages; [
+
beautifulsoup4
+
click
+
numpy
+
python-slugify
+
lxml
+
gerbonara
];
preConfigure = ''
# setup.py tries to execute a call to git in a subprocess, this avoids it.
substituteInPlace setup.py \
-
--replace "version = get_version()," \
-
"version = '${version}'," \
+
--replace-fail "version = get_version()," \
+
"version = '${version}'," \
# setup.py tries to execute a call to git in a subprocess, this avoids it.
substituteInPlace setup.py \
-
--replace "long_description=format_readme_for_pypi()," \
-
"long_description='\n'.join(Path('README.rst').read_text().splitlines()),"
+
--replace-fail "long_description=format_readme_for_pypi()," \
+
"long_description='\n'.join(Path('README.rst').read_text().splitlines()),"
'';
pythonImportsCheck = [ "gerbolyze" ];
···
python3Packages.pytestCheckHook
resvg
svg-flatten
+
];
+
+
makeWrapperArgs = [
+
"--prefix PATH: ${
+
lib.makeBinPath [
+
resvg
+
svg-flatten
+
]
+
}"
];
passthru.updateScript = gitUpdater {
+3 -3
pkgs/by-name/gr/grafana-alloy/package.nix
···
buildGoModule rec {
pname = "grafana-alloy";
-
version = "1.9.2";
+
version = "1.10.0";
src = fetchFromGitHub {
owner = "grafana";
repo = "alloy";
tag = "v${version}";
-
hash = "sha256-ciM5DbP5OTvAPUNgBTuwb+hbVtKGgQzafLLOjDftPZQ=";
+
hash = "sha256-wy4dopRuZthYcc6kWsnE1N6MFbJ2UhechoCJpgg2pWE=";
};
proxyVendor = true;
-
vendorHash = "sha256-zmNrnCaUrsYJ0S5MQrj07sV+ZCnXbGQmH8Z0pMpJZk4=";
+
vendorHash = "sha256-Mo++n6zat1OQ8ihA8FFP4i/ypdw22VG7BBFoVpvfgqI=";
nativeBuildInputs = [
fixup-yarn-lock
+3 -3
pkgs/by-name/ju/just-lsp/package.nix
···
rustPlatform.buildRustPackage (finalAttrs: {
pname = "just-lsp";
-
version = "0.2.3";
+
version = "0.2.4";
src = fetchFromGitHub {
owner = "terror";
repo = "just-lsp";
tag = finalAttrs.version;
-
hash = "sha256-1XxC09Q9UGKRzMb51mUjmTJd7vEp0FFqtUD/9cQZvC0=";
+
hash = "sha256-0bt/kovzOgqAaIKArrh0G9ncuD1J7K3OINg9Dpa7fXs=";
};
-
cargoHash = "sha256-mc1kYXfEF+oZO/GEBtCnKwt17LhvGDQK8RcOSsXKFjc=";
+
cargoHash = "sha256-DU8E3r9pjLYYxCEq+6dT2hrV2gDyGbtWD/N0aQFVyZI=";
passthru = {
updateScript = nix-update-script { };
+31
pkgs/by-name/lo/local-content-share/package.nix
···
+
{
+
lib,
+
buildGoModule,
+
fetchFromGitHub,
+
}:
+
+
buildGoModule (finalAttrs: {
+
pname = "local-content-share";
+
version = "31";
+
+
src = fetchFromGitHub {
+
owner = "Tanq16";
+
repo = "local-content-share";
+
tag = "v${finalAttrs.version}";
+
hash = "sha256-BVO804Ndjbg4uEE1bufZcGZxEVdraV29LJ6yBWXTakA=";
+
};
+
+
vendorHash = null;
+
+
# no test file in upstream
+
doCheck = false;
+
+
meta = {
+
description = "Storing/sharing text/files in your local network with no setup on client devices";
+
homepage = "https://github.com/Tanq16/local-content-share";
+
license = lib.licenses.mit;
+
mainProgram = "local-content-share";
+
platforms = lib.platforms.unix;
+
maintainers = with lib.maintainers; [ e-v-o-l-v-e ];
+
};
+
})
+2 -2
pkgs/by-name/lu/lunatask/package.nix
···
}:
let
-
version = "2.1.2";
+
version = "2.1.3";
pname = "lunatask";
src = fetchurl {
url = "https://github.com/lunatask/lunatask/releases/download/v${version}/Lunatask-${version}.AppImage";
-
hash = "sha256-MjzqoLPtTspLowDO3MV0joGoYuxjybuExC1h03AayB0=";
+
hash = "sha256-kVNuCtUyY8UkalXlIpfenjB4JApDZVabawLOhFxToyY=";
};
appimageContents = appimageTools.extract {
+11 -8
pkgs/by-name/ma/maigret/package.nix
···
stdenv,
fetchFromGitHub,
fetchpatch,
-
python3,
+
python312,
}:
-
python3.pkgs.buildPythonApplication rec {
+
python312.pkgs.buildPythonApplication rec {
pname = "maigret";
version = "0.4.4";
pyproject = true;
···
})
];
-
build-system = with python3.pkgs; [ setuptools ];
+
build-system = with python312.pkgs; [ setuptools ];
-
dependencies = with python3.pkgs; [
+
dependencies = with python312.pkgs; [
aiodns
aiohttp
aiohttp-socks
···
yarl
];
-
nativeCheckInputs = with python3.pkgs; [
+
nativeCheckInputs = with python312.pkgs; [
pytest-httpserver
pytest-asyncio
pytestCheckHook
···
pythonImportsCheck = [ "maigret" ];
-
meta = with lib; {
+
meta = {
description = "Tool to collect details about an username";
homepage = "https://maigret.readthedocs.io";
-
license = licenses.mit;
-
maintainers = with maintainers; [ fab ];
+
license = lib.licenses.mit;
+
maintainers = with lib.maintainers; [
+
fab
+
thtrf
+
];
broken = stdenv.hostPlatform.isDarwin;
};
}
+2 -2
pkgs/by-name/mi/minio-client/package.nix
···
buildGoModule rec {
pname = "minio-client";
-
version = "2025-05-21T01-59-54Z";
+
version = "2025-07-16T15-35-03Z";
src = fetchFromGitHub {
owner = "minio";
repo = "mc";
rev = "RELEASE.${version}";
-
sha256 = "sha256-ss/GqOJz9FNrQzYABb8ePCMcmNVTYVji/Id1WOuu24M=";
+
sha256 = "sha256-U5bKSew/qqbBs/VR0mSserH/0jdzZsztDJiJ02BHFIY=";
};
vendorHash = "sha256-MpLQZFrf2sBAweXtYeFi5j6p6GaXuN99x+r4UK8D9xM=";
+7 -7
pkgs/by-name/op/opencode/package.nix
···
let
opencode-node-modules-hash = {
-
"aarch64-darwin" = "sha256-W/kIKKRt2rBbnb+42NaZ1PsHZPGJbtjB8kV/aP1iZKc=";
-
"aarch64-linux" = "sha256-xDUT61afD8wk3z35NXtQGvZQpxQkN/CPWctVObYQECE=";
-
"x86_64-darwin" = "sha256-Kumy9PeeCO3TQGDdS0Zw9/HlIIQT5O4wrBPGGyl73Og=";
-
"x86_64-linux" = "sha256-VB7bikVFy8w82M6AkYXjsHx34CNHAGMgY69KISOokE4=";
+
"aarch64-darwin" = "sha256-TAeFDsHGFJnUyp20ec+Rxp4t1FrWKfbtnxsE8PnLS0o=";
+
"aarch64-linux" = "sha256-F056MWf2dNAO21ezEvWg689WUibtz4Q4mcSuDuSY5EM=";
+
"x86_64-darwin" = "sha256-AN1Ha/les1ByJGfVkLDibfxjPouC0tAZ//EN3vDi1Hc=";
+
"x86_64-linux" = "sha256-XIRV1QrgRHnpJyrgK9ITxH61dve7nWfVoCPs3Tc8nuU=";
};
bun-target = {
"aarch64-darwin" = "bun-darwin-arm64";
···
in
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "opencode";
-
version = "0.3.22";
+
version = "0.3.43";
src = fetchFromGitHub {
owner = "sst";
repo = "opencode";
tag = "v${finalAttrs.version}";
-
hash = "sha256-yT6uaTEKYb/+A1WhP6AQW0hWMnmS9vlfLn1E57cnzn0=";
+
hash = "sha256-EM44FkMPPkRChuLcNEEK3n4dLc5uqnX7dHROsZXyr58=";
};
tui = buildGoModule {
···
inherit (finalAttrs) version;
src = "${finalAttrs.src}/packages/tui";
-
vendorHash = "sha256-G1vM8wxTTPpB1Oaxz2YI8AkirwG54A9i6Uq5e92ucyY=";
+
vendorHash = "sha256-/YxvM+HZM4aRqcjUiSX0D1DhhMJkmLdh7G4+fPqtnic=";
subPackages = [ "cmd/opencode" ];
+2 -2
pkgs/by-name/op/openmm/package.nix
···
stdenv.mkDerivation (finalAttrs: {
pname = "openmm";
-
version = "8.3.0";
+
version = "8.3.1";
src = fetchFromGitHub {
owner = "openmm";
repo = "openmm";
rev = finalAttrs.version;
-
hash = "sha256-wXk5s6OascFWjHs4WpxGU9TcX0gSiOZ3BRusIH1NjpI=";
+
hash = "sha256-3e0+8f2V+UCrPJA1wQUZKPvjpmWU9FfOAt9Ako0Lnl0=";
};
# "This test is stochastic and may occasionally fail". It does.
-4
pkgs/by-name/pr/pre-commit/package.nix
···
stdenv,
python3Packages,
fetchFromGitHub,
-
julia,
-
julia-bin,
# tests
cabal-install,
···
let
i686Linux = stdenv.buildPlatform.system == "i686-linux";
-
julia' = if lib.meta.availableOn stdenv.hostPlatform julia then julia else julia-bin;
in
python3Packages.buildPythonApplication rec {
pname = "pre-commit";
···
cargo
gitMinimal
go
-
julia'
perl
versionCheckHook
writableTmpDirAsHomeHook
+3 -3
pkgs/by-name/pr/proksi/package.nix
···
rustPlatform.buildRustPackage (finalAttrs: {
pname = "proksi";
-
version = "0.6.0";
+
version = "0.6.1";
src = fetchFromGitHub {
owner = "luizfonseca";
repo = "proksi";
tag = "proksi-v${finalAttrs.version}";
-
hash = "sha256-5IXtMtyKbx7re6CA61AnQ85k/SMdkjZo/ySnNoD2DDo=";
+
hash = "sha256-AVNQBrFxkFPgnVbh3Y0CQ3RajMmh/M6ee/QkumdLDs4=";
};
postPatch = ''
···
'';
useFetchCargoVendor = true;
-
cargoHash = "sha256-yjbtP+FlDaJXPhCu1UyaDolpzy+BUejU8nVVSVsKCzE=";
+
cargoHash = "sha256-MYyPYZFmbQZszYViaGZdbUZWM739MN14J1ckyR8hXZc=";
nativeBuildInputs = [
pkg-config
+38
pkgs/by-name/pr/prometheus-opnsense-exporter/package.nix
···
+
{
+
lib,
+
buildGoModule,
+
fetchFromGitHub,
+
nix-update-script,
+
}:
+
buildGoModule (finalAttrs: {
+
pname = "prometheus-opnsense-exporter";
+
version = "0.0.10";
+
+
src = fetchFromGitHub {
+
owner = "athennamind";
+
repo = "opnsense-exporter";
+
tag = "v${finalAttrs.version}";
+
hash = "sha256-U/F301HkRfmzB8czwHP9u5UajR9CvxhSZwrJSIwcRd4=";
+
};
+
+
ldflags = [
+
"-s"
+
"-w"
+
"-X=github.com/prometheus/common/version.BuildDate=1970-01-01T00:00:00Z"
+
"-X github.com/prometheus/common/version.BuildUser=nix@nixpkgs"
+
"-X github.com/prometheus/common/version.Branch=master"
+
"-X github.com/prometheus/common/version.Revision=${finalAttrs.src.rev}"
+
"-X github.com/prometheus/common/version.Version=${finalAttrs.version}"
+
];
+
vendorHash = null;
+
passthru.updateScript = nix-update-script { };
+
doInstallCheck = true;
+
meta = {
+
changelog = "https://github.com/AthennaMind/opnsense-exporter/releases/tag/v${finalAttrs.version}";
+
homepage = "https://githbub.com/AthennaMind/opnsense-exporter";
+
description = "Prometheus exporter for opnsense firewall appliances";
+
license = lib.licenses.mit;
+
mainProgram = "opnsense-exporter";
+
maintainers = with lib.maintainers; [ paepcke ];
+
};
+
})
+3 -3
pkgs/by-name/ra/raycast/package.nix
···
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "raycast";
-
version = "1.100.3";
+
version = "1.101.1";
src =
{
aarch64-darwin = fetchurl {
name = "Raycast.dmg";
url = "https://releases.raycast.com/releases/${finalAttrs.version}/download?build=arm";
-
hash = "sha256-2X+vv1OMXKmoXH+WGzHF49HWTCMA9a77BTJqKfkMg0E=";
+
hash = "sha256-/G9cYTecssfmWWnl6fSnIuJgiHNu5ggvyE3xeFfNx2o=";
};
x86_64-darwin = fetchurl {
name = "Raycast.dmg";
url = "https://releases.raycast.com/releases/${finalAttrs.version}/download?build=x86_64";
-
hash = "sha256-Ug9starsQ759+9WvGbIvxMf+Hvs+1lj3pViEvcfrc6k=";
+
hash = "sha256-xkUvCig24kGlw9/LQhY7aId7tuccdw8CFSJ9c2lvrsE=";
};
}
.${stdenvNoCC.system} or (throw "raycast: ${stdenvNoCC.system} is unsupported.");
+2
pkgs/by-name/ra/raylib/package.nix
···
meta = {
description = "Simple and easy-to-use library to enjoy videogames programming";
homepage = "https://www.raylib.com/";
+
downloadPage = "https://github.com/raysan5/raylib";
license = lib.licenses.zlib;
maintainers = [ lib.maintainers.diniamo ];
+
teams = [ lib.teams.ngi ];
platforms = lib.platforms.all;
changelog = "https://github.com/raysan5/raylib/blob/${finalAttrs.version}/CHANGELOG";
};
+3 -3
pkgs/by-name/re/regclient/package.nix
···
buildGoModule rec {
pname = "regclient";
-
version = "0.8.3";
+
version = "0.9.0";
tag = "v${version}";
src = fetchFromGitHub {
owner = "regclient";
repo = "regclient";
rev = tag;
-
sha256 = "sha256-vuZPd51nzCasV3WWulbKCQnqVkupMu5jQhQypvTKGvk=";
+
sha256 = "sha256-FVXTEP1CNlKmuorNxRE2SeiA90u2rz8sXELBtfRm9z0=";
};
-
vendorHash = "sha256-ad7IPiOMG4G80BdAZz7IN0hBPJgUIVdO9oFlM7IDmp8=";
+
vendorHash = "sha256-MP/drjUbST5s3NKQ6omVOLSvl4rdPSfVaM0zlF/9Cq0=";
outputs = [ "out" ] ++ bins;
+11 -5
pkgs/by-name/ro/routersploit/package.nix
···
python3,
}:
-
python3.pkgs.buildPythonApplication rec {
+
let
+
version = "3.4.7";
+
in
+
python3.pkgs.buildPythonApplication {
pname = "routersploit";
-
version = "3.4.7";
+
inherit version;
pyproject = true;
src = fetchFromGitHub {
···
"tests/test_module_info.py"
];
-
meta = with lib; {
+
meta = {
description = "Exploitation Framework for Embedded Devices";
homepage = "https://github.com/threat9/routersploit";
-
license = licenses.bsd3;
-
maintainers = with maintainers; [ fab ];
+
license = lib.licenses.bsd3;
+
maintainers = with lib.maintainers; [
+
fab
+
thtrf
+
];
mainProgram = "rsf";
};
}
+31 -4
pkgs/by-name/sf/sfml/package.nix
···
lib,
stdenv,
fetchFromGitHub,
+
fetchpatch2,
# nativeBuildInputs
cmake,
···
glew,
libjpeg,
libvorbis,
-
openal,
udev,
libXi,
libX11,
···
libXrandr,
libXrender,
xcbutilimage,
+
+
# miniaudio
+
alsa-lib,
+
libjack2,
+
libpulseaudio,
+
sndio,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "sfml";
-
version = "3.0.0";
+
version = "3.0.1";
src = fetchFromGitHub {
owner = "SFML";
repo = "SFML";
tag = finalAttrs.version;
-
hash = "sha256-e6x/L2D3eT6F/DBLQDZ+j0XD5NL9RalWZA8kcm9lZ3g=";
+
hash = "sha256-yTNoDHcBRzk270QHjSFVpjFKm2+uVvmVLg6XlAppwYk=";
};
+
patches = [
+
(fetchpatch2 {
+
name = "Fix-pkg-config-when-SFML_PKGCONFIG_INSTALL_DIR-is-unset.patch";
+
url = "https://github.com/SFML/SFML/commit/a87763becbc4672b38f1021418ed94caa0f6540a.patch?full_index=1";
+
hash = "sha256-tJmXTdhwtWq6XfUPBzw47yTrc6EzwmSiVj9n6jQwHig=";
+
})
+
];
+
nativeBuildInputs = [ cmake ];
buildInputs =
[
···
glew
libjpeg
libvorbis
-
openal
]
++ lib.optional stdenv.hostPlatform.isLinux udev
++ lib.optionals (!stdenv.hostPlatform.isDarwin) [
···
xcbutilimage
];
+
# We rely on RUNPATH
+
dontPatchELF = true;
+
cmakeFlags = [
+
(lib.cmakeBool "BUILD_SHARED_LIBS" (!stdenv.hostPlatform.isStatic))
(lib.cmakeBool "SFML_INSTALL_PKGCONFIG_FILES" true)
(lib.cmakeFeature "SFML_MISC_INSTALL_PREFIX" "share/SFML")
(lib.cmakeBool "SFML_BUILD_FRAMEWORKS" false)
(lib.cmakeBool "SFML_USE_SYSTEM_DEPS" true)
+
+
# FIXME: Unvendor miniaudio and move these deps there
+
(lib.cmakeFeature "CMAKE_INSTALL_RPATH" (
+
lib.makeLibraryPath [
+
alsa-lib
+
libjack2
+
libpulseaudio
+
sndio
+
]
+
))
];
meta = {
+4 -4
pkgs/by-name/ti/tigerbeetle/package.nix
···
platform =
if stdenvNoCC.hostPlatform.isDarwin then "universal-macos" else stdenvNoCC.hostPlatform.system;
hash = builtins.getAttr platform {
-
"universal-macos" = "sha256-fN/TiIT3x78uyh78jzj9NtJ80W6cTlB6wWa+SztpqDw=";
-
"x86_64-linux" = "sha256-aNDtIHP9KX2KKsN0YgISqzoT+TMea4pppXJaiZEMXLA=";
-
"aarch64-linux" = "sha256-VB0hqlFAJle+J7kwyGb+eFMVlExT7uoJpgqGaP53V/I=";
+
"universal-macos" = "sha256-DLFAjkAkRemVOo9ZbKimKBpvVy/n/qzD+/dgWN3AfDg=";
+
"x86_64-linux" = "sha256-d+Y5OEHvS1wLDVkddX3r7y8iSLNCCXkzrn/T0lyMxNM=";
+
"aarch64-linux" = "sha256-sLvmm1liXOczLqUIlypu/nClPnQSmf4WkkxNem5vdkw=";
};
in
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "tigerbeetle";
-
version = "0.16.49";
+
version = "0.16.50";
src = fetchzip {
url = "https://github.com/tigerbeetle/tigerbeetle/releases/download/${finalAttrs.version}/tigerbeetle-${platform}.zip";
+3
pkgs/by-name/tr/trinity/package.nix
···
patchShebangs scripts
'';
+
# https://salsa.debian.org/debian/trinity/-/merge_requests/2
+
env.NIX_CFLAGS_COMPILE = "-fomit-frame-pointer";
+
enableParallelBuilding = true;
installFlags = [ "DESTDIR=$(out)" ];
+3 -3
pkgs/by-name/ty/typstyle/package.nix
···
rustPlatform.buildRustPackage (finalAttrs: {
pname = "typstyle";
-
version = "0.13.14";
+
version = "0.13.16";
src = fetchFromGitHub {
owner = "typstyle-rs";
repo = "typstyle";
tag = "v${finalAttrs.version}";
-
hash = "sha256-rIbLYV4f+XaEkyIFkJL1Biwg+TnjHi7e9kvIlroiNNA=";
+
hash = "sha256-dfw1jyPNZ0LDEZ+pbJt9DWKa4aBlFCAZIgKrZK+AmJw=";
};
useFetchCargoVendor = true;
-
cargoHash = "sha256-YRsCuGvfSAUz0qsETIUcTKIchdkvleP3xJy0Hz+2BM0=";
+
cargoHash = "sha256-Eg8i+vsBp0BuxxBWXZisVKiGge25UKfxoK/3Knk+LsU=";
# Disabling tests requiring network access
checkFlags = [
+3 -3
pkgs/by-name/we/werf/package.nix
···
}:
buildGoModule (finalAttrs: {
pname = "werf";
-
version = "2.39.1";
+
version = "2.41.3";
src = fetchFromGitHub {
owner = "werf";
repo = "werf";
tag = "v${finalAttrs.version}";
-
hash = "sha256-xQ1nh9YL198/ih9rw52rItR3t5Nq901MpDlFVht6kAc=";
+
hash = "sha256-0ttukgb698ipdW2JTS9xbja+3R/VjXQVoXLJYs2lYTs=";
};
proxyVendor = true;
-
vendorHash = "sha256-CLe5UuHwAXLk9c+6baOpfFqrE/pl4889PhlajBRV+UU=";
+
vendorHash = "sha256-eXZQYT65tHhMSTulXJ9UBN+9HggQL7Oo3sVFVfJDnGg=";
subPackages = [ "cmd/werf" ];
+2 -2
pkgs/by-name/wo/worldpainter/package.nix
···
}:
stdenv.mkDerivation rec {
pname = "worldpainter";
-
version = "2.24.4";
+
version = "2.25.1";
src = fetchurl {
url = "https://www.worldpainter.net/files/${pname}_${version}.tar.gz";
-
hash = "sha256-j2b/V8MxaMRqGajMy5oYPlGSLVWN4/hdRji2zh8L1cg=";
+
hash = "sha256-AfqMerBvDfMw1WTeQVcPPt1nvBv7+66TolFCX4lFNVY=";
};
nativeBuildInputs = [
+6 -4
pkgs/by-name/x2/x2goserver/package.nix
···
do
substituteInPlace $i --replace '/etc/x2go' '/var/lib/x2go/conf'
done
+
substituteInPlace x2goserver/Makefile \
+
--replace-fail "\$(DESTDIR)/etc" "\$(DESTDIR)/\$(ETCDIR)"
substituteInPlace x2goserver/sbin/x2gocleansessions \
--replace '/var/run/x2goserver.pid' '/var/run/x2go/x2goserver.pid'
substituteInPlace x2goserver/sbin/x2godbadmin --replace 'user="x2gouser"' 'user="x2go"'
···
'';
makeFlags = [
-
"PREFIX=/"
-
"NXLIBDIR=${nx-libs}/lib/nx"
+
"PREFIX=${placeholder "out"}"
+
"ETCDIR=${placeholder "out"}/etc/x2go"
+
"NXLIBDIR=${placeholder "out"}"
];
-
-
installFlags = [ "DESTDIR=$(out)" ];
postInstall = ''
mv $out/etc/x2go/x2goserver.conf{,.example}
mv $out/etc/x2go/x2goagent.options{,.example}
ln -sf ${nx-libs}/bin/nxagent $out/bin/x2goagent
+
ln -sf ${nx-libs}/share/nx/VERSION.nxagent $out/share/x2go/versions/VERSION.x2goserver-x2goagent
for i in $out/sbin/x2go* $(find $out/bin -type f) \
$(ls $out/lib/x2go/x2go* | grep -v x2gocheckport)
do
+9 -2
pkgs/desktops/xfce/applications/xfdashboard/default.nix
···
lib,
mkXfceDerivation,
clutter,
+
gettext,
libXcomposite,
libXinerama,
libXdamage,
···
mkXfceDerivation {
category = "apps";
pname = "xfdashboard";
-
version = "1.0.0";
+
version = "1.0.0-unstable-2025-07-18";
+
# Fix build with gettext 0.25
+
rev = "93255940950ef5bc89cab729c8b977a706f98e0c";
rev-prefix = "";
-
sha256 = "sha256-iC41I0u9id9irUNyjuvRRzSldF3dzRYkaxb/fgptnq4=";
+
sha256 = "sha256-Qv0ASuJF0FzPoeLx2D6/kXkxnOJV7mdAFD6PCk+CMac=";
+
+
nativeBuildInputs = [
+
gettext
+
];
buildInputs = [
clutter
+9
pkgs/desktops/xfce/panel-plugins/xfce4-i3-workspaces-plugin/default.nix
···
lib,
stdenv,
fetchFromGitHub,
+
gettext,
pkg-config,
intltool,
gtk3,
···
};
nativeBuildInputs = [
+
gettext
pkg-config
intltool
xfce4-dev-tools
···
libxfce4util
xfce4-panel
i3ipc-glib
+
];
+
+
patches = [
+
# Fix build with gettext 0.25
+
# https://hydra.nixos.org/build/302762031/nixlog/2
+
# FIXME: remove when gettext is fixed
+
./gettext-0.25.patch
];
enableParallelBuilding = true;
+21
pkgs/desktops/xfce/panel-plugins/xfce4-i3-workspaces-plugin/gettext-0.25.patch
···
+
diff --git a/configure.ac.in b/configure.ac.in
+
index 7932c16..1778d38 100644
+
--- a/configure.ac.in
+
+++ b/configure.ac.in
+
@@ -24,6 +24,7 @@ AC_COPYRIGHT([Copyright (C) 2014
+
AC_INIT([xfce4-i3-workspaces-plugin], [plugin_version], [https://github.com/denesb/xfce4-i3-workspaces-plugin/issues], [xfce4-i3-workspaces-plugin])
+
AC_PREREQ([2.50])
+
AC_REVISION([xfce4_panel_version_build])
+
+AC_CONFIG_MACRO_DIRS([m4])
+
+
dnl ***************************
+
dnl *** Initialize automake ***
+
@@ -31,6 +32,8 @@ dnl ***************************
+
AM_INIT_AUTOMAKE([1.8 no-dist-gzip dist-bzip2 tar-ustar])
+
AM_CONFIG_HEADER([config.h])
+
AM_MAINTAINER_MODE()
+
+AM_GNU_GETTEXT_VERSION([0.21])
+
+AM_GNU_GETTEXT([external])
+
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
+
+
dnl **************************
+5
pkgs/development/compilers/gcc/common/configure-flags.nix
···
"--disable-libatomic" # requires libc
"--disable-decimal-float" # requires libc
"--disable-libmpx" # requires libc
+
"--disable-hosted-libstdcxx" # requires libc
+
"--disable-libstdcxx-backtrace"
+
"--disable-linux-futex"
+
"--disable-libvtv"
+
"--disable-libitm"
]
++ lib.optionals crossMingw [
"--with-headers=${lib.getDev libcCross}/include"
+1 -1
pkgs/development/compilers/gcc/default.nix
···
name ? "gcc",
libcCross ? null,
threadsCross ? { }, # for MinGW
-
withoutTargetLibc ? false,
+
withoutTargetLibc ? stdenv.targetPlatform.libc == null,
flex,
gnused ? null,
buildPackages,
+2 -2
pkgs/development/compilers/kotlin/default.nix
···
stdenv.mkDerivation (finalAttrs: {
pname = "kotlin";
-
version = "2.1.21";
+
version = "2.2.0";
src = fetchurl {
url = "https://github.com/JetBrains/kotlin/releases/download/v${finalAttrs.version}/kotlin-compiler-${finalAttrs.version}.zip";
-
sha256 = "sha256-G6CKi0XamTOaBgETTMA3tUz4XpvA7b523L0nwtaEqXc=";
+
sha256 = "sha256-GttvGlhFugqlpZ5BLkTI5AUja5V94aloNhnx3KOxaTI=";
};
propagatedBuildInputs = [ jre ];
+23 -23
pkgs/development/mobile/androidenv/compose-android-packages.nix
···
# This derivation deploys the tools package and symlinks all the desired
# plugins that we want to use. If the license isn't accepted, prints all the licenses
# requested and throws.
-
androidsdk =
-
if !licenseAccepted then
-
throw ''
-
${builtins.concatStringsSep "\n\n" (mkLicenseTexts licenseNames)}
+
androidsdk = callPackage ./cmdline-tools.nix {
+
inherit
+
deployAndroidPackage
+
os
+
arch
+
meta
+
;
-
You must accept the following licenses:
-
${lib.concatMapStringsSep "\n" (str: " - ${str}") licenseNames}
+
package = cmdline-tools-package;
-
a)
-
by setting nixpkgs config option 'android_sdk.accept_license = true;'.
-
b)
-
by an environment variable for a single invocation of the nix tools.
-
$ export NIXPKGS_ACCEPT_ANDROID_SDK_LICENSE=1
-
''
-
else
-
callPackage ./cmdline-tools.nix {
-
inherit
-
deployAndroidPackage
-
os
-
arch
-
meta
-
;
+
postInstall =
+
if !licenseAccepted then
+
throw ''
+
${builtins.concatStringsSep "\n\n" (mkLicenseTexts licenseNames)}
-
package = cmdline-tools-package;
+
You must accept the following licenses:
+
${lib.concatMapStringsSep "\n" (str: " - ${str}") licenseNames}
-
postInstall = ''
+
a)
+
by setting nixpkgs config option 'android_sdk.accept_license = true;'.
+
b)
+
by an environment variable for a single invocation of the nix tools.
+
$ export NIXPKGS_ACCEPT_ANDROID_SDK_LICENSE=1
+
''
+
else
+
''
# Symlink all requested plugins
${linkPlugin {
name = "platform-tools";
···
''
) licenseNames}
'';
-
};
+
};
}
+11 -1
pkgs/development/ocaml-modules/eio/default.nix
···
{
lib,
ocaml,
-
version ? if lib.versionAtLeast ocaml.version "5.1" then "1.2" else "0.12",
+
version ?
+
if lib.versionAtLeast ocaml.version "5.2" then
+
"1.3"
+
else if lib.versionAtLeast ocaml.version "5.1" then
+
"1.2"
+
else
+
"0.12",
buildDunePackage,
bigstringaf,
cstruct,
···
"1.2" = {
minimalOCamlVersion = "5.1";
hash = "sha256-N5LpEr2NSUuy449zCBgl5NISsZcM8sHxspZsqp/WvEA=";
+
};
+
"1.3" = {
+
minimalOCamlVersion = "5.2";
+
hash = "sha256-jtXBPmaJ8xyF3KXxJ2LYS4zABCp7B9PkZN9utLcrPfw=";
};
}
."${version}";
+2 -2
pkgs/development/python-modules/azure-mgmt-storage/default.nix
···
buildPythonPackage rec {
pname = "azure-mgmt-storage";
-
version = "23.0.0";
+
version = "23.0.1";
pyproject = true;
disabled = pythonOlder "3.8";
···
src = fetchPypi {
pname = "azure_mgmt_storage";
inherit version;
-
hash = "sha256-HFlU1Zvdy5edBbxJ5DFxam4rL3VpCblrp8QyYQcq/L8=";
+
hash = "sha256-w6sqyTUtHAHYW1bWcW3M4eRoD5ILFIoktDabuRuSI7Q=";
};
build-system = [ setuptools ];
+44
pkgs/development/python-modules/color-parser-py/default.nix
···
+
{
+
lib,
+
buildPythonPackage,
+
fetchPypi,
+
rustPlatform,
+
pytestCheckHook,
+
}:
+
+
buildPythonPackage rec {
+
pname = "color-parser-py";
+
version = "0.1.6";
+
pyproject = true;
+
+
# PyPI has Cargo.lock
+
src = fetchPypi {
+
pname = "color_parser_py";
+
inherit version;
+
hash = "sha256-m1qhVAwQNtCwz+DLSAdfKhzkohMLMjvPHxynKhlJfN8=";
+
};
+
+
cargoDeps = rustPlatform.fetchCargoVendor {
+
inherit pname version src;
+
hash = "sha256-tKXA6sd5gLCJUaqxzFcZ3lePK41Wk2TbLp0HXBacOyo=";
+
};
+
+
nativeBuildInputs = [
+
rustPlatform.cargoSetupHook
+
rustPlatform.maturinBuildHook
+
];
+
+
nativeCheckInputs = [ pytestCheckHook ];
+
+
pythonImportsCheck = [ "color_parser_py" ];
+
+
# Support newer python versions
+
env.PYO3_USE_ABI3_FORWARD_COMPATIBILITY = true;
+
+
meta = {
+
description = "Python bindings for color parsing and conversion";
+
homepage = "https://github.com/rusiaaman/color-parser-py";
+
license = lib.licenses.mit;
+
maintainers = with lib.maintainers; [ aleksana ];
+
};
+
}
+8 -8
pkgs/development/python-modules/curvefitgui/default.nix
···
lib,
buildPythonPackage,
fetchFromGitHub,
+
+
# build-system
setuptools,
-
pythonAtLeast,
+
+
# depedencies
numpy,
scipy,
pyqt5,
···
pname = "curvefitgui";
version = "0-unstable-2021-08-25";
pyproject = true;
-
# For some reason, importing the main module makes the whole python
-
# interpreter crash! This needs further investigation, possibly the problem
-
# is with one of the dependencies.. See upstream report:
-
# https://github.com/moosepy/curvefitgui/issues/2
-
disabled = pythonAtLeast "3.12";
src = fetchFromGitHub {
owner = "moosepy";
···
hash = "sha256-oK0ROKxh/91OrHhuufG6pvc2EMBeMP8R5O+ED2thyW8=";
};
-
nativeBuildInputs = [ setuptools ];
+
build-system = [
+
setuptools
+
];
-
propagatedBuildInputs = [
+
dependencies = [
numpy
scipy
pyqt5
+2 -2
pkgs/development/python-modules/django-import-export/default.nix
···
buildPythonPackage rec {
pname = "django-import-export";
-
version = "4.3.7";
+
version = "4.3.8";
pyproject = true;
src = fetchFromGitHub {
owner = "django-import-export";
repo = "django-import-export";
tag = version;
-
hash = "sha256-hHLFrcCw9PXGh7JbHo76SUZ09ZCK9u72BjiaL5HuVMc=";
+
hash = "sha256-4QZvVFhnXqdeKvADZOIADbRlRllce7WbVOfVJUHndvg=";
};
pythonRelaxDeps = [ "tablib" ];
+17 -13
pkgs/development/python-modules/duckdb/default.nix
···
psutil,
pybind11,
setuptools-scm,
+
pytest-reraise,
pytestCheckHook,
}:
···
;
pyproject = true;
-
postPatch =
-
(duckdb.postPatch or "")
-
+ ''
-
# we can't use sourceRoot otherwise patches don't apply, because the patches apply to the C++ library
-
cd tools/pythonpkg
+
postPatch = (duckdb.postPatch or "") + ''
+
# we can't use sourceRoot otherwise patches don't apply, because the patches apply to the C++ library
+
cd tools/pythonpkg
-
# 1. let nix control build cores
-
# 2. default to extension autoload & autoinstall disabled
-
substituteInPlace setup.py \
-
--replace-fail "ParallelCompile()" 'ParallelCompile("NIX_BUILD_CORES")' \
-
--replace-fail "define_macros.extend([('DUCKDB_EXTENSION_AUTOLOAD_DEFAULT', '1'), ('DUCKDB_EXTENSION_AUTOINSTALL_DEFAULT', '1')])" "pass"
-
'';
+
# 1. let nix control build cores
+
# 2. default to extension autoload & autoinstall disabled
+
substituteInPlace setup.py \
+
--replace-fail "ParallelCompile()" 'ParallelCompile("NIX_BUILD_CORES")' \
+
--replace-fail "define_macros.extend([('DUCKDB_EXTENSION_AUTOLOAD_DEFAULT', '1'), ('DUCKDB_EXTENSION_AUTOINSTALL_DEFAULT', '1')])" "pass"
+
+
substituteInPlace pyproject.toml \
+
--replace-fail 'setuptools_scm>=6.4,<8.0' 'setuptools_scm'
+
'';
env = {
DUCKDB_BUILD_UNITY = 1;
OVERRIDE_GIT_DESCRIBE = "v${version}-0-g${rev}";
};
-
nativeBuildInputs = [
+
build-system = [
pybind11
setuptools-scm
];
buildInputs = [ openssl ];
-
propagatedBuildInputs = [
+
dependencies = [
numpy
pandas
];
···
fsspec
google-cloud-storage
psutil
+
pytest-reraise
pytestCheckHook
];
pytestFlags = [ "--verbose" ];
# test flags from .github/workflows/Python.yml
+
pytestFlagsArray = [ "--verbose" ];
enabledTestPaths = if stdenv.hostPlatform.isDarwin then [ "tests/fast" ] else [ "tests" ];
disabledTestPaths = [
+2 -2
pkgs/development/python-modules/gerbonara/default.nix
···
buildPythonPackage rec {
pname = "gerbonara";
-
version = "1.4.0";
+
version = "1.5.0";
src = fetchFromGitHub {
owner = "jaseg";
repo = "gerbonara";
rev = "v${version}";
-
hash = "sha256-SwXoCA9ru5VgH4geKUDgdcPrgEYgNoVwNb5YUBAcXlo=";
+
hash = "sha256-yxSZuBw93wqIAw1wke80Vy/dtBcQwpQ2tQ1nwXdWi4k=";
};
format = "setuptools";
+5 -2
pkgs/development/python-modules/paddlex/default.nix
···
ujson,
distutils,
huggingface-hub,
+
nix-update-script,
}:
let
···
in
buildPythonPackage rec {
pname = "paddlex";
-
version = "3.1.1";
+
version = "3.1.3";
pyproject = true;
src = fetchFromGitHub {
owner = "PaddlePaddle";
repo = "PaddleX";
tag = "v${version}";
-
hash = "sha256-vmb1A7AifQmWv31b847hP1lHeBe+ZDEGR3raIGykRoo=";
+
hash = "sha256-sNnaTB7wJFXVXnc7I1XufAWdTXHr1is3JdXdh6Ssc+s=";
};
build-system = [ setuptools ];
···
gputil
huggingface-hub
];
+
+
passthru.updateScript = nix-update-script { };
meta = {
homepage = "https://github.com/PaddlePaddle/PaddleX";
+17 -5
pkgs/development/python-modules/pandera/default.nix
···
pandas,
pydantic,
typeguard,
+
typing-extensions,
typing-inspect,
# optional-dependencies
···
fastapi,
geopandas,
hypothesis,
+
ibis-framework,
pandas-stubs,
polars,
pyyaml,
···
shapely,
# tests
+
duckdb,
joblib,
pyarrow,
+
pyarrow-hotfix,
pytestCheckHook,
pytest-asyncio,
pythonAtLeast,
···
buildPythonPackage rec {
pname = "pandera";
-
version = "0.24.0";
+
version = "0.25.0";
pyproject = true;
src = fetchFromGitHub {
owner = "unionai-oss";
repo = "pandera";
tag = "v${version}";
-
hash = "sha256-S5y717M3rGGO39TOh1X5yePvdcF6ct1Jk51/bbM6X6M=";
+
hash = "sha256-0YeLeGpunjHRWFvSvz0r2BokM4/eJKXuBajgcGquca4=";
};
build-system = [
···
env.SETUPTOOLS_SCM_PRETEND_VERSION = version;
dependencies = [
-
numpy
packaging
-
pandas
pydantic
typeguard
+
typing-extensions
typing-inspect
];
···
geopandas
shapely
];
+
ibis = [
+
ibis-framework
+
duckdb
+
];
+
pandas = [
+
numpy
+
pandas
+
];
polars = [ polars ];
};
in
···
pytest-asyncio
joblib
pyarrow
+
pyarrow-hotfix
] ++ optional-dependencies.all;
disabledTestPaths = [
···
meta = {
description = "Light-weight, flexible, and expressive statistical data testing library";
homepage = "https://pandera.readthedocs.io";
-
changelog = "https://github.com/unionai-oss/pandera/releases/tag/v${version}";
+
changelog = "https://github.com/unionai-oss/pandera/releases/tag/${src.tag}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ bcdarwin ];
};
+2 -2
pkgs/development/python-modules/petl/default.nix
···
buildPythonPackage rec {
pname = "petl";
-
version = "1.7.16";
+
version = "1.7.17";
pyproject = true;
src = fetchFromGitHub {
owner = "petl-developers";
repo = "petl";
tag = "v${version}";
-
hash = "sha256-rew/+GXQq2l1LlsR4yqHJZ/iY21HJ2Lf86KS55L8jsQ=";
+
hash = "sha256-zYR/9WdaVCmdaCzOFfHirVE4Gg+CVLvWu1RpWXdqLSc=";
};
build-system = [
+9 -1
pkgs/development/python-modules/plopp/default.nix
···
lib,
buildPythonPackage,
fetchFromGitHub,
+
fetchpatch,
# build-system
setuptools,
···
buildPythonPackage rec {
pname = "plopp";
-
version = "25.06.0";
+
version = "25.07.0";
pyproject = true;
src = fetchFromGitHub {
···
tag = version;
hash = "sha256-SwF0bUU/DAAJ5+0WvZgwqEw6IoaqdbKj0GkCgffGclA=";
};
+
patches = [
+
# https://github.com/scipp/plopp/issues/472
+
(fetchpatch {
+
url = "https://github.com/scipp/plopp/commit/7af8cbee85796005f2fea79171ae44aba9a8cfc7.patch";
+
hash = "sha256-uyCV/2tSvcnnw+ak6fT99ru+UrTZXsS3b4YGeXVykAY=";
+
})
+
];
build-system = [
setuptools
+2 -2
pkgs/development/python-modules/plotpy/default.nix
···
buildPythonPackage rec {
pname = "plotpy";
-
version = "2.7.4";
+
version = "2.7.5";
pyproject = true;
src = fetchFromGitHub {
owner = "PlotPyStack";
repo = "PlotPy";
tag = "v${version}";
-
hash = "sha256-FmSFcCAJZyzD9qRE+L2oxWtyh2spJSLRq+xtx4e1Rhg=";
+
hash = "sha256-g26CWUQTaky7h1wHd9CAB4AEvk24frN7f6wqs1fefJw=";
};
build-system = [
+3 -3
pkgs/development/python-modules/pyschlage/default.nix
···
buildPythonPackage rec {
pname = "pyschlage";
-
version = "2025.4.0";
+
version = "2025.7.0";
pyproject = true;
disabled = pythonOlder "3.7";
···
owner = "dknowles2";
repo = "pyschlage";
tag = version;
-
hash = "sha256-RgPobb9RhM+eFX3Y+wSKlDQ6SddnGKlNTG1nIeEVDFs=";
+
hash = "sha256-XfYoui3xo8l3wi8nqvyzfYhsHsY8T1t/iYS4ZHNjGUE=";
};
build-system = [
···
meta = with lib; {
description = "Library for interacting with Schlage Encode WiFi locks";
homepage = "https://github.com/dknowles2/pyschlage";
-
changelog = "https://github.com/dknowles2/pyschlage/releases/tag/${version}";
+
changelog = "https://github.com/dknowles2/pyschlage/releases/tag/${src.tag}";
license = licenses.asl20;
maintainers = with maintainers; [ fab ];
};
+46
pkgs/development/python-modules/pytest-reraise/default.nix
···
+
{
+
lib,
+
buildPythonPackage,
+
fetchFromGitHub,
+
pytest,
+
pytestCheckHook,
+
poetry-core,
+
}:
+
+
buildPythonPackage rec {
+
pname = "pytest-reraise";
+
version = "2.1.2";
+
pyproject = true;
+
+
src = fetchFromGitHub {
+
owner = "bjoluc";
+
repo = pname;
+
tag = "v${version}";
+
hash = "sha256-mgNKoZ+2sinArTZhSwhLxzBTb4QfiT1LWBs7w5MHXWA=";
+
};
+
+
postPatch = ''
+
substituteInPlace pyproject.toml \
+
--replace-fail 'poetry>=0.12' 'poetry-core>=1.0.0' \
+
--replace-fail 'poetry.masonry' 'poetry.core.masonry'
+
'';
+
+
build-system = [ poetry-core ];
+
+
dependencies = [ pytest ];
+
+
nativeCheckInputs = [ pytestCheckHook ];
+
+
pythonImportsCheck = [ "pytest_reraise" ];
+
+
meta = {
+
description = "Make multi-threaded pytest test cases fail when they should";
+
longDescription = ''
+
Make multi-threaded pytest test cases fail when they should
+
'';
+
homepage = "https://github.com/bjoluc/pytest-reraise";
+
changelog = "https://github.com/bjoluc/pytest-reraise/releases/tag/${src.tag}";
+
license = lib.licenses.mit;
+
maintainers = with lib.maintainers; [ cpcloud ];
+
};
+
}
+6 -3
pkgs/development/python-modules/skl2onnx/default.nix
···
fetchPypi,
numpy,
scipy,
+
setuptools,
protobuf,
onnx,
scikit-learn,
···
buildPythonPackage rec {
pname = "skl2onnx";
-
version = "1.18.0";
-
format = "setuptools";
+
version = "1.19.1";
+
pyproject = true;
src = fetchPypi {
inherit pname version;
-
hash = "sha256-OepK4wxcGCNVoYJEZwExWCFERODOCxjzMzi9gn1PsA8=";
+
hash = "sha256-DBBfKjuHpiTdIY0fuY/dGc8b9iFxkNJc5+FUhBJ9Dl0=";
};
+
+
build-system = [ setuptools ];
propagatedBuildInputs = [
numpy
+6 -6
pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-nix.json
···
{
-
"url": "https://github.com/cstrahan/tree-sitter-nix",
-
"rev": "cfc53fd287d23ab7281440a8526c73542984669b",
-
"date": "2025-03-10T21:49:48Z",
-
"path": "/nix/store/aqzm346ck43x74b409jiikbbxqchgyr1-tree-sitter-nix",
-
"sha256": "0bmalpgvfcz1zd72wq43r5qvhj3dqqp7zn9kfb6bs0valrxagaks",
-
"hash": "sha256-eqqneqZqA73McjPZfy7GbUi4ccmDYC5O++Ezt9+lqi4=",
+
"url": "https://github.com/nix-community/tree-sitter-nix",
+
"rev": "ea1d87f7996be1329ef6555dcacfa63a69bd55c6",
+
"date": "2025-07-18T19:46:47+02:00",
+
"path": "/nix/store/mvq8m0v2cr2xns4807cby54h3wc7xjxr-tree-sitter-nix",
+
"sha256": "1aaq5yv1s8qq3abm0jm884hi4k6n2w0nzd1j3wizv1x1xk6qzlsl",
+
"hash": "sha256-VNOPzeyhh/0jHzK0bwEX1kwSIUGoSlCXGhgjHbYvWKk=",
"fetchLFS": false,
"fetchSubmodules": false,
"deepClone": false,
+1 -1
pkgs/development/tools/parsing/tree-sitter/update.nix
···
repo = "tree-sitter-just";
};
"tree-sitter-nix" = {
-
orga = "cstrahan";
+
orga = "nix-community";
repo = "tree-sitter-nix";
};
"tree-sitter-latex" = {
+4 -2
pkgs/misc/cups/drivers/cnijfilter_2_80/default.nix
···
{
-
gcc13Stdenv,
+
stdenv,
lib,
fetchzip,
autoconf,
···
file included in the tarball
*/
-
gcc13Stdenv.mkDerivation {
+
stdenv.mkDerivation {
pname = "cnijfilter";
/*
···
libpng
ghostscript
];
+
+
env.NIX_CFLAGS_COMPILE = " -std=gnu90";
patches = [
./patches/missing-include.patch
+1 -2
pkgs/tools/misc/gams/default.nix
···
optgamsFile ? null,
}:
-
assert licenseFile != null;
-
stdenv.mkDerivation rec {
version = "25.0.2";
pname = "gams";
···
dontBuild = true;
installPhase =
+
assert licenseFile != null;
''
mkdir -p "$out/bin" "$out/share/gams"
cp -a * "$out/share/gams"
+3 -1
pkgs/top-level/aliases.nix
···
appthreat-depscan = dep-scan; # Added 2024-04-10
arb = throw "'arb' has been removed as it has been merged into 'flint3'"; # Added 2025-03-28
arcanist = throw "arcanist was removed as phabricator is not supported and does not accept fixes"; # Added 2024-06-07
+
archipelago-minecraft = throw "archipelago-minecraft has been removed, as upstream no longer ships minecraft as a default APWorld."; # Added 2025-07-15
argo = argo-workflows; # Added 2025-02-01
aria = aria2; # Added 2024-03-26
armcord = throw "ArmCord was renamed to legcord by the upstream developers. Action is required to migrate configurations between the two applications. Please see this PR for more details: https://github.com/NixOS/nixpkgs/pull/347971"; # Added 2024-10-11
···
steam-small = steam; # Added 2024-09-12
steam-run-native = steam-run; # added 2022-02-21
StormLib = stormlib; # Added 2024-01-21
-
strawberry-qt5 = throw "strawberry-qt5 has been replaced by strawberry-qt6"; # Added 2024-11-22
+
strawberry-qt5 = throw "strawberry-qt5 has been replaced by strawberry"; # Added 2024-11-22 and updated 2025-07-19
+
strawberry-qt6 = throw "strawberry-qt6 has been replaced by strawberry"; # Added 2025-07-19
strelka = throw "strelka depends on Python 2.6+, and does not support Python 3."; # Added 2025-03-17
subberthehut = throw "'subberthehut' has been removed as it was unmaintained upstream"; # Added 2025-05-17
substituteAll = throw "`substituteAll` has been removed. Use `replaceVars` instead."; # Added 2025-05-23
+2 -9
pkgs/top-level/all-packages.nix
···
# many more scenarios than just opengl now.
aocd = with python3Packages; toPythonApplication aocd;
-
archipelago-minecraft = callPackage ../by-name/ar/archipelago/package.nix {
-
extraPackages = [ jdk17 ];
-
};
-
cve = with python3Packages; toPythonApplication cvelib;
basalt-monado = callPackage ../by-name/ba/basalt-monado/package.nix {
···
sonobuoy = callPackage ../applications/networking/cluster/sonobuoy { };
-
strawberry-qt6 = qt6Packages.callPackage ../applications/audio/strawberry { };
-
-
strawberry = strawberry-qt6;
-
schleuder = callPackage ../tools/security/schleuder { };
schleuder-cli = callPackage ../tools/security/schleuder/cli { };
···
wasilibc
else if libc == "relibc" then
relibc
-
else if name == "llvm" then
+
else if libc == "llvm" then
llvmPackages_20.libc
else
throw "Unknown libc ${libc}";
···
usbrelayd = callPackage ../os-specific/linux/usbrelay/daemon.nix { };
util-linuxMinimal = util-linux.override {
+
fetchurl = stdenv.fetchurlBoot;
cryptsetupSupport = false;
nlsSupport = false;
ncursesSupport = false;
+4
pkgs/top-level/python-packages.nix
···
color-operations = callPackage ../development/python-modules/color-operations { };
+
color-parser-py = callPackage ../development/python-modules/color-parser-py { };
+
colorama = callPackage ../development/python-modules/colorama { };
colorcet = callPackage ../development/python-modules/colorcet { };
···
pytest-remotedata = callPackage ../development/python-modules/pytest-remotedata { };
pytest-repeat = callPackage ../development/python-modules/pytest-repeat { };
+
+
pytest-reraise = callPackage ../development/python-modules/pytest-reraise { };
pytest-rerunfailures = callPackage ../development/python-modules/pytest-rerunfailures { };