Merge master into staging-next

This commit is contained in:
nixpkgs-ci[bot] 2025-04-30 09:29:33 +00:00 committed by GitHub
commit 57718699b1
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
52 changed files with 751 additions and 1396 deletions

View file

@ -365,6 +365,11 @@
## Other Notable Changes {#sec-nixpkgs-release-25.05-notable-changes}
- `i18n` module improvements:
- `i18n.extraLocales` should now be the preferred way to install additional locales.
- `i18n.supportedLocales` is now considered an implementation detail and will be hidden from the documentation. But the option will still continue to work.
- `i18n.supportedLocales` will now trigger a warning when it omits any locale set in `i18n.defaultLocale`, `i18n.extraLocales` or `i18n.extraLocaleSettings`.
- `titaniumenv`, `titanium`, and `titanium-alloy` have been removed due to lack of maintenance in Nixpkgs []{#sec-nixpkgs-release-25.05-incompatibilities-titanium-removed}.
- androidenv has been improved:

View file

@ -9903,6 +9903,12 @@
githubId = 57007241;
name = "hogcycle";
};
hoh = {
email = "git@hugoherter.com";
github = "hoh";
githubId = 404665;
name = "Hugo Herter";
};
holgerpeters = {
name = "Holger Peters";
email = "holger.peters@posteo.de";

View file

@ -1,6 +1,6 @@
# Minimal {#sec-profile-minimal}
This profile defines a small NixOS configuration. It does not contain any
graphical stuff. It's a very short file that sets [](#opt-i18n.supportedLocales)
graphical stuff. It's a very short file that sets the supported locales
to only support the user-selected locale, and
[disables packages' documentation](#opt-documentation.enable).

View file

@ -4,6 +4,16 @@
pkgs,
...
}:
let
aggregatedLocales =
builtins.map
(l: (lib.replaceStrings [ "utf8" "utf-8" "UTF8" ] [ "UTF-8" "UTF-8" "UTF-8" ] l) + "/UTF-8")
(
[ config.i18n.defaultLocale ]
++ config.i18n.extraLocales
++ (lib.attrValues (lib.filterAttrs (n: v: n != "LANGUAGE") config.i18n.extraLocaleSettings))
);
in
{
###### interface
@ -42,6 +52,17 @@
'';
};
extraLocales = lib.mkOption {
type = lib.types.listOf lib.types.str;
default = [ ];
example = [ "nl_NL.UTF-8" ];
description = ''
Additional locales that the system should support, besides the ones
configured with {option}`i18n.defaultLocale` and
{option}`i18n.extraLocaleSettings`.
'';
};
extraLocaleSettings = lib.mkOption {
type = lib.types.attrsOf lib.types.str;
default = { };
@ -58,28 +79,14 @@
supportedLocales = lib.mkOption {
type = lib.types.listOf lib.types.str;
visible = false;
default = lib.unique (
builtins.map
(l: (lib.replaceStrings [ "utf8" "utf-8" "UTF8" ] [ "UTF-8" "UTF-8" "UTF-8" ] l) + "/UTF-8")
(
[
"C.UTF-8"
"en_US.UTF-8"
config.i18n.defaultLocale
"C.UTF-8/UTF-8"
"en_US.UTF-8/UTF-8"
]
++ (lib.attrValues (lib.filterAttrs (n: v: n != "LANGUAGE") config.i18n.extraLocaleSettings))
)
++ aggregatedLocales
);
defaultText = lib.literalExpression ''
lib.unique
(builtins.map (l: (lib.replaceStrings [ "utf8" "utf-8" "UTF8" ] [ "UTF-8" "UTF-8" "UTF-8" ] l) + "/UTF-8") (
[
"C.UTF-8"
"en_US.UTF-8"
config.i18n.defaultLocale
] ++ (lib.attrValues (lib.filterAttrs (n: v: n != "LANGUAGE") config.i18n.extraLocaleSettings))
))
'';
example = [
"en_US.UTF-8/UTF-8"
"nl_NL.UTF-8/UTF-8"
@ -100,6 +107,18 @@
###### implementation
config = {
warnings =
lib.optional ((lib.subtractLists config.i18n.supportedLocales aggregatedLocales) != [ ])
''
`i18n.supportedLocales` is deprecated in favor of `i18n.extraLocales`,
and it seems you are using `i18n.supportedLocales` and forgot to
include some locales specified in `i18n.defaultLocale`,
`i18n.extraLocales` or `i18n.extraLocaleSettings`.
If you're trying to install additional locales not specified in
`i18n.defaultLocale` or `i18n.extraLocaleSettings`, consider adding
only those locales to `i18n.extraLocales`.
'';
environment.systemPackages =
# We increase the priority a little, so that plain glibc in systemPackages can't win.

View file

@ -1,5 +1,6 @@
{
buildVimPlugin,
coc-basedpyright,
coc-clangd,
coc-css,
coc-diagnostic,
@ -7,6 +8,11 @@
coc-toml,
}:
final: prev: {
coc-basedpyright = buildVimPlugin {
inherit (coc-basedpyright) pname version meta;
src = "${coc-basedpyright}/lib/node_modules/coc-basedpyright";
};
coc-clangd = buildVimPlugin {
inherit (coc-clangd) pname version meta;
src = "${coc-clangd}/lib/node_modules/coc-clangd";

View file

@ -2,7 +2,6 @@
lib,
stdenv,
fetchFromGitHub,
fetchpatch,
cmake,
qt6,
faad2,
@ -16,29 +15,15 @@
stdenv.mkDerivation rec {
pname = "abracadabra";
version = "3.1.0";
version = "3.2.0";
src = fetchFromGitHub {
owner = "KejPi";
repo = "AbracaDABra";
rev = "v${version}";
hash = "sha256-kH84xDK1873ekxIYlOw6M3kVH+Sm/Sofb3AAbs4XzE0=";
hash = "sha256-4M/LrM1Edu9isvpKPArir7UwPJ0u0Yjl4ttFtxcqYtM=";
};
patches = [
# upstream patches, remove with next upgrade
(fetchpatch {
name = "no-qcustomplot";
url = "https://github.com/KejPi/AbracaDABra/commit/b0800cfe7abebf79f1edb915b3cf55fe96129017.patch";
hash = "sha256-8FiXix/riLvkxd2uTJCoUESInPiCsF6B+qaxRGbeUcs=";
})
(fetchpatch {
name = "fix-missing-include";
url = "https://github.com/KejPi/AbracaDABra/commit/8f88a3351fccea93c3c83bbfa94e98fb0823b0ae.patch";
hash = "sha256-9AloBgpUuewUBGM/NTHYUqd0uctJ17QJ0GA5RJN1GLQ=";
})
];
nativeBuildInputs = [
cmake
qt6.wrapQtAppsHook

View file

@ -31,6 +31,7 @@ stdenv.mkDerivation rec {
depsBuildBuild = lib.optional (
stdenv.buildPlatform != stdenv.hostPlatform
|| stdenv.hostPlatform.isAarch64
|| stdenv.hostPlatform.isLoongArch64
|| stdenv.hostPlatform.isRiscV64
) buildPackages.stdenv.cc;

View file

@ -0,0 +1,27 @@
{
lib,
buildNpmPackage,
fetchFromGitHub,
}:
buildNpmPackage {
pname = "coc-basedpyright";
# No tagged releases, this version is inferred from <https://www.npmjs.com/package/coc-basedpyright>
version = "1.19.0-unstable-2025-04-30";
src = fetchFromGitHub {
owner = "fannheyward";
repo = "coc-basedpyright";
rev = "7d944083c7d4843b1dfa9e05014873b0b5bbb85b";
hash = "sha256-5Vuw54bSk3WMy8bMsIvtkfDmlx3oocxmD1ykfpErbkc=";
};
npmDepsHash = "sha256-hn+Y1f7o/Oz37XXJUPF2CJbrPzZYOY0njrJv+T3ve6w=";
meta = {
description = "Basedpyright extension for coc.nvim";
homepage = "https://github.com/fannheyward/coc-basedpyright";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ wrvsrx ];
};
}

View file

@ -10,13 +10,13 @@
stdenv.mkDerivation rec {
pname = "corrosion";
version = "0.5.1";
version = "0.5.2";
src = fetchFromGitHub {
owner = "corrosion-rs";
repo = "corrosion";
rev = "v${version}";
hash = "sha256-/Xq0SKaKuOgrMXbgw+Aa59NEnU1mPQhARoh7EqV01K8=";
hash = "sha256-sO2U0llrDOWYYjnfoRZE+/ofg3kb+ajFmqvaweRvT7c=";
};
buildInputs = lib.optional stdenv.hostPlatform.isDarwin libiconv;

View file

@ -33,11 +33,11 @@
stdenv.mkDerivation rec {
pname = "dpdk";
version = "24.07";
version = "25.03";
src = fetchurl {
url = "https://fast.dpdk.org/rel/dpdk-${version}.tar.xz";
sha256 = "sha256-mUT35fJo56ybQZPizVTvbZj24dfd3JZ8d65PZhbW+70=";
sha256 = "sha256-akCnMTKChuvXloWxj/pZkua3cME4Q9Zf0NEVfPzP9j0=";
};
nativeBuildInputs = [
@ -69,14 +69,6 @@ stdenv.mkDerivation rec {
libbsd
];
patches = [
(fetchpatch {
name = "CVE-2024-11614.patch";
url = "https://git.dpdk.org/dpdk-stable/patch/?id=fdf13ea6fede07538fbe5e2a46fa6d4b2368fa81";
hash = "sha256-lD2mhPm5r1tWZb4IpzHa2SeK1DyQ3rwjzArRTpAgZAY=";
})
];
postPatch = ''
patchShebangs config/arm buildtools
'';

View file

@ -35,6 +35,7 @@ python3.pkgs.buildPythonApplication rec {
pygments-markdown-lexer
pyopenssl
requests
setuptools
slixmpp
python-telegram-bot
webtest

View file

@ -11,8 +11,8 @@ GEM
artifactory (3.0.17)
atomos (0.1.3)
aws-eventstream (1.3.2)
aws-partitions (1.1075.0)
aws-sdk-core (3.221.0)
aws-partitions (1.1090.0)
aws-sdk-core (3.222.2)
aws-eventstream (~> 1, >= 1.3.0)
aws-partitions (~> 1, >= 1.992.0)
aws-sigv4 (~> 1.9)
@ -22,7 +22,7 @@ GEM
aws-sdk-kms (1.99.0)
aws-sdk-core (~> 3, >= 3.216.0)
aws-sigv4 (~> 1.5)
aws-sdk-s3 (1.182.0)
aws-sdk-s3 (1.183.0)
aws-sdk-core (~> 3, >= 3.216.0)
aws-sdk-kms (~> 1)
aws-sigv4 (~> 1.5)
@ -71,7 +71,7 @@ GEM
faraday_middleware (1.2.1)
faraday (~> 1.0)
fastimage (2.4.0)
fastlane (2.227.0)
fastlane (2.227.1)
CFPropertyList (>= 2.3, < 4.0.0)
addressable (>= 2.8, < 3.0.0)
artifactory (~> 3.0)
@ -111,7 +111,7 @@ GEM
tty-spinner (>= 0.8.0, < 1.0.0)
word_wrap (~> 1.0.0)
xcodeproj (>= 1.13.0, < 2.0.0)
xcpretty (~> 0.4.0)
xcpretty (~> 0.4.1)
xcpretty-travis-formatter (>= 0.0.3, < 2.0.0)
fastlane-sirp (1.0.0)
sysrandom (~> 1.0)
@ -225,4 +225,4 @@ DEPENDENCIES
fastlane
BUNDLED WITH
2.6.2
2.6.6

View file

@ -55,10 +55,10 @@
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "1jb72jj18a9l98ghmi8ny9nys4w3hcny0xyi0dzl3ms0knsrrn3i";
sha256 = "15nkd4iskiy2c2lh1w499978zvnxkirpdm2i0y5i0yvym43kkycx";
type = "gem";
};
version = "1.1075.0";
version = "1.1090.0";
};
aws-sdk-core = {
dependencies = [
@ -73,10 +73,10 @@
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "0jmd8rf68jf99ksklwaflym07issvr1il1qpzmpaf59avhcxgjjy";
sha256 = "1lf8aykj9ybs7mvfk27ccs221z7rhqm3lxqx6zy27lf6jl2hff86";
type = "gem";
};
version = "3.221.0";
version = "3.222.2";
};
aws-sdk-kms = {
dependencies = [
@ -102,10 +102,10 @@
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "03a55dbihv6xvgfwhx0f35rwc7q3rr0555vfpxlwpdjw75wkbz6h";
sha256 = "0k4zg6i7xrgqv4s66hxj0l5icx44bb1ax52al2s5gz3n1hrv01lc";
type = "gem";
};
version = "1.182.0";
version = "1.183.0";
};
aws-sigv4 = {
dependencies = [ "aws-eventstream" ];
@ -461,10 +461,10 @@
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "12lqn70c3v5h2z2svn1gickyhkhny6rwnm2xfrs3gmjc6pvfrqhb";
sha256 = "124ijrgr9w709093g7p7hvhg1l4wy4kr1c8rn82krri89pl4q6y2";
type = "gem";
};
version = "2.227.0";
version = "2.227.1";
};
fastlane-sirp = {
dependencies = [ "sysrandom" ];

View file

@ -0,0 +1,42 @@
{
lib,
python3Packages,
fetchFromGitHub,
}:
python3Packages.buildPythonApplication rec {
pname = "ghmap";
version = "1.0.2";
pyproject = true;
src = fetchFromGitHub {
owner = "uhourri";
repo = "ghmap";
tag = "v${version}";
hash = "sha256-ZA7jtcmvjZEIS3iYaTv9rFqeQSqsh8pCxcbpQDUPDfs=";
};
build-system = with python3Packages; [
setuptools
];
dependencies = with python3Packages; [
tqdm
];
pythonImportsCheck = [
"ghmap"
];
nativeCheckInputs = with python3Packages; [
pytestCheckHook
];
meta = {
description = "Python tool for mapping GitHub events to contributor activities";
homepage = "https://github.com/uhourri/ghmap";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ drupol ];
mainProgram = "ghmap";
};
}

View file

@ -84,6 +84,7 @@ stdenv.mkDerivation (finalAttrs: {
license = lib.licenses.bsd3Clear;
pkgConfigModules = [ "lcevc_dec" ];
maintainers = with lib.maintainers; [ jopejoe1 ];
platforms = lib.platforms.all;
# https://github.com/v-novaltd/LCEVCdec/blob/bf7e0d91c969502e90a925942510a1ca8088afec/cmake/modules/VNovaProject.cmake#L29
platforms = lib.platforms.aarch ++ lib.platforms.x86;
};
})

View file

@ -6,12 +6,12 @@
}:
stdenv.mkDerivation (finalAttrs: {
version = "11.08";
version = "11.09";
pname = "monkeys-audio";
src = fetchzip {
url = "https://monkeysaudio.com/files/MAC_${builtins.concatStringsSep "" (lib.strings.splitString "." finalAttrs.version)}_SDK.zip";
hash = "sha256-iy/WFFRv3/ZJoGCAKH2+rYnyIdvaO+kgxaH/XeKWtbs=";
hash = "sha256-kGlrCeyozEQbiccqL5Xf9Iqwo5xkcunhNw4oMZZDZo0=";
stripRoot = false;
};

View file

@ -0,0 +1,46 @@
diff --git a/lib/eal/include/rte_bitops.h b/lib/eal/include/rte_bitops.h
index deb1fd43f2..0f63ebe1d5 100644
--- a/lib/eal/include/rte_bitops.h
+++ b/lib/eal/include/rte_bitops.h
@@ -525,10 +525,12 @@ __rte_bit_ ## variant ## flip ## size(qualifier uint ## size ## _t *addr, unsign
__RTE_GEN_BIT_OPS(,, size) \
__RTE_GEN_BIT_OPS(v_, volatile, size)
+#ifndef __cplusplus
#ifdef ALLOW_EXPERIMENTAL_API
__RTE_GEN_BIT_OPS_SIZE(32)
__RTE_GEN_BIT_OPS_SIZE(64)
#endif
+#endif
#define __RTE_GEN_BIT_ATOMIC_TEST(variant, qualifier, size) \
__rte_experimental \
@@ -653,10 +655,12 @@ __rte_bit_atomic_ ## variant ## test_and_assign ## size( \
__RTE_GEN_BIT_ATOMIC_OPS(,, size) \
__RTE_GEN_BIT_ATOMIC_OPS(v_, volatile, size)
+#ifndef __cplusplus
#ifdef ALLOW_EXPERIMENTAL_API
__RTE_GEN_BIT_ATOMIC_OPS_SIZE(32)
__RTE_GEN_BIT_ATOMIC_OPS_SIZE(64)
#endif
+#endif
/*------------------------ 32-bit relaxed operations ------------------------*/
@@ -1485,6 +1489,7 @@ rte_bit_ ## family ## fun(qualifier uint ## size ## _t *addr, arg1_type arg1_nam
__RTE_BIT_OVERLOAD_SZ_4R(family, fun, qualifier, 64, ret_type, arg1_type, arg1_name, \
arg2_type, arg2_name, arg3_type, arg3_name)
+#ifndef __cplusplus
#ifdef ALLOW_EXPERIMENTAL_API
__RTE_BIT_OVERLOAD_2R(, test, const, bool, unsigned int, nr)
__RTE_BIT_OVERLOAD_2(, set,, unsigned int, nr)
@@ -1502,6 +1507,7 @@ __RTE_BIT_OVERLOAD_3R(atomic_, test_and_clear,, bool, unsigned int, nr, int, mem
__RTE_BIT_OVERLOAD_4R(atomic_, test_and_assign,, bool, unsigned int, nr, bool, value,
int, memory_order)
#endif
+#endif
#endif

View file

@ -0,0 +1,50 @@
diff --git a/platform/linux-dpdk/odp_packet_dpdk.c b/platform/linux-dpdk/odp_packet_dpdk.c
index cd95ba0f9..7e8b7e3f1 100644
--- a/platform/linux-dpdk/odp_packet_dpdk.c
+++ b/platform/linux-dpdk/odp_packet_dpdk.c
@@ -372,13 +372,18 @@ static void prepare_rss_conf(pktio_entry_t *pktio_entry,
uint64_t rss_hf_capa;
pkt_dpdk_t *pkt_dpdk = pkt_priv(pktio_entry);
uint16_t port_id = pkt_dpdk->port_id;
+ int ret;
memset(&pkt_dpdk->rss_conf, 0, sizeof(struct rte_eth_rss_conf));
if (!p->hash_enable)
return;
- rte_eth_dev_info_get(port_id, &dev_info);
+ ret = rte_eth_dev_info_get(port_id, &dev_info);
+ if (ret) {
+ _ODP_ERR("Failed to read device info: %d\n", ret);
+ return;
+ }
rss_hf_capa = dev_info.flow_type_rss_offloads;
/* Print debug info about unsupported hash protocols */
@@ -842,7 +847,11 @@ static int dpdk_start(pktio_entry_t *pktio_entry)
pktio_entry->state == PKTIO_STATE_STOP_PENDING)
rte_eth_dev_stop(pkt_dpdk->port_id);
- rte_eth_dev_info_get(port_id, &dev_info);
+ ret = rte_eth_dev_info_get(port_id, &dev_info);
+ if (ret) {
+ _ODP_ERR("Failed to read device info: %d\n", ret);
+ return -1;
+ }
/* Pcap driver reconfiguration may fail if number of rx/tx queues is set to zero */
if (!strncmp(dev_info.driver_name, PCAP_DRV_NAME, strlen(PCAP_DRV_NAME))) {
@@ -1258,7 +1267,11 @@ static uint32_t _dpdk_vdev_mtu(uint16_t port_id)
int ret;
int sockfd;
- rte_eth_dev_info_get(port_id, &dev_info);
+ ret = rte_eth_dev_info_get(port_id, &dev_info);
+ if (ret) {
+ _ODP_ERR("Failed to read device info: %d\n", ret);
+ return 0;
+ }
if_indextoname(dev_info.if_index, ifr.ifr_name);
sockfd = socket(AF_INET, SOCK_DGRAM, 0);
ret = ioctl(sockfd, SIOCGIFMTU, &ifr);

View file

@ -29,13 +29,21 @@ stdenv.mkDerivation rec {
hash = "sha256-9stWGupRSQwUXOdPEQ9Rhkim22p5BBA5Z+2JCYS7Za0=";
};
patches = [
./odp-dpdk_25.03.patch
];
nativeBuildInputs = [
autoreconfHook
pkg-config
];
buildInputs = [
dpdk
(dpdk.overrideAttrs {
patches = [
./dpdk_25.03.patch
];
})
libconfig
libpcap
numactl

View file

@ -18,13 +18,13 @@
stdenv.mkDerivation rec {
pname = "pktgen";
version = "23.10.0";
version = "24.10.3";
src = fetchFromGitHub {
owner = "pktgen";
repo = "Pktgen-DPDK";
rev = "pktgen-${version}";
sha256 = "sha256-eujVEU+XkxF1kIGQJoBW3oXXNSqBEzx6mwR2XYoHinM=";
sha256 = "sha256-6KC1k+LWNSU/mdwcUKjCaq8pGOcO+dFzeXX4PJm0QgE=";
};
nativeBuildInputs = [

View file

@ -32,18 +32,18 @@
stdenv.mkDerivation (finalAttrs: rec {
pname = "q2pro";
version = "0-unstable-2025-04-18";
version = "0-unstable-2025-04-27";
src = fetchFromGitHub {
owner = "skullernet";
repo = "q2pro";
rev = "1cc95be8bb967f4274e54a6d7251e4cd7f5ed9c1";
hash = "sha256-7dsFzCnWiVNioyRIW0KjicfgGTxjozicUpDJG5jGvB0=";
rev = "9d3b9d1628a0fcd17eb1cf8bb65cff6d917c9a25";
hash = "sha256-MyEAoBEASfB4MQdVTu6O8YcZCUWtuIijN34dpwsELPs=";
};
# build date and rev number is displayed in the game's console
revCount = "3782"; # git rev-list --count ${src.rev}
SOURCE_DATE_EPOCH = "1744997502"; # git show -s --format=%ct ${src.rev}
revCount = "3812"; # git rev-list --count ${src.rev}
SOURCE_DATE_EPOCH = "1745703870"; # git show -s --format=%ct ${src.rev}
nativeBuildInputs =
[

View file

@ -69,6 +69,10 @@ stdenv.mkDerivation rec {
postPatch = ''
patchShebangs .
# can be removed again with next release, check is already in master
substituteInPlace module/scheduler/dpdk_governor/dpdk_governor.c \
--replace-fail "<rte_power.h>" " <rte_power_cpufreq.h>"
'';
enableParallelBuilding = true;

View file

@ -20,17 +20,17 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "uv";
version = "0.6.17";
version = "0.7.0";
src = fetchFromGitHub {
owner = "astral-sh";
repo = "uv";
tag = finalAttrs.version;
hash = "sha256-Cbk7doAz7meokxUhDMMMB21t6WMr2s+ypvYbVEmmGM8=";
hash = "sha256-D/3YqhIjXhvH7hn/dmJ2Xmf1riGjVc9jqbqVJSD5EyA=";
};
useFetchCargoVendor = true;
cargoHash = "sha256-jruywuF3CEfBV58QKq/22Y7ueXoEKQWPJ0DmAdo7hrY=";
cargoHash = "sha256-QQv3uAtqC24UkZ1pp7D0izu7xMQGtUPg2iQkp+k9IMI=";
buildInputs = [
rust-jemalloc-sys

View file

@ -20,10 +20,10 @@
rdma-core,
libbpf,
xdp-tools,
writeText,
enableDpdk ? true,
enableRdma ? true,
# FIXME: broken: af_xdp plugins - no working libbpf found - af_xdp plugin disabled
enableAfXdp ? false,
enableAfXdp ? true,
}:
let
@ -42,23 +42,27 @@ let
postInstall = "";
dontDisableStatic = true;
});
# in 25.02 only ID seems to be of interest, so keep it simple
os-release-fake = writeText "os-release-fake" ''
ID=nixos
'';
in
stdenv.mkDerivation rec {
pname = "vpp";
version = "24.10";
version = "25.02";
src = fetchFromGitHub {
owner = "FDio";
repo = "vpp";
rev = "v${version}";
hash = "sha256-GcmblIAu/BDbqZRycmnBsHkvzJe07qB2lSfDnO7ZYtg=";
hash = "sha256-UDO1mlOEQNCmtR18CCTF+ng5Ms9gfTsnohSygLlPopY=";
};
postPatch = ''
patchShebangs scripts/
substituteInPlace CMakeLists.txt \
--replace "plugins tools/vppapigen tools/g2 tools/perftool cmake pkg" \
"plugins tools/vppapigen tools/g2 tools/perftool cmake"
substituteInPlace pkg/CMakeLists.txt \
--replace-fail "/etc/os-release" "${os-release-fake}"
'';
preConfigure = ''

View file

@ -72,7 +72,12 @@
withNvcodec ?
withHeadlessDeps
&& (
with stdenv; !isDarwin && !isAarch32 && !hostPlatform.isRiscV && hostPlatform == buildPlatform
with stdenv;
!isDarwin
&& !isAarch32
&& !hostPlatform.isLoongArch64
&& !hostPlatform.isRiscV
&& hostPlatform == buildPlatform
), # dynamically linked Nvidia code
withFlite ? withFullDeps, # Voice Synthesis
withFontconfig ? withHeadlessDeps, # Needed for drawtext filter

View file

@ -74,7 +74,14 @@ stdenv.mkDerivation rec {
# The upstream default is dependent on the builders' page size
# https://github.com/jemalloc/jemalloc/issues/467
# https://sources.debian.org/src/jemalloc/5.3.0-3/debian/rules/
++ [ (if stdenv.hostPlatform.isAarch64 then "--with-lg-page=16" else "--with-lg-page=12") ]
++ [
(
if (stdenv.hostPlatform.isAarch64 || stdenv.hostPlatform.isLoongArch64) then
"--with-lg-page=16"
else
"--with-lg-page=12"
)
]
# See https://github.com/jemalloc/jemalloc/issues/1997
# Using a value of 48 should work on both emulated and native x86_64-darwin.
++ lib.optional (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isx86_64) "--with-lg-vaddr=48";

View file

@ -0,0 +1,83 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
# build-system
setuptools,
setuptools-scm,
# dependencies
torch,
triton,
# optional-dependencies
accelerate,
datasets,
fire,
huggingface-hub,
pandas,
pytestCheckHook,
pythonAtLeast,
tqdm,
transformers,
}:
buildPythonPackage {
pname = "cut-cross-entropy";
version = "25.3.1";
pyproject = true;
# The `ml-cross-entropy` Pypi comes from a third-party.
# Apple recommends installing from the repo's main branch directly
src = fetchFromGitHub {
owner = "apple";
repo = "ml-cross-entropy";
rev = "24fbe4b5dab9a6c250a014573613c1890190536c"; # no tags
hash = "sha256-BVPon+T7chkpozX/IZU3KZMw1zRzlYVvF/22JWKjT2Y=";
};
# Python 3.13 support requires PyTorch 2.6, which is not merged into master yet
# https://github.com/NixOS/nixpkgs/pull/377785
disabled = pythonAtLeast "3.13";
build-system = [
setuptools
setuptools-scm
];
dependencies = [
torch
triton
];
optional-dependencies = {
transformers = [ transformers ];
all = [
accelerate
datasets
fire
huggingface-hub
pandas
tqdm
transformers
];
# `deepspeed` is not yet packaged in nixpkgs
# ++ lib.optionals (!stdenv.isDarwin) [
# deepspeed
# ];
};
nativeCheckInputs = [ pytestCheckHook ];
pythonImportsCheck = [
"cut_cross_entropy"
];
meta = {
description = "Memory-efficient cross-entropy loss implementation using Cut Cross-Entropy (CCE)";
homepage = "https://github.com/apple/ml-cross-entropy";
license = lib.licenses.aml;
maintainers = with lib.maintainers; [ hoh ];
};
}

View file

@ -9,14 +9,14 @@
buildPythonPackage rec {
pname = "hf-xet";
version = "1.0.5";
version = "1.1.0";
pyproject = true;
src = fetchFromGitHub {
owner = "huggingface";
repo = "xet-core";
tag = "v${version}";
hash = "sha256-SBL2s5+hbB7G5Qzo/nF+PXp2zuce4HKWG2cgyY41G8I=";
hash = "sha256-bE3uioAn4I65tOItKzDddAWTP4ZlNUZbfMaSD2anhNk=";
};
sourceRoot = "${src.name}/hf_xet";
@ -28,7 +28,7 @@ buildPythonPackage rec {
src
sourceRoot
;
hash = "sha256-gDHBnNWpCHwxbwYKQZQEfClXUPtWesb+cxtPXEOj1Us=";
hash = "sha256-D6R2FFGDKB4VgMkflF441Ki8o1RCwBoumQ4oeNL/fnc=";
};
nativeBuildInputs = [

View file

@ -0,0 +1,53 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
# build-system
setuptools,
setuptools-scm,
# dependencies
accelerate,
datasets,
rich,
transformers,
}:
buildPythonPackage rec {
pname = "trl";
version = "0.15.2";
pyproject = true;
src = fetchFromGitHub {
owner = "huggingface";
repo = "trl";
tag = "v${version}";
hash = "sha256-HsSmFXFqDOWVLa6VXdPZVS9C3bjYcsliR0TwNpPiQx4=";
};
build-system = [
setuptools
setuptools-scm
];
dependencies = [
accelerate
datasets
rich
transformers
];
# Many tests require internet access.
doCheck = false;
pythonImportsCheck = [ "trl" ];
meta = {
description = "Train transformer language models with reinforcement learning";
homepage = "https://github.com/huggingface/trl";
changelog = "https://github.com/huggingface/trl/releases/tag/v${version}";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ hoh ];
};
}

View file

@ -0,0 +1,69 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
# build-system
hatchling,
# dependencies
docstring-parser,
rich,
shtab,
typeguard,
typing-extensions,
# tests
attrs,
flax,
jax,
ml-collections,
omegaconf,
pydantic,
pytestCheckHook,
torch,
}:
buildPythonPackage rec {
pname = "tyro";
version = "0.9.19";
pyproject = true;
src = fetchFromGitHub {
owner = "brentyi";
repo = "tyro";
tag = "v${version}";
hash = "sha256-A1Vplc84Xy8TufqmklPUzIdgiPpFcIjqV0eUgdKmYRM=";
};
build-system = [ hatchling ];
dependencies = [
docstring-parser
rich
shtab
typeguard
typing-extensions
];
nativeCheckInputs = [
attrs
flax
jax
ml-collections
omegaconf
pydantic
pytestCheckHook
torch
];
pythonImportsCheck = [ "tyro" ];
meta = {
description = "CLI interfaces & config objects, from types";
homepage = "https://github.com/brentyi/tyro";
changelog = "https://github.com/brentyi/tyro/releases/tag/v${version}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ hoh ];
};
}

View file

@ -0,0 +1,86 @@
{
lib,
buildPythonPackage,
fetchPypi,
# build-system
setuptools,
setuptools-scm,
# dependencies
accelerate,
cut-cross-entropy,
datasets,
hf-transfer,
huggingface-hub,
packaging,
peft,
psutil,
sentencepiece,
torch,
tqdm,
transformers,
trl,
tyro,
}:
buildPythonPackage rec {
pname = "unsloth-zoo";
version = "2025.4.1";
pyproject = true;
# no tags on GitHub
src = fetchPypi {
pname = "unsloth_zoo";
inherit version;
hash = "sha256-mRs/NMCNJWT52S7mtbQI332IQR6+/IaL29XmtMOz3fE=";
};
# pyproject.toml requires an obsolete version of protobuf,
# but it is not used.
# Upstream issue: https://github.com/unslothai/unsloth-zoo/pull/68
pythonRelaxDeps = [
"protobuf"
];
patches = [
# Avoid circular dependency in Nix, since `unsloth` depends on `unsloth-zoo`.
./dont-require-unsloth.patch
];
build-system = [
setuptools
setuptools-scm
];
dependencies = [
accelerate
cut-cross-entropy
datasets
hf-transfer
huggingface-hub
packaging
peft
psutil
sentencepiece
torch
tqdm
transformers
trl
tyro
];
# No tests
doCheck = false;
pythonImportsCheck = [
"unsloth_zoo"
];
meta = {
description = "Utils for Unsloth";
homepage = "https://github.com/unslothai/unsloth_zoo";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ hoh ];
};
}

View file

@ -0,0 +1,18 @@
diff --git a/unsloth_zoo/__init__.py b/unsloth_zoo/__init__.py
--- a/unsloth_zoo/__init__.py
+++ b/unsloth_zoo/__init__.py
@@ -17,14 +17,10 @@
__version__ = "2025.3.17"
from importlib.util import find_spec
-if find_spec("unsloth") is None:
- raise ImportError("Please install Unsloth via `pip install unsloth`!")
pass
del find_spec
import os
-if not ("UNSLOTH_IS_PRESENT" in os.environ):
- raise ImportError("Please install Unsloth via `pip install unsloth`!")
pass
try:

View file

@ -0,0 +1,92 @@
{
lib,
buildPythonPackage,
fetchPypi,
# build-system
setuptools,
setuptools-scm,
# dependencies
bitsandbytes,
numpy,
packaging,
torch,
unsloth-zoo,
xformers,
tyro,
transformers,
datasets,
sentencepiece,
tqdm,
accelerate,
trl,
peft,
protobuf,
huggingface-hub,
hf-transfer,
diffusers,
torchvision,
}:
buildPythonPackage rec {
pname = "unsloth";
version = "2025.4.1";
pyproject = true;
# Tags on the GitHub repo don't match
src = fetchPypi {
pname = "unsloth";
inherit version;
hash = "sha256-9LtDGfdWH7R3U/xi+aK3V4zA+vs83S6Cp0F2NQKvSdY=";
};
build-system = [
setuptools
setuptools-scm
];
dependencies = [
bitsandbytes
numpy
packaging
torch
unsloth-zoo
xformers
tyro
transformers
datasets
sentencepiece
tqdm
accelerate
trl
peft
protobuf
huggingface-hub
hf-transfer
diffusers
torchvision
];
# pyproject.toml requires an obsolete version of protobuf,
# but it is not used.
# Upstream issue: https://github.com/unslothai/unsloth-zoo/pull/68
pythonRelaxDeps = [
"protobuf"
];
# The source repository contains no test
doCheck = false;
# Importing requires a GPU, else the following error is raised:
# NotImplementedError: Unsloth: No NVIDIA GPU found? Unsloth currently only supports GPUs!
dontUsePythonImportsCheck = true;
meta = {
description = "Finetune Llama 3.3, DeepSeek-R1 & Reasoning LLMs 2x faster with 70% less memory";
homepage = "https://github.com/unslothai/unsloth";
changelog = "https://github.com/unslothai/unsloth/releases/tag/${version}";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ hoh ];
};
}

View file

@ -58,7 +58,7 @@ let
];
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
# https://www.electronjs.org/docs/latest/tutorial/electron-timelines
knownVulnerabilities = optional (versionOlder version "33.0.0") "Electron version ${version} is EOL";
knownVulnerabilities = optional (versionOlder version "34.0.0") "Electron version ${version} is EOL";
};
fetcher =

File diff suppressed because it is too large Load diff

View file

@ -2,12 +2,12 @@
grafanaPlugin rec {
pname = "grafana-clickhouse-datasource";
version = "4.4.0";
version = "4.8.2";
zipHash = {
x86_64-linux = "sha256-rh+oTJrW7WxLHG7jSkT1Pog+/tqhE+j/0jdbgaHu1a4=";
aarch64-linux = "sha256-uV+WKh3/jBgOwX2lrwC3Q7TGr3/BH83QZhwmtL4G3qo=";
x86_64-darwin = "sha256-Y6Xp4HCYF+Nkw8CNrfEMOtpNgKunMI/4oVqD8Wq5VEI=";
aarch64-darwin = "sha256-x/Z5BA9N5sZurQ5K1NQCYXQPZ/yF1p/372GPIeVU0ps=";
x86_64-linux = "sha256-gegkpks7KIHKUG3nmNzEulbhH18eOsx8Afr0tprHFkk=";
aarch64-linux = "sha256-wvde2c+goezC1xFPZZ9MnHEk287E2ScyExKNXDTbcT8=";
x86_64-darwin = "sha256-zS9LfvSOWCKQIv5GsRS48taM31ZN4i2REY+IIQbqisk=";
aarch64-darwin = "sha256-0QfTdgOkfs27EW1VB+AgHPwF1GRcFBxMPBZ9nRyovrs=";
};
meta = with lib; {
description = "Connects Grafana to ClickHouse";

View file

@ -2,8 +2,8 @@
grafanaPlugin {
pname = "grafana-lokiexplore-app";
version = "1.0.10";
zipHash = "sha256-1+5xil0XmcLCDKpObuxpnoMnQZaT1I62zL6xatlyKc4=";
version = "1.0.13";
zipHash = "sha256-oTiwvkKiKpeI7MUxyaRuxXot4UhMeSvuJh0N1VIfA5Q=";
meta = with lib; {
description = "The Grafana Logs Drilldown app offers a queryless experience for browsing Loki logs without the need for writing complex queries.";
license = licenses.agpl3Only;

View file

@ -2,12 +2,12 @@
grafanaPlugin {
pname = "grafana-mqtt-datasource";
version = "1.1.0-beta.2";
version = "1.1.0-beta.3";
zipHash = {
x86_64-linux = "sha256-QYv+6zDLSYiB767A3ODgZ1HzPd7Hpa90elKDV1+dNx8=";
aarch64-linux = "sha256-cquaTD3e40vj7PuQDHvODHOpXeWx3AaN6Mv+Vu+ikbI=";
x86_64-darwin = "sha256-PZmUkghYawU5aKA536u3/LCzsvkIFVJIzl1FVWcrKTI=";
aarch64-darwin = "sha256-9FP7UbNI4q4nqRTzlNKcEPnJ9mdqzOL4E0nuEAdFNJw=";
x86_64-linux = "sha256-/0hZc0lFV1LXl6532nLJmJ6fJPdRx+sMt7Uep4GTeX0=";
aarch64-linux = "sha256-KPIa/yYkzbKm4/mB84/DdIsdqfQBOc0+LGxl2GHDVGk=";
x86_64-darwin = "sha256-7gGw/RCuzHmj/vaIAweXLPqQYAl0EMSXXjPCtjRC4vU=";
aarch64-darwin = "sha256-i2/lE7QickowFSvHoo7CuaZ1ChFVpsQgZjvuBTQapq4=";
};
meta = with lib; {
description = "The MQTT data source plugin allows you to visualize streaming MQTT data from within Grafana.";

View file

@ -2,8 +2,8 @@
grafanaPlugin {
pname = "grafana-oncall-app";
version = "1.10.2";
zipHash = "sha256-wRgzdPKSA24O4kSDhaO/09uOG6lIoJGWUGOgX1vdjlU=";
version = "1.15.6";
zipHash = "sha256-2BlR8dKcfevkajT571f2vSn+YOzfrjUaY+dmN0SSZHE=";
meta = with lib; {
description = "Developer-friendly incident response for Grafana";
license = licenses.agpl3Only;

View file

@ -2,12 +2,12 @@
grafanaPlugin {
pname = "grafana-opensearch-datasource";
version = "2.19.0";
version = "2.24.0";
zipHash = {
x86_64-linux = "sha256-jTeiIbaM2wPBTxFyXPQhBXxxzgRZbaXkqeN9+tHgWPc=";
aarch64-linux = "sha256-8ti5CibWbycAO9o3Wse/CuE07JjwV1Quhy/Vm6BDmyM=";
x86_64-darwin = "sha256-6rqdTsYcqjqcXtM20ekJguT42w5dr4EUHvNuRDIU6k0=";
aarch64-darwin = "sha256-Z4ISwwkFJXXdVcLOspAK8euI4yor4Ii08K7zZffY9tM=";
x86_64-linux = "sha256-ZxlHl08pSqnVKZvVph5Bqjki7ukrV3UScJFRwW4y97o=";
aarch64-linux = "sha256-ZwPq3Xz4Rcm2JiAZnZ0D/Z6SamlCnj0/PgXeT6rrxcQ=";
x86_64-darwin = "sha256-HMifdRPl8RNb+m/eFaXATNRgDYLMG1UA6N/rWHMTR04=";
aarch64-darwin = "sha256-MLVyOeVZ42zJjLpOnGSa5ogGNa7rlcA4qjASCVeA3eU=";
};
meta = with lib; {
description = "The Grafana JSON Datasource plugin empowers you to seamlessly integrate JSON data into Grafana.";

View file

@ -2,8 +2,8 @@
grafanaPlugin {
pname = "grafana-polystat-panel";
version = "2.1.13";
zipHash = "sha256-O8YOSVLhJ1hDNbBHKwkikNBOjQTrGofGklVTalgDH4I=";
version = "2.1.14";
zipHash = "sha256-W6qx3b8rmIQV6Sm2rUsCDKrWi69N2S31hbmuqjYt25M=";
meta = with lib; {
description = "Hexagonal multi-stat panel for Grafana";
license = licenses.asl20;

View file

@ -2,8 +2,8 @@
grafanaPlugin {
pname = "marcusolsson-calendar-panel";
version = "3.7.0";
zipHash = "sha256-O8EvkS+lWq2qaIj1HJzPagRGhrEENvY1YDBusvUejM0=";
version = "3.9.1";
zipHash = "sha256-52MhkjsTke256cId6BtgjdRiU4w9cA6MTWA79/UfHQw=";
meta = with lib; {
description = "Calendar Panel is a Grafana plugin that displays events from various data sources.";
license = licenses.asl20;

View file

@ -2,8 +2,8 @@
grafanaPlugin {
pname = "marcusolsson-dynamictext-panel";
version = "5.6.0";
zipHash = "sha256-UDJG6KAaothSv26SHKo1HNQwVHg5slI01rmDnGgGBWs=";
version = "5.7.0";
zipHash = "sha256-HYmSj3DUdDM5m+D/nXNGmP2YpsljS895kOl+Ki1Zz88=";
meta = with lib; {
description = "Dynamic, data-driven text panel for Grafana";
license = licenses.asl20;

View file

@ -2,8 +2,8 @@
grafanaPlugin {
pname = "marcusolsson-json-datasource";
version = "1.3.17";
zipHash = "sha256-L1G5s9fEEuvNs5AWXlT00f+dU2/2Rtjm4R3kpFc4NRg=";
version = "1.3.24";
zipHash = "sha256-gKFy7T5FQU2OUGBDokNWj0cT4EuOLLMcOFezlArtdww=";
meta = with lib; {
description = "The Grafana JSON Datasource plugin empowers you to seamlessly integrate JSON data into Grafana.";
license = licenses.asl20;

View file

@ -2,8 +2,8 @@
grafanaPlugin {
pname = "ventura-psychrometric-panel";
version = "4.5.1";
zipHash = "sha256-Y/Eh3eWZkPS8Q1eha7sEJ3wTMI7QxOr7MEbPc25fnGg=";
version = "5.0.0";
zipHash = "sha256-g14Xosk48dslNROidRDRJGzrDSkeB3cr1PxNrsLMEAA=";
meta = with lib; {
description = "Grafana plugin to display air conditions on a psychrometric chart.";
license = licenses.bsd3Lbnl;

View file

@ -2,8 +2,8 @@
grafanaPlugin {
pname = "volkovlabs-echarts-panel";
version = "6.4.1";
zipHash = "sha256-RHOfFKplZs0gbD/esvrpXkkPKPfo5R4zjCUJWPpkDNU=";
version = "6.6.0";
zipHash = "sha256-SjZl33xoHVmE6y0D7FT9x2wVPil7HK1rYVgTXICpXZ4=";
meta = with lib; {
description = "The Apache ECharts plugin is a visualization panel for Grafana that allows you to incorporate the popular Apache ECharts library into your Grafana dashboard.";
license = licenses.asl20;

View file

@ -2,8 +2,8 @@
grafanaPlugin {
pname = "volkovlabs-form-panel";
version = "4.6.0";
zipHash = "sha256-ne2dfCr+PBodeaxGfZL0VrAxHLYEAaeQfuZQf2F3s0s=";
version = "5.1.0";
zipHash = "sha256-aFIrKrfcTk4dGBaGVMv6mMLQqys5QaD9XgZIGmtgA5s=";
meta = with lib; {
description = "The Data Manipulation Panel is the first plugin that allows inserting and updating application data, as well as modifying configuration directly from your Grafana dashboard.";
license = licenses.asl20;

View file

@ -2,8 +2,8 @@
grafanaPlugin {
pname = "volkovlabs-rss-datasource";
version = "4.2.0";
zipHash = "sha256-+3tgvpH6xlJORqN4Sx7qwzsiQZoLwdarzhx6kHvtOoY=";
version = "4.3.0";
zipHash = "sha256-HF37azbhlYp8RndUMr7Xs1ajgOTJplVP7rQzGQ0GrU4=";
meta = with lib; {
description = "The RSS/Atom data source is a plugin for Grafana that retrieves RSS/Atom feeds and allows visualizing them using Dynamic Text and other panels.";
license = licenses.asl20;

View file

@ -2,8 +2,8 @@
grafanaPlugin {
pname = "volkovlabs-variable-panel";
version = "3.5.0";
zipHash = "sha256-SqMTCdB+8OUo94zJ3eS5NoCeyjc7sdMCR0CTvVe/L1g=";
version = "3.9.0";
zipHash = "sha256-M9upfNMK45dPnouSO6Do3Li833q9NI0H2gc6DaLEsbA=";
meta = with lib; {
description = "The Variable panel allows you to have dashboard filters in a separate panel which you can place anywhere on the dashboard.";
license = licenses.asl20;

View file

@ -8,10 +8,10 @@
stdenv.mkDerivation rec {
pname = "apache-jena";
version = "5.3.0";
version = "5.4.0";
src = fetchurl {
url = "mirror://apache/jena/binaries/apache-jena-${version}.tar.gz";
hash = "sha256-TMvQb2cU+uz4CeyWksWYfueyQ7NpUsG4saoJVXVkd7Y=";
hash = "sha256-KQoBKPAetKI3ySWvsRn5yrtf5T5ldWiqKGrRDK8O/4Q=";
};
nativeBuildInputs = [
makeWrapper

View file

@ -7298,11 +7298,7 @@ with pkgs;
;
electron_32 = electron_32-bin;
electron_33 =
if lib.meta.availableOn stdenv.hostPlatform electron-source.electron_33 then
electron-source.electron_33
else
electron_33-bin;
electron_33 = electron_33-bin;
electron_34 =
if lib.meta.availableOn stdenv.hostPlatform electron-source.electron_34 then
electron-source.electron_34

View file

@ -3034,6 +3034,8 @@ self: super: with self; {
customtkinter = callPackage ../development/python-modules/customtkinter { };
cut-cross-entropy = callPackage ../development/python-modules/cut-cross-entropy { };
cvelib = callPackage ../development/python-modules/cvelib { };
cvss = callPackage ../development/python-modules/cvss { };
@ -17620,6 +17622,8 @@ self: super: with self; {
tritonclient = callPackage ../development/python-modules/tritonclient { };
trl = callPackage ../development/python-modules/trl { };
trlib = toPythonModule (
pkgs.trlib.override {
pythonSupport = true;
@ -18228,6 +18232,8 @@ self: super: with self; {
typst = callPackage ../development/python-modules/typst { };
tyro = callPackage ../development/python-modules/tyro { };
tzdata = callPackage ../development/python-modules/tzdata { };
tzlocal = callPackage ../development/python-modules/tzlocal { };
@ -18378,6 +18384,10 @@ self: super: with self; {
unrpa = callPackage ../development/python-modules/unrpa { };
unsloth = callPackage ../development/python-modules/unsloth { };
unsloth-zoo = callPackage ../development/python-modules/unsloth-zoo { };
unstructured = callPackage ../development/python-modules/unstructured { };
unstructured-api-tools = callPackage ../development/python-modules/unstructured-api-tools { };