Merge master into staging-next
This commit is contained in:
commit
465eb86dbb
6
.github/workflows/labels.yml
vendored
6
.github/workflows/labels.yml
vendored
@ -65,6 +65,7 @@ jobs:
|
||||
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
|
||||
with:
|
||||
github-token: ${{ steps.app-token.outputs.token || github.token }}
|
||||
retries: 3
|
||||
script: |
|
||||
const Bottleneck = require('bottleneck')
|
||||
const path = require('node:path')
|
||||
@ -147,8 +148,6 @@ jobs:
|
||||
...context.repo,
|
||||
workflow_id: 'pr.yml',
|
||||
event: 'pull_request_target',
|
||||
// In pull_request contexts the workflow is still running.
|
||||
status: context.payload.pull_request ? undefined : 'success',
|
||||
exclude_pull_requests: true,
|
||||
head_sha: pull_request.head.sha
|
||||
})).data.workflow_runs[0]?.id ??
|
||||
@ -247,6 +246,7 @@ jobs:
|
||||
.sort((a,b) => b-a)
|
||||
.at(0) ?? item.created_at
|
||||
)
|
||||
log('latest_event_at', latest_event_at.toISOString())
|
||||
|
||||
const stale_at = new Date(new Date().setDate(new Date().getDate() - 180))
|
||||
|
||||
@ -390,7 +390,7 @@ jobs:
|
||||
// so it should certainly be hit on the next iteration.
|
||||
// TODO: Evaluate after a while, whether the above holds still true and potentially implement
|
||||
// an overlap between runs.
|
||||
page: total_runs % Math.ceil(total_pulls / 100)
|
||||
page: (total_runs % Math.ceil(total_pulls / 100)) + 1
|
||||
})).data
|
||||
|
||||
// Some items might be in both search results, so filtering out duplicates as well.
|
||||
|
@ -25915,6 +25915,12 @@
|
||||
github = "TyberiusPrime";
|
||||
githubId = 1257580;
|
||||
};
|
||||
tye-exe = {
|
||||
name = "Tye";
|
||||
email = "nixpkgs-fr@tye-home.xyz";
|
||||
github = "tye-exe";
|
||||
githubId = 131195812;
|
||||
};
|
||||
Tygo-van-den-Hurk = {
|
||||
name = "Tygo van den Hurk";
|
||||
github = "Tygo-van-den-Hurk";
|
||||
|
@ -5100,6 +5100,19 @@ final: prev: {
|
||||
meta.hydraPlatforms = [ ];
|
||||
};
|
||||
|
||||
freeze-nvim = buildVimPlugin {
|
||||
pname = "freeze.nvim";
|
||||
version = "2025-03-25";
|
||||
src = fetchFromGitHub {
|
||||
owner = "charm-and-friends";
|
||||
repo = "freeze.nvim";
|
||||
rev = "590fdb0d724485f578e4fee0e3ae2b32040dfb1a";
|
||||
sha256 = "1641xxp7yq4z25xck3l9vfcm0dvxcjvagawzixs4mvag214ndlam";
|
||||
};
|
||||
meta.homepage = "https://github.com/charm-and-friends/freeze.nvim/";
|
||||
meta.hydraPlatforms = [ ];
|
||||
};
|
||||
|
||||
friendly-snippets = buildVimPlugin {
|
||||
pname = "friendly-snippets";
|
||||
version = "2025-04-29";
|
||||
|
@ -16,6 +16,7 @@
|
||||
mkYarnModules,
|
||||
python3,
|
||||
# Misc dependencies
|
||||
charm-freeze,
|
||||
code-minimap,
|
||||
dailies,
|
||||
dasht,
|
||||
@ -1175,6 +1176,10 @@ in
|
||||
dependencies = [ self.self ];
|
||||
};
|
||||
|
||||
freeze-nvim = super.freeze-nvim.overrideAttrs {
|
||||
runtimeDeps = [ charm-freeze ];
|
||||
};
|
||||
|
||||
fruzzy =
|
||||
let
|
||||
# until https://github.com/NixOS/nixpkgs/pull/67878 is merged, there's no better way to install nim libraries with nix
|
||||
|
@ -390,6 +390,7 @@ https://github.com/jghauser/follow-md-links.nvim/,HEAD,
|
||||
https://github.com/mhartington/formatter.nvim/,,
|
||||
https://github.com/megaannum/forms/,,
|
||||
https://github.com/rubiin/fortune.nvim/,HEAD,
|
||||
https://github.com/charm-and-friends/freeze.nvim/,HEAD,
|
||||
https://github.com/rafamadriz/friendly-snippets/,,
|
||||
https://github.com/raghur/fruzzy/,,
|
||||
https://github.com/SuperBo/fugit2.nvim/,HEAD,
|
||||
|
@ -3948,8 +3948,8 @@ let
|
||||
mktplcRef = {
|
||||
name = "prisma";
|
||||
publisher = "Prisma";
|
||||
version = "6.10.0";
|
||||
hash = "sha256-+oYDEbDMltGhyjtyCJcDaR074SzVWW48vzoOlxklojU=";
|
||||
version = "6.10.1";
|
||||
hash = "sha256-3Qx5HAkRnxByRHyX99PIRlHwI7FeenVcK8v9T+d5++4=";
|
||||
};
|
||||
meta = {
|
||||
changelog = "https://marketplace.visualstudio.com/items/Prisma.prisma/changelog";
|
||||
@ -4668,8 +4668,8 @@ let
|
||||
mktplcRef = {
|
||||
name = "svelte-vscode";
|
||||
publisher = "svelte";
|
||||
version = "109.8.1";
|
||||
hash = "sha256-ILZ7YA7LngwpU3U+qsgHPd+oxyqLNGRiKUCFC/OMBAo=";
|
||||
version = "109.9.0";
|
||||
hash = "sha256-OgcFFYoJOtFVlOM12gYBG0AkliniawG6GdRtrFsjDIg=";
|
||||
};
|
||||
meta = {
|
||||
changelog = "https://github.com/sveltejs/language-tools/releases";
|
||||
|
@ -7,8 +7,8 @@ vscode-utils.buildVscodeMarketplaceExtension {
|
||||
mktplcRef = {
|
||||
name = "claude-dev";
|
||||
publisher = "saoudrizwan";
|
||||
version = "3.17.14";
|
||||
hash = "sha256-pYO1uy1Xd2+74rbc0D+MwK8xvSpmDeRLAVIjAR/F23w=";
|
||||
version = "3.18.0";
|
||||
hash = "sha256-h4A3tYCY3o89bF++YqOCUlahJsRE0XTdK7+NN/LbhgM=";
|
||||
};
|
||||
|
||||
meta = {
|
||||
|
@ -5,13 +5,13 @@
|
||||
}:
|
||||
mkLibretroCore {
|
||||
core = "snes9x";
|
||||
version = "0-unstable-2025-06-13";
|
||||
version = "0-unstable-2025-06-18";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "snes9xgit";
|
||||
repo = "snes9x";
|
||||
rev = "a93dd67c516061c3390506eb26e0457a264f86b6";
|
||||
hash = "sha256-IOxYhDkrd9TgzEGiCM2HQxUiTv3Icmc0JE6216PqbYg=";
|
||||
rev = "a168e789719d6bc8e06110d517d98c3d098d5834";
|
||||
hash = "sha256-Kxi+/Uie0a7gmlNEj351Nlybb16W4A4joC8JSN1rvsU=";
|
||||
};
|
||||
|
||||
makefile = "Makefile";
|
||||
|
@ -5,13 +5,13 @@
|
||||
}:
|
||||
mkLibretroCore {
|
||||
core = "stella";
|
||||
version = "0-unstable-2025-06-12";
|
||||
version = "0-unstable-2025-06-26";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "stella-emu";
|
||||
repo = "stella";
|
||||
rev = "ee0b96cd87710ad19aa47156d39df5a92c156a34";
|
||||
hash = "sha256-BnDF/UC3GiBC/06zBCDYrWA5cJPv7vtJ0grYgn5CcKo=";
|
||||
rev = "c6ce6e80e87c828701629980e8a7119f3b08c5ab";
|
||||
hash = "sha256-403Z0W9OQYbb8+O8kSWbpHkqywVhXbqqIyfsGlgEi+M=";
|
||||
};
|
||||
|
||||
makefile = "Makefile";
|
||||
|
@ -8,17 +8,17 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "kubectl-view-allocations";
|
||||
version = "0.22.0";
|
||||
version = "0.22.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "davidB";
|
||||
repo = "kubectl-view-allocations";
|
||||
tag = version;
|
||||
hash = "sha256-MwTncyfR6knXss83sd3u879YRFUxWdDyNLpQO40sZ9c=";
|
||||
hash = "sha256-6kHeILapewfyJjp5Xtq0rK5eHf8jymvc5xFGW8Qi9VU=";
|
||||
};
|
||||
|
||||
useFetchCargoVendor = true;
|
||||
cargoHash = "sha256-bbNjOMShJMCWEcxU8F+R1BC6fqlLe2AK0y3N00HXjts=";
|
||||
cargoHash = "sha256-evxwaZkToAjVvrnvOmz3HpOi+976sxPCOIlR8rmpYyo=";
|
||||
|
||||
doInstallCheck = true;
|
||||
nativeInstallCheckInputs = [ versionCheckHook ];
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
(callPackage ./generic.nix { }) {
|
||||
channel = "edge";
|
||||
version = "25.6.1";
|
||||
sha256 = "0lpf9f5bj6x8b21xak6dzwscj0w9jcdvz83fl6nymy8z8y0dybq7";
|
||||
version = "25.6.2";
|
||||
sha256 = "0499zs1iq1a8i2xyg5yb59c8r08nw3zlahbn8w4rsrfb5099924p";
|
||||
vendorHash = "sha256-ePioPHA9gps76VncdPkDEDE3sLUlrCxr7CFsXqoR6KM=";
|
||||
}
|
||||
|
@ -13,16 +13,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "netmaker";
|
||||
version = "0.90.0";
|
||||
version = "0.99.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "gravitl";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
hash = "sha256-/7tj3SuTa2lSMgN4f2/OutzoPvAN7ARK1RKTLlMw13Y=";
|
||||
hash = "sha256-DUD6JTnTM3QVLhWIoRZ0Jc+Jre8GXtuKkV6MzLYCg4U=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-Yd9vwdIwAGinIr/RLGdb4N9hsDeMu9aB2Z1EVnlxxtA=";
|
||||
vendorHash = "sha256-QD9jkpsANzJeFHd4miShgACNOvI6sy38fs7pZNkPhms=";
|
||||
|
||||
inherit subPackages;
|
||||
|
||||
|
@ -140,8 +140,6 @@ You can locally emulate the CI check using
|
||||
$ ./ci/nixpkgs-vet.sh master
|
||||
```
|
||||
|
||||
See [here](../../.github/workflows/nixpkgs-vet.yml) for more info.
|
||||
|
||||
## Recommendation for new packages with multiple versions
|
||||
|
||||
These checks of the `pkgs/by-name` structure can cause problems in combination:
|
||||
|
@ -2,7 +2,8 @@
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
rustPlatform,
|
||||
perl,
|
||||
openssl,
|
||||
pkg-config,
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
@ -16,15 +17,18 @@ rustPlatform.buildRustPackage (finalAttrs: {
|
||||
hash = "sha256-DFIiVNYom3LvU9IFA9w9FvXwm9gqfACDs8KaFKQR9Qs=";
|
||||
};
|
||||
|
||||
useFetchCargoVendor = true;
|
||||
cargoHash = "sha256-/2i6GyBTKLf2oNFkizaBUHcLcCPgsy3g0p31D6cO+xg=";
|
||||
|
||||
nativeBuildInputs = [ perl ];
|
||||
buildInputs = [ openssl ];
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
|
||||
env.OPENSSL_NO_VENDOR = true;
|
||||
|
||||
meta = {
|
||||
description = "Official launcher for AlterWare Call of Duty mods";
|
||||
longDescription = "Our clients are designed to restore missing features that have been removed by the developers, as well as enhance the capabilities of the games";
|
||||
homepage = "https://alterware.dev";
|
||||
downloadPage = "https://github.com/alterware/alterware-launcher";
|
||||
changelog = "https://github.com/alterware/alterware-launcher/releases/tag/v${finalAttrs.version}";
|
||||
license = lib.licenses.gpl3Only;
|
||||
maintainers = with lib.maintainers; [ andrewfield ];
|
||||
|
@ -4,7 +4,7 @@
|
||||
gtksourceview5,
|
||||
libspelling,
|
||||
fetchFromGitHub,
|
||||
python3Packages,
|
||||
python312Packages,
|
||||
nodePackages,
|
||||
meson,
|
||||
ninja,
|
||||
@ -40,7 +40,10 @@ let
|
||||
hash = "sha256-L6KVBw20K67lHT07Ws+ZC2DwdURahqyuyjAaK0kTgN0=";
|
||||
};
|
||||
in
|
||||
python3Packages.buildPythonApplication {
|
||||
|
||||
# Requires telnetlib, and possibly others
|
||||
# Try to remove in subsequent updates
|
||||
python312Packages.buildPythonApplication {
|
||||
inherit version src;
|
||||
pname = "apostrophe";
|
||||
pyproject = false;
|
||||
@ -80,7 +83,7 @@ python3Packages.buildPythonApplication {
|
||||
webkitgtk_6_0
|
||||
];
|
||||
|
||||
propagatedBuildInputs = with python3Packages; [
|
||||
dependencies = with python312Packages; [
|
||||
pygobject3
|
||||
pypandoc
|
||||
chardet
|
||||
|
@ -8,13 +8,13 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "bento";
|
||||
version = "1.8.1";
|
||||
version = "1.8.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "warpstreamlabs";
|
||||
repo = "bento";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-5AXXtjQU8GGepAlXWPAA32WfnkFtNmyJDaSqfbvoips=";
|
||||
hash = "sha256-EAEeyMWXL/OL/LGgOQxvXtwrrVXtqY05AMeU5z86tks=";
|
||||
};
|
||||
|
||||
proxyVendor = true;
|
||||
|
@ -1,12 +1,10 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonApplication,
|
||||
python3Packages,
|
||||
fetchFromGitHub,
|
||||
pyserial,
|
||||
halo,
|
||||
}:
|
||||
|
||||
buildPythonApplication rec {
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "btlejack";
|
||||
version = "2.1.1";
|
||||
|
||||
@ -22,15 +20,15 @@ buildPythonApplication rec {
|
||||
'';
|
||||
|
||||
propagatedBuildInputs = [
|
||||
pyserial
|
||||
halo
|
||||
python3Packages.pyserial
|
||||
python3Packages.halo
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
homepage = "https://github.com/virtualabs/btlejack";
|
||||
description = "Bluetooth Low Energy Swiss-army knife";
|
||||
mainProgram = "btlejack";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ oxzi ];
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ oxzi ];
|
||||
};
|
||||
}
|
@ -11,12 +11,12 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "cannelloni";
|
||||
version = "1.2.1";
|
||||
version = "2.0.0";
|
||||
src = fetchFromGitHub {
|
||||
owner = "mguentner";
|
||||
repo = "cannelloni";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-dhrB3qg/ljAP7nX+WpX+g7HaUEGj5pTPdDhY2Mi7pUo=";
|
||||
hash = "sha256-b3pBC2XFK+pyONvnkPw/0YUXAG2cRD1OaN7k2ONzFV8=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -6,13 +6,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "cctz";
|
||||
version = "2.4";
|
||||
version = "2.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "google";
|
||||
repo = "cctz";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-F4h8nT1karymV16FFHC0ldSbdOOx5AMstqi4Bc5m3UQ=";
|
||||
sha256 = "sha256-YCE0DXuOT5tCOfLlemMH7I2F8c7HEK1NEUJvtfqnCg8=";
|
||||
};
|
||||
|
||||
makeFlags = [ "PREFIX=$(out)" ];
|
||||
|
@ -6,17 +6,17 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "comrak";
|
||||
version = "0.39.0";
|
||||
version = "0.39.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "kivikakk";
|
||||
repo = "comrak";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-hy/kn8hShwzLHvzp3x1eSGipYRSXjOYCMPHEM1xQEr0=";
|
||||
sha256 = "sha256-czdX4Xfh5vD0d30QhxtTnzmwHkrX86fw8dVIx5b5J2c=";
|
||||
};
|
||||
|
||||
useFetchCargoVendor = true;
|
||||
cargoHash = "sha256-MFSyxoNzPzIP2Yi3lCyEcsAx4DvNmk2Jr75oD/tX9iE=";
|
||||
cargoHash = "sha256-QeMFaYpi8d88gpEbev485hGSCVTbEd7jbgkGSyGeM3g=";
|
||||
|
||||
meta = {
|
||||
description = "CommonMark-compatible GitHub Flavored Markdown parser and formatter";
|
||||
|
@ -9,16 +9,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "diffoci";
|
||||
version = "0.1.6";
|
||||
version = "0.1.7";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "reproducible-containers";
|
||||
repo = "diffoci";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-rCSLHlHUWS0wEnN8R2v1h+kQ7K62VQPfZmySHGSFZlQ=";
|
||||
hash = "sha256-RBMgcTUdPO12rFUY82JkubXfaGjfB4oR+UqKwumFWs0=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-udVigglpCgdYzJe9vdGZiQepZeOplQjqKB4Za8a+u6k=";
|
||||
vendorHash = "sha256-NqYGehd+RcspQt5gQl9XH85Ds0dw+MU8W7xH/uzNjqU=";
|
||||
|
||||
ldflags = [
|
||||
"-s"
|
||||
|
@ -15,13 +15,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "flowblade";
|
||||
version = "2.20";
|
||||
version = "2.22";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jliljebl";
|
||||
repo = "flowblade";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-5w8mGFPOawbUwinzVLSCUZWGxuyxhi1/3tOrmQyfUUg=";
|
||||
sha256 = "sha256-0puu0S4zONapjXaVBpPG5mH3UidQwre9yCSkjJVhdkc=";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
|
@ -8,13 +8,13 @@
|
||||
|
||||
buildNpmPackage rec {
|
||||
pname = "fluidd";
|
||||
version = "1.34.2";
|
||||
version = "1.34.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "fluidd-core";
|
||||
repo = "fluidd";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-DbuUAHsRwAiXTGjAPxT1zEcsxNloCEFLuA62/wR4+yg=";
|
||||
hash = "sha256-e3JM9QshQFHvDXvZznQBDFsOiwzxw2lz2hChw66lmMM=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
@ -23,7 +23,7 @@ buildNpmPackage rec {
|
||||
})
|
||||
];
|
||||
|
||||
npmDepsHash = "sha256-ZOsPUON9/bBvSrc432SGHEKKLl9ZVCq9/Nkr9Xxba/g=";
|
||||
npmDepsHash = "sha256-WDquc35cwyTyVM8Il5aVYWbJqSKhR8wsMNNFgexFKYg=";
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/share/fluidd
|
||||
|
@ -64,8 +64,12 @@ python3Packages.buildPythonApplication rec {
|
||||
install -Dm644 data/logos/gaphor-24x24.png $out/share/icons/hicolor/24x24/apps/org.gaphor.Gaphor.png
|
||||
install -Dm644 data/logos/gaphor-48x48.png $out/share/icons/hicolor/48x48/apps/org.gaphor.Gaphor.png
|
||||
|
||||
install -Dm644 gaphor/ui/installschemas/org.gaphor.Gaphor.gschema.xml -t $out/share/glib-2.0/schemas/
|
||||
glib-compile-schemas $out/share/glib-2.0/schemas/
|
||||
GSCHEMA_PATH=$out/share/gsettings-schemas/$name/glib-2.0/schemas
|
||||
install -Dm644 gaphor/ui/installschemas/org.gaphor.Gaphor.gschema.xml -t $GSCHEMA_PATH
|
||||
glib-compile-schemas $GSCHEMA_PATH
|
||||
substituteInPlace $out/${python3Packages.python.sitePackages}/gaphor/settings.py \
|
||||
--replace-fail 'Gio.SettingsSchemaSource.get_default()' \
|
||||
"Gio.SettingsSchemaSource.new_from_directory('$GSCHEMA_PATH', Gio.SettingsSchemaSource.get_default(), False)"
|
||||
|
||||
install -Dm644 data/org.gaphor.Gaphor.service -t $out/share/dbus-1/services/
|
||||
substituteInPlace $out/share/dbus-1/services/org.gaphor.Gaphor.service \
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
lib,
|
||||
clangStdenv,
|
||||
stdenv,
|
||||
fetchFromGitLab,
|
||||
rustPlatform,
|
||||
cargo,
|
||||
@ -11,23 +11,17 @@
|
||||
glib,
|
||||
gtk4,
|
||||
libadwaita,
|
||||
zbar,
|
||||
sqlite,
|
||||
openssl,
|
||||
pipewire,
|
||||
gstreamer,
|
||||
gst-plugins-base,
|
||||
gst-plugins-bad,
|
||||
gst-plugins-good,
|
||||
gst-plugins-rs,
|
||||
gst_all_1,
|
||||
wrapGAppsHook4,
|
||||
appstream-glib,
|
||||
desktop-file-utils,
|
||||
glycin-loaders,
|
||||
nix-update-script,
|
||||
}:
|
||||
|
||||
clangStdenv.mkDerivation rec {
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "gnome-decoder";
|
||||
version = "0.7.1";
|
||||
|
||||
@ -35,28 +29,21 @@ clangStdenv.mkDerivation rec {
|
||||
domain = "gitlab.gnome.org";
|
||||
owner = "World";
|
||||
repo = "decoder";
|
||||
rev = version;
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-lLZ8tll/R9cwk3t/MULmrR1KWZ1e+zneXL93035epPE=";
|
||||
};
|
||||
|
||||
cargoDeps = rustPlatform.fetchCargoVendor {
|
||||
inherit pname version src;
|
||||
inherit (finalAttrs) pname version src;
|
||||
hash = "sha256-USfC7HSL1TtjP1SmBRTKkPyKE4DkSn6xeH4mzfIBQWg=";
|
||||
};
|
||||
|
||||
preFixup = ''
|
||||
gappsWrapperArgs+=(
|
||||
# vp8enc preset
|
||||
--prefix GST_PRESET_PATH : "${gst-plugins-good}/share/gstreamer-1.0/presets"
|
||||
# See https://gitlab.gnome.org/sophie-h/glycin/-/blob/0.1.beta.2/glycin/src/config.rs#L44
|
||||
--prefix XDG_DATA_DIRS : "${glycin-loaders}/share"
|
||||
)
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
glib
|
||||
gtk4
|
||||
wrapGAppsHook4
|
||||
appstream-glib
|
||||
desktop-file-utils
|
||||
@ -70,28 +57,34 @@ clangStdenv.mkDerivation rec {
|
||||
glib
|
||||
gtk4
|
||||
libadwaita
|
||||
zbar
|
||||
sqlite
|
||||
openssl
|
||||
pipewire
|
||||
gstreamer
|
||||
gst-plugins-base
|
||||
gst-plugins-bad
|
||||
gst-plugins-good
|
||||
gst-plugins-rs # for gtk4paintablesink
|
||||
gst_all_1.gstreamer
|
||||
gst_all_1.gst-plugins-base
|
||||
gst_all_1.gst-plugins-bad
|
||||
gst_all_1.gst-plugins-good
|
||||
gst_all_1.gst-plugins-rs # for gtk4paintablesink
|
||||
];
|
||||
|
||||
# Adds vp8enc preset for camera enablement
|
||||
preFixup = ''
|
||||
gappsWrapperArgs+=(
|
||||
--prefix GST_PRESET_PATH : "${gst_all_1.gst-plugins-good}/share/gstreamer-1.0/presets"
|
||||
)
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = nix-update-script { };
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "Scan and Generate QR Codes";
|
||||
meta = {
|
||||
description = "Scan and generate QR codes";
|
||||
homepage = "https://gitlab.gnome.org/World/decoder";
|
||||
license = licenses.gpl3Plus;
|
||||
platforms = platforms.linux;
|
||||
license = lib.licenses.gpl3Plus;
|
||||
maintainers = with lib.maintainers; [ zendo ];
|
||||
mainProgram = "decoder";
|
||||
maintainers = with maintainers; [ zendo ];
|
||||
teams = [ teams.gnome-circle ];
|
||||
platforms = lib.platforms.linux;
|
||||
teams = [ lib.teams.gnome-circle ];
|
||||
};
|
||||
}
|
||||
})
|
@ -15,17 +15,17 @@ let
|
||||
in
|
||||
buildGoModule rec {
|
||||
pname = "go-ethereum";
|
||||
version = "1.15.11";
|
||||
version = "1.16.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ethereum";
|
||||
repo = "go-ethereum";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-2XGKkimwe9h8RxO3SzUta5Bh2Ooldl2LiHqUpn8FK7I=";
|
||||
hash = "sha256-eu6VeG/vMdCOk15HWnKbtKRZbbYhH3y6SJrwEGxJs8w=";
|
||||
};
|
||||
|
||||
proxyVendor = true;
|
||||
vendorHash = "sha256-R9Qg6estiyjMAwN6tvuN9ZuE7+JqjEy+qYOPAg5lIJY=";
|
||||
vendorHash = "sha256-Ggng6EDd5qRqcSbdycfivO8yiQcMOCSZt229JZcOlVs=";
|
||||
|
||||
doCheck = false;
|
||||
|
||||
|
@ -8,16 +8,16 @@
|
||||
|
||||
buildGo124Module rec {
|
||||
pname = "gowebly";
|
||||
version = "3.0.3";
|
||||
version = "3.0.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "gowebly";
|
||||
repo = "gowebly";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-iCdChT/eAWfeZyl5W1UHIjET3MGUD1YakjTToSS7iGs=";
|
||||
hash = "sha256-oz/O5scGJigWjrmA2wnagDbf+epvwuyRI2CaSQY8K5I=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-mFCNrcdwSExjVym4BN1Yb/lsfQHxCDrlWoa9vyQ74ko=";
|
||||
vendorHash = "sha256-BDdH6cFicbjT2WOldNRc8NcFKrIaeqy+mw113PRnwa8=";
|
||||
|
||||
env.CGO_ENABLED = 0;
|
||||
|
||||
|
@ -4,9 +4,7 @@
|
||||
cmake,
|
||||
desktopToDarwinBundle,
|
||||
pkg-config,
|
||||
qtbase,
|
||||
qtsvg,
|
||||
qtwayland,
|
||||
qt6Packages,
|
||||
gnuradioMinimal,
|
||||
thrift,
|
||||
mpir,
|
||||
@ -14,7 +12,6 @@
|
||||
alsa-lib,
|
||||
libjack2,
|
||||
wrapGAppsHook3,
|
||||
wrapQtAppsHook,
|
||||
# drivers (optional):
|
||||
rtl-sdr,
|
||||
hackrf,
|
||||
@ -44,7 +41,7 @@ gnuradioMinimal.pkgs.mkDerivation rec {
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
pkg-config
|
||||
wrapQtAppsHook
|
||||
qt6Packages.wrapQtAppsHook
|
||||
wrapGAppsHook3
|
||||
] ++ lib.optional stdenv.hostPlatform.isDarwin desktopToDarwinBundle;
|
||||
|
||||
@ -55,15 +52,15 @@ gnuradioMinimal.pkgs.mkDerivation rec {
|
||||
fftwFloat
|
||||
libjack2
|
||||
gnuradioMinimal.unwrapped.boost
|
||||
qtbase
|
||||
qtsvg
|
||||
qt6Packages.qtbase
|
||||
qt6Packages.qtsvg
|
||||
gnuradioMinimal.pkgs.osmosdr
|
||||
rtl-sdr
|
||||
hackrf
|
||||
]
|
||||
++ lib.optionals stdenv.hostPlatform.isLinux [
|
||||
alsa-lib
|
||||
qtwayland
|
||||
qt6Packages.qtwayland
|
||||
]
|
||||
++ lib.optionals (gnuradioMinimal.hasFeature "gr-ctrlport") [
|
||||
thrift
|
||||
@ -92,7 +89,7 @@ gnuradioMinimal.pkgs.mkDerivation rec {
|
||||
qtWrapperArgs+=("''${gappsWrapperArgs[@]}")
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
description = "Software defined radio (SDR) receiver";
|
||||
mainProgram = "gqrx";
|
||||
longDescription = ''
|
||||
@ -104,9 +101,9 @@ gnuradioMinimal.pkgs.mkDerivation rec {
|
||||
homepage = "https://gqrx.dk/";
|
||||
# Some of the code comes from the Cutesdr project, with a BSD license, but
|
||||
# it's currently unknown which version of the BSD license that is.
|
||||
license = licenses.gpl3Plus;
|
||||
platforms = platforms.linux ++ platforms.darwin;
|
||||
maintainers = with maintainers; [
|
||||
license = lib.licenses.gpl3Plus;
|
||||
platforms = lib.platforms.linux ++ lib.platforms.darwin;
|
||||
maintainers = with lib.maintainers; [
|
||||
bjornfor
|
||||
fpletz
|
||||
];
|
38
pkgs/by-name/iw/iw4x-launcher/package.nix
Normal file
38
pkgs/by-name/iw/iw4x-launcher/package.nix
Normal file
@ -0,0 +1,38 @@
|
||||
{
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
rustPlatform,
|
||||
openssl,
|
||||
pkg-config,
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "iw4x-launcher";
|
||||
version = "0.10.10";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "iw4x";
|
||||
repo = "launcher";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-VJxOkgk96DnmnlBh5jDFjKVDv7eMtx8RHg7qn0gQpaU=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-nAqT4lkn9H9Yh87Ud+GtRAwgoFbAZNhJtWq2GgrcFbk=";
|
||||
|
||||
buildInputs = [ openssl ];
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
|
||||
env.OPENSSL_NO_VENDOR = true;
|
||||
|
||||
meta = {
|
||||
description = "Official launcher for the IW4x mod";
|
||||
longDescription = "IW4x allows you to relive Call of Duty: Modern Warfare 2 (2009) in a secure environment with expanded modding capabilites";
|
||||
homepage = "https://iw4x.dev";
|
||||
downloadPage = "https://github.com/iw4x/launcher";
|
||||
changelog = "https://github.com/iw4x/launcher/releases/tag/v${finalAttrs.version}";
|
||||
license = lib.licenses.gpl3Only;
|
||||
maintainers = with lib.maintainers; [ andrewfield ];
|
||||
mainProgram = "iw4x-launcher";
|
||||
platforms = lib.platforms.linux ++ lib.platforms.darwin;
|
||||
};
|
||||
})
|
@ -61,7 +61,7 @@ python3Packages.buildPythonApplication rec {
|
||||
# Tests output a few exceptions but still succeed
|
||||
checkPhase = ''
|
||||
runHook preCheck
|
||||
stestr run
|
||||
stestr run -e <(echo "test_load_ok")
|
||||
runHook postCheck
|
||||
'';
|
||||
|
||||
|
@ -6,16 +6,16 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "mcphost";
|
||||
version = "0.13.1";
|
||||
version = "0.18.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mark3labs";
|
||||
repo = "mcphost";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-vPho1fotkvGr1H+XiWpCukjgKifu3bALUQL6y5y+R08=";
|
||||
hash = "sha256-5w42N2RJeZXyM7XiKuwYlGxwH6KIJajGnJ9HCHnBNZ8=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-4jr73N8WcRQTRNvabOrUb2uRCW2LYxhGy0wshsZOcxc=";
|
||||
vendorHash = "sha256-U/XtO4OhcioaSU2iGTNmvEilp9+Yu3TVafzNEaFcWEg=";
|
||||
|
||||
meta = {
|
||||
description = "CLI host application that enables Large Language Models (LLMs) to interact with external tools through the Model Context Protocol (MCP)";
|
||||
|
@ -6,13 +6,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "mcpp";
|
||||
version = "2.7.2.1";
|
||||
version = "2.7.2.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "museoa";
|
||||
repo = "mcpp";
|
||||
rev = finalAttrs.version;
|
||||
hash = "sha256-T4feegblOeG+NU+c+PAobf8HT8KDSfcINkRAa1hNpkY=";
|
||||
hash = "sha256-wz225bhBF0lFerOAhl8Rwmw8ItHd9BXQceweD9BqvEQ=";
|
||||
};
|
||||
|
||||
env = lib.optionalAttrs stdenv.cc.isGNU {
|
||||
|
@ -4,21 +4,24 @@
|
||||
fetchFromGitHub,
|
||||
lib,
|
||||
}:
|
||||
stdenv.mkDerivation rec {
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "micronucleus";
|
||||
version = "2.04";
|
||||
version = "2.6";
|
||||
|
||||
sourceRoot = "${src.name}/commandline";
|
||||
sourceRoot = "${finalAttrs.src.name}/commandline";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "micronucleus";
|
||||
repo = "micronucleus";
|
||||
rev = version;
|
||||
sha256 = "14msy9amlbflw5mqrbs57b7bby3nsgx43srr7215zyhfdgsla0in";
|
||||
rev = "v${finalAttrs.version}";
|
||||
sha256 = "sha256-IngVHeYgPUwSsboTZ5h55iLUxtdBSdugiLk5HbyHIvI=";
|
||||
};
|
||||
|
||||
buildInputs = [ libusb-compat-0_1 ];
|
||||
makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
|
||||
makeFlags = [
|
||||
"CC=${stdenv.cc.targetPrefix}cc"
|
||||
"STATIC="
|
||||
];
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
@ -27,11 +30,14 @@ stdenv.mkDerivation rec {
|
||||
cp 49-micronucleus.rules $out/lib/udev
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
description = "Upload tool for micronucleus";
|
||||
mainProgram = "micronucleus";
|
||||
homepage = "https://github.com/micronucleus/micronucleus";
|
||||
license = licenses.gpl3;
|
||||
maintainers = [ maintainers.cab404 ];
|
||||
license = lib.licenses.gpl3;
|
||||
maintainers = with lib.maintainers; [
|
||||
cab404
|
||||
kuflierl
|
||||
];
|
||||
};
|
||||
}
|
||||
})
|
||||
|
@ -6,13 +6,13 @@
|
||||
}:
|
||||
buildDotnetModule rec {
|
||||
pname = "min-ed-launcher";
|
||||
version = "0.12.0";
|
||||
version = "0.12.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "rfvgyhn";
|
||||
repo = "min-ed-launcher";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-x3T88bhjxlf6K+COGfZGLsgwlEBSs9WR9zV+ZiTzh7g=";
|
||||
hash = "sha256-/dzcWwpg1nIrqICAQIxzwMgfrCB1G9bu2bT7Cv1khFM=";
|
||||
|
||||
leaveDotGit = true; # During build the current commit is appended to the version
|
||||
};
|
||||
|
2063
pkgs/by-name/mi/minhtml/Cargo.lock
generated
Normal file
2063
pkgs/by-name/mi/minhtml/Cargo.lock
generated
Normal file
File diff suppressed because it is too large
Load Diff
43
pkgs/by-name/mi/minhtml/package.nix
Normal file
43
pkgs/by-name/mi/minhtml/package.nix
Normal file
@ -0,0 +1,43 @@
|
||||
{
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
rustPlatform,
|
||||
}:
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "minhtml";
|
||||
version = "0.16.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "wilsonzlin";
|
||||
repo = "minify-html";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-SoCSHhgTLfztSfvzxxpZn/nQpXbKlkE4iiP0YZ0MVjY=";
|
||||
};
|
||||
|
||||
# Upstream does not include a lock file so one has to be patched in.
|
||||
cargoLock = {
|
||||
lockFile = ./Cargo.lock;
|
||||
};
|
||||
postPatch = ''
|
||||
cp ${./Cargo.lock} Cargo.lock
|
||||
'';
|
||||
|
||||
# Ensures that only the correct package gets built, as upstream contains multiple.
|
||||
cargoBuildFlags = [
|
||||
"-p"
|
||||
"minhtml"
|
||||
];
|
||||
cargoTestFlags = [
|
||||
"-p"
|
||||
"minhtml"
|
||||
];
|
||||
|
||||
meta = {
|
||||
description = "Minifier for HTML, JavaScript, and CSS";
|
||||
mainProgram = "minhtml";
|
||||
homepage = "https://github.com/wilsonzlin/minify-html";
|
||||
changelog = "https://github.com/wilsonzlin/minify-html/releases/tag/v${finalAttrs.version}";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ tye-exe ];
|
||||
};
|
||||
})
|
@ -1,57 +0,0 @@
|
||||
--- a/src/nerofs.cpp
|
||||
+++ b/src/nerofs.cpp
|
||||
@@ -173,31 +173,19 @@
|
||||
|
||||
QString NeroFS::GetIcoextract()
|
||||
{
|
||||
- // TODO: this is for flexibility in sandboxed environments(?)
|
||||
- // idk what the "good" path should be for Flatpak, so...
|
||||
- if(QDir("/usr/bin").exists("icoextract")) {
|
||||
- return "/usr/bin/icoextract";
|
||||
- } else return "";
|
||||
+ return QStandardPaths::findExecutable("icoextract");
|
||||
}
|
||||
|
||||
|
||||
QString NeroFS::GetIcoutils()
|
||||
{
|
||||
- // TODO: this is for flexibility in sandboxed environments(?)
|
||||
- // idk what the "good" path should be for Flatpak, so...
|
||||
- if(QDir("/usr/bin").exists("icotool")) {
|
||||
- return "/usr/bin/icotool";
|
||||
- } else return "";
|
||||
+ return QStandardPaths::findExecutable("icotool");
|
||||
}
|
||||
|
||||
|
||||
QString NeroFS::GetUmU()
|
||||
{
|
||||
- // TODO: this is for flexibility in sandboxed environments(?)
|
||||
- // idk what the "good" path should be for Flatpak, so...
|
||||
- if(QDir("/usr/bin").exists("umu-run")) {
|
||||
- return "/usr/bin/umu-run";
|
||||
- } else return "";
|
||||
+ return QStandardPaths::findExecutable("umu-run");
|
||||
}
|
||||
|
||||
QString NeroFS::GetWinetricks(const QString &runner)
|
||||
@@ -207,17 +195,13 @@
|
||||
return protonsPath.path() + '/' + runner + "/protonfixes/winetricks";
|
||||
else {
|
||||
// fall back to system winetricks
|
||||
- if(QDir("/usr/bin").exists("winetricks"))
|
||||
- return "/usr/bin/winetricks";
|
||||
- else return "";
|
||||
+ return QStandardPaths::findExecutable("winetricks");
|
||||
}
|
||||
} else if(QDir(protonsPath.path() + '/' + currentRunner + "/protonfixes").exists("winetricks"))
|
||||
return protonsPath.path() + '/' + currentRunner + "/protonfixes/winetricks";
|
||||
else {
|
||||
// fall back to system winetricks
|
||||
- if(QDir("/usr/bin").exists("winetricks"))
|
||||
- return "/usr/bin/winetricks";
|
||||
- else return "";
|
||||
+ return QStandardPaths::findExecutable("winetricks");
|
||||
}
|
||||
}
|
||||
|
@ -1,11 +0,0 @@
|
||||
--- a/src/neroprefixsettings.cpp
|
||||
+++ b/src/neroprefixsettings.cpp
|
||||
@@ -598,7 +598,7 @@
|
||||
tmpDir.mkdir("nero-manager");
|
||||
QProcess process;
|
||||
process.setWorkingDirectory(tmpDir.path()+"/nero-manager");
|
||||
- process.start("/usr/bin/curl", { "-o", "bridge.zip", "-L", "https://github.com/EnderIce2/rpc-bridge/releases/latest/download/bridge.zip" });
|
||||
+ process.start(QStandardPaths::findExecutable("curl"), { "-o", "bridge.zip", "-L", "https://github.com/EnderIce2/rpc-bridge/releases/latest/download/bridge.zip" });
|
||||
printf("Downloading Discord RPC Bridge...\n");
|
||||
|
||||
NeroPrefixSettingsWindow::blockSignals(true);
|
@ -18,13 +18,13 @@
|
||||
}:
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "nero-umu";
|
||||
version = "1.1.1";
|
||||
version = "1.1.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "SeongGino";
|
||||
repo = "Nero-umu";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-sX/Z/b5stauut8qg6IV/DdsCIkdx1N3+y1jwoXHr1LY=";
|
||||
hash = "sha256-7Wmha/WsSmbEgD2Dw2izSRzw8ldIrWcRIdUMp2okHWY=";
|
||||
};
|
||||
|
||||
#Replace quazip git submodule with pre-packaged quazip
|
||||
@ -62,12 +62,6 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
(lib.cmakeFeature "NERO_QT_VERSION" "Qt6")
|
||||
];
|
||||
|
||||
#Fixes to be able to find binaries for nix
|
||||
patches = [
|
||||
./nerofs.patch
|
||||
./neroprefix.patch
|
||||
];
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
install -Dm755 "nero-umu" "$out/bin/nero-umu"
|
||||
|
@ -8,16 +8,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "netclient";
|
||||
version = "0.90.0";
|
||||
version = "0.99.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "gravitl";
|
||||
repo = "netclient";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-/drujpz0oeAZmV24Fxy3N6aqa5z72WiVxkjccbc6xmE=";
|
||||
hash = "sha256-hSylhELMfiYNFHt03bJN1gTfy3EXSHJOj+ayUeU3+4w=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-l2Vx1lD+LF/4N0QLVTDD1/TmWpR3JPAgMyrgw7aT2EQ=";
|
||||
vendorHash = "sha256-bpXGXK97ohepYoAyJFZE49vo48ch3gAsVyax1+uLIfE=";
|
||||
|
||||
buildInputs = lib.optional stdenv.hostPlatform.isLinux libX11;
|
||||
|
||||
|
@ -111,6 +111,10 @@ python3Packages.buildPythonApplication rec {
|
||||
};
|
||||
|
||||
tests = {
|
||||
with_reexec = nixos-rebuild-ng.override {
|
||||
withReexec = true;
|
||||
withNgSuffix = false;
|
||||
};
|
||||
with_nix_latest = nixos-rebuild-ng.override {
|
||||
nix = nixVersions.latest;
|
||||
};
|
||||
@ -122,11 +126,9 @@ python3Packages.buildPythonApplication rec {
|
||||
nix = nixVersions.nix_2_3;
|
||||
};
|
||||
with_lix_latest = nixos-rebuild-ng.override {
|
||||
# oldest / minimum supported version in nixpkgs
|
||||
nix = lixPackageSets.latest.lix;
|
||||
};
|
||||
with_lix_stable = nixos-rebuild-ng.override {
|
||||
# oldest / minimum supported version in nixpkgs
|
||||
nix = lixPackageSets.stable.lix;
|
||||
};
|
||||
|
||||
|
@ -3,17 +3,15 @@ import json
|
||||
import logging
|
||||
import os
|
||||
import sys
|
||||
from pathlib import Path
|
||||
from subprocess import CalledProcessError, run
|
||||
from typing import Final, assert_never
|
||||
|
||||
from . import nix, tmpdir
|
||||
from . import nix
|
||||
from .constants import EXECUTABLE, WITH_NIX_2_18, WITH_REEXEC, WITH_SHELL_FILES
|
||||
from .models import Action, BuildAttr, Flake, ImageVariants, NixOSRebuildError, Profile
|
||||
from .process import Remote, cleanup_ssh
|
||||
from .utils import Args, LogFormatter, tabulate
|
||||
|
||||
NIXOS_REBUILD_ATTR: Final = "config.system.build.nixos-rebuild"
|
||||
from .models import Action, BuildAttr, Flake, Profile
|
||||
from .process import Remote
|
||||
from .services import build_and_activate_system, reexec
|
||||
from .utils import LogFormatter, tabulate
|
||||
|
||||
logger: Final = logging.getLogger(__name__)
|
||||
logger.setLevel(logging.INFO)
|
||||
@ -271,72 +269,6 @@ def parse_args(
|
||||
return args, args_groups
|
||||
|
||||
|
||||
def reexec(
|
||||
argv: list[str],
|
||||
args: argparse.Namespace,
|
||||
build_flags: Args,
|
||||
flake_build_flags: Args,
|
||||
) -> None:
|
||||
drv = None
|
||||
try:
|
||||
# Parsing the args here but ignore ask_sudo_password since it is not
|
||||
# needed and we would end up asking sudo password twice
|
||||
if flake := Flake.from_arg(args.flake, Remote.from_arg(args.target_host, None)):
|
||||
drv = nix.build_flake(
|
||||
NIXOS_REBUILD_ATTR,
|
||||
flake,
|
||||
flake_build_flags | {"no_link": True},
|
||||
)
|
||||
else:
|
||||
build_attr = BuildAttr.from_arg(args.attr, args.file)
|
||||
drv = nix.build(
|
||||
NIXOS_REBUILD_ATTR,
|
||||
build_attr,
|
||||
build_flags | {"no_out_link": True},
|
||||
)
|
||||
except CalledProcessError:
|
||||
logger.warning(
|
||||
"could not build a newer version of nixos-rebuild, using current version",
|
||||
exc_info=logger.isEnabledFor(logging.DEBUG),
|
||||
)
|
||||
|
||||
if drv:
|
||||
new = drv / f"bin/{EXECUTABLE}"
|
||||
current = Path(argv[0])
|
||||
if new != current:
|
||||
logger.debug(
|
||||
"detected newer version of script, re-exec'ing, current=%s, new=%s",
|
||||
current,
|
||||
new,
|
||||
)
|
||||
# Manually call clean-up functions since os.execve() will replace
|
||||
# the process immediately
|
||||
cleanup_ssh()
|
||||
tmpdir.TMPDIR.cleanup()
|
||||
try:
|
||||
os.execve(new, argv, os.environ | {"_NIXOS_REBUILD_REEXEC": "1"})
|
||||
except Exception:
|
||||
# Possible errors that we can have here:
|
||||
# - Missing the binary
|
||||
# - Exec format error (e.g.: another OS/CPU arch)
|
||||
logger.warning(
|
||||
"could not re-exec in a newer version of nixos-rebuild, "
|
||||
"using current version",
|
||||
exc_info=logger.isEnabledFor(logging.DEBUG),
|
||||
)
|
||||
# We already run clean-up, let's re-exec in the current version
|
||||
# to avoid issues
|
||||
os.execve(current, argv, os.environ | {"_NIXOS_REBUILD_REEXEC": "1"})
|
||||
|
||||
|
||||
def validate_image_variant(image_variant: str, variants: ImageVariants) -> None:
|
||||
if image_variant not in variants:
|
||||
raise NixOSRebuildError(
|
||||
"please specify one of the following supported image variants via "
|
||||
"--image-variant:\n" + "\n".join(f"- {v}" for v in variants)
|
||||
)
|
||||
|
||||
|
||||
def execute(argv: list[str]) -> None:
|
||||
args, args_groups = parse_args(argv)
|
||||
|
||||
@ -395,147 +327,20 @@ def execute(argv: list[str]) -> None:
|
||||
| Action.BUILD_VM
|
||||
| Action.BUILD_VM_WITH_BOOTLOADER
|
||||
):
|
||||
logger.info("building the system configuration...")
|
||||
|
||||
dry_run = action == Action.DRY_BUILD
|
||||
no_link = action in (Action.SWITCH, Action.BOOT)
|
||||
rollback = bool(args.rollback)
|
||||
|
||||
match action:
|
||||
case Action.BUILD_IMAGE if flake:
|
||||
variants = nix.get_build_image_variants_flake(
|
||||
flake,
|
||||
eval_flags=flake_common_flags,
|
||||
)
|
||||
validate_image_variant(args.image_variant, variants)
|
||||
attr = f"config.system.build.images.{args.image_variant}"
|
||||
case Action.BUILD_IMAGE:
|
||||
variants = nix.get_build_image_variants(
|
||||
build_attr,
|
||||
instantiate_flags=common_flags,
|
||||
)
|
||||
validate_image_variant(args.image_variant, variants)
|
||||
attr = f"config.system.build.images.{args.image_variant}"
|
||||
case Action.BUILD_VM:
|
||||
attr = "config.system.build.vm"
|
||||
case Action.BUILD_VM_WITH_BOOTLOADER:
|
||||
attr = "config.system.build.vmWithBootLoader"
|
||||
case _:
|
||||
attr = "config.system.build.toplevel"
|
||||
|
||||
match (action, rollback, build_host, flake):
|
||||
case (Action.SWITCH | Action.BOOT, True, _, _):
|
||||
path_to_config = nix.rollback(profile, target_host, sudo=args.sudo)
|
||||
case (Action.TEST | Action.BUILD, True, _, _):
|
||||
maybe_path_to_config = nix.rollback_temporary_profile(
|
||||
profile,
|
||||
target_host,
|
||||
sudo=args.sudo,
|
||||
)
|
||||
if maybe_path_to_config: # kinda silly but this makes mypy happy
|
||||
path_to_config = maybe_path_to_config
|
||||
else:
|
||||
raise NixOSRebuildError("could not find previous generation")
|
||||
case (_, True, _, _):
|
||||
raise NixOSRebuildError(
|
||||
f"--rollback is incompatible with '{action}'"
|
||||
)
|
||||
case (_, False, Remote(_), Flake(_)):
|
||||
path_to_config = nix.build_remote_flake(
|
||||
attr,
|
||||
flake,
|
||||
build_host,
|
||||
eval_flags=flake_common_flags,
|
||||
flake_build_flags=flake_build_flags
|
||||
| {"no_link": no_link, "dry_run": dry_run},
|
||||
copy_flags=copy_flags,
|
||||
)
|
||||
case (_, False, None, Flake(_)):
|
||||
path_to_config = nix.build_flake(
|
||||
attr,
|
||||
flake,
|
||||
flake_build_flags=flake_build_flags
|
||||
| {"no_link": no_link, "dry_run": dry_run},
|
||||
)
|
||||
case (_, False, Remote(_), None):
|
||||
path_to_config = nix.build_remote(
|
||||
attr,
|
||||
build_attr,
|
||||
build_host,
|
||||
realise_flags=common_flags,
|
||||
instantiate_flags=build_flags,
|
||||
copy_flags=copy_flags,
|
||||
)
|
||||
case (_, False, None, None):
|
||||
path_to_config = nix.build(
|
||||
attr,
|
||||
build_attr,
|
||||
build_flags=build_flags
|
||||
| {"no_out_link": no_link, "dry_run": dry_run},
|
||||
)
|
||||
case never:
|
||||
# should never happen, but mypy is not smart enough to
|
||||
# handle this with assert_never
|
||||
# https://github.com/python/mypy/issues/16650
|
||||
# https://github.com/python/mypy/issues/16722
|
||||
raise AssertionError(
|
||||
f"expected code to be unreachable, but got: {never}"
|
||||
)
|
||||
|
||||
if not rollback:
|
||||
nix.copy_closure(
|
||||
path_to_config,
|
||||
to_host=target_host,
|
||||
from_host=build_host,
|
||||
copy_flags=copy_flags,
|
||||
)
|
||||
if action in (Action.SWITCH, Action.BOOT):
|
||||
nix.set_profile(
|
||||
profile,
|
||||
path_to_config,
|
||||
target_host=target_host,
|
||||
sudo=args.sudo,
|
||||
)
|
||||
|
||||
# Print only the result to stdout to make it easier to script
|
||||
def print_result(msg: str, result: str | Path) -> None:
|
||||
print(msg, end=" ", file=sys.stderr, flush=True)
|
||||
print(result, flush=True)
|
||||
|
||||
match action:
|
||||
case Action.SWITCH | Action.BOOT | Action.TEST | Action.DRY_ACTIVATE:
|
||||
nix.switch_to_configuration(
|
||||
path_to_config,
|
||||
action,
|
||||
target_host=target_host,
|
||||
sudo=args.sudo,
|
||||
specialisation=args.specialisation,
|
||||
install_bootloader=args.install_bootloader,
|
||||
)
|
||||
print_result("Done. The new configuration is", path_to_config)
|
||||
case Action.BUILD:
|
||||
print_result("Done. The new configuration is", path_to_config)
|
||||
case Action.BUILD_VM | Action.BUILD_VM_WITH_BOOTLOADER:
|
||||
# If you get `not-found`, please open an issue
|
||||
vm_path = next(path_to_config.glob("bin/run-*-vm"), "not-found")
|
||||
print_result(
|
||||
"Done. The virtual machine can be started by running", vm_path
|
||||
)
|
||||
case Action.BUILD_IMAGE:
|
||||
if flake:
|
||||
image_name = nix.get_build_image_name_flake(
|
||||
flake,
|
||||
args.image_variant,
|
||||
eval_flags=flake_common_flags,
|
||||
)
|
||||
else:
|
||||
image_name = nix.get_build_image_name(
|
||||
build_attr,
|
||||
args.image_variant,
|
||||
instantiate_flags=flake_common_flags,
|
||||
)
|
||||
disk_path = path_to_config / image_name
|
||||
print_result("Done. The disk image can be found in", disk_path)
|
||||
build_and_activate_system(
|
||||
action=action,
|
||||
args=args,
|
||||
build_host=build_host,
|
||||
target_host=target_host,
|
||||
profile=profile,
|
||||
flake=flake,
|
||||
build_attr=build_attr,
|
||||
build_flags=build_flags,
|
||||
common_flags=common_flags,
|
||||
copy_flags=copy_flags,
|
||||
flake_build_flags=flake_build_flags,
|
||||
flake_common_flags=flake_common_flags,
|
||||
)
|
||||
|
||||
case Action.EDIT:
|
||||
nix.edit(flake, flake_build_flags)
|
||||
@ -561,9 +366,9 @@ def execute(argv: list[str]) -> None:
|
||||
|
||||
case Action.REPL:
|
||||
if flake:
|
||||
nix.repl_flake("toplevel", flake, flake_build_flags)
|
||||
nix.repl_flake(flake, flake_build_flags)
|
||||
else:
|
||||
nix.repl("system", build_attr, build_flags)
|
||||
nix.repl(build_attr, build_flags)
|
||||
|
||||
case _:
|
||||
assert_never(action)
|
||||
|
@ -154,7 +154,7 @@ class Flake:
|
||||
return cls(path, nixos_attr)
|
||||
|
||||
@classmethod
|
||||
def from_arg(cls, flake_arg: Any, target_host: Remote | None) -> Self | None:
|
||||
def from_arg(cls, flake_arg: Any, target_host: Remote | None) -> Self | None: # noqa: ANN401
|
||||
match flake_arg:
|
||||
case str(s):
|
||||
return cls.parse(s, target_host)
|
||||
|
@ -545,14 +545,14 @@ def list_generations(profile: Profile) -> list[GenerationJson]:
|
||||
)
|
||||
|
||||
|
||||
def repl(attr: str, build_attr: BuildAttr, nix_flags: Args | None = None) -> None:
|
||||
def repl(build_attr: BuildAttr, nix_flags: Args | None = None) -> None:
|
||||
run_args = ["nix", "repl", "--file", build_attr.path]
|
||||
if build_attr.attr:
|
||||
run_args.append(build_attr.attr)
|
||||
run_wrapper([*run_args, *dict_to_flags(nix_flags)])
|
||||
|
||||
|
||||
def repl_flake(attr: str, flake: Flake, flake_flags: Args | None = None) -> None:
|
||||
def repl_flake(flake: Flake, flake_flags: Args | None = None) -> None:
|
||||
expr = Template(
|
||||
files(__package__).joinpath(FLAKE_REPL_TEMPLATE).read_text()
|
||||
).substitute(
|
||||
|
317
pkgs/by-name/ni/nixos-rebuild-ng/src/nixos_rebuild/services.py
Normal file
317
pkgs/by-name/ni/nixos-rebuild-ng/src/nixos_rebuild/services.py
Normal file
@ -0,0 +1,317 @@
|
||||
import argparse
|
||||
import logging
|
||||
import os
|
||||
import sys
|
||||
from pathlib import Path
|
||||
from subprocess import CalledProcessError
|
||||
from typing import Final
|
||||
|
||||
from . import nix, tmpdir
|
||||
from .constants import EXECUTABLE
|
||||
from .models import Action, BuildAttr, Flake, ImageVariants, NixOSRebuildError, Profile
|
||||
from .process import Remote, cleanup_ssh
|
||||
from .utils import Args
|
||||
|
||||
NIXOS_REBUILD_ATTR: Final = "config.system.build.nixos-rebuild"
|
||||
|
||||
logger: Final = logging.getLogger(__name__)
|
||||
logger.setLevel(logging.INFO)
|
||||
|
||||
|
||||
def reexec(
|
||||
argv: list[str],
|
||||
args: argparse.Namespace,
|
||||
build_flags: Args,
|
||||
flake_build_flags: Args,
|
||||
) -> None:
|
||||
drv = None
|
||||
try:
|
||||
# Parsing the args here but ignore ask_sudo_password since it is not
|
||||
# needed and we would end up asking sudo password twice
|
||||
if flake := Flake.from_arg(args.flake, Remote.from_arg(args.target_host, None)):
|
||||
drv = nix.build_flake(
|
||||
NIXOS_REBUILD_ATTR,
|
||||
flake,
|
||||
flake_build_flags | {"no_link": True},
|
||||
)
|
||||
else:
|
||||
build_attr = BuildAttr.from_arg(args.attr, args.file)
|
||||
drv = nix.build(
|
||||
NIXOS_REBUILD_ATTR,
|
||||
build_attr,
|
||||
build_flags | {"no_out_link": True},
|
||||
)
|
||||
except CalledProcessError:
|
||||
logger.warning(
|
||||
"could not build a newer version of nixos-rebuild, using current version",
|
||||
exc_info=logger.isEnabledFor(logging.DEBUG),
|
||||
)
|
||||
|
||||
if drv:
|
||||
new = drv / f"bin/{EXECUTABLE}"
|
||||
current = Path(argv[0])
|
||||
if new != current:
|
||||
logger.debug(
|
||||
"detected newer version of script, re-exec'ing, current=%s, new=%s",
|
||||
current,
|
||||
new,
|
||||
)
|
||||
# Manually call clean-up functions since os.execve() will replace
|
||||
# the process immediately
|
||||
cleanup_ssh()
|
||||
tmpdir.TMPDIR.cleanup()
|
||||
try:
|
||||
os.execve(new, argv, os.environ | {"_NIXOS_REBUILD_REEXEC": "1"})
|
||||
except Exception:
|
||||
# Possible errors that we can have here:
|
||||
# - Missing the binary
|
||||
# - Exec format error (e.g.: another OS/CPU arch)
|
||||
logger.warning(
|
||||
"could not re-exec in a newer version of nixos-rebuild, "
|
||||
"using current version",
|
||||
exc_info=logger.isEnabledFor(logging.DEBUG),
|
||||
)
|
||||
# We already run clean-up, let's re-exec in the current version
|
||||
# to avoid issues
|
||||
os.execve(current, argv, os.environ | {"_NIXOS_REBUILD_REEXEC": "1"})
|
||||
|
||||
|
||||
def _validate_image_variant(image_variant: str, variants: ImageVariants) -> None:
|
||||
if image_variant not in variants:
|
||||
raise NixOSRebuildError(
|
||||
"please specify one of the following supported image variants via "
|
||||
"--image-variant:\n" + "\n".join(f"- {v}" for v in variants)
|
||||
)
|
||||
|
||||
|
||||
def _get_system_attr(
|
||||
action: Action,
|
||||
args: argparse.Namespace,
|
||||
flake: Flake | None,
|
||||
build_attr: BuildAttr,
|
||||
common_flags: Args,
|
||||
flake_common_flags: Args,
|
||||
) -> str:
|
||||
match action:
|
||||
case Action.BUILD_IMAGE if flake:
|
||||
variants = nix.get_build_image_variants_flake(
|
||||
flake,
|
||||
eval_flags=flake_common_flags,
|
||||
)
|
||||
_validate_image_variant(args.image_variant, variants)
|
||||
attr = f"config.system.build.images.{args.image_variant}"
|
||||
case Action.BUILD_IMAGE:
|
||||
variants = nix.get_build_image_variants(
|
||||
build_attr,
|
||||
instantiate_flags=common_flags,
|
||||
)
|
||||
_validate_image_variant(args.image_variant, variants)
|
||||
attr = f"config.system.build.images.{args.image_variant}"
|
||||
case Action.BUILD_VM:
|
||||
attr = "config.system.build.vm"
|
||||
case Action.BUILD_VM_WITH_BOOTLOADER:
|
||||
attr = "config.system.build.vmWithBootLoader"
|
||||
case _:
|
||||
attr = "config.system.build.toplevel"
|
||||
|
||||
return attr
|
||||
|
||||
|
||||
def _build_system(
|
||||
attr: str,
|
||||
action: Action,
|
||||
args: argparse.Namespace,
|
||||
build_host: Remote | None,
|
||||
target_host: Remote | None,
|
||||
profile: Profile,
|
||||
flake: Flake | None,
|
||||
build_attr: BuildAttr,
|
||||
build_flags: Args,
|
||||
common_flags: Args,
|
||||
copy_flags: Args,
|
||||
flake_build_flags: Args,
|
||||
flake_common_flags: Args,
|
||||
) -> Path:
|
||||
dry_run = action == Action.DRY_BUILD
|
||||
no_link = action in (Action.SWITCH, Action.BOOT)
|
||||
|
||||
match (action, args.rollback, build_host, flake):
|
||||
case (Action.SWITCH | Action.BOOT, True, _, _):
|
||||
path_to_config = nix.rollback(profile, target_host, sudo=args.sudo)
|
||||
case (Action.TEST | Action.BUILD, True, _, _):
|
||||
maybe_path_to_config = nix.rollback_temporary_profile(
|
||||
profile,
|
||||
target_host,
|
||||
sudo=args.sudo,
|
||||
)
|
||||
if maybe_path_to_config: # kinda silly but this makes mypy happy
|
||||
path_to_config = maybe_path_to_config
|
||||
else:
|
||||
raise NixOSRebuildError("could not find previous generation")
|
||||
case (_, True, _, _):
|
||||
raise NixOSRebuildError(f"--rollback is incompatible with '{action}'")
|
||||
case (_, False, Remote(_), Flake(_)):
|
||||
path_to_config = nix.build_remote_flake(
|
||||
attr,
|
||||
flake,
|
||||
build_host,
|
||||
eval_flags=flake_common_flags,
|
||||
flake_build_flags=flake_build_flags
|
||||
| {"no_link": no_link, "dry_run": dry_run},
|
||||
copy_flags=copy_flags,
|
||||
)
|
||||
case (_, False, None, Flake(_)):
|
||||
path_to_config = nix.build_flake(
|
||||
attr,
|
||||
flake,
|
||||
flake_build_flags=flake_build_flags
|
||||
| {"no_link": no_link, "dry_run": dry_run},
|
||||
)
|
||||
case (_, False, Remote(_), None):
|
||||
path_to_config = nix.build_remote(
|
||||
attr,
|
||||
build_attr,
|
||||
build_host,
|
||||
realise_flags=common_flags,
|
||||
instantiate_flags=build_flags,
|
||||
copy_flags=copy_flags,
|
||||
)
|
||||
case (_, False, None, None):
|
||||
path_to_config = nix.build(
|
||||
attr,
|
||||
build_attr,
|
||||
build_flags=build_flags | {"no_out_link": no_link, "dry_run": dry_run},
|
||||
)
|
||||
case never:
|
||||
# should never happen, but mypy is not smart enough to
|
||||
# handle this with assert_never
|
||||
# https://github.com/python/mypy/issues/16650
|
||||
# https://github.com/python/mypy/issues/16722
|
||||
raise AssertionError(f"expected code to be unreachable, but got: {never}")
|
||||
|
||||
if not args.rollback:
|
||||
nix.copy_closure(
|
||||
path_to_config,
|
||||
to_host=target_host,
|
||||
from_host=build_host,
|
||||
copy_flags=copy_flags,
|
||||
)
|
||||
|
||||
return path_to_config
|
||||
|
||||
|
||||
def _activate_system(
|
||||
path_to_config: Path,
|
||||
action: Action,
|
||||
args: argparse.Namespace,
|
||||
target_host: Remote | None,
|
||||
profile: Profile,
|
||||
flake: Flake | None,
|
||||
build_attr: BuildAttr,
|
||||
flake_common_flags: Args,
|
||||
common_flags: Args,
|
||||
) -> None:
|
||||
# Print only the result to stdout to make it easier to script
|
||||
def print_result(msg: str, result: str | Path) -> None:
|
||||
print(msg, end=" ", file=sys.stderr, flush=True)
|
||||
print(result, flush=True)
|
||||
|
||||
match action:
|
||||
case Action.SWITCH | Action.BOOT if not args.rollback:
|
||||
nix.set_profile(
|
||||
profile,
|
||||
path_to_config,
|
||||
target_host=target_host,
|
||||
sudo=args.sudo,
|
||||
)
|
||||
nix.switch_to_configuration(
|
||||
path_to_config,
|
||||
action,
|
||||
target_host=target_host,
|
||||
sudo=args.sudo,
|
||||
specialisation=args.specialisation,
|
||||
install_bootloader=args.install_bootloader,
|
||||
)
|
||||
print_result("Done. The new configuration is", path_to_config)
|
||||
case Action.SWITCH | Action.BOOT | Action.TEST | Action.DRY_ACTIVATE:
|
||||
nix.switch_to_configuration(
|
||||
path_to_config,
|
||||
action,
|
||||
target_host=target_host,
|
||||
sudo=args.sudo,
|
||||
specialisation=args.specialisation,
|
||||
install_bootloader=args.install_bootloader,
|
||||
)
|
||||
print_result("Done. The new configuration is", path_to_config)
|
||||
case Action.BUILD:
|
||||
print_result("Done. The new configuration is", path_to_config)
|
||||
case Action.BUILD_VM | Action.BUILD_VM_WITH_BOOTLOADER:
|
||||
# If you get `not-found`, please open an issue
|
||||
vm_path = next(path_to_config.glob("bin/run-*-vm"), "not-found")
|
||||
print_result("Done. The virtual machine can be started by running", vm_path)
|
||||
case Action.BUILD_IMAGE:
|
||||
if flake:
|
||||
image_name = nix.get_build_image_name_flake(
|
||||
flake,
|
||||
args.image_variant,
|
||||
eval_flags=flake_common_flags,
|
||||
)
|
||||
else:
|
||||
image_name = nix.get_build_image_name(
|
||||
build_attr,
|
||||
args.image_variant,
|
||||
instantiate_flags=common_flags,
|
||||
)
|
||||
disk_path = path_to_config / image_name
|
||||
print_result("Done. The disk image can be found in", disk_path)
|
||||
|
||||
|
||||
def build_and_activate_system(
|
||||
action: Action,
|
||||
args: argparse.Namespace,
|
||||
build_host: Remote | None,
|
||||
target_host: Remote | None,
|
||||
profile: Profile,
|
||||
flake: Flake | None,
|
||||
build_attr: BuildAttr,
|
||||
build_flags: Args,
|
||||
common_flags: Args,
|
||||
copy_flags: Args,
|
||||
flake_build_flags: Args,
|
||||
flake_common_flags: Args,
|
||||
) -> None:
|
||||
logger.info("building the system configuration...")
|
||||
attr = _get_system_attr(
|
||||
action=action,
|
||||
args=args,
|
||||
flake=flake,
|
||||
build_attr=build_attr,
|
||||
common_flags=common_flags,
|
||||
flake_common_flags=flake_common_flags,
|
||||
)
|
||||
path_to_config = _build_system(
|
||||
attr,
|
||||
action=action,
|
||||
args=args,
|
||||
build_host=build_host,
|
||||
target_host=target_host,
|
||||
profile=profile,
|
||||
flake=flake,
|
||||
build_attr=build_attr,
|
||||
build_flags=build_flags,
|
||||
common_flags=common_flags,
|
||||
copy_flags=copy_flags,
|
||||
flake_build_flags=flake_build_flags,
|
||||
flake_common_flags=flake_common_flags,
|
||||
)
|
||||
_activate_system(
|
||||
path_to_config,
|
||||
action=action,
|
||||
args=args,
|
||||
target_host=target_host,
|
||||
profile=profile,
|
||||
flake=flake,
|
||||
build_attr=build_attr,
|
||||
common_flags=common_flags,
|
||||
flake_common_flags=flake_common_flags,
|
||||
)
|
@ -65,10 +65,21 @@ extend-select = [
|
||||
"ISC001",
|
||||
"ISC002",
|
||||
"ISC003",
|
||||
# unused arguments
|
||||
"ARG001",
|
||||
"ARG002",
|
||||
"ARG003",
|
||||
"ARG004",
|
||||
"ARG005",
|
||||
]
|
||||
ignore = [
|
||||
|
||||
[tool.ruff.lint.per-file-ignores]
|
||||
"tests/*" = [
|
||||
# allow unused arguments in tests (e.g., mocks)
|
||||
"ARG001",
|
||||
"ARG005",
|
||||
# allow Any type
|
||||
"ANN401"
|
||||
"ANN401"
|
||||
]
|
||||
|
||||
[tool.pytest.ini_options]
|
||||
|
@ -132,7 +132,7 @@ def test_parse_args() -> None:
|
||||
@patch("os.execve", autospec=True)
|
||||
@patch(get_qualified_name(nr.nix.build), autospec=True)
|
||||
def test_reexec(mock_build: Mock, mock_execve: Mock, monkeypatch: MonkeyPatch) -> None:
|
||||
monkeypatch.setattr(nr, "EXECUTABLE", "nixos-rebuild-ng")
|
||||
monkeypatch.setattr(nr.services, "EXECUTABLE", "nixos-rebuild-ng")
|
||||
argv = ["/path/bin/nixos-rebuild-ng", "switch", "--no-flake"]
|
||||
args, _ = nr.parse_args(argv)
|
||||
mock_build.return_value = Path("/path")
|
||||
@ -141,7 +141,7 @@ def test_reexec(mock_build: Mock, mock_execve: Mock, monkeypatch: MonkeyPatch) -
|
||||
mock_build.assert_has_calls(
|
||||
[
|
||||
call(
|
||||
nr.NIXOS_REBUILD_ATTR,
|
||||
nr.services.NIXOS_REBUILD_ATTR,
|
||||
nr.models.BuildAttr(ANY, ANY),
|
||||
{"build": True, "no_out_link": True},
|
||||
)
|
||||
@ -178,14 +178,14 @@ def test_reexec(mock_build: Mock, mock_execve: Mock, monkeypatch: MonkeyPatch) -
|
||||
def test_reexec_flake(
|
||||
mock_build: Mock, mock_execve: Mock, monkeypatch: MonkeyPatch
|
||||
) -> None:
|
||||
monkeypatch.setattr(nr, "EXECUTABLE", "nixos-rebuild-ng")
|
||||
monkeypatch.setattr(nr.services, "EXECUTABLE", "nixos-rebuild-ng")
|
||||
argv = ["/path/bin/nixos-rebuild-ng", "switch", "--flake"]
|
||||
args, _ = nr.parse_args(argv)
|
||||
mock_build.return_value = Path("/path")
|
||||
|
||||
nr.reexec(argv, args, {"build": True}, {"flake": True})
|
||||
mock_build.assert_called_once_with(
|
||||
nr.NIXOS_REBUILD_ATTR,
|
||||
nr.services.NIXOS_REBUILD_ATTR,
|
||||
nr.models.Flake(ANY, ANY),
|
||||
{"flake": True, "no_link": True},
|
||||
)
|
||||
@ -536,7 +536,7 @@ def test_execute_nix_switch_flake(mock_run: Mock, tmp_path: Path) -> None:
|
||||
)
|
||||
@patch("subprocess.run", autospec=True)
|
||||
@patch("uuid.uuid4", autospec=True)
|
||||
@patch(get_qualified_name(nr.cleanup_ssh), autospec=True)
|
||||
@patch(get_qualified_name(nr.services.cleanup_ssh), autospec=True)
|
||||
@pytest.mark.skipif(
|
||||
not WITH_NIX_2_18,
|
||||
reason="Tests internal logic based on the assumption that Nix >= 2.18",
|
||||
@ -755,7 +755,7 @@ def test_execute_nix_switch_build_target_host(
|
||||
clear=True,
|
||||
)
|
||||
@patch("subprocess.run", autospec=True)
|
||||
@patch(get_qualified_name(nr.cleanup_ssh), autospec=True)
|
||||
@patch(get_qualified_name(nr.services.cleanup_ssh), autospec=True)
|
||||
def test_execute_nix_switch_flake_target_host(
|
||||
mock_cleanup_ssh: Mock,
|
||||
mock_run: Mock,
|
||||
@ -862,7 +862,7 @@ def test_execute_nix_switch_flake_target_host(
|
||||
clear=True,
|
||||
)
|
||||
@patch("subprocess.run", autospec=True)
|
||||
@patch(get_qualified_name(nr.cleanup_ssh), autospec=True)
|
||||
@patch(get_qualified_name(nr.services.cleanup_ssh), autospec=True)
|
||||
def test_execute_nix_switch_flake_build_host(
|
||||
mock_cleanup_ssh: Mock,
|
||||
mock_run: Mock,
|
||||
|
@ -579,18 +579,18 @@ def test_list_generations(mock_get_generations: Mock, tmp_path: Path) -> None:
|
||||
|
||||
@patch(get_qualified_name(n.run_wrapper, n), autospec=True)
|
||||
def test_repl(mock_run: Mock) -> None:
|
||||
n.repl("attr", m.BuildAttr("<nixpkgs/nixos>", None), {"nix_flag": True})
|
||||
n.repl(m.BuildAttr("<nixpkgs/nixos>", None), {"nix_flag": True})
|
||||
mock_run.assert_called_with(
|
||||
["nix", "repl", "--file", "<nixpkgs/nixos>", "--nix-flag"]
|
||||
)
|
||||
|
||||
n.repl("attr", m.BuildAttr(Path("file.nix"), "myAttr"))
|
||||
n.repl(m.BuildAttr(Path("file.nix"), "myAttr"))
|
||||
mock_run.assert_called_with(["nix", "repl", "--file", Path("file.nix"), "myAttr"])
|
||||
|
||||
|
||||
@patch(get_qualified_name(n.run_wrapper, n), autospec=True)
|
||||
def test_repl_flake(mock_run: Mock) -> None:
|
||||
n.repl_flake("attr", m.Flake(Path("flake.nix"), "myAttr"), {"nix_flag": True})
|
||||
n.repl_flake(m.Flake(Path("flake.nix"), "myAttr"), {"nix_flag": True})
|
||||
# See nixos-rebuild-ng.tests.repl for a better test,
|
||||
# this is mostly for sanity check
|
||||
assert mock_run.call_count == 1
|
||||
|
@ -117,17 +117,17 @@ in
|
||||
goBuild (finalAttrs: {
|
||||
pname = "ollama";
|
||||
# don't forget to invalidate all hashes each update
|
||||
version = "0.9.2";
|
||||
version = "0.9.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ollama";
|
||||
repo = "ollama";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-2mvaIEfto/w2yjaJxopn5L2rn8pCTHfQvo8mmzTO4i0=";
|
||||
hash = "sha256-bAxvlFeCxrxE8PuLbsjAwJYDeZfKb8BDuGBgX8uMgr8=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
vendorHash = "sha256-t7+GLNC6mRcXq9ErxN6gGki5WWWoEcMfzRVjta4fddA=";
|
||||
vendorHash = "sha256-oHTo8EQGfrKOwg6SRPrL23qSH+p+clBxxiXsuO1auLk=";
|
||||
|
||||
env =
|
||||
lib.optionalAttrs enableRocm {
|
||||
|
@ -14,13 +14,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "opencryptoki";
|
||||
version = "3.24.0";
|
||||
version = "3.25.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "opencryptoki";
|
||||
repo = "opencryptoki";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-GIcUI5Gjk+whwlD9dBiB2N7q6sPYFnhj5VvyQvc2Z2A=";
|
||||
hash = "sha256-JIDy5LY2rJqMM1uWDWn6Q62kJ+7pYU4G7zptkbyvf9Q=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -8,13 +8,13 @@
|
||||
stdenv,
|
||||
}:
|
||||
let
|
||||
version = "0.23.1";
|
||||
version = "0.24.0";
|
||||
|
||||
parca-src = fetchFromGitHub {
|
||||
owner = "parca-dev";
|
||||
repo = "parca";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-UCYBT+KegoXpMRMoA3iuX8WiXhkX43JVOmhHksH5Pwk=";
|
||||
hash = "sha256-MyI3pyfsdw17K03FOSckVzLSRNbwSm3FwYIHMr/SbWo=";
|
||||
};
|
||||
|
||||
ui = stdenv.mkDerivation (finalAttrs: {
|
||||
@ -24,7 +24,7 @@ let
|
||||
|
||||
pnpmDeps = pnpm_9.fetchDeps {
|
||||
inherit (finalAttrs) pname src version;
|
||||
hash = "sha256-MByoIJtynv38TFNVDdZWjkJJpABCjJU2wBrChxM2rdE=";
|
||||
hash = "sha256-gczEkCU9xESn9T1eVOmGAufh+24mOsYCMO6f5tcbdmQ=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
@ -56,7 +56,7 @@ buildGoModule rec {
|
||||
pname = "parca";
|
||||
src = parca-src;
|
||||
|
||||
vendorHash = "sha256-O7dzdMGZ1l+cmVA3svbh/Ig1SbXXiMwJ7TXmrT2IM+g=";
|
||||
vendorHash = "sha256-2CVXXCWKa21cToe5flxIMtSBPc3HkxWDNkJAWCI4ORw=";
|
||||
|
||||
ldflags = [
|
||||
"-X=main.version=${version}"
|
||||
|
@ -8,16 +8,16 @@
|
||||
|
||||
buildNpmPackage (finalAttrs: {
|
||||
pname = "particle-cli";
|
||||
version = "3.36.2";
|
||||
version = "3.37.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "particle-iot";
|
||||
repo = "particle-cli";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-KLcQmbIuhp71dpJttKA0tWAn2Qf+zl6njBypFkaLmzE=";
|
||||
hash = "sha256-TMyXCTyihUBP2emY0UzedHAsO945eWJ7w7relP7wBaU=";
|
||||
};
|
||||
|
||||
npmDepsHash = "sha256-oQch+7hH+URMI15YOA3iz4FVPwckJ3K/DOC1PfrA2dU=";
|
||||
npmDepsHash = "sha256-4PeHMhzcCcXFNV0cS0JVAvpkMyo2w6RDmlIO2/MRy8k=";
|
||||
|
||||
buildInputs = [
|
||||
udev
|
||||
|
@ -12,14 +12,14 @@
|
||||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "pdfarranger";
|
||||
version = "1.12.0";
|
||||
version = "1.12.1";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "pdfarranger";
|
||||
repo = "pdfarranger";
|
||||
tag = version;
|
||||
hash = "sha256-//JjIPDeyI+JZoFT2GU+wCP+tkKCchgS9ftMT5rUEOM=";
|
||||
hash = "sha256-of1itPubf6LBJ4rSh1bca3yoNTiz5Qt9ar9XDe4nhxI=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ wrapGAppsHook3 ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ gettext ];
|
||||
|
49
pkgs/by-name/pd/pdqsort/package.nix
Normal file
49
pkgs/by-name/pd/pdqsort/package.nix
Normal file
@ -0,0 +1,49 @@
|
||||
{
|
||||
lib,
|
||||
stdenvNoCC,
|
||||
stdenv, # for tests
|
||||
fetchFromGitHub,
|
||||
}:
|
||||
|
||||
stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
pname = "pdqsort";
|
||||
version = "0-unstable-2021-03-14";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "orlp";
|
||||
repo = "pdqsort";
|
||||
rev = "b1ef26a55cdb60d236a5cb199c4234c704f46726";
|
||||
hash = "sha256-xn3Jjn/jxJBckpg1Tx3HHVAWYPVTFMiDFiYgB2WX7Sc=";
|
||||
};
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out/include
|
||||
cp -r *.h $out/include/
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
# The benchmark takes too long to run as a regular checkPhase here.
|
||||
passthru.tests.bench = stdenv.mkDerivation {
|
||||
pname = "pdqsort-bench";
|
||||
|
||||
inherit (finalAttrs) version src;
|
||||
|
||||
doCheck = true;
|
||||
checkPhase = ''
|
||||
c++ bench/bench.cpp -o bench/bench
|
||||
./bench/bench > $out
|
||||
'';
|
||||
|
||||
meta.platforms = lib.platforms.x86_64;
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "Novel sorting algorithm that combines the fast average case of randomized quicksort with the fast worst case of heapsort";
|
||||
homepage = "https://github.com/orlp/pdqsort";
|
||||
license = lib.licenses.zlib;
|
||||
maintainers = with lib.maintainers; [ jherland ];
|
||||
};
|
||||
})
|
@ -6,16 +6,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "pgscv";
|
||||
version = "0.14.0";
|
||||
version = "0.14.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "CHERTS";
|
||||
repo = "pgscv";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-BWGRighkezG3zjhyiYEFTeVvWps4q9+9xjk9EPHI/B0=";
|
||||
hash = "sha256-jUTHaZvJ6O3dVhBGO+ZFT9A7KmKieR2viGhZXwOv5S8=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-UEqJz7xKBQaBrBI3mV8W+WtLGDDf3EaV7NzEPofW+TE=";
|
||||
vendorHash = "sha256-v4Xi2R+q2jGD3Fy6xvKNRaf+P725acr+tvdDxod2KiI=";
|
||||
|
||||
ldflags = [
|
||||
"-X=main.appName=pgscv"
|
||||
|
@ -17,11 +17,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "photoqt";
|
||||
version = "4.9.1";
|
||||
version = "4.9.2";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://photoqt.org/pkgs/photoqt-${version}.tar.gz";
|
||||
hash = "sha256-dAqAM9zsFWPiGF7njhy7SM6f/5S19jMyTv57JadgHu8=";
|
||||
hash = "sha256-kPhxWekecE57wY45qLy/EnfmjFLn0cEmZ+4qWHGbL4U=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -40,14 +40,14 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
+ lib.optionalString enableQt "-qt"
|
||||
+ lib.optionalString (!enableQt) "-sdl"
|
||||
+ lib.optionalString forceWayland "-wayland";
|
||||
version = "1.18.1";
|
||||
version = "1.19.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "hrydgard";
|
||||
repo = "ppsspp";
|
||||
rev = "v${finalAttrs.version}";
|
||||
fetchSubmodules = true;
|
||||
hash = "sha256-X5Sb6oxjjhlsm1VN9e0Emk4SqiHTe3G3ZiuIgw5DSds=";
|
||||
hash = "sha256-HwZHV5x60V/H4wx5wgC6VAZY7zHjMt0ZVRDWAnXDvj4=";
|
||||
};
|
||||
|
||||
patches = lib.optionals useSystemFfmpeg [
|
||||
|
@ -6,12 +6,8 @@
|
||||
cmake,
|
||||
libxslt,
|
||||
docbook_xsl_ns,
|
||||
wrapQtAppsHook,
|
||||
libsForQt5,
|
||||
libusb1,
|
||||
qtlocation,
|
||||
qtserialport,
|
||||
qttools,
|
||||
qtbase,
|
||||
yaml-cpp,
|
||||
}:
|
||||
|
||||
@ -33,16 +29,16 @@ stdenv.mkDerivation rec {
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
libxslt
|
||||
wrapQtAppsHook
|
||||
libsForQt5.wrapQtAppsHook
|
||||
installShellFiles
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
libusb1
|
||||
qtlocation
|
||||
qtserialport
|
||||
qttools
|
||||
qtbase
|
||||
libsForQt5.qtlocation
|
||||
libsForQt5.qtserialport
|
||||
libsForQt5.qttools
|
||||
libsForQt5.qtbase
|
||||
yaml-cpp
|
||||
];
|
||||
|
@ -20,13 +20,13 @@
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "readest";
|
||||
version = "0.9.60";
|
||||
version = "0.9.61";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "readest";
|
||||
repo = "readest";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-CEY3q9IT2miEO5Q77Mw2BkiyUWuImmCtDrVyjK6HApo=";
|
||||
hash = "sha256-vtswHOG3/9oao+KrHWJi3NLsFghczmyLfT276kq5Llg=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
@ -39,14 +39,14 @@ rustPlatform.buildRustPackage (finalAttrs: {
|
||||
|
||||
pnpmDeps = pnpm_9.fetchDeps {
|
||||
inherit (finalAttrs) pname version src;
|
||||
hash = "sha256-Tt1Gm/tlxceQnTd6eStgwboHCDetXdUNtdDShHmB5+M=";
|
||||
hash = "sha256-9YG0l/cIjk5imkoly/pNmTVN7N+K56tpWnD7HDFSqiw=";
|
||||
};
|
||||
|
||||
pnpmRoot = "../..";
|
||||
|
||||
useFetchCargoVendor = true;
|
||||
|
||||
cargoHash = "sha256-9y/ZR+vbjp56F/EuX7tAp3W1/jwFLYlnBKfyLNx0/Qg=";
|
||||
cargoHash = "sha256-35REIeZy/D9UWzSI6yQZc1MRYwlAnjzsk5T7KOAhWVw=";
|
||||
|
||||
cargoRoot = "../..";
|
||||
|
||||
|
37
pkgs/by-name/re/regrippy/package.nix
Normal file
37
pkgs/by-name/re/regrippy/package.nix
Normal file
@ -0,0 +1,37 @@
|
||||
{
|
||||
lib,
|
||||
python3,
|
||||
fetchFromGitHub,
|
||||
}:
|
||||
|
||||
python3.pkgs.buildPythonApplication {
|
||||
pname = "regippy";
|
||||
version = "2.0.1";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "airbus-cert";
|
||||
repo = "regrippy";
|
||||
rev = "05c9db999853c47af1d15f92f1a34aa2441e8882";
|
||||
hash = "sha256-gS7qVPlXwn6UXRXPN5ahPmQL3JpwmESUEi0KKAzOo+8=";
|
||||
};
|
||||
|
||||
postInstall = ''
|
||||
mv $out/bin/regrip.py $out/bin/regrippy
|
||||
'';
|
||||
|
||||
build-system = [ python3.pkgs.setuptools ];
|
||||
|
||||
dependencies = [
|
||||
python3.pkgs.importlib-resources
|
||||
python3.pkgs.python-registry
|
||||
];
|
||||
|
||||
meta = {
|
||||
description = "Modern Python-3-based alternative to RegRipper";
|
||||
homepage = "https://github.com/airbus-cert/regrippy";
|
||||
license = lib.licenses.asl20;
|
||||
maintainers = with lib.maintainers; [ mikehorn ];
|
||||
mainProgram = "regrippy";
|
||||
};
|
||||
}
|
@ -9,13 +9,13 @@
|
||||
}:
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "sentry-cli";
|
||||
version = "2.45.0";
|
||||
version = "2.46.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "getsentry";
|
||||
repo = "sentry-cli";
|
||||
rev = version;
|
||||
hash = "sha256-nuqjlckrM4i4+cYJ3+oBoDB2g7PitAkkHv2CiI6Ttqc=";
|
||||
hash = "sha256-IWDMcmpwKCIE7ogo5upGTtWuF00pFlUwj6RRXTC+RDQ=";
|
||||
};
|
||||
doCheck = false;
|
||||
|
||||
@ -29,7 +29,7 @@ rustPlatform.buildRustPackage rec {
|
||||
];
|
||||
|
||||
useFetchCargoVendor = true;
|
||||
cargoHash = "sha256-cRK8olhz/3DdEvfXX5PBMgPsVihr5VFOdFZIkCy1r/0=";
|
||||
cargoHash = "sha256-PDDlt0KmPhJWH3Hd9no/cqYdL/QPGdAE2pIj0EXXc70=";
|
||||
|
||||
postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
|
||||
installShellCompletion --cmd sentry-cli \
|
||||
|
@ -10,13 +10,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "sentry-native";
|
||||
version = "0.9.0";
|
||||
version = "0.9.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "getsentry";
|
||||
repo = "sentry-native";
|
||||
tag = version;
|
||||
hash = "sha256-PFWCC0eaHnwRZ+i2n0O17kTg9jXlgIuzgTB53Dn40iQ=";
|
||||
hash = "sha256-jB744MO5GaZMQWIToyv1g4WzVu99qt/Cx0shvK7SW/c=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -7,11 +7,11 @@
|
||||
|
||||
stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
pname = "sof-firmware";
|
||||
version = "2025.01.1";
|
||||
version = "2025.05";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/thesofproject/sof-bin/releases/download/v${finalAttrs.version}/sof-bin-${finalAttrs.version}.tar.gz";
|
||||
hash = "sha256-o2IQ2cJF6BsNlnTWsn0f1BIpaM+SWu/FW0htNlD4gyM=";
|
||||
hash = "sha256-4vJgOw04x8vbFnKQGGP7+EtNtJIfQFlSojaRXLioa8w=";
|
||||
};
|
||||
|
||||
dontFixup = true; # binaries must not be stripped or patchelfed
|
||||
|
@ -2,23 +2,29 @@
|
||||
stdenv,
|
||||
lib,
|
||||
rustPlatform,
|
||||
fetchCrate,
|
||||
fetchFromGitHub,
|
||||
pkg-config,
|
||||
alsa-lib,
|
||||
rust,
|
||||
udevCheckHook,
|
||||
nix-update-script,
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "speakersafetyd";
|
||||
version = "1.0.2";
|
||||
version = "1.1.2";
|
||||
|
||||
src = fetchCrate {
|
||||
inherit pname version;
|
||||
hash = "sha256-3DzBNebg1y/+psD2zOpDsnRJmabQLeO1UMxPq9M0CsU=";
|
||||
src = fetchFromGitHub {
|
||||
owner = "AsahiLinux";
|
||||
repo = "speakersafetyd";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-sSGoF2c5HfPM2FBrBJwJ9NvExYijGx6JH1bJp3epfe0=";
|
||||
};
|
||||
useFetchCargoVendor = true;
|
||||
cargoHash = "sha256-DnOnqi60JsRX8yqEM/5zZ3yX/rk85/ruwL3aW1FRXKg=";
|
||||
|
||||
cargoHash = "sha256-9XbrIY1VwnHtqi/ZfS952SyjNjA/TJRdOqCsPReZI8o=";
|
||||
|
||||
patches = [
|
||||
./remove-install-paths.patch
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
@ -27,32 +33,41 @@ rustPlatform.buildRustPackage rec {
|
||||
buildInputs = [ alsa-lib ];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace speakersafetyd.service --replace "/usr" "$out"
|
||||
substituteInPlace Makefile --replace "target/release" "target/${stdenv.hostPlatform.rust.cargoShortTarget}/$cargoBuildType"
|
||||
# creating files in /var does not make sense in a nix package
|
||||
substituteInPlace Makefile --replace 'install -dDm0755 $(DESTDIR)/$(VARDIR)/lib/speakersafetyd/blackbox' ""
|
||||
substituteInPlace speakersafetyd.service \
|
||||
--replace-fail "/usr" \
|
||||
"$out"
|
||||
|
||||
substituteInPlace Makefile \
|
||||
--replace-fail "target/release" \
|
||||
"target/${stdenv.hostPlatform.rust.cargoShortTarget}/$cargoBuildType" \
|
||||
'';
|
||||
|
||||
installFlags = [
|
||||
"BINDIR=$(out)/bin"
|
||||
"UNITDIR=$(out)/lib/systemd/system"
|
||||
"UDEVDIR=$(out)/lib/udev/rules.d"
|
||||
"SHAREDIR=$(out)/share"
|
||||
"TMPFILESDIR=$(out)/lib/tmpfiles.d"
|
||||
"DESTDIR=$(out)"
|
||||
"BINDIR=bin"
|
||||
"UNITDIR=lib/systemd/system"
|
||||
"UDEVDIR=lib/udev/rules.d"
|
||||
"SHAREDIR=share"
|
||||
"TMPFILESDIR=lib/tmpfiles.d"
|
||||
];
|
||||
|
||||
dontCargoInstall = true;
|
||||
doInstallCheck = true;
|
||||
|
||||
meta = with lib; {
|
||||
description = "Userspace daemon written in Rust that implements an analogue of the Texas Instruments Smart Amp speaker protection model";
|
||||
passthru = {
|
||||
updateScript = nix-update-script { };
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "Userspace daemon that implements the Smart Amp protection model";
|
||||
mainProgram = "speakersafetyd";
|
||||
homepage = "https://github.com/AsahiLinux/speakersafetyd";
|
||||
maintainers = with maintainers; [
|
||||
maintainers = with lib.maintainers; [
|
||||
normalcea
|
||||
flokli
|
||||
yuka
|
||||
];
|
||||
license = licenses.mit;
|
||||
platforms = platforms.linux;
|
||||
license = lib.licenses.mit;
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
}
|
||||
})
|
||||
|
16
pkgs/by-name/sp/speakersafetyd/remove-install-paths.patch
Normal file
16
pkgs/by-name/sp/speakersafetyd/remove-install-paths.patch
Normal file
@ -0,0 +1,16 @@
|
||||
diff --git a/Makefile b/Makefile
|
||||
index 41bf7b4..ca14be7 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -24,11 +24,8 @@ install-data:
|
||||
install -pm0644 95-speakersafetyd.rules $(DESTDIR)/$(UDEVDIR)/95-speakersafetyd.rules
|
||||
install -dDm0755 $(DESTDIR)/$(SHAREDIR)/speakersafetyd/apple
|
||||
install -pm0644 -t $(DESTDIR)/$(SHAREDIR)/speakersafetyd/apple $(wildcard conf/apple/*)
|
||||
- install -dDm0755 -o $(SPEAKERSAFETYD_USER) -g $(SPEAKERSAFETYD_GROUP) $(DESTDIR)/$(VARDIR)/lib/speakersafetyd
|
||||
- install -dDm0700 -o $(SPEAKERSAFETYD_USER) -g $(SPEAKERSAFETYD_GROUP) $(DESTDIR)/$(VARDIR)/lib/speakersafetyd/blackbox
|
||||
install -dDm0755 $(DESTDIR)/$(TMPFILESDIR)
|
||||
install -pm0644 speakersafetyd.tmpfiles $(DESTDIR)/$(TMPFILESDIR)/speakersafetyd.conf
|
||||
- install -dDm0755 -o $(SPEAKERSAFETYD_USER) -g $(SPEAKERSAFETYD_GROUP) $(DESTDIR)/run/speakersafetyd
|
||||
|
||||
uninstall:
|
||||
rm -f $(DESTDIR)/$(BINDIR)/speakersafetyd $(DESTDIR)/$(UNITDIR)/speakersafetyd.service $(DESTDIR)/$(UDEVDIR)/95-speakersafetyd.rules $(DESTDIR)/$(TMPFILESDIR)/speakersafetyd.conf
|
@ -2,22 +2,22 @@
|
||||
lib,
|
||||
buildGoModule,
|
||||
fetchFromGitHub,
|
||||
unstableGitUpdater,
|
||||
nix-update-script,
|
||||
}:
|
||||
|
||||
buildGoModule {
|
||||
pname = "typescript-go";
|
||||
version = "0-unstable-2025-06-09";
|
||||
version = "0-unstable-2025-06-26";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "microsoft";
|
||||
repo = "typescript-go";
|
||||
rev = "f7d02dd5cc61be86f4f61018171c370cefebe3fd";
|
||||
hash = "sha256-19+t/Yq73Ih8yCoMJe4r65iejOeAeKYEWacMzqGs6jQ=";
|
||||
rev = "ff49e725dff18d63dd932de7646e35a8efbb54ff";
|
||||
hash = "sha256-L5MFedjlAP7EiC3T5FDdLCs06HwJ03qGIp/2ZT6QKWY=";
|
||||
fetchSubmodules = false;
|
||||
};
|
||||
|
||||
vendorHash = "sha256-SoBlxQfMg59UOO+99HPeKqEPxD2p7JauLMTpQ7Jl03s=";
|
||||
vendorHash = "sha256-9gZ1h/rsJ5DEcU8CJGKszE98GzZqfs2ELp1lbXsliYk=";
|
||||
|
||||
ldflags = [
|
||||
"-s"
|
||||
@ -41,7 +41,9 @@ buildGoModule {
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = unstableGitUpdater { };
|
||||
updateScript = nix-update-script {
|
||||
extraArgs = [ "--version=branch" ];
|
||||
};
|
||||
};
|
||||
|
||||
meta = {
|
||||
|
@ -11,16 +11,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "updatecli";
|
||||
version = "0.101.0";
|
||||
version = "0.102.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "updatecli";
|
||||
repo = "updatecli";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-anuP3od1cuuB9Y5wUn8CldvMZZFfD9ISyIma97oksjo=";
|
||||
hash = "sha256-ek8kJAGf51NZ4YOexwOovgIQ9I0WfQDk0KWIJsZRKQk=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-J8D02rkh+NJJQvk9ORV6WwoWtTKfbLtiL1bAZRVhLnI=";
|
||||
vendorHash = "sha256-gL2ZukNJROEQc0fv0k/XIvpnHmGywCgRgfKCPcP01Hg=";
|
||||
|
||||
# tests require network access
|
||||
doCheck = false;
|
||||
|
@ -4,7 +4,7 @@
|
||||
lib,
|
||||
pkg-config,
|
||||
jansson,
|
||||
pcre,
|
||||
pcre2,
|
||||
libxcrypt,
|
||||
expat,
|
||||
zlib,
|
||||
@ -103,7 +103,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
buildInputs =
|
||||
[
|
||||
jansson
|
||||
pcre
|
||||
pcre2
|
||||
libxcrypt
|
||||
]
|
||||
++ lib.optionals (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64) [
|
||||
|
@ -110,7 +110,7 @@ stdenv.mkDerivation rec {
|
||||
maintainers = [ lib.maintainers.eelco ];
|
||||
platforms =
|
||||
with lib.platforms;
|
||||
lib.intersectLists (x86 ++ power ++ s390x ++ armv7 ++ aarch64 ++ mips) (
|
||||
lib.intersectLists (x86 ++ power ++ s390x ++ armv7 ++ aarch64 ++ mips ++ riscv64) (
|
||||
darwin ++ freebsd ++ illumos ++ linux
|
||||
);
|
||||
badPlatforms = [ lib.systems.inspect.platformPatterns.isStatic ];
|
||||
|
44
pkgs/by-name/vs/vscode-json-languageserver/package.nix
Normal file
44
pkgs/by-name/vs/vscode-json-languageserver/package.nix
Normal file
@ -0,0 +1,44 @@
|
||||
{
|
||||
lib,
|
||||
buildNpmPackage,
|
||||
fetchFromGitHub,
|
||||
typescript,
|
||||
}:
|
||||
|
||||
buildNpmPackage (finalAttrs: {
|
||||
pname = "vscode-json-languageserver";
|
||||
version = "1.3.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "microsoft";
|
||||
repo = "vscode";
|
||||
tag = "1.101.2";
|
||||
hash = "sha256-wdI6VlJ4WoSNnwgkb6dkVYcq/P/yzflv5mE9PuYBVx4=";
|
||||
};
|
||||
|
||||
sourceRoot = "${finalAttrs.src.name}/extensions/json-language-features/server";
|
||||
|
||||
npmDepsHash = "sha256-akQukdYTe6um4xo+7T3wHxx+WrXfKYl5a1qwmqX72HQ=";
|
||||
|
||||
nativeBuildInputs = [ typescript ];
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
tsc -p .
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
dontNpmBuild = true;
|
||||
|
||||
postInstall = ''
|
||||
ln -s $out/bin/vscode-json-languageserver $out/bin/vscode-json-language-server
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "JSON language server";
|
||||
homepage = "https://github.com/microsoft/vscode/tree/${finalAttrs.src.tag}/extensions/json-language-features/server";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ ryota2357 ];
|
||||
mainProgram = "vscode-json-languageserver";
|
||||
};
|
||||
})
|
@ -2,7 +2,7 @@
|
||||
coreutils,
|
||||
fetchFromGitHub,
|
||||
lib,
|
||||
python3,
|
||||
python312,
|
||||
bash,
|
||||
openssl,
|
||||
nixosTests,
|
||||
@ -10,7 +10,7 @@
|
||||
}:
|
||||
|
||||
let
|
||||
python = python3;
|
||||
python = python312;
|
||||
|
||||
in
|
||||
python.pkgs.buildPythonApplication rec {
|
||||
|
@ -17,7 +17,7 @@
|
||||
}:
|
||||
|
||||
let
|
||||
rev = "1.1.2";
|
||||
rev = "1.2.0";
|
||||
in
|
||||
buildDotnetModule rec {
|
||||
pname = "XIVLauncher";
|
||||
@ -27,7 +27,7 @@ buildDotnetModule rec {
|
||||
owner = "goatcorp";
|
||||
repo = "XIVLauncher.Core";
|
||||
inherit rev;
|
||||
hash = "sha256-QkA18C3oWxcW0vK6sji7vbm4bY5LxwIWierAg5qf38Q=";
|
||||
hash = "sha256-2ZL3giUrc4mUNh8rr+yI+k2Sx5rZsoFGR1ZBlTugH6M=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
|
@ -61,23 +61,23 @@ let
|
||||
# and often with different versions. We write them on three lines
|
||||
# like this (rather than using {}) so that the updater script can
|
||||
# find where to edit them.
|
||||
versions.aarch64-darwin = "6.4.12.56699";
|
||||
versions.x86_64-darwin = "6.4.12.56699";
|
||||
versions.x86_64-linux = "6.4.13.2309";
|
||||
versions.aarch64-darwin = "6.5.1.58208";
|
||||
versions.x86_64-darwin = "6.5.1.58208";
|
||||
versions.x86_64-linux = "6.5.1.2550";
|
||||
|
||||
srcs = {
|
||||
aarch64-darwin = fetchurl {
|
||||
url = "https://zoom.us/client/${versions.aarch64-darwin}/zoomusInstallerFull.pkg?archType=arm64";
|
||||
name = "zoomusInstallerFull.pkg";
|
||||
hash = "sha256-rsO4HAvA6hCiGDBuLQj/qYWHR6Dlo+G9rkfhxvKBp4g=";
|
||||
hash = "sha256-hIYZ2OU5lww4MyRZOhcV4qQDGEN8Hdolw6a4g/ItcFQ=";
|
||||
};
|
||||
x86_64-darwin = fetchurl {
|
||||
url = "https://zoom.us/client/${versions.x86_64-darwin}/zoomusInstallerFull.pkg";
|
||||
hash = "sha256-MZ5dPHKH1uQuFA8Vej8Hh4CFZAjJFZe04le+e4LPDJc=";
|
||||
hash = "sha256-t/xIrVfjAl6dM9RWa+imyFHqS2KIJsKnoU0fiDQL9dQ=";
|
||||
};
|
||||
x86_64-linux = fetchurl {
|
||||
url = "https://zoom.us/client/${versions.x86_64-linux}/zoom_x86_64.pkg.tar.xz";
|
||||
hash = "sha256-gBUpsIUcsn+5u/1CchuS9mggnAFD8VW5J4RBv0Ziu+Y=";
|
||||
hash = "sha256-1YcbAlnUEk9R95r7RIuxAxNfRymdIOAjKkCw7a+1Lm4=";
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -274,6 +274,7 @@ mapAliases {
|
||||
inherit (pkgs) vsc-leetcode-cli; # Added 2023-08-30
|
||||
vscode-css-languageserver-bin = throw "vscode-css-languageserver-bin has been removed since the upstream repository is archived; consider using vscode-langservers-extracted instead."; # added 2024-06-26
|
||||
vscode-html-languageserver-bin = throw "vscode-html-languageserver-bin has been removed since the upstream repository is archived; consider using vscode-langservers-extracted instead."; # added 2024-06-26
|
||||
inherit (pkgs) vscode-json-languageserver; # added 2025-06-19
|
||||
vscode-json-languageserver-bin = throw "vscode-json-languageserver-bin has been removed since the upstream repository is archived; consider using vscode-langservers-extracted instead."; # added 2024-06-26
|
||||
vscode-langservers-extracted = pkgs.vscode-langservers-extracted; # Added 2023-05-27
|
||||
vue-language-server = self.vls; # added 2023-08-20
|
||||
|
@ -40,5 +40,4 @@
|
||||
purs-tidy = "purs-tidy";
|
||||
purty = "purty";
|
||||
pscid = "pscid";
|
||||
vscode-json-languageserver = "vscode-json-languageserver";
|
||||
}
|
||||
|
@ -154,7 +154,6 @@
|
||||
, "vega-cli"
|
||||
, "vega-lite"
|
||||
, "vercel"
|
||||
, "vscode-json-languageserver"
|
||||
, "wavedrom-cli"
|
||||
, "webpack"
|
||||
, "wring"
|
||||
|
50
pkgs/development/node-packages/node-packages.nix
generated
50
pkgs/development/node-packages/node-packages.nix
generated
@ -63785,56 +63785,6 @@ in
|
||||
bypassCache = true;
|
||||
reconstructLock = true;
|
||||
};
|
||||
vscode-json-languageserver = nodeEnv.buildNodePackage {
|
||||
name = "vscode-json-languageserver";
|
||||
packageName = "vscode-json-languageserver";
|
||||
version = "1.3.4";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/vscode-json-languageserver/-/vscode-json-languageserver-1.3.4.tgz";
|
||||
sha512 = "+ghebnslXk6fVDySBrT0BVqozLDdmKY/qxgkDD4JtOQcU2vXc3e7jh7YyMxvuvE93E9OLvBqUrvajttj8xf3BA==";
|
||||
};
|
||||
dependencies = [
|
||||
sources."agent-base-4.3.0"
|
||||
sources."debug-3.1.0"
|
||||
sources."es6-promise-4.2.8"
|
||||
sources."es6-promisify-5.0.0"
|
||||
sources."http-proxy-agent-2.1.0"
|
||||
sources."https-proxy-agent-2.2.4"
|
||||
sources."jsonc-parser-3.3.1"
|
||||
sources."ms-2.0.0"
|
||||
sources."request-light-0.4.0"
|
||||
(
|
||||
sources."vscode-json-languageservice-4.2.1"
|
||||
// {
|
||||
dependencies = [
|
||||
sources."vscode-nls-5.2.0"
|
||||
];
|
||||
}
|
||||
)
|
||||
sources."vscode-jsonrpc-6.0.0"
|
||||
sources."vscode-languageserver-7.0.0"
|
||||
(
|
||||
sources."vscode-languageserver-protocol-3.16.0"
|
||||
// {
|
||||
dependencies = [
|
||||
sources."vscode-languageserver-types-3.16.0"
|
||||
];
|
||||
}
|
||||
)
|
||||
sources."vscode-languageserver-textdocument-1.0.12"
|
||||
sources."vscode-languageserver-types-3.17.5"
|
||||
sources."vscode-nls-4.1.2"
|
||||
sources."vscode-uri-3.1.0"
|
||||
];
|
||||
buildInputs = globalBuildInputs;
|
||||
meta = {
|
||||
description = "JSON language server";
|
||||
license = "MIT";
|
||||
};
|
||||
production = true;
|
||||
bypassCache = true;
|
||||
reconstructLock = true;
|
||||
};
|
||||
wavedrom-cli = nodeEnv.buildNodePackage {
|
||||
name = "wavedrom-cli";
|
||||
packageName = "wavedrom-cli";
|
||||
|
@ -13,7 +13,7 @@
|
||||
}:
|
||||
|
||||
let
|
||||
version = "2.3.0";
|
||||
version = "2.5.0";
|
||||
tag = "v${version}";
|
||||
in
|
||||
buildPythonPackage {
|
||||
@ -25,7 +25,7 @@ buildPythonPackage {
|
||||
owner = "elevenlabs";
|
||||
repo = "elevenlabs-python";
|
||||
inherit tag;
|
||||
hash = "sha256-vj4ZmtumLq7Jveq7ID/FoPjlIz7Dv8uqMN4Nq6tSW/E=";
|
||||
hash = "sha256-GA+CQR5QPbXWpOMOp+P6fOjBiJemI2vOctM7zCnfmk4=";
|
||||
};
|
||||
|
||||
build-system = [ poetry-core ];
|
||||
|
@ -20,7 +20,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "evaluate";
|
||||
version = "0.4.3";
|
||||
version = "0.4.4";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
@ -29,7 +29,7 @@ buildPythonPackage rec {
|
||||
owner = "huggingface";
|
||||
repo = "evaluate";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-G/SK0nMpkpCEzX8AX/IJqpOPZWAQhP8tyr7TJ+F0NCE=";
|
||||
hash = "sha256-zN0Kud4CJMM5gazWKOR9kmwTVHYgT7DsZqbHjFIe47w=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
@ -56,7 +56,7 @@ buildPythonPackage rec {
|
||||
meta = with lib; {
|
||||
homepage = "https://huggingface.co/docs/evaluate/index";
|
||||
description = "Easily evaluate machine learning models and datasets";
|
||||
changelog = "https://github.com/huggingface/evaluate/releases/tag/v${version}";
|
||||
changelog = "https://github.com/huggingface/evaluate/releases/tag/${src.tag}";
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ bcdarwin ];
|
||||
mainProgram = "evaluate-cli";
|
||||
|
@ -20,7 +20,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "google-cloud-pubsub";
|
||||
version = "2.29.1";
|
||||
version = "2.30.0";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
@ -28,7 +28,7 @@ buildPythonPackage rec {
|
||||
src = fetchPypi {
|
||||
pname = "google_cloud_pubsub";
|
||||
inherit version;
|
||||
hash = "sha256-X0sFNMWHOU3SBTjBuuq31OvO14lWEFhzlVXrRNeSTOQ=";
|
||||
hash = "sha256-Jpde1yjSIJR59PsmZ+OzvXDedgWrrfSzAcZRw57YMEI=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
@ -10,14 +10,14 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "inject";
|
||||
version = "5.2.1";
|
||||
version = "5.3.0";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ivankorobkov";
|
||||
repo = "python-inject";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-Ws296ESjb+a322imiRRWTS43w32rJc/7Y//OBQXOwnw=";
|
||||
hash = "sha256-c/OpEsT9KF7285xfD+VRorrNHn3r9IPp/ts9JHyGK9s=";
|
||||
};
|
||||
|
||||
build-system = [
|
||||
|
66
pkgs/development/python-modules/iplotx/default.nix
Normal file
66
pkgs/development/python-modules/iplotx/default.nix
Normal file
@ -0,0 +1,66 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
hatchling,
|
||||
igraph,
|
||||
matplotlib,
|
||||
networkx,
|
||||
numpy,
|
||||
pandas,
|
||||
pylint,
|
||||
pytestCheckHook,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "iplotx";
|
||||
version = "0.3.1";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "fabilab";
|
||||
repo = "iplotx";
|
||||
tag = version;
|
||||
hash = "sha256-3Nn/sz1yUaxhGFr0hMGoLEBF5pNs+tz/KpsGtKkYujo=";
|
||||
};
|
||||
|
||||
build-system = [ hatchling ];
|
||||
|
||||
dependencies = [
|
||||
matplotlib
|
||||
numpy
|
||||
pandas
|
||||
pylint
|
||||
];
|
||||
|
||||
pythonRelaxDeps = [ "pylint" ];
|
||||
|
||||
optional-dependencies = {
|
||||
igraph = [ igraph ];
|
||||
networkx = [ networkx ];
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
# silence matplotlib warning
|
||||
export MPLCONFIGDIR=$(mktemp -d)
|
||||
'';
|
||||
|
||||
# These four tests result in an ImageComparisonFailure
|
||||
disabledTests = [
|
||||
"test_labels"
|
||||
"test_complex"
|
||||
"test_display_shortest_path"
|
||||
"test_labels_and_colors"
|
||||
];
|
||||
|
||||
nativeCheckInputs = [ pytestCheckHook ] ++ lib.flatten (lib.attrValues optional-dependencies);
|
||||
|
||||
pythonImportsCheck = [ "iplotx" ];
|
||||
|
||||
meta = {
|
||||
description = "Plot networkx from igraph and networkx";
|
||||
homepage = "https://iplotx.readthedocs.io/";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ jboy ];
|
||||
};
|
||||
}
|
@ -8,12 +8,12 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "litestar-htmx";
|
||||
version = "0.4.1";
|
||||
version = "0.5.0";
|
||||
|
||||
src = fetchPypi {
|
||||
pname = "litestar_htmx";
|
||||
inherit version;
|
||||
hash = "sha256-uiU3AI64zBi/yL7lzssoCSTHgYuxwGbXnq5LIhaWygg=";
|
||||
hash = "sha256-4C0aOpIXLIdINfo+Z0nWWun8Ym0N9GcZSQoWKT4hRvs=";
|
||||
};
|
||||
|
||||
pyproject = true;
|
||||
|
@ -10,14 +10,14 @@
|
||||
|
||||
buildPythonPackage {
|
||||
pname = "migen";
|
||||
version = "0.9.2-unstable-2025-02-07";
|
||||
version = "0.9.2-unstable-2025-06-10";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "m-labs";
|
||||
repo = "migen";
|
||||
rev = "2828df54594673653a641ab551caf6c6b1bfeee5";
|
||||
hash = "sha256-GproDJowtcgbccsT+I0mObzFhE483shcS8MSszKXwlc=";
|
||||
rev = "6e3a9e150fb006dabc4b55043d3af18dbfecd7e8";
|
||||
hash = "sha256-NshlPiORBHWljSUP5bB7YBxe7k8dW0t8UXOsIq2EK8I=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ setuptools ];
|
||||
|
@ -13,7 +13,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "notion-client";
|
||||
version = "2.3.0";
|
||||
version = "2.4.0";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
@ -22,7 +22,7 @@ buildPythonPackage rec {
|
||||
owner = "ramnes";
|
||||
repo = "notion-sdk-py";
|
||||
tag = version;
|
||||
hash = "sha256-oqYBT7K0px0QvShSx1fnr2181h+QXz7I8sdURsBRgWw=";
|
||||
hash = "sha256-vzgFW37pA4LRS+Rqz1QN92EuLTrlWnJqA/H+IhSHQi8=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ setuptools ];
|
||||
@ -51,7 +51,7 @@ buildPythonPackage rec {
|
||||
meta = with lib; {
|
||||
description = "Python client for the official Notion API";
|
||||
homepage = "https://github.com/ramnes/notion-sdk-py";
|
||||
changelog = "https://github.com/ramnes/notion-sdk-py/releases/tag/${version}";
|
||||
changelog = "https://github.com/ramnes/notion-sdk-py/releases/tag/${src.tag}";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ jpetrucciani ];
|
||||
};
|
||||
|
@ -5,7 +5,6 @@
|
||||
dulwich,
|
||||
pbr,
|
||||
sphinx,
|
||||
pythonAtLeast,
|
||||
setuptools,
|
||||
}:
|
||||
|
||||
@ -14,8 +13,6 @@ buildPythonPackage rec {
|
||||
version = "3.5.0";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonAtLeast "3.13";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256-3h1dXtIMk1/CgbUP30ppUo+Q8qdb7PQtGIRD9eGWwJ8=";
|
||||
|
57
pkgs/development/python-modules/optype/default.nix
Normal file
57
pkgs/development/python-modules/optype/default.nix
Normal file
@ -0,0 +1,57 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
hatchling,
|
||||
typing-extensions,
|
||||
numpy,
|
||||
beartype,
|
||||
pytestCheckHook,
|
||||
pythonOlder,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "optype";
|
||||
version = "0.10.0";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jorenham";
|
||||
repo = "optype";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-F6nkbSSmAHIs2I/Yi1+PPtEsSSTnCO8Hsws7JyleJsM=";
|
||||
};
|
||||
|
||||
disabled = pythonOlder "3.11";
|
||||
|
||||
build-system = [
|
||||
hatchling
|
||||
];
|
||||
|
||||
dependencies = [
|
||||
typing-extensions
|
||||
];
|
||||
|
||||
optional-dependencies = {
|
||||
numpy = [
|
||||
numpy
|
||||
];
|
||||
};
|
||||
|
||||
pythonImportsCheck = [
|
||||
"optype"
|
||||
];
|
||||
|
||||
nativeCheckInputs = [
|
||||
pytestCheckHook
|
||||
numpy
|
||||
beartype
|
||||
];
|
||||
|
||||
meta = {
|
||||
description = "Opinionated typing package for precise type hints in Python";
|
||||
homepage = "https://github.com/jorenham/optype";
|
||||
license = lib.licenses.bsd3;
|
||||
maintainers = with lib.maintainers; [ jolars ];
|
||||
};
|
||||
}
|
@ -69,8 +69,9 @@ buildPythonPackage rec {
|
||||
disabledTests = [
|
||||
# not compatible with sandbox
|
||||
"test_logging_handle_error"
|
||||
# File which is used doesn't seem not to be present
|
||||
"test_log_config_append_invalid"
|
||||
# Incompatible Exception Representation, displaying natively
|
||||
"test_rate_limit"
|
||||
"test_rate_limit_except_level"
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "oslo_log" ];
|
||||
|
@ -18,6 +18,7 @@
|
||||
typing-extensions,
|
||||
ujson,
|
||||
distutils,
|
||||
huggingface-hub,
|
||||
}:
|
||||
|
||||
let
|
||||
@ -49,14 +50,14 @@ let
|
||||
in
|
||||
buildPythonPackage rec {
|
||||
pname = "paddlex";
|
||||
version = "3.0.1";
|
||||
version = "3.0.3";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "PaddlePaddle";
|
||||
repo = "PaddleX";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-qov5nqGIsSfaho2dcWVsyWKQlJsIJgdX3rDz66JtLDI=";
|
||||
hash = "sha256-uIpt2I6Lx/nJDh4sZYBI6dL8IveQf6aOxA/9vKFU2nU=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
@ -82,6 +83,7 @@ buildPythonPackage rec {
|
||||
typing-extensions
|
||||
ujson
|
||||
gputil
|
||||
huggingface-hub
|
||||
];
|
||||
|
||||
meta = {
|
||||
|
@ -16,7 +16,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "panel";
|
||||
version = "1.6.3";
|
||||
version = "1.7.1";
|
||||
|
||||
format = "wheel";
|
||||
|
||||
@ -25,7 +25,7 @@ buildPythonPackage rec {
|
||||
# tries to fetch even more artifacts
|
||||
src = fetchPypi {
|
||||
inherit pname version format;
|
||||
hash = "sha256-zNKgWHqzgr1VuOoJlwbzG2Sq2saXuKQZI9Oxi57WGNY=";
|
||||
hash = "sha256-gM67iOMxCIfThsiC+JSxN6N3A1VhoGCZCP4tH1QrWIw=";
|
||||
dist = "py3";
|
||||
python = "py3";
|
||||
};
|
||||
|
@ -19,14 +19,14 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "posthog";
|
||||
version = "5.0.0";
|
||||
version = "5.4.0";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "PostHog";
|
||||
repo = "posthog-python";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-pNnttrp6s9T+tmDFJ9S3DZ/HcMTifYkr6Rs8E/8+G5c=";
|
||||
hash = "sha256-UUINopWw2q5INuFiveI5si7jPRLT0Mad3hnfbykHs6M=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
@ -9,12 +9,12 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "pyaml";
|
||||
version = "25.1.0";
|
||||
version = "25.5.0";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256-M6k6xJIY9X4CC4HigNJwbOpVSsWnZEWsea3XYNAZxwk=";
|
||||
hash = "sha256-V5lWDHscna81p6RTX1PiwwMj90y9fLTy5xWxbdaBpYo=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ setuptools ];
|
||||
|
@ -19,6 +19,7 @@
|
||||
libpulseaudio,
|
||||
harfbuzz,
|
||||
mesa,
|
||||
apple-sdk,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
@ -41,7 +42,7 @@ buildPythonPackage rec {
|
||||
let
|
||||
ext = stdenv.hostPlatform.extensions.sharedLibrary;
|
||||
in
|
||||
''
|
||||
lib.optionalString stdenv.isLinux ''
|
||||
cat > pyglet/lib.py <<EOF
|
||||
import ctypes
|
||||
def load_library(*names, **kwargs):
|
||||
@ -85,6 +86,34 @@ buildPythonPackage rec {
|
||||
return ctypes.cdll.LoadLibrary(path)
|
||||
raise Exception("Could not load library {}".format(names))
|
||||
EOF
|
||||
''
|
||||
+ lib.optionalString stdenv.isDarwin ''
|
||||
cat > pyglet/lib.py <<EOF
|
||||
import os
|
||||
import ctypes
|
||||
def load_library(*names, **kwargs):
|
||||
path = None
|
||||
framework = kwargs.get('framework')
|
||||
if framework is not None:
|
||||
path = '${apple-sdk}/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/{framework}.framework/{framework}'.format(framework=framework)
|
||||
else:
|
||||
names = kwargs.get('darwin', names)
|
||||
if not isinstance(names, tuple):
|
||||
names = (names,)
|
||||
for name in names:
|
||||
if name == "libharfbuzz.0.dylib":
|
||||
path = '${harfbuzz}/lib/%s' % name
|
||||
break
|
||||
elif name.startswith('avutil'):
|
||||
path = '${lib.getLib ffmpeg-full}/lib/lib%s.dylib' % name
|
||||
if not os.path.exists(path):
|
||||
path = None
|
||||
else:
|
||||
break
|
||||
if path is not None:
|
||||
return ctypes.cdll.LoadLibrary(path)
|
||||
raise ImportError("Could not load library {}".format(names))
|
||||
EOF
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [ unzip ];
|
||||
@ -95,9 +124,10 @@ buildPythonPackage rec {
|
||||
|
||||
nativeCheckInputs = [ pytestCheckHook ];
|
||||
|
||||
preCheck = ''
|
||||
export PYGLET_HEADLESS=True
|
||||
'';
|
||||
preCheck = # libEGL only available on Linux (despite meta.platforms on libGL)
|
||||
lib.optionalString stdenv.isLinux ''
|
||||
export PYGLET_HEADLESS=True
|
||||
'';
|
||||
|
||||
# test list taken from .travis.yml
|
||||
disabledTestPaths = [
|
||||
@ -109,11 +139,11 @@ buildPythonPackage rec {
|
||||
|
||||
pythonImportsCheck = [ "pyglet" ];
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
homepage = "http://www.pyglet.org/";
|
||||
description = "Cross-platform windowing and multimedia library";
|
||||
license = licenses.bsd3;
|
||||
# The patch needs adjusting for non‐Linux platforms.
|
||||
platforms = platforms.linux;
|
||||
license = lib.licenses.bsd3;
|
||||
# The patch needs adjusting for other platforms.
|
||||
platforms = with lib.platforms; linux ++ darwin;
|
||||
};
|
||||
}
|
||||
|
@ -33,7 +33,7 @@ in
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "python-arango";
|
||||
version = "8.1.6";
|
||||
version = "8.2.0";
|
||||
format = "pyproject";
|
||||
|
||||
disabled = pythonOlder "3.9";
|
||||
@ -42,7 +42,7 @@ buildPythonPackage rec {
|
||||
owner = "arangodb";
|
||||
repo = "python-arango";
|
||||
tag = version;
|
||||
hash = "sha256-y+ECfrLoenjXl71hty7snNdu6tN5q8XTGtBlXtkSg7g=";
|
||||
hash = "sha256-DPyCHa9tAnxKYeieiHe10UV7EPnF7octbDm23dSlIb0=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -76,6 +76,7 @@ buildPythonPackage rec {
|
||||
cinderclient.tests.unit.test_client.ClientTest.test_sessionclient_request_method_raises_badrequest
|
||||
cinderclient.tests.unit.test_client.ClientTest.test_sessionclient_request_method_raises_overlimit
|
||||
cinderclient.tests.unit.test_shell.ShellTest.test_password_prompted
|
||||
cinderclient.tests.unit.test_shell.TestLoadVersionedActions.test_load_versioned_actions_with_help
|
||||
")
|
||||
|
||||
runHook postCheck
|
||||
|
@ -24,8 +24,8 @@ let
|
||||
pname = "python-glanceclient";
|
||||
version = "4.8.0";
|
||||
|
||||
# Skip tests which require networking.
|
||||
disabledTests = [
|
||||
# Skip tests which require networking.
|
||||
"test_http_chunked_response"
|
||||
"test_v1_download_has_no_stray_output_to_stdout"
|
||||
"test_v2_requests_valid_cert_verification"
|
||||
@ -40,6 +40,9 @@ let
|
||||
"test_v2_requests_valid_cert_no_key"
|
||||
"test_v2_requests_valid_cert_verification_no_compression"
|
||||
"test_log_request_id_once"
|
||||
# asserts exact amount of mock calls
|
||||
"test_cache_schemas_gets_when_forced"
|
||||
"test_cache_schemas_gets_when_not_exists"
|
||||
];
|
||||
in
|
||||
buildPythonPackage {
|
||||
|
@ -11,14 +11,14 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "tskit";
|
||||
version = "0.6.3";
|
||||
version = "0.6.4";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256-bbo89pMhTDEF2M3c1pauDjECNmk34CmmqmXNmOcbVfI=";
|
||||
hash = "sha256-vawbt+OuPR9WLsGRtdhAFW4ILdKtxq98QbFwxPsb55I=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
@ -19,14 +19,14 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "ufo2ft";
|
||||
version = "3.4.3";
|
||||
version = "3.5.0";
|
||||
pyproject = true;
|
||||
|
||||
disabled = pythonOlder "3.8";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256-jGMH1VZQAUszd8uxH+3mRAfudTiOEoBXSnGOUcqPXao=";
|
||||
hash = "sha256-mAuMJzuXxO00j0YqxZ21qk+HTAwBhPCws6DUhE9vIrs=";
|
||||
};
|
||||
|
||||
build-system = [
|
||||
|
@ -77,7 +77,7 @@ buildPythonPackage rec {
|
||||
meta = with lib; {
|
||||
description = "Strict, predictable, and typed datetimes";
|
||||
homepage = "https://github.com/ariebovenberg/whenever";
|
||||
changelog = "https://github.com/ariebovenberg/whenever/blob/${src.rev}/CHANGELOG.rst";
|
||||
changelog = "https://github.com/ariebovenberg/whenever/blob/${src.rev}/CHANGELOG.md";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ pbsds ];
|
||||
};
|
||||
|
@ -43,13 +43,13 @@ let
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "prl-tools";
|
||||
version = "20.3.2-55975";
|
||||
version = "20.4.0-55980";
|
||||
|
||||
# We download the full distribution to extract prl-tools-lin.iso from
|
||||
# => ${dmg}/Parallels\ Desktop.app/Contents/Resources/Tools/prl-tools-lin.iso
|
||||
src = fetchurl {
|
||||
url = "https://download.parallels.com/desktop/v${lib.versions.major finalAttrs.version}/${finalAttrs.version}/ParallelsDesktop-${finalAttrs.version}.dmg";
|
||||
hash = "sha256-eazDR+eSUcp81XdRfYRHIt7E4FNCEjsh0M0wYQQYmMQ=";
|
||||
hash = "sha256-FTlQNTdR5SpulF9f0qtmm+ynovaD4thTNAk96HbIzFQ=";
|
||||
};
|
||||
|
||||
hardeningDisable = [
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user