mirror of
https://github.com/NixOS/nixpkgs.git
synced 2026-08-25 17:55:21 +00:00
Merge staging-next into staging
This commit is contained in:
@@ -295,6 +295,11 @@
|
||||
name = "6543";
|
||||
keys = [ { fingerprint = "8722 B61D 7234 1082 553B 201C B8BE 6D61 0E61 C862"; } ];
|
||||
};
|
||||
_66HEX = {
|
||||
name = "Marek Jóźwiak";
|
||||
github = "66HEX";
|
||||
githubId = 168720167;
|
||||
};
|
||||
_6AA4FD = {
|
||||
email = "f6442954@gmail.com";
|
||||
github = "6AA4FD";
|
||||
@@ -8140,6 +8145,13 @@
|
||||
githubId = 7494394;
|
||||
name = "Karim Elatov";
|
||||
};
|
||||
eldios = {
|
||||
email = "emanuele.lele.calo@gmail.com";
|
||||
github = "eldios";
|
||||
githubId = 483767;
|
||||
name = "Emanuele 'Lele' Calo";
|
||||
keys = [ { fingerprint = "AA6B C774 3F8F 9AD8 4BBA 15C7 2CCB F4B7 1EFF DD46"; } ];
|
||||
};
|
||||
eleanor = {
|
||||
email = "dejan@proteansec.com";
|
||||
github = "proteansec";
|
||||
@@ -16145,7 +16157,11 @@
|
||||
};
|
||||
liamthexpl0rer = {
|
||||
name = "Liam";
|
||||
matrix = "@liamthexpl0rer:matrix.org";
|
||||
matrix = "@liamthexpl0rer:l14mx.de";
|
||||
keys = [
|
||||
{ fingerprint = "3C0A 0FC8 E406 E602 50F3 FCFD 7633 7F2C A1CB 537D"; }
|
||||
{ fingerprint = "CC53 895B 3CC7 7B29 AA46 55EF 6DF0 2F41 092A 9B30"; }
|
||||
];
|
||||
github = "liamthexpl0rer";
|
||||
githubId = 119797945;
|
||||
};
|
||||
@@ -23866,6 +23882,12 @@
|
||||
name = "Roland Conybeare";
|
||||
keys = [ { fingerprint = "bw5Cr/4ul1C2UvxopphbZbFI1i5PCSnOmPID7mJ/Ogo"; } ];
|
||||
};
|
||||
rdk31 = {
|
||||
email = "nixpkgs@rdk31.com";
|
||||
github = "rdk31";
|
||||
githubId = 16737959;
|
||||
name = "rdk31";
|
||||
};
|
||||
rdnetto = {
|
||||
email = "rdnetto@gmail.com";
|
||||
github = "rdnetto";
|
||||
|
||||
@@ -350,6 +350,7 @@
|
||||
./programs/tsm-client.nix
|
||||
./programs/turbovnc.nix
|
||||
./programs/udevil.nix
|
||||
./programs/upki.nix
|
||||
./programs/usbtop.nix
|
||||
./programs/vim.nix
|
||||
./programs/virt-manager.nix
|
||||
|
||||
97
nixos/modules/programs/upki.nix
Normal file
97
nixos/modules/programs/upki.nix
Normal file
@@ -0,0 +1,97 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
cfg = config.services.upki;
|
||||
format = pkgs.formats.toml { };
|
||||
configFile = format.generate "upki.toml" cfg.settings;
|
||||
in
|
||||
{
|
||||
options.services.upki = {
|
||||
enable = lib.mkEnableOption "upki certificate infrastructure cache updates";
|
||||
|
||||
package = lib.mkPackageOption pkgs "upki" { };
|
||||
|
||||
interval = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "2h";
|
||||
example = "1h";
|
||||
description = "How often to update the upki cache.";
|
||||
};
|
||||
|
||||
settings = lib.mkOption {
|
||||
inherit (format) type;
|
||||
default = { };
|
||||
description = "Settings written to the upki config file.";
|
||||
example = lib.literalExpression ''
|
||||
{
|
||||
cache-dir = "/var/cache/upki";
|
||||
revocation.fetch-url = "https://upki.rustls.dev/";
|
||||
}
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
environment.systemPackages = [ cfg.package ];
|
||||
|
||||
services.upki.settings = {
|
||||
cache-dir = lib.mkDefault "/var/cache/upki";
|
||||
revocation.fetch-url = lib.mkDefault "https://upki.rustls.dev/";
|
||||
};
|
||||
|
||||
users.users.upki = {
|
||||
isSystemUser = true;
|
||||
group = "upki";
|
||||
};
|
||||
users.groups.upki = { };
|
||||
|
||||
systemd.services.upki-fetch = {
|
||||
description = "Update the upki cache";
|
||||
after = [ "network-online.target" ];
|
||||
wants = [ "network-online.target" ];
|
||||
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
ExecStart = "${lib.getExe cfg.package} --config-file ${configFile} fetch";
|
||||
User = "upki";
|
||||
Group = "upki";
|
||||
CacheDirectory = "upki";
|
||||
CacheDirectoryMode = "0755";
|
||||
UMask = "0022";
|
||||
|
||||
# Hardening
|
||||
LockPersonality = true;
|
||||
MemoryDenyWriteExecute = true;
|
||||
NoNewPrivileges = true;
|
||||
PrivateTmp = true;
|
||||
ProtectControlGroups = true;
|
||||
ProtectHome = true;
|
||||
ProtectKernelModules = true;
|
||||
ProtectKernelTunables = true;
|
||||
ProtectSystem = "strict";
|
||||
RestrictAddressFamilies = [
|
||||
"AF_UNIX"
|
||||
"AF_INET"
|
||||
"AF_INET6"
|
||||
];
|
||||
RestrictRealtime = true;
|
||||
SystemCallArchitectures = "native";
|
||||
SystemCallErrorNumber = "EPERM";
|
||||
SystemCallFilter = "@system-service";
|
||||
};
|
||||
};
|
||||
|
||||
systemd.timers.upki-fetch = {
|
||||
description = "Update the upki cache every ${cfg.interval}";
|
||||
wantedBy = [ "timers.target" ];
|
||||
timerConfig = {
|
||||
OnActiveSec = "0";
|
||||
OnUnitActiveSec = cfg.interval;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -85,16 +85,20 @@ in
|
||||
|
||||
(mkIf inInitrd {
|
||||
boot.initrd.kernelModules = [ "btrfs" ];
|
||||
boot.initrd.availableKernelModules = [
|
||||
"crc32c"
|
||||
]
|
||||
++ optionals (config.boot.kernelPackages.kernel.kernelAtLeast "5.5") [
|
||||
# The canonical names of these modules are not very stable, so use the algorithm names that the btrfs module expects.
|
||||
# See: https://github.com/torvalds/linux/blob/v6.19-rc1/fs/btrfs/super.c#L2705-L2708
|
||||
"xxhash64"
|
||||
"sha256" # Should be baked into our kernel, just to be sure
|
||||
"blake2b-256"
|
||||
];
|
||||
boot.initrd.availableKernelModules = (
|
||||
mkIf (config.boot.kernelPackages.kernel.kernelOlder "7.0") (
|
||||
[
|
||||
"crc32c"
|
||||
]
|
||||
++ optionals (config.boot.kernelPackages.kernel.kernelAtLeast "5.5") [
|
||||
# The canonical names of these modules are not very stable, so use the algorithm names that the btrfs module expects.
|
||||
# See: https://github.com/torvalds/linux/blob/v6.19-rc1/fs/btrfs/super.c#L2705-L2708
|
||||
"xxhash64"
|
||||
"sha256" # Should be baked into our kernel, just to be sure
|
||||
"blake2b-256"
|
||||
]
|
||||
)
|
||||
);
|
||||
|
||||
boot.initrd.extraUtilsCommands = mkIf (!config.boot.initrd.systemd.enable) ''
|
||||
copy_bin_and_libs ${pkgs.btrfs-progs}/bin/btrfs
|
||||
|
||||
@@ -7464,6 +7464,21 @@ final: prev: {
|
||||
meta.hydraPlatforms = [ ];
|
||||
};
|
||||
|
||||
herdr-splits-nvim = buildVimPlugin {
|
||||
pname = "herdr-splits.nvim";
|
||||
version = "0.5.2";
|
||||
src = fetchFromGitHub {
|
||||
owner = "lmilojevicc";
|
||||
repo = "herdr-splits.nvim";
|
||||
tag = "v0.5.2";
|
||||
hash = "sha256-2h9HGQcIwKIE5uKuRVwtIfKNn0urQttvg5b95kavzgo=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
meta.homepage = "https://github.com/lmilojevicc/herdr-splits.nvim/";
|
||||
meta.license = getLicenseFromSpdxId "MIT";
|
||||
meta.hydraPlatforms = [ ];
|
||||
};
|
||||
|
||||
hex-nvim = buildVimPlugin {
|
||||
pname = "hex.nvim";
|
||||
version = "0-unstable-2025-07-27";
|
||||
|
||||
@@ -531,6 +531,7 @@ https://github.com/Zeioth/heirline-components.nvim/,,
|
||||
https://github.com/rebelot/heirline.nvim/,,
|
||||
https://github.com/qvalentin/helm-ls.nvim/,,
|
||||
https://github.com/OXY2DEV/helpview.nvim/,,
|
||||
https://github.com/lmilojevicc/herdr-splits.nvim/,,
|
||||
https://github.com/RaafatTurki/hex.nvim/,,
|
||||
https://github.com/Yggdroot/hiPairs/,,
|
||||
https://github.com/tzachar/highlight-undo.nvim/,,
|
||||
|
||||
@@ -18,7 +18,7 @@ vscode-utils.buildVscodeMarketplaceExtension {
|
||||
# it does not matter which binary is fetched. Using only a single
|
||||
# hash makes this easier to maintain.
|
||||
arch = "linux-x64";
|
||||
hash = "sha256-tt7EjsMp60Qs9rngWYHPMMV+rBUt6FTZwkPoGb6Sl0w=";
|
||||
hash = "sha256-/dRXNWsYV1dGfwrcr6auLhqhm7tUbWizwPsYM5eARww=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -10,11 +10,11 @@
|
||||
buildMozillaMach rec {
|
||||
pname = "firefox-beta";
|
||||
binaryName = "firefox-beta";
|
||||
version = "154.0b9";
|
||||
version = "154.0b10";
|
||||
applicationName = "Firefox Beta";
|
||||
src = fetchurl {
|
||||
url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
|
||||
sha512 = "a374ecaf21678f0cca685eed7a09763b3f14ac3d4415c27227a4e06f050042df5e31ade4188d3ab7191102b811b1161638336b41d9de82b9527d39049fe0d3d2";
|
||||
sha512 = "ddbe3ff45217a16df9eecfac52fcb12425accae76457e7054b20bd085f5b22908940a20448f213c3dc62d1276bb1c81f38194432336ba97459b2c17393ebd3cd";
|
||||
};
|
||||
|
||||
meta = {
|
||||
|
||||
@@ -10,13 +10,13 @@
|
||||
buildMozillaMach rec {
|
||||
pname = "firefox-devedition";
|
||||
binaryName = "firefox-devedition";
|
||||
version = "154.0b9";
|
||||
version = "154.0b10";
|
||||
applicationName = "Firefox Developer Edition";
|
||||
requireSigning = false;
|
||||
branding = "browser/branding/aurora";
|
||||
src = fetchurl {
|
||||
url = "mirror://mozilla/devedition/releases/${version}/source/firefox-${version}.source.tar.xz";
|
||||
sha512 = "83d15ab019fd49076f21574770c27e04d431b5b230d4bb3246a2c9190e26ae3f626bdb8241905bc91b87803586f312e4f6cfd7ce7908e5766fb1aa6a0669cff6";
|
||||
sha512 = "e2275579e4769a0690010d8fbba528a0e347d86f0dc981d1702b3e627d9c73f3fd7399d3e618c514bf6a3c0059fa3aa5a29f9cdec802e52955a03b1122ca8d39";
|
||||
};
|
||||
|
||||
# buildMozillaMach sets MOZ_APP_REMOTINGNAME during configuration, but
|
||||
|
||||
@@ -225,9 +225,13 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
mkdir -p $out/opt/${binaryName}/modules/discord_krisp/KMS/logs
|
||||
|
||||
# Chromium 148 multiplies Plasma's GTK DPI scale by the native Wayland surface
|
||||
# scale, which makes the UI too large. See #551645
|
||||
wrapProgramShell $out/opt/${binaryName}/${binaryName} \
|
||||
"''${gappsWrapperArgs[@]}" \
|
||||
--run 'case ":''${XDG_CURRENT_DESKTOP:-}:" in *:KDE:*) discordKdeWayland=1 ;; *) unset discordKdeWayland ;; esac' \
|
||||
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform=wayland --enable-features=WaylandWindowDecorations --enable-wayland-ime=true}}" \
|
||||
--add-flags "\''${WAYLAND_DISPLAY:+\''${discordKdeWayland:+--force-device-scale-factor=1}}" \
|
||||
${lib.strings.optionalString withTTS ''
|
||||
--run 'if [[ "''${NIXOS_SPEECH:-default}" != "False" ]]; then NIXOS_SPEECH=True; else unset NIXOS_SPEECH; fi' \
|
||||
--add-flags "\''${NIXOS_SPEECH:+--enable-speech-dispatcher}" \
|
||||
|
||||
@@ -36,13 +36,13 @@ let
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "advanced-scene-switcher";
|
||||
version = "1.35.1";
|
||||
version = "1.36.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "WarmUpTill";
|
||||
repo = "SceneSwitcher";
|
||||
rev = version;
|
||||
hash = "sha256-gfJtkX6OGqy+hUXvLXaOETvfIX+TRNEj0IwZnE9t81E=";
|
||||
hash = "sha256-padrHEGUtgXV0ee5mgIHSLHjh+6npL/vZAEJ8nARML0=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -16,62 +16,48 @@
|
||||
alsa-lib,
|
||||
stdenv,
|
||||
libxcb,
|
||||
bzip2,
|
||||
cmake,
|
||||
fontconfig,
|
||||
freetype,
|
||||
pkg-config,
|
||||
makeWrapper,
|
||||
writeShellScript,
|
||||
patchelf,
|
||||
}:
|
||||
let
|
||||
version = "0.17.0";
|
||||
# Patch for airshipper to install veloren
|
||||
patch =
|
||||
let
|
||||
runtimeLibs = [
|
||||
udev
|
||||
alsa-lib
|
||||
(lib.getLib stdenv.cc.cc)
|
||||
libxkbcommon
|
||||
libxcb
|
||||
libx11
|
||||
libxcursor
|
||||
libxrandr
|
||||
libxi
|
||||
vulkan-loader
|
||||
libGL
|
||||
];
|
||||
in
|
||||
writeShellScript "patch" ''
|
||||
echo "making binaries executable"
|
||||
chmod +x {veloren-voxygen,veloren-server-cli}
|
||||
echo "patching dynamic linkers"
|
||||
${patchelf}/bin/patchelf \
|
||||
--set-interpreter "${stdenv.cc.bintools.dynamicLinker}" \
|
||||
veloren-server-cli
|
||||
# Patch for airshipper to install veloren client
|
||||
patchVoxygen =
|
||||
runtimeLibs:
|
||||
writeShellScript "voxygen-patch" ''
|
||||
echo "making veloren-voxygen executable"
|
||||
chmod +x veloren-voxygen
|
||||
echo "patching veloren-voxygen dynamic linker"
|
||||
${patchelf}/bin/patchelf \
|
||||
--set-interpreter "${stdenv.cc.bintools.dynamicLinker}" \
|
||||
--set-rpath "${lib.makeLibraryPath runtimeLibs}" \
|
||||
veloren-voxygen
|
||||
'';
|
||||
# Patch for airshipper to install veloren server
|
||||
patchServer = writeShellScript "server-cli-patch" ''
|
||||
echo "making veloren-server-cli executable"
|
||||
chmod +x veloren-server-cli
|
||||
echo "patching veloren-server-cli dynamic linker"
|
||||
${patchelf}/bin/patchelf \
|
||||
--set-interpreter "${stdenv.cc.bintools.dynamicLinker}" \
|
||||
veloren-server-cli
|
||||
'';
|
||||
in
|
||||
rustPlatform.buildRustPackage {
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "airshipper";
|
||||
inherit version;
|
||||
version = "0.17.0";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
owner = "Veloren";
|
||||
repo = "airshipper";
|
||||
tag = "v${version}";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-M89RswC08MZnNfk2T1+rtDajTpDGTnJoZ2U8bU5U2+0=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-ry0hFvMDnotDQu6mqgyt+6hKOvGRJLmZKs3SxEVtDRg=";
|
||||
|
||||
buildInputs = [
|
||||
fontconfig
|
||||
openssl
|
||||
wayland
|
||||
wayland-protocols
|
||||
@@ -80,9 +66,10 @@ rustPlatform.buildRustPackage {
|
||||
libxrandr
|
||||
libxi
|
||||
libxcursor
|
||||
vulkan-loader
|
||||
libGL
|
||||
];
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
pkg-config
|
||||
makeWrapper
|
||||
];
|
||||
@@ -94,30 +81,40 @@ rustPlatform.buildRustPackage {
|
||||
install -Dm444 "client/assets/net.veloren.airshipper.png" "$out/share/icons/net.veloren.airshipper.png"
|
||||
'';
|
||||
|
||||
postFixup =
|
||||
let
|
||||
libPath = lib.makeLibraryPath [
|
||||
libGL
|
||||
vulkan-loader
|
||||
wayland
|
||||
wayland-protocols
|
||||
bzip2
|
||||
fontconfig
|
||||
freetype
|
||||
libxkbcommon
|
||||
libx11
|
||||
libxrandr
|
||||
libxi
|
||||
libxcursor
|
||||
];
|
||||
in
|
||||
''
|
||||
# We set LD_LIBRARY_PATH instead of using patchelf in order to propagate the libs
|
||||
# to both Airshipper itself as well as the binaries downloaded by Airshipper.
|
||||
wrapProgram "$out/bin/airshipper" \
|
||||
--set VELOREN_PATCHER "${patch}" \
|
||||
--prefix LD_LIBRARY_PATH : "${libPath}"
|
||||
'';
|
||||
passthru = {
|
||||
inherit patchVoxygen patchServer;
|
||||
runtimeLibs = [
|
||||
udev
|
||||
alsa-lib
|
||||
(lib.getLib stdenv.cc.cc)
|
||||
libxkbcommon
|
||||
libxcb
|
||||
libx11
|
||||
libxcursor
|
||||
libxrandr
|
||||
libxi
|
||||
vulkan-loader
|
||||
libGL
|
||||
wayland
|
||||
wayland-protocols
|
||||
];
|
||||
};
|
||||
|
||||
postFixup = ''
|
||||
${patchelf}/bin/patchelf \
|
||||
--set-rpath ${
|
||||
lib.makeLibraryPath (
|
||||
finalAttrs.buildInputs
|
||||
++ [
|
||||
(lib.getLib stdenv.cc.cc)
|
||||
stdenv.cc.libc
|
||||
]
|
||||
)
|
||||
} "$out/bin/airshipper"
|
||||
wrapProgram "$out/bin/airshipper" \
|
||||
--set VELOREN_VOXYGEN_PATCHER "${finalAttrs.passthru.patchVoxygen finalAttrs.passthru.runtimeLibs}" \
|
||||
--set VELOREN_SERVER_CLI_PATCHER "${finalAttrs.passthru.patchServer}"
|
||||
'';
|
||||
|
||||
doCheck = false;
|
||||
cargoBuildFlags = [
|
||||
@@ -136,4 +133,4 @@ rustPlatform.buildRustPackage {
|
||||
license = lib.licenses.gpl3;
|
||||
maintainers = with lib.maintainers; [ yusdacra ];
|
||||
};
|
||||
}
|
||||
})
|
||||
|
||||
@@ -5,14 +5,14 @@
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
version = "2.2.2";
|
||||
version = "2.3.0";
|
||||
pname = "antidote";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mattmc3";
|
||||
repo = "antidote";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-K2IzFUkiuAdEsm7p0u9HVFB5DTOy3v4wSZk8io7i8dU=";
|
||||
hash = "sha256-qPkXbKm0EEivwtQyuVcKPfQYPAJ4MDY/9h3dMzUmDqI=";
|
||||
};
|
||||
|
||||
dontPatch = true;
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
{
|
||||
"version": "2.1.1",
|
||||
"version": "2.5.5",
|
||||
"vscodeVersion": "1.107.0",
|
||||
"sources": {
|
||||
"x86_64-linux": {
|
||||
"url": "https://edgedl.me.gvt1.com/edgedl/release2/j0qc3/antigravity/stable/2.1.1-6123990880747520/linux-x64/Antigravity%20IDE.tar.gz",
|
||||
"sha256": "5b2cebf7d33a68d003fd8f1fa988d1600905ace22504a085e5384214290878bd"
|
||||
"url": "https://edgedl.me.gvt1.com/edgedl/release2/j0qc3/antigravity/stable/2.5.5-4923483625488384/linux-x64/Antigravity%20IDE.tar.gz",
|
||||
"sha256": "0c5233b297d2b3aebb61af49f8944012c2953d361a5ebb16978490636917f831"
|
||||
},
|
||||
"aarch64-linux": {
|
||||
"url": "https://edgedl.me.gvt1.com/edgedl/release2/j0qc3/antigravity/stable/2.1.1-6123990880747520/linux-arm/Antigravity%20IDE.tar.gz",
|
||||
"sha256": "c6b6fef97cfc078ae7f92d02f9483a12437b6602c7d322a7d445668c2f0c16a6"
|
||||
"url": "https://edgedl.me.gvt1.com/edgedl/release2/j0qc3/antigravity/stable/2.5.5-4923483625488384/linux-arm/Antigravity%20IDE.tar.gz",
|
||||
"sha256": "88c167108980c33a223a8d7f0aa6aaf4dec61f0cc3950235a2698e9ffc38a49e"
|
||||
},
|
||||
"aarch64-darwin": {
|
||||
"url": "https://edgedl.me.gvt1.com/edgedl/release2/j0qc3/antigravity/stable/2.1.1-6123990880747520/darwin-arm/Antigravity%20IDE.zip",
|
||||
"sha256": "3491f5bc9faad111e5be6d9126bf5d566a0c591bd159a61ef0dcdd30c58672aa"
|
||||
"url": "https://edgedl.me.gvt1.com/edgedl/release2/j0qc3/antigravity/stable/2.5.5-4923483625488384/darwin-arm/Antigravity%20IDE.zip",
|
||||
"sha256": "33338ced839cb00fcc779ab96e4cdc79e06c894bc21cdb02249715286700c648"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,13 +11,13 @@
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "ast-grep";
|
||||
version = "0.45.0";
|
||||
version = "0.45.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ast-grep";
|
||||
repo = "ast-grep";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-njMkegbthIvJAI0tlSVg1G+/wRwSqWwXu4ZjM216Lys=";
|
||||
hash = "sha256-YNn49WuILwe3gyvHSKh3dH5BZKhtR+YeSCCGDu0qulg=";
|
||||
};
|
||||
|
||||
# error: linker `aarch64-linux-gnu-gcc` not found
|
||||
@@ -25,7 +25,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
|
||||
rm .cargo/config.toml
|
||||
'';
|
||||
|
||||
cargoHash = "sha256-1i5NK6B1bT5UAac5VPVZcReFI24r6wboy+d1eSdbfXU=";
|
||||
cargoHash = "sha256-6ZqV9SJes6++TJxcj/Dmi8DyaoTa164CKi4C/EyfnuQ=";
|
||||
|
||||
nativeBuildInputs = [ installShellFiles ];
|
||||
|
||||
|
||||
@@ -12,13 +12,13 @@
|
||||
}:
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "ausweisapp";
|
||||
version = "2.5.4";
|
||||
version = "2.5.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Governikus";
|
||||
repo = "AusweisApp";
|
||||
rev = finalAttrs.version;
|
||||
hash = "sha256-y9F/dQZHbUFDRZDpdGtNCjTIypS2l4XJLbUZHjliEDA=";
|
||||
hash = "sha256-rxlJ2+IG0XmZ2Oyfk5n1TGDF76KhLahe8KvJ70QX5tQ=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
||||
@@ -10,17 +10,17 @@
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "aver";
|
||||
version = "0.27.1";
|
||||
version = "0.28.1";
|
||||
__structuredAttrs = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jasisz";
|
||||
repo = "aver";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-pP9+PBScmufBfSpaLPyG1Wn8W4U5TYm707EK3VmCPsA=";
|
||||
hash = "sha256-xHaxfQCNLAeuvuiYVzYBjNu8f7KKojVjcnhZfpvdHTk=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-/xfEl8VN9gY8L4e5UKRT+WuLb16vRH6hQdQ47y4/3uU=";
|
||||
cargoHash = "sha256-ls1whoSoEcIBWzMuEI4vnzc896oDbPjbkwLaHJpYDvQ=";
|
||||
|
||||
cargoBuildFlags = [
|
||||
"--workspace"
|
||||
|
||||
@@ -68,6 +68,20 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
]
|
||||
);
|
||||
|
||||
# AWS-LC's generated *-targets.cmake files hardcode _IMPORT_PREFIX to $out
|
||||
# and set INTERFACE_INCLUDE_DIRECTORIES to "$out/include", but headers live
|
||||
# in $dev/include under multi-output splitting. Clear the broken claim so
|
||||
# consumers fall back to stdenv's normal include-path propagation via
|
||||
# buildInputs (which correctly resolves to $dev/include).
|
||||
postFixup = ''
|
||||
for f in $out/lib/{crypto,ssl}/cmake/*/*-targets.cmake; do
|
||||
substituteInPlace "$f" \
|
||||
--replace-fail \
|
||||
'INTERFACE_INCLUDE_DIRECTORIES "\$<\$<BOOL:1>:>;''${_IMPORT_PREFIX}/include"' \
|
||||
'INTERFACE_INCLUDE_DIRECTORIES ""'
|
||||
done
|
||||
'';
|
||||
|
||||
__darwinAllowLocalNetworking = true;
|
||||
|
||||
passthru = {
|
||||
|
||||
@@ -11,14 +11,14 @@
|
||||
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
pname = "aws-sam-cli";
|
||||
version = "1.163.0";
|
||||
version = "1.165.0";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "aws";
|
||||
repo = "aws-sam-cli";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-ydyuQHdLWet5+HkPCmHiKqTFY8+nVOXTlPFfOckzOXE=";
|
||||
hash = "sha256-tEsKNhEAMQCsFemsb2Epnc6pVd2kDvOEceMhldqNZn4=";
|
||||
};
|
||||
|
||||
build-system = with python3.pkgs; [ setuptools ];
|
||||
|
||||
46
pkgs/by-name/ba/bashd/package.nix
Normal file
46
pkgs/by-name/ba/bashd/package.nix
Normal file
@@ -0,0 +1,46 @@
|
||||
{
|
||||
lib,
|
||||
buildGoModule,
|
||||
fetchFromGitHub,
|
||||
makeBinaryWrapper,
|
||||
nix-update-script,
|
||||
shellcheck,
|
||||
versionCheckHook,
|
||||
}:
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "bashd";
|
||||
version = "0.2.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "matkrin";
|
||||
repo = "bashd";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-KTfoOEdgPWVe/1HQnBsTOzhZDK1DP5NRiJewTh+DGmg=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-B4szacVckxUeF0xndHX3T6FnGTF0BkGo9k8uZUWURVM=";
|
||||
|
||||
nativeBuildInputs = [ makeBinaryWrapper ];
|
||||
nativeInstallCheckInputs = [ versionCheckHook ];
|
||||
doInstallCheck = true;
|
||||
|
||||
ldflags = [
|
||||
"-X main.VERSION=${finalAttrs.version}"
|
||||
];
|
||||
|
||||
preFixup = ''
|
||||
wrapProgram "$out/bin/bashd" --prefix PATH : ${lib.makeBinPath [ shellcheck ]}
|
||||
'';
|
||||
|
||||
passthru.updateScript = nix-update-script { };
|
||||
__structuredAttrs = true;
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/matkrin/bashd";
|
||||
description = "Bash language server";
|
||||
license = lib.licenses.bsd3;
|
||||
maintainers = with lib.maintainers; [ supermarin ];
|
||||
mainProgram = "bashd";
|
||||
};
|
||||
})
|
||||
@@ -19,13 +19,13 @@ in
|
||||
llvmPackages.stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
pname = "c3c${optionalString debug "-debug"}";
|
||||
version = "0.8.2";
|
||||
version = "0.8.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "c3lang";
|
||||
repo = "c3c";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-6XUMlF9SRQ9aqVRl5BQdELVsj/DyXhCnH85QrbK8Xxo=";
|
||||
hash = "sha256-zOKAXagdhtz8GZn5ss4v0kB8mdPbs6ki3JyL6vRGavE=";
|
||||
};
|
||||
|
||||
cmakeBuildType = if debug then "Debug" else "Release";
|
||||
|
||||
@@ -68,7 +68,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
(lib.cmakeBool "FETCHCONTENT_FULLY_DISCONNECTED" true)
|
||||
(lib.cmakeBool "PACKAGING_MODE" true)
|
||||
|
||||
(lib.cmakeBool "BUILD_TESTS" finalAttrs.doCheck)
|
||||
(lib.cmakeBool "BUILD_TESTS" finalAttrs.finalPackage.doCheck)
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -20,9 +20,10 @@ _ = gettext.translation(
|
||||
# The following strings contain pieces of a nix-configuration file.
|
||||
# They are adapted from the default config generated from the nixos-generate-config command.
|
||||
|
||||
cfghead = """# Edit this configuration file to define what should be installed on
|
||||
# your system. Help is available in the configuration.nix(5) man page
|
||||
# and in the NixOS manual (accessible by running ‘nixos-help’).
|
||||
cfghead = """\
|
||||
# Edit this configuration file to define what should be installed on
|
||||
# your system. Help is available in the configuration.nix(5) man page, on
|
||||
# https://search.nixos.org/options and in the NixOS manual (`nixos-help`).
|
||||
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
@@ -33,20 +34,23 @@ cfghead = """# Edit this configuration file to define what should be installed o
|
||||
];
|
||||
|
||||
"""
|
||||
cfgbootefi = """ # Bootloader.
|
||||
cfgbootefi = """\
|
||||
# Use the systemd-boot EFI boot loader.
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
|
||||
"""
|
||||
|
||||
cfgbootbios = """ # Bootloader.
|
||||
cfgbootbios = """\
|
||||
# Use the GRUB 2 boot loader.
|
||||
boot.loader.grub.enable = true;
|
||||
boot.loader.grub.device = "@@bootdev@@";
|
||||
boot.loader.grub.useOSProber = true;
|
||||
|
||||
"""
|
||||
|
||||
cfgbootbiosbtrfs = """ # Bootloader.
|
||||
cfgbootbiosbtrfs = """\
|
||||
# Use the GRUB 2 boot loader.
|
||||
boot.loader.grub.enable = true;
|
||||
boot.loader.grub.device = "@@bootdev@@";
|
||||
boot.loader.grub.useOSProber = true;
|
||||
@@ -55,12 +59,14 @@ cfgbootbiosbtrfs = """ # Bootloader.
|
||||
|
||||
"""
|
||||
|
||||
cfgbootnone = """ # Disable bootloader.
|
||||
cfgbootnone = """\
|
||||
# Disable bootloader.
|
||||
boot.loader.grub.enable = false;
|
||||
|
||||
"""
|
||||
|
||||
cfgbootgrubcrypt = """ # Setup keyfile
|
||||
cfgbootgrubcrypt = """\
|
||||
# Setup keyfile
|
||||
boot.initrd.secrets = {
|
||||
"/boot/crypto_keyfile.bin" = null;
|
||||
};
|
||||
@@ -69,7 +75,8 @@ cfgbootgrubcrypt = """ # Setup keyfile
|
||||
|
||||
"""
|
||||
|
||||
cfgnetwork = """ networking.hostName = "@@hostname@@"; # Define your hostname.
|
||||
cfgnetwork = """\
|
||||
networking.hostName = "@@hostname@@"; # Define your hostname.
|
||||
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
|
||||
|
||||
# Configure network proxy if necessary
|
||||
@@ -78,32 +85,38 @@ cfgnetwork = """ networking.hostName = "@@hostname@@"; # Define your hostname.
|
||||
|
||||
"""
|
||||
|
||||
cfgnetworkmanager = """ # Enable networking
|
||||
cfgnetworkmanager = """\
|
||||
# Enable networking
|
||||
networking.networkmanager.enable = true;
|
||||
|
||||
"""
|
||||
|
||||
cfgconnman = """ # Enable networking
|
||||
cfgconnman = """\
|
||||
# Enable networking
|
||||
services.connman.enable = true;
|
||||
|
||||
"""
|
||||
|
||||
cfgnmapplet = """ # Enable network manager applet
|
||||
cfgnmapplet = """\
|
||||
# Enable network manager applet
|
||||
programs.nm-applet.enable = true;
|
||||
|
||||
"""
|
||||
|
||||
cfgtime = """ # Set your time zone.
|
||||
cfgtime = """\
|
||||
# Set your time zone.
|
||||
time.timeZone = "@@timezone@@";
|
||||
|
||||
"""
|
||||
|
||||
cfglocale = """ # Select internationalisation properties.
|
||||
cfglocale = """\
|
||||
# Select internationalisation properties.
|
||||
i18n.defaultLocale = "@@LANG@@";
|
||||
|
||||
"""
|
||||
|
||||
cfglocaleextra = """ i18n.extraLocaleSettings = {
|
||||
cfglocaleextra = """\
|
||||
i18n.extraLocaleSettings = {
|
||||
LC_ADDRESS = "@@LC_ADDRESS@@";
|
||||
LC_IDENTIFICATION = "@@LC_IDENTIFICATION@@";
|
||||
LC_MEASUREMENT = "@@LC_MEASUREMENT@@";
|
||||
@@ -117,16 +130,15 @@ cfglocaleextra = """ i18n.extraLocaleSettings = {
|
||||
|
||||
"""
|
||||
|
||||
cfggnome = """ # Enable the X11 windowing system.
|
||||
services.xserver.enable = true;
|
||||
|
||||
cfggnome = """\
|
||||
# Enable the GNOME Desktop Environment.
|
||||
services.xserver.displayManager.gdm.enable = true;
|
||||
services.xserver.desktopManager.gnome.enable = true;
|
||||
services.displayManager.gdm.enable = true;
|
||||
services.desktopManager.gnome.enable = true;
|
||||
|
||||
"""
|
||||
|
||||
cfgplasma6 = """ # Enable the X11 windowing system.
|
||||
cfgplasma6 = """\
|
||||
# Enable the X11 windowing system.
|
||||
# You can disable this if you're only using the Wayland session.
|
||||
services.xserver.enable = true;
|
||||
|
||||
@@ -136,7 +148,8 @@ cfgplasma6 = """ # Enable the X11 windowing system.
|
||||
|
||||
"""
|
||||
|
||||
cfgxfce = """ # Enable the X11 windowing system.
|
||||
cfgxfce = """\
|
||||
# Enable the X11 windowing system.
|
||||
services.xserver.enable = true;
|
||||
|
||||
# Enable the XFCE Desktop Environment.
|
||||
@@ -145,7 +158,8 @@ cfgxfce = """ # Enable the X11 windowing system.
|
||||
|
||||
"""
|
||||
|
||||
cfgpantheon = """ # Enable the X11 windowing system.
|
||||
cfgpantheon = """\
|
||||
# Enable the X11 windowing system.
|
||||
services.xserver.enable = true;
|
||||
|
||||
# Enable the Pantheon Desktop Environment.
|
||||
@@ -154,7 +168,8 @@ cfgpantheon = """ # Enable the X11 windowing system.
|
||||
|
||||
"""
|
||||
|
||||
cfgcinnamon = """ # Enable the X11 windowing system.
|
||||
cfgcinnamon = """\
|
||||
# Enable the X11 windowing system.
|
||||
services.xserver.enable = true;
|
||||
|
||||
# Enable the Cinnamon Desktop Environment.
|
||||
@@ -163,7 +178,8 @@ cfgcinnamon = """ # Enable the X11 windowing system.
|
||||
|
||||
"""
|
||||
|
||||
cfgmate = """ # Enable the X11 windowing system.
|
||||
cfgmate = """\
|
||||
# Enable the X11 windowing system.
|
||||
services.xserver.enable = true;
|
||||
|
||||
# Enable the MATE Desktop Environment.
|
||||
@@ -172,7 +188,8 @@ cfgmate = """ # Enable the X11 windowing system.
|
||||
|
||||
"""
|
||||
|
||||
cfgenlightenment = """ # Enable the X11 windowing system.
|
||||
cfgenlightenment = """\
|
||||
# Enable the X11 windowing system.
|
||||
services.xserver.enable = true;
|
||||
|
||||
# Enable the Enlightenment Desktop Environment.
|
||||
@@ -184,7 +201,8 @@ cfgenlightenment = """ # Enable the X11 windowing system.
|
||||
|
||||
"""
|
||||
|
||||
cfglxqt = """ # Enable the X11 windowing system.
|
||||
cfglxqt = """\
|
||||
# Enable the X11 windowing system.
|
||||
services.xserver.enable = true;
|
||||
|
||||
# Enable the LXQT Desktop Environment.
|
||||
@@ -193,7 +211,8 @@ cfglxqt = """ # Enable the X11 windowing system.
|
||||
|
||||
"""
|
||||
|
||||
cfglumina = """ # Enable the X11 windowing system.
|
||||
cfglumina = """\
|
||||
# Enable the X11 windowing system.
|
||||
services.xserver.enable = true;
|
||||
|
||||
# Enable the Lumina Desktop Environment.
|
||||
@@ -202,7 +221,8 @@ cfglumina = """ # Enable the X11 windowing system.
|
||||
|
||||
"""
|
||||
|
||||
cfgbudgie = """ # Enable the X11 windowing system.
|
||||
cfgbudgie = """\
|
||||
# Enable the X11 windowing system.
|
||||
services.xserver.enable = true;
|
||||
|
||||
# Enable the Budgie Desktop environment.
|
||||
@@ -211,19 +231,22 @@ cfgbudgie = """ # Enable the X11 windowing system.
|
||||
|
||||
"""
|
||||
|
||||
cfgkeymap = """ # Configure keymap in X11
|
||||
cfgkeymap = """\
|
||||
# Configure keymap in X11
|
||||
services.xserver.xkb = {
|
||||
layout = "@@kblayout@@";
|
||||
variant = "@@kbvariant@@";
|
||||
};
|
||||
|
||||
"""
|
||||
cfgconsole = """ # Configure console keymap
|
||||
cfgconsole = """\
|
||||
# Configure console keymap
|
||||
console.keyMap = "@@vconsole@@";
|
||||
|
||||
"""
|
||||
|
||||
cfgmisc = """ # Enable CUPS to print documents.
|
||||
cfgmisc = """\
|
||||
# Enable CUPS to print documents.
|
||||
services.printing.enable = true;
|
||||
|
||||
# Enable sound with pipewire.
|
||||
@@ -237,16 +260,16 @@ cfgmisc = """ # Enable CUPS to print documents.
|
||||
# If you want to use JACK applications, uncomment this
|
||||
#jack.enable = true;
|
||||
|
||||
# use the example session manager (no others are packaged yet so this is enabled by default,
|
||||
# no need to redefine it in your config for now)
|
||||
#media-session.enable = true;
|
||||
# Use the WirePlumber session manager
|
||||
#wireplumber.enable = true;
|
||||
};
|
||||
|
||||
# Enable touchpad support (enabled default in most desktopManager).
|
||||
# services.xserver.libinput.enable = true;
|
||||
# services.libinput.enable = true;
|
||||
|
||||
"""
|
||||
cfgusers = """ # Define a user account. Don't forget to set a password with ‘passwd’.
|
||||
cfgusers = """\
|
||||
# Define a user account. Don't forget to set a password with ‘passwd’.
|
||||
users.users."@@username@@" = {
|
||||
isNormalUser = true;
|
||||
description = "@@fullname@@";
|
||||
@@ -256,43 +279,43 @@ cfgusers = """ # Define a user account. Don't forget to set a password with ‘
|
||||
|
||||
"""
|
||||
|
||||
cfgfirefox = """ # Install firefox.
|
||||
cfgfirefox = """\
|
||||
# Install firefox.
|
||||
programs.firefox.enable = true;
|
||||
|
||||
"""
|
||||
|
||||
cfgautologin = """ # Enable automatic login for the user.
|
||||
cfgautologin = """\
|
||||
# Enable automatic login for the user.
|
||||
services.displayManager.autoLogin.enable = true;
|
||||
services.displayManager.autoLogin.user = "@@username@@";
|
||||
|
||||
"""
|
||||
|
||||
cfgautologingdm = """ # Workaround for GNOME autologin: https://github.com/NixOS/nixpkgs/issues/103746#issuecomment-945091229
|
||||
systemd.services."getty@tty1".enable = false;
|
||||
systemd.services."autovt@tty1".enable = false;
|
||||
|
||||
"""
|
||||
|
||||
cfgautologintty = """ # Enable automatic login for the user.
|
||||
cfgautologintty = """\
|
||||
# Enable automatic login for the user.
|
||||
services.getty.autologinUser = "@@username@@";
|
||||
|
||||
"""
|
||||
|
||||
cfgunfree = """ # Allow unfree packages
|
||||
cfgunfree = """\
|
||||
# Allow unfree packages
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
"""
|
||||
|
||||
cfgpkgs = """ # List packages installed in system profile. To search, run:
|
||||
# $ nix search wget
|
||||
environment.systemPackages = with pkgs; [
|
||||
# vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
|
||||
# wget
|
||||
];
|
||||
cfgpkgs = """\
|
||||
# List packages installed in system profile.
|
||||
# You can use https://search.nixos.org/ to find more packages (and options).
|
||||
# environment.systemPackages = with pkgs; [
|
||||
# vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
|
||||
# wget
|
||||
# ];
|
||||
|
||||
"""
|
||||
|
||||
cfgtail = """ # Some programs need SUID wrappers, can be configured further or are
|
||||
cfgtail = """\
|
||||
# Some programs need SUID wrappers, can be configured further or are
|
||||
# started in user sessions.
|
||||
# programs.mtr.enable = true;
|
||||
# programs.gnupg.agent = {
|
||||
@@ -311,18 +334,35 @@ cfgtail = """ # Some programs need SUID wrappers, can be configured further or
|
||||
# Or disable the firewall altogether.
|
||||
# networking.firewall.enable = false;
|
||||
|
||||
# This value determines the NixOS release from which the default
|
||||
# settings for stateful data, like file locations and database versions
|
||||
# on your system were taken. It‘s perfectly fine and recommended to leave
|
||||
# this value at the release version of the first install of this system.
|
||||
# Before changing this value read the documentation for this option
|
||||
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
|
||||
# Copy the NixOS configuration file and link it from the resulting system
|
||||
# (/run/current-system/configuration.nix). This is useful in case you
|
||||
# accidentally delete configuration.nix.
|
||||
# system.copySystemConfiguration = true;
|
||||
|
||||
# This option defines the first version of NixOS you have installed on this particular machine,
|
||||
# and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions.
|
||||
#
|
||||
# Most users should NEVER change this value after the initial install, for any reason,
|
||||
# even if you've upgraded your system to a new NixOS release.
|
||||
#
|
||||
# This value does NOT affect the Nixpkgs version your packages and OS are pulled from,
|
||||
# so changing it will NOT upgrade your system - see https://nixos.org/manual/nixos/stable/#sec-upgrading for how
|
||||
# to actually do that.
|
||||
#
|
||||
# This value being lower than the current NixOS release does NOT mean your system is
|
||||
# out of date, out of support, or vulnerable.
|
||||
#
|
||||
# Do NOT change this value unless you have manually inspected all the changes it would make to your configuration,
|
||||
# and migrated your data accordingly.
|
||||
#
|
||||
# For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion .
|
||||
system.stateVersion = "@@nixosversion@@"; # Did you read the comment?
|
||||
|
||||
}
|
||||
"""
|
||||
|
||||
cfglatestkernel = """ # Use latest kernel.
|
||||
cfglatestkernel = """\
|
||||
# Use latest kernel.
|
||||
boot.kernelPackages = pkgs.linuxPackages_latest;
|
||||
|
||||
"""
|
||||
@@ -880,8 +920,6 @@ def run():
|
||||
and gs.value("packagechooser_packagechooser") != ""
|
||||
):
|
||||
cfg += cfgautologin
|
||||
if gs.value("packagechooser_packagechooser") == "gnome":
|
||||
cfg += cfgautologingdm
|
||||
elif gs.value("autoLoginUser") is not None:
|
||||
cfg += cfgautologintty
|
||||
|
||||
|
||||
@@ -6,16 +6,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "cargo-xwin";
|
||||
version = "0.23.0";
|
||||
version = "0.23.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "rust-cross";
|
||||
repo = "cargo-xwin";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-pWaJKk4XgBeY4llRTHvuMg0mAfEV4GFpeWGaM8eYsN4=";
|
||||
hash = "sha256-JQYAYCCN/dWvX1oqFX/MjvtPuCA3k8WbHmmGBxG9ylA=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-iO0uAYdi8Vy9gi7lHsGRmhDsVNQCqo4E/nbTfI32jDs=";
|
||||
cargoHash = "sha256-FRK4bCTPAPWGov8vEFr9XdqCNoeXeyFdyiWV5x+4WYY=";
|
||||
|
||||
meta = {
|
||||
description = "Cross compile Cargo project to Windows MSVC target with ease";
|
||||
|
||||
@@ -7,14 +7,14 @@
|
||||
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
pname = "cewler";
|
||||
version = "1.3.1";
|
||||
version = "1.4.1";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "roys";
|
||||
repo = "cewler";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-Od9O71122jVwqZ5ntoBQQtyNQjt2RRbZT8DzWFPUN84=";
|
||||
hash = "sha256-9P8vFacbw0pgthYqJY/aPuV39VQuMAA8o7yJ8HkD7RQ=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = with python3.pkgs; [
|
||||
|
||||
@@ -1,39 +1,43 @@
|
||||
{
|
||||
lib,
|
||||
rustPlatform,
|
||||
fetchFromGitHub,
|
||||
rustPlatform,
|
||||
versionCheckHook,
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "chainsaw";
|
||||
version = "2.16.2";
|
||||
version = "2.16.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "WithSecureLabs";
|
||||
repo = "chainsaw";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-EKL2MTo5qirpY4TCWwBptpRWJRd6Yp/dLz/5sIsdsbg=";
|
||||
hash = "sha256-dG3WxAWnMBMlV3HxI9E7EDvZgK+qYZwRiZVNRf7jekY=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-bbgRqp3bNw2U69aVqwvJNWOKgW0YhR8SlqzH9jdrHZU=";
|
||||
cargoHash = "sha256-t9Adw4W7m1jWsLhwEtIgJjAWDxRkpOzssKe98InOExQ=";
|
||||
|
||||
ldflags = [
|
||||
"-w"
|
||||
"-s"
|
||||
];
|
||||
ldflags = [ "-s" ];
|
||||
|
||||
nativeBuildInputs = [ rustPlatform.bindgenHook ];
|
||||
|
||||
nativeInstallCheckInputs = [ versionCheckHook ];
|
||||
|
||||
checkFlags = [
|
||||
# failed
|
||||
# Tests are failing
|
||||
"--skip=analyse_srum_database_json"
|
||||
"--skip=search_jq_simple_string"
|
||||
"--skip=search_q_jsonl_simple_string"
|
||||
"--skip=search_q_simple_string"
|
||||
];
|
||||
|
||||
doInstallCheck = true;
|
||||
|
||||
meta = {
|
||||
description = "Rapidly Search and Hunt through Windows Forensic Artefacts";
|
||||
homepage = "https://github.com/WithSecureLabs/chainsaw";
|
||||
changelog = "https://github.com/WithSecureLabs/chainsaw/releases/tag/v${finalAttrs.version}";
|
||||
changelog = "https://github.com/WithSecureLabs/chainsaw/releases/tag/${finalAttrs.src.tag}";
|
||||
license = lib.licenses.gpl3Only;
|
||||
maintainers = with lib.maintainers; [ fab ];
|
||||
mainProgram = "chainsaw";
|
||||
|
||||
@@ -2,6 +2,9 @@
|
||||
lib,
|
||||
buildGoModule,
|
||||
fetchFromGitHub,
|
||||
getent,
|
||||
versionCheckHook,
|
||||
writableTmpDirAsHomeHook,
|
||||
}:
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
@@ -21,12 +24,23 @@ buildGoModule (finalAttrs: {
|
||||
|
||||
subPackages = [ "apps/cnspec" ];
|
||||
|
||||
nativeInstallCheckInputs = [
|
||||
getent
|
||||
writableTmpDirAsHomeHook
|
||||
versionCheckHook
|
||||
];
|
||||
|
||||
ldflags = [
|
||||
"-s"
|
||||
"-w"
|
||||
"-X=go.mondoo.com/cnspec.Version=${finalAttrs.version}"
|
||||
"-X=go.mondoo.com/cnspec/v${(lib.versions.major finalAttrs.version)}.Version=${finalAttrs.version}"
|
||||
];
|
||||
|
||||
doInstallCheck = true;
|
||||
|
||||
versionCheckKeepEnvironment = "HOME PATH";
|
||||
|
||||
versionCheckProgramArg = [ "version" ];
|
||||
|
||||
meta = {
|
||||
description = "Open source, cloud-native security and policy project";
|
||||
homepage = "https://github.com/mondoohq/cnspec";
|
||||
@@ -36,5 +50,6 @@ buildGoModule (finalAttrs: {
|
||||
fab
|
||||
mariuskimmina
|
||||
];
|
||||
mainProgram = "cnspec";
|
||||
};
|
||||
})
|
||||
|
||||
@@ -49,7 +49,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
];
|
||||
|
||||
cmakeFlags = [
|
||||
(lib.cmakeBool "OPT_COMPILE_TESTS" finalAttrs.doCheck)
|
||||
(lib.cmakeBool "OPT_COMPILE_TESTS" finalAttrs.finalPackage.doCheck)
|
||||
];
|
||||
|
||||
doCheck = true;
|
||||
|
||||
@@ -74,7 +74,7 @@ let
|
||||
in
|
||||
stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
pname = "comfyui";
|
||||
version = "0.32.0";
|
||||
version = "0.33.1";
|
||||
|
||||
strictDeps = true;
|
||||
__structuredAttrs = true;
|
||||
@@ -83,7 +83,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
owner = "Comfy-Org";
|
||||
repo = "ComfyUI";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-LlJHF/wEL8HhJAKw2DaxsoMltLpV3DtFWDlTW3AZZuI=";
|
||||
hash = "sha256-r6amApYXBjfE8+UvhiJ/7VcUibd4kd5i+JLPXxo8H9w=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeBinaryWrapper ];
|
||||
|
||||
@@ -12,13 +12,13 @@
|
||||
stdenv,
|
||||
}:
|
||||
let
|
||||
version = "7.2.1";
|
||||
version = "7.3.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Athou";
|
||||
repo = "commafeed";
|
||||
tag = version;
|
||||
hash = "sha256-yZ73RX9yqZ1RPBglqW33F5pfWzduMd1O7P5FWhCoY6I=";
|
||||
hash = "sha256-VCN8NBVGQl7/D3fESxiw3ipUoK3qBM0SSnEYBB0E+64=";
|
||||
};
|
||||
|
||||
frontend = buildNpmPackage {
|
||||
@@ -28,7 +28,7 @@ let
|
||||
|
||||
sourceRoot = "${src.name}/commafeed-client";
|
||||
|
||||
npmDepsHash = "sha256-rx7tAk9X6X0hpGs1arsLl5ItNUOnwud+7EgNMp7LwtE=";
|
||||
npmDepsHash = "sha256-usdJEjW/Oz993Ik8JZnEQ08ArqmLx/3hSdhlUJgCrig=";
|
||||
|
||||
nativeBuildInputs = [ biome ];
|
||||
|
||||
@@ -54,7 +54,7 @@ maven.buildMavenPackage {
|
||||
|
||||
pname = "commafeed";
|
||||
|
||||
mvnHash = "sha256-2s95x2wVe+dsxpohu2OaK7y+o3Om9C/IBuLFEGM3TfQ=";
|
||||
mvnHash = "sha256-Gi+KMrdSXlnI34wvAYnJffVCa3WUYkPEFIv382+mwj4=";
|
||||
mvnJdk = jdk25;
|
||||
|
||||
mvnParameters = lib.escapeShellArgs [
|
||||
|
||||
@@ -31,7 +31,10 @@ buildGoModule (finalAttrs: {
|
||||
description = "Prometheus exporter based on eBPF";
|
||||
homepage = "https://github.com/coroot/coroot-node-agent";
|
||||
license = lib.licenses.asl20;
|
||||
maintainers = with lib.maintainers; [ errnoh ];
|
||||
maintainers = with lib.maintainers; [
|
||||
errnoh
|
||||
allsimon
|
||||
];
|
||||
mainProgram = "coroot-node-agent";
|
||||
};
|
||||
})
|
||||
|
||||
@@ -1,22 +0,0 @@
|
||||
diff --git a/meson.build b/meson.build
|
||||
index e9bea380..53e4373e 100644
|
||||
--- a/meson.build
|
||||
+++ b/meson.build
|
||||
@@ -206,10 +206,16 @@ if asapodep.found()
|
||||
indexamajig_sources += ['src/im-asapo.c']
|
||||
endif
|
||||
|
||||
+if build_machine.system() == 'darwin' or build_machine.system() == 'freebsd' or not cc.links('#include <argp.h>\nstatic error_t parse_opt (int key, char *arg, struct argp_state *state) { argp_usage(state); return 0; }; void main() {}')
|
||||
+ argpdep = cc.find_library('argp')
|
||||
+else
|
||||
+ argpdep = dependency('', required : false)
|
||||
+endif
|
||||
+
|
||||
indexamajig = executable('indexamajig', indexamajig_sources,
|
||||
dependencies: [mdep, rtdep, libcrystfeldep, gsldep,
|
||||
pthreaddep, zmqdep, asapodep, asapoproddep,
|
||||
- fftwdep, cjsondep],
|
||||
+ fftwdep, cjsondep, argpdep],
|
||||
install: true,
|
||||
install_rpath: crystfel_rpath)
|
||||
|
||||
@@ -122,10 +122,10 @@ let
|
||||
|
||||
xgandalf = stdenv.mkDerivation rec {
|
||||
pname = "xgandalf";
|
||||
version = "c6c5003ff1086e8c0fb5313660b4f02f3a3aab7b";
|
||||
version = "8a63600ec778b155031adc3c151424aaced6a0cc";
|
||||
src = fetchurl {
|
||||
url = "https://gitlab.desy.de/thomas.white/xgandalf/-/archive/${version}/xgandalf-${version}.tar.gz";
|
||||
hash = "sha256-/uZlBwAINSoYqgLQFTMz8rS1Rpadu79JkO6Bu/+Nx9E=";
|
||||
hash = "sha256-UhFbpv+4qMwxEQIJpVpMzSg46P0vm0dkEyJDzxVu6XY=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
@@ -138,10 +138,10 @@ let
|
||||
|
||||
pinkIndexer = stdenv.mkDerivation rec {
|
||||
pname = "pinkindexer";
|
||||
version = "15caa21191e27e989b750b29566e4379bc5cd21a";
|
||||
version = "85f3883f8c1fe98a03e5f3d371f2da4fee97894e";
|
||||
src = fetchurl {
|
||||
url = "https://gitlab.desy.de/thomas.white/pinkindexer/-/archive/${version}/pinkindexer-${version}.tar.gz";
|
||||
hash = "sha256-v/SCJiHAV05Lc905y/dE8uBXlW+lLX9wau4XORYdbQg=";
|
||||
hash = "sha256-W4COYdeESP0S2KhB2UdaJSbxNiFm5yyapKkmICDtP0A=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
@@ -154,10 +154,10 @@ let
|
||||
|
||||
fdip = stdenv.mkDerivation rec {
|
||||
pname = "fdip";
|
||||
version = "5628fedddd79323b4b26df9b85e9543d83286d4c";
|
||||
version = "631792e90ed2c3e226dce77bf97917305293ac66";
|
||||
src = fetchurl {
|
||||
url = "https://gitlab.desy.de/thomas.white/fdip/-/archive/${version}/fdip-${version}.tar.gz";
|
||||
hash = "sha256-EaihnW7p//ecgMn+KKlfmBeXrnAqs+HdhN+ovuSrtiQ=";
|
||||
hash = "sha256-nnvOPl35NgtJ13fgWWAuVhtWT/JOk2DyYmBgI0ojZ2o=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
@@ -221,10 +221,10 @@ let
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "crystfel";
|
||||
version = "0.12.0";
|
||||
version = "0.13.0";
|
||||
src = fetchurl {
|
||||
url = "https://www.desy.de/~twhite/crystfel/crystfel-${version}.tar.gz";
|
||||
sha256 = "sha256-H/caXhsIdgsiat3UTi1QMF9J22dtyEB6YEIn9f8wWB4=";
|
||||
sha256 = "sha256-6Fz7W8kRKlaTmnL+21t20UgkTjr3oC08IOzAGOseaQU=";
|
||||
};
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
@@ -261,12 +261,6 @@ stdenv.mkDerivation rec {
|
||||
]
|
||||
++ lib.optionals withBitshuffle [ hdf5-external-filter-plugins ];
|
||||
|
||||
patches = [
|
||||
# on darwin at least, we need to link to a separate argp library;
|
||||
# this patch adds a test for this and the necessary linker options
|
||||
./link-to-argp-standalone-if-needed.patch
|
||||
];
|
||||
|
||||
# CrystFEL calls mosflm by searching PATH for it. We could've create a wrapper script that sets the PATH, but
|
||||
# we'd have to do that for every CrystFEL executable (indexamajig, crystfel, partialator). Better to just
|
||||
# hard-code mosflm's path once.
|
||||
|
||||
@@ -10,13 +10,13 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "doppler";
|
||||
version = "3.76.1";
|
||||
version = "3.76.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "dopplerhq";
|
||||
repo = "cli";
|
||||
rev = finalAttrs.version;
|
||||
hash = "sha256-8df60dWV/8ZezCAXVT7wmzCCB/TyljzAszv8sy7qRjU=";
|
||||
hash = "sha256-GkM4pSmMIjoyOMPmtb4GoSrZdz69kL1s1r+krRhedR8=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-rDpr4qWhMWXEhgZrmoW5tzPZif3KAv3gDtJNtXzbVq0=";
|
||||
|
||||
@@ -1,467 +0,0 @@
|
||||
From 82d4d8c458b9f18a14e83a3f5181ec8237c47790 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Wick <sebastian.wick@redhat.com>
|
||||
Date: Mon, 6 Jul 2026 17:24:50 +0200
|
||||
Subject: [PATCH 1/5] Revert "portal: Clear the environment via flatpak
|
||||
arguments"
|
||||
|
||||
This reverts commit a57f6bc3721059e48060e102de3367c6297e9e51.
|
||||
|
||||
The run-environ from the calling instance is a host-like environment
|
||||
(e.g. on NixOS it contains /nix/store paths). Passing it via --env
|
||||
injects it into the sandbox payload environment where those paths don't
|
||||
exist.
|
||||
|
||||
Revert the commit, so we pass run-environ as the envp for spawning
|
||||
flatpak run again to let it make host-level decisions (DISPLAY,
|
||||
FLATPAK_GL_DRIVERS, XDG_RUNTIME_DIR, etc.) without leaking into the
|
||||
sandbox.
|
||||
|
||||
It also passes --clear-env unconditionally, because we'd build up the
|
||||
environment, but the wrong one. We will implement --clear-env properly
|
||||
again in the next few commits.
|
||||
|
||||
Closes: #6717
|
||||
Fixes: a57f6bc3 ("portal: Clear the environment via flatpak arguments")
|
||||
---
|
||||
portal/flatpak-portal.c | 54 +++++++++++++++++++++--------------------
|
||||
1 file changed, 28 insertions(+), 26 deletions(-)
|
||||
|
||||
diff --git a/portal/flatpak-portal.c b/portal/flatpak-portal.c
|
||||
index f9304464a6..ddf4996e16 100644
|
||||
--- a/portal/flatpak-portal.c
|
||||
+++ b/portal/flatpak-portal.c
|
||||
@@ -64,6 +64,7 @@ G_DEFINE_AUTOPTR_CLEANUP_FUNC (PortalFlatpakUpdateMonitorSkeleton, g_object_unre
|
||||
/* Should be roughly 2 seconds */
|
||||
#define CHILD_STATUS_CHECK_ATTEMPTS 20
|
||||
|
||||
+static GStrv original_environ = NULL;
|
||||
static GHashTable *client_pid_data_hash = NULL;
|
||||
static GDBusConnection *session_bus = NULL;
|
||||
static GNetworkMonitor *network_monitor = NULL;
|
||||
@@ -907,22 +908,17 @@ handle_spawn (PortalFlatpak *object,
|
||||
return G_DBUS_METHOD_INVOCATION_HANDLED;
|
||||
}
|
||||
|
||||
- if ((flatpak = g_getenv ("FLATPAK_PORTAL_MOCK_FLATPAK")) != NULL)
|
||||
- g_ptr_array_add (flatpak_argv, g_strdup (flatpak));
|
||||
- else if ((flatpak = g_getenv ("FLATPAK")) != NULL)
|
||||
- g_ptr_array_add (flatpak_argv, g_strdup (flatpak));
|
||||
+ /* TODO: Ideally we should let `flatpak run` inherit the run environment
|
||||
+ * of the instance, in case e.g. a LD_LIBRARY_PATH is needed to be able
|
||||
+ * to run `flatpak run`, but tell it to start from a blank environment
|
||||
+ * when running the Flatpak app; but this isn't currently possible, so
|
||||
+ * for now we preserve existing behaviour. */
|
||||
+ if (arg_flags & FLATPAK_SPAWN_FLAGS_CLEAR_ENV)
|
||||
+ {
|
||||
+ char *empty[] = { NULL };
|
||||
+ env = g_strdupv (empty);
|
||||
+ }
|
||||
else
|
||||
- g_ptr_array_add (flatpak_argv, g_strdup (FLATPAK_BINDIR "/flatpak"));
|
||||
-
|
||||
- g_ptr_array_add (flatpak_argv, g_strdup ("run"));
|
||||
-
|
||||
- /* If we don't clear the env, the flatpak portal service environment would
|
||||
- * leak into the flatpak instance. By default we reuse the environment of
|
||||
- * the calling instance by passing it as arguments after the --clear-env.
|
||||
- */
|
||||
- g_ptr_array_add (flatpak_argv, g_strdup ("--clear-env"));
|
||||
-
|
||||
- if (!(arg_flags & FLATPAK_SPAWN_FLAGS_CLEAR_ENV))
|
||||
{
|
||||
static const char * const mock_run_environ[] = { "FOO=bar", NULL };
|
||||
|
||||
@@ -935,8 +931,8 @@ handle_spawn (PortalFlatpak *object,
|
||||
{
|
||||
if (g_error_matches (error, G_FILE_ERROR, G_FILE_ERROR_NOENT))
|
||||
{
|
||||
- g_warning ("Environment for \"flatpak run\" was not found, "
|
||||
- "falling back to a clean environment");
|
||||
+ g_warning ("Environment for \"flatpak run\" was not found, falling back to current environment");
|
||||
+ env = g_strdupv (original_environ);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -947,16 +943,17 @@ handle_spawn (PortalFlatpak *object,
|
||||
return G_DBUS_METHOD_INVOCATION_HANDLED;
|
||||
}
|
||||
}
|
||||
- else
|
||||
- {
|
||||
- for (i = 0; env != NULL && env[i] != NULL; i++)
|
||||
- {
|
||||
- g_string_append (env_string, env[i]);
|
||||
- g_string_append_c (env_string, '\0');
|
||||
- }
|
||||
- }
|
||||
}
|
||||
|
||||
+ if ((flatpak = g_getenv ("FLATPAK_PORTAL_MOCK_FLATPAK")) != NULL)
|
||||
+ g_ptr_array_add (flatpak_argv, g_strdup (flatpak));
|
||||
+ else if ((flatpak = g_getenv ("FLATPAK")) != NULL)
|
||||
+ g_ptr_array_add (flatpak_argv, g_strdup (flatpak));
|
||||
+ else
|
||||
+ g_ptr_array_add (flatpak_argv, g_strdup (FLATPAK_BINDIR "/flatpak"));
|
||||
+
|
||||
+ g_ptr_array_add (flatpak_argv, g_strdup ("run"));
|
||||
+
|
||||
sandboxed = (arg_flags & FLATPAK_SPAWN_FLAGS_SANDBOX) != 0;
|
||||
|
||||
if (sandboxed)
|
||||
@@ -1507,7 +1504,7 @@ handle_spawn (PortalFlatpak *object,
|
||||
* to work around a deadlock in GLib < 2.60 */
|
||||
if (!g_spawn_async_with_pipes (NULL,
|
||||
(char **) flatpak_argv->pdata,
|
||||
- NULL,
|
||||
+ env,
|
||||
G_SPAWN_SEARCH_PATH | G_SPAWN_DO_NOT_REAP_CHILD | G_SPAWN_LEAVE_DESCRIPTORS_OPEN,
|
||||
child_setup_func, &child_setup_data,
|
||||
&pid,
|
||||
@@ -3017,6 +3014,10 @@ main (int argc,
|
||||
{ NULL }
|
||||
};
|
||||
|
||||
+ /* Save the enviroment before changing anything, so that subprocesses
|
||||
+ * can get the unchanged version */
|
||||
+ original_environ = g_get_environ ();
|
||||
+
|
||||
setlocale (LC_ALL, "");
|
||||
|
||||
g_setenv ("GIO_USE_VFS", "local", TRUE);
|
||||
@@ -3119,5 +3120,6 @@ main (int argc,
|
||||
main_loop = g_main_loop_new (NULL, FALSE);
|
||||
g_main_loop_run (main_loop);
|
||||
|
||||
+ g_strfreev (original_environ);
|
||||
return 0;
|
||||
}
|
||||
|
||||
From 08bb74fde8d53fef1b236454c673c70f6d78bea4 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Wick <sebastian.wick@redhat.com>
|
||||
Date: Mon, 6 Jul 2026 17:36:13 +0200
|
||||
Subject: [PATCH 2/5] portal: Clear error after warning to avoid issues on the
|
||||
next error
|
||||
|
||||
---
|
||||
portal/flatpak-portal.c | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/portal/flatpak-portal.c b/portal/flatpak-portal.c
|
||||
index ddf4996e16..d59b3d6265 100644
|
||||
--- a/portal/flatpak-portal.c
|
||||
+++ b/portal/flatpak-portal.c
|
||||
@@ -942,6 +942,8 @@ handle_spawn (PortalFlatpak *object,
|
||||
error->message);
|
||||
return G_DBUS_METHOD_INVOCATION_HANDLED;
|
||||
}
|
||||
+
|
||||
+ g_clear_error (&error);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
From 700f17e94c4e26cfea051c0fdc82314d8d10d009 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Wick <sebastian.wick@redhat.com>
|
||||
Date: Mon, 6 Jul 2026 17:36:41 +0200
|
||||
Subject: [PATCH 3/5] portal: Pass run-environ to the spawned flatpak process,
|
||||
not the sandbox
|
||||
|
||||
Instead of modifying the host-like run environment to clear the sandbox
|
||||
environment, we'll use the new --clear-env flag which does the correct
|
||||
thing.
|
||||
|
||||
Assisted-by: Claude:opus-4.6
|
||||
Closes: #5271
|
||||
---
|
||||
portal/flatpak-portal.c | 14 +++-----------
|
||||
1 file changed, 3 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/portal/flatpak-portal.c b/portal/flatpak-portal.c
|
||||
index d59b3d6265..5cd2e98bff 100644
|
||||
--- a/portal/flatpak-portal.c
|
||||
+++ b/portal/flatpak-portal.c
|
||||
@@ -908,17 +908,6 @@ handle_spawn (PortalFlatpak *object,
|
||||
return G_DBUS_METHOD_INVOCATION_HANDLED;
|
||||
}
|
||||
|
||||
- /* TODO: Ideally we should let `flatpak run` inherit the run environment
|
||||
- * of the instance, in case e.g. a LD_LIBRARY_PATH is needed to be able
|
||||
- * to run `flatpak run`, but tell it to start from a blank environment
|
||||
- * when running the Flatpak app; but this isn't currently possible, so
|
||||
- * for now we preserve existing behaviour. */
|
||||
- if (arg_flags & FLATPAK_SPAWN_FLAGS_CLEAR_ENV)
|
||||
- {
|
||||
- char *empty[] = { NULL };
|
||||
- env = g_strdupv (empty);
|
||||
- }
|
||||
- else
|
||||
{
|
||||
static const char * const mock_run_environ[] = { "FOO=bar", NULL };
|
||||
|
||||
@@ -956,6 +945,9 @@ handle_spawn (PortalFlatpak *object,
|
||||
|
||||
g_ptr_array_add (flatpak_argv, g_strdup ("run"));
|
||||
|
||||
+ if (arg_flags & FLATPAK_SPAWN_FLAGS_CLEAR_ENV)
|
||||
+ g_ptr_array_add (flatpak_argv, g_strdup ("--clear-env"));
|
||||
+
|
||||
sandboxed = (arg_flags & FLATPAK_SPAWN_FLAGS_SANDBOX) != 0;
|
||||
|
||||
if (sandboxed)
|
||||
|
||||
From 04aa33fbb0f207aae43ef90c38d5b6bbaff0df62 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Wick <sebastian.wick@redhat.com>
|
||||
Date: Mon, 6 Jul 2026 17:40:49 +0200
|
||||
Subject: [PATCH 4/5] portal: Cleanup getting the host-like environment for
|
||||
flatpak-run
|
||||
|
||||
---
|
||||
portal/flatpak-portal.c | 58 ++++++++++++++++++++++-------------------
|
||||
1 file changed, 31 insertions(+), 27 deletions(-)
|
||||
|
||||
diff --git a/portal/flatpak-portal.c b/portal/flatpak-portal.c
|
||||
index 5cd2e98bff..183d3fe477 100644
|
||||
--- a/portal/flatpak-portal.c
|
||||
+++ b/portal/flatpak-portal.c
|
||||
@@ -908,33 +908,37 @@ handle_spawn (PortalFlatpak *object,
|
||||
return G_DBUS_METHOD_INVOCATION_HANDLED;
|
||||
}
|
||||
|
||||
- {
|
||||
- static const char * const mock_run_environ[] = { "FOO=bar", NULL };
|
||||
-
|
||||
- if (testing)
|
||||
- env = g_strdupv ((GStrv) mock_run_environ);
|
||||
- else
|
||||
- env = flatpak_instance_get_run_environ (instance, &error);
|
||||
-
|
||||
- if (env == NULL)
|
||||
- {
|
||||
- if (g_error_matches (error, G_FILE_ERROR, G_FILE_ERROR_NOENT))
|
||||
- {
|
||||
- g_warning ("Environment for \"flatpak run\" was not found, falling back to current environment");
|
||||
- env = g_strdupv (original_environ);
|
||||
- }
|
||||
- else
|
||||
- {
|
||||
- g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR,
|
||||
- G_DBUS_ERROR_INVALID_ARGS,
|
||||
- "Could not load environment for \"flatpak run\": %s",
|
||||
- error->message);
|
||||
- return G_DBUS_METHOD_INVOCATION_HANDLED;
|
||||
- }
|
||||
-
|
||||
- g_clear_error (&error);
|
||||
- }
|
||||
- }
|
||||
+ /* Pass the calling instance's run-environ as the envp for spawning
|
||||
+ * flatpak run, so it can make host-level decisions (DISPLAY, GL drivers,
|
||||
+ * XDG_RUNTIME_DIR, etc.) based on the original environment. This must NOT
|
||||
+ * go into --env-fd, because run-environ is host-like and --env-fd injects
|
||||
+ * into the sandbox payload environment.
|
||||
+ */
|
||||
+ {
|
||||
+ static const char * const mock_run_environ[] = { "FOO=bar", NULL };
|
||||
+
|
||||
+ if (testing)
|
||||
+ env = g_strdupv ((GStrv) mock_run_environ);
|
||||
+ else
|
||||
+ env = flatpak_instance_get_run_environ (instance, &error);
|
||||
+
|
||||
+ if (env == NULL)
|
||||
+ {
|
||||
+ if (!g_error_matches (error, G_FILE_ERROR, G_FILE_ERROR_NOENT))
|
||||
+ {
|
||||
+ g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR,
|
||||
+ G_DBUS_ERROR_INVALID_ARGS,
|
||||
+ "Could not load environment for \"flatpak run\": %s",
|
||||
+ error->message);
|
||||
+ return G_DBUS_METHOD_INVOCATION_HANDLED;
|
||||
+ }
|
||||
+
|
||||
+ g_clear_error (&error);
|
||||
+ g_warning ("Environment for \"flatpak run\" was not found, "
|
||||
+ "falling back to current environment");
|
||||
+ env = g_strdupv (original_environ);
|
||||
+ }
|
||||
+ }
|
||||
|
||||
if ((flatpak = g_getenv ("FLATPAK_PORTAL_MOCK_FLATPAK")) != NULL)
|
||||
g_ptr_array_add (flatpak_argv, g_strdup (flatpak));
|
||||
|
||||
From 254b24275567178626b5efb5d6ead2b0c2483cb7 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Wick <sebastian.wick@redhat.com>
|
||||
Date: Mon, 29 Jun 2026 15:11:26 +0200
|
||||
Subject: [PATCH 5/5] portal: Test that the different envs get created as
|
||||
expected
|
||||
|
||||
Assisted-by: Claude:opus-4.6
|
||||
---
|
||||
tests/mock-flatpak.c | 15 +++++-
|
||||
tests/test-portal.c | 113 +++++++++++++++++++++++++++++++++++++++++++
|
||||
2 files changed, 127 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/tests/mock-flatpak.c b/tests/mock-flatpak.c
|
||||
index c340c781c9..ac27c4d031 100644
|
||||
--- a/tests/mock-flatpak.c
|
||||
+++ b/tests/mock-flatpak.c
|
||||
@@ -28,7 +28,8 @@
|
||||
|
||||
int
|
||||
main (int argc,
|
||||
- char **argv)
|
||||
+ char **argv,
|
||||
+ char **envp)
|
||||
{
|
||||
int i;
|
||||
|
||||
@@ -37,6 +38,18 @@ main (int argc,
|
||||
for (i = 0; i < argc; i++)
|
||||
g_print ("argv[%d] = %s\n", i, argv[i]);
|
||||
|
||||
+ for (i = 0; envp != NULL && envp[i] != NULL; i++)
|
||||
+ {
|
||||
+ const char *eq = strchr (envp[i], '=');
|
||||
+
|
||||
+ if (eq != NULL)
|
||||
+ {
|
||||
+ g_autofree char *key = g_strndup (envp[i], eq - envp[i]);
|
||||
+
|
||||
+ g_print ("inherited[%s] = %s\n", key, eq + 1);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
for (i = 0; i < argc; i++)
|
||||
{
|
||||
if (g_str_has_prefix (argv[i], "--env-fd="))
|
||||
diff --git a/tests/test-portal.c b/tests/test-portal.c
|
||||
index 4d9e6385b8..40df8241a7 100644
|
||||
--- a/tests/test-portal.c
|
||||
+++ b/tests/test-portal.c
|
||||
@@ -422,6 +422,118 @@ test_fd_passing (Fixture *f,
|
||||
}
|
||||
}
|
||||
|
||||
+static char *
|
||||
+spawn_and_capture_output (Fixture *f,
|
||||
+ guint flags,
|
||||
+ GVariant *envs)
|
||||
+{
|
||||
+ g_autoptr(GError) error = NULL;
|
||||
+ g_autoptr(GUnixFDList) fds_in = g_unix_fd_list_new ();
|
||||
+ g_autoptr(GUnixFDList) fds_out = NULL;
|
||||
+ g_auto(GVariantBuilder) fd_map_builder = {};
|
||||
+ g_autofree char *stdout_path = NULL;
|
||||
+ glnx_autofd int stdout_fd = -1;
|
||||
+ guint pid;
|
||||
+ gboolean ok;
|
||||
+ const char * const argv[] = { "hello", NULL };
|
||||
+ gsize times_exited = 0;
|
||||
+ gulong handler_id;
|
||||
+ char *output;
|
||||
+ int handle;
|
||||
+
|
||||
+ stdout_path = g_strdup ("/tmp/flatpak-portal-test.XXXXXX");
|
||||
+ stdout_fd = g_mkstemp (stdout_path);
|
||||
+ g_assert_no_errno (stdout_fd);
|
||||
+ g_assert_no_errno (unlink (stdout_path));
|
||||
+
|
||||
+ g_variant_builder_init (&fd_map_builder, G_VARIANT_TYPE ("a{uh}"));
|
||||
+
|
||||
+ handle = g_unix_fd_list_append (fds_in, stdout_fd, &error);
|
||||
+ g_assert_no_error (error);
|
||||
+ g_variant_builder_add (&fd_map_builder, "{uh}",
|
||||
+ (guint32) STDOUT_FILENO, (gint32) handle);
|
||||
+
|
||||
+ handler_id = g_signal_connect (f->proxy, "spawn-exited",
|
||||
+ G_CALLBACK (count_successful_exit_cb),
|
||||
+ ×_exited);
|
||||
+
|
||||
+ ok = portal_flatpak_call_spawn_sync (f->proxy,
|
||||
+ "/",
|
||||
+ argv,
|
||||
+ g_variant_builder_end (&fd_map_builder),
|
||||
+ envs,
|
||||
+ flags,
|
||||
+ g_variant_new ("a{sv}", NULL),
|
||||
+ fds_in,
|
||||
+ &pid,
|
||||
+ &fds_out,
|
||||
+ NULL,
|
||||
+ &error);
|
||||
+ g_assert_no_error (error);
|
||||
+ g_assert_true (ok);
|
||||
+
|
||||
+ while (times_exited == 0)
|
||||
+ g_main_context_iteration (NULL, TRUE);
|
||||
+
|
||||
+ g_signal_handler_disconnect (f->proxy, handler_id);
|
||||
+
|
||||
+ g_assert_no_errno (lseek (stdout_fd, 0, SEEK_SET));
|
||||
+ output = glnx_fd_readall_utf8 (stdout_fd, NULL, NULL, &error);
|
||||
+ g_assert_no_error (error);
|
||||
+ g_assert_nonnull (output);
|
||||
+
|
||||
+ return output;
|
||||
+}
|
||||
+
|
||||
+static void
|
||||
+test_spawn_env (Fixture *f,
|
||||
+ gconstpointer context G_GNUC_UNUSED)
|
||||
+{
|
||||
+ g_autofree char *output = NULL;
|
||||
+
|
||||
+ fixture_start_portal (f);
|
||||
+
|
||||
+ /* The mock run-environ (FOO=bar) should be in the spawned process
|
||||
+ * environment, not injected into the sandbox via --env-fd */
|
||||
+ output = spawn_and_capture_output (f, FLATPAK_SPAWN_FLAGS_NONE,
|
||||
+ g_variant_new ("a{ss}", NULL));
|
||||
+ g_test_message ("Output (default): %s", output);
|
||||
+ g_assert_nonnull (strstr (output, "inherited[FOO] = bar"));
|
||||
+ g_assert_null (strstr (output, "env[FOO] = bar"));
|
||||
+ g_assert_null (strstr (output, "--clear-env"));
|
||||
+ g_clear_pointer (&output, g_free);
|
||||
+
|
||||
+ /* With CLEAR_ENV, --clear-env should be passed to flatpak run, but
|
||||
+ * the run-environ should still be in the spawned process environment */
|
||||
+ output = spawn_and_capture_output (f, FLATPAK_SPAWN_FLAGS_CLEAR_ENV,
|
||||
+ g_variant_new ("a{ss}", NULL));
|
||||
+ g_test_message ("Output (clear-env): %s", output);
|
||||
+ g_assert_nonnull (strstr (output, "inherited[FOO] = bar"));
|
||||
+ g_assert_null (strstr (output, "env[FOO] = bar"));
|
||||
+ g_assert_nonnull (strstr (output, "--clear-env"));
|
||||
+ g_clear_pointer (&output, g_free);
|
||||
+
|
||||
+ /* Env vars passed explicitly via D-Bus arg_envs should end up in
|
||||
+ * --env-fd (sandbox payload), not in the process environment */
|
||||
+ {
|
||||
+ g_auto(GVariantBuilder) env_builder = {};
|
||||
+
|
||||
+ g_variant_builder_init (&env_builder, G_VARIANT_TYPE ("a{ss}"));
|
||||
+ g_variant_builder_add (&env_builder, "{ss}", "BAZ", "qux");
|
||||
+
|
||||
+ output = spawn_and_capture_output (f, FLATPAK_SPAWN_FLAGS_NONE,
|
||||
+ g_variant_builder_end (&env_builder));
|
||||
+ g_test_message ("Output (with arg_envs): %s", output);
|
||||
+ g_assert_nonnull (strstr (output, "env[BAZ] = qux"));
|
||||
+ g_assert_null (strstr (output, "inherited[BAZ] = qux"));
|
||||
+ g_assert_nonnull (strstr (output, "inherited[FOO] = bar"));
|
||||
+ g_clear_pointer (&output, g_free);
|
||||
+ }
|
||||
+
|
||||
+ g_subprocess_send_signal (f->portal, SIGTERM);
|
||||
+ g_subprocess_wait (f->portal, NULL, NULL);
|
||||
+}
|
||||
+
|
||||
static void
|
||||
test_replace (Fixture *f,
|
||||
gconstpointer context G_GNUC_UNUSED)
|
||||
@@ -478,6 +590,7 @@ main (int argc,
|
||||
g_test_add ("/help", Fixture, NULL, setup, test_help, teardown);
|
||||
g_test_add ("/basic", Fixture, NULL, setup, test_basic, teardown);
|
||||
g_test_add ("/fd-passing", Fixture, NULL, setup, test_fd_passing, teardown);
|
||||
+ g_test_add ("/spawn-env", Fixture, NULL, setup, test_spawn_env, teardown);
|
||||
g_test_add ("/replace", Fixture, NULL, setup, test_replace, teardown);
|
||||
|
||||
return g_test_run ();
|
||||
@@ -80,7 +80,7 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "flatpak";
|
||||
version = "1.18.0";
|
||||
version = "1.18.1";
|
||||
|
||||
# TODO: split out lib once we figure out what to do with triggerdir
|
||||
outputs = [
|
||||
@@ -98,7 +98,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/flatpak/flatpak/releases/download/${finalAttrs.version}/flatpak-${finalAttrs.version}.tar.xz";
|
||||
hash = "sha256-pYV6ZsQDndoF2SvcsrAz14jNJYlhAWfw7F8OyNT6xvI=";
|
||||
hash = "sha256-vGg/yRbtIcBSS7Bk81jCrBhYa47IjHby9/KJh3UhYxw=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
@@ -115,10 +115,6 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
# https://github.com/NixOS/nixpkgs/issues/53441
|
||||
./unset-env-vars.patch
|
||||
|
||||
# Fix portal flatpak-spawn environment handling regression
|
||||
# https://github.com/flatpak/flatpak/pull/6721
|
||||
./flatpak-spawn-env.patch
|
||||
|
||||
# The icon validator needs to access the gdk-pixbuf loaders in the Nix store
|
||||
# and cannot bind FHS paths since those are not available on NixOS.
|
||||
finalAttrs.passthru.icon-validator-patch
|
||||
|
||||
111
pkgs/by-name/fr/frame-media-converter/package.nix
Normal file
111
pkgs/by-name/fr/frame-media-converter/package.nix
Normal file
@@ -0,0 +1,111 @@
|
||||
{
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
rustPlatform,
|
||||
pkg-config,
|
||||
makeWrapper,
|
||||
alsa-lib,
|
||||
ffmpeg,
|
||||
fontconfig,
|
||||
freetype,
|
||||
libdrm,
|
||||
libGL,
|
||||
libx11,
|
||||
libxcb,
|
||||
libxkbcommon,
|
||||
vulkan-loader,
|
||||
wayland,
|
||||
}:
|
||||
|
||||
let
|
||||
cargoFlags = [
|
||||
"--package"
|
||||
"frame-app"
|
||||
];
|
||||
in
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "frame-media-converter";
|
||||
version = "0.31.1";
|
||||
|
||||
__structuredAttrs = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "66HEX";
|
||||
repo = "frame";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-QBwwa5z0BbNa0p7MbV2J+K+NOe0cFxXq9LyvalKTMFY=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-HJZEY4noPypIXHB6ZMtPKuBawaMmmEpVbfo44v6tKws=";
|
||||
cargoBuildFlags = cargoFlags;
|
||||
cargoTestFlags = cargoFlags;
|
||||
|
||||
nativeBuildInputs = [
|
||||
makeWrapper
|
||||
pkg-config
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
alsa-lib
|
||||
fontconfig
|
||||
freetype
|
||||
libdrm
|
||||
libGL
|
||||
libx11
|
||||
libxcb
|
||||
libxkbcommon
|
||||
vulkan-loader
|
||||
wayland
|
||||
];
|
||||
|
||||
postInstall = ''
|
||||
install -Dm444 frame-app/resources/frame.desktop.in \
|
||||
$out/share/applications/frame.desktop
|
||||
substituteInPlace $out/share/applications/frame.desktop \
|
||||
--replace-fail '$APP_NAME' Frame \
|
||||
--replace-fail '$APP_CLI' frame \
|
||||
--replace-fail '$APP_ICON' frame
|
||||
|
||||
for icon in \
|
||||
32:32x32.png \
|
||||
64:64x64.png \
|
||||
128:128x128.png \
|
||||
256:128x128@2x.png \
|
||||
512:icon.png
|
||||
do
|
||||
size="''${icon%%:*}"
|
||||
file="''${icon#*:}"
|
||||
install -Dm444 "frame-app/resources/app-icons/$file" \
|
||||
"$out/share/icons/hicolor/''${size}x''${size}/apps/frame.png"
|
||||
done
|
||||
'';
|
||||
|
||||
postFixup = ''
|
||||
patchelf $out/bin/frame --add-rpath ${
|
||||
lib.makeLibraryPath [
|
||||
libGL
|
||||
vulkan-loader
|
||||
wayland
|
||||
]
|
||||
}
|
||||
|
||||
wrapProgram $out/bin/frame \
|
||||
--prefix PATH : ${lib.makeBinPath [ ffmpeg ]} \
|
||||
--set FRAME_USE_SYSTEM_MEDIA_TOOLS 1 \
|
||||
--set FRAME_UPDATE_EXPLANATION \
|
||||
'This Nixpkgs build is managed by Nix. Install updates through your Nix profile, flake, or NixOS configuration.'
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "Native desktop interface for FFmpeg media conversion";
|
||||
homepage = "https://github.com/66HEX/frame";
|
||||
changelog = "https://github.com/66HEX/frame/blob/${finalAttrs.version}/CHANGELOG.md";
|
||||
license = lib.licenses.gpl3Plus;
|
||||
mainProgram = "frame";
|
||||
maintainers = [ lib.maintainers._66HEX ];
|
||||
platforms = [
|
||||
"x86_64-linux"
|
||||
"aarch64-linux"
|
||||
];
|
||||
};
|
||||
})
|
||||
@@ -7,13 +7,13 @@
|
||||
|
||||
buildDotnetModule rec {
|
||||
pname = "gh-gei";
|
||||
version = "1.31.0";
|
||||
version = "1.32.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "github";
|
||||
repo = "gh-gei";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-i79W9XYIwa0R0gsH9FwcBsY7UzMjACfjk9S4D9GWpsY=";
|
||||
hash = "sha256-i7XWGYDB5izL6QH8BRCppz01xNuBDGNy0rMCxSuQFXU=";
|
||||
};
|
||||
|
||||
dotnet-sdk = dotnetCorePackages.sdk_8_0_4xx;
|
||||
|
||||
@@ -30,6 +30,10 @@ buildGoModule (finalAttrs: {
|
||||
"-X=github.com/github/gh-stack/cmd.Version=${finalAttrs.version}"
|
||||
];
|
||||
|
||||
postInstall = ''
|
||||
install -Dm444 skills/gh-stack/SKILL.md $out/share/skills/gh-stack/gh-stack/SKILL.md
|
||||
'';
|
||||
|
||||
nativeInstallCheckInputs = [ versionCheckHook ];
|
||||
doInstallCheck = true;
|
||||
|
||||
|
||||
@@ -7,16 +7,16 @@
|
||||
}:
|
||||
buildGoModule rec {
|
||||
pname = "git-pkgs";
|
||||
version = "0.18.2";
|
||||
version = "0.19.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "git-pkgs";
|
||||
repo = "git-pkgs";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-C4T4xkNrMIMuRLhua0fTXDpIz0qq5EaqVnSKWUc7Sm0=";
|
||||
hash = "sha256-G2YcixQ7NrljVKhpset7bc/dmqcc3cgQyMMWlJmKSDw=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-d5Me/VgXXC2FyxG17rXg1FmOIi1fJqBmBU+bF5u0j/8=";
|
||||
vendorHash = "sha256-r8VGoLtgE36UsV2Eg8kOJ62LG7qMTGR6/zDOayZ/aVI=";
|
||||
|
||||
subPackages = [ "." ];
|
||||
|
||||
|
||||
@@ -30,7 +30,7 @@ let
|
||||
inherit (finalAttrs) pname version src;
|
||||
inherit pnpm;
|
||||
fetcherVersion = 4;
|
||||
hash = "sha256-VAXSj+AYV6uEdCAD/sEzeydqn4cqNL+ITfrGq41jaLI=";
|
||||
hash = "sha256-rduD3GqgdUlF95HTnKe8smToyHop4RrO6QDTRzh2RCk=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
@@ -53,13 +53,13 @@ let
|
||||
in
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "gitea";
|
||||
version = "1.27.1";
|
||||
version = "1.27.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "go-gitea";
|
||||
repo = "gitea";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-OCThp8432WAD+9v7c7phY2u4JndXAfve4XRbJTLdn6g=";
|
||||
hash = "sha256-376YyRYcZGya/k5zg2zL2iqtrE7r2Q/DMd3DbOnKyOA=";
|
||||
};
|
||||
|
||||
proxyVendor = true;
|
||||
|
||||
@@ -10,17 +10,17 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "go-mockery";
|
||||
version = "3.5.5";
|
||||
version = "3.7.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "vektra";
|
||||
repo = "mockery";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-paoI7KkpLbpQyEwS/oW8Ck9KiJRTUxzFzihsnFyhrCw=";
|
||||
hash = "sha256-lPyoWjLaRhE4SpVahJd8T3LsCyfdFMIsuxmWODRoLL0=";
|
||||
};
|
||||
|
||||
proxyVendor = true;
|
||||
vendorHash = "sha256-YOhlytIMgMHwj2BM/6vOeheyQd4nUuDWpkwLdCqru8c=";
|
||||
vendorHash = "sha256-izMi4MqbfKX1PmNMWyCwBOWqiPZfth/ZSzsuEcTN6Pg=";
|
||||
|
||||
ldflags = [
|
||||
"-s"
|
||||
@@ -41,8 +41,11 @@ buildGoModule (finalAttrs: {
|
||||
prePatch = ''
|
||||
# remove test.ci's dependency on lint since we don't need it and
|
||||
# it tries to use remote golangci-lint
|
||||
# remove test.ci's git-state check, which runs `git diff --exit-code`;
|
||||
# the source has no .git directory, so the check cannot work here
|
||||
substituteInPlace Taskfile.yml \
|
||||
--replace-fail "deps: [lint]" "" \
|
||||
--replace-fail " - task: git-state" "" \
|
||||
--replace-fail "go run gotest.tools/gotestsum" "gotestsum"
|
||||
|
||||
# patch scripts used in e2e testing
|
||||
|
||||
@@ -1,34 +0,0 @@
|
||||
diff --git a/src/rig-selector.c b/src/rig-selector.c
|
||||
index 425d41a..e040c0e 100644
|
||||
--- a/src/rig-selector.c
|
||||
+++ b/src/rig-selector.c
|
||||
@@ -46,7 +46,7 @@ static void add (GtkWidget *, gpointer);
|
||||
static void delete (GtkWidget *, gpointer);
|
||||
static void edit (GtkWidget *, gpointer);
|
||||
static void cancel (GtkWidget *, gpointer);
|
||||
-static void connect (GtkWidget *, gpointer);
|
||||
+static void connectrig (GtkWidget *, gpointer);
|
||||
static void selection_changed (GtkTreeSelection *sel, gpointer data);
|
||||
|
||||
static void render_civ (GtkTreeViewColumn *col,
|
||||
@@ -191,7 +191,7 @@ rig_selector_execute ()
|
||||
g_signal_connect (G_OBJECT (cancbut), "clicked",
|
||||
G_CALLBACK (cancel), window);
|
||||
g_signal_connect (G_OBJECT (conbut), "clicked",
|
||||
- G_CALLBACK (connect), window);
|
||||
+ G_CALLBACK (connectrig), window);
|
||||
g_signal_connect (G_OBJECT (delbut), "clicked",
|
||||
G_CALLBACK (delete), NULL);
|
||||
g_signal_connect (G_OBJECT (newbut), "clicked",
|
||||
@@ -439,7 +439,7 @@ static void cancel (GtkWidget *button, gpointer window)
|
||||
* simply destroys the rig selector window and whereby control is returned
|
||||
* to the main() function.
|
||||
*/
|
||||
-static void connect (GtkWidget *button, gpointer window)
|
||||
+static void connectrig (GtkWidget *button, gpointer window)
|
||||
{
|
||||
|
||||
|
||||
--
|
||||
2.47.0
|
||||
|
||||
@@ -1,53 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
autoreconfHook,
|
||||
pkg-config,
|
||||
wrapGAppsHook3,
|
||||
gtk2,
|
||||
hamlib_4,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "grig";
|
||||
version = "0.9.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "fillods";
|
||||
repo = "grig";
|
||||
rev = "GRIG-${lib.replaceStrings [ "." ] [ "_" ] finalAttrs.version}";
|
||||
sha256 = "sha256-OgIgHW9NMW/xSSti3naIR8AQWUtNSv5bYdOcObStBlM=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# https://github.com/fillods/grig/issues/22
|
||||
./0001-Fix-grig-for-hamlib-4.6.2.patch
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoreconfHook
|
||||
pkg-config
|
||||
wrapGAppsHook3
|
||||
];
|
||||
buildInputs = [
|
||||
hamlib_4
|
||||
gtk2
|
||||
];
|
||||
|
||||
meta = {
|
||||
description = "Simple Ham Radio control (CAT) program based on Hamlib";
|
||||
mainProgram = "grig";
|
||||
longDescription = ''
|
||||
Grig is a graphical user interface for the Ham Radio Control Libraries.
|
||||
It is intended to be simple and generic, presenting the user with the
|
||||
same interface regardless of which radio they use.
|
||||
'';
|
||||
homepage = "https://groundstation.sourceforge.net/grig/";
|
||||
license = lib.licenses.gpl2;
|
||||
platforms = lib.platforms.linux;
|
||||
maintainers = with lib.maintainers; [
|
||||
mafo
|
||||
];
|
||||
};
|
||||
})
|
||||
@@ -8,14 +8,14 @@
|
||||
|
||||
stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
pname = "harper-desktop";
|
||||
version = "2.7.0";
|
||||
version = "2.8.0";
|
||||
|
||||
__structuredAttrs = true;
|
||||
strictDeps = true;
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/Automattic/harper/releases/download/v${finalAttrs.version}/Harper_${finalAttrs.version}_universal.dmg";
|
||||
hash = "sha256-/hVrBnfCun4nmx1k8eJZHdP5pZBJ52GpKkjt9gJ8FC0=";
|
||||
hash = "sha256-qF9FGsSGzf9lD1jXutFgKTGmgKdgSDXKraFKPA3tvJY=";
|
||||
};
|
||||
|
||||
sourceRoot = ".";
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "harper";
|
||||
version = "2.7.0";
|
||||
version = "2.8.0";
|
||||
__structuredAttrs = true;
|
||||
strictDeps = true;
|
||||
|
||||
@@ -17,10 +17,10 @@ rustPlatform.buildRustPackage (finalAttrs: {
|
||||
owner = "Automattic";
|
||||
repo = "harper";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-neXBLfpqrrT7GWTEVs03AA5+ixSLIrRUuzRdXsXfS4Q=";
|
||||
hash = "sha256-jbJ2bYLIhxd6troB6JAKYmhvfhU+kwmOSYZpWCIjxpQ=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-dp2VPKoOVmB1rD8ET5I3zAvGKZQMmw5wdWUwr3TMk+k=";
|
||||
cargoHash = "sha256-ZxRG79CggsM8MbeXMCKU5/N7vlng3xex/mAfYkkDwew=";
|
||||
|
||||
cargoBuildFlags = [
|
||||
"--package=harper-cli"
|
||||
@@ -33,8 +33,13 @@ rustPlatform.buildRustPackage (finalAttrs: {
|
||||
];
|
||||
|
||||
passthru = {
|
||||
tests = vscode-extensions.elijah-potter.harper;
|
||||
updateScript = nix-update-script { };
|
||||
tests.vscode = vscode-extensions.elijah-potter.harper;
|
||||
updateScript = nix-update-script {
|
||||
extraArgs = [
|
||||
"--subpackage"
|
||||
"tests.vscode"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
nativeInstallCheckInputs = [
|
||||
|
||||
@@ -111,7 +111,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
filecheck
|
||||
];
|
||||
|
||||
postPatch = lib.optionalString finalAttrs.doCheck ''
|
||||
postPatch = lib.optionalString finalAttrs.finalPackage.doCheck ''
|
||||
# These tests don't run without setting UR_DPCXX,
|
||||
# however they aren't properly excluded, causing lit to fail.
|
||||
rm test/adapters/hip/lit.cfg.py
|
||||
@@ -139,9 +139,9 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
(lib.cmakeBool "UR_ENABLE_LATENCY_HISTOGRAM" true)
|
||||
|
||||
(lib.cmakeBool "UR_BUILD_TESTS" finalAttrs.doCheck)
|
||||
(lib.cmakeBool "UR_BUILD_TESTS" finalAttrs.finalPackage.doCheck)
|
||||
# The test hello_world.test depends on the hello_world example, so build examples when testing
|
||||
(lib.cmakeBool "UR_BUILD_EXAMPLES" finalAttrs.doCheck)
|
||||
(lib.cmakeBool "UR_BUILD_EXAMPLES" finalAttrs.finalPackage.doCheck)
|
||||
|
||||
(lib.cmakeBool "UR_BUILD_ADAPTER_L0" levelZeroSupport)
|
||||
(lib.cmakeBool "UR_BUILD_ADAPTER_L0_V2" levelZeroSupport)
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "0.136.0";
|
||||
version = "0.141.0";
|
||||
pname = "jbang";
|
||||
|
||||
__structuredAttrs = true;
|
||||
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://github.com/jbangdev/jbang/releases/download/v${version}/${pname}-${version}.tar";
|
||||
sha256 = "sha256-MsP4iLquOwJWlV7EPxSuAPWuyTv1PPSyQCrVdq4lPlM=";
|
||||
sha256 = "sha256-fw87WrmqdVH+NJ+rAnuMukz7qMTRg6CMgLVg/+JPahI=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
||||
@@ -45,7 +45,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
cmakeFlags = [
|
||||
(lib.cmakeBool "JRL_CMAKEMODULES_GENERATE_API_DOC" true)
|
||||
(lib.cmakeBool "JRL_CMAKEMODULES_BUILD_TESTS" finalAttrs.doCheck)
|
||||
(lib.cmakeBool "JRL_CMAKEMODULES_BUILD_TESTS" finalAttrs.finalPackage.doCheck)
|
||||
];
|
||||
|
||||
doCheck = true;
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "lcevcdec";
|
||||
version = "4.2.0";
|
||||
version = "4.2.1";
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
@@ -27,7 +27,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
owner = "v-novaltd";
|
||||
repo = "LCEVCdec";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-EVp+ucydbBWlMMXbldkwDEbFlM88UIts8f/PspIqqSY=";
|
||||
hash = "sha256-syVpcbBPpWGRZ/fRy1QKC/kCokQ9IXcteMfg883362E=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
{
|
||||
stdenvNoCC,
|
||||
stdenv,
|
||||
overrideCC,
|
||||
buildPackages,
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
enableStatic ? stdenv.hostPlatform.isStatic,
|
||||
@@ -8,6 +11,33 @@
|
||||
autoreconfHook,
|
||||
}:
|
||||
|
||||
let
|
||||
# With GCC NG, `libstdc++` links this rather than compiling its own copy,
|
||||
# which puts it below the C++ standard library rather than above; built with
|
||||
# the ordinary `stdenv` the two would create a cycle.
|
||||
#
|
||||
# I would rather this bootstrapping detail not leak into the `package.nix`,
|
||||
# but I don't see another solution available since all-package.nix overrides
|
||||
# of "by-name" packages are no longer allowed.
|
||||
#
|
||||
# TODO: hoist this back out to a `stdenvNoCXX` in `all-packages.nix`,
|
||||
# where the next package needing a hosted-but-C++-free compiler can
|
||||
# share it. `nixpkgs-vet` blocks that today: it wants `strictDeps` and
|
||||
# `__structuredAttrs`, but this is only relevant for derivations made
|
||||
# with `stdenv.mkDerivation` --- `stdenv` itself is *not* such a
|
||||
# derivation!
|
||||
stdenv' =
|
||||
if stdenvNoCC.hostPlatform.useLLVM or false then
|
||||
overrideCC stdenvNoCC buildPackages.llvmPackages.clangNoLibcxx
|
||||
else if stdenvNoCC.hostPlatform.useGccNG or false then
|
||||
overrideCC stdenvNoCC buildPackages.gccNGPackages.gccWithLibatomic
|
||||
else
|
||||
stdenv;
|
||||
in
|
||||
let
|
||||
stdenv = stdenv';
|
||||
in
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "libbacktrace";
|
||||
version = "0-unstable-2026-05-03";
|
||||
|
||||
@@ -104,12 +104,17 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
sed -i 's,\(-lcap\),-L${libcap.lib}/lib \1,' $lib/lib/libgcrypt.la
|
||||
'';
|
||||
|
||||
# TODO: figure out why this is even necessary and why the missing dylib only crashes
|
||||
# random instead of every test
|
||||
preCheck = lib.optionalString (stdenv.hostPlatform.isDarwin && !stdenv.hostPlatform.isStatic) ''
|
||||
mkdir -p $lib/lib
|
||||
cp src/.libs/libgcrypt.20.dylib $lib/lib
|
||||
'';
|
||||
preCheck =
|
||||
# glibc loads libgcc_s dynamically when a thread exits
|
||||
lib.optionalString (stdenv.hostPlatform.isLinux && stdenv.cc.isClang) ''
|
||||
export LD_LIBRARY_PATH="${buildPackages.stdenv.cc.cc.libgcc}/lib''${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"
|
||||
''
|
||||
# TODO: figure out why this is even necessary and why the missing dylib only crashes
|
||||
# random instead of every test
|
||||
+ lib.optionalString (stdenv.hostPlatform.isDarwin && !stdenv.hostPlatform.isStatic) ''
|
||||
mkdir -p $lib/lib
|
||||
cp src/.libs/libgcrypt.20.dylib $lib/lib
|
||||
'';
|
||||
|
||||
doCheck = true;
|
||||
enableParallelChecking = true;
|
||||
|
||||
@@ -3,15 +3,22 @@
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
alsa-lib,
|
||||
catch2_3,
|
||||
cmake,
|
||||
cppzmq,
|
||||
ctestCheckHook,
|
||||
doxygen,
|
||||
ffmpeg,
|
||||
# FIXME: unpin when libopenshot supports ffmpeg 9 (AVCodec.{pix_fmts,sample_fmts,...} removed)
|
||||
ffmpeg_8,
|
||||
glib,
|
||||
imagemagick,
|
||||
jsoncpp,
|
||||
libopenshot-audio,
|
||||
llvmPackages,
|
||||
opencv4,
|
||||
pipewire,
|
||||
pkg-config,
|
||||
protobuf,
|
||||
python3,
|
||||
qt6,
|
||||
swig,
|
||||
@@ -21,13 +28,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "libopenshot";
|
||||
version = "0.7.0-unstable-2026-04-21";
|
||||
version = "0.7.0-unstable-2026-07-22";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "OpenShot";
|
||||
repo = "libopenshot";
|
||||
rev = "a58565292cb84438b1c6a039c343b4c65003bd82";
|
||||
hash = "sha256-zUzyi/VydrxDLCY7E/LBr7+btthOjal3c7md6PTXQWA=";
|
||||
rev = "eac81cf91555438c54fbadef7fdd05bf803f26ee";
|
||||
hash = "sha256-XeEXvKi5O/0J6rEc8rZs4+x/ImF4X0GFw/dOWn9HCCQ=";
|
||||
};
|
||||
|
||||
patches = lib.optionals stdenv.hostPlatform.isDarwin [
|
||||
@@ -39,15 +46,19 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
cmake
|
||||
doxygen
|
||||
pkg-config
|
||||
protobuf
|
||||
swig
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
catch2_3
|
||||
cppzmq
|
||||
ffmpeg
|
||||
ffmpeg_8
|
||||
imagemagick
|
||||
jsoncpp
|
||||
libopenshot-audio
|
||||
(opencv4.override { ffmpeg_8-headless = ffmpeg_8; })
|
||||
protobuf
|
||||
python3
|
||||
qt6.qtbase
|
||||
qt6.qtmultimedia
|
||||
@@ -56,6 +67,8 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
]
|
||||
++ lib.optionals stdenv.hostPlatform.isLinux [
|
||||
alsa-lib
|
||||
glib
|
||||
pipewire
|
||||
]
|
||||
++ lib.optionals stdenv.hostPlatform.isDarwin [
|
||||
llvmPackages.openmp
|
||||
@@ -68,6 +81,14 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
doCheck = true;
|
||||
|
||||
nativeCheckInputs = [ ctestCheckHook ];
|
||||
|
||||
# Spherical metadata is not round-tripped when writing/reading with FFmpeg 8
|
||||
ctestFlags = [
|
||||
"--exclude-regex"
|
||||
"^SphericalMetadata"
|
||||
];
|
||||
|
||||
cmakeFlags = [
|
||||
(lib.cmakeBool "ENABLE_RUBY" false)
|
||||
(lib.cmakeBool "ENABLE_PYTHON" true)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
lib,
|
||||
gcc15Stdenv,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
gtk3,
|
||||
jansson,
|
||||
@@ -12,7 +12,7 @@
|
||||
wrapGAppsHook3,
|
||||
}:
|
||||
|
||||
gcc15Stdenv.mkDerivation {
|
||||
stdenv.mkDerivation {
|
||||
pname = "libresplit";
|
||||
version = "0-unstable-2026-02-11";
|
||||
|
||||
|
||||
@@ -21,13 +21,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "lua-language-server";
|
||||
version = "3.19.0";
|
||||
version = "3.19.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "luals";
|
||||
repo = "lua-language-server";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-TW7BkWNYl5Ndc5sx86Y8LsqVu3Qvh0LMqHyZyW36qso=";
|
||||
hash = "sha256-3Sm958Fr5wn54B+aJMaK+cR/F10dPIcGvBrhjHTy2us=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
|
||||
@@ -14,13 +14,13 @@ assert lib.assertMsg (colors != [ ]) "The `colors` list can not be empty";
|
||||
|
||||
stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
pname = "marble-shell-theme";
|
||||
version = "48.3.2";
|
||||
version = "50.0.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "imarkoff";
|
||||
repo = "Marble-shell-theme";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-EYQmtVq852YG4Pmk6Nj4RF+aZUJmIZwhegHIR+Xxu8A=";
|
||||
hash = "sha256-zvDVOLWdcKwSM0Y6bax5l7CdCb3alBCdL07hPCcYffY=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -6,16 +6,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "mdbook-mermaid";
|
||||
version = "0.17.0";
|
||||
version = "0.17.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "badboy";
|
||||
repo = "mdbook-mermaid";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-9aiu3mQaRgVVhtX/v2hMPzclnVQIhUz4gVy0Xc84zO8=";
|
||||
hash = "sha256-hcvX664QoM1wo7oHM68O7rmH+KAkrQZvtXQiwWmm+e8=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-MDtXgNiN4tVgP/98fbcL9WQXAJire+c3lmnc12KhQ50=";
|
||||
cargoHash = "sha256-9uE3Xb4LhzGoB9lcusvyKm28X0uvgYVRzIju+Ozlc6A=";
|
||||
|
||||
meta = {
|
||||
description = "Preprocessor for mdbook to add mermaid.js support";
|
||||
|
||||
@@ -8,13 +8,13 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "melange";
|
||||
version = "0.41.1";
|
||||
version = "0.58.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "chainguard-dev";
|
||||
repo = "melange";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-qbbt5TDqyWqf0/TZfFJ9Nf1hmOq8Jh4husJpVEJy1o0=";
|
||||
hash = "sha256-gv6Y+VImdXICrqt2YDr4ROoL6xJSuRE1XyAasSM3dW4=";
|
||||
# populate values that require us to use git. By doing this in postFetch we
|
||||
# can delete .git afterwards and maintain better reproducibility of the src.
|
||||
leaveDotGit = true;
|
||||
@@ -27,7 +27,7 @@ buildGoModule (finalAttrs: {
|
||||
'';
|
||||
};
|
||||
|
||||
vendorHash = "sha256-SfYzWPe6TaGrBhnnO9sFPhCsFwSCcr1TflDZD7ZNVL8=";
|
||||
vendorHash = "sha256-cyhegU/jGLVRidAEAq2XY9agjmMr28u7Hf9cZ67um1g=";
|
||||
|
||||
subPackages = [ "." ];
|
||||
|
||||
|
||||
@@ -23,25 +23,25 @@ let
|
||||
inputtino-src = fetchFromGitHub {
|
||||
owner = "games-on-whales";
|
||||
repo = "inputtino";
|
||||
rev = "f4ce2b0df536ef309e9ff318f75b460f7097d7c1";
|
||||
hash = "sha256-mAAXbIK7aNSLyN7OZX9YeesMvT6OZmT9uAx0md6pyRM=";
|
||||
rev = "d28ec79eb63324e68d73a7de22bcb5ff0a6f6bf8";
|
||||
hash = "sha256-xzDsJggQVX5e1twwNvqw5hDXei6OMYA4s5zU4zfp/H0=";
|
||||
};
|
||||
in
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "moonshine";
|
||||
version = "0.13.5";
|
||||
version = "0.15.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "hgaiser";
|
||||
repo = "moonshine";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-DwRUVMAm4fSqZu6jECeasiRpnwBt7thWkXzztNRIjcs=";
|
||||
hash = "sha256-TvL3s738wooQwZfBKyCqp0V8qcYFtJL98tsxlSX8fLM=";
|
||||
};
|
||||
|
||||
__structuredAttrs = true;
|
||||
strictDeps = true;
|
||||
|
||||
cargoHash = "sha256-M/VNPnccqK3koa0TeMd+tml79O7BKLxHmrGcGPemGhI=";
|
||||
cargoHash = "sha256-PAC8PcGOXxFNN8Eeiik4JrXeH2H+YcqRaBpJVtUoZ44=";
|
||||
|
||||
# Build Moonshine binary and Vulkan layer
|
||||
cargoBuildFlags = [
|
||||
@@ -88,6 +88,10 @@ rustPlatform.buildRustPackage (finalAttrs: {
|
||||
|
||||
# udev rules for input
|
||||
install -Dm644 dist/60-moonshine.rules "$out/lib/udev/rules.d/60-moonshine.rules"
|
||||
|
||||
# polkit rule for sleep inhibitor
|
||||
install -Dm644 dist/50-moonshine-inhibit-sleep.rules \
|
||||
"$out/share/polkit-1/rules.d/50-moonshine-inhibit-sleep.rules"
|
||||
'';
|
||||
|
||||
postFixup = ''
|
||||
@@ -118,7 +122,10 @@ rustPlatform.buildRustPackage (finalAttrs: {
|
||||
homepage = "https://github.com/hgaiser/moonshine";
|
||||
changelog = "https://github.com/hgaiser/moonshine/releases/tag/v${finalAttrs.version}";
|
||||
license = lib.licenses.bsd2;
|
||||
maintainers = with lib.maintainers; [ neobrain ];
|
||||
maintainers = with lib.maintainers; [
|
||||
neobrain
|
||||
anish
|
||||
];
|
||||
mainProgram = "moonshine";
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
|
||||
@@ -1,52 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
autoreconfHook,
|
||||
pkg-config,
|
||||
fuse,
|
||||
libmtp,
|
||||
glib,
|
||||
libmad,
|
||||
libid3tag,
|
||||
unstableGitUpdater,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "mtpfs";
|
||||
version = "0-unstable-2024-12-10";
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoreconfHook
|
||||
pkg-config
|
||||
];
|
||||
buildInputs = [
|
||||
fuse
|
||||
libmtp
|
||||
glib
|
||||
libid3tag
|
||||
libmad
|
||||
];
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "cjd";
|
||||
repo = "mtpfs";
|
||||
rev = "1177d6cfd8916915f5db7d9b5c6fc9e6eafae6e6";
|
||||
hash = "sha256-/84C8FUW+7U7u7yOzVB6ROoIUKtyIBG0wdD5t53yays=";
|
||||
};
|
||||
|
||||
# Use unstable version to pull in gcc-15 fix until the next release
|
||||
# is out: https://github.com/cjd/mtpfs/pull/28
|
||||
passthru.updateScript = unstableGitUpdater {
|
||||
};
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/cjd/mtpfs";
|
||||
description = "FUSE Filesystem providing access to MTP devices";
|
||||
platforms = lib.platforms.all;
|
||||
license = lib.licenses.gpl3;
|
||||
maintainers = [ lib.maintainers.qknight ];
|
||||
broken = stdenv.hostPlatform.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/trunk/mtpfs.x86_64-darwin
|
||||
mainProgram = "mtpfs";
|
||||
};
|
||||
})
|
||||
@@ -9,18 +9,18 @@
|
||||
|
||||
buildNpmPackage (finalAttrs: {
|
||||
pname = "multi-scrobbler";
|
||||
version = "0.15.0";
|
||||
version = "0.16.2";
|
||||
__structuredAttrs = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "FoxxMD";
|
||||
repo = "multi-scrobbler";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-vhda31xPLxGmnaU/3AnsrcafPvSE1IIbuRmj6xlttjc=";
|
||||
hash = "sha256-R+CwL+Kp3C5wg1LFt0XlksMtRFt+7YItR3t4QPpND6w=";
|
||||
};
|
||||
|
||||
npmDepsFetcherVersion = 2;
|
||||
npmDepsHash = "sha256-dxNHz/r+ai8R9X+yVo5YaBWHPcvQKQUXa499HafAB00=";
|
||||
npmDepsHash = "sha256-aqwiOajXjB6FbHzhXxTSpSxDBWkdYj9O+I1XqoEWgbE=";
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
||||
|
||||
@@ -1,381 +0,0 @@
|
||||
From 41aa0b0c81d6e7b604c1646d52d8418ed2d8d99a Mon Sep 17 00:00:00 2001
|
||||
From: Emily <hello@emily.moe>
|
||||
Date: Mon, 15 Sep 2025 20:45:57 +0100
|
||||
Subject: [PATCH] Platform: Core: Update to toml11 4.4.0
|
||||
|
||||
Comments are now preserved by default, and the APi gets a bit
|
||||
simpler. Many Linux distributions have already moved to the new major
|
||||
version, so this eases packaging.
|
||||
---
|
||||
src/platform/core/CMakeLists.txt | 4 +-
|
||||
src/platform/core/include/platform/config.hpp | 4 +-
|
||||
src/platform/core/src/config.cpp | 176 ++++++++----------
|
||||
src/platform/qt/src/config.cpp | 88 ++++-----
|
||||
src/platform/qt/src/config.hpp | 4 +-
|
||||
5 files changed, 121 insertions(+), 155 deletions(-)
|
||||
|
||||
diff --git a/src/platform/core/CMakeLists.txt b/src/platform/core/CMakeLists.txt
|
||||
index ddb4241f..02a97420 100644
|
||||
--- a/src/platform/core/CMakeLists.txt
|
||||
+++ b/src/platform/core/CMakeLists.txt
|
||||
@@ -35,11 +35,11 @@ glad_add_library(glad_gl_core_33 STATIC
|
||||
)
|
||||
|
||||
if(USE_SYSTEM_TOML11)
|
||||
- find_package(toml11 3.7 REQUIRED)
|
||||
+ find_package(toml11 4.0 REQUIRED)
|
||||
else()
|
||||
FetchContent_Declare(toml11
|
||||
GIT_REPOSITORY https://github.com/ToruNiina/toml11.git
|
||||
- GIT_TAG d4eb5f3c9d8557b3820c80d55c41068839341b27 # v3.8.1
|
||||
+ GIT_TAG be08ba2be2a964edcdb3d3e3ea8d100abc26f286 # v4.4.0
|
||||
)
|
||||
set(toml11_INSTALL OFF CACHE BOOL "" FORCE)
|
||||
FetchContent_MakeAvailable(toml11)
|
||||
diff --git a/src/platform/core/include/platform/config.hpp b/src/platform/core/include/platform/config.hpp
|
||||
index 89c6278a..7b0233d4 100644
|
||||
--- a/src/platform/core/include/platform/config.hpp
|
||||
+++ b/src/platform/core/include/platform/config.hpp
|
||||
@@ -47,9 +47,7 @@ struct PlatformConfig : Config {
|
||||
|
||||
protected:
|
||||
virtual void LoadCustomData(toml::value const& data) {}
|
||||
- virtual void SaveCustomData(
|
||||
- toml::basic_value<toml::preserve_comments>& data
|
||||
- ) {};
|
||||
+ virtual void SaveCustomData(toml::value& data) {}
|
||||
};
|
||||
|
||||
} // namespace nba
|
||||
diff --git a/src/platform/core/src/config.cpp b/src/platform/core/src/config.cpp
|
||||
index be382c94..e6a8e221 100644
|
||||
--- a/src/platform/core/src/config.cpp
|
||||
+++ b/src/platform/core/src/config.cpp
|
||||
@@ -29,124 +29,108 @@ void PlatformConfig::Load(std::string const& path) {
|
||||
}
|
||||
|
||||
if(data.contains("general")) {
|
||||
- auto general_result = toml::expect<toml::value>(data.at("general"));
|
||||
-
|
||||
- if(general_result.is_ok()) {
|
||||
- auto general = general_result.unwrap();
|
||||
- this->bios_path = toml::find_or<std::string>(general, "bios_path", "bios.bin");
|
||||
- this->skip_bios = toml::find_or<toml::boolean>(general, "bios_skip", false);
|
||||
- this->save_folder = toml::find_or<std::string>(general, "save_folder", "");
|
||||
- }
|
||||
+ auto general = data.at("general");
|
||||
+ this->bios_path = toml::find_or<std::string>(general, "bios_path", "bios.bin");
|
||||
+ this->skip_bios = toml::find_or<bool>(general, "bios_skip", false);
|
||||
+ this->save_folder = toml::find_or<std::string>(general, "save_folder", "");
|
||||
}
|
||||
|
||||
if(data.contains("cartridge")) {
|
||||
- auto cartridge_result = toml::expect<toml::value>(data.at("cartridge"));
|
||||
-
|
||||
- if(cartridge_result.is_ok()) {
|
||||
- auto cartridge = cartridge_result.unwrap();
|
||||
- auto save_type = toml::find_or<std::string>(cartridge, "save_type", "detect");
|
||||
-
|
||||
- const std::map<std::string, Config::BackupType> save_types{
|
||||
- { "detect", Config::BackupType::Detect },
|
||||
- { "none", Config::BackupType::None },
|
||||
- { "sram", Config::BackupType::SRAM },
|
||||
- { "flash64", Config::BackupType::FLASH_64 },
|
||||
- { "flash128", Config::BackupType::FLASH_128 },
|
||||
- { "eeprom512", Config::BackupType::EEPROM_4 },
|
||||
- { "eeprom8192", Config::BackupType::EEPROM_64 }
|
||||
- };
|
||||
-
|
||||
- auto match = save_types.find(save_type);
|
||||
-
|
||||
- if(match == save_types.end()) {
|
||||
- Log<Warn>("Config: backup type '{0}' is not valid, defaulting to auto-detect.", save_type);
|
||||
- this->cartridge.backup_type = Config::BackupType::Detect;
|
||||
- } else {
|
||||
- this->cartridge.backup_type = match->second;
|
||||
- }
|
||||
-
|
||||
- this->cartridge.force_rtc = toml::find_or<toml::boolean>(cartridge, "force_rtc", false);
|
||||
- this->cartridge.force_solar_sensor = toml::find_or<toml::boolean>(cartridge, "force_solar_sensor", false);
|
||||
- this->cartridge.solar_sensor_level = toml::find_or<int>(cartridge, "solar_sensor_level", 156);
|
||||
+ auto cartridge = data.at("cartridge");
|
||||
+ auto save_type = toml::find_or<std::string>(cartridge, "save_type", "detect");
|
||||
+
|
||||
+ const std::map<std::string, Config::BackupType> save_types{
|
||||
+ { "detect", Config::BackupType::Detect },
|
||||
+ { "none", Config::BackupType::None },
|
||||
+ { "sram", Config::BackupType::SRAM },
|
||||
+ { "flash64", Config::BackupType::FLASH_64 },
|
||||
+ { "flash128", Config::BackupType::FLASH_128 },
|
||||
+ { "eeprom512", Config::BackupType::EEPROM_4 },
|
||||
+ { "eeprom8192", Config::BackupType::EEPROM_64 }
|
||||
+ };
|
||||
+
|
||||
+ auto match = save_types.find(save_type);
|
||||
+
|
||||
+ if(match == save_types.end()) {
|
||||
+ Log<Warn>("Config: backup type '{0}' is not valid, defaulting to auto-detect.", save_type);
|
||||
+ this->cartridge.backup_type = Config::BackupType::Detect;
|
||||
+ } else {
|
||||
+ this->cartridge.backup_type = match->second;
|
||||
}
|
||||
+
|
||||
+ this->cartridge.force_rtc = toml::find_or<bool>(cartridge, "force_rtc", false);
|
||||
+ this->cartridge.force_solar_sensor = toml::find_or<bool>(cartridge, "force_solar_sensor", false);
|
||||
+ this->cartridge.solar_sensor_level = toml::find_or<int>(cartridge, "solar_sensor_level", 156);
|
||||
}
|
||||
|
||||
if(data.contains("video")) {
|
||||
- auto video_result = toml::expect<toml::value>(data.at("video"));
|
||||
-
|
||||
- if(video_result.is_ok()) {
|
||||
- auto video = video_result.unwrap();
|
||||
+ auto video = data.at("video");
|
||||
|
||||
- const std::map<std::string, Video::Filter> filters{
|
||||
- { "nearest", Video::Filter::Nearest },
|
||||
- { "linear", Video::Filter::Linear },
|
||||
- { "sharp", Video::Filter::Sharp },
|
||||
- { "xbrz", Video::Filter::xBRZ },
|
||||
- { "lcd1x", Video::Filter::Lcd1x }
|
||||
- };
|
||||
-
|
||||
- const std::map<std::string, Video::Color> color_corrections{
|
||||
- { "none", Video::Color::No },
|
||||
- { "higan", Video::Color::higan },
|
||||
- { "agb", Video::Color::AGB }
|
||||
- };
|
||||
-
|
||||
- auto filter = toml::find_or<std::string>(video, "filter", "nearest");
|
||||
- auto filter_match = filters.find(filter);
|
||||
- if(filter_match != filters.end()) {
|
||||
- this->video.filter = filter_match->second;
|
||||
- }
|
||||
-
|
||||
- auto color_correction = toml::find_or<std::string>(video, "color_correction", "ags");
|
||||
- auto color_correction_match = color_corrections.find(color_correction);
|
||||
- if(color_correction_match != color_corrections.end()) {
|
||||
- this->video.color = color_correction_match->second;
|
||||
- }
|
||||
-
|
||||
- this->video.lcd_ghosting = toml::find_or<bool>(video, "lcd_ghosting", true);
|
||||
+ const std::map<std::string, Video::Filter> filters{
|
||||
+ { "nearest", Video::Filter::Nearest },
|
||||
+ { "linear", Video::Filter::Linear },
|
||||
+ { "sharp", Video::Filter::Sharp },
|
||||
+ { "xbrz", Video::Filter::xBRZ },
|
||||
+ { "lcd1x", Video::Filter::Lcd1x }
|
||||
+ };
|
||||
+
|
||||
+ const std::map<std::string, Video::Color> color_corrections{
|
||||
+ { "none", Video::Color::No },
|
||||
+ { "higan", Video::Color::higan },
|
||||
+ { "agb", Video::Color::AGB }
|
||||
+ };
|
||||
+
|
||||
+ auto filter = toml::find_or<std::string>(video, "filter", "nearest");
|
||||
+ auto filter_match = filters.find(filter);
|
||||
+ if(filter_match != filters.end()) {
|
||||
+ this->video.filter = filter_match->second;
|
||||
}
|
||||
+
|
||||
+ auto color_correction = toml::find_or<std::string>(video, "color_correction", "ags");
|
||||
+ auto color_correction_match = color_corrections.find(color_correction);
|
||||
+ if(color_correction_match != color_corrections.end()) {
|
||||
+ this->video.color = color_correction_match->second;
|
||||
+ }
|
||||
+
|
||||
+ this->video.lcd_ghosting = toml::find_or<bool>(video, "lcd_ghosting", true);
|
||||
}
|
||||
|
||||
if(data.contains("audio")) {
|
||||
- auto audio_result = toml::expect<toml::value>(data.at("audio"));
|
||||
-
|
||||
- if(audio_result.is_ok()) {
|
||||
- auto audio = audio_result.unwrap();
|
||||
- auto resampler = toml::find_or<std::string>(audio, "resampler", "cosine");
|
||||
-
|
||||
- const std::map<std::string, Config::Audio::Interpolation> resamplers{
|
||||
- { "cosine", Config::Audio::Interpolation::Cosine },
|
||||
- { "cubic", Config::Audio::Interpolation::Cubic },
|
||||
- { "sinc64", Config::Audio::Interpolation::Sinc_64 },
|
||||
- { "sinc128", Config::Audio::Interpolation::Sinc_128 },
|
||||
- { "sinc256", Config::Audio::Interpolation::Sinc_256 }
|
||||
- };
|
||||
-
|
||||
- auto match = resamplers.find(resampler);
|
||||
-
|
||||
- if(match == resamplers.end()) {
|
||||
- Log<Warn>("Config: unknown resampling algorithm: {} (defaulting to cosine).", resampler);
|
||||
- this->audio.interpolation = Config::Audio::Interpolation::Cosine;
|
||||
- } else {
|
||||
- this->audio.interpolation = match->second;
|
||||
- }
|
||||
-
|
||||
- this->audio.volume = toml::find_or<int>(audio, "volume", 100);
|
||||
- this->audio.mp2k_hle_enable = toml::find_or<toml::boolean>(audio, "mp2k_hle_enable", false);
|
||||
- this->audio.mp2k_hle_cubic = toml::find_or<toml::boolean>(audio, "mp2k_hle_cubic", true);
|
||||
- this->audio.mp2k_hle_force_reverb = toml::find_or<toml::boolean>(audio, "mp2k_hle_force_reverb", true);
|
||||
+ auto audio = data.at("audio");
|
||||
+ auto resampler = toml::find_or<std::string>(audio, "resampler", "cosine");
|
||||
+
|
||||
+ const std::map<std::string, Config::Audio::Interpolation> resamplers{
|
||||
+ { "cosine", Config::Audio::Interpolation::Cosine },
|
||||
+ { "cubic", Config::Audio::Interpolation::Cubic },
|
||||
+ { "sinc64", Config::Audio::Interpolation::Sinc_64 },
|
||||
+ { "sinc128", Config::Audio::Interpolation::Sinc_128 },
|
||||
+ { "sinc256", Config::Audio::Interpolation::Sinc_256 }
|
||||
+ };
|
||||
+
|
||||
+ auto match = resamplers.find(resampler);
|
||||
+
|
||||
+ if(match == resamplers.end()) {
|
||||
+ Log<Warn>("Config: unknown resampling algorithm: {} (defaulting to cosine).", resampler);
|
||||
+ this->audio.interpolation = Config::Audio::Interpolation::Cosine;
|
||||
+ } else {
|
||||
+ this->audio.interpolation = match->second;
|
||||
}
|
||||
+
|
||||
+ this->audio.volume = toml::find_or<int>(audio, "volume", 100);
|
||||
+ this->audio.mp2k_hle_enable = toml::find_or<bool>(audio, "mp2k_hle_enable", false);
|
||||
+ this->audio.mp2k_hle_cubic = toml::find_or<bool>(audio, "mp2k_hle_cubic", true);
|
||||
+ this->audio.mp2k_hle_force_reverb = toml::find_or<bool>(audio, "mp2k_hle_force_reverb", true);
|
||||
}
|
||||
|
||||
LoadCustomData(data);
|
||||
}
|
||||
|
||||
void PlatformConfig::Save(std::string const& path) {
|
||||
- toml::basic_value<toml::preserve_comments> data;
|
||||
+ toml::value data;
|
||||
|
||||
if(std::filesystem::exists(path)) {
|
||||
try {
|
||||
- data = toml::parse<toml::preserve_comments>(path);
|
||||
+ data = toml::parse(path);
|
||||
} catch (std::exception& ex) {
|
||||
Log<Error>("Config: error while parsing TOML configuration: {0}", ex.what());
|
||||
return;
|
||||
diff --git a/src/platform/qt/src/config.cpp b/src/platform/qt/src/config.cpp
|
||||
index 7fbc712b..7a658fca 100644
|
||||
--- a/src/platform/qt/src/config.cpp
|
||||
+++ b/src/platform/qt/src/config.cpp
|
||||
@@ -9,66 +9,52 @@
|
||||
|
||||
void QtConfig::LoadCustomData(toml::value const& data) {
|
||||
if(data.contains("input")) {
|
||||
- auto input_result = toml::expect<toml::value>(data.at("input"));
|
||||
-
|
||||
- if(input_result.is_ok()) {
|
||||
- using Map = Input::Map;
|
||||
-
|
||||
- auto input_ = input_result.unwrap();
|
||||
-
|
||||
- input.controller_guid = toml::find_or<std::string>(input_, "controller_guid", "");
|
||||
- input.hold_fast_forward = toml::find_or<bool>(input_, "hold_fast_forward", true);
|
||||
-
|
||||
- const auto get_map = [&](toml::value const& value, std::string key) {
|
||||
- return Map::FromArray(toml::find_or<std::array<int, 5>>(value, key, {0, -1, -1, -1, 0}));
|
||||
- };
|
||||
-
|
||||
- input.fast_forward = get_map(input_, "fast_forward");
|
||||
-
|
||||
- if(input_.contains("gba")) {
|
||||
- auto gba_result = toml::expect<toml::value>(input_.at("gba"));
|
||||
-
|
||||
- if(gba_result.is_ok()) {
|
||||
- auto gba = gba_result.unwrap();
|
||||
-
|
||||
- input.gba[0] = get_map(gba, "a");
|
||||
- input.gba[1] = get_map(gba, "b");
|
||||
- input.gba[2] = get_map(gba, "select");
|
||||
- input.gba[3] = get_map(gba, "start");
|
||||
- input.gba[4] = get_map(gba, "right");
|
||||
- input.gba[5] = get_map(gba, "left");
|
||||
- input.gba[6] = get_map(gba, "up");
|
||||
- input.gba[7] = get_map(gba, "down");
|
||||
- input.gba[8] = get_map(gba, "r");
|
||||
- input.gba[9] = get_map(gba, "l");
|
||||
- }
|
||||
- }
|
||||
+ using Map = Input::Map;
|
||||
+
|
||||
+ auto input_ = data.at("input");
|
||||
+
|
||||
+ input.controller_guid = toml::find_or<std::string>(input_, "controller_guid", "");
|
||||
+ input.hold_fast_forward = toml::find_or<bool>(input_, "hold_fast_forward", true);
|
||||
+
|
||||
+ const auto get_map = [&](toml::value const& value, std::string key) {
|
||||
+ return Map::FromArray(toml::find_or<std::array<int, 5>>(value, key, {0, -1, -1, -1, 0}));
|
||||
+ };
|
||||
+
|
||||
+ input.fast_forward = get_map(input_, "fast_forward");
|
||||
+
|
||||
+ if(input_.contains("gba")) {
|
||||
+ auto gba = input_.at("gba");
|
||||
+
|
||||
+ input.gba[0] = get_map(gba, "a");
|
||||
+ input.gba[1] = get_map(gba, "b");
|
||||
+ input.gba[2] = get_map(gba, "select");
|
||||
+ input.gba[3] = get_map(gba, "start");
|
||||
+ input.gba[4] = get_map(gba, "right");
|
||||
+ input.gba[5] = get_map(gba, "left");
|
||||
+ input.gba[6] = get_map(gba, "up");
|
||||
+ input.gba[7] = get_map(gba, "down");
|
||||
+ input.gba[8] = get_map(gba, "r");
|
||||
+ input.gba[9] = get_map(gba, "l");
|
||||
}
|
||||
}
|
||||
|
||||
if(data.contains("window")) {
|
||||
- auto window_result = toml::expect<toml::value>(data.at("window"));
|
||||
-
|
||||
- if(window_result.is_ok()) {
|
||||
- auto window_ = window_result.unwrap();
|
||||
-
|
||||
- window.scale = toml::find_or<int>(window_, "scale", 2);
|
||||
- window.maximum_scale = toml::find_or<int>(window_, "maximum_scale", 0);
|
||||
- window.fullscreen = toml::find_or<bool>(window_, "fullscreen", false);
|
||||
- window.fullscreen_show_menu = toml::find_or<bool>(window_, "fullscreen_show_menu", false);
|
||||
- window.lock_aspect_ratio = toml::find_or<bool>(window_, "lock_aspect_ratio", true);
|
||||
- window.use_integer_scaling = toml::find_or<bool>(window_, "use_integer_scaling", false);
|
||||
- window.show_fps = toml::find_or<bool>(window_, "show_fps", false);
|
||||
- window.pause_emulator_when_inactive = toml::find_or<bool>(window_, "pause_emulator_when_inactive", true);
|
||||
- }
|
||||
+ auto window_ = data.at("window");
|
||||
+
|
||||
+ window.scale = toml::find_or<int>(window_, "scale", 2);
|
||||
+ window.maximum_scale = toml::find_or<int>(window_, "maximum_scale", 0);
|
||||
+ window.fullscreen = toml::find_or<bool>(window_, "fullscreen", false);
|
||||
+ window.fullscreen_show_menu = toml::find_or<bool>(window_, "fullscreen_show_menu", false);
|
||||
+ window.lock_aspect_ratio = toml::find_or<bool>(window_, "lock_aspect_ratio", true);
|
||||
+ window.use_integer_scaling = toml::find_or<bool>(window_, "use_integer_scaling", false);
|
||||
+ window.show_fps = toml::find_or<bool>(window_, "show_fps", false);
|
||||
+ window.pause_emulator_when_inactive = toml::find_or<bool>(window_, "pause_emulator_when_inactive", true);
|
||||
}
|
||||
|
||||
recent_files = toml::find_or<std::vector<std::string>>(data, "recent_files", {});
|
||||
}
|
||||
|
||||
-void QtConfig::SaveCustomData(
|
||||
- toml::basic_value<toml::preserve_comments>& data
|
||||
-) {
|
||||
+void QtConfig::SaveCustomData(toml::value& data) {
|
||||
data["input"]["controller_guid"] = input.controller_guid;
|
||||
data["input"]["fast_forward"] = input.fast_forward.Array();
|
||||
data["input"]["hold_fast_forward"] = input.hold_fast_forward;
|
||||
diff --git a/src/platform/qt/src/config.hpp b/src/platform/qt/src/config.hpp
|
||||
index 91af8291..b305bf79 100644
|
||||
--- a/src/platform/qt/src/config.hpp
|
||||
+++ b/src/platform/qt/src/config.hpp
|
||||
@@ -117,9 +117,7 @@ struct QtConfig final : nba::PlatformConfig {
|
||||
protected:
|
||||
void LoadCustomData(toml::value const& data) override;
|
||||
|
||||
- void SaveCustomData(
|
||||
- toml::basic_value<toml::preserve_comments>& data
|
||||
- ) override;
|
||||
+ void SaveCustomData(toml::value& data) override;
|
||||
|
||||
private:
|
||||
auto GetConfigPath() const -> std::string {
|
||||
@@ -1,60 +1,56 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
fetchpatch,
|
||||
fetchFromCodeberg,
|
||||
cmake,
|
||||
python3Packages,
|
||||
libsForQt5,
|
||||
SDL2,
|
||||
fmt,
|
||||
toml11,
|
||||
libunarr,
|
||||
qt6,
|
||||
zlib,
|
||||
bzip2,
|
||||
xz,
|
||||
gtk3,
|
||||
}:
|
||||
|
||||
let
|
||||
gladSrc = fetchFromGitHub {
|
||||
owner = "Dav1dde";
|
||||
repo = "glad";
|
||||
rev = "v2.0.5";
|
||||
hash = "sha256-Ba7nbd0DxDHfNXXu9DLfnxTQTiJIQYSES9CP5Bfq4K0=";
|
||||
};
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "nanoboyadvance";
|
||||
version = "1.8.2";
|
||||
version = "1.8.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
src = fetchFromCodeberg {
|
||||
owner = "nba-emu";
|
||||
repo = "NanoBoyAdvance";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-IH2X0B3HwEG0/wvKacLVPBQad14W0HBy5VFHjk8vgJk=";
|
||||
hash = "sha256-G/STYu8vOTqoGAGfpPelYV/m0Cth4xMMD1QJ6TbqAF4=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# <https://github.com/nba-emu/NanoBoyAdvance/pull/410>
|
||||
./fix-toml11-4.0.patch
|
||||
];
|
||||
postPatch = ''
|
||||
# don’t install unarr library to the package output
|
||||
substituteInPlace thirdparty/CMakeLists.txt \
|
||||
--replace-fail 'add_subdirectory(unarr-1.1.1-patch)' 'add_subdirectory(unarr-1.1.1-patch EXCLUDE_FROM_ALL)'
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
python3Packages.jinja2
|
||||
libsForQt5.wrapQtAppsHook
|
||||
qt6.wrapQtAppsHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
libsForQt5.qtbase
|
||||
SDL2
|
||||
fmt
|
||||
toml11
|
||||
libunarr
|
||||
qt6.qtsvg
|
||||
qt6.qtbase
|
||||
zlib
|
||||
bzip2
|
||||
xz
|
||||
gtk3
|
||||
];
|
||||
|
||||
preConfigure = lib.optionalString (!stdenv.hostPlatform.isDarwin) ''
|
||||
export AR="gcc-ar"
|
||||
export RANLIB="gcc-ranlib"
|
||||
'';
|
||||
|
||||
cmakeFlags = [
|
||||
(lib.cmakeFeature "FETCHCONTENT_SOURCE_DIR_GLAD" "${gladSrc}")
|
||||
(lib.cmakeBool "USE_SYSTEM_FMT" true)
|
||||
(lib.cmakeBool "USE_SYSTEM_TOML11" true)
|
||||
(lib.cmakeBool "USE_SYSTEM_UNARR" true)
|
||||
(lib.cmakeBool "PORTABLE_MODE" false)
|
||||
]
|
||||
++ lib.optionals stdenv.hostPlatform.isDarwin [
|
||||
@@ -68,12 +64,23 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
ln -s "$out/Applications/NanoBoyAdvance.app/Contents/MacOS/NanoBoyAdvance" "$out/bin/NanoBoyAdvance"
|
||||
'';
|
||||
|
||||
preFixup = ''
|
||||
qtWrapperArgs+=(
|
||||
--prefix XDG_DATA_DIRS : "${gtk3}/share/gsettings-schemas/${gtk3.name}"
|
||||
--set QT_QPA_PLATFORM xcb
|
||||
--set SDL_VIDEODRIVER x11
|
||||
)
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "Cycle-accurate Nintendo Game Boy Advance emulator";
|
||||
homepage = "https://github.com/nba-emu/NanoBoyAdvance";
|
||||
homepage = "https://nanoboyadvance.eu/";
|
||||
license = lib.licenses.gpl3Plus;
|
||||
mainProgram = "NanoBoyAdvance";
|
||||
maintainers = with lib.maintainers; [ tomasajt ];
|
||||
maintainers = with lib.maintainers; [
|
||||
tomasajt
|
||||
lukas-sgx
|
||||
];
|
||||
platforms = lib.platforms.all;
|
||||
};
|
||||
})
|
||||
|
||||
@@ -5,20 +5,33 @@
|
||||
openssl,
|
||||
}:
|
||||
|
||||
let
|
||||
# Atlas needs the dep in a certain place, easier to download and and place in deps/ folder
|
||||
sat = fetchFromGitHub {
|
||||
owner = "nim-lang";
|
||||
repo = "sat";
|
||||
# The atlas nimble file (https://github.com/nim-lang/atlas/blob/master/atlas.nimble) doesn't
|
||||
# provide a version and upstream sat package has no version tags. This is the latest commit
|
||||
# as of 2026-08-14
|
||||
rev = "9d52513b3c68bfb929dbd687d4fb2836cfee6936";
|
||||
hash = "sha256-y9kFjYFrmVejIE8fSh4AehaNnCO/UISssrnGwwcnJLk=";
|
||||
};
|
||||
in
|
||||
buildNimPackage (
|
||||
final: prev: {
|
||||
final: prev: rec {
|
||||
pname = "atlas";
|
||||
version = "unstable-2023-09-22";
|
||||
version = "0.14.12";
|
||||
src = fetchFromGitHub {
|
||||
owner = "nim-lang";
|
||||
repo = "atlas";
|
||||
rev = "ab22f997c22a644924c1a9b920f8ce207da9b77f";
|
||||
hash = "sha256-TsZ8TriVuKEY9/mV6KR89eFOgYrgTqXmyv/vKu362GU=";
|
||||
rev = "${version}";
|
||||
hash = "sha256-7LPjxqsWlZ0tjsXfMF0q93O9VLDgT+7J20QrJ+1ihDg=";
|
||||
};
|
||||
buildInputs = [ openssl ];
|
||||
prePatch = ''
|
||||
rm config.nims
|
||||
''; # never trust a .nims file
|
||||
preConfigure = ''
|
||||
mkdir deps
|
||||
cp -r ${sat} deps/sat
|
||||
'';
|
||||
doCheck = false; # tests will clone repos
|
||||
meta = final.src.meta // {
|
||||
description = "Nim package cloner";
|
||||
|
||||
@@ -36,7 +36,7 @@ let
|
||||
in
|
||||
effectiveStdenv.mkDerivation (finalAttrs: {
|
||||
pname = "nixl";
|
||||
version = "1.3.2";
|
||||
version = "1.4.0";
|
||||
|
||||
__structuredAttrs = true;
|
||||
strictDeps = true;
|
||||
@@ -45,7 +45,7 @@ effectiveStdenv.mkDerivation (finalAttrs: {
|
||||
owner = "ai-dynamo";
|
||||
repo = "nixl";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-aSZ9kiEAQlVFW3+XJih5Ujk1mxOvaepX19u3Xfz4iSg=";
|
||||
hash = "sha256-fOtPutRgKscP396J0Rh6V9PIQ+LsE7h71vtduviHvWI=";
|
||||
};
|
||||
|
||||
postPatch =
|
||||
@@ -64,17 +64,6 @@ effectiveStdenv.mkDerivation (finalAttrs: {
|
||||
substituteInPlace src/plugins/ucx/ucx_backend.cpp \
|
||||
--replace-fail 'io_->post(' 'asio::post(*io_, '
|
||||
''
|
||||
# Fix UB: explicit destructor call on lock_guard (GCC 15 -Werror=maybe-uninitialized)
|
||||
# Replace lock_guard + manual destructor with unique_lock + unlock()
|
||||
+ ''
|
||||
substituteInPlace src/plugins/libfabric/libfabric_backend.cpp \
|
||||
--replace-fail \
|
||||
'std::lock_guard<std::mutex> lock(connection_state_mutex_);' \
|
||||
'std::unique_lock<std::mutex> lock(connection_state_mutex_);' \
|
||||
--replace-fail \
|
||||
'lock.~lock_guard();' \
|
||||
'lock.unlock();'
|
||||
''
|
||||
# Fix GDS plugin: Nix uses lib/ not lib64/
|
||||
+ ''
|
||||
substituteInPlace src/plugins/cuda_gds/meson.build src/plugins/gds_mt/meson.build \
|
||||
|
||||
@@ -6,16 +6,16 @@
|
||||
|
||||
buildNpmPackage rec {
|
||||
pname = "npm-check-updates";
|
||||
version = "19.3.2";
|
||||
version = "23.0.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "raineorshine";
|
||||
repo = "npm-check-updates";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-rQRBPfP7w9a2qCjOxNtl9mmSJiYZYbJyyOh3FEfckxk=";
|
||||
hash = "sha256-XCUtMEYEkBvn5Y32uLrbvCdpSTXOEdq2Pf9tPo6JWLI=";
|
||||
};
|
||||
|
||||
npmDepsHash = "sha256-wcpaJv8ji5Yr8Whp+fk+CYp4w3WcnYo20q/Injf/7Z8=";
|
||||
npmDepsHash = "sha256-dsgvdgJzpxKhMjfIVO7Tnu4xxvTJYyk8Wjth7++ZHdo=";
|
||||
|
||||
postPatch = ''
|
||||
sed -i '/"prepare"/d' package.json
|
||||
|
||||
@@ -111,12 +111,12 @@ let
|
||||
# vendored in-tree. Pre-stage the pin (tracks upstream's
|
||||
# `LLAMA_CPP_VERSION` file) so the FetchContent step uses our copy
|
||||
# instead of trying to clone over the network in the sandbox.
|
||||
llamaCppVersion = "b10242";
|
||||
llamaCppVersion = "b10380";
|
||||
llamaCppSrc = fetchFromGitHub {
|
||||
owner = "ggml-org";
|
||||
repo = "llama.cpp";
|
||||
tag = llamaCppVersion;
|
||||
hash = "sha256-mBqO6h9eiSAXqiHy1H3aK2ACbz1aYagmjAN7IpXNTcw=";
|
||||
hash = "sha256-HT0QuIFJz5cgH2qinxhtyLEL/RrUpziZuntj/EDQtzI=";
|
||||
};
|
||||
|
||||
wrapperOptions = [
|
||||
@@ -152,13 +152,13 @@ let
|
||||
in
|
||||
goBuild (finalAttrs: {
|
||||
pname = "ollama";
|
||||
version = "0.32.7";
|
||||
version = "0.32.11";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ollama";
|
||||
repo = "ollama";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-dCUDeAdzJETCMumbSMSkmc6n3uQR36jvjBnn+gaVr/U=";
|
||||
hash = "sha256-TD/EH1/0LholwtNxcM9IyQP8Zgh2+04k+lKZkCj5F4M=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-HMwoaFBMbpoy8f0I+O+i7kIa9BslLu3FcVWeaIOkpvs=";
|
||||
@@ -225,6 +225,10 @@ goBuild (finalAttrs: {
|
||||
# OLLAMA_LLAMA_CPP_SKIP_COMPAT_PATCH=ON to the child build) — the
|
||||
# caller has to. The apply-patch.cmake script is idempotent so this
|
||||
# is safe to re-run.
|
||||
if [[ ${llamaCppVersion} != $(cat LLAMA_CPP_VERSION) ]]; then
|
||||
echo "llama-cpp version mismatch, expected ${llamaCppVersion}, but found $(cat LLAMA_CPP_VERSION)"
|
||||
exit 1
|
||||
fi
|
||||
cp -r ${llamaCppSrc} $TMPDIR/llama-cpp-src
|
||||
chmod -R +w $TMPDIR/llama-cpp-src
|
||||
( cd $TMPDIR/llama-cpp-src && \
|
||||
@@ -377,6 +381,7 @@ goBuild (finalAttrs: {
|
||||
service-rocm = nixosTests.ollama-rocm;
|
||||
service-vulkan = nixosTests.ollama-vulkan;
|
||||
};
|
||||
updateScript = ./update.sh;
|
||||
}
|
||||
// lib.optionalAttrs (!enableRocm && !enableCuda && !enableVulkan) { updateScript = ./update.sh; };
|
||||
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
ncurses,
|
||||
gettext,
|
||||
pigeon,
|
||||
go-mockery,
|
||||
protoc-go-inject-tag,
|
||||
libxcrypt,
|
||||
vips,
|
||||
@@ -20,7 +19,8 @@ let
|
||||
bingoBinsMakefile = builtins.concatStringsSep "\n" (
|
||||
lib.mapAttrsToList (n: v: "${n} := ${v}\n\\$(${n}):") {
|
||||
GO_XGETTEXT = "xgettext";
|
||||
MOCKERY = "mockery";
|
||||
# no need to generate mocks, as they are in-repo already
|
||||
MOCKERY = "true";
|
||||
PIGEON = "pigeon";
|
||||
PROTOC_GO_INJECT_TAG = "protoc-go-inject-tag";
|
||||
}
|
||||
@@ -76,7 +76,6 @@ buildGoModule (finalAttrs: {
|
||||
ncurses
|
||||
gettext
|
||||
pigeon
|
||||
go-mockery
|
||||
protoc-go-inject-tag
|
||||
pkg-config
|
||||
];
|
||||
|
||||
@@ -4,15 +4,37 @@
|
||||
rustPlatform,
|
||||
fetchFromGitHub,
|
||||
cargo-bundle,
|
||||
libicns,
|
||||
resvg,
|
||||
fontconfig,
|
||||
freetype,
|
||||
libGL,
|
||||
libxcb,
|
||||
libxkbcommon,
|
||||
makeBinaryWrapper,
|
||||
nix-update-script,
|
||||
openssl,
|
||||
pkg-config,
|
||||
versionCheckHook,
|
||||
vulkan-loader,
|
||||
wayland,
|
||||
}:
|
||||
|
||||
let
|
||||
# crates/openlogi-gui/build.rs embeds gpui-component's themes, which live at
|
||||
# that repo's root rather than inside the crate, so cargo vendoring drops them.
|
||||
# Fetch the rev Cargo.lock pins and point build.rs's OPENLOGI_THEMES_DIR
|
||||
# escape hatch at it. This pin follows Cargo.lock rather than openlogi's
|
||||
# version, and nix-update does not maintain it.
|
||||
gpuiComponentThemes = fetchFromGitHub {
|
||||
owner = "longbridge";
|
||||
repo = "gpui-component";
|
||||
rev = "031555662e99a1b5a549990b47f246d475b8288a";
|
||||
hash = "sha256-yOXdgxQgfvGN2/+OdDnl1pYti0DoGFvS3Tyqvj3Bkng=";
|
||||
};
|
||||
in
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "openlogi";
|
||||
version = "0.3.4";
|
||||
version = "0.6.25";
|
||||
|
||||
strictDeps = true;
|
||||
__structuredAttrs = true;
|
||||
@@ -21,12 +43,17 @@ rustPlatform.buildRustPackage (finalAttrs: {
|
||||
owner = "AprilNEA";
|
||||
repo = "OpenLogi";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-04o/Ry65CdNtycgJfqhXwTD5InUwfkr88xQ+I/5Pe4o=";
|
||||
hash = "sha256-JziSstP3TdPVuqpZHtStT5fEy431tdFW7nB6bZvMyVA=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-nKQRcRsEq5JJpn0DZIssS/wAwVsj4kq9J2WmQXJ3smY=";
|
||||
cargoHash = "sha256-MVmPZ2IDss6+HmHKGdg4Q3g4W/fJgaQRGKoeUKDiEFU=";
|
||||
|
||||
postPatch = ''
|
||||
grep -q 'gpui-component?rev=${gpuiComponentThemes.rev}' Cargo.lock || {
|
||||
echo "ERROR: gpui-component revision needs update (must match Cargo.lock)"
|
||||
exit 1
|
||||
}
|
||||
|
||||
# gpui-component generates its IconName enum from a sibling assets directory,
|
||||
# but cargo vendoring stores gpui-component-assets as a separate package.
|
||||
for component in "$cargoDepsCopy"/source-git-*/gpui-component-[0-9]*; do
|
||||
@@ -42,15 +69,33 @@ rustPlatform.buildRustPackage (finalAttrs: {
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
cargo-bundle
|
||||
libicns
|
||||
resvg
|
||||
rustPlatform.bindgenHook
|
||||
]
|
||||
++ lib.optionals stdenv.hostPlatform.isDarwin [
|
||||
cargo-bundle
|
||||
]
|
||||
++ lib.optionals stdenv.hostPlatform.isLinux [
|
||||
makeBinaryWrapper
|
||||
pkg-config
|
||||
];
|
||||
|
||||
buildInputs = lib.optionals stdenv.hostPlatform.isLinux [
|
||||
fontconfig
|
||||
freetype
|
||||
libGL
|
||||
libxcb
|
||||
libxkbcommon
|
||||
openssl
|
||||
vulkan-loader
|
||||
wayland
|
||||
];
|
||||
|
||||
cargoBuildFlags = [
|
||||
"--package=openlogi"
|
||||
"--package=openlogi-gui"
|
||||
]
|
||||
++ lib.optionals stdenv.hostPlatform.isLinux [
|
||||
"--package=openlogi-agent"
|
||||
];
|
||||
|
||||
cargoTestFlags = [ "--workspace" ];
|
||||
@@ -59,29 +104,14 @@ rustPlatform.buildRustPackage (finalAttrs: {
|
||||
"gpui_platform/runtime_shaders"
|
||||
];
|
||||
|
||||
# Upstream intentionally fetches optional device images on first launch
|
||||
# unless OPENLOGI_BUNDLE_ASSETS is set while bundling.
|
||||
preBuild = ''
|
||||
iconset=$(mktemp -d)
|
||||
for size in 16 32 128 256 512; do
|
||||
resvg \
|
||||
--width "$size" \
|
||||
--height "$size" \
|
||||
design/icon/openlogi.svg \
|
||||
"$iconset/icon_''${size}x''${size}.png"
|
||||
done
|
||||
|
||||
mkdir -p crates/openlogi-gui/icon
|
||||
png2icns crates/openlogi-gui/icon/AppIcon.icns "$iconset"/*.png
|
||||
|
||||
rm -rf crates/openlogi-gui/assets
|
||||
mkdir -p crates/openlogi-gui/assets
|
||||
'';
|
||||
env.OPENLOGI_THEMES_DIR = "${gpuiComponentThemes}/themes";
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
release_target="target/${stdenv.hostPlatform.rust.cargoShortTarget}/release"
|
||||
''
|
||||
+ lib.optionalString stdenv.hostPlatform.isDarwin ''
|
||||
mv "$release_target/openlogi-gui" target/release/openlogi-gui
|
||||
|
||||
pushd crates/openlogi-gui
|
||||
@@ -92,10 +122,49 @@ rustPlatform.buildRustPackage (finalAttrs: {
|
||||
mkdir -p "$out/Applications" "$out/bin"
|
||||
mv "$app_path" "$out/Applications/"
|
||||
install -Dm755 "$release_target/openlogi" "$out/bin/openlogi"
|
||||
''
|
||||
+ lib.optionalString stdenv.hostPlatform.isLinux ''
|
||||
install -Dm755 "$release_target/openlogi" "$out/bin/openlogi"
|
||||
install -Dm755 "$release_target/openlogi-gui" "$out/bin/openlogi-gui"
|
||||
install -Dm755 "$release_target/openlogi-agent" "$out/bin/openlogi-agent"
|
||||
|
||||
# Upstream's own packaging inputs, installed verbatim rather than
|
||||
# re-authored here (they are what the .deb/.rpm ship).
|
||||
install -Dm644 packaging/linux/udev/70-openlogi.rules \
|
||||
"$out/lib/udev/rules.d/70-openlogi.rules"
|
||||
install -Dm644 packaging/linux/desktop/openlogi.desktop \
|
||||
"$out/share/applications/openlogi.desktop"
|
||||
install -Dm644 packaging/linux/systemd/openlogi-agent.service \
|
||||
"$out/share/systemd/user/openlogi-agent.service"
|
||||
|
||||
# The unit hardcodes /usr/bin (upstream's install.sh rewrites it for a
|
||||
# custom PREFIX); point it at the store path instead.
|
||||
substituteInPlace "$out/share/systemd/user/openlogi-agent.service" \
|
||||
--replace-fail "ExecStart=/usr/bin/openlogi-agent" \
|
||||
"ExecStart=$out/bin/openlogi-agent"
|
||||
|
||||
install -Dm644 design/icon/openlogi.png \
|
||||
"$out/share/icons/hicolor/1024x1024/apps/openlogi.png"
|
||||
''
|
||||
+ ''
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
# GPUI (Blade) dlopen()s its Vulkan/Wayland/GL backends at runtime, so they
|
||||
# are invisible to the linker and must be on the wrapper's search path.
|
||||
postFixup = lib.optionalString stdenv.hostPlatform.isLinux ''
|
||||
wrapProgram "$out/bin/openlogi-gui" \
|
||||
--suffix LD_LIBRARY_PATH : "${
|
||||
lib.makeLibraryPath [
|
||||
libGL
|
||||
libxcb
|
||||
libxkbcommon
|
||||
vulkan-loader
|
||||
wayland
|
||||
]
|
||||
}"
|
||||
'';
|
||||
|
||||
doInstallCheck = true;
|
||||
nativeInstallCheckInputs = [ versionCheckHook ];
|
||||
versionCheckProgramArg = "--version";
|
||||
@@ -112,6 +181,9 @@ rustPlatform.buildRustPackage (finalAttrs: {
|
||||
];
|
||||
mainProgram = "openlogi";
|
||||
maintainers = with lib.maintainers; [ imcvampire ];
|
||||
platforms = lib.platforms.darwin;
|
||||
platforms = lib.platforms.darwin ++ [
|
||||
"aarch64-linux"
|
||||
"x86_64-linux"
|
||||
];
|
||||
};
|
||||
})
|
||||
|
||||
@@ -14,8 +14,9 @@
|
||||
libtiff,
|
||||
mpfr,
|
||||
nanoflann,
|
||||
nix-update-script,
|
||||
llvmPackages,
|
||||
opencv,
|
||||
openmp,
|
||||
pkg-config,
|
||||
python3Packages,
|
||||
stdenv,
|
||||
@@ -28,30 +29,32 @@ let
|
||||
buildInputs = old.buildInputs ++ [ zstd ];
|
||||
});
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
version = "2.4.0";
|
||||
pname = "openmvs";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "cdcseacave";
|
||||
repo = "openmvs";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-0tL2tqHYBQMGL9k+NqTUxieWuDP3YB6X9DcXYnlGWWg=";
|
||||
tag = "v${finalAttrs.version}";
|
||||
fetchSubmodules = true;
|
||||
hash = "sha256-0tL2tqHYBQMGL9k+NqTUxieWuDP3YB6X9DcXYnlGWWg=";
|
||||
};
|
||||
|
||||
# SSE is enabled by default
|
||||
cmakeFlags = [
|
||||
(lib.cmakeFeature "Python3_EXECUTABLE" (lib.getExe python3Packages.python))
|
||||
]
|
||||
++ lib.optional (!stdenv.hostPlatform.isx86_64) "-DOpenMVS_USE_SSE=OFF";
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace CMakeLists.txt --replace-fail \
|
||||
'FIND_PACKAGE(Boost REQUIRED COMPONENTS iostreams program_options system serialization OPTIONAL_COMPONENTS ''${Boost_EXTRA_COMPONENTS})' \
|
||||
'FIND_PACKAGE(Boost REQUIRED COMPONENTS iostreams program_options serialization OPTIONAL_COMPONENTS ''${Boost_EXTRA_COMPONENTS})'
|
||||
'';
|
||||
|
||||
cmakeFlags = [
|
||||
(lib.cmakeFeature "Python3_EXECUTABLE" (lib.getExe python3Packages.python))
|
||||
]
|
||||
# SSE is enabled by default
|
||||
++ lib.optionals (!stdenv.hostPlatform.isx86_64) [
|
||||
(lib.cmakeBool "OpenMVS_USE_SSE" false)
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
boostWithZstd
|
||||
ceres-solver
|
||||
@@ -66,7 +69,7 @@ stdenv.mkDerivation rec {
|
||||
mpfr
|
||||
nanoflann
|
||||
opencv
|
||||
openmp
|
||||
llvmPackages.openmp
|
||||
vcg
|
||||
];
|
||||
|
||||
@@ -94,9 +97,12 @@ stdenv.mkDerivation rec {
|
||||
runHook postCheck
|
||||
'';
|
||||
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
||||
meta = {
|
||||
description = "Open Multi-View Stereo reconstruction library";
|
||||
homepage = "https://github.com/cdcseacave/openMVS";
|
||||
changelog = "https://github.com/cdcseacave/openMVS/releases/tag/${finalAttrs.src.tag}";
|
||||
license = lib.licenses.agpl3Only;
|
||||
platforms = lib.platforms.unix;
|
||||
maintainers = with lib.maintainers; [
|
||||
@@ -104,4 +110,4 @@ stdenv.mkDerivation rec {
|
||||
miniharinn
|
||||
];
|
||||
};
|
||||
}
|
||||
})
|
||||
@@ -10,12 +10,12 @@
|
||||
|
||||
python3Packages.buildPythonApplication (finalAttrs: {
|
||||
pname = "openshot-qt";
|
||||
version = "3.5.1-unstable-2026-04-22";
|
||||
version = "3.5.1-unstable-2026-07-23";
|
||||
src = fetchFromGitHub {
|
||||
owner = "OpenShot";
|
||||
repo = "openshot-qt";
|
||||
rev = "930ff919762570eaf35a879574da8f8da9f196be";
|
||||
hash = "sha256-o0BPEzkEAyoZkPkiR9G8i2nANgDFI4wjD5b9hGOqB0c=";
|
||||
rev = "9cd2b3f3ee9024c3496487a2de30a402515ed659";
|
||||
hash = "sha256-SoEt3tuydz+JUzhvUa7Pejxd1LYNia17YvGmVlnh48I=";
|
||||
};
|
||||
format = "setuptools";
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "parla";
|
||||
version = "0.7.6";
|
||||
version = "0.7.8";
|
||||
__structuredAttrs = true;
|
||||
strictDeps = true;
|
||||
|
||||
@@ -24,7 +24,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
owner = "trufae";
|
||||
repo = "parla";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-1gruDZCgGr8N8mWpYWs2p8HrXRX52DJ/rowvg/1/2Gk=";
|
||||
hash = "sha256-hFAt2P6U9GtV80HeUBMVATv7T5UsCEGTOv9s1khChus=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -69,6 +69,12 @@ buildNpmPackage (finalAttrs: {
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
dontNpmPrune = true;
|
||||
|
||||
preInstall = ''
|
||||
npm prune --omit=dev --no-save
|
||||
'';
|
||||
|
||||
# npm workspace symlinks in the output point into packages/ which
|
||||
# doesn't exist there. Replace runtime deps with built content and
|
||||
# delete the rest.
|
||||
|
||||
@@ -78,7 +78,7 @@ stdenvNoLibc.mkDerivation (finalAttrs: {
|
||||
# rejects -ftls-model; fall back to non-thread-local errno.
|
||||
(lib.mesonBool "thread-local-storage" false)
|
||||
]
|
||||
++ lib.optionals finalAttrs.doCheck [
|
||||
++ lib.optionals finalAttrs.finalPackage.doCheck [
|
||||
(lib.mesonBool "tests" true)
|
||||
(lib.mesonBool "native-tests" canExecute)
|
||||
(lib.mesonBool "native-math-tests" canExecute)
|
||||
|
||||
74
pkgs/by-name/pi/pinentry-egui/package.nix
Normal file
74
pkgs/by-name/pi/pinentry-egui/package.nix
Normal file
@@ -0,0 +1,74 @@
|
||||
{
|
||||
lib,
|
||||
rustPlatform,
|
||||
fetchFromGitHub,
|
||||
pkg-config,
|
||||
expat,
|
||||
fontconfig,
|
||||
freetype,
|
||||
libGL,
|
||||
libxkbcommon,
|
||||
wayland,
|
||||
libx11,
|
||||
libxcursor,
|
||||
libxi,
|
||||
libxrandr,
|
||||
nix-update-script,
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "pinentry-egui";
|
||||
version = "0-unstable-2026-07-10";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "dsociative";
|
||||
repo = "pinentry-egui";
|
||||
rev = "c81bf237048f5b296488751467bb2975982d05af";
|
||||
hash = "sha256-xUhPaXiysXbOctM3FO6WgafVPUOQ+9lP2d4U9PBxCvk=";
|
||||
};
|
||||
|
||||
__structuredAttrs = true;
|
||||
|
||||
cargoHash = "sha256-81W3NOQ6EOV3bMt7SYtg3AjAgmdHZ81gEtQkaOYVFIk=";
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
|
||||
buildInputs = [
|
||||
expat
|
||||
fontconfig
|
||||
freetype
|
||||
libGL
|
||||
libxkbcommon
|
||||
wayland
|
||||
libx11
|
||||
libxcursor
|
||||
libxi
|
||||
libxrandr
|
||||
];
|
||||
|
||||
postFixup = ''
|
||||
patchelf $out/bin/pinentry-egui \
|
||||
--add-rpath ${
|
||||
lib.makeLibraryPath [
|
||||
libGL
|
||||
libxkbcommon
|
||||
wayland
|
||||
]
|
||||
}
|
||||
'';
|
||||
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
||||
meta = {
|
||||
description = "Modern, native Wayland pinentry implementation for GPG using egui";
|
||||
homepage = "https://github.com/dsociative/pinentry-egui";
|
||||
license =
|
||||
with lib.licenses;
|
||||
OR [
|
||||
mit
|
||||
asl20
|
||||
];
|
||||
maintainers = with lib.maintainers; [ colemickens ];
|
||||
mainProgram = "pinentry-egui";
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
})
|
||||
@@ -8,17 +8,18 @@
|
||||
zeromq,
|
||||
czmq,
|
||||
libsodium,
|
||||
runCommand,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "prime-server";
|
||||
version = "0.7.0";
|
||||
version = "0.13.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "kevinkreiser";
|
||||
repo = "prime_server";
|
||||
tag = finalAttrs.version;
|
||||
sha256 = "0izmmvi3pvidhlrgfpg4ccblrw6fil3ddxg5cfxsz4qbh399x83w";
|
||||
hash = "sha256-B6vy/y4PDEpnxXuMpAisBq5avNpW84q/+9zbuNBOnko=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
@@ -26,30 +27,39 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
cmake
|
||||
pkg-config
|
||||
];
|
||||
buildInputs = [
|
||||
buildInputs = [ libsodium ];
|
||||
propagatedBuildInputs = [
|
||||
curl
|
||||
zeromq
|
||||
czmq
|
||||
libsodium
|
||||
zeromq
|
||||
];
|
||||
|
||||
env.NIX_CFLAGS_COMPILE = toString (
|
||||
[
|
||||
# https://github.com/kevinkreiser/prime_server/issues/95
|
||||
"-Wno-error=unused-variable"
|
||||
]
|
||||
++ lib.optionals stdenv.hostPlatform.isDarwin [
|
||||
# logging.hpp calls sprintf, which the macOS SDK marks deprecated. The
|
||||
# build uses -Werror, so the deprecation stops it.
|
||||
"-Wno-error=deprecated-declarations"
|
||||
]
|
||||
);
|
||||
passthru.tests.simple =
|
||||
runCommand "prime-server-test"
|
||||
{
|
||||
nativeBuildInputs = [
|
||||
finalAttrs.finalPackage
|
||||
curl
|
||||
];
|
||||
}
|
||||
''
|
||||
prime_serverd tcp://127.0.0.1:8001 1 0 &
|
||||
pid=$!
|
||||
trap 'kill $pid' EXIT
|
||||
|
||||
test "$(curl -fsS --retry 30 --retry-delay 1 --retry-connrefused 'http://127.0.0.1:8001/is_prime?possible_prime=17')" = 17
|
||||
|
||||
touch "$out"
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "Non-blocking (web)server API for distributed computing and SOA based on zeromq";
|
||||
homepage = "https://github.com/kevinkreiser/prime_server";
|
||||
license = lib.licenses.bsd2;
|
||||
maintainers = [ lib.maintainers.Thra11 ];
|
||||
maintainers = with lib.maintainers; [
|
||||
Thra11
|
||||
karlbeecken
|
||||
];
|
||||
platforms = lib.platforms.linux ++ lib.platforms.darwin;
|
||||
};
|
||||
})
|
||||
|
||||
@@ -50,7 +50,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
cmakeFlags = [
|
||||
(lib.cmakeBool "BUILD_DOCUMENTATION" false)
|
||||
(lib.cmakeBool "BUILD_EXAMPLES" false)
|
||||
(lib.cmakeBool "BUILD_TESTING" finalAttrs.doCheck)
|
||||
(lib.cmakeBool "BUILD_TESTING" finalAttrs.finalPackage.doCheck)
|
||||
(lib.cmakeBool "BUILD_OMEMO" withOmemo)
|
||||
(lib.cmakeBool "WITH_ENCRYPTION" withEncryption)
|
||||
(lib.cmakeBool "WITH_GSTREAMER" withGstreamer)
|
||||
|
||||
@@ -26,13 +26,13 @@
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "radicle-desktop";
|
||||
version = "0.14.0";
|
||||
version = "0.15.0";
|
||||
|
||||
src = fetchFromRadicle {
|
||||
seed = "seed.radicle.dev";
|
||||
repo = "z4D5UCArafTzTQpDZNQRuqswh3ury";
|
||||
tag = "releases/${finalAttrs.version}";
|
||||
hash = "sha256-yT51MCHt00JEUbuC6rcXN3L4Vul3aBa8YCgpGVzM5rQ=";
|
||||
hash = "sha256-L5QfFvswU/iPgObhh09/SAlMRy5w+Qs1kXDGpY31wjA=";
|
||||
leaveDotGit = true;
|
||||
postFetch = ''
|
||||
git -C $out rev-parse --short HEAD > $out/.git_head
|
||||
@@ -53,10 +53,10 @@ rustPlatform.buildRustPackage (finalAttrs: {
|
||||
|
||||
npmDeps = fetchNpmDeps {
|
||||
inherit (finalAttrs) src;
|
||||
hash = "sha256-HsPz3S2TL7TJzDU7c7IWgT7kO+FkloMsAWc8g5ZKofw=";
|
||||
hash = "sha256-4gRc/nNrOEi7PU+5bSsR22z3f55cINebSrlFQ1NGTfk=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-BTSmfMrxNwAdoPuYn4hbx9C9myE1wJh+1FXPG78IgeU=";
|
||||
cargoHash = "sha256-DZM1YX3lzCvKGtrSxxeJkinR91HFWe5SpdqQ+oP1Hgc=";
|
||||
|
||||
twemojiAssets = fetchFromGitHub {
|
||||
owner = "twitter";
|
||||
|
||||
118
pkgs/by-name/ra/ratspeak/package.nix
Normal file
118
pkgs/by-name/ra/ratspeak/package.nix
Normal file
@@ -0,0 +1,118 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
rustPlatform,
|
||||
fetchFromGitHub,
|
||||
cargo-tauri,
|
||||
alsa-lib,
|
||||
dbus,
|
||||
glib-networking,
|
||||
libayatana-appindicator,
|
||||
libsoup_3,
|
||||
openssl,
|
||||
pcsclite,
|
||||
perl,
|
||||
pkg-config,
|
||||
udev,
|
||||
webkitgtk_4_1,
|
||||
wrapGAppsHook4,
|
||||
}:
|
||||
|
||||
let
|
||||
# Ratspeak resolves its protocol crates by relative path from sibling
|
||||
# checkouts (../rsReticulum and friends). Upstream does not tag the
|
||||
# siblings together with every app release, so each one is pinned to the
|
||||
# revision current at the v1.0.25 release date.
|
||||
rsReticulum = fetchFromGitHub {
|
||||
owner = "ratspeak";
|
||||
repo = "rsReticulum";
|
||||
rev = "17e6107aa8fb9a5b0c2cac2f4fe4b68655593bd8";
|
||||
hash = "sha256-0HjeGZ57eiz9z9akc+ESdZLAN+/uR9LyNaMLgYiTPO8=";
|
||||
};
|
||||
rsLXMF = fetchFromGitHub {
|
||||
owner = "ratspeak";
|
||||
repo = "rsLXMF";
|
||||
rev = "393478019b3a076abc7af5f0d2c7b980b3329550";
|
||||
hash = "sha256-uCoU4HtdRy6sB8vi5BtifKFAy0a7FPuHuuRb1EJTJ2c=";
|
||||
};
|
||||
rsLXST = fetchFromGitHub {
|
||||
owner = "ratspeak";
|
||||
repo = "rsLXST";
|
||||
rev = "e3f80815bcf1c1d6af1c07135dfe05b6163d596a";
|
||||
hash = "sha256-921xMNdneOTurUoUR5ImPEB8ztfEQLl9jCZY+s9Cjuo=";
|
||||
};
|
||||
lrgp-rs = fetchFromGitHub {
|
||||
owner = "ratspeak";
|
||||
repo = "lrgp-rs";
|
||||
rev = "0b55361ebf91c1caa09d5ed8ab88ac0a6d955de6";
|
||||
hash = "sha256-MZGWGCWLc+suHCD9NFV6m8A4EP4pLfogaqm93pMk/ss=";
|
||||
};
|
||||
in
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "ratspeak";
|
||||
version = "1.0.25";
|
||||
__structuredAttrs = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ratspeak";
|
||||
repo = "Ratspeak";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-HJH31dAnmSK85AkX+ufvmo+Nmd9X6xmLO06Lys8kces=";
|
||||
};
|
||||
|
||||
# The app expects the protocol repos next to its own checkout.
|
||||
postUnpack = ''
|
||||
cp -r ${rsReticulum} rsReticulum
|
||||
cp -r ${rsLXMF} rsLXMF
|
||||
cp -r ${rsLXST} rsLXST
|
||||
cp -r ${lrgp-rs} lrgp-rs
|
||||
chmod -R u+w rsReticulum rsLXMF rsLXST lrgp-rs
|
||||
'';
|
||||
|
||||
cargoHash = "sha256-XumEJazJux0FFLS6qcruaXdOLsZ9hfn8Q/hA9Ot4RzM=";
|
||||
cargoRoot = "src-tauri";
|
||||
buildAndTestSubdir = finalAttrs.cargoRoot;
|
||||
|
||||
nativeBuildInputs = [
|
||||
cargo-tauri.hook
|
||||
perl
|
||||
pkg-config
|
||||
]
|
||||
++ lib.optionals stdenv.hostPlatform.isLinux [ wrapGAppsHook4 ];
|
||||
|
||||
buildInputs = lib.optionals stdenv.hostPlatform.isLinux [
|
||||
alsa-lib
|
||||
dbus
|
||||
glib-networking
|
||||
libayatana-appindicator
|
||||
libsoup_3
|
||||
openssl
|
||||
pcsclite
|
||||
udev
|
||||
webkitgtk_4_1
|
||||
];
|
||||
|
||||
# The dashboard ships modular CSS; the app serves the concatenated file.
|
||||
preBuild = ''
|
||||
bash dashboard/build-css.sh
|
||||
'';
|
||||
|
||||
# The tray icon library is dlopened at runtime, not linked.
|
||||
preFixup = lib.optionalString stdenv.hostPlatform.isLinux ''
|
||||
gappsWrapperArgs+=(
|
||||
--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ libayatana-appindicator ]}
|
||||
)
|
||||
'';
|
||||
|
||||
passthru.updateScript = ./update.sh;
|
||||
|
||||
meta = {
|
||||
description = "Reticulum and LXMF client with messaging, file sharing, voice calls and LoRa support";
|
||||
homepage = "https://github.com/ratspeak/Ratspeak";
|
||||
changelog = "https://github.com/ratspeak/Ratspeak/releases/tag/${finalAttrs.src.tag}";
|
||||
license = lib.licenses.agpl3Plus;
|
||||
maintainers = with lib.maintainers; [ eldios ];
|
||||
platforms = lib.platforms.linux;
|
||||
mainProgram = "ratspeak";
|
||||
};
|
||||
})
|
||||
72
pkgs/by-name/ra/ratspeak/update.sh
Executable file
72
pkgs/by-name/ra/ratspeak/update.sh
Executable file
@@ -0,0 +1,72 @@
|
||||
#!/usr/bin/env bash
|
||||
# Update ratspeak to the latest upstream release tag.
|
||||
#
|
||||
# Ratspeak resolves its protocol crates from sibling checkouts, so a version
|
||||
# bump means updating five pins together: the app tag plus the four sibling
|
||||
# revisions current at that tag's date. Requires: curl, jq, nix, sed.
|
||||
set -euo pipefail
|
||||
cd "$(dirname "$0")"
|
||||
|
||||
github_api() {
|
||||
curl -sfL -H "Accept: application/vnd.github+json" \
|
||||
${GITHUB_TOKEN:+-H "Authorization: Bearer $GITHUB_TOKEN"} \
|
||||
"https://api.github.com/$1"
|
||||
}
|
||||
|
||||
# Works both from the standalone packaging flake and from a nixpkgs checkout.
|
||||
build() {
|
||||
if [ -f flake.nix ]; then
|
||||
nix build .#ratspeak
|
||||
else
|
||||
nix-build "$(git rev-parse --show-toplevel)" -A ratspeak --no-out-link
|
||||
fi
|
||||
}
|
||||
|
||||
prefetch() {
|
||||
nix flake prefetch --json "github:ratspeak/$1/$2" | jq -r .hash
|
||||
}
|
||||
|
||||
current=$(sed -nE 's/^ *version = "([^"]+)";$/\1/p' package.nix | head -1)
|
||||
# releases/latest skips pre-releases (rc tags) on purpose.
|
||||
tag=${RATSPEAK_TAG:-$(github_api repos/ratspeak/Ratspeak/releases/latest | jq -r .tag_name)}
|
||||
new=${tag#v}
|
||||
|
||||
if [ "$new" = "$current" ] && [ -z "${RATSPEAK_TAG:-}" ]; then
|
||||
echo "ratspeak is up to date ($current)"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
tag_date=$(github_api "repos/ratspeak/Ratspeak/commits/$tag" | jq -r .commit.committer.date)
|
||||
echo "updating ratspeak $current -> $new (tagged $tag_date)"
|
||||
|
||||
sed -i -E "s|^( *version = )\"[^\"]+\";|\1\"$new\";|" package.nix
|
||||
|
||||
app_hash=$(prefetch Ratspeak "$tag")
|
||||
sed -i "/repo = \"Ratspeak\";/,/hash = / s|hash = \".*\";|hash = \"$app_hash\";|" package.nix
|
||||
|
||||
for repo in rsReticulum rsLXMF rsLXST lrgp-rs; do
|
||||
rev=$(github_api "repos/ratspeak/$repo/commits?until=$tag_date&per_page=1" | jq -r '.[0].sha')
|
||||
hash=$(prefetch "$repo" "$rev")
|
||||
echo " $repo -> $rev"
|
||||
sed -i \
|
||||
-e "/repo = \"$repo\";/,/hash = / s|rev = \".*\";|rev = \"$rev\";|" \
|
||||
-e "/repo = \"$repo\";/,/hash = / s|hash = \".*\";|hash = \"$hash\";|" \
|
||||
package.nix
|
||||
done
|
||||
|
||||
# Two-pass cargoHash: reset to the fake hash, read the real one from the
|
||||
# vendor mismatch error, write it back. The build failure is expected here,
|
||||
# so it must not trip set -e/pipefail.
|
||||
fake="sha256-$(printf 'A%.0s' {1..43})="
|
||||
sed -i -E "s|^( *cargoHash = )\".*\";|\1\"$fake\";|" package.nix
|
||||
build_log=$(build 2>&1 || true)
|
||||
cargo_hash=$(printf '%s\n' "$build_log" | sed -nE 's/^ *got: *(sha256-.*)$/\1/p' | head -1)
|
||||
if [ -z "$cargo_hash" ]; then
|
||||
echo "error: could not extract cargoHash from build output" >&2
|
||||
exit 1
|
||||
fi
|
||||
sed -i -E "s|^( *cargoHash = )\".*\";|\1\"$cargo_hash\";|" package.nix
|
||||
|
||||
echo "verifying build..."
|
||||
build
|
||||
echo "ratspeak updated to $new"
|
||||
@@ -27,8 +27,8 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace neo/extern/nvrhi/tools/shaderCompiler/CMakeLists.txt \
|
||||
--replace "AppleClang" "Clang"
|
||||
substituteInPlace neo/extern/ShaderMake/CMakeLists.txt \
|
||||
--replace-fail "AppleClang" "Clang"
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -7,10 +7,10 @@
|
||||
}:
|
||||
let
|
||||
pname = "remnote";
|
||||
version = "1.27.19";
|
||||
version = "1.27.32";
|
||||
src = fetchurl {
|
||||
url = "https://download2.remnote.io/remnote-desktop2/RemNote-${version}.AppImage";
|
||||
hash = "sha256-efu5QQRzZan6S0mfNuxnCJMGnLCM+BSwMXpAqOPrqhI=";
|
||||
hash = "sha256-CwiQFMu/N+Dj8pntSMy8OjjCfbgZBSV2pEBRPk7njfs=";
|
||||
};
|
||||
appimageContents = appimageTools.extract { inherit pname version src; };
|
||||
in
|
||||
|
||||
@@ -44,7 +44,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
"install"
|
||||
"install-lib-headers"
|
||||
]
|
||||
++ lib.optionals (!enableStatic) [
|
||||
++ lib.optionals (!enableStatic && !stdenv.hostPlatform.isWindows) [
|
||||
"install-lib-so-link"
|
||||
];
|
||||
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
{ fetchurl }:
|
||||
let
|
||||
pname = "roam-research";
|
||||
version = "0.0.24";
|
||||
in
|
||||
{
|
||||
inherit pname version;
|
||||
sources = {
|
||||
aarch64-darwin = fetchurl {
|
||||
url = "https://roam-electron-deploy.s3.us-east-2.amazonaws.com/Roam+Research-${version}-arm64.dmg";
|
||||
hash = "sha256-fPtJAKfh65/dEryi0kdg+1hLfdvzBU87uS0y6eaaVy4=";
|
||||
};
|
||||
x86_64-linux = fetchurl {
|
||||
url = "https://roam-electron-deploy.s3.us-east-2.amazonaws.com/${pname}_${version}_amd64.deb";
|
||||
hash = "sha256-vpceynkr0/IOSqdmtVxKliSIJEGvLhczqgrsQyqPVIo=";
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,42 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
_7zz,
|
||||
fetchurl,
|
||||
}:
|
||||
let
|
||||
common = import ./common.nix { inherit fetchurl; };
|
||||
inherit (stdenv.hostPlatform) system;
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
inherit (common) pname version;
|
||||
src = common.sources.${system} or (throw "Source for ${pname} is not available for ${system}");
|
||||
|
||||
appName = "Roam Research";
|
||||
|
||||
sourceRoot = ".";
|
||||
|
||||
nativeBuildInputs = [ _7zz ];
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p "$out/Applications"
|
||||
cp -R *.app "$out/Applications"
|
||||
|
||||
mkdir -p $out/bin
|
||||
ln -s "$out/Applications/${appName}.app/Contents/MacOS/${appName}" "$out/bin/${appName}"
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "Note-taking tool for networked thought";
|
||||
homepage = "https://roamresearch.com/";
|
||||
maintainers = with lib.maintainers; [ dbalan ];
|
||||
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
|
||||
license = lib.licenses.unfree;
|
||||
platforms = [
|
||||
"aarch64-darwin"
|
||||
];
|
||||
mainProgram = "roam-research";
|
||||
};
|
||||
}
|
||||
@@ -1,106 +0,0 @@
|
||||
{
|
||||
stdenv,
|
||||
lib,
|
||||
fetchurl,
|
||||
alsa-lib,
|
||||
atk,
|
||||
cairo,
|
||||
cups,
|
||||
dbus,
|
||||
dpkg,
|
||||
expat,
|
||||
gdk-pixbuf,
|
||||
glib,
|
||||
gtk3,
|
||||
libx11,
|
||||
libxscrnsaver,
|
||||
libxcomposite,
|
||||
libxcursor,
|
||||
libxdamage,
|
||||
libxext,
|
||||
libxfixes,
|
||||
libxi,
|
||||
libxrandr,
|
||||
libxrender,
|
||||
libxtst,
|
||||
libdrm,
|
||||
libpulseaudio,
|
||||
libxcb,
|
||||
libxkbcommon,
|
||||
libxshmfence,
|
||||
libgbm,
|
||||
nspr,
|
||||
nss,
|
||||
pango,
|
||||
udev,
|
||||
}:
|
||||
|
||||
let
|
||||
common = import ./common.nix { inherit fetchurl; };
|
||||
inherit (stdenv.hostPlatform) system;
|
||||
libPath = lib.makeLibraryPath [
|
||||
alsa-lib
|
||||
atk
|
||||
cairo
|
||||
cups
|
||||
dbus
|
||||
expat
|
||||
gdk-pixbuf
|
||||
glib
|
||||
gtk3
|
||||
libx11
|
||||
libxcomposite
|
||||
libxdamage
|
||||
libxext
|
||||
libxfixes
|
||||
libxi
|
||||
libxrandr
|
||||
libdrm
|
||||
libxcb
|
||||
libxkbcommon
|
||||
libxshmfence
|
||||
libgbm
|
||||
nspr
|
||||
nss
|
||||
pango
|
||||
stdenv.cc.cc
|
||||
libxscrnsaver
|
||||
libxcursor
|
||||
libxrender
|
||||
libxtst
|
||||
libpulseaudio
|
||||
udev
|
||||
];
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
inherit (common) pname version;
|
||||
src = common.sources.${system} or (throw "Source for ${pname} is not available for ${system}");
|
||||
|
||||
nativeBuildInputs = [ dpkg ];
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p "$out/bin"
|
||||
mv opt "$out/"
|
||||
|
||||
ln -s "$out/opt/Roam Research/roam-research" "$out/bin/roam-research"
|
||||
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" --set-rpath "${libPath}:$out/opt/Roam Research:\$ORIGIN" "$out/opt/Roam Research/roam-research"
|
||||
|
||||
mv usr/* "$out/"
|
||||
|
||||
substituteInPlace $out/share/applications/roam-research.desktop \
|
||||
--replace "/opt/Roam Research/roam-research" "roam-research"
|
||||
'';
|
||||
|
||||
# autoPatchelfHook/patchelf are not used because they cause the binary to coredump.
|
||||
dontPatchELF = true;
|
||||
|
||||
meta = {
|
||||
description = "Note-taking tool for networked thought";
|
||||
homepage = "https://roamresearch.com/";
|
||||
maintainers = with lib.maintainers; [ dbalan ];
|
||||
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
|
||||
license = lib.licenses.unfree;
|
||||
platforms = [ "x86_64-linux" ];
|
||||
mainProgram = "roam-research";
|
||||
};
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
{ stdenv, callPackage, ... }@args:
|
||||
let
|
||||
extraArgs = removeAttrs args [ "callPackage" ];
|
||||
in
|
||||
if stdenv.hostPlatform.isDarwin then
|
||||
callPackage ./darwin.nix (extraArgs // { })
|
||||
else
|
||||
callPackage ./linux.nix (extraArgs // { })
|
||||
@@ -7,13 +7,13 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "routedns";
|
||||
version = "0.1.226";
|
||||
version = "0.1.233";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "folbricht";
|
||||
repo = "routedns";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-pGAzdZDZeWgw+BIL5JmrqrllxN7w+Se9yWRVozzgt6s=";
|
||||
hash = "sha256-2Cc7TDv6VxNwr9y+xOcBt1PzQMmq0lguLwQoRRkaasQ=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-w8rZue6/cc8wg40Ey+P216cQGhbCznjSsLi1G4YfRsI=";
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
{
|
||||
fetchFromGitHub,
|
||||
gcc15Stdenv,
|
||||
stdenv,
|
||||
lib,
|
||||
nix-update-script,
|
||||
pkg-config,
|
||||
systemd,
|
||||
}:
|
||||
gcc15Stdenv.mkDerivation (finalAttrs: {
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "runapp";
|
||||
version = "0.5.1";
|
||||
|
||||
|
||||
@@ -4,25 +4,32 @@
|
||||
fetchFromGitHub,
|
||||
nix-update-script,
|
||||
nixosTests,
|
||||
ciMode ? true, # Override to false to run time-sensitive tests locally
|
||||
}:
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "scion";
|
||||
|
||||
version = "0.12.0";
|
||||
version = "0.15.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "scionproto";
|
||||
repo = "scion";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-J51GIQQhS623wFUU5dI/TwT2rkDH69518lpdCLZ/iM0=";
|
||||
hash = "sha256-UQgCjX9xYClsBviNwCmxHXAJ7MNce7olpzaCM2ybuc0=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-Ew/hQM8uhaM89sCcPKUBbiGukDq3h5x+KID3w/8BDHg=";
|
||||
__structuredAttrs = true;
|
||||
|
||||
# Tests bind to localhost
|
||||
__darwinAllowLocalNetworking = true;
|
||||
|
||||
vendorHash = "sha256-A9K2/bWYUdMA8ypSisxk4NMOavHz51FaHEaxahz+0ek=";
|
||||
|
||||
excludedPackages = [
|
||||
"acceptance"
|
||||
"demo"
|
||||
"tools"
|
||||
"private/underlay/ebpf"
|
||||
"pkg/private/xtest/graphupdater"
|
||||
];
|
||||
|
||||
@@ -38,6 +45,11 @@ buildGoModule (finalAttrs: {
|
||||
|
||||
doCheck = true;
|
||||
|
||||
# Upstream disables time-sensitive tests and adjusts timeouts in CI
|
||||
preCheck = lib.optionalString ciMode ''
|
||||
export CI=42
|
||||
'';
|
||||
|
||||
tags = [ "sqlite_mattn" ];
|
||||
|
||||
passthru = {
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "slurm";
|
||||
version = "26-05-2-1";
|
||||
version = "26-05-3-1";
|
||||
|
||||
# N.B. We use github release tags instead of https://www.schedmd.com/downloads.php
|
||||
# because the latter does not keep older releases.
|
||||
@@ -51,7 +51,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
repo = "slurm";
|
||||
# The release tags use - instead of .
|
||||
tag = "slurm-${builtins.replaceStrings [ "." ] [ "-" ] finalAttrs.version}";
|
||||
hash = "sha256-HkBHwN/j0do+CPpouG6qswZEOeY17owmA980wVubiw4=";
|
||||
hash = "sha256-pyzESnZoFxy3A2p3b23SimTUurMlB63VV7dqcXZ43Hw=";
|
||||
};
|
||||
|
||||
outputs = [
|
||||
|
||||
109
pkgs/by-name/sm/smlnj-legacy/package.nix
Normal file
109
pkgs/by-name/sm/smlnj-legacy/package.nix
Normal file
@@ -0,0 +1,109 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchurl,
|
||||
}:
|
||||
let
|
||||
version = "110.99.9";
|
||||
|
||||
arch = if stdenv.hostPlatform.is64bit then "64" else "32";
|
||||
|
||||
hashes = builtins.fromJSON (builtins.readFile ./hashes-legacy.json);
|
||||
|
||||
fetchSource =
|
||||
name:
|
||||
fetchurl {
|
||||
url = "https://smlnj.cs.uchicago.edu/dist/working/${version}/${name}";
|
||||
hash = hashes.${name};
|
||||
};
|
||||
|
||||
bootSource = if stdenv.hostPlatform.is64bit then "boot.amd64-unix.tgz" else "boot.x86-unix.tgz";
|
||||
|
||||
sources = map fetchSource [
|
||||
bootSource
|
||||
"config.tgz"
|
||||
"cm.tgz"
|
||||
"compiler.tgz"
|
||||
"runtime.tgz"
|
||||
"system.tgz"
|
||||
"MLRISC.tgz"
|
||||
"smlnj-lib.tgz"
|
||||
"old-basis.tgz"
|
||||
"ckit.tgz"
|
||||
"nlffi.tgz"
|
||||
"cml.tgz"
|
||||
"eXene.tgz"
|
||||
"ml-lpt.tgz"
|
||||
"ml-lex.tgz"
|
||||
"ml-yacc.tgz"
|
||||
"ml-burg.tgz"
|
||||
"pgraph.tgz"
|
||||
"trace-debug-profile.tgz"
|
||||
"heap2asm.tgz"
|
||||
"smlnj-c.tgz"
|
||||
"doc.tgz"
|
||||
"asdl.tgz"
|
||||
];
|
||||
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
pname = "smlnj";
|
||||
inherit version sources;
|
||||
|
||||
__structuredAttrs = true;
|
||||
strictDeps = true;
|
||||
|
||||
unpackPhase = ''
|
||||
for s in "''${sources[@]}"; do
|
||||
b=$(basename $s)
|
||||
cp $s ''${b#*-}
|
||||
done
|
||||
unpackFile config.tgz
|
||||
mkdir base
|
||||
./config/unpack $TMP runtime
|
||||
'';
|
||||
|
||||
postPatch = ''
|
||||
sed -i '/^PATH=/d' config/_arch-n-opsys base/runtime/config/gen-posix-names.sh
|
||||
echo SRCARCHIVEURL="file:/$TMP" > config/srcarchiveurl
|
||||
'';
|
||||
|
||||
buildPhase = ''
|
||||
./config/install.sh -default ${arch}
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir -pv $out
|
||||
cp -rv bin lib $out
|
||||
|
||||
cd $out/bin
|
||||
for i in *; do
|
||||
sed -i "2iSMLNJ_HOME=$out/" $i
|
||||
done
|
||||
'';
|
||||
|
||||
passthru.updateScript = ./update-legacy.sh;
|
||||
|
||||
meta = {
|
||||
description = "Standard ML of New Jersey, a compiler";
|
||||
homepage = "https://smlnj.org";
|
||||
downloadPage = "https://smlnj.org/dist/working/${version}/install.html";
|
||||
changelog = "https://smlnj.org/dist/working/${version}/${version}-README.html";
|
||||
license = lib.licenses.bsd3;
|
||||
sourceProvenance = with lib.sourceTypes; [
|
||||
fromSource
|
||||
binaryNativeCode
|
||||
];
|
||||
platforms = [
|
||||
"x86_64-linux"
|
||||
"i686-linux"
|
||||
"aarch64-darwin"
|
||||
];
|
||||
maintainers = with lib.maintainers; [
|
||||
skyesoss
|
||||
thoughtpolice
|
||||
];
|
||||
mainProgram = "sml";
|
||||
broken = !(stdenv.buildPlatform.canExecute stdenv.hostPlatform);
|
||||
};
|
||||
}
|
||||
@@ -6,8 +6,8 @@ set -euo pipefail
|
||||
|
||||
dir="$(dirname "$0")"
|
||||
url="https://smlnj.cs.uchicago.edu/dist/working/"
|
||||
hashfile="$dir/hashes.json"
|
||||
nixfile="$dir/default.nix"
|
||||
hashfile="$dir/hashes-legacy.json"
|
||||
nixfile="$dir/package.nix"
|
||||
|
||||
version="$(curl --silent "$url" \
|
||||
| sed -n 's:.*<b>\([0-9]\{3\}\.[0-9.-]\+\)</b>.*:\1:p' \
|
||||
@@ -37,7 +37,7 @@ stdenv.mkDerivation (
|
||||
in
|
||||
{
|
||||
pname = "t3code-unwrapped";
|
||||
version = "0.0.32";
|
||||
version = "0.0.33";
|
||||
strictDeps = true;
|
||||
__structuredAttrs = true;
|
||||
|
||||
@@ -45,7 +45,7 @@ stdenv.mkDerivation (
|
||||
owner = "pingdotgg";
|
||||
repo = "t3code";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-Gmn3Fz0E32TnHPEun6cReXcW/dxfl6qI1TIFHzdWRzU=";
|
||||
hash = "sha256-qZi9hMGzqpmnpqvvVtsQvkZIiVqTgOMWv1y15MiSAYg=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
||||
@@ -1,46 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
autoconf,
|
||||
automake,
|
||||
pkg-config,
|
||||
gtk2,
|
||||
libjack2,
|
||||
libsndfile,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "timemachine";
|
||||
version = "0.3.4";
|
||||
src = fetchFromGitHub {
|
||||
owner = "swh";
|
||||
repo = "timemachine";
|
||||
rev = "v${finalAttrs.version}";
|
||||
sha256 = "16fgyw6jnscx9279dczv72092dddghwlp53rkfw469kcgvjhwx0z";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
autoconf
|
||||
automake
|
||||
];
|
||||
buildInputs = [
|
||||
gtk2
|
||||
libjack2
|
||||
libsndfile
|
||||
];
|
||||
|
||||
preConfigure = "./autogen.sh";
|
||||
|
||||
env.NIX_LDFLAGS = "-lm";
|
||||
|
||||
meta = {
|
||||
description = "JACK audio recorder";
|
||||
homepage = "http://plugin.org.uk/timemachine/";
|
||||
license = lib.licenses.lgpl2;
|
||||
platforms = lib.platforms.linux;
|
||||
maintainers = [ lib.maintainers.nico202 ];
|
||||
mainProgram = "timemachine";
|
||||
};
|
||||
})
|
||||
@@ -10,19 +10,19 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "trivy";
|
||||
version = "0.73.0";
|
||||
version = "0.74.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "aquasecurity";
|
||||
repo = "trivy";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-+iJb/Eg97kjNzg6OTuEWXAPJ/32FpfVU2ED4/6A4U+I=";
|
||||
hash = "sha256-OXOT8qwqh8Gy+IJcvBza5nai5bvNMcAMeeT+b2zuWDg=";
|
||||
};
|
||||
|
||||
# Hash mismatch on across Linux and Darwin
|
||||
proxyVendor = true;
|
||||
|
||||
vendorHash = "sha256-0upMQ2fKKfaHAL/SVyzPpdRoBwMNS9PdHPHGAmEm148=";
|
||||
vendorHash = "sha256-ajXgC6CCw0IaS/e3k0wGNIUOs9mTBIEuV21ZnwZj7SQ=";
|
||||
|
||||
subPackages = [ "cmd/trivy" ];
|
||||
|
||||
|
||||
@@ -46,7 +46,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
++ lib.optionals cudaSupport [
|
||||
cudaPackages.cuda_cudart
|
||||
]
|
||||
++ lib.optionals finalAttrs.doCheck [
|
||||
++ lib.optionals finalAttrs.finalPackage.doCheck [
|
||||
numactl
|
||||
gtest
|
||||
gbenchmark
|
||||
@@ -106,7 +106,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
(lib.cmakeBool "UMF_BUILD_LIBUMF_POOL_JEMALLOC" useJemalloc)
|
||||
|
||||
(lib.cmakeBool "UMF_BUILD_TESTS" finalAttrs.doCheck)
|
||||
(lib.cmakeBool "UMF_BUILD_TESTS" finalAttrs.finalPackage.doCheck)
|
||||
# We won't be able to run these inside the sandbox, so no use in building them
|
||||
(lib.cmakeBool "UMF_BUILD_GPU_TESTS" false)
|
||||
(lib.cmakeBool "UMF_BUILD_BENCHMARKS" false)
|
||||
|
||||
103
pkgs/by-name/up/upki/package.nix
Normal file
103
pkgs/by-name/up/upki/package.nix
Normal file
@@ -0,0 +1,103 @@
|
||||
{
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
rustPlatform,
|
||||
buildPackages,
|
||||
stdenv,
|
||||
testers,
|
||||
versionCheckHook,
|
||||
rustc,
|
||||
cacert,
|
||||
pkg-config,
|
||||
openssl,
|
||||
cargo-c,
|
||||
validatePkgConfig,
|
||||
nix-update-script,
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "upki";
|
||||
version = "1.0.0-beta.3";
|
||||
strictDeps = true;
|
||||
__structuredAttrs = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "rustls";
|
||||
repo = "upki";
|
||||
tag = "upki-${finalAttrs.version}";
|
||||
hash = "sha256-GZkXxidIjG76yIzAcMRsRorMVYpImFN5Q2pe2YgiEUs=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-/z11KuGP3A3fh/Jk2Kx26x7okh6brHs+t/XC7BuPgcA=";
|
||||
|
||||
cargoBuildFlags = [
|
||||
"--package=upki-cli"
|
||||
"--package=upki-openssl"
|
||||
];
|
||||
|
||||
cargoInstallFlags = [
|
||||
"--package=upki-cli"
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
cargo-c
|
||||
pkg-config
|
||||
];
|
||||
buildInputs = [ openssl ];
|
||||
|
||||
env.SSL_CERT_FILE = "${cacert}/etc/ssl/certs/ca-bundle.crt";
|
||||
|
||||
postBuild = ''
|
||||
${buildPackages.rust.envVars.setEnv} cargo cbuild --release --frozen \
|
||||
--package=upki \
|
||||
--prefix=$out \
|
||||
--target=${stdenv.hostPlatform.rust.rustcTarget}
|
||||
${buildPackages.rust.envVars.setEnv} cargo cbuild --release --frozen \
|
||||
--package=upki-openssl \
|
||||
--prefix=$out \
|
||||
--target=${stdenv.hostPlatform.rust.rustcTarget}
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
${buildPackages.rust.envVars.setEnv} cargo cinstall --release --frozen \
|
||||
--package=upki \
|
||||
--prefix=$out \
|
||||
--target=${stdenv.hostPlatform.rust.rustcTarget}
|
||||
${buildPackages.rust.envVars.setEnv} cargo cinstall --release --frozen \
|
||||
--package=upki-openssl \
|
||||
--prefix=$out \
|
||||
--target=${stdenv.hostPlatform.rust.rustcTarget}
|
||||
cp $out/include/upki/upki.h $out/include/upki_openssl/upki.h
|
||||
'';
|
||||
|
||||
nativeInstallCheckInputs = [
|
||||
pkg-config
|
||||
versionCheckHook
|
||||
validatePkgConfig
|
||||
];
|
||||
doInstallCheck = true;
|
||||
|
||||
passthru = {
|
||||
updateScript = nix-update-script {
|
||||
extraArgs = [ "--version=unstable" ];
|
||||
};
|
||||
tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "Platform-independent browser-grade certificate infrastructure";
|
||||
homepage = "https://github.com/rustls/upki";
|
||||
changelog = "https://github.com/rustls/upki/releases/tag/${finalAttrs.src.tag}";
|
||||
license = lib.licenses.OR [
|
||||
lib.licenses.mit
|
||||
lib.licenses.asl20
|
||||
];
|
||||
maintainers = [ lib.maintainers.skyesoss ];
|
||||
mainProgram = "upki";
|
||||
pkgConfigModules = [
|
||||
"upki"
|
||||
"upki_openssl"
|
||||
];
|
||||
platforms = rustc.meta.platforms;
|
||||
};
|
||||
})
|
||||
@@ -7,11 +7,11 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "worker";
|
||||
version = "5.2.2";
|
||||
version = "5.3.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://www.boomerangsworld.de/cms/worker/downloads/worker-${finalAttrs.version}.tar.gz";
|
||||
hash = "sha256-xJxdOb6eEr8suf3u/vouYCGzTFugJpLtoKyCMeuoJv4=";
|
||||
hash = "sha256-7w8Kpi1dzBZjHKzEwavPR/4Qwo+wl2FejSCDdORjALY=";
|
||||
};
|
||||
|
||||
buildInputs = [ libx11 ];
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user