mirror of
https://github.com/NixOS/nixpkgs.git
synced 2026-07-06 17:13:24 -05:00
Merge master into staging-next
This commit is contained in:
commit
45908f8f52
109 changed files with 758 additions and 958 deletions
|
|
@ -233,9 +233,7 @@ nixos/modules/installer/tools/nix-fallback-paths.nix @Artturin @Ericson2314 @lo
|
|||
/doc/toolchains/llvm.chapter.md @NixOS/llvm
|
||||
|
||||
# Audio
|
||||
/nixos/modules/services/audio/botamusique.nix @mweinelt
|
||||
/nixos/modules/services/audio/snapserver.nix @mweinelt
|
||||
/nixos/tests/botamusique.nix @mweinelt
|
||||
/nixos/tests/snapcast.nix @mweinelt
|
||||
|
||||
# Browsers
|
||||
|
|
|
|||
|
|
@ -777,12 +777,6 @@
|
|||
githubId = 168;
|
||||
name = "Alexander Flatter";
|
||||
};
|
||||
afldcr = {
|
||||
email = "alex@fldcr.com";
|
||||
github = "afldcr";
|
||||
githubId = 335271;
|
||||
name = "James Alexander Feldman-Crough";
|
||||
};
|
||||
afontain = {
|
||||
email = "afontain@posteo.net";
|
||||
github = "necessarily-equal";
|
||||
|
|
@ -6567,12 +6561,6 @@
|
|||
githubId = 48378098;
|
||||
name = "Danila Danko";
|
||||
};
|
||||
deepfire = {
|
||||
email = "_deepfire@feelingofgreen.ru";
|
||||
github = "deepfire";
|
||||
githubId = 452652;
|
||||
name = "Kosyrev Serge";
|
||||
};
|
||||
DeeUnderscore = {
|
||||
email = "d.anzorge@gmail.com";
|
||||
github = "DeeUnderscore";
|
||||
|
|
@ -8671,12 +8659,6 @@
|
|||
github = "f2k1de";
|
||||
githubId = 11199213;
|
||||
};
|
||||
f4814n = {
|
||||
email = "me@f4814n.de";
|
||||
github = "f4814";
|
||||
githubId = 11909469;
|
||||
name = "Fabian Geiselhart";
|
||||
};
|
||||
f4z3r = {
|
||||
email = "f4z3r-github@pm.me";
|
||||
name = "Jakob Beckmann";
|
||||
|
|
@ -28432,12 +28414,6 @@
|
|||
githubId = 207457;
|
||||
name = "Matthieu Chevrier";
|
||||
};
|
||||
trepetti = {
|
||||
email = "trepetti@cs.columbia.edu";
|
||||
github = "trepetti";
|
||||
githubId = 25440339;
|
||||
name = "Tom Repetti";
|
||||
};
|
||||
trespaul = {
|
||||
email = "paul@trespaul.com";
|
||||
github = "trespaul";
|
||||
|
|
@ -29108,12 +29084,6 @@
|
|||
githubId = 2612464;
|
||||
name = "Vincent Laporte";
|
||||
};
|
||||
vbmithr = {
|
||||
email = "vb@luminar.eu.org";
|
||||
github = "vbmithr";
|
||||
githubId = 797581;
|
||||
name = "Vincent Bernardoff";
|
||||
};
|
||||
vbrandl = {
|
||||
name = "Valentin Brandl";
|
||||
email = "mail+nixpkgs@vbrandl.net";
|
||||
|
|
|
|||
|
|
@ -736,7 +736,6 @@ with lib.maintainers;
|
|||
dduan
|
||||
samasaur
|
||||
stephank
|
||||
trepetti
|
||||
];
|
||||
scope = "Maintain Swift compiler suite for NixOS.";
|
||||
shortName = "Swift";
|
||||
|
|
|
|||
|
|
@ -429,7 +429,6 @@
|
|||
./services/amqp/activemq/default.nix
|
||||
./services/amqp/rabbitmq.nix
|
||||
./services/audio/alsa.nix
|
||||
./services/audio/botamusique.nix
|
||||
./services/audio/gmediarender.nix
|
||||
./services/audio/gonic.nix
|
||||
./services/audio/goxlr-utility.nix
|
||||
|
|
|
|||
|
|
@ -150,6 +150,9 @@ in
|
|||
] "The baget module was removed due to the upstream package being unmaintained.")
|
||||
(mkRemovedOptionModule [ "services" "beegfs" ] "The BeeGFS module has been removed")
|
||||
(mkRemovedOptionModule [ "services" "beegfsEnable" ] "The BeeGFS module has been removed")
|
||||
(mkRemovedOptionModule [ "services" "botamusique" ]
|
||||
"The botamusique module has been removed. The project was archived upstream in 2024: https://github.com/azlux/botamusique"
|
||||
)
|
||||
(mkRemovedOptionModule [
|
||||
"services"
|
||||
"cgmanager"
|
||||
|
|
|
|||
|
|
@ -1,111 +0,0 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
cfg = config.services.botamusique;
|
||||
|
||||
format = pkgs.formats.ini { };
|
||||
configFile = format.generate "botamusique.ini" cfg.settings;
|
||||
in
|
||||
{
|
||||
options.services.botamusique = {
|
||||
enable = lib.mkEnableOption "botamusique, a bot to play audio streams on mumble";
|
||||
|
||||
package = lib.mkPackageOption pkgs "botamusique" { };
|
||||
|
||||
settings = lib.mkOption {
|
||||
type =
|
||||
with lib.types;
|
||||
submodule {
|
||||
freeformType = format.type;
|
||||
options = {
|
||||
server.host = lib.mkOption {
|
||||
type = types.str;
|
||||
default = "localhost";
|
||||
example = "mumble.example.com";
|
||||
description = "Hostname of the mumble server to connect to.";
|
||||
};
|
||||
|
||||
server.port = lib.mkOption {
|
||||
type = types.port;
|
||||
default = 64738;
|
||||
description = "Port of the mumble server to connect to.";
|
||||
};
|
||||
|
||||
bot.username = lib.mkOption {
|
||||
type = types.str;
|
||||
default = "botamusique";
|
||||
description = "Name the bot should appear with.";
|
||||
};
|
||||
|
||||
bot.comment = lib.mkOption {
|
||||
type = types.str;
|
||||
default = "Hi, I'm here to play radio, local music or youtube/soundcloud music. Have fun!";
|
||||
description = "Comment displayed for the bot.";
|
||||
};
|
||||
};
|
||||
};
|
||||
default = { };
|
||||
description = ''
|
||||
Your {file}`configuration.ini` as a Nix attribute set. Look up
|
||||
possible options in the [configuration.example.ini](https://github.com/azlux/botamusique/blob/master/configuration.example.ini).
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
systemd.services.botamusique = {
|
||||
after = [ "network.target" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
|
||||
unitConfig.Documentation = "https://github.com/azlux/botamusique/wiki";
|
||||
|
||||
environment.HOME = "/var/lib/botamusique";
|
||||
|
||||
serviceConfig = {
|
||||
ExecStart = "${cfg.package}/bin/botamusique --config ${configFile}";
|
||||
Restart = "always"; # the bot exits when the server connection is lost
|
||||
|
||||
# Hardening
|
||||
CapabilityBoundingSet = [ "" ];
|
||||
DynamicUser = true;
|
||||
IPAddressDeny = [
|
||||
"link-local"
|
||||
"multicast"
|
||||
];
|
||||
LockPersonality = true;
|
||||
MemoryDenyWriteExecute = true;
|
||||
ProcSubset = "pid";
|
||||
PrivateDevices = true;
|
||||
PrivateUsers = true;
|
||||
PrivateTmp = true;
|
||||
ProtectClock = true;
|
||||
ProtectControlGroups = true;
|
||||
ProtectHome = true;
|
||||
ProtectHostname = true;
|
||||
ProtectKernelLogs = true;
|
||||
ProtectKernelModules = true;
|
||||
ProtectKernelTunables = true;
|
||||
ProtectProc = "invisible";
|
||||
ProtectSystem = "strict";
|
||||
RestrictNamespaces = true;
|
||||
RestrictRealtime = true;
|
||||
RestrictAddressFamilies = [
|
||||
"AF_INET"
|
||||
"AF_INET6"
|
||||
];
|
||||
StateDirectory = "botamusique";
|
||||
SystemCallArchitectures = "native";
|
||||
SystemCallFilter = [
|
||||
"@system-service @resources"
|
||||
"~@privileged"
|
||||
];
|
||||
UMask = "0077";
|
||||
WorkingDirectory = "/var/lib/botamusique";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -127,6 +127,4 @@ in
|
|||
};
|
||||
};
|
||||
};
|
||||
|
||||
meta.maintainers = with lib.maintainers; [ f4814n ];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -305,7 +305,6 @@ in
|
|||
bootspec = handleTestOn [ "x86_64-linux" ] ./bootspec.nix { };
|
||||
borgbackup = runTest ./borgbackup.nix;
|
||||
borgmatic = runTest ./borgmatic.nix;
|
||||
botamusique = runTest ./botamusique.nix;
|
||||
bpf = runTestOn [ "x86_64-linux" "aarch64-linux" ] ./bpf.nix;
|
||||
bpftune = runTest ./bpftune.nix;
|
||||
breitbandmessung = runTest ./breitbandmessung.nix;
|
||||
|
|
|
|||
|
|
@ -1,48 +0,0 @@
|
|||
{
|
||||
name = "botamusique";
|
||||
|
||||
nodes = {
|
||||
machine = {
|
||||
networking.extraHosts = ''
|
||||
127.0.0.1 all.api.radio-browser.info
|
||||
'';
|
||||
|
||||
services.murmur = {
|
||||
enable = true;
|
||||
registerName = "NixOS tests";
|
||||
};
|
||||
|
||||
services.botamusique = {
|
||||
enable = true;
|
||||
settings = {
|
||||
server = {
|
||||
channel = "NixOS tests";
|
||||
};
|
||||
bot = {
|
||||
version = false;
|
||||
auto_check_update = false;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
start_all()
|
||||
|
||||
machine.wait_for_unit("murmur.service")
|
||||
machine.wait_for_unit("botamusique.service")
|
||||
|
||||
machine.sleep(10)
|
||||
|
||||
machine.wait_until_succeeds(
|
||||
"journalctl -u murmur.service -e | grep -q '<1:botamusique(-1)> Authenticated'"
|
||||
)
|
||||
|
||||
with subtest("Check systemd hardening"):
|
||||
output = machine.execute("systemctl show botamusique.service")[1]
|
||||
machine.log(output)
|
||||
output = machine.execute("systemd-analyze security botamusique.service")[1]
|
||||
machine.log(output)
|
||||
'';
|
||||
}
|
||||
|
|
@ -11,8 +11,8 @@ vscode-utils.buildVscodeMarketplaceExtension {
|
|||
mktplcRef = {
|
||||
name = "calva";
|
||||
publisher = "betterthantomorrow";
|
||||
version = "2.0.591";
|
||||
hash = "sha256-VgRBah9j/4g2fG/qkrwxwqQ7gUw95UjzMkun/BZBpZs=";
|
||||
version = "2.0.593";
|
||||
hash = "sha256-/pPDghizzU/EulLyeFzmsufEwegR4ngo0rxW1Qnjock=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
|
|||
|
|
@ -1226,8 +1226,8 @@ let
|
|||
mktplcRef = {
|
||||
name = "databricks";
|
||||
publisher = "databricks";
|
||||
version = "2.11.1";
|
||||
hash = "sha256-QegVk1SJM/RegAVj7isgFcHwAJyQj9YDuP90u/7weSo=";
|
||||
version = "2.12.0";
|
||||
hash = "sha256-dDkJI9j79pFnZlEH9dokUoEYqjMmDyiU00IGGxzno1A=";
|
||||
};
|
||||
meta = {
|
||||
changelog = "https://marketplace.visualstudio.com/items/databricks.databricks/changelog";
|
||||
|
|
@ -5282,8 +5282,8 @@ let
|
|||
mktplcRef = {
|
||||
name = "gitblame";
|
||||
publisher = "waderyan";
|
||||
version = "13.0.1";
|
||||
sha256 = "sha256-N0UgWdwGj3NW4x0Ea+jKL5Jvp0YE+HfK5tkUjmynPuY=";
|
||||
version = "13.1.0";
|
||||
sha256 = "sha256-32ohvlIV7ogX+hGgcrCyHrv2hKWSpi+YuRMv0SGDYYA=";
|
||||
};
|
||||
meta = {
|
||||
changelog = "https://marketplace.visualstudio.com/items/waderyan.gitblame/changelog";
|
||||
|
|
|
|||
|
|
@ -20,13 +20,13 @@
|
|||
}:
|
||||
mkLibretroCore {
|
||||
core = "dolphin";
|
||||
version = "0-unstable-2026-04-08";
|
||||
version = "0-unstable-2026-06-26";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "libretro";
|
||||
repo = "dolphin";
|
||||
rev = "0cd3bb89c29535db9b7552fc86871867ccf5b471";
|
||||
hash = "sha256-cSiJO/EvspNvHopo/RLfuz8ONpbXk2NrrSDhkiAm7/s=";
|
||||
rev = "fec5e8e106489e0d00e69dd4afaabc3d95688047";
|
||||
hash = "sha256-GNAZgFHZCnokL3HYU+xsFtghpN09QbsZpwMW1eMtSvU=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -7,13 +7,13 @@
|
|||
}:
|
||||
mkLibretroCore {
|
||||
core = "melonds";
|
||||
version = "0-unstable-2026-04-20";
|
||||
version = "0-unstable-2026-06-25";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "libretro";
|
||||
repo = "melonds";
|
||||
rev = "634e51477364edc39aaccd3bebf8bcab5776148c";
|
||||
hash = "sha256-/u6CQKpb9eIls0TYpSpWoIf+IQ0CTIx48oq8LscfhFw=";
|
||||
rev = "c9550d18923fe86a5ad9faa159399b55c12b47f1";
|
||||
hash = "sha256-xvBdt/TMxZOrC//DLHRWRMqIibt7dNsfLM/FeMTRA60=";
|
||||
};
|
||||
|
||||
extraBuildInputs = [
|
||||
|
|
|
|||
|
|
@ -5,13 +5,13 @@
|
|||
}:
|
||||
mkLibretroCore {
|
||||
core = "pcsx-rearmed";
|
||||
version = "0-unstable-2026-06-13";
|
||||
version = "0-unstable-2026-06-28";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "libretro";
|
||||
repo = "pcsx_rearmed";
|
||||
rev = "d26eaee5c8fb47c1832b8bf32c1358d625da8a02";
|
||||
hash = "sha256-p8sPQDnxIBMuFD9nCtdFp1DEJwRuifgUrOFYdY1EfME=";
|
||||
rev = "050981b6eeb715f142854f57c68086f62921f027";
|
||||
hash = "sha256-MFNA3YPhLKa5q9hYM11O5/BIrj5xOsiNXkFLnCzugzo=";
|
||||
};
|
||||
|
||||
dontConfigure = true;
|
||||
|
|
|
|||
|
|
@ -5,13 +5,13 @@
|
|||
}:
|
||||
mkLibretroCore {
|
||||
core = "stella";
|
||||
version = "0-unstable-2026-06-19";
|
||||
version = "0-unstable-2026-06-28";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "stella-emu";
|
||||
repo = "stella";
|
||||
rev = "65fc7d66abfc8dfba5033d88523437b83664ea2b";
|
||||
hash = "sha256-hYYZyHtWjo3BgX73Vxj8JG/2vQ7JtqT+4jPWLN+zZHw=";
|
||||
rev = "62522a804dec6b5aa683fa5e37f5f6c48aefded1";
|
||||
hash = "sha256-YALzsYJwZDtVkVx9yvkkEZ1AHxT4fAc+epoFDwStmSI=";
|
||||
};
|
||||
|
||||
makefile = "Makefile";
|
||||
|
|
|
|||
|
|
@ -535,11 +535,11 @@
|
|||
"vendorHash": null
|
||||
},
|
||||
"hashicorp_azurerm": {
|
||||
"hash": "sha256-NJ3g5w9bkY7tM/f67HOEiq6Uz99CHaJBKaW+mLHrxFM=",
|
||||
"hash": "sha256-XJmSVCX6rigPD4oi0S4qUyvgvR5SkCHZV2rMAqsmIIo=",
|
||||
"homepage": "https://registry.terraform.io/providers/hashicorp/azurerm",
|
||||
"owner": "hashicorp",
|
||||
"repo": "terraform-provider-azurerm",
|
||||
"rev": "v4.76.0",
|
||||
"rev": "v4.79.0",
|
||||
"spdx": "MPL-2.0",
|
||||
"vendorHash": null
|
||||
},
|
||||
|
|
@ -1247,11 +1247,11 @@
|
|||
"vendorHash": "sha256-C8TE7uxMf6LOTS6v22mXwUdk2eqQRinwrCH4ZVUCx4k="
|
||||
},
|
||||
"splunk-terraform_signalfx": {
|
||||
"hash": "sha256-zwq7jCST2EkNk+UlKgLY2r3rCm5D009HYMru9KSVmuc=",
|
||||
"hash": "sha256-bWZ5TvTVoYA6J67mi24rSzf5Qf6jk0RUgiC9CAa1s1o=",
|
||||
"homepage": "https://registry.terraform.io/providers/splunk-terraform/signalfx",
|
||||
"owner": "splunk-terraform",
|
||||
"repo": "terraform-provider-signalfx",
|
||||
"rev": "v9.30.2",
|
||||
"rev": "v9.30.3",
|
||||
"spdx": "MPL-2.0",
|
||||
"vendorHash": "sha256-27mA2OAApUtPawZZk7Wxme9TfQY19TraIJSqHh8MFZg="
|
||||
},
|
||||
|
|
@ -1283,11 +1283,11 @@
|
|||
"vendorHash": "sha256-R/+PS4cUtr8/twUXOPRiVweb5I9NNiD6mGOcAFr9IDs="
|
||||
},
|
||||
"sysdiglabs_sysdig": {
|
||||
"hash": "sha256-yjuh6JVIt+FYVe9yILORklwt/KiBFcjmZnEHf5oeQQw=",
|
||||
"hash": "sha256-r14FsYrLqcZLcQlm25qOCKICTAb3dMBkphRAHiUeXrs=",
|
||||
"homepage": "https://registry.terraform.io/providers/sysdiglabs/sysdig",
|
||||
"owner": "sysdiglabs",
|
||||
"repo": "terraform-provider-sysdig",
|
||||
"rev": "v3.8.1",
|
||||
"rev": "v3.8.2",
|
||||
"spdx": "MPL-2.0",
|
||||
"vendorHash": "sha256-HjrB7C0KaLJz9NVLfZdq5EZbNbF9lJPxSkQwnWUF978="
|
||||
},
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@
|
|||
glew,
|
||||
gsm,
|
||||
lib,
|
||||
libsm,
|
||||
libx11,
|
||||
libxext,
|
||||
libopus,
|
||||
|
|
@ -47,6 +48,7 @@ mkLinphoneDerivation (finalAttrs: {
|
|||
|
||||
ffmpeg_4
|
||||
glew
|
||||
libsm
|
||||
libx11
|
||||
libxext
|
||||
libpulseaudio
|
||||
|
|
|
|||
|
|
@ -9,21 +9,21 @@
|
|||
let
|
||||
appName = "LibreOffice.app";
|
||||
scriptName = "soffice";
|
||||
version = "25.8.6";
|
||||
version = "26.2.4";
|
||||
|
||||
dist = {
|
||||
aarch64-darwin = rec {
|
||||
arch = "aarch64";
|
||||
archSuffix = arch;
|
||||
url = "https://download.documentfoundation.org/libreoffice/stable/${version}/mac/${arch}/LibreOffice_${version}_MacOS_${archSuffix}.dmg";
|
||||
sha256 = "57ddee0f8ef2d06fd7a9b0e3cf191107e6cb97ec03f0a7f6b137f732e251fde2";
|
||||
sha256 = "64e0ad05564554eeee639d49b08b20908a38d4722ec95f1620d05c99bcbe9fb1";
|
||||
};
|
||||
|
||||
x86_64-darwin = rec {
|
||||
arch = "x86_64";
|
||||
archSuffix = "x86-64";
|
||||
url = "https://download.documentfoundation.org/libreoffice/stable/${version}/mac/${arch}/LibreOffice_${version}_MacOS_${archSuffix}.dmg";
|
||||
sha256 = "017c64b6e2992db9cbb44f9b1fc3fd2ede3e332c8b481746b780b8a282f09692";
|
||||
sha256 = "f92ba40fdada173232fe929bf77973a1ffcccec55ae7971957a6de84d33f0f1e";
|
||||
};
|
||||
};
|
||||
in
|
||||
|
|
|
|||
|
|
@ -35,6 +35,7 @@ lib.extendMkDerivation {
|
|||
};
|
||||
|
||||
strictDeps = args.strictDeps or true;
|
||||
__structuredAttrs = args.__structuredAttrs or true;
|
||||
|
||||
nativeBuildInputs = args.nativeBuildInputs or [ ] ++ [
|
||||
dubSetupHook
|
||||
|
|
@ -58,10 +59,12 @@ lib.extendMkDerivation {
|
|||
preFixup = ''
|
||||
${args.preFixup or ""}
|
||||
|
||||
find "$out" -type f -exec remove-references-to -t ${compiler} '{}' +
|
||||
find "$out" -type f -exec remove-references-to ${
|
||||
lib.concatMapStringsSep " " (output: "-t ${output}") compiler.all
|
||||
} '{}' +
|
||||
'';
|
||||
|
||||
disallowedReferences = args.disallowedReferences or [ compiler ];
|
||||
disallowedReferences = args.disallowedReferences or compiler.all;
|
||||
|
||||
meta = {
|
||||
platforms = dub.meta.platforms;
|
||||
|
|
|
|||
|
|
@ -13,10 +13,11 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
|
||||
src = fetchurl {
|
||||
url = "http://abella-prover.org/distributions/abella-${finalAttrs.version}.tar.gz";
|
||||
sha256 = "sha256-80b/RUpE3KRY0Qu8eeTxAbk6mwGG6jVTPOP0qFjyj2M=";
|
||||
hash = "sha256-80b/RUpE3KRY0Qu8eeTxAbk6mwGG6jVTPOP0qFjyj2M=";
|
||||
};
|
||||
|
||||
strictDeps = true;
|
||||
__structuredAttrs = true;
|
||||
|
||||
nativeBuildInputs = [
|
||||
rsync
|
||||
|
|
@ -27,7 +27,7 @@ stdenvNoCC.mkDerivation rec {
|
|||
description = "Aurulent Sans";
|
||||
longDescription = "Aurulent Sans is a humanist sans serif intended to be used as an interface font.";
|
||||
homepage = "http://delubrum.org/";
|
||||
maintainers = with lib.maintainers; [ deepfire ];
|
||||
maintainers = with lib.maintainers; [ pancaek ];
|
||||
license = lib.licenses.ofl;
|
||||
platforms = lib.platforms.all;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -116,12 +116,12 @@ in
|
|||
|
||||
stdenv'.mkDerivation (finalAttrs: {
|
||||
pname = "blender";
|
||||
version = "5.1.1";
|
||||
version = "5.1.2";
|
||||
|
||||
src = fetchzip {
|
||||
name = "source";
|
||||
url = "https://download.blender.org/source/blender-${finalAttrs.version}.tar.xz";
|
||||
hash = "sha256-iJolR8iS2go0doO96ibyseCeMunFL+XPoQ25NbX6oOA=";
|
||||
hash = "sha256-FnReSNsP8U1/4jSgZN3cMQV2qkP7OZPh0f/9JA1lAxs=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
|
|
|||
|
|
@ -1,24 +0,0 @@
|
|||
diff --git a/mumbleBot.py b/mumbleBot.py
|
||||
index 11bc480..7395f41 100644
|
||||
--- a/mumbleBot.py
|
||||
+++ b/mumbleBot.py
|
||||
@@ -188,11 +188,14 @@ class MumbleBot:
|
||||
th.start()
|
||||
|
||||
last_startup_version = var.db.get("bot", "version", fallback=None)
|
||||
- if not last_startup_version or version.parse(last_startup_version) < version.parse(self.version):
|
||||
- var.db.set("bot", "version", self.version)
|
||||
- if var.config.getboolean("bot", "auto_check_update"):
|
||||
- changelog = util.fetch_changelog()
|
||||
- self.send_channel_msg(tr("update_successful", version=self.version, changelog=changelog))
|
||||
+ try:
|
||||
+ if not last_startup_version or version.parse(last_startup_version) < version.parse(self.version):
|
||||
+ var.db.set("bot", "version", self.version)
|
||||
+ if var.config.getboolean("bot", "auto_check_update"):
|
||||
+ changelog = util.fetch_changelog()
|
||||
+ self.send_channel_msg(tr("update_successful", version=self.version, changelog=changelog))
|
||||
+ except version.InvalidVersion:
|
||||
+ pass
|
||||
|
||||
# Set the CTRL+C shortcut
|
||||
def ctrl_caught(self, signal, frame):
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
diff --git a/util.py b/util.py
|
||||
index bfec1ed..5147757 100644
|
||||
--- a/util.py
|
||||
+++ b/util.py
|
||||
@@ -132,6 +132,7 @@ def check_update(current_version):
|
||||
|
||||
|
||||
def update(current_version):
|
||||
+ return "Can't update Nix installation at runtime"
|
||||
global log
|
||||
|
||||
target = var.config.get('bot', 'target_version')
|
||||
|
|
@ -1,167 +0,0 @@
|
|||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
python3Packages,
|
||||
ffmpeg-headless,
|
||||
makeWrapper,
|
||||
nixosTests,
|
||||
nodejs,
|
||||
npmHooks,
|
||||
fetchNpmDeps,
|
||||
|
||||
# For the update script
|
||||
coreutils,
|
||||
curl,
|
||||
nix-prefetch-git,
|
||||
prefetch-npm-deps,
|
||||
jq,
|
||||
writeShellScript,
|
||||
}:
|
||||
let
|
||||
srcJson = lib.importJSON ./src.json;
|
||||
src = fetchFromGitHub {
|
||||
owner = "azlux";
|
||||
repo = "botamusique";
|
||||
inherit (srcJson) rev sha256;
|
||||
};
|
||||
|
||||
# Python needed to instantiate the html templates
|
||||
buildPython = python3Packages.python.withPackages (ps: [ ps.jinja2 ]);
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "botamusique";
|
||||
version = srcJson.version;
|
||||
|
||||
inherit src;
|
||||
|
||||
npmDeps = fetchNpmDeps {
|
||||
src = "${src}/web";
|
||||
hash = srcJson.npmDepsHash;
|
||||
};
|
||||
|
||||
npmRoot = "web";
|
||||
|
||||
patches = [
|
||||
# botamusique by default resolves relative state paths by first checking
|
||||
# whether it exists in the working directory, then falls back to using the
|
||||
# installation directory. With Nix however, the installation directory is
|
||||
# not writable, so that won't work. So we change this so that it uses
|
||||
# relative paths unconditionally, whether they exist or not.
|
||||
./unconditional-relative-state-paths.patch
|
||||
|
||||
# We can't update the package at runtime with NixOS, so this patch makes
|
||||
# the !update command mention that
|
||||
./no-runtime-update.patch
|
||||
|
||||
# Fix passing of invalid "git" version into version.parse, which results
|
||||
# in an InvalidVersion exception. The upstream fix is insufficient, so
|
||||
# we carry the correct patch downstream for now.
|
||||
./catch-invalid-versions.patch
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
# However, the function that's patched above is also used for
|
||||
# configuration.default.ini, which is in the installation directory
|
||||
# after all. So we need to counter-patch it here so it can find it absolutely
|
||||
substituteInPlace mumbleBot.py \
|
||||
--replace "configuration.default.ini" "$out/share/botamusique/configuration.default.ini" \
|
||||
--replace "version = 'git'" "version = '${version}'"
|
||||
'';
|
||||
|
||||
env.NODE_OPTIONS = "--openssl-legacy-provider";
|
||||
|
||||
nativeBuildInputs = [
|
||||
makeWrapper
|
||||
nodejs
|
||||
npmHooks.npmConfigHook
|
||||
python3Packages.wrapPython
|
||||
];
|
||||
|
||||
pythonPath = with python3Packages; [
|
||||
audioop-lts
|
||||
flask
|
||||
magic
|
||||
mutagen
|
||||
packaging
|
||||
pillow
|
||||
pymumble
|
||||
pyradios
|
||||
requests
|
||||
yt-dlp
|
||||
];
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
|
||||
# Generates artifacts in ./static
|
||||
(
|
||||
cd web
|
||||
npm run build
|
||||
)
|
||||
|
||||
# Fills out http templates
|
||||
${buildPython}/bin/python scripts/translate_templates.py --lang-dir lang/ --template-dir templates/
|
||||
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out/share $out/bin
|
||||
cp -r . $out/share/botamusique
|
||||
chmod +x $out/share/botamusique/mumbleBot.py
|
||||
wrapPythonProgramsIn $out/share/botamusique "$out ''${pythonPath[*]}"
|
||||
|
||||
# Convenience binary and wrap with ffmpeg dependency
|
||||
makeWrapper $out/share/botamusique/mumbleBot.py $out/bin/botamusique \
|
||||
--prefix PATH : ${lib.makeBinPath [ ffmpeg-headless ]}
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
passthru.updateScript = writeShellScript "botamusique-updater" ''
|
||||
export PATH=${
|
||||
lib.makeBinPath [
|
||||
coreutils
|
||||
curl
|
||||
nix-prefetch-git
|
||||
jq
|
||||
prefetch-npm-deps
|
||||
]
|
||||
}
|
||||
set -ex
|
||||
|
||||
OWNER=azlux
|
||||
REPO=botamusique
|
||||
VERSION="$(curl https://api.github.com/repos/$OWNER/$REPO/releases/latest | jq -r '.tag_name')"
|
||||
|
||||
nix-prefetch-git --rev "$VERSION" --url https://github.com/$OWNER/$REPO | \
|
||||
jq > "${toString ./src.json}" \
|
||||
--arg version "$VERSION" \
|
||||
'.version |= $version'
|
||||
path="$(jq '.path' -r < "${toString ./src.json}")"
|
||||
|
||||
tmp="$(mktemp -d)"
|
||||
trap 'rm -rf "$tmp"' exit
|
||||
|
||||
npmHash="$(prefetch-npm-deps $path/web/package-lock.json)"
|
||||
jq '. + { npmDepsHash: "'"$npmHash"'" }' < "${toString ./src.json}" > "$tmp/src.json"
|
||||
mv "$tmp/src.json" "${toString ./src.json}"
|
||||
'';
|
||||
|
||||
passthru.tests = {
|
||||
inherit (nixosTests) botamusique;
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "Bot to play youtube / soundcloud / radio / local music on Mumble";
|
||||
homepage = "https://github.com/azlux/botamusique";
|
||||
license = lib.licenses.mit;
|
||||
platforms = lib.platforms.all;
|
||||
maintainers = [ ];
|
||||
mainProgram = "botamusique";
|
||||
};
|
||||
}
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
{
|
||||
"url": "https://github.com/azlux/botamusique",
|
||||
"rev": "9b9b4e40ce7b077ebfa3b9be08d32025d1e43bc3",
|
||||
"date": "2021-10-27T02:29:59+02:00",
|
||||
"path": "/nix/store/9gxn2bw0757yrmx0xhhwq642lixyy88x-botamusique",
|
||||
"sha256": "07n6nyi84ddqp2x8xrds7q83yfqapl5qhkcprzjsmvxhv4a3ar8q",
|
||||
"fetchLFS": false,
|
||||
"fetchSubmodules": false,
|
||||
"deepClone": false,
|
||||
"leaveDotGit": false,
|
||||
"version": "7.2.2",
|
||||
"npmDepsHash": "sha256-IzEO7TFqIZUkhNGf0pnHbK/WFexF27RPD9lkYvmFmDw="
|
||||
}
|
||||
|
|
@ -1,22 +0,0 @@
|
|||
diff --git a/util.py b/util.py
|
||||
index bfec1ed..0546772 100644
|
||||
--- a/util.py
|
||||
+++ b/util.py
|
||||
@@ -22,16 +22,7 @@ log = logging.getLogger("bot")
|
||||
|
||||
|
||||
def solve_filepath(path):
|
||||
- if not path:
|
||||
- return ''
|
||||
-
|
||||
- if path[0] == '/':
|
||||
- return path
|
||||
- elif os.path.exists(path):
|
||||
- return path
|
||||
- else:
|
||||
- mydir = os.path.dirname(os.path.realpath(__file__))
|
||||
- return mydir + '/' + path
|
||||
+ return path
|
||||
|
||||
|
||||
def get_recursive_file_list_sorted(path):
|
||||
|
|
@ -8,15 +8,15 @@
|
|||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "cargo-shear";
|
||||
version = "1.12.4";
|
||||
version = "1.13.1";
|
||||
|
||||
src = fetchCrate {
|
||||
pname = "cargo-shear";
|
||||
version = finalAttrs.version;
|
||||
hash = "sha256-nYAZfUh0ZMU0H+Eb5DOHvENCtDWiCLhzuEB3MFAKWpc=";
|
||||
hash = "sha256-Luf6/kG0MgnBDyMLZGUSadPI60DOx5Jra3I3ezOGM4w=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-xJGITXhC02nOky5P5gzUHAmVyiolchcVofDiaHEX14o=";
|
||||
cargoHash = "sha256-d+3ZfygD4CzHLgT45KcCw2rr313eVO7PhGZpgJpbxW8=";
|
||||
|
||||
env = {
|
||||
# https://github.com/Boshen/cargo-shear/blob/v1.6.2/src/lib.rs#L51-L54
|
||||
|
|
|
|||
|
|
@ -85,7 +85,7 @@ stdenv.mkDerivation rec {
|
|||
meta = {
|
||||
homepage = "http://pogostick.net/~pnh/ntpasswd/";
|
||||
description = "Utility to reset the password of any user that has a valid local account on a Windows system";
|
||||
maintainers = with lib.maintainers; [ deepfire ];
|
||||
maintainers = [ ];
|
||||
license = lib.licenses.gpl2Only;
|
||||
platforms = lib.platforms.unix;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -6,14 +6,14 @@
|
|||
|
||||
python3Packages.buildPythonApplication (finalAttrs: {
|
||||
pname = "claude-monitor";
|
||||
version = "3.1.0";
|
||||
version = "4.0.0";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Maciek-roboblog";
|
||||
repo = "Claude-Code-Usage-Monitor";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-v5ooniaN1iVerBW77/00SpghIVE1j8cl2WENcPnS66M=";
|
||||
hash = "sha256-f/g8OygQYYfZqboTNePwCW3OxcH/wlvsHvL8Cv+iyCU=";
|
||||
};
|
||||
|
||||
build-system = with python3Packages; [ setuptools ];
|
||||
|
|
@ -25,6 +25,7 @@ python3Packages.buildPythonApplication (finalAttrs: {
|
|||
pyyaml
|
||||
pytz
|
||||
rich
|
||||
wcwidth
|
||||
];
|
||||
|
||||
# Tests require Claude API access and local data files
|
||||
|
|
@ -39,7 +40,7 @@ python3Packages.buildPythonApplication (finalAttrs: {
|
|||
and get intelligent predictions about session limits.
|
||||
'';
|
||||
homepage = "https://github.com/Maciek-roboblog/Claude-Code-Usage-Monitor";
|
||||
changelog = "https://github.com/Maciek-roboblog/Claude-Code-Usage-Monitor/blob/v${finalAttrs.version}/CHANGELOG.md";
|
||||
changelog = "https://github.com/Maciek-roboblog/Claude-Code-Usage-Monitor/blob/${finalAttrs.src.tag}/CHANGELOG.md";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ iamanaws ];
|
||||
mainProgram = "claude-monitor";
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import ./generic.nix {
|
||||
version = "26.5.2.39-stable";
|
||||
rev = "8462fd8f3dea8603e67666414b2781ab57a8adb6";
|
||||
hash = "sha256-lbVveT6cFT9ZhSl+0qh3NhtO4FHakFWDBJd757J8WJg=";
|
||||
version = "26.6.1.1193-stable";
|
||||
rev = "6615864161fd5332edfcb2864658bd9ccc65197b";
|
||||
hash = "sha256-S+JJ/bOziG6w+9GSe+KDT2GliL3osRf4Y+WI8x5n2CI=";
|
||||
lts = false;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,16 +7,16 @@
|
|||
}:
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "cloudflare-dynamic-dns";
|
||||
version = "4.4.5";
|
||||
version = "4.5.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "zebradil";
|
||||
repo = "cloudflare-dynamic-dns";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-TIun4EZuk4lgtNiNRA8P0x3+hkh3UFMVMUa75YecUk0=";
|
||||
hash = "sha256-4QbgtzzPUzDQqPTiKMnA0/MNovDTJD+sm3u3Zorn6f4=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-Pu73TKBgEgLhUktnY4o/fR4KBLT2s2CUGFSf2Jo3SbQ=";
|
||||
vendorHash = "sha256-qcJZp86ZBYrL3bWO94H2yba95oAqyYp57eRcC8U1Xog=";
|
||||
|
||||
subPackages = ".";
|
||||
|
||||
|
|
|
|||
|
|
@ -1,13 +1,17 @@
|
|||
{
|
||||
lib,
|
||||
stdenv,
|
||||
bash,
|
||||
fetchFromGitHub,
|
||||
gnumake,
|
||||
fetchNpmDeps,
|
||||
nodejs,
|
||||
npmHooks,
|
||||
stdenv,
|
||||
zlib,
|
||||
}:
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "codebase-memory-mcp";
|
||||
version = "0.8.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "DeusData";
|
||||
repo = "codebase-memory-mcp";
|
||||
|
|
@ -15,19 +19,47 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
hash = "sha256-H0l8H2JhPT1Rs0p+CJC1a1qYtnZNgLGe6n7PmM+WvE4=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ gnumake ];
|
||||
patches = [
|
||||
./remove-install-update.diff
|
||||
];
|
||||
|
||||
buildInputs = [ zlib ];
|
||||
postPatch = ''
|
||||
substituteInPlace Makefile.cbm \
|
||||
--replace-fail "npm ci &&" ""
|
||||
|
||||
substituteInPlace scripts/embed-frontend.sh \
|
||||
--replace-fail "/bin/bash" "${bash}/bin/bash"
|
||||
'';
|
||||
|
||||
npmDeps = fetchNpmDeps {
|
||||
inherit (finalAttrs) src;
|
||||
sourceRoot = "${finalAttrs.src.name}/${finalAttrs.npmRoot}";
|
||||
hash = "sha256-feoZNsZfrPgoLdjlnnh3w3vTxR6AwPdUkPubaR93TAk=";
|
||||
};
|
||||
|
||||
npmRoot = "graph-ui";
|
||||
|
||||
nativeBuildInputs = [
|
||||
nodejs
|
||||
npmHooks.npmConfigHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
bash
|
||||
zlib
|
||||
];
|
||||
|
||||
strictDeps = true;
|
||||
__structuredAttrs = true;
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
makefile = "Makefile.cbm";
|
||||
|
||||
# scripts/build.sh verifies CC via `file`, which fails on Nix's compiler wrapper.
|
||||
# Call make directly — mirrors upstream flake.nix.
|
||||
makeFlags = [
|
||||
"cbm"
|
||||
"cbm-with-ui"
|
||||
"CFLAGS_EXTRA='-DCBM_VERSION=\"${finalAttrs.version}\"'"
|
||||
];
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,30 @@
|
|||
diff --git a/src/main.c b/src/main.c
|
||||
index f2b72cb..1663138 100644
|
||||
--- a/src/main.c
|
||||
+++ b/src/main.c
|
||||
@@ -284,9 +284,6 @@ static void print_help(void) {
|
||||
printf("Usage:\n");
|
||||
printf(" codebase-memory-mcp Run MCP server on stdio\n");
|
||||
printf(" codebase-memory-mcp cli <tool> [json] Run a single tool\n");
|
||||
- printf(" codebase-memory-mcp install [-y|-n] [--force] [--dry-run]\n");
|
||||
- printf(" codebase-memory-mcp uninstall [-y|-n] [--dry-run]\n");
|
||||
- printf(" codebase-memory-mcp update [-y|-n]\n");
|
||||
printf(" codebase-memory-mcp config <list|get|set|reset>\n");
|
||||
printf(" codebase-memory-mcp --version Print version\n");
|
||||
printf(" codebase-memory-mcp --help Print this help\n");
|
||||
@@ -331,15 +328,6 @@ static int handle_subcommand(int argc, char **argv) {
|
||||
cbm_mem_init(MAIN_RAM_FRACTION);
|
||||
return cbm_cmd_hook_augment();
|
||||
}
|
||||
- if (strcmp(argv[i], "install") == 0) {
|
||||
- return cbm_cmd_install(argc - i - SKIP_ONE, argv + i + SKIP_ONE);
|
||||
- }
|
||||
- if (strcmp(argv[i], "uninstall") == 0) {
|
||||
- return cbm_cmd_uninstall(argc - i - SKIP_ONE, argv + i + SKIP_ONE);
|
||||
- }
|
||||
- if (strcmp(argv[i], "update") == 0) {
|
||||
- return cbm_cmd_update(argc - i - SKIP_ONE, argv + i + SKIP_ONE);
|
||||
- }
|
||||
if (strcmp(argv[i], "config") == 0) {
|
||||
return cbm_cmd_config(argc - i - SKIP_ONE, argv + i + SKIP_ONE);
|
||||
}
|
||||
|
|
@ -1,32 +1,53 @@
|
|||
{
|
||||
lib,
|
||||
organicmaps,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
fetchurl,
|
||||
fetchFromCodeberg,
|
||||
cmake,
|
||||
boost,
|
||||
expat,
|
||||
gtest,
|
||||
glm,
|
||||
getopt,
|
||||
gflags,
|
||||
glm,
|
||||
gtest,
|
||||
icu,
|
||||
imgui,
|
||||
jansson,
|
||||
libxcursor,
|
||||
libxinerama,
|
||||
libxrandr,
|
||||
ninja,
|
||||
pkg-config,
|
||||
pugixml,
|
||||
python3,
|
||||
qt6,
|
||||
optipng,
|
||||
utf8cpp,
|
||||
which,
|
||||
nix-update-script,
|
||||
}:
|
||||
let
|
||||
# https://codeberg.org/comaps/comaps/src/branch/main/data/countries.txt
|
||||
mapRev = 260321;
|
||||
world_feed_integration_tests_data = fetchFromGitHub {
|
||||
owner = "organicmaps";
|
||||
repo = "world_feed_integration_tests_data";
|
||||
rev = "30ecb0b3fe694a582edfacc2a7425b6f01f9fec6";
|
||||
hash = "sha256-1FF658OhKg8a5kKX/7TVmsxZ9amimn4lB6bX9i7pnI4=";
|
||||
};
|
||||
|
||||
# Update mapRev here based on v field near the top in https://codeberg.org/comaps/comaps/src/branch/main/data/countries.txt
|
||||
mapRev = 260603;
|
||||
|
||||
worldMap = fetchurl {
|
||||
name = "World-${toString mapRev}.mwm";
|
||||
url = "https://cdn-fi-1.comaps.app/maps/${toString mapRev}/World.mwm";
|
||||
hash = "sha256-pMmzPcWbS9drQzJCfiac2dfSMihiHDfhFyG5ux0pG54=";
|
||||
hash = "sha256-1cq2gDiqeybA7VxjuSUFnlLagdZipdWiuAy5QI1LdZE=";
|
||||
};
|
||||
|
||||
worldCoasts = fetchurl {
|
||||
name = "WorldCoasts-${toString mapRev}.mwm";
|
||||
url = "https://cdn-fi-1.comaps.app/maps/${toString mapRev}/WorldCoasts.mwm";
|
||||
hash = "sha256-5LI6itC6LhprVfgGbT/HYy1lzZLZLUe2QoSil0/7kIc=";
|
||||
hash = "sha256-MLRUPEXvXW2GqYdlxfhS5ODRiiWya4i2U+mpXnqc6rY=";
|
||||
};
|
||||
|
||||
pythonEnv = python3.withPackages (
|
||||
|
|
@ -35,26 +56,27 @@ let
|
|||
]
|
||||
);
|
||||
in
|
||||
organicmaps.overrideAttrs (oldAttrs: rec {
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "comaps";
|
||||
version = "2026.03.23-5";
|
||||
version = "2026.06.05-11";
|
||||
|
||||
src = fetchFromCodeberg {
|
||||
owner = "comaps";
|
||||
repo = "comaps";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-1bD0QiEZu6nB7wwBpfpEf+WypqbOd9XuXbq7FDTL7bw=";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-W05fZT82H78TqlH4MFaIexX1LYhjATYL1E6e0WCYrBI=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
patches = [
|
||||
./use-vendored-protobuf.patch
|
||||
|
||||
# Include missing editor_tests_support.
|
||||
./fix-editor-tests.patch
|
||||
];
|
||||
|
||||
postPatch = (oldAttrs.postPatch or "") + ''
|
||||
postPatch = ''
|
||||
patchShebangs 3party/boost/tools/build/src/engine/build.sh
|
||||
|
||||
ln -s ${world_feed_integration_tests_data} data/test_data/world_feed_integration_tests_data
|
||||
|
||||
rm -f 3party/boost/b2
|
||||
substituteInPlace configure.sh \
|
||||
--replace-fail "git submodule update --init --recursive --depth 1" ""
|
||||
|
|
@ -64,19 +86,34 @@ organicmaps.overrideAttrs (oldAttrs: rec {
|
|||
--replace-fail "/usr/bin/env python3" "${pythonEnv.interpreter}"
|
||||
'';
|
||||
|
||||
nativeBuildInputs = (builtins.filter (x: x != python3) oldAttrs.nativeBuildInputs or [ ]) ++ [
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
ninja
|
||||
getopt
|
||||
which
|
||||
pkg-config
|
||||
pythonEnv
|
||||
qt6.wrapQtAppsHook
|
||||
optipng
|
||||
];
|
||||
|
||||
buildInputs = (oldAttrs.buildInputs or [ ]) ++ [
|
||||
buildInputs = [
|
||||
qt6.qtbase
|
||||
qt6.qtpositioning
|
||||
qt6.qtsvg
|
||||
|
||||
boost
|
||||
expat
|
||||
gtest
|
||||
gflags
|
||||
glm
|
||||
icu
|
||||
imgui
|
||||
jansson
|
||||
libxcursor
|
||||
libxinerama
|
||||
libxrandr
|
||||
pugixml
|
||||
utf8cpp
|
||||
];
|
||||
|
||||
|
|
@ -85,6 +122,7 @@ organicmaps.overrideAttrs (oldAttrs: rec {
|
|||
'';
|
||||
|
||||
cmakeFlags = [
|
||||
(lib.cmakeBool "SKIP_TESTS" false)
|
||||
(lib.cmakeBool "WITH_SYSTEM_PROVIDED_3PARTY" true)
|
||||
];
|
||||
|
||||
|
|
@ -98,7 +136,6 @@ organicmaps.overrideAttrs (oldAttrs: rec {
|
|||
postInstall = ''
|
||||
install -Dm644 ${worldMap} $out/share/comaps/data/World.mwm
|
||||
install -Dm644 ${worldCoasts} $out/share/comaps/data/WorldCoasts.mwm
|
||||
ln -s $out/bin/CoMaps $out/bin/comaps
|
||||
'';
|
||||
|
||||
passthru.updateScript = nix-update-script {
|
||||
|
|
@ -108,11 +145,14 @@ organicmaps.overrideAttrs (oldAttrs: rec {
|
|||
];
|
||||
};
|
||||
|
||||
meta = oldAttrs.meta // {
|
||||
meta = {
|
||||
broken = stdenv.hostPlatform.isDarwin;
|
||||
description = "Community-led fork of Organic Maps";
|
||||
homepage = "https://comaps.app";
|
||||
changelog = "https://codeberg.org/comaps/comaps/releases/tag/v${version}";
|
||||
changelog = "https://codeberg.org/comaps/comaps/releases/tag/v${finalAttrs.version}";
|
||||
license = lib.licenses.asl20;
|
||||
maintainers = [ lib.maintainers.ryand56 ];
|
||||
mainProgram = "comaps";
|
||||
platforms = lib.platforms.unix;
|
||||
mainProgram = "CoMaps";
|
||||
};
|
||||
})
|
||||
|
|
|
|||
|
|
@ -1,21 +1,21 @@
|
|||
diff --git a/3party/CMakeLists.txt b/3party/CMakeLists.txt
|
||||
index dd851d7d..1b4e3ed3 100644
|
||||
index 2146a5fdcf..9fc67abfb3 100644
|
||||
--- a/3party/CMakeLists.txt
|
||||
+++ b/3party/CMakeLists.txt
|
||||
@@ -41,9 +41,6 @@ if (NOT WITH_SYSTEM_PROVIDED_3PARTY)
|
||||
@@ -41,9 +41,6 @@
|
||||
# Add pugixml library.
|
||||
add_subdirectory(pugixml)
|
||||
|
||||
|
||||
- # Add protobuf library.
|
||||
- add_subdirectory(protobuf)
|
||||
-
|
||||
if (NOT PLATFORM_LINUX)
|
||||
add_subdirectory(freetype)
|
||||
add_subdirectory(icu)
|
||||
@@ -55,6 +52,9 @@ if (NOT WITH_SYSTEM_PROVIDED_3PARTY)
|
||||
@@ -55,6 +52,9 @@
|
||||
target_include_directories(utf8cpp INTERFACE "${OMIM_ROOT}/3party/utfcpp/source")
|
||||
endif()
|
||||
|
||||
|
||||
+# Add protobuf library.
|
||||
+add_subdirectory(protobuf)
|
||||
+
|
||||
|
|
@ -23,13 +23,13 @@ index dd851d7d..1b4e3ed3 100644
|
|||
add_subdirectory(bsdiff-courgette)
|
||||
add_subdirectory(glaze)
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 3ba193a9..dd2df855 100644
|
||||
index 096d31389e..c6e4aabdeb 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -225,25 +225,6 @@ endif()
|
||||
# Used in qt/ and shaders/
|
||||
find_package(Python3 REQUIRED COMPONENTS Interpreter)
|
||||
|
||||
@@ -212,26 +212,6 @@
|
||||
message(STATUS "==> Python Virtual Environment detected : ${PYTHON_VENV_PATH}" " ==> " "Using python command: ${Python3_EXECUTABLE}" )
|
||||
endif()
|
||||
|
||||
-execute_process(
|
||||
- COMMAND ${Python3_EXECUTABLE} -c "import google.protobuf;
|
||||
-print(google.protobuf.__version__)"
|
||||
|
|
@ -40,15 +40,16 @@ index 3ba193a9..dd2df855 100644
|
|||
-)
|
||||
-
|
||||
-if(PROTOBUF_CHECK EQUAL 0)
|
||||
- if(PROTOBUF_VERSION VERSION_LESS "4.0.0")
|
||||
- message(STATUS "Python protobuf ${PROTOBUF_VERSION} found (< 4.0)")
|
||||
- if(PROTOBUF_VERSION VERSION_LESS "3.20.0" OR PROTOBUF_VERSION VERSION_GREATER_EQUAL "4.0.0")
|
||||
- message(FATAL_ERROR "Python protobuf ${PROTOBUF_VERSION} found, but version (>=3.20, <4.0) is required")
|
||||
- else()
|
||||
- message(FATAL_ERROR "Python protobuf ${PROTOBUF_VERSION} found, but version < 4.0 required")
|
||||
- message(STATUS "Python protobuf ${PROTOBUF_VERSION} found (>=3.20, <4.0)")
|
||||
- endif()
|
||||
-else()
|
||||
- message(FATAL_ERROR "Python protobuf not found. Install version <4.0")
|
||||
- message(FATAL_ERROR "Python protobuf not found. Install version (>=3.20, <4.0)")
|
||||
-endif()
|
||||
-
|
||||
|
||||
-
|
||||
add_subdirectory(libs)
|
||||
|
||||
|
||||
if (PLATFORM_DESKTOP)
|
||||
|
|
|
|||
|
|
@ -29,16 +29,16 @@
|
|||
let
|
||||
self = rustPlatform.buildRustPackage {
|
||||
pname = "czkawka";
|
||||
version = "11.0.1";
|
||||
version = "12.0.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "qarmin";
|
||||
repo = "czkawka";
|
||||
tag = self.version;
|
||||
hash = "sha256-ke6N3vuKPGolfh6XpAg3/9dtwd09eX53fN2klUwwNwQ=";
|
||||
hash = "sha256-KbGcaeQcpf2IL3I2PmsBpg8n+IfSuJl5tkLOxNCtYaQ=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-fx2ZH4I2WYCdMgNoKQuBBEJrPjmgTRPeVM2L+TWYn54=";
|
||||
cargoHash = "sha256-+1K2a64XcbBePiQ/LeaSVCU/Ih0Fr4EjzNU5xpzfz2Q=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
gobject-introspection
|
||||
|
|
|
|||
|
|
@ -32,13 +32,13 @@
|
|||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "deskflow";
|
||||
version = "1.25.0";
|
||||
version = "1.26.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "deskflow";
|
||||
repo = "deskflow";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-IclKXYCvYHMK4e1z1efmOHUaJqnmZgofK5r6Ml+i5OI=";
|
||||
hash = "sha256-XcSG47Ysjn+wrJH5DC/XXGXcneXcW7xIhAn6sguuv+s=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
|
|
|||
|
|
@ -1,44 +0,0 @@
|
|||
diff --git a/XOptions/xoptions.cpp b/XOptions/xoptions.cpp
|
||||
index 8c887c3..36cdbc3 100755
|
||||
--- a/XOptions/xoptions.cpp
|
||||
+++ b/XOptions/xoptions.cpp
|
||||
@@ -1754,14 +1754,7 @@ bool XOptions::checkNative(const QString &sIniFileName)
|
||||
#if defined(Q_OS_MAC)
|
||||
bResult = true;
|
||||
#elif defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD)
|
||||
- QString sApplicationDirPath = qApp->applicationDirPath();
|
||||
-
|
||||
- if ((sApplicationDirPath == "/bin") || (sApplicationDirPath == "/usr/bin") || (sApplicationDirPath == "/usr/local/bin") || (sApplicationDirPath == "/app/bin") ||
|
||||
- (sApplicationDirPath.contains("/usr/local/bin$")) || isAppImage()) {
|
||||
- bResult = true;
|
||||
- } else {
|
||||
- bResult = false;
|
||||
- }
|
||||
+ bResult = true;
|
||||
#elif defined(Q_OS_WIN)
|
||||
QString sApplicationDirPath = qApp->applicationDirPath();
|
||||
|
||||
@@ -1788,22 +1781,7 @@ QString XOptions::getApplicationDataPath()
|
||||
#ifdef Q_OS_MAC
|
||||
sResult = sApplicationDirPath + "/../Resources";
|
||||
#elif defined(Q_OS_LINUX)
|
||||
- if (isNative()) {
|
||||
- if (sApplicationDirPath.contains("/usr/local/bin$")) {
|
||||
- QString sPrefix = sApplicationDirPath.section("/usr/local/bin", 0, 0);
|
||||
-
|
||||
- sResult += sPrefix + QString("/usr/local/lib/%1").arg(qApp->applicationName());
|
||||
- } else {
|
||||
- if (sApplicationDirPath.contains("/tmp/.mount_")) // AppImage
|
||||
- {
|
||||
- sResult = sApplicationDirPath.section("/", 0, 2);
|
||||
- }
|
||||
-
|
||||
- sResult += QString("/usr/lib/%1").arg(qApp->applicationName());
|
||||
- }
|
||||
- } else {
|
||||
- sResult = sApplicationDirPath;
|
||||
- }
|
||||
+ sResult = sApplicationDirPath + "/../lib/die";
|
||||
#elif defined(Q_OS_FREEBSD)
|
||||
sResult = QStandardPaths::standardLocations(QStandardPaths::GenericDataLocation).at(1) + QDir::separator() + qApp->applicationName();
|
||||
#else
|
||||
|
|
@ -13,17 +13,31 @@
|
|||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "detect-it-easy";
|
||||
version = "3.10";
|
||||
version = "3.21";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "horsicq";
|
||||
repo = "DIE-engine";
|
||||
tag = finalAttrs.version;
|
||||
fetchSubmodules = true;
|
||||
hash = "sha256-yHgxYig5myY2nExweUk2muKbJTKN3SiwOLgQcMIY/BQ=";
|
||||
hash = "sha256-gst0suw5mNR3A0s/jIfte41cOOxKR0IsTFkO7ydwKMs=";
|
||||
};
|
||||
|
||||
patches = [ ./0001-remove-hard-coded-paths-in-xoptions.patch ];
|
||||
postPatch = ''
|
||||
# Convert CRLF to LF so substituteInPlace works
|
||||
tr -d '\r' < XOptions/xoptions.cpp > XOptions/xoptions.cpp.tmp
|
||||
mv XOptions/xoptions.cpp.tmp XOptions/xoptions.cpp
|
||||
|
||||
substituteInPlace XOptions/xoptions.cpp \
|
||||
--replace-fail 'QString XOptions::getApplicationDataPath()
|
||||
{
|
||||
QString sResult;' 'QString XOptions::getApplicationDataPath()
|
||||
{
|
||||
#if defined(Q_OS_LINUX)
|
||||
return qApp->applicationDirPath() + "/../lib/die";
|
||||
#endif
|
||||
QString sResult;'
|
||||
'';
|
||||
|
||||
buildInputs = [
|
||||
libsForQt5.qtbase
|
||||
|
|
|
|||
|
|
@ -0,0 +1,97 @@
|
|||
From fade8d04bfdbf473f3930feba7183957372e7fa7 Mon Sep 17 00:00:00 2001
|
||||
From: Michael Daniels <mdaniels5757@gmail.com>
|
||||
Date: Sun, 28 Jun 2026 16:20:43 -0400
|
||||
Subject: [PATCH] fix tests with zipdetails 4.006
|
||||
|
||||
---
|
||||
tests/comparators/test_zip.py | 3 ++-
|
||||
tests/data/zip2_zipdetails_expected_diff | 2 +-
|
||||
tests/data/zip_zipdetails_expected_diff | 10 +++++-----
|
||||
3 files changed, 8 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/tests/comparators/test_zip.py b/tests/comparators/test_zip.py
|
||||
index 75ec38be..ecff1930 100644
|
||||
--- a/tests/comparators/test_zip.py
|
||||
+++ b/tests/comparators/test_zip.py
|
||||
@@ -81,7 +81,7 @@ def differences2(zip1, zip3):
|
||||
|
||||
|
||||
@skip_unless_tools_exist("zipinfo", "zipdetails")
|
||||
-@skip_unless_tool_is_at_least("zipdetails", zipdetails_version, "4.004")
|
||||
+@skip_unless_tool_is_at_least("zipdetails", zipdetails_version, "4.006")
|
||||
@skip_unless_tool_is_at_least("perl", io_compress_zip_version, "2.212")
|
||||
def test_metadata(differences):
|
||||
assert_diff(differences[0], "zip_zipinfo_expected_diff")
|
||||
@@ -96,6 +96,7 @@ def test_compressed_files(differences):
|
||||
|
||||
|
||||
@skip_unless_tools_exist("zipinfo", "bsdtar", "zipdetails")
|
||||
+@skip_unless_tool_is_at_least("zipdetails", zipdetails_version, "4.006")
|
||||
@skip_unless_tool_is_at_least("perl", io_compress_zip_version, "2.212")
|
||||
def test_extra_fields(differences2):
|
||||
assert_diff(differences2[0], "zip_bsdtar_expected_diff")
|
||||
diff --git a/tests/data/zip2_zipdetails_expected_diff b/tests/data/zip2_zipdetails_expected_diff
|
||||
index 291dca88..281cf6c5 100644
|
||||
--- a/tests/data/zip2_zipdetails_expected_diff
|
||||
+++ b/tests/data/zip2_zipdetails_expected_diff
|
||||
@@ -5,7 +5,7 @@
|
||||
#
|
||||
0064 Extra ID #1 5455 (21589) 'Extended Timestamp [UT]'
|
||||
0066 Length 0009 (9)
|
||||
- 0068 Flags 03 (3) 'Modification Access'
|
||||
+ 0068 Flags 03 (3) 'Modification & Access'
|
||||
-0069 Modification Time 558AB455 (1435153493) 'Wed Jun 24 13:44:53 2015'
|
||||
-006D Access Time 558AB45F (1435153503) 'Wed Jun 24 13:45:03 2015'
|
||||
+0069 Modification Time 41414141 (1094795585) 'Fri Sep 10 05:53:05 2004'
|
||||
diff --git a/tests/data/zip_zipdetails_expected_diff b/tests/data/zip_zipdetails_expected_diff
|
||||
index 978c2583..50df2696 100644
|
||||
--- a/tests/data/zip_zipdetails_expected_diff
|
||||
+++ b/tests/data/zip_zipdetails_expected_diff
|
||||
@@ -23,7 +23,7 @@
|
||||
#
|
||||
0064 Extra ID #1 5455 (21589) 'Extended Timestamp [UT]'
|
||||
0066 Length 0009 (9)
|
||||
- 0068 Flags 03 (3) 'Modification Access'
|
||||
+ 0068 Flags 03 (3) 'Modification & Access'
|
||||
-0069 Modification Time 558AB455 (1435153493) 'Wed Jun 24 13:44:53 2015'
|
||||
+0069 Modification Time 558AB474 (1435153524) 'Wed Jun 24 13:45:24 2015'
|
||||
006D Access Time 558AB45F (1435153503) 'Wed Jun 24 13:45:03 2015'
|
||||
@@ -85,7 +85,7 @@
|
||||
#
|
||||
-01BF Extra ID #1 5455 (21589) 'Extended Timestamp [UT]'
|
||||
-01C1 Length 0005 (5)
|
||||
--01C3 Flags 03 (3) 'Modification Access'
|
||||
+-01C3 Flags 03 (3) 'Modification & Access'
|
||||
-01C4 Modification Time 558AB455 (1435153493) 'Wed Jun 24 13:44:53 2015'
|
||||
-01C8 Extra ID #2 7875 (30837) 'Unix Extra type 3 [ux]'
|
||||
-01CA Length 000B (11)
|
||||
@@ -96,7 +96,7 @@
|
||||
-01D3 GID 000003E8 (1000)
|
||||
+024E Extra ID #1 5455 (21589) 'Extended Timestamp [UT]'
|
||||
+0250 Length 0005 (5)
|
||||
-+0252 Flags 03 (3) 'Modification Access'
|
||||
++0252 Flags 03 (3) 'Modification & Access'
|
||||
+0253 Modification Time 558AB455 (1435153493) 'Wed Jun 24 13:44:53 2015'
|
||||
+0257 Extra ID #2 7875 (30837) 'Unix Extra type 3 [ux]'
|
||||
+0259 Length 000B (11)
|
||||
@@ -163,7 +163,7 @@
|
||||
#
|
||||
-020D Extra ID #1 5455 (21589) 'Extended Timestamp [UT]'
|
||||
-020F Length 0005 (5)
|
||||
--0211 Flags 03 (3) 'Modification Access'
|
||||
+-0211 Flags 03 (3) 'Modification & Access'
|
||||
-0212 Modification Time 558AB455 (1435153493) 'Wed Jun 24 13:44:53 2015'
|
||||
-0216 Extra ID #2 7875 (30837) 'Unix Extra type 3 [ux]'
|
||||
-0218 Length 000B (11)
|
||||
@@ -174,7 +174,7 @@
|
||||
-0221 GID 000003E8 (1000)
|
||||
+029C Extra ID #1 5455 (21589) 'Extended Timestamp [UT]'
|
||||
+029E Length 0005 (5)
|
||||
-+02A0 Flags 03 (3) 'Modification Access'
|
||||
++02A0 Flags 03 (3) 'Modification & Access'
|
||||
+02A1 Modification Time 558AB474 (1435153524) 'Wed Jun 24 13:45:24 2015'
|
||||
+02A5 Extra ID #2 7875 (30837) 'Unix Extra type 3 [ux]'
|
||||
+02A7 Length 000B (11)
|
||||
--
|
||||
2.54.0
|
||||
|
||||
|
|
@ -109,12 +109,12 @@ in
|
|||
# Note: when upgrading this package, please run the list-missing-tools.sh script as described below!
|
||||
python.pkgs.buildPythonApplication rec {
|
||||
pname = "diffoscope";
|
||||
version = "321";
|
||||
version = "322";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://diffoscope.org/archive/diffoscope-${version}.tar.bz2";
|
||||
hash = "sha256-M/rsyUGlJDpU3o1RMfaN9fNMpOn9Xpz2ydflPUXVhD4=";
|
||||
hash = "sha256-dina2JdbLL/jfo4eMuUo62KggST95w0b7oonY86zjgk=";
|
||||
};
|
||||
|
||||
outputs = [
|
||||
|
|
@ -126,6 +126,8 @@ python.pkgs.buildPythonApplication rec {
|
|||
./ignore_links.patch
|
||||
# Remove flags output from an OCaml test's diff, as it's Debian-specific
|
||||
./remove-flags-from-ocaml-diff.patch
|
||||
# https://salsa.debian.org/reproducible-builds/diffoscope/-/merge_requests/166
|
||||
./fix-tests-with-zipdetails-4.006.patch
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
|
|
|
|||
|
|
@ -19,7 +19,6 @@
|
|||
doxygen,
|
||||
python3,
|
||||
pciutils,
|
||||
fetchpatch,
|
||||
withExamples ? [ ],
|
||||
shared ? false,
|
||||
machine ? (
|
||||
|
|
@ -32,15 +31,18 @@
|
|||
),
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "dpdk";
|
||||
version = "25.07";
|
||||
version = "26.03";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://fast.dpdk.org/rel/dpdk-${version}.tar.xz";
|
||||
sha256 = "sha256-aIbL7cNQu4y+80fRA2fWJZ42Q1Yn+7J9V4rb3A07QQ0=";
|
||||
url = "https://fast.dpdk.org/rel/dpdk-${finalAttrs.version}.tar.xz";
|
||||
hash = "sha256-hJiSArvg+67rYvj9xj9pGICsC2bNDcZMFnhDxZ2ynSw=";
|
||||
};
|
||||
|
||||
__structuredAttrs = true;
|
||||
strictDeps = true;
|
||||
|
||||
nativeBuildInputs = [
|
||||
makeWrapper
|
||||
doxygen
|
||||
|
|
@ -55,12 +57,14 @@ stdenv.mkDerivation rec {
|
|||
jansson
|
||||
libbpf
|
||||
elfutils
|
||||
intel-ipsec-mb
|
||||
libpcap
|
||||
numactl
|
||||
openssl.dev
|
||||
zlib
|
||||
python3
|
||||
]
|
||||
++ lib.optionals stdenv.hostPlatform.isx86_64 [
|
||||
intel-ipsec-mb
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
|
@ -76,13 +80,15 @@ stdenv.mkDerivation rec {
|
|||
'';
|
||||
|
||||
mesonFlags = [
|
||||
"-Dtests=false"
|
||||
"-Denable_docs=true"
|
||||
"-Ddeveloper_mode=disabled"
|
||||
(lib.mesonBool "tests" false)
|
||||
(lib.mesonBool "enable_docs" true)
|
||||
(lib.mesonEnable "developer_mode" false)
|
||||
(lib.mesonOption "default_library" (if shared then "shared" else "static"))
|
||||
]
|
||||
++ [ (if shared then "-Ddefault_library=shared" else "-Ddefault_library=static") ]
|
||||
++ lib.optional (machine != null) "-Dmachine=${machine}"
|
||||
++ lib.optional (withExamples != [ ]) "-Dexamples=${builtins.concatStringsSep "," withExamples}";
|
||||
++ lib.optionals (machine != null) [ (lib.mesonOption "machine" machine) ]
|
||||
++ lib.optionals (withExamples != [ ]) [
|
||||
(lib.mesonOption "examples" (lib.concatStringsSep "," withExamples))
|
||||
];
|
||||
|
||||
postInstall = ''
|
||||
# Remove Sphinx cache files. Not only are they not useful, but they also
|
||||
|
|
@ -114,7 +120,8 @@ stdenv.mkDerivation rec {
|
|||
platforms = lib.platforms.linux;
|
||||
maintainers = with lib.maintainers; [
|
||||
mic92
|
||||
stepbrobd
|
||||
zhaofengli
|
||||
];
|
||||
};
|
||||
}
|
||||
})
|
||||
|
|
|
|||
|
|
@ -10,16 +10,16 @@
|
|||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "dutctl";
|
||||
version = "1.0.0-alpha.1-unstable-2026-06-11";
|
||||
version = "1.0.0-alpha.1-unstable-2026-06-25";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "BlindspotSoftware";
|
||||
repo = "dutctl";
|
||||
rev = "416a8d169880883345531a2f67ec71a65f41b474";
|
||||
hash = "sha256-Y4bILPe7PBCHsBbgI6ckqdh0S4UBh1z8vpDs/CIyYxg=";
|
||||
rev = "9f57498b4ebf99cc1960015832986f059673020b";
|
||||
hash = "sha256-Xif0qngaMtje67QTvLANlfMAuQZNVJMDGtnDAwznyO8=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-s0pRzcueJCwUP5+ckRMYTc9FPYGqQiILGIuwQ83EhIM=";
|
||||
vendorHash = "sha256-6ne0gvVbdb4OIQmc0nHa7I4ms4gb0CXO8c1GuFqmefc=";
|
||||
|
||||
ldflags = [
|
||||
"-s"
|
||||
|
|
|
|||
|
|
@ -9,16 +9,16 @@
|
|||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "editorconfig-checker";
|
||||
version = "3.7.0";
|
||||
version = "3.8.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "editorconfig-checker";
|
||||
repo = "editorconfig-checker";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-8DNxLACoTtB86JUkHUDopKY0SVFdhdye/ThbUXwAYQE=";
|
||||
hash = "sha256-t0EliFWYYxKfPbfLKP4p3wJvmIfXF6CPpWIgUuD3pXY=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-sOpa9aYWAQ5qahHhV0XgKOtuGWDu1+i0lcMCyc1FvMI=";
|
||||
vendorHash = "sha256-5x7c8v+uMmqvyQnN47XgD8FFMoEq5/MPFO2WEj0WevU=";
|
||||
|
||||
# Tests run on source and don't expect vendor dir.
|
||||
doCheck = false;
|
||||
|
|
|
|||
|
|
@ -17,16 +17,22 @@
|
|||
rustPlatform,
|
||||
cargo,
|
||||
rustc,
|
||||
wasm-bindgen-cli_0_2_108,
|
||||
wasm-bindgen-cli_0_2_121,
|
||||
binaryen,
|
||||
}:
|
||||
let
|
||||
electron = electron_41;
|
||||
|
||||
resourcesDir =
|
||||
if stdenv.hostPlatform.isDarwin then
|
||||
"$out/Applications/ente.app/Contents/Resources"
|
||||
else
|
||||
"$out/share/ente-desktop/resources";
|
||||
in
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "ente-desktop";
|
||||
version = "1.7.22";
|
||||
version = "1.7.24";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ente-io";
|
||||
|
|
@ -38,11 +44,11 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
"rust"
|
||||
];
|
||||
tag = "photosd-v${finalAttrs.version}";
|
||||
hash = "sha256-iEPUlWe1dmXm0dkl12faKbfqffu8LCm8JTa+uVIBwrA=";
|
||||
hash = "sha256-/dO9qLJKbqR5h/GEJW9rLO1jNTa5GkqnJ9ORPSf5R8o=";
|
||||
};
|
||||
|
||||
sourceRoot = "${finalAttrs.src.name}/desktop";
|
||||
cargoRoot = "../web/packages/wasm";
|
||||
cargoRoot = "../rust";
|
||||
|
||||
cargoDeps = rustPlatform.fetchCargoVendor {
|
||||
inherit (finalAttrs)
|
||||
|
|
@ -52,26 +58,24 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
sourceRoot
|
||||
cargoRoot
|
||||
;
|
||||
hash = "sha256-/FkAxi9KpW/Z6sdo7gfxvCmaAe0JzjubScrcGjbLD88=";
|
||||
hash = "sha256-F+g/6mcMnplOkTlR/vedS3MhimFAbXFZi6CTJ/cqoU0=";
|
||||
};
|
||||
offlineCache = fetchYarnDeps {
|
||||
name = "ente-desktop-${finalAttrs.version}-offline-cache";
|
||||
inherit (finalAttrs) src sourceRoot;
|
||||
hash = "sha256-OnqrowsT0Yion563QD4RA5whN///q4RbkgMDWXs9icg=";
|
||||
hash = "sha256-ne3gyI6psDpYzCPpepIIWao0yBiiv9qXQ+Iri3ELK/U=";
|
||||
};
|
||||
webOfflineCache = fetchYarnDeps {
|
||||
name = "ente-desktop-${finalAttrs.version}-web-offline-cache";
|
||||
inherit (finalAttrs) src;
|
||||
sourceRoot = "${finalAttrs.src.name}/web";
|
||||
hash = "sha256-bWOwIa7SD0z2StoUg9HlQGTBq2xXltLgQ2ft8umjg/Y=";
|
||||
hash = "sha256-MqsmOHVyPz+YiwNmrs447wrQ/Nk+t5TrLMsbDITM8p0=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
nodejs
|
||||
yarnConfigHook
|
||||
makeWrapper
|
||||
autoPatchelfHook # for onnxruntime
|
||||
copyDesktopItems
|
||||
imagemagick
|
||||
|
||||
wasm-pack
|
||||
|
|
@ -79,8 +83,12 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
cargo
|
||||
rustc
|
||||
rustc.llvmPackages.lld
|
||||
wasm-bindgen-cli_0_2_108
|
||||
wasm-bindgen-cli_0_2_121
|
||||
binaryen
|
||||
]
|
||||
++ lib.optionals stdenv.hostPlatform.isLinux [
|
||||
autoPatchelfHook # for onnxruntime
|
||||
copyDesktopItems
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
|
|
@ -90,7 +98,7 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
# Path to vips (otherwise it looks within the electron derivation)
|
||||
postPatch = ''
|
||||
substituteInPlace src/main/services/image.ts src/main.ts \
|
||||
--replace-fail "process.resourcesPath" "\"$out/share/ente-desktop/resources\""
|
||||
--replace-fail "process.resourcesPath" "\"${resourcesDir}\""
|
||||
'';
|
||||
|
||||
postConfigure = ''
|
||||
|
|
@ -114,7 +122,14 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
cp -r ../web/apps/photos/out out
|
||||
|
||||
yarn run tsc
|
||||
yarn run electron-builder --dir -c.electronDist=./electron_dist -c.electronVersion=${electron.version}
|
||||
yarn run electron-builder -- \
|
||||
--dir \
|
||||
--c.electronDist=./electron_dist \
|
||||
--c.electronVersion=${electron.version} \
|
||||
${lib.optionalString stdenv.hostPlatform.isDarwin ''
|
||||
--c.mac.identity=null \
|
||||
--c.mac.notarize=false \
|
||||
''}
|
||||
|
||||
runHook postBuild
|
||||
'';
|
||||
|
|
@ -122,29 +137,40 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
for size in 16 32 48 64 72 96 128 192 256 512 1024; do
|
||||
mkdir -p $out/share/icons/hicolor/"$size"x"$size"/apps
|
||||
convert -resize "$size"x"$size" build/icon.png $out/share/icons/hicolor/"$size"x"$size"/apps/ente-desktop.png
|
||||
done
|
||||
${lib.optionalString stdenv.hostPlatform.isDarwin ''
|
||||
mkdir -p $out/Applications
|
||||
cp -r dist/*/ente.app $out/Applications
|
||||
|
||||
mkdir -p $out/share/ente-desktop
|
||||
cp -r dist/*/resources $out/share/ente-desktop
|
||||
ln -s ${vips}/bin/vips $out/share/ente-desktop/resources/vips
|
||||
ln -s ${ffmpeg}/bin/ffmpeg $out/share/ente-desktop/resources/app.asar.unpacked/node_modules/ffmpeg-static/ffmpeg
|
||||
mkdir -p $out/bin
|
||||
ln -s $out/Applications/ente.app/Contents/MacOS/ente $out/bin/ente-desktop
|
||||
''}
|
||||
|
||||
# executable wrapper
|
||||
makeWrapper '${electron}/bin/electron' "$out/bin/ente-desktop" \
|
||||
--set ELECTRON_FORCE_IS_PACKAGED 1 \
|
||||
--set ELECTRON_IS_DEV 0 \
|
||||
--add-flags "$out/share/ente-desktop/resources/app.asar" \
|
||||
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations --enable-wayland-ime=true}}"
|
||||
${lib.optionalString stdenv.hostPlatform.isLinux ''
|
||||
for size in 16 32 48 64 72 96 128 192 256 512 1024; do
|
||||
mkdir -p $out/share/icons/hicolor/"$size"x"$size"/apps
|
||||
convert -resize "$size"x"$size" build/icon.png $out/share/icons/hicolor/"$size"x"$size"/apps/ente-desktop.png
|
||||
done
|
||||
|
||||
mkdir -p $out/share/ente-desktop
|
||||
cp -r dist/*/resources $out/share/ente-desktop
|
||||
|
||||
# executable wrapper
|
||||
makeWrapper '${electron}/bin/electron' "$out/bin/ente-desktop" \
|
||||
--set ELECTRON_FORCE_IS_PACKAGED 1 \
|
||||
--set ELECTRON_IS_DEV 0 \
|
||||
--add-flags "${resourcesDir}/app.asar" \
|
||||
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations --enable-wayland-ime=true}}"
|
||||
''}
|
||||
|
||||
ln -s ${vips}/bin/vips ${resourcesDir}/vips
|
||||
ln -s ${ffmpeg}/bin/ffmpeg ${resourcesDir}/app.asar.unpacked/node_modules/ffmpeg-static/ffmpeg
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
# The desktop item properties should be kept in sync with data from upstream:
|
||||
# https://github.com/ente-io/ente/blob/main/desktop/electron-builder.yml
|
||||
desktopItems = [
|
||||
desktopItems = lib.optionals (!stdenv.hostPlatform.isDarwin) [
|
||||
(makeDesktopItem {
|
||||
name = "ente-desktop";
|
||||
desktopName = "Ente";
|
||||
|
|
@ -169,8 +195,8 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
maintainers = with lib.maintainers; [
|
||||
pinpox
|
||||
yuka
|
||||
Br1ght0ne
|
||||
];
|
||||
platforms = lib.platforms.all;
|
||||
broken = stdenv.hostPlatform.isDarwin;
|
||||
platforms = lib.platforms.linux ++ lib.platforms.darwin;
|
||||
};
|
||||
})
|
||||
|
|
|
|||
|
|
@ -9,16 +9,16 @@
|
|||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "fselect";
|
||||
version = "0.10.1";
|
||||
version = "0.10.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jhspetersson";
|
||||
repo = "fselect";
|
||||
rev = finalAttrs.version;
|
||||
sha256 = "sha256-eu2OAxdhDaKewMKL02rj8ED6tfB9OI3br7g0WoKOejk=";
|
||||
sha256 = "sha256-j9Md3yfL1tQkjCQ/Wo+oKaI/6OsJsCRsSscSiRuLOV0=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-6XV8O3Ko4NKw5PaVbazrh6LQ0eQpbiPh/cB3Y9dkcb8=";
|
||||
cargoHash = "sha256-+4dtpBcCOC1iwXKQHqgvvVtAvIFM3ZCAaefk9oPM1l0=";
|
||||
|
||||
nativeBuildInputs = [ installShellFiles ];
|
||||
buildInputs = lib.optional stdenv.hostPlatform.isDarwin libiconv;
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
mainProgram = "fujprog";
|
||||
homepage = "https://github.com/kost/fujprog";
|
||||
license = lib.licenses.bsd2;
|
||||
maintainers = with lib.maintainers; [ trepetti ];
|
||||
maintainers = [ ];
|
||||
platforms = lib.platforms.all;
|
||||
changelog = "https://github.com/kost/fujprog/releases/tag/v${finalAttrs.version}";
|
||||
};
|
||||
|
|
|
|||
|
|
@ -179,11 +179,11 @@ let
|
|||
|
||||
linux = stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
inherit pname meta passthru;
|
||||
version = "149.0.7827.196";
|
||||
version = "149.0.7827.200";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://dl.google.com/linux/chrome/deb/pool/main/g/google-chrome-stable/google-chrome-stable_${finalAttrs.version}-1_amd64.deb";
|
||||
hash = "sha256-B4XIuL7q/kGRd/w2vPmfkvsvFtvHevhL5IfC5u14IuY=";
|
||||
hash = "sha256-HDCPrhH44nKTr6Fzm9SqAV/Vdmtyx1znIZXsPkGmEqg=";
|
||||
};
|
||||
|
||||
# With strictDeps on, some shebangs were not being patched correctly
|
||||
|
|
@ -289,11 +289,11 @@ let
|
|||
|
||||
darwin = stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
inherit pname meta passthru;
|
||||
version = "149.0.7827.197";
|
||||
version = "149.0.7827.201";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://dl.google.com/release2/chrome/fs52wiq74uymls47lfo23m5l2q_149.0.7827.197/GoogleChrome-149.0.7827.197.dmg";
|
||||
hash = "sha256-kXN4dPtx0MkTKO3VJnoyTqT8uS4JDXJ16DmojZ3zT+o=";
|
||||
url = "http://dl.google.com/release2/chrome/ph3mj7mqtvbfhr67ckmjvjj5a4_149.0.7827.201/GoogleChrome-149.0.7827.201.dmg";
|
||||
hash = "sha256-AI5oBE0uB2/YacF9LB4d6rXlAqEuZtlPYNQwLbs1K7E=";
|
||||
};
|
||||
|
||||
dontPatch = true;
|
||||
|
|
|
|||
|
|
@ -11,13 +11,13 @@
|
|||
# it's updated.
|
||||
buildGo126Module (finalAttrs: {
|
||||
pname = "gtree";
|
||||
version = "1.14.2";
|
||||
version = "1.14.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ddddddO";
|
||||
repo = "gtree";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-LMVXC22fTrPt4S5HkErMrpZwwanN5blY/TPUE8bg95s=";
|
||||
hash = "sha256-tGmRVRy+xUq/WEYz7QktR7xuxKFbCWO7LSbAmSAodYw=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-Vd5VKKl79Qu5R7jOYS1CTtQuAis9vWUbpBWnEI7sgpk=";
|
||||
|
|
|
|||
|
|
@ -31,6 +31,7 @@ in
|
|||
crystal.buildCrystalPackage rec {
|
||||
pname = "invidious";
|
||||
inherit (versions.invidious) version;
|
||||
__structuredAttrs = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "iv-org";
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
#!/usr/bin/env nix-shell
|
||||
#!nix-shell -i bash -p curl crystal crystal2nix jq git moreutils nix nix-prefetch pkg-config pcre gnugrep
|
||||
#!nix-shell -i bash -p curl crystal crystal2nix jq git moreutils nix nurl pkg-config pcre gnugrep
|
||||
git_url='https://github.com/iv-org/invidious.git'
|
||||
git_branch='master'
|
||||
git_dir='/var/tmp/invidious.git'
|
||||
|
|
@ -51,7 +51,7 @@ json_set '.invidious.date' "$date"
|
|||
json_set '.invidious.commit' "$commit"
|
||||
json_set '.invidious.version' "$new_version"
|
||||
|
||||
new_hash=$(nix-prefetch -I 'nixpkgs=../../../..' "$pkg")
|
||||
new_hash=$(nurl --submodules --hash "$git_url" "$new_tag")
|
||||
json_set '.invidious.hash' "$new_hash"
|
||||
|
||||
# fetch video.js dependencies
|
||||
|
|
|
|||
|
|
@ -1,11 +1,11 @@
|
|||
{
|
||||
"invidious": {
|
||||
"hash": "sha256-tACx4+HqouftDalZlrurS75gYvS02qnmxQoL91YfTjg=",
|
||||
"version": "2.20260207.0",
|
||||
"date": "2026.02.07",
|
||||
"commit": "118d6356"
|
||||
"hash": "sha256-xJZjEnSeMnDo37ohtSAI2ucaPPv+nBYdrslHUCL/Pd8=",
|
||||
"version": "2.20260626.0",
|
||||
"date": "2026.06.27",
|
||||
"commit": "ad0bd928"
|
||||
},
|
||||
"videojs": {
|
||||
"hash": "sha256-jED3zsDkPN8i6GhBBJwnsHujbuwlHdsVpVqa1/pzSH4="
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,16 +9,16 @@
|
|||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "kak-tree-sitter-unwrapped";
|
||||
version = "3.2.1";
|
||||
version = "3.2.2";
|
||||
|
||||
src = fetchFromSourcehut {
|
||||
owner = "~hadronized";
|
||||
repo = "kak-tree-sitter";
|
||||
rev = "kak-tree-sitter-v${finalAttrs.version}";
|
||||
hash = "sha256-w+taJzr9tPLXdpV5RLTedVGR48Qodq/4M5IhlKAM/lU=";
|
||||
hash = "sha256-RzPfQstjHdfLH6cF6KuMXB/J7UeR9DeJRypnGdb89TQ=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-ztVBBeLU1AByDz3yVDMZ102bDG6JfL/6IoJlcqRmCmU=";
|
||||
cargoHash = "sha256-5hCBFQsZpUyPlgO/iUmBXmdcC5ceG1w4IiB27oBxRxQ=";
|
||||
|
||||
passthru = {
|
||||
updateScript = nix-update-script { };
|
||||
|
|
|
|||
|
|
@ -7,13 +7,13 @@
|
|||
|
||||
php.buildComposerProject2 (finalAttrs: {
|
||||
pname = "kimai";
|
||||
version = "2.60.0";
|
||||
version = "2.61.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "kimai";
|
||||
repo = "kimai";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-TdeoFbgLXbLsBeMK8YUKimRyx+nJ4QMigY9YxicmPDA=";
|
||||
hash = "sha256-T/eHJeEosRRWPSxvDpBkeGEx8zwqFz/v2CflhjLqpO4=";
|
||||
};
|
||||
|
||||
php = php.buildEnv {
|
||||
|
|
@ -38,7 +38,7 @@ php.buildComposerProject2 (finalAttrs: {
|
|||
'';
|
||||
};
|
||||
|
||||
vendorHash = "sha256-0byb0lsi9nU1qKksU6BeBB/JCXoHSaliLyErz6Z14QQ=";
|
||||
vendorHash = "sha256-rwCLPLJwVaykWimmuZ7wM2KLZqDE1YIhMbD7q86w0OE=";
|
||||
|
||||
composerNoPlugins = false;
|
||||
postInstall = ''
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
homepage = "https://lemon.cs.elte.hu/trac/lemon";
|
||||
description = "Efficient library for combinatorial optimization tasks on graphs and networks";
|
||||
license = lib.licenses.boost;
|
||||
maintainers = with lib.maintainers; [ trepetti ];
|
||||
maintainers = with lib.maintainers; [ hzeller ];
|
||||
platforms = lib.platforms.all;
|
||||
};
|
||||
})
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
}:
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "lstk";
|
||||
version = "0.13.0";
|
||||
version = "0.14.0";
|
||||
|
||||
__structuredAttrs = true;
|
||||
|
||||
|
|
@ -15,10 +15,10 @@ buildGoModule (finalAttrs: {
|
|||
owner = "localstack";
|
||||
repo = "lstk";
|
||||
tag = "v${finalAttrs.version}";
|
||||
sha256 = "sha256-UF+ySjw3fdb9aTA/tRDmFR3EXYA7nvbuv/esT/3Rsv4=";
|
||||
sha256 = "sha256-+CvW9rhEPGEs07+d/PEMtnUhy6NRq850D3KYpKABQMA=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-zKEUGn9eKYdxSinS+NXc7PrgZkrQRZnIxTNH3yNL4GE=";
|
||||
vendorHash = "sha256-ZWezMbvUUwOoWMU+zHL4hHMKAncI/oCsWMaLt5qN+YM=";
|
||||
|
||||
excludedPackages = "test/integration";
|
||||
|
||||
|
|
|
|||
|
|
@ -55,7 +55,6 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
homepage = "https://fabiocolacio.github.io/Marker/";
|
||||
description = "Markdown editor for the Linux desktop made with GTK3";
|
||||
maintainers = with lib.maintainers; [
|
||||
trepetti
|
||||
aleksana
|
||||
];
|
||||
license = lib.licenses.gpl3Plus;
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "md-tui";
|
||||
version = "0.10.2";
|
||||
version = "0.10.3";
|
||||
|
||||
__structuredAttrs = true;
|
||||
|
||||
|
|
@ -16,10 +16,10 @@ rustPlatform.buildRustPackage (finalAttrs: {
|
|||
owner = "henriklovhaug";
|
||||
repo = "md-tui";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-VSOAeFY3TsdeOlKt3f9cbEsSNSwvhcYQl129oQMOTaM=";
|
||||
hash = "sha256-1E3R1pR5f65rMMEa3Wh2I1W7JV+WgJuVN23XNpaxWTc=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-l1VXrf19KB6zTrVmINyinz0YpGDDUH9B77CN6CMz/X8=";
|
||||
cargoHash = "sha256-IjT5YnU9hJd9trsMEM/lDtZIWd0XFHFesq0XF+j9zPg=";
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
}:
|
||||
let
|
||||
pname = "nbping";
|
||||
version = "0.7.0";
|
||||
version = "0.7.1";
|
||||
in
|
||||
rustPlatform.buildRustPackage {
|
||||
inherit pname version;
|
||||
|
|
@ -14,10 +14,10 @@ rustPlatform.buildRustPackage {
|
|||
owner = "hanshuaikang";
|
||||
repo = "Nping";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-rGWYvYJs6vkG+HQuT4NJGMUUG9QzIhyJThgDWTC6/JI=";
|
||||
hash = "sha256-QaJTV5RNvsYuBUPrWcmbBj1QSKtfDNTvHd5fMfuoU3c=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-6AdqPm07lbMzeqihQC3mCoBYZ1cduGo1rCvYsF+4XL4=";
|
||||
cargoHash = "sha256-H0FG3BE/iP3knosnUVzJtNXt8hQ9E8Jh/2MTmviNhfA=";
|
||||
|
||||
meta = {
|
||||
description = "Ping Tool in Rust with Real-Time Data and Visualizations";
|
||||
|
|
|
|||
|
|
@ -10,17 +10,17 @@
|
|||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "ndg";
|
||||
version = "2.8.0";
|
||||
version = "2.9.0";
|
||||
__structuredAttrs = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "feel-co";
|
||||
repo = "ndg";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-YIKEyzh0NFQlD0O92LQQNMoVCDwV8yw1Xz0Iu+4ZC5U=";
|
||||
hash = "sha256-be9NxraQyoB4wLjiPHxpmklfJYuB+Qs/x69P395I1Fk=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-r4lNSZuGFtNTOkIyd7skdEmA61lfbetI03tIUD+MO+Y=";
|
||||
cargoHash = "sha256-N0em5kNY94sdPv3Fcpprk09yx1yKo8GZMWND/FJSSIw=";
|
||||
|
||||
nativeBuildInputs = [ installShellFiles ];
|
||||
|
||||
|
|
@ -59,7 +59,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
|
|||
homepage = "https://github.com/feel-co/ndg";
|
||||
changelog = "https://github.com/feel-co/ndg/blob/v${finalAttrs.version}/CHANGELOG.md";
|
||||
license = lib.licenses.mpl20;
|
||||
maintainers = [ lib.teams.feel-co ];
|
||||
mainProgram = "ndg";
|
||||
teams = [ lib.teams.feel-co ];
|
||||
};
|
||||
})
|
||||
|
|
|
|||
|
|
@ -60,7 +60,6 @@ rustPlatform.buildRustPackage (finalAttrs: {
|
|||
homepage = "https://noaa-apt.mbernardi.com.ar/";
|
||||
license = lib.licenses.gpl3Only;
|
||||
maintainers = with lib.maintainers; [
|
||||
trepetti
|
||||
tmarkus
|
||||
];
|
||||
platforms = lib.platforms.all;
|
||||
|
|
|
|||
|
|
@ -33,13 +33,26 @@ rustPlatform.buildRustPackage (finalAttrs: {
|
|||
|
||||
# These fail based on timestamp issues with bundled certificates
|
||||
# See https://github.com/NixOS/nixpkgs/issues/497682 & https://github.com/pendulum-project/ntpd-rs/pull/2133
|
||||
checkFlags = [
|
||||
"--skip=daemon::keyexchange::tests::key_exchange_connection_limiter"
|
||||
"--skip=daemon::keyexchange::tests::key_exchange_roundtrip_with_port_server"
|
||||
"--skip=daemon::ntp_source::tests::test_deny_stops_poll"
|
||||
"--skip=daemon::ntp_source::tests::test_timeroundtrip"
|
||||
"--skip=daemon::server::tests::test_server_serves"
|
||||
"--skip=daemon::spawn::nts::tests::allow_srv_direct_name_resolution"
|
||||
checkFlags = map (t: "--skip=${t}") [
|
||||
"daemon::keyexchange::tests::key_exchange_connection_limiter"
|
||||
"daemon::keyexchange::tests::key_exchange_roundtrip_with_port_server"
|
||||
"daemon::ntp_source::tests::test_deny_stops_poll"
|
||||
"daemon::ntp_source::tests::test_timeroundtrip"
|
||||
"daemon::server::tests::test_server_serves"
|
||||
"daemon::spawn::nts::tests::allow_srv_direct_name_resolution"
|
||||
"daemon::spawn::standard::tests::reresolves_on_unreachable"
|
||||
"nts::tests::test_key_exchange_roundtrip_no_cookies"
|
||||
"nts::tests::test_keyexchange_fixed_key_no_permission"
|
||||
"nts::tests::test_keyexchange_roundtrip_fixed_key"
|
||||
"nts::tests::test_keyexchange_roundtrip_fixed_key_keep_alive"
|
||||
"nts::tests::test_keyexchange_roundtrip_fixed_key_no_permit"
|
||||
"nts::tests::test_keyexchange_roundtrip_no_proto_overlap"
|
||||
"nts::tests::test_keyexchange_roundtrip_no_upgrade_possible"
|
||||
"nts::tests::test_keyexchange_roundtrip_supports"
|
||||
"nts::tests::test_keyexchange_roundtrip_upgrading"
|
||||
"nts::tests::test_keyexchange_roundtrip_v4"
|
||||
"nts::tests::test_keyexchange_roundtrip_v5"
|
||||
"nts::tests::test_keyexchange_supports_no_permission"
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
|
|
|
|||
|
|
@ -1,46 +0,0 @@
|
|||
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
|
||||
|
||||
|
|
@ -1,50 +0,0 @@
|
|||
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);
|
||||
|
|
@ -2,7 +2,6 @@
|
|||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
fetchpatch2,
|
||||
autoreconfHook,
|
||||
pkg-config,
|
||||
dpdk,
|
||||
|
|
@ -18,39 +17,30 @@
|
|||
elfutils,
|
||||
jansson,
|
||||
libnl,
|
||||
nix-update-script,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "odp-dpdk";
|
||||
version = "1.46.0.0_DPDK_22.11";
|
||||
version = "1.50.0.0_DPDK_24.11";
|
||||
|
||||
__structuredAttrs = true;
|
||||
strictDeps = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "OpenDataPlane";
|
||||
repo = "odp-dpdk";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-9stWGupRSQwUXOdPEQ9Rhkim22p5BBA5Z+2JCYS7Za0=";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-Q1xJ5JCrR/RH5Mxnrs6+gR3D7I2BpmPDki0yJ+5N/UE=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
./odp-dpdk_25.03.patch
|
||||
# Fix gcc 15 -Wunterminated-string-initialization errors in test code.
|
||||
(fetchpatch2 {
|
||||
url = "https://github.com/OpenDataPlane/odp-dpdk/commit/56c6bdbe8fe9db4c0441162ec269ef4e1ebd1a6a.patch";
|
||||
hash = "sha256-aj4HuGb0BUxsKtFS3X3gXqBoRVRnKEBNxa/4heWhBlE=";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoreconfHook
|
||||
pkg-config
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
(dpdk.overrideAttrs {
|
||||
patches = [
|
||||
./dpdk_25.03.patch
|
||||
];
|
||||
})
|
||||
dpdk
|
||||
intel-ipsec-mb
|
||||
libconfig
|
||||
libpcap
|
||||
|
|
@ -70,11 +60,16 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
||||
meta = {
|
||||
description = "Open Data Plane optimized for DPDK";
|
||||
homepage = "https://www.opendataplane.org";
|
||||
license = lib.licenses.bsd3;
|
||||
platforms = lib.platforms.linux;
|
||||
maintainers = [ lib.maintainers.abuibrahim ];
|
||||
maintainers = with lib.maintainers; [
|
||||
abuibrahim
|
||||
stepbrobd
|
||||
];
|
||||
};
|
||||
})
|
||||
|
|
|
|||
|
|
@ -23,13 +23,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "opencolorio";
|
||||
version = "2.5.1";
|
||||
version = "2.5.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "AcademySoftwareFoundation";
|
||||
repo = "OpenColorIO";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-iI32dnGZdizLBOs7IQtmLUYMPWxadvWNeqZjy49AWb0=";
|
||||
hash = "sha256-b4tdQ9VH9M7hAD5Uuxu4QKwwpaVwroj/Bvg+Zsy0M1M=";
|
||||
};
|
||||
|
||||
postPatch = lib.optionalString stdenv.hostPlatform.isDarwin ''
|
||||
|
|
|
|||
|
|
@ -29,7 +29,6 @@
|
|||
lemon-graph,
|
||||
libjpeg,
|
||||
or-tools,
|
||||
pcre,
|
||||
python3,
|
||||
re2,
|
||||
readline,
|
||||
|
|
@ -82,7 +81,6 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
libsForQt5.qtdeclarative
|
||||
libsForQt5.qtsvg
|
||||
or-tools
|
||||
pcre
|
||||
python3
|
||||
re2
|
||||
readline
|
||||
|
|
@ -183,7 +181,6 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
license = lib.licenses.bsd3;
|
||||
mainProgram = "openroad";
|
||||
maintainers = with lib.maintainers; [
|
||||
trepetti
|
||||
hzeller
|
||||
];
|
||||
platforms = lib.platforms.linux ++ lib.platforms.darwin;
|
||||
|
|
|
|||
|
|
@ -50,7 +50,7 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
downloadPage = "https://github.com/Openwsman/openwsman/releases";
|
||||
homepage = "https://openwsman.github.io";
|
||||
license = lib.licenses.bsd3;
|
||||
maintainers = with lib.maintainers; [ deepfire ];
|
||||
maintainers = [ ];
|
||||
platforms = lib.platforms.linux; # PAM is not available on Darwin
|
||||
};
|
||||
})
|
||||
|
|
|
|||
|
|
@ -21,17 +21,17 @@
|
|||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "pdns-recursor";
|
||||
version = "5.4.1";
|
||||
version = "5.4.3";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://downloads.powerdns.com/releases/pdns-recursor-${finalAttrs.version}.tar.xz";
|
||||
hash = "sha256-k/I+6T+w06n9SIFyZWMezkdYuAAa9ybDWO46+2ZFtjo=";
|
||||
hash = "sha256-opICnFQ6xFOMpXYouBQsntypsoOjqAyzk+2UfgWE8A8=";
|
||||
};
|
||||
|
||||
cargoDeps = rustPlatform.fetchCargoVendor {
|
||||
inherit (finalAttrs) src;
|
||||
sourceRoot = "pdns-recursor-${finalAttrs.version}/rec-rust-lib/rust";
|
||||
hash = "sha256-PxnLv1VbZgyQl83Bcvxyf7REsbTKI1MBV4RllHcyJyc=";
|
||||
hash = "sha256-eAiXdsHWZca0wx5FONGfa7JDcpDHyCABJOUROhwAsZo=";
|
||||
};
|
||||
|
||||
cargoRoot = "rec-rust-lib/rust";
|
||||
|
|
@ -72,6 +72,7 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
};
|
||||
|
||||
meta = {
|
||||
changelog = "https://doc.powerdns.com/recursor/changelog/${lib.versions.majorMinor finalAttrs.version}.html#change-${finalAttrs.version}";
|
||||
description = "Recursive DNS server";
|
||||
homepage = "https://www.powerdns.com/";
|
||||
platforms = lib.platforms.linux;
|
||||
|
|
|
|||
|
|
@ -101,6 +101,7 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
__structuredAttrs = true;
|
||||
|
||||
meta = {
|
||||
changelog = "https://doc.powerdns.com/authoritative/changelog/${lib.versions.majorMinor finalAttrs.version}.html#change-${finalAttrs.version}";
|
||||
description = "Authoritative DNS server";
|
||||
homepage = "https://www.powerdns.com";
|
||||
platforms = lib.platforms.unix;
|
||||
|
|
|
|||
|
|
@ -14,16 +14,16 @@ let
|
|||
in
|
||||
rustPlatform.buildRustPackage.override { inherit stdenv; } (finalAttrs: {
|
||||
pname = "pgdog";
|
||||
version = "0.1.45";
|
||||
version = "0.1.46";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "pgdogdev";
|
||||
repo = "pgdog";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-XMJNnkSV6c/0wWipFg59ZnnvCp4NwPELpVsQKCOViwA=";
|
||||
hash = "sha256-9NW/LL6GaiYF2p/4MoGXGRS2jv9bLi+dmRDPPNPhnVw=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-6Eeon5+KRNFum7AGy8fkdpvtaMLduKzbtuqtJvpB8AY=";
|
||||
cargoHash = "sha256-qt7CD4rTDt5DrQSSYvmheD+ib+JgM1IjbkKFKm6wXBE=";
|
||||
|
||||
# Hardcoded paths for C compiler and linker
|
||||
postPatch = ''
|
||||
|
|
|
|||
|
|
@ -12,16 +12,16 @@
|
|||
}:
|
||||
buildNpmPackage (finalAttrs: {
|
||||
pname = "pi-coding-agent";
|
||||
version = "0.79.8";
|
||||
version = "0.80.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "earendil-works";
|
||||
repo = "pi";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-eH1+vHrKBu1GcUXnTdvRtNuLuf0EdReAnFit8UqiXB4=";
|
||||
hash = "sha256-aKtgPc3rwHEp856jP3N7nImph0CSG+gsWq9OVci3hmE=";
|
||||
};
|
||||
|
||||
npmDepsHash = "sha256-xrTpu4TkRmlflg7pMaw/QVsN+poQ41slVA5PET+NDoI=";
|
||||
npmDepsHash = "sha256-1EGs8lX8XoAnRtS+pw4lBRm24U/vtVB2loVRmZyd4Z8=";
|
||||
|
||||
npmWorkspace = "packages/coding-agent";
|
||||
|
||||
|
|
|
|||
|
|
@ -14,17 +14,21 @@
|
|||
gtk2,
|
||||
which,
|
||||
withGtk ? false,
|
||||
nix-update-script,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "pktgen";
|
||||
version = "24.10.3";
|
||||
version = "26.03.0";
|
||||
|
||||
__structuredAttrs = true;
|
||||
strictDeps = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "pktgen";
|
||||
repo = "Pktgen-DPDK";
|
||||
rev = "pktgen-${finalAttrs.version}";
|
||||
sha256 = "sha256-6KC1k+LWNSU/mdwcUKjCaq8pGOcO+dFzeXX4PJm0QgE=";
|
||||
tag = "pktgen-${finalAttrs.version}";
|
||||
hash = "sha256-GNBo0WsHevoge97gUgDdNygCHSA5fQ/73ibsTvDvVYI=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
@ -57,7 +61,7 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
};
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace lib/common/lscpu.h --replace /usr/bin/lscpu ${util-linux}/bin/lscpu
|
||||
substituteInPlace lib/common/lscpu.h --replace /usr/bin/lscpu ${lib.getExe' util-linux "lscpu"}
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
|
|
@ -66,11 +70,16 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
rm -rf $out/include $out/lib
|
||||
'';
|
||||
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
||||
meta = {
|
||||
description = "Traffic generator powered by DPDK";
|
||||
homepage = "http://dpdk.org/";
|
||||
license = lib.licenses.bsdOriginal;
|
||||
platforms = lib.platforms.linux;
|
||||
maintainers = [ lib.maintainers.abuibrahim ];
|
||||
maintainers = with lib.maintainers; [
|
||||
abuibrahim
|
||||
stepbrobd
|
||||
];
|
||||
};
|
||||
})
|
||||
|
|
|
|||
|
|
@ -130,7 +130,6 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
'';
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [
|
||||
afldcr
|
||||
moni
|
||||
];
|
||||
mainProgram = "polybar";
|
||||
|
|
|
|||
36
pkgs/by-name/ps/psleep/package.nix
Normal file
36
pkgs/by-name/ps/psleep/package.nix
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
{
|
||||
lib,
|
||||
rustPlatform,
|
||||
fetchFromGitHub,
|
||||
versionCheckHook,
|
||||
nix-update-script,
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "psleep";
|
||||
version = "0.3.0";
|
||||
__structuredAttrs = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Yesh-02";
|
||||
repo = "psleep";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-/Zi572GA0Stwl0JHUyFzvQ4V1GsbTetF7T74gaFoWM8=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-5yzCQfuVSI02B9HQ9+HMkl7qSoMOH0so4zBPwop4KX4=";
|
||||
|
||||
nativeInstallCheckInputs = [ versionCheckHook ];
|
||||
doInstallCheck = true;
|
||||
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
||||
meta = {
|
||||
description = "Like sleep but shows a live progress bar";
|
||||
homepage = "https://github.com/Yesh-02/psleep";
|
||||
changelog = "https://github.com/Yesh-02/psleep/releases/tag/${finalAttrs.src.tag}";
|
||||
license = lib.licenses.asl20;
|
||||
maintainers = with lib.maintainers; [ kpbaks ];
|
||||
mainProgram = "psleep";
|
||||
};
|
||||
})
|
||||
|
|
@ -10,49 +10,44 @@
|
|||
versionCheckHook,
|
||||
}:
|
||||
|
||||
let
|
||||
finalAttrs = {
|
||||
pname = "pyp";
|
||||
version = "1.3.0";
|
||||
python3Packages.buildPythonApplication (finalAttrs: {
|
||||
pname = "pyp";
|
||||
version = "1.3.0";
|
||||
pyproject = true;
|
||||
__structuredAttrs = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "hauntsaninja";
|
||||
repo = "pyp";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-u9yxjYNQrtYtFtUh5tTJ1mGmGB+Ry+FRupli8RzRu3c=";
|
||||
};
|
||||
|
||||
pyproject = true;
|
||||
|
||||
build-system = with python3Packages; [
|
||||
flit-core
|
||||
];
|
||||
|
||||
nativeCheckInputs =
|
||||
(with python3Packages; [
|
||||
pytestCheckHook
|
||||
])
|
||||
++ [
|
||||
addBinToPathHook
|
||||
bc
|
||||
jq
|
||||
versionCheckHook
|
||||
];
|
||||
|
||||
pythonImportsCheck = [
|
||||
"pyp"
|
||||
];
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/hauntsaninja/pyp";
|
||||
description = "Easily run Python at the shell";
|
||||
changelog = "https://github.com/hauntsaninja/pyp/blob/${finalAttrs.version}/CHANGELOG.md";
|
||||
license = with lib.licenses; [ mit ];
|
||||
mainProgram = "pyp";
|
||||
maintainers = with lib.maintainers; [
|
||||
rmcgibbo
|
||||
];
|
||||
};
|
||||
src = fetchFromGitHub {
|
||||
owner = "hauntsaninja";
|
||||
repo = "pyp";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-u9yxjYNQrtYtFtUh5tTJ1mGmGB+Ry+FRupli8RzRu3c=";
|
||||
};
|
||||
in
|
||||
python3Packages.buildPythonPackage finalAttrs
|
||||
|
||||
build-system = with python3Packages; [
|
||||
flit-core
|
||||
];
|
||||
|
||||
nativeCheckInputs =
|
||||
(with python3Packages; [
|
||||
pytestCheckHook
|
||||
])
|
||||
++ [
|
||||
addBinToPathHook
|
||||
bc
|
||||
jq
|
||||
versionCheckHook
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "pyp" ];
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/hauntsaninja/pyp";
|
||||
description = "Easily run Python at the shell";
|
||||
changelog = "https://github.com/hauntsaninja/pyp/blob/${finalAttrs.version}/CHANGELOG.md";
|
||||
license = with lib.licenses; [ mit ];
|
||||
mainProgram = "pyp";
|
||||
maintainers = with lib.maintainers; [
|
||||
rmcgibbo
|
||||
];
|
||||
};
|
||||
})
|
||||
|
|
|
|||
|
|
@ -74,9 +74,7 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
description = "Qt application for configuring your Razer devices under GNU/Linux";
|
||||
mainProgram = "razergenie";
|
||||
license = lib.licenses.gpl3Plus;
|
||||
maintainers = with lib.maintainers; [
|
||||
f4814n
|
||||
];
|
||||
maintainers = [ ];
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
})
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
meta = {
|
||||
homepage = "https://github.com/n0la/rcon";
|
||||
description = "Source RCON client for command line";
|
||||
maintainers = with lib.maintainers; [ f4814n ];
|
||||
maintainers = [ ];
|
||||
platforms = with lib.platforms; linux ++ darwin;
|
||||
license = lib.licenses.bsd2;
|
||||
mainProgram = "rcon";
|
||||
|
|
|
|||
35
pkgs/by-name/ri/rift-wm/package.nix
Normal file
35
pkgs/by-name/ri/rift-wm/package.nix
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
{
|
||||
lib,
|
||||
rustPlatform,
|
||||
fetchFromGitHub,
|
||||
apple-sdk,
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "rift-wm";
|
||||
version = "0.4.3";
|
||||
__structuredAttrs = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "acsandmann";
|
||||
repo = "rift";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-oOVNq4/hdiRcCbc9kaMxynnq2gXVezviQRTvjrdkfPs=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
apple-sdk
|
||||
];
|
||||
|
||||
cargoHash = "sha256-eb3Z5NIUusJApQWa6sDMRP//Y0BOToQsEIhQqqR728o=";
|
||||
|
||||
meta = {
|
||||
description = "Tiling window manager for macos";
|
||||
homepage = "https://github.com/acsandmann/rift";
|
||||
changelog = "https://github.com/acsandmann/rift/releases/tag/${finalAttrs.src.tag}";
|
||||
license = lib.licenses.asl20;
|
||||
maintainers = with lib.maintainers; [ eveeifyeve ];
|
||||
mainProgram = "rift";
|
||||
platforms = lib.platforms.darwin;
|
||||
};
|
||||
})
|
||||
|
|
@ -78,7 +78,7 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
description = "Sayonara music player";
|
||||
homepage = "https://sayonara-player.com/";
|
||||
license = lib.licenses.gpl3;
|
||||
maintainers = with lib.maintainers; [ deepfire ];
|
||||
maintainers = [ ];
|
||||
platforms = lib.platforms.unix;
|
||||
};
|
||||
})
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ stdenv.mkDerivation {
|
|||
description = "Small Footprint CIM Client Library";
|
||||
homepage = "https://sourceforge.net/projects/sblim/";
|
||||
license = lib.licenses.cpl10;
|
||||
maintainers = with lib.maintainers; [ deepfire ];
|
||||
maintainers = [ ];
|
||||
platforms = lib.platforms.unix;
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,6 +18,10 @@ rustPlatform.buildRustPackage (finalAttrs: {
|
|||
|
||||
cargoHash = "sha256-iOCIX7hq8RqRihVQrVoU2qCTSziuJePxsexkDSCZS9c=";
|
||||
|
||||
# Only build the CLI; the workspace also has a build-only `xtask` helper.
|
||||
cargoBuildFlags = [ "--package=sd-cli" ];
|
||||
cargoTestFlags = [ "--package=sd-cli" ];
|
||||
|
||||
nativeBuildInputs = [ installShellFiles ];
|
||||
|
||||
postInstall = ''
|
||||
|
|
|
|||
|
|
@ -18,14 +18,14 @@
|
|||
}:
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "slint-lsp";
|
||||
version = "1.16.1";
|
||||
version = "1.17.0";
|
||||
|
||||
src = fetchCrate {
|
||||
inherit (finalAttrs) pname version;
|
||||
hash = "sha256-+REZRGPgdbBUDZaZ+3R2AKF56MouPIsjx8IVv1LUl50=";
|
||||
hash = "sha256-6TwEB3t0vwDnvGmZU1LSIkYbA02NEyVI4wbEeqYbatM=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-BP50c1GCAFTpRGqZDw3I5WtXabdN/2CcVhX2d1eXtck=";
|
||||
cargoHash = "sha256-RTWfR/RmijSj5DlS+9tJ6uG534NmG5jy+p1hliEsdiE=";
|
||||
|
||||
rpathLibs = [
|
||||
fontconfig
|
||||
|
|
|
|||
|
|
@ -26,6 +26,6 @@ rustPlatform.buildRustPackage (finalAttrs: {
|
|||
homepage = "https://github.com/dalance/svlint";
|
||||
changelog = "https://github.com/dalance/svlint/blob/v${finalAttrs.version}/CHANGELOG.md";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ trepetti ];
|
||||
maintainers = [ ];
|
||||
};
|
||||
})
|
||||
|
|
|
|||
|
|
@ -22,6 +22,6 @@ rustPlatform.buildRustPackage (finalAttrs: {
|
|||
mainProgram = "svls";
|
||||
homepage = "https://github.com/dalance/svls";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ trepetti ];
|
||||
maintainers = [ ];
|
||||
};
|
||||
})
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
|
||||
python3Packages.buildPythonApplication (finalAttrs: {
|
||||
pname = "whichllm";
|
||||
version = "0.5.12";
|
||||
version = "0.5.13";
|
||||
pyproject = true;
|
||||
__structuredAttrs = true;
|
||||
|
||||
|
|
@ -15,7 +15,7 @@ python3Packages.buildPythonApplication (finalAttrs: {
|
|||
owner = "Andyyyy64";
|
||||
repo = "whichllm";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-B/pJyRMJBkxs9ANGVDN+ub8yKCOxtNQ+uHsy7i71BOE=";
|
||||
hash = "sha256-54gM7ChlpWjT2L1lQkdnOttdx7TgDZf3SdXzqtRcbQs=";
|
||||
};
|
||||
|
||||
build-system = with python3Packages; [ hatchling ];
|
||||
|
|
|
|||
|
|
@ -54,6 +54,6 @@ stdenv.mkDerivation {
|
|||
homepage = "https://github.com/ianka/xfs_undelete";
|
||||
license = lib.licenses.gpl3;
|
||||
platforms = lib.platforms.linux;
|
||||
maintainers = [ lib.maintainers.deepfire ];
|
||||
maintainers = [ ];
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,8 +23,6 @@ buildDunePackage (finalAttrs: {
|
|||
homepage = "https://mmottl.github.io/pcre-ocaml";
|
||||
description = "Efficient C-library for pattern matching with Perl-style regular expressions in OCaml";
|
||||
license = lib.licenses.lgpl21Plus;
|
||||
maintainers = with lib.maintainers; [
|
||||
vbmithr
|
||||
];
|
||||
maintainers = [ ];
|
||||
};
|
||||
})
|
||||
|
|
|
|||
|
|
@ -34,7 +34,6 @@ stdenv.mkDerivation rec {
|
|||
license = lib.licenses.bsd3;
|
||||
inherit (ocaml.meta) platforms;
|
||||
maintainers = with lib.maintainers; [
|
||||
vbmithr
|
||||
gal_bolle
|
||||
];
|
||||
};
|
||||
|
|
|
|||
|
|
@ -7,16 +7,16 @@
|
|||
|
||||
php.buildComposerProject2 (finalAttrs: {
|
||||
pname = "grumphp";
|
||||
version = "2.21.0";
|
||||
version = "2.22.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "phpro";
|
||||
repo = "grumphp";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-vQ6H8IpHHSfmlRcRgXcYhQeV3vmtkB3S5F8WltJqcKE=";
|
||||
hash = "sha256-qcgz6RWq5kzh0Vopkz3Gr1cU4lo/VNM6yAGQq4v34NY=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-Z3v5n7YhcyRF5iZhGa+iju81bObD0Nzls2V8DZ2WBVk=";
|
||||
vendorHash = "sha256-g6iKl+o0kzvjuxE4lJP783ey+pNH2CZCKBLAKPxjb+Y=";
|
||||
|
||||
doInstallCheck = true;
|
||||
nativeInstallCheckInputs = [ versionCheckHook ];
|
||||
|
|
|
|||
|
|
@ -12,14 +12,14 @@
|
|||
|
||||
buildPythonPackage (finalAttrs: {
|
||||
pname = "dsmr-parser";
|
||||
version = "1.9.0";
|
||||
version = "1.11.0";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ndokter";
|
||||
repo = "dsmr_parser";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-KoSRfkTKdAusDi1twiU4Xs0p4nijDslkDPJMTfUvWsE=";
|
||||
hash = "sha256-utpirGJ9M+2HAOcTAE325hIHOHgHrsBYisDGGQ1PKWY=";
|
||||
};
|
||||
|
||||
pythonRelaxDeps = [ "dlms_cosem" ];
|
||||
|
|
|
|||
|
|
@ -14,14 +14,14 @@
|
|||
|
||||
buildPythonPackage (finalAttrs: {
|
||||
pname = "elevenlabs";
|
||||
version = "2.53.0";
|
||||
version = "2.54.0";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "elevenlabs";
|
||||
repo = "elevenlabs-python";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-V/6zky0jekajrFZh+D6jlK3GSDN4Ms0mByi9CHceGo8=";
|
||||
hash = "sha256-YA7rh/mz522f5Ak9s+NeXCl91ugJ+pnpwZijNEGBn+I=";
|
||||
};
|
||||
|
||||
build-system = [ poetry-core ];
|
||||
|
|
|
|||
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
lib,
|
||||
pkgs,
|
||||
fetchPypi,
|
||||
fetchpatch,
|
||||
fetchFromGitHub,
|
||||
buildPythonPackage,
|
||||
click,
|
||||
joblib,
|
||||
regex,
|
||||
setuptools,
|
||||
tqdm,
|
||||
|
||||
# preInstallCheck
|
||||
|
|
@ -20,33 +20,25 @@
|
|||
pytest-mock,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
buildPythonPackage (finalAttrs: {
|
||||
pname = "nltk";
|
||||
version = "3.9.2";
|
||||
format = "setuptools";
|
||||
version = "3.9.4";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256-D0CemwacpBd8GQPD6EPu+Qx+kpkvpJMa5gfabeSeFBk=";
|
||||
src = fetchFromGitHub {
|
||||
owner = "nltk";
|
||||
repo = "nltk";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-kDfMiqXgLq91zzDjv/qDn0XwQkYRn2sITI6E4pgWe/8=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# https://github.com/nltk/nltk/security/advisories/GHSA-jm6w-m3j8-898g
|
||||
# https://github.com/NixOS/nixpkgs/issues/502599
|
||||
(fetchpatch {
|
||||
name = "fix-unauthed-shutdown";
|
||||
url = "https://github.com/nltk/nltk/commit/bbaae83db86a0f49e00f5b0db44a7254c268de9b.patch";
|
||||
hash = "sha256-1ZzOQXiNxZ6o7JQs0b9FpsUjZtuUAjXEmDkc9mV3dYU=";
|
||||
})
|
||||
postPatch = ''
|
||||
# In the nix store we trust
|
||||
substituteInPlace nltk/pathsec.py \
|
||||
--replace-fail 'if not (target == scoped_root or target.is_relative_to(scoped_root)):' 'if not (target == scoped_root or target.is_relative_to(scoped_root) or target.is_relative_to("/nix/store")):'
|
||||
'';
|
||||
|
||||
# https://github.com/nltk/nltk/security/advisories/GHSA-469j-vmhf-r6v7
|
||||
# https://github.com/NixOS/nixpkgs/issues/502535
|
||||
(fetchpatch {
|
||||
name = "fix-downloader-path-traversal";
|
||||
url = "https://github.com/nltk/nltk/commit/89fe2ec2c6bae6e2e7a46dad65cc34231976ed8a.patch";
|
||||
hash = "sha256-hQJmVEDDcio4Ew+Y10WzMV53mpYZuuDsFcEZKEzl7nk=";
|
||||
})
|
||||
];
|
||||
build-system = [ setuptools ];
|
||||
|
||||
dependencies = [
|
||||
click
|
||||
|
|
@ -122,4 +114,4 @@ buildPythonPackage rec {
|
|||
license = lib.licenses.asl20;
|
||||
maintainers = [ lib.maintainers.bengsparks ];
|
||||
};
|
||||
}
|
||||
})
|
||||
|
|
|
|||
|
|
@ -3,19 +3,22 @@
|
|||
buildPythonPackage,
|
||||
fetchPypi,
|
||||
pyserial,
|
||||
setuptools,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
buildPythonPackage (finalAttrs: {
|
||||
pname = "pykwb";
|
||||
version = "0.0.10";
|
||||
format = "setuptools";
|
||||
version = "0.0.21";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256-mor2TKhq08w4HzaUaspWOMEFwJaAKjXKoNAaoZJqWPQ=";
|
||||
inherit (finalAttrs) pname version;
|
||||
hash = "sha256-53or6KOjZujOIq9yZ30Ph704I8T93AX/EoJZeVS3ihI=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ pyserial ];
|
||||
build-system = [ setuptools ];
|
||||
|
||||
dependencies = [ pyserial ];
|
||||
|
||||
# Module has no tests
|
||||
doCheck = false;
|
||||
|
|
@ -25,7 +28,7 @@ buildPythonPackage rec {
|
|||
meta = {
|
||||
description = "Library for interacting with KWB Easyfire Pellet Central Heating Units";
|
||||
homepage = "https://github.com/bimbar/pykwb";
|
||||
license = with lib.licenses; [ mit ];
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ fab ];
|
||||
};
|
||||
}
|
||||
})
|
||||
|
|
|
|||
|
|
@ -46,6 +46,6 @@ buildPythonPackage rec {
|
|||
homepage = "https://github.com/PyHDI/Pyverilog";
|
||||
description = "Python-based Hardware Design Processing Toolkit for Verilog HDL";
|
||||
license = lib.licenses.asl20;
|
||||
maintainers = with lib.maintainers; [ trepetti ];
|
||||
maintainers = [ ];
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@ buildPythonPackage rec {
|
|||
description = "Swiss Army knife of sub-GHz ISM band radio";
|
||||
homepage = "https://github.com/atlas0fd00m/rfcat";
|
||||
license = lib.licenses.bsd3;
|
||||
maintainers = with lib.maintainers; [ trepetti ];
|
||||
maintainers = [ ];
|
||||
changelog = "https://github.com/atlas0fd00m/rfcat/releases/tag/v${version}";
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -46,6 +46,6 @@ buildPythonPackage rec {
|
|||
homepage = "https://github.com/deeplook/svglib";
|
||||
changelog = "https://github.com/deeplook/svglib/blob/v${version}/CHANGELOG.rst";
|
||||
license = lib.licenses.lgpl3Only;
|
||||
maintainers = with lib.maintainers; [ trepetti ];
|
||||
maintainers = [ ];
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,26 +2,33 @@
|
|||
buildPythonPackage,
|
||||
lib,
|
||||
fetchPypi,
|
||||
setuptools,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
buildPythonPackage (finalAttrs: {
|
||||
pname = "xstatic-asciinema-player";
|
||||
version = "2.6.1.1";
|
||||
format = "setuptools";
|
||||
pyproject = true;
|
||||
|
||||
__structuredAttrs = true;
|
||||
|
||||
src = fetchPypi {
|
||||
pname = "XStatic-asciinema-player";
|
||||
inherit version;
|
||||
inherit (finalAttrs) version;
|
||||
hash = "sha256-yA6WC067St82Dm6StaCKdWrRBhmNemswetIO8iodfcw=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
# no tests implemented
|
||||
doCheck = false;
|
||||
|
||||
pythonImportsCheck = [ "xstatic.pkg.asciinema_player" ];
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/python-xstatic/asciinema-player";
|
||||
homepage = "https://github.com/xstatic-py/xstatic-asciinema-player";
|
||||
description = "Asciinema-player packaged for python";
|
||||
license = lib.licenses.asl20;
|
||||
maintainers = with lib.maintainers; [ aither64 ];
|
||||
};
|
||||
}
|
||||
})
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ stdenv.mkDerivation {
|
|||
description = "Server part of irony";
|
||||
mainProgram = "irony-server";
|
||||
homepage = "https://melpa.org/#/irony";
|
||||
maintainers = [ lib.maintainers.deepfire ];
|
||||
maintainers = [ ];
|
||||
platforms = lib.platforms.unix;
|
||||
license = lib.licenses.free;
|
||||
};
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue