0
0
Fork 0
mirror of https://github.com/NixOS/nixpkgs.git synced 2025-07-14 06:00:33 +03:00

Merge staging-next into staging

This commit is contained in:
nixpkgs-ci[bot] 2025-07-04 12:08:16 +00:00 committed by GitHub
commit fa737a17ea
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
77 changed files with 1509 additions and 260 deletions

View file

@ -26324,6 +26324,12 @@
githubId = 223408;
name = "Varun Madiath";
};
vanadium5000 = {
email = "vanadium5000@gmail.com";
github = "Vanadium5000";
githubId = 151467774;
name = "Vanadium5000";
};
vancluever = {
email = "chrism@vancluevertech.com";
github = "vancluever";
@ -26998,6 +27004,12 @@
githubId = 13031455;
name = "Jakob Schmutz";
};
WheelsForReals = {
email = "WheelsForReals@proton.me";
github = "WheelsForReals";
githubId = 6102222;
name = "WheelsForReals";
};
WhiteBlackGoose = {
email = "wbg@angouri.org";
github = "WhiteBlackGoose";

View file

@ -38,6 +38,8 @@
- Docker now defaults to 28.x, because version 27.x stopped receiving security updates and bug fixes after [May 2, 2025](https://github.com/moby/moby/pull/49910).
- [Corteza](https://cortezaproject.org/), a low-code platform. Available as [services.corteza](#opt-services.corteza.enable).
- [Draupnir](https://github.com/the-draupnir-project/draupnir), a Matrix moderation bot. Available as [services.draupnir](#opt-services.draupnir.enable).
- [postfix-tlspol](https://github.com/Zuplu/postfix-tlspol), MTA-STS and DANE resolver and TLS policy server for Postfix. Available as [services.postfix-tlspol](#opt-services.postfix-tlspol.enable).

View file

@ -579,6 +579,7 @@
./services/development/athens.nix
./services/development/blackfire.nix
./services/development/bloop.nix
./services/development/corteza.nix
./services/development/distccd.nix
./services/development/gemstash.nix
./services/development/hoogle.nix

View file

@ -0,0 +1,113 @@
{
config,
lib,
pkgs,
...
}:
let
cfg = config.services.corteza;
in
{
options.services.corteza = {
enable = lib.mkEnableOption "Corteza, a low-code platform";
package = lib.mkPackageOption pkgs "corteza" { };
address = lib.mkOption {
type = lib.types.str;
default = "0.0.0.0";
description = ''
IP for the HTTP server.
'';
};
port = lib.mkOption {
type = lib.types.port;
default = 80;
description = ''
Port for the HTTP server.
'';
};
openFirewall = lib.mkOption {
type = lib.types.bool;
default = false;
example = true;
description = "Whether to open ports in the firewall.";
};
user = lib.mkOption {
type = lib.types.str;
default = "corteza";
description = "The user to run Corteza under.";
};
group = lib.mkOption {
type = lib.types.str;
default = "corteza";
description = "The group to run Corteza under.";
};
settings = lib.mkOption {
type = lib.types.submodule {
freeformType = lib.types.attrsOf lib.types.str;
options = {
HTTP_WEBAPP_ENABLED = lib.mkEnableOption "webapps" // {
default = true;
apply = toString;
};
};
};
default = { };
description = ''
Configuration for Corteza, will be passed as environment variables.
See <https://docs.cortezaproject.org/corteza-docs/2024.9/devops-guide/references/configuration/server.html>.
'';
};
};
config = lib.mkIf cfg.enable {
assertions = [
{
assertion = !cfg.settings ? HTTP_ADDR;
message = "Use `services.corteza.address` and `services.corteza.port` instead.";
}
];
warnings = lib.optional (!cfg.settings ? DB_DSN) ''
A database connection string is not set.
Corteza will create a temporary SQLite database in memory, but it will not persist data.
For production use, set `services.corteza.settings.DB_DSN`.
'';
networking.firewall.allowedTCPPorts = lib.mkIf cfg.openFirewall [ cfg.port ];
systemd.services.corteza = {
description = "Corteza";
documentation = [ "https://docs.cortezaproject.org/" ];
after = [ "network-online.target" ];
wants = [ "network-online.target" ];
wantedBy = [ "multi-user.target" ];
environment = {
HTTP_WEBAPP_BASE_DIR = "./webapp";
HTTP_ADDR = "${cfg.address}:${toString cfg.port}";
} // cfg.settings;
path = [ pkgs.dart-sass ];
serviceConfig = {
WorkingDirectory = cfg.package;
User = cfg.user;
Group = cfg.group;
ExecStart = "${lib.getExe cfg.package} serve-api";
};
};
users = {
groups.${cfg.group} = { };
users.${cfg.user} = {
inherit (cfg) group;
isSystemUser = true;
};
};
};
meta.maintainers = with lib.maintainers; [
prince213
];
}

View file

@ -347,6 +347,7 @@ in
containers-unified-hierarchy = runTest ./containers-unified-hierarchy.nix;
convos = runTest ./convos.nix;
corerad = handleTest ./corerad.nix { };
corteza = runTest ./corteza.nix;
cosmic = runTest {
imports = [ ./cosmic.nix ];
_module.args.testName = "cosmic";

23
nixos/tests/corteza.nix Normal file
View file

@ -0,0 +1,23 @@
{ lib, ... }:
let
port = 8080;
in
{
name = "corteza";
meta.maintainers = [ lib.teams.ngi.members ];
nodes.machine = {
services.corteza = {
enable = true;
inherit port;
};
};
testScript = ''
machine.start()
machine.wait_for_unit("default.target")
machine.wait_until_succeeds("curl http://localhost:${toString port}/auth/login | grep button-login")
'';
}

View file

@ -7,8 +7,8 @@ vscode-utils.buildVscodeMarketplaceExtension (finalAttrs: {
mktplcRef = {
name = "amazon-q-vscode";
publisher = "AmazonWebServices";
version = "1.78.0";
hash = "sha256-SnvH4WQ9kp9nHJkrQGvWj91XpUI0raP2ud57WViZBG4=";
version = "1.81.0";
hash = "sha256-zuE+KR0iLEkQrxxS835ZYq20yxWgV1S14bay4shqVWg=";
};
meta = {

View file

@ -1020,8 +1020,8 @@ let
mktplcRef = {
name = "coder-remote";
publisher = "coder";
version = "1.9.1";
hash = "sha256-Fsh95lMNliag5TV5MWSAs4Z3npj74mrCmaLSztbpH0I=";
version = "1.9.2";
hash = "sha256-klI3OMYu5FL3/c4jBzgy8SmxJI5nGRK5k9bZrEtm5+0=";
};
meta = {
description = "Extension for Visual Studio Code to open any Coder workspace in VS Code with a single click";

View file

@ -7,8 +7,8 @@ vscode-utils.buildVscodeMarketplaceExtension {
mktplcRef = {
name = "windows-ai-studio";
publisher = "ms-windows-ai-studio";
version = "0.14.4";
hash = "sha256-6QPDnfwXMVxC6qxeaAiTKeiuaxFyPNCFexEjgf5Emrg=";
version = "0.16.0";
hash = "sha256-JBHdwvlJ4BHlphABT2ViR03R4zRVSwkHkOw1n3bNzAQ=";
};
meta = {

View file

@ -38,14 +38,14 @@
}:
stdenv.mkDerivation (finalAttrs: {
version = "1.7.8";
version = "1.7.9";
pname = "syncthingtray";
src = fetchFromGitHub {
owner = "Martchus";
repo = "syncthingtray";
rev = "v${finalAttrs.version}";
hash = "sha256-aUIZJ+nSLs1W0zycu6Mz2pknJw4e+jNxaFLUpSP6EKA=";
hash = "sha256-nIu6JrFqJ1QsALei9Bmrs6Bd2qM/37nb0ouxDymMN8k=";
};
buildInputs =

View file

@ -6,12 +6,12 @@
python3Packages.buildPythonApplication rec {
pname = "bikeshed";
version = "5.2.1";
version = "5.3.2";
pyproject = true;
src = fetchPypi {
inherit pname version;
hash = "sha256-EMWIHtIomiq7BvnG6x0+gJeSkouWpZzcnqys5mSM7aI=";
hash = "sha256-+TY26g685eIMXUjTG876r9gryg/tR6EtMGWAhk2kkis=";
};
build-system = [ python3Packages.setuptools ];

View file

@ -0,0 +1,70 @@
{
lib,
python3Packages,
fetchFromGitHub,
versionCheckHook,
}:
python3Packages.buildPythonApplication rec {
pname = "blint";
version = "2.4.1";
pyproject = true;
src = fetchFromGitHub {
owner = "owasp-dep-scan";
repo = "blint";
tag = "v${version}";
hash = "sha256-mGeC7+YzQWSlT3sW2la/f21fN8V+YoFd4fwj/PBPCMI=";
};
build-system = [
python3Packages.poetry-core
];
dependencies = with python3Packages; [
pyyaml
appdirs
apsw
ar
custom-json-diff
defusedxml
email-validator
lief
oras
orjson
packageurl-python
pydantic
rich
symbolic
];
pythonRelaxDeps = [
"apsw"
"symbolic"
];
pythonImportsCheck = [
"blint"
];
nativeCheckInputs = with python3Packages; [
pytestCheckHook
pytest-cov-stub
];
# only runs on windows and fails, obviously
disabledTests = [
"test_demangle"
];
meta = {
description = "Binary Linter to check the security properties, and capabilities in executables";
homepage = "https://github.com/owasp-dep-scan/blint";
changelog = "https://github.com/owasp-dep-scan/blint/releases/tag/v${version}";
license = lib.licenses.mit;
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [ ethancedwards8 ];
teams = with lib.teams; [ ngi ];
mainProgram = "blint";
};
}

View file

@ -8,17 +8,17 @@
rustPlatform.buildRustPackage rec {
pname = "cargo-deb";
version = "2.12.1";
version = "3.2.0";
src = fetchFromGitHub {
owner = "kornelski";
repo = "cargo-deb";
rev = "v${version}";
hash = "sha256-Ov3rVfURzzZ6+YFq4Cqtoq5RQVHHjqvgkOcpsvAy1jc=";
hash = "sha256-2HHxGpp/N8QDytOsiWh8nkYNbWhThjisjnyI3B8+XYo=";
};
useFetchCargoVendor = true;
cargoHash = "sha256-11l/9l1WD7vLHNOKFVOxcR4OI2ft1IrT5bRX77XS+BI=";
cargoHash = "sha256-hHZt4mRLpeXj1XWJ6v0pBDO0NpFDn0BT2oLgT2yZlm0=";
nativeBuildInputs = [
makeWrapper

View file

@ -0,0 +1,78 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
gfortran,
tk,
hdf5,
xorg,
libGLU,
withTools ? false,
testers,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "cgns";
version = "4.5.0";
src = fetchFromGitHub {
owner = "cgns";
repo = "cgns";
tag = "v${finalAttrs.version}";
hash = "sha256-lPbXIC+O4hTtacxUcyNjZUWpEwo081MjEWhfIH3MWus=";
};
postPatch = ''
substituteInPlace src/cgnstools/tkogl/tkogl.c \
--replace-fail "<tk-private/generic/tkInt.h>" "<tkInt.h>"
'';
nativeBuildInputs = [
cmake
gfortran
];
buildInputs =
[
hdf5
]
++ lib.optionals withTools [
tk
xorg.libXmu
libGLU
];
cmakeFlags = [
(lib.cmakeBool "CGNS_ENABLE_FORTRAN" true)
(lib.cmakeBool "CGNS_ENABLE_LEGACY" true)
(lib.cmakeBool "CGNS_ENABLE_HDF5" true)
(lib.cmakeBool "HDF5_NEED_MPI" hdf5.mpiSupport)
(lib.cmakeBool "CGNS_BUILD_CGNSTOOLS" withTools)
(lib.cmakeBool "CGNS_ENABLE_TESTS" finalAttrs.finalPackage.doCheck)
(lib.cmakeBool "CGNS_BUILD_SHARED" (!stdenv.hostPlatform.isStatic))
];
doCheck = true;
enableParallelChecking = false;
# Remove broken .desktop files
postFixup = ''
rm -f $out/bin/*.desktop
'';
passthru.tests.cmake-config = testers.hasCmakeConfigModules {
moduleNames = [ "cgns" ];
package = finalAttrs.finalPackage;
};
meta = {
description = "CFD General Notation System standard library";
homepage = "https://cgns.github.io";
downloadPage = "https://github.com/cgns/cgns";
changelog = "https://github.com/cgns/cgns/releases/tag/${finalAttrs.src.tag}";
license = with lib.licenses; [ zlib ];
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [ qbisi ];
};
})

View file

@ -5,6 +5,7 @@
callPackage,
fetchFromGitHub,
lib,
nixosTests,
stdenvNoCC,
}:
@ -161,6 +162,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
passthru = {
srcs = { inherit corteza-server corteza-webapp; };
tests = { inherit (nixosTests) corteza; };
};
inherit (corteza-server) meta;

View file

@ -9,13 +9,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "cpp-utilities";
version = "5.28.1";
version = "5.29.0";
src = fetchFromGitHub {
owner = "Martchus";
repo = "cpp-utilities";
rev = "v${finalAttrs.version}";
sha256 = "sha256-+VbVVRtOKNjJNQYU/QOU5hfARxHicsQQgm2TH5y8qx8=";
sha256 = "sha256-EtKcvkNpqEzpJj+hTJsQaDQad4SO0h1TLUbJ8leNTdk=";
};
nativeBuildInputs = [ cmake ];

View file

@ -19,13 +19,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "dsda-doom";
version = "0.29.2";
version = "0.29.3";
src = fetchFromGitHub {
owner = "kraflab";
repo = "dsda-doom";
tag = "v${finalAttrs.version}";
hash = "sha256-KNF91ikLFJPjSSsoz01kwAG5aCoABFyIQ5ZzbshFlkI=";
hash = "sha256-Nsz9bj+AJomkYOiy5cli+NLmrJKNjYOiXjEZDXnnFNo=";
};
sourceRoot = "${finalAttrs.src.name}/prboom2";

View file

@ -1,15 +1,16 @@
{
lib,
fetchzip,
fetchFromGitHub,
fetchpatch,
imagemagick,
libgbm,
libdrm,
flutter332,
pulseaudio,
copyDesktopItems,
makeDesktopItem,
olm,
callPackage,
vodozemac-wasm ? callPackage ./vodozemac-wasm.nix { flutter = flutter332; },
targetFlutterPlatform ? "linux",
}:
@ -24,81 +25,72 @@ in
flutter332.buildFlutterApplication (
rec {
pname = "fluffychat-${targetFlutterPlatform}";
version = "1.27.0";
version = "2.0.0";
src = fetchFromGitHub {
owner = "krille-chan";
repo = "fluffychat";
tag = "v${version}";
hash = "sha256-kt4VpegxcZ+d0NIKan2A0AUqFLdYNcU9HY/4zyd2eSU=";
hash = "sha256-fFc6nIVQUY9OiGkEc7jrzXnBQPDWC5x5A4/XHUhu6hs=";
};
# https://github.com/krille-chan/fluffychat/pull/1965
patches = [
(fetchpatch {
name = "fix_compilation_mxc_image.patch";
url = "https://github.com/krille-chan/fluffychat/commit/e1ec87d3aaae00eb030bcfda28ec8f247e2c3346.patch";
hash = "sha256-/cd3geNVPifAC7iTcx8V1l2WY9Y/mEw+VPl2B4HSJKY=";
})
];
inherit pubspecLock;
gitHashes = {
flutter_secure_storage_linux = "sha256-cFNHW7dAaX8BV7arwbn68GgkkBeiAgPfhMOAFSJWlyY=";
flutter_web_auth_2 = "sha256-3aci73SP8eXg6++IQTQoyS+erUUuSiuXymvR32sxHFw=";
flutter_typeahead = "sha256-ZGXbbEeSddrdZOHcXE47h3Yu3w6oV7q+ZnO6GyW7Zg8=";
flutter_secure_storage_linux = "sha256-cFNHW7dAaX8BV7arwbn68GgkkBeiAgPfhMOAFSJWlyY=";
};
inherit targetFlutterPlatform;
meta = {
description = "Chat with your friends (matrix client)";
homepage = "https://fluffychat.im/";
license = lib.licenses.agpl3Plus;
mainProgram = "fluffychat";
maintainers = with lib.maintainers; [
mkg20001
tebriel
aleksana
];
platforms = [
"x86_64-linux"
"aarch64-linux"
];
sourceProvenance = [ lib.sourceTypes.fromSource ];
inherit (olm.meta) knownVulnerabilities;
};
meta =
{
description = "Chat with your friends (matrix client)";
homepage = "https://fluffychat.im/";
license = lib.licenses.agpl3Plus;
maintainers = with lib.maintainers; [
mkg20001
tebriel
aleksana
];
badPlatforms = lib.platforms.darwin;
}
// lib.optionalAttrs (targetFlutterPlatform == "linux") {
mainProgram = "fluffychat";
};
}
// lib.optionalAttrs (targetFlutterPlatform == "linux") {
nativeBuildInputs = [ imagemagick ];
nativeBuildInputs = [
imagemagick
copyDesktopItems
];
runtimeDependencies = [ pulseaudio ];
env.NIX_LDFLAGS = "-rpath-link ${libwebrtcRpath}";
desktopItem = makeDesktopItem {
name = "Fluffychat";
exec = "fluffychat";
icon = "fluffychat";
desktopName = "Fluffychat";
genericName = "Chat with your friends (matrix client)";
categories = [
"Chat"
"Network"
"InstantMessaging"
];
};
desktopItems = [
(makeDesktopItem {
name = "Fluffychat";
exec = "fluffychat";
icon = "fluffychat";
desktopName = "Fluffychat";
genericName = "Chat with your friends (matrix client)";
categories = [
"Chat"
"Network"
"InstantMessaging"
];
})
];
postInstall = ''
FAV=$out/app/fluffychat-linux/data/flutter_assets/assets/favicon.png
ICO=$out/share/icons
install -D $FAV $ICO/fluffychat.png
mkdir $out/share/applications
cp $desktopItem/share/applications/*.desktop $out/share/applications
for size in 24 32 42 64 128 256 512; do
D=$ICO/hicolor/''${s}x''${s}/apps
D=$ICO/hicolor/''${size}x''${size}/apps
mkdir -p $D
magick $FAV -resize ''${size}x''${size} $D/fluffychat.png
done
@ -107,20 +99,8 @@ flutter332.buildFlutterApplication (
'';
}
// lib.optionalAttrs (targetFlutterPlatform == "web") {
prePatch =
# https://github.com/krille-chan/fluffychat/blob/v1.17.1/scripts/prepare-web.sh
let
# Use Olm 1.3.2, the oldest version, for FluffyChat 1.14.1 which depends on olm_flutter 1.2.0.
olmVersion = pubspecLock.packages.flutter_olm.version;
olmJs = fetchzip {
url = "https://github.com/famedly/olm/releases/download/v${olmVersion}/olm.zip";
stripRoot = false;
hash = "sha256-Vl3Cp2OaYzM5CPOOtTHtUb1W48VXePzOV6FeiIzyD1Y=";
};
in
''
rm -r assets/js/package
cp -r '${olmJs}/javascript' assets/js/package
'';
preBuild = ''
cp -r ${vodozemac-wasm}/* ./assets/vodozemac/
'';
}
)

View file

@ -176,6 +176,16 @@
"source": "hosted",
"version": "2.1.2"
},
"build_cli_annotations": {
"dependency": "transitive",
"description": {
"name": "build_cli_annotations",
"sha256": "b59d2769769efd6c9ff6d4c4cede0be115a566afc591705c2040b707534b1172",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "2.1.0"
},
"canonical_json": {
"dependency": "transitive",
"description": {
@ -764,16 +774,6 @@
"source": "hosted",
"version": "1.1.1"
},
"flutter_olm": {
"dependency": "direct main",
"description": {
"name": "flutter_olm",
"sha256": "5e6211af8cba1abf7d1f92e543f6d573dfe6017fe4742e0d04ba84beab47f940",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "2.0.0"
},
"flutter_openssl_crypto": {
"dependency": "direct main",
"description": {
@ -794,6 +794,16 @@
"source": "hosted",
"version": "2.0.28"
},
"flutter_rust_bridge": {
"dependency": "transitive",
"description": {
"name": "flutter_rust_bridge",
"sha256": "b416ff56002789e636244fb4cc449f587656eff995e5a7169457eb0593fcaddb",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "2.10.0"
},
"flutter_secure_storage": {
"dependency": "direct main",
"description": {
@ -882,6 +892,16 @@
"source": "git",
"version": "5.2.0"
},
"flutter_vodozemac": {
"dependency": "direct main",
"description": {
"name": "flutter_vodozemac",
"sha256": "2405ca121b84d1cd83200a14021022e1691b123a23bcefc36adc7740cefbc1f9",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "0.2.2"
},
"flutter_web_auth_2": {
"dependency": "direct main",
"description": {
@ -1445,11 +1465,11 @@
"dependency": "direct main",
"description": {
"name": "matrix",
"sha256": "f8f78700f967de4333a0c9ca609dac2ae05914a27faa60c5530026b7aca6ae78",
"sha256": "996e3b1560959afaa3118ec2b5a06734ad29acf64f9c3c09a605c3ddef22039f",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "0.40.2"
"version": "1.0.1"
},
"meta": {
"dependency": "transitive",
@ -1521,16 +1541,6 @@
"source": "hosted",
"version": "2.0.2"
},
"olm": {
"dependency": "transitive",
"description": {
"name": "olm",
"sha256": "6a3fe1e5170b954dd9e4ba3b27513e6aa9b7591eb7bb0d7f6f32140b7f140c6f",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "3.1.0"
},
"opus_caf_converter_dart": {
"dependency": "direct main",
"description": {
@ -2747,6 +2757,16 @@
"source": "hosted",
"version": "15.0.0"
},
"vodozemac": {
"dependency": "transitive",
"description": {
"name": "vodozemac",
"sha256": "dba14017e042748fb22d270e8ab1d3e46965b89788dd3857dba938ec07571968",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "0.2.0"
},
"wakelock_plus": {
"dependency": "direct main",
"description": {

View file

@ -0,0 +1,123 @@
{
lib,
stdenv,
fluffychat-web,
symlinkJoin,
buildPackages,
rustc,
rustPlatform,
cargo,
flutter,
flutter_rust_bridge_codegen,
which,
wasm-pack,
wasm-bindgen-cli_0_2_100,
binaryen,
writableTmpDirAsHomeHook,
runCommand,
}:
let
pubSources = fluffychat-web.pubspecLock.dependencySources;
# wasm-pack doesn't take 'RUST_SRC_PATH' into consideration
rustcWithLibSrc = buildPackages.rustc.override {
sysroot = symlinkJoin {
name = "rustc_unwrapped_with_libsrc";
paths = [
buildPackages.rustc.unwrapped
];
postBuild = ''
mkdir -p $out/lib/rustlib/src/rust
ln -s ${rustPlatform.rustLibSrc} $out/lib/rustlib/src/rust/library
'';
};
};
in
# https://github.com/krille-chan/fluffychat/blob/main/scripts/prepare-web.sh
stdenv.mkDerivation {
pname = "vodozemac-wasm";
inherit (pubSources.vodozemac) version;
# These two were in the same repository, so just reuse them
unpackPhase = ''
runHook preUnpack
cp -r ${pubSources.flutter_vodozemac}/rust ./rust
cp -r ${pubSources.vodozemac} ./dart
chmod -R +rwx .
runHook postUnpack
'';
# Remove dev_dependencies to avoid downloading them
postPatch = ''
sed -i '/^dev_dependencies:/,/^$/d' dart/pubspec.yaml
'';
cargoRoot = "rust";
cargoDeps = symlinkJoin {
name = "vodozemac-wasm-cargodeps";
paths = [
pubSources.flutter_vodozemac.passthru.cargoDeps
# Pull in rust vendor so we don't have to vendor rustLibSrc again
# This is required because `-Z build-std=std,panic_abort` rebuilds std
rustPlatform.rustVendorSrc
];
};
nativeBuildInputs = [
rustPlatform.cargoSetupHook
rustcWithLibSrc
rustc.llvmPackages.lld
cargo
flutter
flutter_rust_bridge_codegen
which
wasm-pack
wasm-bindgen-cli_0_2_100
binaryen
writableTmpDirAsHomeHook
];
buildPhase = ''
runHook preBuild
pushd dart
dart pub get --offline
popd
RUST_LOG=info flutter_rust_bridge_codegen build-web \
--dart-root $(realpath ./dart) --rust-root $(realpath ./rust) --release
runHook postBuild
'';
installPhase = ''
runHook preInstall
mkdir -p $out
cp -r dart/web/pkg/vodozemac_bindings_dart* $out/
runHook postInstall
'';
env = {
# Build a pub cache from fluffychat, as dart-vodozemac should be a subset
# This is required because dart-vodozemac, as a pub, doesn't have a pubspec.lock
# But flutter_rust_bridge_codegen still requires all dependencies of it
PUB_CACHE = runCommand "fluffychat-pub-cache" { } ''
mkdir -p $out/hosted/pub.dev
pushd $out/hosted/pub.dev
${lib.concatMapAttrsStringSep "; " (
_: p:
"ln -s ${p} ./${if lib.hasPrefix "pub-" p.name then lib.removePrefix "pub-" p.name else p.name}"
) pubSources}
popd
'';
RUSTC_BOOTSTRAP = 1; # `-Z build-std=std,panic_abort` requires nightly toolchain
};
inherit (fluffychat-web) meta;
}

View file

@ -3,6 +3,7 @@
fetchFromGitHub,
rustPlatform,
cargo-expand,
stdenv,
}:
rustPlatform.buildRustPackage rec {
pname = "flutter_rust_bridge_codegen";
@ -26,11 +27,17 @@ rustPlatform.buildRustPackage rec {
# needed to run text (see https://github.com/fzyzcjy/flutter_rust_bridge/blob/ae970bfafdf80b9eb283a2167b972fb2e6504511/frb_codegen/src/library/utils/logs.rs#L43)
logLevel = "debug";
checkFlags = [
# Disabled because these tests need a different version of anyhow than the package itself
"--skip=tests::test_execute_generate_on_frb_example_dart_minimal"
"--skip=tests::test_execute_generate_on_frb_example_pure_dart"
];
checkFlags =
[
# Disabled because these tests need a different version of anyhow than the package itself
"--skip=tests::test_execute_generate_on_frb_example_dart_minimal"
"--skip=tests::test_execute_generate_on_frb_example_pure_dart"
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
# Timeout on darwin, not related to networking in sandbox
"--skip=library::codegen::controller::tests::test_run_with_watch"
"--skip=library::codegen::generator::api_dart::tests::test_functions"
];
meta = {
mainProgram = "flutter_rust_bridge_codegen";

View file

@ -6,16 +6,16 @@
buildGoModule (finalAttrs: {
pname = "jwx";
version = "3.0.7";
version = "3.0.8";
src = fetchFromGitHub {
owner = "lestrrat-go";
repo = "jwx";
tag = "v${finalAttrs.version}";
hash = "sha256-vR7QsRAVdYmi7wYGsjuQiB1mABq5jx7mIRFiduJRReA=";
hash = "sha256-IorB1Zga4cDdeQv2QTc0qKvefIysxLz8StWMyqAWrTs=";
};
vendorHash = "sha256-fpjkaGkJUi4jrdFvrClx42FF9HwzNW5js3I5HNZChOU=";
vendorHash = "sha256-HXf6H3FF3N5xLlO2Ux5tuN/ompfzQTAytUdGPbURw44=";
sourceRoot = "${finalAttrs.src.name}/cmd/jwx";

View file

@ -6,16 +6,16 @@
buildGoModule rec {
pname = "klog-time-tracker";
version = "6.5";
version = "6.6";
src = fetchFromGitHub {
owner = "jotaen";
repo = "klog";
rev = "v${version}";
hash = "sha256-xwVbI4rXtcZrnTvp0vdHMbYRoWCsxIuGZF922eC/sfw=";
hash = "sha256-Tq780+Gsu2Ym9+DeMpaOhsP2XluyKBh01USnmwlYsTs=";
};
vendorHash = "sha256-QOS+D/zD5IlJBlb7vrOoHpP/7xS9En1/MFNwLSBrXOg=";
vendorHash = "sha256-ilV/+Xogy4+5c/Rs0cCSvVTgDhL4mm9V/pxJB3XGDkw=";
meta = with lib; {
description = "Command line tool for time tracking in a human-readable, plain-text file format";

View file

@ -6,17 +6,17 @@
rustPlatform.buildRustPackage rec {
pname = "mdbook-d2";
version = "0.3.5";
version = "0.3.6";
src = fetchFromGitHub {
owner = "danieleades";
repo = "mdbook-d2";
rev = "v${version}";
hash = "sha256-+WCtvZXU8/FzOrc7LkxZKs5BhSdhqpOruxRfv+YY8Es=";
hash = "sha256-2mpGufQvnIForU0X96Mi65r2xQ+bIj9MdJugMXVPcnM=";
};
useFetchCargoVendor = true;
cargoHash = "sha256-bTPqvWl41r1ilKjUpCJNKi3MsWeiix38xma5im/LLKQ=";
cargoHash = "sha256-K4vovc78MiLkWMVS4YDuSK9L7EmwpGdZXdRqeELcPT8=";
doCheck = false;
meta = with lib; {

View file

@ -21,17 +21,17 @@
rustPlatform.buildRustPackage rec {
pname = "mise";
version = "2025.6.5";
version = "2025.7.0";
src = fetchFromGitHub {
owner = "jdx";
repo = "mise";
rev = "v${version}";
hash = "sha256-aSiIhR7Lg5bBt/0YmuqcSbl4PiNXMrt6ok+e/IAt19s=";
hash = "sha256-PIUw84xwR9m06fPkO7MYf95Q21YvYnBMi+MY+OOz+2k=";
};
useFetchCargoVendor = true;
cargoHash = "sha256-+4y3/EZVIcfnkqU4krXovnfZNZw1luHH4VxgAERry8U=";
cargoHash = "sha256-5876Lc4rRNwTH8u5bMyV52Eps9QOcBHhE3v+33hzeBA=";
nativeBuildInputs = [
installShellFiles

View file

@ -6,13 +6,13 @@
stdenvNoCC.mkDerivation rec {
pname = "nuclei-templates";
version = "10.2.3";
version = "10.2.4";
src = fetchFromGitHub {
owner = "projectdiscovery";
repo = "nuclei-templates";
tag = "v${version}";
hash = "sha256-WncT1mij/EncI+uGyDJLfK1Qk7kQAEDbeUdIcI67zPk=";
hash = "sha256-RBZjtKkUk+kOob2VBFh1rPrVuUsIBMAetUhMClOZY6s=";
};
installPhase = ''

View file

@ -0,0 +1,71 @@
diff --git a/src/core/retroarch.cpp b/src/core/retroarch.cpp
index c2a2c47..97fa782 100644
--- a/src/core/retroarch.cpp
+++ b/src/core/retroarch.cpp
@@ -102,7 +102,7 @@ static void loadConfig( std::map<string, string> &configs ) {
const fs::path basePath = RetroArch::getBasePath();
configs["system_directory"] = (basePath / _NFS("system")).u8string();
- configs["libretro_directory"] = (basePath / _NFS("cores")).u8string();
+ configs["libretro_directory"] = "@retroArchCoresPath@";
configs["savefile_directory"] = (basePath / _NFS("saves")).u8string();
configs["savestate_directory"] = (basePath / _NFS("states")).u8string();
configs["libretro_info_path"] = (basePath / _NFS("info")).u8string();
@@ -110,7 +110,7 @@ static void loadConfig( std::map<string, string> &configs ) {
#if defined(FLATPAK_VERSION)
configs["assets_directory"] = "/app/share/libretro/assets/";
#elif defined(__linux__)
- configs["assets_directory"] = (BaseDir::data() / "retro-data" / "assets").u8string();
+ configs["assets_directory"] = "@retroArchAssetsPath@";;
configs["osk_overlay_directory"] = (BaseDir::data() / "retro-data" / "overlays" / "keyboards").u8string();
configs["overlay_directory"] = (BaseDir::data() / "retro-data" / "overlays").u8string();
configs["audio_filter_dir"] = (BaseDir::data() / "retro-data" / "filters" / "audio").u8string();
@@ -845,13 +845,7 @@ fs::path RetroArch::getBasePath() {
}
fs::path RetroArch::getCorePath() {
-#if defined(_WIN32)
- return RetroArch::getBasePath() / L"cores" / L"parallel_n64_next_libretro.dll";
-#elif defined(__APPLE__)
- return RetroArch::getBasePath() / "cores" / "parallel_n64_next_libretro.dylib";
-#else
- return RetroArch::getBasePath() / "cores" / "parallel_n64_next_libretro.so";
-#endif
+ return "@parallelN64CorePath@";
}
fs::path RetroArch::getConfigPath() {
@@ -866,7 +860,7 @@ fs::path RetroArch::getExePath() {
#elif defined(FLATPAK_VERSION)
return BaseDir::program() / "retroarch";
#else
- return BaseDir::data() / "appimage" / "RetroArch-Linux-x86_64.AppImage";
+ return "@retroArchExePath@";
#endif
}
diff --git a/src/main.cpp b/src/main.cpp
index 3ca39b2..f3c14ba 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -200,6 +200,7 @@ int main( int argc, char **argv ) {
fs::path( "/usr/local/share/parallel-launcher/translations/" ),
fs::path( "/usr/share/parallel-launcher/translations/" )
#else
+ fs::read_symlink( "/proc/self/exe" ).parent_path().parent_path() / "share/parallel-launcher/translations/",
fs::path( "/usr/share/parallel-launcher/translations/" ),
fs::path( "/usr/local/share/parallel-launcher/translations/" ),
BaseDir::program() / "lang"
diff --git a/src/polyfill/base-directory.cpp b/src/polyfill/base-directory.cpp
index 720a754..db607ca 100644
--- a/src/polyfill/base-directory.cpp
+++ b/src/polyfill/base-directory.cpp
@@ -134,7 +134,7 @@ static Locations getLocations() {
#if defined(FLATPAK_VERSION)
fs::path( "/app/share/parallel-launcher" )
#elif defined(__linux__)
- fs::path( "/usr/share/parallel-launcher" )
+ fs::read_symlink( "/proc/self/exe" ).parent_path().parent_path() / "share/parallel-launcher"
#endif
};
}

View file

@ -0,0 +1,92 @@
diff --git a/src/core/updates.cpp b/src/core/updates.cpp
index 403290b..f7d6547 100644
--- a/src/core/updates.cpp
+++ b/src/core/updates.cpp
@@ -30,8 +30,8 @@
#endif
const InstalledVersionsInfo InstalledVersionsInfo::Default {
- /* retroArchVersion */ RetroArchVersion{ Version{ 0, 0, 0 }, false },
- /* parallelVersion */ Version{ 0, 0, 0 },
+ /* retroArchVersion */ RetroArchVersion{ Version{ @retroArchVersion@ }, true },
+ /* parallelVersion */ Version{ @parallelN64CoreVersion@ },
/* lastUpdateCheck */ 0
};
@@ -47,15 +47,7 @@ template<> void JsonSerializer::serialize<RetroArchVersion>( JsonWriter &jw, con
}
template<> RetroArchVersion JsonSerializer::parse<RetroArchVersion>( const Json &json ) {
- Version version = Version{ 0, 0, 0 };
- if( json[P_VERSION].exists() ) {
- version = parse<Version>( json[P_VERSION] );
- }
-
- return RetroArchVersion {
- version,
- json[P_LOCK].getOrDefault<bool>( false )
- };
+ return InstalledVersionsInfo::Default.retroArchVersion;
}
static constexpr char P_RETROARCH[] = "retroarch";
@@ -73,47 +65,14 @@ template<> void JsonSerializer::serialize<InstalledVersionsInfo>( JsonWriter &jw
}
template<> InstalledVersionsInfo JsonSerializer::parse<InstalledVersionsInfo>( const Json &json ) {
- Version parallelVersion;
- try {
- parallelVersion = parse<Version>( json[P_PARALLEL] );
- } catch( ... ) {
- parallelVersion = { 0, 0, 0 };
- }
-
- RetroArchVersion retroVersion;
- try {
- retroVersion = parse<RetroArchVersion>( json[P_RETROARCH] );
- } catch( ... ) {
- retroVersion = RetroArchVersion{ Version{ 0, 0, 0 }, false };
- }
-
- return InstalledVersionsInfo {
- retroVersion,
- parallelVersion,
- json[P_LAST_CHECKED].get<int64>()
- };
+ return InstalledVersionsInfo::Default;
}
template<> ParallelCoreVersion JsonSerializer::parse<ParallelCoreVersion>( const Json &json ) {
-#if defined(__linux__)
- const Json &vjson = json["linux_x64"];
-#elif defined(_WIN32)
- #ifdef _WIN64
- const Json &vjson = json["windows_x64"];
- #else
- const Json &vjson = json["windows_x86"];
- #endif
-#elif defined(__APPLE__)
- const Json &vjson = AppleUtil::shouldUseArmCore() ? json["macos_arm64"] : json["macos_x64"];
-#else
- const Json &vjson = json;
- static_assert( false );
-#endif
-
return ParallelCoreVersion{
- JsonSerializer::parse<Version>( vjson["version"] ),
- vjson["sha1"].get<string>(),
- vjson["url"].get<string>()
+ InstalledVersionsInfo::Default.parallelVersion,
+ "",
+ ""
};
}
@@ -178,6 +137,7 @@ void RetroUpdater::checkForUpdates(
bool waitForCoreUpdates,
bool forceUpdate
) {
+ return;
InstalledVersionsInfo installedVersions = FileController::loadInstalledVersions();
if( forceUpdate || checkSchedule( installedVersions ) ) {

View file

@ -0,0 +1,164 @@
{
lib,
stdenv,
callPackage,
fetchFromGitLab,
replaceVars,
qt5,
SDL2,
discord-rpc,
libgcrypt,
sqlite,
findutils,
xdg-utils,
coreutils,
dosfstools,
vulkan-loader,
wrapRetroArch,
retroarch-assets,
parallel-launcher,
# Allow overrides for the RetroArch core and declarative settings
parallel-n64-core ? parallel-launcher.passthru.parallel-n64-core,
extraRetroArchSettings ? { },
}:
let
# Converts a version string like x.y.z to vx.y-z
reformatVersion = v: "v${lib.versions.majorMinor v}-${lib.versions.patch v}";
# Converts a version string like x.y.z to x, y, z
reformatVersion' = lib.replaceStrings [ "." ] [ ", " ];
retroArchAssetsPath = "${retroarch-assets}/share/retroarch/assets";
in
stdenv.mkDerivation (
finalAttrs:
let
retroarch' = wrapRetroArch {
cores = [
parallel-n64-core
];
# These settings take precedence over those supplied by user config files
settings = {
# Override the wrapper's libretro_info_path because that path doesn't
# have any information about Parallel Launcher's parallel-n64 core fork.
# Upstream provides this information in their own *.info files in $src/data.
# Save states with the parallel-n64 core will not work without this.
libretro_info_path = "${finalAttrs.src}/data";
assets_directory = retroArchAssetsPath;
} // extraRetroArchSettings;
};
in
{
pname = "parallel-launcher";
version = "8.2.0"; # Check ./parallel-n64-next.nix for updates when updating, too
src = fetchFromGitLab {
owner = "parallel-launcher";
repo = "parallel-launcher";
tag = reformatVersion finalAttrs.version;
hash = "sha256-G1ob2Aq/PE12jNO2YnlCdL9SWELj0Mf/vmr7dzNv550=";
};
patches =
let
retroArchCoresPath = "${retroarch'}/lib/retroarch/cores";
suffix = stdenv.hostPlatform.extensions.sharedLibrary;
in
[
# Fix FHS path assumptions
(replaceVars ./fix-paths.patch {
inherit retroArchAssetsPath retroArchCoresPath;
retroArchExePath = lib.getExe retroarch';
parallelN64CorePath = "${retroArchCoresPath}/parallel_n64_next_libretro${suffix}";
})
# Bypass update checks and hardcode internal version checks to ours
(replaceVars ./fix-version-checks.patch {
retroArchVersion = reformatVersion' (lib.getVersion retroarch');
parallelN64CoreVersion = reformatVersion' (lib.getVersion parallel-n64-core);
})
];
nativeBuildInputs = [
qt5.wrapQtAppsHook
qt5.qttools
qt5.qmake
];
buildInputs = [
SDL2
discord-rpc
libgcrypt
sqlite
qt5.qtbase
qt5.qtsvg
];
qtWrapperArgs = [
"--prefix PATH : ${
lib.makeBinPath [
findutils
xdg-utils
coreutils
dosfstools
]
}"
"--prefix LD_LIBRARY_PATH : ${
lib.makeLibraryPath [
vulkan-loader
]
}"
];
# Our patches result in unused params.
# Ignoring the warning is easier to maintain than more invasive patching.
env.NIX_CFLAGS_COMPILE = "-Wno-error=unused-parameter";
preConfigure = ''
lrelease app.pro
'';
installPhase = ''
runHook preInstall
# Taken from pkg/arch/PKGBUILD
install -D parallel-launcher -t $out/bin
install -D ca.parallel_launcher.ParallelLauncher.desktop -t $out/share/applications
install -D ca.parallel_launcher.ParallelLauncher.metainfo.xml -t $out/share/metainfo
install -D data/appicon.svg $out/share/icons/hicolor/scalable/apps/ca.parallel_launcher.ParallelLauncher.svg
install -D bps-mime.xml parallel-launcher-{lsjs,sdl-relay} -t $out/share/parallel-launcher
install -D lang/*.qm -t $out/share/parallel-launcher/translations
runHook postInstall
'';
passthru = {
parallel-n64-core = callPackage ./parallel-n64-next.nix { };
updateScript = {
command = ./update.sh;
supportedFeatures = [ "commit" ];
};
};
meta = {
description = "Modern N64 Emulator";
longDescription = ''
Parallel Launcher is an emulator launcher that aims to make playing N64 games,
both retail and homebrew, as simple and as accessible as possible. Parallel
Launcher uses the RetroArch emulator, but replaces its confusing menus and
controller setup with a much simpler user interface. It also features optional
integration with romhacking.com.
'';
homepage = "https://parallel-launcher.ca";
changelog = "https://gitlab.com/parallel-launcher/parallel-launcher/-/releases/${finalAttrs.src.tag}";
# Theoretically, platforms should be the intersection of what upstream supports,
# what nixpkgs RetroArch supports, and what the RetroArch core supports
platforms = [ "x86_64-linux" ];
license = lib.licenses.gpl3Plus;
maintainers = with lib.maintainers; [
WheelsForReals
];
mainProgram = "parallel-launcher";
};
}
)

View file

@ -0,0 +1,75 @@
{
lib,
stdenv,
fetchFromGitLab,
pkg-config,
libGLU,
libGL,
libpng,
libretro,
}:
let
# Converts a version string like x.y.z to vx.y-z
reformatVersion = v: "v${lib.versions.majorMinor v}-${lib.versions.patch v}";
in
# Based on the libretro parallel-n64 derivation with slight tweaks
libretro.mkLibretroCore (finalAttrs: {
core = "parallel-n64-next";
version = "2.24.1";
src = fetchFromGitLab {
owner = "parallel-launcher";
repo = "parallel-n64";
tag = reformatVersion finalAttrs.version;
hash = "sha256-BeeKX78zozxx72cmJ3HI0nH/STvkltMBZs2+mb4ukM0=";
};
extraNativeBuildInputs = [
pkg-config
];
extraBuildInputs = [
libGLU
libGL
libpng
];
makefile = "Makefile";
makeFlags = [
"HAVE_PARALLEL=1"
"HAVE_PARALLEL_RSP=1"
"HAVE_THR_AL=1"
"SYSTEM_LIBPNG=1"
"SYSTEM_ZLIB=1"
"ARCH=${stdenv.hostPlatform.parsed.cpu.name}"
];
postPatch = lib.optionalString stdenv.hostPlatform.isAarch64 ''
sed -i -e '1 i\CPUFLAGS += -DARM_FIX -DNO_ASM -DARM_ASM -DDONT_WANT_ARM_OPTIMIZATIONS -DARM64' Makefile \
&& sed -i -e 's,CPUFLAGS :=,,g' Makefile
'';
preInstall =
let
suffix = stdenv.hostPlatform.extensions.sharedLibrary;
in
''
mv parallel_n64_libretro${suffix} parallel_n64_next_libretro${suffix}
'';
passthru.updateScript = { };
meta = {
description = "Fork of libretro's parallel-n64 core designed to be used with Parallel Launcher.";
homepage = "https://gitlab.com/parallel-launcher/parallel-n64";
license = lib.licenses.gpl3Only;
teams = [ ];
maintainers = with lib.maintainers; [
WheelsForReals
];
badPlatforms = [
"aarch64-linux"
];
};
})

View file

@ -0,0 +1,26 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p curl jq gnused common-updater-scripts
set -euo pipefail
nixpkgs=$(git rev-parse --show-toplevel)
packageDir="$nixpkgs/pkgs/by-name/pa/parallel-launcher"
getLatestVersion() {
curl -s "https://gitlab.com/api/v4/projects/parallel-launcher%2F$1/repository/tags" \
| jq -r '.[0] | select(.) | .name' \
| sed 's|v||' \
| sed 's|-|.|'
}
updateSourceVersion() {
update-source-version "$1" "$2" --file="$3" --print-changes
}
latestLauncherVersion=$(getLatestVersion parallel-launcher)
latestCoreVersion=$(getLatestVersion parallel-n64)
launcherUpdate=$(updateSourceVersion parallel-launcher "$latestLauncherVersion" "$packageDir/package.nix")
coreUpdate=$(updateSourceVersion parallel-launcher.parallel-n64-core "$latestCoreVersion" "$packageDir/parallel-n64-next.nix")
echo '[]' | jq ". += $launcherUpdate + $coreUpdate"

View file

@ -22,7 +22,7 @@
}:
let
pname = "positron-bin";
version = "2025.07.0-112";
version = "2025.07.0-204";
in
stdenv.mkDerivation {
inherit version pname;
@ -30,18 +30,18 @@ stdenv.mkDerivation {
src =
if stdenv.hostPlatform.isDarwin then
fetchurl {
url = "https://cdn.posit.co/positron/dailies/mac/universal/Positron-${version}.dmg";
hash = "sha256-vprBr+0XBndCiFTauiOa3gjOlxj/w2ZhQlXNJdly7oU=";
url = "https://cdn.posit.co/positron/releases/mac/universal/Positron-${version}-universal.dmg";
hash = "sha256-f1EQw6fKH4pgVG7+YcLPv6FawJ2TN507hYLD0pn+PlM=";
}
else if stdenv.hostPlatform.system == "aarch64-linux" then
fetchurl {
url = "https://cdn.posit.co/positron/dailies/deb/arm64/Positron-${version}-arm64.deb";
hash = "sha256-TYFBW3sRpgsdVC66WB9SYNsmAxGCq/3gQSexOVtvGZs=";
url = "https://cdn.posit.co/positron/releases/deb/arm64/Positron-${version}-arm64.deb";
hash = "sha256-SxjQPZ2wUmSIYOxBB6AS6Ue7ajXzMkY32nHdkZkNhBA=";
}
else
fetchurl {
url = "https://cdn.posit.co/positron/dailies/deb/x86_64/Positron-${version}-x64.deb";
hash = "sha256-yueD2PEBXiG8FPghRWvBS6TPtyZ1Q8utKOS8QDMNlk8=";
url = "https://cdn.posit.co/positron/releases/deb/x86_64/Positron-${version}-x64.deb";
hash = "sha256-f27LC4+SXnkyePw/fw8r9JYsOQKVoIiFkAet/QtwbNg=";
};
buildInputs =

View file

@ -18,33 +18,33 @@ fi
# Update Darwin hash.
current_hash=$(nix store prefetch-file --json --hash-type sha256 \
"https://cdn.posit.co/positron/dailies/mac/universal/Positron-${current_version}.dmg" \
"https://cdn.posit.co/positron/releases/mac/universal/Positron-${current_version}-universal.dmg" \
| jq -r .hash)
new_hash=$(nix store prefetch-file --json --hash-type sha256 \
"https://cdn.posit.co/positron/dailies/mac/universal/Positron-${new_version}.dmg" \
"https://cdn.posit.co/positron/releases/mac/universal/Positron-${new_version}-universal.dmg" \
| jq -r .hash)
sed -i "s|$current_hash|$new_hash|g" $positron_nix
# Update Linux x86_64 hash.
current_hash=$(nix store prefetch-file --json --hash-type sha256 \
"https://cdn.posit.co/positron/dailies/deb/x86_64/Positron-${current_version}-x64.deb" \
"https://cdn.posit.co/positron/releases/deb/x86_64/Positron-${current_version}-x64.deb" \
| jq -r .hash)
new_hash=$(nix store prefetch-file --json --hash-type sha256 \
"https://cdn.posit.co/positron/dailies/deb/x86_64/Positron-${new_version}-x64.deb" \
"https://cdn.posit.co/positron/releases/deb/x86_64/Positron-${new_version}-x64.deb" \
| jq -r .hash)
sed -i "s|$current_hash|$new_hash|g" $positron_nix
# Update Linux aarch64 hash.
current_hash=$(nix store prefetch-file --json --hash-type sha256 \
"https://cdn.posit.co/positron/dailies/deb/arm64/Positron-${current_version}-arm64.deb" \
"https://cdn.posit.co/positron/releases/deb/arm64/Positron-${current_version}-arm64.deb" \
| jq -r .hash)
new_hash=$(nix store prefetch-file --json --hash-type sha256 \
"https://cdn.posit.co/positron/dailies/deb/arm64/Positron-${new_version}-arm64.deb" \
"https://cdn.posit.co/positron/releases/deb/arm64/Positron-${new_version}-arm64.deb" \
| jq -r .hash)
sed -i "s|$current_hash|$new_hash|g" $positron_nix

View file

@ -16,19 +16,19 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "ruff";
version = "0.12.1";
version = "0.12.2";
src = fetchFromGitHub {
owner = "astral-sh";
repo = "ruff";
tag = finalAttrs.version;
hash = "sha256-iD9avLPPT8V6ZU1qoWEqPLp8jDk/EhcaTk7FtKLRsyM=";
hash = "sha256-BnQm0Q3KbtlGjvN+bkYWyllBjX4Z3HD4LTWCrDwj7fE=";
};
cargoBuildFlags = [ "--package=ruff" ];
useFetchCargoVendor = true;
cargoHash = "sha256-GICd8yQlh3gcxLh1Rfc3xB6rZ8ZsbCAk5C577l5+ogk=";
cargoHash = "sha256-BVGH+i2p0O0nbbOKRNUTJcR0cxgwsTmfJYzeCmttu2M=";
nativeBuildInputs = [ installShellFiles ];

View file

@ -10,13 +10,13 @@
buildGoModule rec {
pname = "src-cli";
version = "6.4.0";
version = "6.5.0";
src = fetchFromGitHub {
owner = "sourcegraph";
repo = "src-cli";
rev = version;
hash = "sha256-MAeL33uu53qtL8TC7YNHkeL/PG8t/Iv+P+ftqd/TTFI=";
hash = "sha256-ysSFmOIraDqVVHiBcVI98qjFh+8W76sVs60vvwMyh6M=";
};
vendorHash = "sha256-bpfDnVqJoJi9WhlA6TDWAhBRkbbQn1BHfnLJ8BTmhGM=";

View file

@ -5,16 +5,16 @@
}:
buildNpmPackage rec {
pname = "stylelint";
version = "16.21.0";
version = "16.21.1";
src = fetchFromGitHub {
owner = "stylelint";
repo = "stylelint";
tag = version;
hash = "sha256-qlD4voKQN/O9PDkXSJZZCGkoD+L0d9f78gGHKfkDkhQ=";
hash = "sha256-obRxkExrLFLt02L1w9FBHrHgN8n+lRsPuSUra66j8hE=";
};
npmDepsHash = "sha256-mvbYuaBuoF2ri14svCeT7BJX7qHnKZz+cpMlAwabRDI=";
npmDepsHash = "sha256-t83R9OQnSY7OVEU+TQWQMotsey/XtXIo7NLG9vyiUng=";
dontNpmBuild = true;

View file

@ -2,21 +2,20 @@
lib,
stdenv,
fetchFromGitHub,
nodejs_latest,
nodejs,
pnpm_9,
cacert,
nix-update-script,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "tailwindcss-language-server";
version = "0.14.23";
version = "0.14.24";
src = fetchFromGitHub {
owner = "tailwindlabs";
repo = "tailwindcss-intellisense";
tag = "v${finalAttrs.version}";
hash = "sha256-O97JkcTOe2HEb1MlJ82UPEHZgyV7dzoWOOtSnNcN13k=";
hash = "sha256-FlPrDoCGV7w3RBAZPP8gT/RGze9LDYQeAIVVPQA4Na4=";
};
pnpmDeps = pnpm_9.fetchDeps {
@ -25,31 +24,27 @@ stdenv.mkDerivation (finalAttrs: {
version
src
pnpmWorkspaces
prePnpmInstall
;
hash = "sha256-SUEq20gZCiTDkFuNgMc5McHBPgW++8P9Q1MJb7a7pY8=";
};
nativeBuildInputs = [
nodejs_latest
pnpm_9.configHook
];
buildInputs = [ nodejs_latest ];
buildInputs = [
nodejs
];
pnpmWorkspaces = [ "@tailwindcss/language-server..." ];
prePnpmInstall = ''
# Warning section for "pnpm@v8"
# https://pnpm.io/cli/install#--filter-package_selector
pnpm config set dedupe-peer-dependents false
export NODE_EXTRA_CA_CERTS="${cacert}/etc/ssl/certs/ca-bundle.crt"
'';
pnpmWorkspaces = [
"@tailwindcss/language-server..."
];
# Must build the "@tailwindcss/language-service" package. Dependency is linked via workspace by "pnpm"
# https://github.com/tailwindlabs/tailwindcss-intellisense/blob/v0.14.24/pnpm-lock.yaml#L71
buildPhase = ''
runHook preBuild
# Must build the "@tailwindcss/language-service" package. Dependency is linked via workspace by "pnpm"
# (https://github.com/tailwindlabs/tailwindcss-intellisense/blob/%40tailwindcss/language-server%40v0.0.27/pnpm-lock.yaml#L47)
pnpm --filter "@tailwindcss/language-server..." build
runHook postBuild
@ -75,6 +70,6 @@ stdenv.mkDerivation (finalAttrs: {
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ happysalada ];
mainProgram = "tailwindcss-language-server";
platforms = lib.platforms.all;
platforms = nodejs.meta.platforms;
};
})

View file

@ -5,6 +5,7 @@
extra-cmake-modules,
fetchFromGitHub,
fontconfig,
installShellFiles,
llvmPackages,
nix-update-script,
openssl,
@ -33,6 +34,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
[
capnproto
extra-cmake-modules
installShellFiles
pkg-config
protobuf
]
@ -54,6 +56,13 @@ rustPlatform.buildRustPackage (finalAttrs: {
# Browser tests time out with chromium and google-chrome
doCheck = false;
postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
installShellCompletion --cmd turbo \
--bash <($out/bin/turbo completion bash) \
--fish <($out/bin/turbo completion fish) \
--zsh <($out/bin/turbo completion zsh)
'';
env = {
# nightly features are used
RUSTC_BOOTSTRAP = 1;

View file

@ -0,0 +1,40 @@
{
lib,
buildGoModule,
fetchFromGitHub,
versionCheckHook,
nix-update-script,
}:
buildGoModule (finalAttrs: {
pname = "waybar-lyric";
version = "0.10.0";
src = fetchFromGitHub {
owner = "Nadim147c";
repo = "waybar-lyric";
tag = "v${finalAttrs.version}";
hash = "sha256-RqUaak9MH7lE1ez8T+UKm2Eqk0ImePPubfFExNpZqM8=";
};
vendorHash = "sha256-DBtSC+ePl6dvHqB10FyeojnYoT3mmsWAnbs/lZLibl8=";
doInstallCheck = true;
nativeInstallCheckInputs = [ versionCheckHook ];
versionCheckProgramArg = "--version";
versionCheckKeepEnvironment = [ "XDG_CACHE_HOME" ];
preInstallCheck = ''
# ERROR Failed to find cache directory
export XDG_CACHE_HOME=$(mktemp -d)
'';
passthru.updateScript = nix-update-script { };
meta = {
description = "Waybar module for displaying song lyrics";
homepage = "https://github.com/Nadim147c/waybar-lyric";
license = lib.licenses.agpl3Only;
mainProgram = "waybar-lyric";
maintainers = with lib.maintainers; [ vanadium5000 ];
platforms = lib.platforms.linux;
};
})

View file

@ -10,17 +10,17 @@
rustPlatform.buildRustPackage rec {
pname = "wl-clipboard-rs";
version = "0.9.1";
version = "0.9.2";
src = fetchFromGitHub {
owner = "YaLTeR";
repo = "wl-clipboard-rs";
rev = "v${version}";
hash = "sha256-jGTWcVR6atkEeEUunystJ4B6I3GzYiCOMs0MC6pvPfI=";
hash = "sha256-IC19J3S4QP6eEH4zWDrTh/lQcsDzopjWGO6Vm+/cl78=";
};
useFetchCargoVendor = true;
cargoHash = "sha256-6HNSQ27PGhF6tt12jdu6llDUZ/tYsFwx2pCJx3mKm/E=";
cargoHash = "sha256-bkCrAyYxYkgeS0BSUzKipN21ZZL+RJzNyg7Mx+7V8Pg=";
cargoBuildFlags =
[

View file

@ -17,7 +17,7 @@ let
}:
stdenv.mkDerivation rec {
inherit pname;
version = "7.3";
version = "7.4";
src = fetchurl {
url = "https://github.com/subframe7536/Maple-font/releases/download/v${version}/${pname}.zip";
inherit hash;

View file

@ -1,46 +1,47 @@
{
"MapleMono-CN-unhinted": "sha256-nosTiax/1OyMgwYwuLD1JVdbIrCFvzGtmVDjS+++r/s=",
"MapleMono-CN": "sha256-qcFZRcJ7QrNzKKaGxTUTjMQ+Xd4qfInc9INSBsitoCU=",
"MapleMono-NF-CN-unhinted": "sha256-FY78c6nECHj0gsfNm0uh1yL2j5ycJ8sq+TfhyF9PmV0=",
"MapleMono-NF-CN": "sha256-Tjrrh1SQjvFunCprnvu2CgQDH25TQWpeviVAQJgf80E=",
"MapleMono-NF-unhinted": "sha256-hkO9ggZE8hm3HUHtKN2G0o8lFa45sp0LyL1HclcLh0k=",
"MapleMono-NF": "sha256-JN9nZiLnLBrHW/F19Fi4IjAFm6Nz/oPePnD/yW5AwCM=",
"MapleMono-OTF": "sha256-k2Xd3ugE7/U1N2o1fHGseer1L66Ue8v+yWSAuCd5c10=",
"MapleMono-TTF-AutoHint": "sha256-Ebj3dHZnk2kHD43xmwpinG5tWRiBZDTdrpdZ64LVKds=",
"MapleMono-TTF": "sha256-BVrsTby/vViK22sASOQ6+Xq0a+Yvmq7EsSqhaeYkjKE=",
"MapleMono-Variable": "sha256-4JuyVR0iMQL4qgRJ7EGfSUHq9pJmdR/vFRNna+Nzz/E=",
"MapleMono-Woff2": "sha256-GMKxWEz/Ftpg/Ra7wasUPap1xx8Eb9g9l7l2i+4NJ54=",
"MapleMonoNL-CN-unhinted": "sha256-nLD9KaJz3sqhNzakJRtm1FeTaMPp+c11Ck/W3WAstlc=",
"MapleMonoNL-CN": "sha256-ynPraDGK2XMrw5E9X1SjJDxiTy0bqTFzI5BQ9lGM+7U=",
"MapleMonoNL-NF-CN-unhinted": "sha256-SWnpaWFxfpL/gtchtgm3qa6DhoibyVwrbpTI/wvaakM=",
"MapleMonoNL-NF-CN": "sha256-Sq9RpXVKrBBdINx6McnI+W9quvNGzh5cGldjxAZ6CVA=",
"MapleMonoNL-NF-unhinted": "sha256-v1yjsw8vkmX6NuoGjdhexZW9vVGwXItXyn5DhL4cYWE=",
"MapleMonoNL-NF": "sha256-isHZkRdPkMefmnaUT2jpSmoFW407F74pEpMY9BuRb2w=",
"MapleMonoNL-OTF": "sha256-LNkZa5cmYVj9XQwtO7PyGscTzr7+Ea7bAuoVHAMikvw=",
"MapleMonoNL-TTF-AutoHint": "sha256-AcrjjmchY0XCF/hjukWMDei2T5WLVkNZ8Uk+fzs2faY=",
"MapleMonoNL-TTF": "sha256-RJqAqNcZKDFwW6XnQxdbD+MP6L+tl1b21N1p9yprff4=",
"MapleMonoNL-Variable": "sha256-FhuSl1BQq8+XP5OjZXo8jO9t4G6/RiHr6ajpcVfVZsc=",
"MapleMonoNL-Woff2": "sha256-Wu4muqZEN54dcvH1k9Mebzi3+tOwSdB3j+kDWW4TcZw=",
"MapleMonoNormal-CN-unhinted": "sha256-90B2L4B/M736RnwhybqxarHmhUrYBrcEIYW/89nwr0M=",
"MapleMonoNormal-CN": "sha256-MzL7ASbw2qJZHYO6xiq7k0Ra3tFv9yGlS8SCzJMzJxY=",
"MapleMonoNormal-NF-CN-unhinted": "sha256-bLOixVjpHCvz9k4U+kQ3BcbYAfM3LkAb/06FSVQ+Kws=",
"MapleMonoNormal-NF-CN": "sha256-R8nzvkvJ78bsySObab1u4fYpYJi488xLVTRon0C8yhQ=",
"MapleMonoNormal-NF-unhinted": "sha256-O9ckFmBNHlR3iq+u6utqvEWUe3oeYrEGIQdoyX85v28=",
"MapleMonoNormal-NF": "sha256-q+FVRPWyq5myRck3kUoEm//pHM5qIiClhjgNCtP7f/k=",
"MapleMonoNormal-OTF": "sha256-RbH/TZp0L52UCp8Jbit05XHYg+KESER11hjmgHcm7lg=",
"MapleMonoNormal-TTF-AutoHint": "sha256-+A2zjecqeoU9e6iaAn6NQ5aU86C6wE688QJ7RjGvbxE=",
"MapleMonoNormal-TTF": "sha256-cUC9uty0iudym1r3LNR+hYoWIevyIiXC0MbK1Epl6S4=",
"MapleMonoNormal-Variable": "sha256-ldpHiADkA58hrRxnzLJtsJimcicwPn6CSTD9ki4c5js=",
"MapleMonoNormal-Woff2": "sha256-YJEk8THUDhFZ+meCJvgIwz0x0ZXCr87m3NCjjyS8lHc=",
"MapleMonoNormalNL-CN-unhinted": "sha256-LlLUVTMz2XCVRiDfDv26UJydPpRJAJPwDz+WAyvW60k=",
"MapleMonoNormalNL-CN": "sha256-ZvkjswX9QPJR8cAM1z6HqQfZKgpgidvpvAlGRlRySP8=",
"MapleMonoNormalNL-NF-CN-unhinted": "sha256-d4tgn9SxiMVJCxZoIWzJiqGJNB2xEfhFS6uJdGfyJpM=",
"MapleMonoNormalNL-NF-CN": "sha256-2U7FHEH2DsScpDTCU/CImh98JZFuw8GoXoFDaRuB3pM=",
"MapleMonoNormalNL-NF-unhinted": "sha256-wzVJuWXlizZ20aONXUiLhXhtj1w/eo+4T3aQfFPhLTY=",
"MapleMonoNormalNL-NF": "sha256-IvkYGRGONZ8+3aF/8pdea104lF83kGbeiAArLMwkazY=",
"MapleMonoNormalNL-OTF": "sha256-+JlNkdLOOLTraV+XQnqUUkweSrSBTsjwx3vveHUCdcA=",
"MapleMonoNormalNL-TTF-AutoHint": "sha256-AN3VyA11zwEodjVpFYkHWomEHjONWnY+rNTjxmAgzA8=",
"MapleMonoNormalNL-TTF": "sha256-a0lXS7wGK7QCxTbsWjf8pj4k0B1l6/OPs8VCbZSFa68=",
"MapleMonoNormalNL-Variable": "sha256-c3jUo+8ICZZRA0OLsOGhciplOet4JithmyJ6prnQllI=",
"MapleMonoNormalNL-Woff2": "sha256-8F7L+5RiDxVjK+gtj6gfEgTK55Cfrf+8F2r74nXpvsk="
"MapleMono-CN-unhinted": "sha256-pYhWiOB9RGof+3Uy5KlVgGtHRtoPjkKHW/aulEftrN8=",
"MapleMono-CN": "sha256-uDhFvaS8Cz0Gh4uPdHxGHB+ibnmjPgo3brw1Reyubjo=",
"MapleMono-NF-CN-unhinted": "sha256-m0OenEinfqOzFPd9J+9hvmlWZyo9gN48KsvtnSJZbQw=",
"MapleMono-NF-CN": "sha256-1H1AkMaE+yG2Wlp4NxvKu9z/VEnSyGLVVHX7YK9YlKg=",
"MapleMono-NF-unhinted": "sha256-1D7oAcurpS3PCQRky+Spb2l0z2j+ZxMqzQqLdCXAppA=",
"MapleMono-NF": "sha256-qPAKfND9r5YomfKQyS6lO7BQwwo4F+KqQdX7Jr9EM9Y=",
"MapleMono-OTF": "sha256-6Zl9snDOsgvoswTIa8dqRx+pYAy9N5yQ4J62qvsdlKs=",
"MapleMono-TTF-AutoHint": "sha256-ddzGDLCD73+qpdmgY+g2zbk0dNdsLF1dA9yuw3xzTS0=",
"MapleMono-TTF": "sha256-ggAJq9Sg8i1lXpE6adNqhVXJH5A1N7derskN/ZTn+KE=",
"MapleMono-Variable": "sha256-YKWtUvz3aGrEjihEzcjq6gKG0xFpRKqiSW6cGfhvsy8=",
"MapleMono-Woff2": "sha256-NPniX47eSSt6pp7qiqhhq6EpacBDKxlWsiwRToyT2E0=",
"MapleMonoNL-CN-unhinted": "sha256-KqFyvmKeDizD1LlaR+L3kiIeXSe+7VoaMJGV1/NMz/8=",
"MapleMonoNL-CN": "sha256-HJAWQ/Dw3Mpfjcc756aquUPsRLgKv7tN/w8jDZh4xZ4=",
"MapleMonoNL-NF-CN-unhinted": "sha256-hgjKmKScjn3erpKgBetzf7iiJa5WYdC4JzTZQkGbqNg=",
"MapleMonoNL-NF-CN": "sha256-qIBhdbJSw9w9k8Vh/goG2F46Yvhn1apeqlSbkD2yn1Q=",
"MapleMonoNL-NF-unhinted": "sha256-UI8OAt0PuRXYek4gtg00zZaYKiNiZWx5c79izq/eAbY=",
"MapleMonoNL-NF": "sha256-8UlJu96gL1XhZFs1llmAaisH+KsIYsXA9DIqB2EMfjo=",
"MapleMonoNL-OTF": "sha256-OOa/etMQQvmrrqC4ZZu4QwLHnsUtypKb00vGlp8Y2j4=",
"MapleMonoNL-TTF-AutoHint": "sha256-eQyk1LR+dff3UxfT/I0RCgU0spm1LWRoZtQ0m0JUGRE=",
"MapleMonoNL-TTF": "sha256-aRhtKSbzUs179usRUhOpsFMyrM4dqh7xt5mY0POskR4=",
"MapleMonoNL-Variable": "sha256-1ueWNUfeavEnHxH4g5Qhci/+LxobRwZq4pTsj4v1os4=",
"MapleMonoNL-Woff2": "sha256-5ZRCll9rq79oAnr9WgWxgNFtcdL8ljY72wDZnsox5bI=",
"MapleMonoNormal-CN-unhinted": "sha256-hNJfhsaxRnzv/3Y8Gzaf5ym9XxDEyVOrLR3E9FpFl8s=",
"MapleMonoNormal-CN": "sha256-SoS52L09o2qZlyKFuRBO5F4PKXBFAFxI6xpc4Ef1XHc=",
"MapleMonoNormal-NF-CN-unhinted": "sha256-vbWIGQl5g/OKFF0UK3m2RUZ30bu3H/btzXe0MbJk5IA=",
"MapleMonoNormal-NF-CN": "sha256-bcH9LMLMaKJ5A+9994yvbMoUNgz43vQUDTs200YeHn4=",
"MapleMonoNormal-NF-unhinted": "sha256-yW15Rf7GE8Qy5Ye9QGBMLma+Kx2Kj+3l/SAAzpBLg8k=",
"MapleMonoNormal-NF": "sha256-Eg3hKcHkslsvGzkJDrhkyN0IAYrjHJ+erzFAVAu/K0g=",
"MapleMonoNormal-OTF": "sha256-PVsYL/MdD7aX3P5kYafa/xwR84B2uG5TzMfi7i1ROWM=",
"MapleMonoNormal-TTF-AutoHint": "sha256-vtEHKBv0gjI6IuzXBmZcUVJS6fPNH/HJqohVZBwXN0U=",
"MapleMonoNormal-TTF": "sha256-YkUNl59nllTQca1Duj9phu20rLMiTSmcCXc0RluKln4=",
"MapleMonoNormal-Variable": "sha256-i0slIrBUwAXZj6VVUBUsEyN+mySgIBJcA5LL7iBamBA=",
"MapleMonoNormal-Woff2": "sha256-U4w4PqR8YC0HotDs/rHuUSf28WBnKNnVHe8FtO8MCHA=",
"MapleMonoNormalNL-CN-unhinted": "sha256-dJ2Si+l+NQAC+arOxOhvBFyy5uvWWRKh3RD62fSIl8Q=",
"MapleMonoNormalNL-CN": "sha256-/c5jU7O6M+hnRYZuFDVxg/PA+wk75HdllNX5IIarw2k=",
"MapleMonoNormalNL-NF-CN-unhinted": "sha256-At6I9eSGrF+9aWF5L2f4b2a3PWq4er7YMnYZJg4xwC8=",
"MapleMonoNormalNL-NF-CN": "sha256-EVHoFU4PQkbHknlfEfafYzDKwPwfQsAd+1oZaT8heao=",
"MapleMonoNormalNL-NF-unhinted": "sha256-5acGvUcFPQMdSh9CK7MWS/NNo52eiDpUiBRiVH3rsz4=",
"MapleMonoNormalNL-NF": "sha256-Y2XSNB9xCOGx9y1fnEHGztK7c9BjAdYj4PH2+Ft9cQ8=",
"MapleMonoNormalNL-OTF": "sha256-Sp81tk2teKk9fg7p0LJ0CLXmoh65ZcFNi/BOVzemGqQ=",
"MapleMonoNormalNL-TTF-AutoHint": "sha256-JKPgSZOaxqTSlsqEqbfo6ra27LqCxzFRpe78aUWunBw=",
"MapleMonoNormalNL-TTF": "sha256-KZBB4fyQmTUVwXsRC8yqiZtG9ED3isj64/tE8sDgSS4=",
"MapleMonoNormalNL-Variable": "sha256-95OvqOs9qo/38UPnGWGCF5SGxrRWnEE6OWT8M0J6XY0=",
"MapleMonoNormalNL-Woff2": "sha256-BwRa9BpkAe8Tw4mn16+g41Z3giIVoxJTGdC2Vk30lgg="
}

View file

@ -5,6 +5,7 @@
file_picker = callPackage ./file_picker { };
flutter_discord_rpc = callPackage ./flutter_discord_rpc { };
flutter_secure_storage_linux = callPackage ./flutter-secure-storage-linux { };
flutter_vodozemac = callPackage ./flutter_vodozemac { };
flutter_volume_controller = callPackage ./flutter_volume_controller { };
fvp = callPackage ./fvp { };
handy_window = callPackage ./handy-window { };

View file

@ -0,0 +1,74 @@
{
lib,
rustPlatform,
writeText,
stdenv,
}:
{ version, src, ... }:
let
rustDep = rustPlatform.buildRustPackage {
pname = "flutter_vodozemac-rs";
inherit version src;
sourceRoot = "${src.name}/rust";
useFetchCargoVendor = true;
cargoHash =
{
_0_2_2 = "sha256-Iw0AkHVjR1YmPe+C0YYBTDu5FsRk/ZpaRyBilcvqm6M=";
}
.${"_" + (lib.replaceStrings [ "." ] [ "_" ] version)} or (throw ''
Unsupported version of pub 'flutter_vodozemac': '${version}'
Please add cargoHash here. If the cargoHash
is the same with existing versions, add an alias here.
'');
passthru.libraryPath = "lib/libvodozemac_bindings_dart.so";
};
fakeCargokitCmake = writeText "FakeCargokit.cmake" ''
function(apply_cargokit target manifest_dir lib_name any_symbol_name)
set("''${target}_cargokit_lib" ${rustDep}/${rustDep.passthru.libraryPath} PARENT_SCOPE)
endfunction()
'';
getLibraryPath = ''
String _getLibraryPath() {
if (kIsWeb) {
return './';
}
try {
return Platform.resolvedExecutable + '/../lib/libvodozemac_bindings_dart.so';
} catch (_) {
return './';
}
}
'';
in
stdenv.mkDerivation {
pname = "flutter_vodozemac";
inherit version src;
passthru = src.passthru // {
# vodozemac-wasm in fluffychat will make use of it
inherit (rustDep) cargoDeps;
};
installPhase = ''
runHook preInstall
cp -r "$src" "$out"
pushd $out
chmod +rwx cargokit/cmake/cargokit.cmake
cp ${fakeCargokitCmake} cargokit/cmake/cargokit.cmake
chmod +rw lib/flutter_vodozemac.dart
substituteInPlace lib/flutter_vodozemac.dart \
--replace-warn "libraryPath: './'" "libraryPath: _getLibraryPath()"
echo "${getLibraryPath}" >> lib/flutter_vodozemac.dart
popd
runHook postInstall
'';
}

View file

@ -51,6 +51,12 @@
inherit runCommand rustc;
};
# Useful when rebuilding std
# e.g. when building wasm with wasm-pack
rustVendorSrc = callPackage ./rust-vendor-src.nix {
inherit runCommand rustc;
};
# Hooks
inherit
(callPackages ../../../build-support/rust/hooks {

View file

@ -0,0 +1,6 @@
{ runCommand, rustc }:
runCommand "rust-vendor-src" { } ''
tar --strip-components=1 -xzf ${rustc.src}
mv vendor $out
''

View file

@ -4,8 +4,8 @@ let
base = callPackage ./generic.nix (
(removeAttrs _args [ "fetchpatch" ])
// {
version = "8.1.32";
hash = "sha256-oE/dPfBflI34qPLF0nq1TB9DgixSXzH9IMGaKCRS0Hw=";
version = "8.1.33";
hash = "sha256-tlU0UYQcGlaYZdf9yDAkYh7kQ0zY+/6woxWIrJxwaF8=";
}
);
in

View file

@ -4,8 +4,8 @@ let
base = callPackage ./generic.nix (
_args
// {
version = "8.2.28";
hash = "sha256-KRnMG5IZCljcF5BLkuYmYAuWzkmkxy53UTeGpEBqzOU=";
version = "8.2.29";
hash = "sha256-UZeejRmMut4qrU/+n1PdPwT5YC0wieWXmYXgWK3kJnw=";
}
);
in

View file

@ -4,8 +4,8 @@ let
base = callPackage ./generic.nix (
_args
// {
version = "8.3.22";
hash = "sha256-mRM+LNoq83uqedsX2O/UFGKPFKAux18UGKCqP2qmZzs=";
version = "8.3.23";
hash = "sha256-BUiPe5Z9kKUJMvBnTcNW4beV9SLwKYtc4ktoDeIzwtQ=";
}
);
in

View file

@ -4,8 +4,8 @@ let
base = callPackage ./generic.nix (
_args
// {
version = "8.4.8";
hash = "sha256-NlacZN0UmeVwxDZgO2Qe7nzeSvV2r3hll9DucRs6Ooo=";
version = "8.4.10";
hash = "sha256-iBXRBlnN5fA75NFpIF1it7Ke0O3HzdhLY4TNoDEMMQg=";
}
);
in

View file

@ -10,13 +10,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "qtutilities";
version = "6.15.0";
version = "6.16.0";
src = fetchFromGitHub {
owner = "Martchus";
repo = "qtutilities";
rev = "v${finalAttrs.version}";
hash = "sha256-FWDvcUATod1n8CICmlQl/RA57c0EjLtwZ05mmVzc6Ec=";
hash = "sha256-0VRV/f/Murx/ikX/UOrGWlenkmrV8kAqwiUD8lGyObc=";
};
nativeBuildInputs = [

View file

@ -6,14 +6,17 @@
php,
}:
let
version = "0.19.0";
in
buildPecl {
pname = "vld";
version = "0.18.0-unstable-2024-08-22";
inherit version;
src = fetchFromGitHub {
owner = "derickr";
repo = "vld";
rev = "dc56f73a25b0230745afb5523871f2e8dd33fccd";
tag = version;
hash = "sha256-pQ1KIdGtV7bN5nROOJHR7C1eFMqVioTNLPAsJzH86NI=";
};

View file

@ -8,14 +8,14 @@
buildPythonPackage rec {
pname = "aliyun-python-sdk-sts";
version = "3.1.2";
version = "3.1.3";
format = "setuptools";
disabled = pythonOlder "3.7";
src = fetchPypi {
inherit pname version;
hash = "sha256-GLzieAX0j/aEKeKj37PtBQJy3c2zWgy1no7/lXiYSU0=";
hash = "sha256-Iv7bi60T+WbnEaH0Zi7te52zNEG8BapLD5GKoB4JuWc=";
};
propagatedBuildInputs = [ aliyun-python-sdk-core ];

View file

@ -11,7 +11,7 @@
buildPythonPackage rec {
pname = "androidtvremote2";
version = "0.2.2";
version = "0.2.3";
pyproject = true;
disabled = pythonOlder "3.10";
@ -20,7 +20,7 @@ buildPythonPackage rec {
owner = "tronikos";
repo = "androidtvremote2";
tag = "v${version}";
hash = "sha256-KlOvtJ7TyX+SUuO5TF/2gkHh059dMKmPOzc6H+MDfbg=";
hash = "sha256-oNZE7Fo60u6c3Gmk4Gi1Ni3HGPDMx7Uh+uerZmxiMCM=";
};
build-system = [ setuptools ];

View file

@ -0,0 +1,49 @@
{
lib,
stdenv,
buildPythonPackage,
fetchFromGitHub,
hatchling,
hatch-vcs,
pytestCheckHook,
}:
buildPythonPackage rec {
pname = "ar";
version = "1.0.0";
pyproject = true;
src = fetchFromGitHub {
owner = "vidstige";
repo = "ar";
tag = "v${version}";
hash = "sha256-azbqlSO5YE6zMrDoVNLDyGeed5H4mSyNEE02AmoZIDs=";
};
build-system = [
hatchling
];
dependencies = [
hatch-vcs
];
nativeCheckInputs = [ pytestCheckHook ];
pythonImportsCheck = [ "ar" ];
disabledTests = lib.optionals stdenv.isDarwin [
"test_list"
"test_read_content"
"test_read_binary"
"test_read_content_ext"
"test_read_binary_ext"
];
meta = {
description = "Implementation of the ar archive format";
homepage = "https://github.com/vidstige/ar";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ ethancedwards8 ];
};
}

View file

@ -18,14 +18,14 @@
buildPythonPackage rec {
pname = "banks";
version = "2.1.2";
version = "2.1.3";
pyproject = true;
src = fetchFromGitHub {
owner = "masci";
repo = "banks";
tag = "v${version}";
hash = "sha256-lOlNYIBMa3G06t5KfRWNd/d8aXjxnWp11n8Kw7Ydy+Y=";
hash = "sha256-aDcmrvrTNE+YfwFmcOvNBuCfzamvtkGE3EwybAucKuQ=";
};
SSL_CERT_FILE = "${cacert}/etc/ssl/certs/ca-bundle.crt";

View file

@ -0,0 +1,52 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
setuptools,
jinja2,
json-flatten,
packageurl-python,
semver,
toml,
pytestCheckHook,
}:
buildPythonPackage rec {
pname = "custom-json-diff";
version = "2.1.6";
pyproject = true;
src = fetchFromGitHub {
owner = "appthreat";
repo = "custom-json-diff";
tag = "v${version}";
hash = "sha256-09kSj4fJHQHyzsCk0bSVlwAgkyzWOSjRKxU1rcMXacQ=";
};
build-system = [
setuptools
];
dependencies = [
jinja2
json-flatten
packageurl-python
semver
toml
];
nativeCheckInputs = [
pytestCheckHook
];
pythonImportsCheck = [
"custom_json_diff"
];
meta = {
description = "Utility to compare json documents containing dynamically-generated fields";
homepage = "https://github.com/appthreat/custom-json-diff";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ ethancedwards8 ];
};
}

View file

@ -18,7 +18,7 @@
buildPythonPackage rec {
pname = "cyclopts";
version = "3.20.0";
version = "3.22.1";
pyproject = true;
disabled = pythonOlder "3.12";
@ -27,7 +27,7 @@ buildPythonPackage rec {
owner = "BrianPugh";
repo = "cyclopts";
tag = "v${version}";
hash = "sha256-0ANSueh/g2twwxeuu5nTwvWkLAqXWTYZ0vVa6wg2D/w=";
hash = "sha256-/1H5PwG/X5XqXGh4lcaxr5ZrHbcHTBHAgG/XMnOCUb0=";
};
build-system = [

View file

@ -38,14 +38,14 @@
buildPythonPackage rec {
pname = "flax";
version = "0.10.6";
version = "0.10.7";
pyproject = true;
src = fetchFromGitHub {
owner = "google";
repo = "flax";
tag = "v${version}";
hash = "sha256-HhepJp7y2YN05XcZhB/L08g+yOfTJPRzd2m4ALQJGvw=";
hash = "sha256-T/KhlvliesBW40kyToxOkyX8PLl0acMQO+FnOKqfQJo=";
};
build-system = [

View file

@ -21,14 +21,14 @@
buildPythonPackage rec {
pname = "flowmc";
version = "0.4.4";
version = "0.4.5";
pyproject = true;
src = fetchFromGitHub {
owner = "kazewong";
repo = "flowMC";
tag = "flowMC-${version}";
hash = "sha256-hyrsL8agY+bNcRcEmgEtv97cFROgeLFxxtKTfx0HoH8=";
hash = "sha256-D3K9cvmUvwsVAjvXdSDgYlqrzTYXVlSVQbfx7TANz8A=";
};
build-system = [ hatchling ];

View file

@ -58,6 +58,11 @@ buildPythonPackage rec {
flaky
];
pytestFlagsArray = [
"-W"
"ignore::FutureWarning"
];
disabledTests = [
# All the below fail due to some change in flaky API
"test_periodic_param_fn_non_blocking"

View file

@ -0,0 +1,40 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
setuptools,
pytestCheckHook,
}:
buildPythonPackage rec {
pname = "json-flatten";
version = "0.3.1";
pyproject = true;
src = fetchFromGitHub {
owner = "simonw";
repo = "json-flatten";
tag = version;
hash = "sha256-zAaunWuFAokC16FwHRHgyvq27pNUEGXJfSqTQ1wvXE8=";
};
build-system = [
setuptools
];
nativeCheckInputs = [
pytestCheckHook
];
pythonImportsCheck = [
"json_flatten"
];
meta = {
description = "Functions for flattening a JSON object to a single dictionary of pairs";
license = lib.licenses.asl20;
homepage = "https://github.com/simonw/json-flatten";
maintainers = with lib.maintainers; [ ethancedwards8 ];
changelog = "https://github.com/simonw/json-flatten/releases/tag/${version}";
};
}

View file

@ -10,7 +10,7 @@
buildPythonPackage rec {
pname = "pyexploitdb";
version = "0.2.86";
version = "0.2.87";
pyproject = true;
disabled = pythonOlder "3.7";
@ -18,7 +18,7 @@ buildPythonPackage rec {
src = fetchPypi {
pname = "pyExploitDb";
inherit version;
hash = "sha256-4vnokNCHiPquSpXjLSFTTm4F1i7xyA4LQY7MY8Ip7G8=";
hash = "sha256-xPhGj8pRuDZ6Mx6dTlw4vNS81p+HiH3S3x8H5ZXyaek=";
};
build-system = [ setuptools ];

View file

@ -32,14 +32,14 @@
buildPythonPackage rec {
pname = "pylance";
version = "0.30.0";
version = "0.31.0";
pyproject = true;
src = fetchFromGitHub {
owner = "lancedb";
repo = "lance";
tag = "v${version}";
hash = "sha256-Bs0xBRAehAzLEHvsGIFPX6y1msvfhkTbBRPMggbahxE=";
hash = "sha256-PjamcRvqLP8FRlyNw3+ucoQeVvSrlBEybDAugSTJqa4=";
};
sourceRoot = "${src.name}/python";
@ -51,7 +51,7 @@ buildPythonPackage rec {
src
sourceRoot
;
hash = "sha256-ZUS83iuaC7IkwhAplTSHTqaa/tHO1Kti4rSQDuRgX98=";
hash = "sha256-lL926HgxeRQjLOmhJ9nKvrUSWBaktS6kl20I3f0sIVA=";
};
nativeBuildInputs = [

View file

@ -30,7 +30,7 @@
buildPythonPackage rec {
pname = "pyopencl";
version = "2025.2.4";
version = "2025.2.5";
pyproject = true;
src = fetchFromGitHub {
@ -38,7 +38,7 @@ buildPythonPackage rec {
repo = "pyopencl";
tag = "v${version}";
fetchSubmodules = true;
hash = "sha256-Tan6HUwDnG7/z6lLPysUhRkr32qqa6ix8SoBCBf4dCA=";
hash = "sha256-VmnCMaq6op/7M+n1U9mPgRpCyZtkgmzMXQuWW6Clbd4=";
};
build-system = [

View file

@ -28,7 +28,7 @@
buildPythonPackage rec {
pname = "pytenable";
version = "1.7.5";
version = "1.8.0";
pyproject = true;
disabled = pythonOlder "3.10";
@ -37,7 +37,7 @@ buildPythonPackage rec {
owner = "tenable";
repo = "pyTenable";
tag = version;
hash = "sha256-oTFlIDlntbB2YwE1zuU9DjouPncgIMKU+lDf5bcPKiQ=";
hash = "sha256-859+qKkOZBVU96QJI4YlQGXM9O81yjMmmwhAlxqO4QY=";
};
pythonRelaxDeps = [

View file

@ -33,7 +33,7 @@
buildPythonPackage rec {
pname = "pytensor";
version = "2.31.5";
version = "2.31.6";
pyproject = true;
src = fetchFromGitHub {
@ -43,7 +43,7 @@ buildPythonPackage rec {
postFetch = ''
sed -i 's/git_refnames = "[^"]*"/git_refnames = " (tag: ${src.tag})"/' $out/pytensor/_version.py
'';
hash = "sha256-9sIFBKuPMwg+5JHA9zhvaSvluxthUtc/rdqMZPl+VZg=";
hash = "sha256-J53wjbUlPJzecAQNeQ+xIlXwTFTLqQNicoFsnXhuoHM=";
};
build-system = [

View file

@ -28,14 +28,14 @@
buildPythonPackage rec {
pname = "sagemaker-core";
version = "1.0.40";
version = "1.0.41";
pyproject = true;
src = fetchFromGitHub {
owner = "aws";
repo = "sagemaker-core";
tag = "v${version}";
hash = "sha256-c/qaAdiQHY7w3h9qxDO/2U9W01xpJjBGx5Ohh9P7Jxk=";
hash = "sha256-XW7BJZc4VZiWe2d1p8MySYXWhzkwe0YjuPGwyswYUjY=";
};
build-system = [

View file

@ -0,0 +1,95 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
# build-system
setuptools,
# optional-dependencies
dill,
flask,
graphviz,
multiprocess,
regex,
requests,
sphinx,
sphinx-click,
# tests
pytestCheckHook,
ddt,
cryptography,
schedula,
}:
buildPythonPackage rec {
pname = "schedula";
version = "1.5.62";
pyproject = true;
src = fetchFromGitHub {
owner = "vinci1it2000";
repo = "schedula";
tag = "v${version}";
hash = "sha256-erEUdiKV1MRwjVy3SKFneJVHp6gWEok7EWdv6v6HFGM=";
};
build-system = [ setuptools ];
optional-dependencies = rec {
# dev omitted, we have nativeCheckInputs for this
# form omitted, as it pulls in a kitchensink of deps, some not even packaged in nixpkgs
io = [ dill ];
parallel = [ multiprocess ];
plot = [
requests
graphviz
regex
flask
];
sphinx = [
sphinx
sphinx-click
] ++ plot;
web = [
requests
regex
flask
];
};
nativeCheckInputs =
[
cryptography # doctests
ddt
sphinx
pytestCheckHook
]
++ schedula.optional-dependencies.io
++ schedula.optional-dependencies.parallel
++ schedula.optional-dependencies.plot;
disabledTests = [
# FAILED tests/test_setup.py::TestSetup::test_long_description - ModuleNotFoundError: No module named 'sphinxcontrib.writers'
"test_long_description"
];
disabledTestPaths = [
# ERROR tests/utils/test_form.py::TestDispatcherForm::test_form1 - ModuleNotFoundError: No module named 'chromedriver_autoinstaller'
# ERROR tests/utils/test_form.py::TestDispatcherForm::test_form_stripe - ModuleNotFoundError: No module named 'chromedriver_autoinstaller'
"tests/utils/test_form.py"
];
pythonImportsCheck = [ "schedula" ];
meta = {
description = "Smart function scheduler for dynamic flow-based programming";
homepage = "https://github.com/vinci1it2000/schedula";
changelog = "https://github.com/vinci1it2000/schedula/blob/v${version}/CHANGELOG.rst";
license = lib.licenses.eupl11;
maintainers = with lib.maintainers; [ flokli ];
# at least some tests fail on Darwin
platforms = lib.platforms.linux;
};
}

View file

@ -10,7 +10,7 @@
buildPythonPackage rec {
pname = "tencentcloud-sdk-python";
version = "3.0.1411";
version = "3.0.1415";
pyproject = true;
disabled = pythonOlder "3.9";
@ -19,7 +19,7 @@ buildPythonPackage rec {
owner = "TencentCloud";
repo = "tencentcloud-sdk-python";
tag = version;
hash = "sha256-YFqv7BIl7sOpGaRyMUTqiiT6w0kb7G0Xe5c3R/jPgUA=";
hash = "sha256-AwVSVqi0uTlWYhiMfsTmLNX4WlPR58Zq7BsPEQ7YXJ4=";
};
build-system = [ setuptools ];

View file

@ -21,7 +21,7 @@
buildPythonPackage rec {
pname = "twilio";
version = "9.6.3";
version = "9.6.4";
pyproject = true;
disabled = pythonOlder "3.7";
@ -30,7 +30,7 @@ buildPythonPackage rec {
owner = "twilio";
repo = "twilio-python";
tag = version;
hash = "sha256-dgz46LzY93SCSMWjvkAQAOprGAKSHPhjyVCuOtFH5ns=";
hash = "sha256-tl4kCTpehILfX5Fvk2+GWL0Lm6btkmxSO3VHXEK1uXo=";
};
build-system = [ setuptools ];

View file

@ -23,9 +23,9 @@ let
};
# ./update-zen.py lqx
lqx = {
version = "6.15.3"; # lqx
suffix = "lqx1"; # lqx
sha256 = "13zzfb01sn4bsfwh6gk37078wvbixprc7dl4794wqh9anw28dmsw"; # lqx
version = "6.15.4"; # lqx
suffix = "lqx2"; # lqx
sha256 = "197m75li8lhkcil8mkb402v8f166n0m52l450dar8mq4y89r7x3j"; # lqx
isLqx = true;
};
};

View file

@ -21,13 +21,13 @@ let
in
postgresqlBuildExtension (finalAttrs: {
pname = "omnigres";
version = "0-unstable-2025-06-03";
version = "0-unstable-2025-06-27";
src = fetchFromGitHub {
owner = "omnigres";
repo = "omnigres";
rev = "d347be5ae1d79645ac277d19080eacba7b229cf8";
hash = "sha256-LKsH+aeLg7v2RfK80D3mgXdPB8jMIv5uFdf+3c5Z0vA=";
rev = "f1b35e623b2583d1124c593f0d9c8466d8fa3a56";
hash = "sha256-FiZuXvY+1qyLTnxZ9Y5MP9SxM4wncX4L4rDJEa6O7NE=";
};
# This matches postInstall of PostgreSQL's generic.nix, which does this for the PGXS Makefile.

View file

@ -8,13 +8,13 @@
postgresqlBuildExtension (finalAttrs: {
pname = "plpgsql-check";
version = "2.7.15";
version = "2.8.1";
src = fetchFromGitHub {
owner = "okbob";
repo = "plpgsql_check";
tag = "v${finalAttrs.version}";
hash = "sha256-JF0aTYakoHMRdiWcA70mYFvzTiwMhOJZfqRj+6JC6n0=";
hash = "sha256-7jPM681gQOo1EQcOA3SShy6LxN6gtSEeqp8Aq8iMH68=";
};
passthru.tests.extension = postgresqlTestExtension {
@ -29,5 +29,6 @@ postgresqlBuildExtension (finalAttrs: {
platforms = postgresql.meta.platforms;
license = lib.licenses.mit;
maintainers = [ ];
broken = lib.versionOlder postgresql.version "14";
};
})

View file

@ -14,13 +14,13 @@
stdenv.mkDerivation rec {
pname = "outline";
version = "0.84.0";
version = "0.85.0";
src = fetchFromGitHub {
owner = "outline";
repo = "outline";
rev = "v${version}";
hash = "sha256-wTarO1nVta4rxkJRa3NIhyu0IJUukO5trOdOj16Zwn0=";
hash = "sha256-xzZQ0+eJOznZWpApbh9SUGuA5XiLnbhQS0qBLrLfk9Y=";
};
nativeBuildInputs = [
@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
yarnOfflineCache = fetchYarnDeps {
yarnLock = "${src}/yarn.lock";
hash = "sha256-iXaiTPjbAV/aRIdUYrIf0Y4z43yRALqSxjF5wB2q0Mg=";
hash = "sha256-/CXIZKI8eeK21PRIVZnRMOkwNNbj0vC0PZuT6rZBwG4=";
};
configurePhase = ''

View file

@ -84,6 +84,10 @@ stdenv.mkDerivation {
chmod +x $out/bin/egrep $out/bin/fgrep
'';
env = lib.optionalAttrs stdenv.hostPlatform.isMinGW {
NIX_CFLAGS_COMPILE = "-Wno-error=format-security";
};
meta = with lib; {
homepage = "https://www.gnu.org/software/grep/";
description = "GNU implementation of the Unix grep command";

View file

@ -829,6 +829,8 @@ self: super: with self; {
aqualogic = callPackage ../development/python-modules/aqualogic { };
ar = callPackage ../development/python-modules/ar { };
arabic-reshaper = callPackage ../development/python-modules/arabic-reshaper { };
aranet4 = callPackage ../development/python-modules/aranet4 { };
@ -3122,6 +3124,8 @@ self: super: with self; {
curvefitgui = callPackage ../development/python-modules/curvefitgui { };
custom-json-diff = callPackage ../development/python-modules/custom-json-diff { };
customtkinter = callPackage ../development/python-modules/customtkinter { };
cut-cross-entropy = callPackage ../development/python-modules/cut-cross-entropy { };
@ -7308,6 +7312,8 @@ self: super: with self; {
json-api-doc = callPackage ../development/python-modules/json-api-doc { };
json-flatten = callPackage ../development/python-modules/json-flatten { };
json-home-client = callPackage ../development/python-modules/json-home-client { };
json-logging = callPackage ../development/python-modules/json-logging { };
@ -15866,6 +15872,8 @@ self: super: with self; {
scenedetect = callPackage ../development/python-modules/scenedetect { };
schedula = callPackage ../development/python-modules/schedula { };
schedule = callPackage ../development/python-modules/schedule { };
scheduler = callPackage ../development/python-modules/scheduler { };