Merge master into staging-next

This commit is contained in:
nixpkgs-ci[bot]
2026-07-14 00:29:08 +00:00
committed by GitHub
33 changed files with 701 additions and 468 deletions
+1
View File
@@ -108,6 +108,7 @@
- Starting with v14, `flameshot` will primarily utilise xdg-desktop-portal calls for screenshotting. This will directly affect users on X11 window managers due to the lack of a compatible portal with Screenshot feature. See [upstream changelog](https://github.com/flameshot-org/flameshot/releases/tag/v14.0.0) or [NixOS Flameshot](https://wiki.nixos.org/wiki/Flameshot) wiki page for workarounds.
- `nim1` and respective aliases have been removed due to entering EOL; please migrate to `nim` or `nim-unwrapped` (nim 2).
- `nim-2_0` & `nim-2_2` and respective aliases have been removed; please migrate to `nim` or `nim-unwrapped` (nim 2.2.10).
- `domoticz` has been updated from `2024.7` to `2026.x`, breaking third party applications and scripts using the old RType calls. Review the [release notes](https://github.com/domoticz/domoticz/blob/2026.2/History.txt#L398) for more information.
- `vimacs` has been removed, as it has not been maintained in 10 years and was built for an old version of vim (6.0).
+7
View File
@@ -8853,6 +8853,13 @@
githubId = 345808;
name = "Jakub Okoński";
};
FatBoyXPC = {
name = "FatBoyXPC";
email = "fatboyxpc@gmail.com";
github = "FatBoyXPC";
githubId = 744962;
keys = [ { fingerprint = "0E08 1B81 CBCA 1CF7 9568 A13F C4ED 3CA2 3211 8969"; } ];
};
faukah = {
github = "faukah";
name = "faukah";
@@ -1319,11 +1319,11 @@
"vendorHash": "sha256-7ZoJg1HEVj5Nygr46lmBZeJDfZuU4F90yntrgkBVgGg="
},
"tencentcloudstack_tencentcloud": {
"hash": "sha256-tADmls3GAmR3S5wdasoHrBYOtZTVXDS2alZD6Mzfo4M=",
"hash": "sha256-1UBML3E5ZnOcsdGZlZ5qkaqQsE1+Q9Uw9R8FeWJXFSw=",
"homepage": "https://registry.terraform.io/providers/tencentcloudstack/tencentcloud",
"owner": "tencentcloudstack",
"repo": "terraform-provider-tencentcloud",
"rev": "v1.83.7",
"rev": "v1.83.10",
"spdx": "MPL-2.0",
"vendorHash": null
},
+4 -10
View File
@@ -46,28 +46,22 @@ in
stdenv.mkDerivation (finalAttrs: {
pname = "cockpit-zfs";
version = "1.2.27-3";
version = "1.2.30";
src = fetchFromGitHub {
owner = "45Drives";
repo = "cockpit-zfs";
tag = "v${finalAttrs.version}";
fetchSubmodules = true;
hash = "sha256-7hx9FJxFN7xsozMvAb0fdRTX2hAcxtJc5wdgrs2PGJc=";
hash = "sha256-G24xNoKoBnlXxxyo9IJIoQW3PrktQxsx37/cX6QYfyE=";
};
patches = [
# Remove after upstream updates to Yarn 4.14
# https://github.com/45Drives/cockpit-zfs/blob/main/package.json#L13
./yarn-4.14-support.patch
];
missingHashes = ./missing-hashes.json;
# Use buildPackages for cross-compilation support
offlineCache = yarnBerryForBuild.fetchYarnBerryDeps {
inherit (finalAttrs) src missingHashes patches;
hash = "sha256-Tdxe5bXN9psSrnUXL1f+1nh4WPzuvOI7j0I+VPU2/1s=";
inherit (finalAttrs) src missingHashes;
hash = "sha256-nm3iHf9Rm5JFKzH0HAvglkQPFIV6Fl1e9WvNdqevTug=";
};
nativeBuildInputs = [
@@ -1,11 +0,0 @@
diff --git a/yarn.lock b/yarn.lock
--- a/yarn.lock
+++ b/yarn.lock
@@ -2,6 +2,6 @@
# Manual changes might be lost - proceed with caution!
__metadata:
- version: 8
+ version: 9
cacheKey: 10c0
+9 -17
View File
@@ -2,7 +2,6 @@
lib,
stdenv,
fetchFromGitHub,
fetchpatch,
makeWrapper,
cmake,
python3,
@@ -24,23 +23,16 @@
stdenv.mkDerivation (finalAttrs: {
pname = "domoticz";
version = "2024.7";
version = "2026.2-unstable-2026-07-09";
src = fetchFromGitHub {
owner = "domoticz";
repo = "domoticz";
tag = finalAttrs.version;
hash = "sha256-D8U1kK3m1zT83YvZ42hGSU9PzBfS1VGr2mxUYbM2vNQ=";
rev = "7e12d1e5d7bf3f7d083ef31d5dd611d678f89d48"; # pinned due to removed dependency (see nixpkgs pr #539060)
hash = "sha256-+6EIEsgGTaLEPzBa/R5EYAxnYB3+cj54LGDJwutTQGA=";
fetchSubmodules = true;
};
patches = [
# Boost 1.87 compatibility, remove once upgraded to 2025.1
(fetchpatch {
url = "https://github.com/domoticz/domoticz/commit/5d0db89bbd120ed5dc05b4ff8c136f14a42f0cd3.patch";
hash = "sha256-FPe83yJKJEgnY3kABy9CTRe1CBh42dPG1ZWCUE5PO8E=";
})
];
buildInputs = [
openssl
python3
@@ -87,7 +79,7 @@ stdenv.mkDerivation (finalAttrs: {
'';
nativeInstallCheckInputs = [
versionCheckHook
# versionCheckHook # readd once we can move to a tagged release again
];
doInstallCheck = true;
@@ -98,15 +90,15 @@ stdenv.mkDerivation (finalAttrs: {
various devices like: lights, switches, various sensors/meters like
temperature, rain, wind, UV, electra, gas, water and much more
'';
maintainers = with lib.maintainers; [ edcragg ];
maintainers = with lib.maintainers; [
edcragg
lenny
];
homepage = "https://www.domoticz.com/";
changelog = "https://github.com/domoticz/domoticz/blob/${finalAttrs.version}/History.txt";
license = lib.licenses.gpl3Plus;
platforms = lib.platforms.all;
broken = stdenv.hostPlatform.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/domoticz.x86_64-darwin
mainProgram = "domoticz";
knownVulnerabilities = [
"CVE-2026-1001"
];
};
})
+45
View File
@@ -0,0 +1,45 @@
{
lib,
stdenv,
cmake,
fetchFromGitHub,
nix-update-script,
}:
stdenv.mkDerivation {
pname = "ggmorse";
version = "0.1.0-unstable-2024-05-31";
src = fetchFromGitHub {
owner = "ggerganov";
repo = "ggmorse";
rev = "8fb433d6cd6a71940f51b5724663ec0c75bf0b62";
hash = "sha256-6GhyPhzNNAx1DSomfIfejbnLTckKa7/+VUZhSaGvGtI=";
};
postPatch = ''
substituteInPlace ./CMakeLists.txt \
--replace-fail "cmake_minimum_required (VERSION 3.0)" \
"cmake_minimum_required (VERSION 3.5)"
'';
__structuredAttrs = true;
strictDeps = true;
nativeBuildInputs = [ cmake ];
cmakeFlags = [
(lib.cmakeBool "GGMORSE_BUILD_EXAMPLES" false)
];
passthru.updateScript = nix-update-script {
extraArgs = [ "--version=branch" ];
};
meta = {
description = "Morse code decoding library";
homepage = "https://github.com/ggerganov/ggmorse";
license = lib.licenses.mit;
maintainers = [ lib.maintainers.nekowinston ];
platforms = lib.platforms.unix;
};
}
+3 -4
View File
@@ -10,16 +10,16 @@
buildGoModule (finalAttrs: {
pname = "git-spice";
version = "0.30.1";
version = "0.31.0";
src = fetchFromGitHub {
owner = "abhinav";
repo = "git-spice";
tag = "v${finalAttrs.version}";
hash = "sha256-zqHTbsK/vIeNKfvIH8funMLD0ehercVkufIYcRZ7VD0=";
hash = "sha256-3VHT9/oCQaySWPAfnZYRxSsKCz8S8As685V3wvpqip8=";
};
vendorHash = "sha256-dCAgnfnwDudTUsQE/RapWslnz/MtefdlzqneRbWrLmc=";
vendorHash = "sha256-xcU0B+ju1f/JfNVKpXkIy5SO9rd3O9Nl0FizW3kVgI0=";
subPackages = [ "." ];
@@ -31,7 +31,6 @@ buildGoModule (finalAttrs: {
ldflags = [
"-s"
"-w"
"-X=main._version=${finalAttrs.version}"
];
+11 -4
View File
@@ -76,9 +76,10 @@ let
dontConfigure = true;
dontBuild = true;
# On Linux the binary is wrapped with buildFHSEnv; completions are
# generated there. Here we only need to skip fixup to avoid patchelf/strip.
dontFixup = stdenv.hostPlatform.isLinux;
# Skip fixup on all platforms: strip discards the vercel/pkg virtual
# filesystem appended to the binary (see the comment below), leaving a
# binary that fails at runtime with "Pkg: Error reading from file."
dontFixup = true;
installPhase = ''
runHook preInstall
@@ -86,7 +87,13 @@ let
runHook postInstall
'';
postInstall = lib.optionalString stdenv.hostPlatform.isDarwin shellCompletions;
# gt tries to create ~/.config/graphite/aliases on startup and exits 1
# with no output when HOME is not writable, which would leave the
# completion files empty.
postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
export HOME=$(mktemp -d)
${shellCompletions}
'';
};
in
# The binary is built with vercel/pkg, which appends a virtual filesystem to
@@ -1,6 +1,6 @@
{
lib,
stdenv,
stdenvNoCC,
fetchurl,
fetchFromGitHub,
fetchYarnDeps,
@@ -18,7 +18,7 @@ let
hash = "sha256-f0vd/Xp/kBbZkg6CBM4cZPlwg5WUL/zv3mCAEmugzCE=";
};
in
stdenv.mkDerivation (finalAttrs: {
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "incus-ui-canonical";
version = "0.21.4";
+35
View File
@@ -0,0 +1,35 @@
{
lib,
stdenv,
cmake,
fetchFromGitHub,
nix-update-script,
}:
stdenv.mkDerivation {
pname = "inmarsatc";
version = "0-unstable-2023-07-10";
src = fetchFromGitHub {
owner = "cropinghigh";
repo = "inmarsatc";
rev = "cda1242e79981d71cd8608e971c8dbc691942b10";
hash = "sha256-UCmdHR9bSr1x4G0OP7n+o6pdS1thTl9hzH7YMykSiGw=";
};
__structuredAttrs = true;
strictDeps = true;
nativeBuildInputs = [ cmake ];
passthru.updateScript = nix-update-script {
extraArgs = [ "--version=branch" ];
};
meta = {
description = "C++ library with functions to receive Inmarsat-C signals";
homepage = "https://github.com/cropinghigh/inmarsatc";
license = lib.licenses.gpl3Only;
maintainers = [ lib.maintainers.nekowinston ];
platforms = lib.platforms.linux;
};
}
+3 -3
View File
@@ -6,16 +6,16 @@
}:
buildGoModule (finalAttrs: {
pname = "oh-my-posh";
version = "29.20.0";
version = "29.26.1";
src = fetchFromGitHub {
owner = "jandedobbeleer";
repo = "oh-my-posh";
tag = "v${finalAttrs.version}";
hash = "sha256-EzdrqeWM85hh8lPxrweSPezydICRFyOStgDlEq8g9+8=";
hash = "sha256-hE3L7emTk7MxzBUqSUDNKYiA2H1w9mcGhPYiR1OhYxg=";
};
vendorHash = "sha256-PAdk6nf750wL619W6nyt1Ne/eYYlVkewIhWirNi9rK8=";
vendorHash = "sha256-6DX/x9uWUbwXy9ccB6NIVRKsOc1nJXtctItONAI7zPQ=";
sourceRoot = "${finalAttrs.src.name}/src";
+7 -4
View File
@@ -5,16 +5,19 @@
cmake,
}:
stdenv.mkDerivation rec {
stdenv.mkDerivation (finalAttrs: {
pname = "olm";
version = "3.2.16";
__structuredAttrs = true;
strictDeps = true;
src = fetchFromGitLab {
domain = "gitlab.matrix.org";
owner = "matrix-org";
repo = "olm";
rev = version;
sha256 = "sha256-JX20mpuLO+UoNc8iQlXEHAbH9sfblkBbM1gE27Ve0ac=";
tag = finalAttrs.version;
hash = "sha256-JX20mpuLO+UoNc8iQlXEHAbH9sfblkBbM1gE27Ve0ac=";
};
nativeBuildInputs = [ cmake ];
@@ -94,4 +97,4 @@ stdenv.mkDerivation rec {
''
];
};
}
})
+45 -46
View File
@@ -32,40 +32,22 @@
speexdsp,
versionCheckHook,
zlib,
zstd,
withDiscordRpc ? false,
verifyAssets ? true,
# Paths to RCT1 and RCT2 installs can be specified to have them added as a wrapped argument
rct1Path ? null,
rct2Path ? null,
}:
let
objects-version = "1.7.10";
openmusic-version = "1.6.1";
opensfx-version = "1.0.6";
title-sequences-version = "0.4.26";
objects = fetchurl {
url = "https://github.com/OpenRCT2/objects/releases/download/v${objects-version}/objects.zip";
hash = "sha256-9IO+Jm3CIHe6hRe78y/+OIw1Q7LuWF4K+9QQLbRSgCE=";
};
openmusic = fetchurl {
url = "https://github.com/OpenRCT2/OpenMusic/releases/download/v${openmusic-version}/openmusic.zip";
hash = "sha256-mUs1DTsYDuHLlhn+J/frrjoaUjKEDEvUeonzP6id4aE=";
};
opensfx = fetchurl {
url = "https://github.com/OpenRCT2/OpenSoundEffects/releases/download/v${opensfx-version}/opensound.zip";
hash = "sha256-BrkPPhnCFnUt9EHVUbJqnj4bp3Vb3SECUEtzv5k2CL4=";
};
title-sequences = fetchurl {
url = "https://github.com/OpenRCT2/title-sequences/releases/download/v${title-sequences-version}/title-sequences.zip";
hash = "sha256-2ruXh7FXY0L8pN2fZLP4z6BKfmzpwruWEPR7dikFyFg=";
};
in
stdenv.mkDerivation (finalAttrs: {
pname = "openrct2";
version = "0.5.3";
__structuredAttrs = true;
strictDeps = true;
src = fetchFromGitHub {
owner = "OpenRCT2";
repo = "OpenRCT2";
@@ -73,6 +55,34 @@ stdenv.mkDerivation (finalAttrs: {
hash = "sha256-my7fPBD5N0bO1yPaxwHUFqw6TvayQs10kcAX/NqPpIg=";
};
passthru = {
updateScript = ./update.sh;
objects-version = "1.7.10";
openmusic-version = "1.6.1";
opensfx-version = "1.0.6";
title-sequences-version = "0.4.26";
assets = {
objects = fetchurl {
url = "https://github.com/OpenRCT2/objects/releases/download/v${finalAttrs.passthru.objects-version}/objects.zip";
hash = "sha256-9IO+Jm3CIHe6hRe78y/+OIw1Q7LuWF4K+9QQLbRSgCE=";
};
openmusic = fetchurl {
url = "https://github.com/OpenRCT2/OpenMusic/releases/download/v${finalAttrs.passthru.openmusic-version}/openmusic.zip";
hash = "sha256-mUs1DTsYDuHLlhn+J/frrjoaUjKEDEvUeonzP6id4aE=";
};
opensfx = fetchurl {
url = "https://github.com/OpenRCT2/OpenSoundEffects/releases/download/v${finalAttrs.passthru.opensfx-version}/opensound.zip";
hash = "sha256-BrkPPhnCFnUt9EHVUbJqnj4bp3Vb3SECUEtzv5k2CL4=";
};
title-sequences = fetchurl {
url = "https://github.com/OpenRCT2/title-sequences/releases/download/v${finalAttrs.passthru.title-sequences-version}/title-sequences.zip";
hash = "sha256-2ruXh7FXY0L8pN2fZLP4z6BKfmzpwruWEPR7dikFyFg=";
};
};
};
nativeBuildInputs = [
cmake
pkg-config
@@ -104,6 +114,7 @@ stdenv.mkDerivation (finalAttrs: {
openssl
speexdsp
zlib
zstd
]
++ lib.optional withDiscordRpc discord-rpc;
@@ -117,31 +128,21 @@ stdenv.mkDerivation (finalAttrs: {
postUnpack = ''
mkdir -p $sourceRoot/data/{object,sequence}
unzip -o ${objects} -d $sourceRoot/data/object
unzip -o ${openmusic} -d $sourceRoot/data
unzip -o ${opensfx} -d $sourceRoot/data
unzip -o ${title-sequences} -d $sourceRoot/data/sequence
'';
# Fix blank changelog & contributors screen. See https://github.com/OpenRCT2/OpenRCT2/issues/16988
postPatch = ''
substituteInPlace src/openrct2/platform/Platform.Linux.cpp \
--replace-fail "/usr/share/doc/openrct2" "$out/share/doc/openrct2"
unzip -o ${finalAttrs.passthru.assets.objects} -d $sourceRoot/data/object
unzip -o ${finalAttrs.passthru.assets.openmusic} -d $sourceRoot/data
unzip -o ${finalAttrs.passthru.assets.opensfx} -d $sourceRoot/data
unzip -o ${finalAttrs.passthru.assets.title-sequences} -d $sourceRoot/data/sequence
'';
preConfigure =
# Verify that the correct version of each third party repository is used.
(
let
versionCheck = assetKey: url: ''
grep -qF '"${url}"' assets.json \
|| (echo "${assetKey} differs from expected version!"; exit 1)
'';
in
(versionCheck "objects" objects.url)
+ (versionCheck "openmusic" openmusic.url)
+ (versionCheck "opensfx" opensfx.url)
+ (versionCheck "title-sequences" title-sequences.url)
lib.optionalString verifyAssets (
lib.concatStringsSep "\n" (
lib.mapAttrsToList (assetName: asset: ''
grep -qF '"${asset.url}"' assets.json \
|| (echo "${assetName} differs from expected version!"; exit 1)
'') finalAttrs.passthru.assets
)
);
doInstallCheck = true;
@@ -152,8 +153,6 @@ stdenv.mkDerivation (finalAttrs: {
${lib.optionalString (rct2Path != null) "--add-flags '--rct2-data-path=\"${rct2Path}\"'"}
'';
passthru.updateScript = ./update.sh;
meta = {
description = "Open source re-implementation of RollerCoaster Tycoon 2";
longDescription = ''
+3 -5
View File
@@ -3,9 +3,7 @@
"auto_updater_macos": "sha256-787cMkeT2BlfwVcy4y46XkWioNqLKJgQ/CCxQvERa+A=",
"auto_updater_platform_interface": "sha256-787cMkeT2BlfwVcy4y46XkWioNqLKJgQ/CCxQvERa+A=",
"auto_updater_windows": "sha256-787cMkeT2BlfwVcy4y46XkWioNqLKJgQ/CCxQvERa+A=",
"background_downloader": "sha256-VHi4g/S/kCxxaeHnDTc64oS6lMHMFiU31VqFqBmdmo8=",
"connectivity_plus": "sha256-PGt4eEp32+w4XMDVwB0Kjla1OSole4l/++Zs5PHXs/U=",
"material_symbols_icons": "sha256-XRB6AZ4Q33sQKVZFA8lgdXCW/bx55h/RpmuItmFYVJM=",
"os_media_controls": "sha256-Xd1RdtmZbuWaljNXZ/rSInQF5/F06aPtr1uVrxIdhP8=",
"wakelock_plus": "sha256-89xs0sLNuoCqApFqwEY+SEk2DUqjHf8JsSd7dfxX3P0="
"background_downloader": "sha256-y37tzAxOwql1193E+aTJOIi2B0gXLxL3azghEYzcRGA=",
"connectivity_plus": "sha256-sVUG5/6GF0Eu47BgUCkgbGi8w1ip5o0yQS00NnNjAGs=",
"os_media_controls": "sha256-UkrBz52dkdlSJ+UJwC2E7RhuSOcXzJx+dVo0JcW8pEY="
}
+5 -10
View File
@@ -27,13 +27,13 @@
let
pname = "plezy";
version = "2.8.0";
version = "2.9.1";
src = fetchFromGitHub {
owner = "edde746";
repo = "plezy";
tag = version;
hash = "sha256-NvBCh++teOB0uNyy71NmOFwCQvkg9/v9Rx+76UybLQo=";
hash = "sha256-Fc2KWx4byfrulWzOGm0WW6EUXMvV8uwmvVjoSgzQmuA=";
};
simdutf = fetchurl {
@@ -55,6 +55,7 @@ let
maintainers = with lib.maintainers; [
mio
miniharinn
BatteredBunny
];
platforms = lib.platforms.linux ++ [
"x86_64-darwin"
@@ -72,13 +73,7 @@ let
gitHashes = lib.importJSON ./git-hashes.json;
# Upstream uses a sentry-dart fork that fetches sentry-native as a zip instead of via
# git clone. The PR was merged and reverted upstream (getsentry/sentry-dart#3630), so
# we use upstream since theres no actual meaningful difference
patches = [
./replace-sentry-fork.patch
]
++ lib.optionals use16kPagesizeWorkaround [
patches = lib.optionals use16kPagesizeWorkaround [
./16k-font-workaround.patch
];
@@ -152,7 +147,7 @@ let
src = fetchurl {
url = "https://github.com/edde746/plezy/releases/download/${version}/plezy-macos.dmg";
hash = "sha256-eN8CJ/yaV4wln6fN2lJqJnn+RvW+ZiD3oCDhjQjyBvU=";
hash = "sha256-jNwMukPYLTWBk1daanHtxYdJpZCB5I/hiKvFx4tL4sY=";
};
nativeBuildInputs = [
+51 -35
View File
@@ -10,6 +10,16 @@
"source": "hosted",
"version": "93.0.0"
},
"analysis_server_plugin": {
"dependency": "transitive",
"description": {
"name": "analysis_server_plugin",
"sha256": "5f3920acbd5765764ec9ef6c5bbdd102015424281232ee4fb4f5431c87abb4eb",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "0.3.7"
},
"analyzer": {
"dependency": "transitive",
"description": {
@@ -108,12 +118,12 @@
"dependency": "direct main",
"description": {
"path": ".",
"ref": "b4d36f88bb365faaf308ff26be7ade49bbaec859",
"resolved-ref": "b4d36f88bb365faaf308ff26be7ade49bbaec859",
"ref": "021e2075260e324b7440a5c81b57bf0242d35020",
"resolved-ref": "021e2075260e324b7440a5c81b57bf0242d35020",
"url": "https://github.com/edde746/background_downloader"
},
"source": "git",
"version": "9.5.4"
"version": "9.5.5"
},
"boolean_selector": {
"dependency": "transitive",
@@ -299,12 +309,12 @@
"dependency": "direct main",
"description": {
"path": "packages/connectivity_plus/connectivity_plus",
"ref": "2b614414ce95d920880765d07cbb9759699a4563",
"resolved-ref": "2b614414ce95d920880765d07cbb9759699a4563",
"url": "https://github.com/edde746/plus_plugins"
"ref": "bf04cdf66598dc3fca274b8b1db2b92b0bf6b73e",
"resolved-ref": "bf04cdf66598dc3fca274b8b1db2b92b0bf6b73e",
"url": "https://github.com/fluttercommunity/plus_plugins"
},
"source": "git",
"version": "7.1.1"
"version": "7.2.0"
},
"connectivity_plus_platform_interface": {
"dependency": "transitive",
@@ -390,11 +400,11 @@
"dependency": "direct dev",
"description": {
"name": "dart_code_linter",
"sha256": "8ece88f710621ca1c40b6c344b316d78bb2269d728d37d2a44f19a81d9d2cb93",
"sha256": "44cce8527a2094201067b50aed97778930638cc43e8bb3cb0b40a90c36fb9c84",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "4.0.2"
"version": "4.1.6"
},
"dart_discord_presence": {
"dependency": "direct main",
@@ -873,13 +883,12 @@
"material_symbols_icons": {
"dependency": "direct main",
"description": {
"path": ".",
"ref": "1d8cd83",
"resolved-ref": "1d8cd8325db29691a01738a25f220dd3515bd1e2",
"url": "https://github.com/edde746/material_symbols_icons"
"name": "material_symbols_icons",
"sha256": "49c532dd0b74544e9d8d93ec0f821d52ec532e7c9263c889ebe71b1be4f34ba7",
"url": "https://pub.dev"
},
"source": "git",
"version": "4.2906.0"
"source": "hosted",
"version": "4.2951.0"
},
"meta": {
"dependency": "transitive",
@@ -955,12 +964,12 @@
"dependency": "direct main",
"description": {
"path": ".",
"ref": "f51c805ebc15bf7a2f49a74174aeb470d3c4c78e",
"resolved-ref": "f51c805ebc15bf7a2f49a74174aeb470d3c4c78e",
"ref": "75556a968a4a1ebc42fbb8c31942c2418d4326e1",
"resolved-ref": "75556a968a4a1ebc42fbb8c31942c2418d4326e1",
"url": "https://github.com/edde746/media_controls"
},
"source": "git",
"version": "0.2.4"
"version": "0.3.0"
},
"package_config": {
"dependency": "transitive",
@@ -1225,12 +1234,11 @@
"saf_util": {
"dependency": "direct main",
"description": {
"name": "saf_util",
"sha256": "0cf5fc462fc7e466e1d5608dd5a331d88d6dd6c7b01f62a305aaf469bf3309ea",
"url": "https://pub.dev"
"path": "packages/saf_util",
"relative": true
},
"source": "hosted",
"version": "2.0.0"
"source": "path",
"version": "3.1.0"
},
"screen_retriever": {
"dependency": "transitive",
@@ -1286,11 +1294,11 @@
"dependency": "transitive",
"description": {
"name": "sentry",
"sha256": "288aee3d35f252ac0dc3a4b0accbbe7212fa2867604027f2cc5bc65334afd743",
"sha256": "09c573f98ff6c5e98d527f351f037eb8ea9ff684a6e9e84b2e91357144016254",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "9.16.0"
"version": "9.24.0"
},
"sentry_dart_plugin": {
"dependency": "direct dev",
@@ -1306,11 +1314,11 @@
"dependency": "direct main",
"description": {
"name": "sentry_flutter",
"sha256": "f9e87d5895cc437902aa2b081727ee7e46524fe7cc2e1910f535480a3eeb8bed",
"sha256": "4a04b7e1901b8128df783b6d36d48706b07b0cd055e621517c998de87f5dafb9",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "9.16.0"
"version": "9.24.0"
},
"serial_csv": {
"dependency": "transitive",
@@ -1751,13 +1759,11 @@
"wakelock_plus": {
"dependency": "direct main",
"description": {
"path": "wakelock_plus",
"ref": "8595fee595c952b73d430f2eab05f2e0d858290e",
"resolved-ref": "8595fee595c952b73d430f2eab05f2e0d858290e",
"url": "https://github.com/edde746/wakelock_plus"
"path": "packages/wakelock_plus",
"relative": true
},
"source": "git",
"version": "1.4.0"
"source": "path",
"version": "1.5.2"
},
"wakelock_plus_platform_interface": {
"dependency": "transitive",
@@ -1833,11 +1839,11 @@
"dependency": "direct main",
"description": {
"name": "win_http",
"sha256": "a50a14f1bf32bc5c9b39add9baa01658b97146b21de25237810ca6b850a6704e",
"sha256": "ebc4d37e2c0e6800cc200e40d289d3bac22fc17d40fce3ae7909d49a20da77bc",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "0.2.1"
"version": "0.2.2"
},
"window_manager": {
"dependency": "direct main",
@@ -1878,6 +1884,16 @@
},
"source": "hosted",
"version": "3.1.3"
},
"yaml_edit": {
"dependency": "transitive",
"description": {
"name": "yaml_edit",
"sha256": "07c9e63ba42519745182b88ca12264a7ba2484d8239958778dfe4d44fe760488",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "2.2.4"
}
},
"sdks": {
@@ -1,32 +0,0 @@
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -60,11 +60,7 @@
git:
url: https://github.com/edde746/background_downloader
ref: b4d36f88bb365faaf308ff26be7ade49bbaec859
- sentry_flutter:
- git:
- url: https://github.com/edde746/sentry-dart
- path: packages/flutter
- ref: build/fetch-native-zip
+ sentry_flutter: 9.16.0
auto_updater:
git:
url: https://github.com/edde746/auto_updater
@@ -110,16 +106,6 @@
url: https://github.com/edde746/auto_updater
ref: 9e150f7
path: packages/auto_updater_windows
- sentry:
- git:
- url: https://github.com/edde746/sentry-dart
- path: packages/dart
- ref: build/fetch-native-zip
- sentry_flutter:
- git:
- url: https://github.com/edde746/sentry-dart
- path: packages/flutter
- ref: build/fetch-native-zip
material_symbols_icons:
git:
url: https://github.com/edde746/material_symbols_icons
+3 -13
View File
@@ -1,5 +1,5 @@
#!/usr/bin/env nix-shell
#! nix-shell -I nixpkgs=./. -i bash -p curl gnused jq nix nix-prefetch-git python3 yq-go flutter344 git
#! nix-shell -I nixpkgs=./. -i bash -p curl gnused jq nix nix-prefetch-git python3 yq-go
set -eou pipefail
@@ -26,18 +26,8 @@ DMG_URL="https://github.com/edde746/plezy/releases/download/${latestVersion}/ple
DMG_SHA=$(nix --extra-experimental-features nix-command hash convert --hash-algo sha256 --to sri "$(nix-prefetch-url "$DMG_URL")")
sed -i "/plezy-macos.dmg/,/hash/{s|hash = \".*\"|hash = \"${DMG_SHA}\"|}" "$ROOT/package.nix"
# Only here to handle the patched pubsec.yaml
workdir=$(mktemp -d)
trap 'rm -rf "$workdir"' EXIT
curl --fail --silent --location "$GIT_SRC_URL" | tar -xz -C "$workdir" --strip-components=1
patch -d "$workdir" -p1 < "$ROOT/replace-sentry-fork.patch"
export PUB_CACHE="$workdir/.pub-cache"
flutter --no-version-check config --no-analytics >/dev/null
(cd "$workdir" && flutter --no-version-check pub get)
yq eval --output-format=json --prettyPrint "$workdir/pubspec.lock" > "$ROOT/pubspec.lock.json"
curl --fail --silent --location "https://raw.githubusercontent.com/edde746/plezy/${latestVersion}/pubspec.lock" \
| yq eval --output-format=json --prettyPrint > "$ROOT/pubspec.lock.json"
python3 "$(dirname "$(readlink -f "$0")")/../../../development/compilers/dart/fetch-git-hashes.py" \
--input "$ROOT/pubspec.lock.json" \
+26 -17
View File
@@ -12,16 +12,19 @@
dsdcc,
faad2,
fetchFromGitHub,
fetchpatch,
fftwFloat,
flac,
ggmorse,
glew,
hackrf,
hidapi,
ffmpeg,
inmarsatc,
libiio,
libogg,
libopus,
libpulseaudio,
libunwind,
libusb1,
limesuite,
libbladeRF,
@@ -31,6 +34,7 @@
pkg-config,
qt6,
qt6Packages,
rnnoise,
rtl-sdr,
serialdv,
sdrplay,
@@ -39,26 +43,22 @@
uhd,
zlib,
withSDRplay ? false,
nix-update-script,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "sdrangel";
version = "7.22.9";
version = "7.27.1";
src = fetchFromGitHub {
owner = "f4exb";
repo = "sdrangel";
tag = "v${finalAttrs.version}";
hash = "sha256-VYSM9ldzx/8tWKQb++qGROSXdeEXIDhGqnnHUmkW4+k=";
hash = "sha256-rdPXqA0ySnqh/rlMlfcDLyAd6egbggWHrRQRnXeQPFM=";
};
patches = [
# Fix build with Qt 6.10, remove when the commit reaches a release
(fetchpatch {
url = "https://github.com/f4exb/sdrangel/commit/fd6a8d51f8c39fd31b4e864f528bf1921ebd4260.patch";
hash = "sha256-S8LQbCTEgyEt1wByDsDMqqyQjK5HALtvUIODgQ1skSA=";
})
];
__structuredAttrs = true;
strictDeps = true;
nativeBuildInputs = [
cmake
@@ -80,11 +80,13 @@ stdenv.mkDerivation (finalAttrs: {
ffmpeg
fftwFloat
flac
ggmorse
glew
hackrf
hidapi
libbladeRF
libiio
libogg
libopus
libpulseaudio
libusb1
@@ -101,7 +103,7 @@ stdenv.mkDerivation (finalAttrs: {
qt6Packages.qtspeech
qt6Packages.qttools
qt6Packages.qtwebsockets
qt6Packages.qtwebengine
rnnoise
rtl-sdr
serialdv
sgp4
@@ -109,18 +111,25 @@ stdenv.mkDerivation (finalAttrs: {
uhd
zlib
]
++ lib.optionals stdenv.hostPlatform.isLinux [ qt6Packages.qtwayland ]
++ lib.optionals stdenv.hostPlatform.isLinux [
inmarsatc
libunwind
qt6Packages.qtwayland
qt6Packages.qtwebengine
]
++ lib.optionals withSDRplay [ sdrplay ];
cmakeFlags = [
"-DAPT_DIR=${aptdec}"
"-DDAB_DIR=${dab_lib}"
"-DSGP4_DIR=${sgp4}"
"-DSOAPYSDR_DIR=${soapysdr-with-plugins}"
(lib.cmakeFeature "APT_DIR" aptdec.outPath)
(lib.cmakeFeature "DAB_DIR" dab_lib.outPath)
(lib.cmakeFeature "SGP4_DIR" sgp4.outPath)
(lib.cmakeFeature "SOAPYSDR_DIR" soapysdr-with-plugins.outPath)
(lib.cmakeBool "ENABLE_QT6" true)
"-Wno-dev"
"-DENABLE_QT6=ON"
];
passthru.updateScript = nix-update-script { };
meta = {
description = "Software defined radio (SDR) software";
homepage = "https://github.com/f4exb/sdrangel";
+9
View File
@@ -5,6 +5,7 @@
nix-update-script,
apple-sdk_15,
versionCheckHook,
llvmPackages,
}:
let
@@ -28,12 +29,20 @@ stdenv.mkDerivation (finalAttrs: {
hash = "sha256-5tyc/yYzdV/3JTtujuj7le/14XkC7TlN/nZg7tOZsNg=";
};
nativeBuildInputs = [
# TODO: Remove once #536365 reaches this branch
llvmPackages.lld
];
buildInputs = [
apple-sdk_15
];
makeFlags = [ target ];
# TODO: Remove once #536365 reaches this branch
env.NIX_CFLAGS_LINK = "-fuse-ld=lld";
installPhase = ''
runHook preInstall
+3 -3
View File
@@ -14,20 +14,20 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "skills";
version = "1.5.14";
version = "1.5.16";
src = fetchFromGitHub {
owner = "vercel-labs";
repo = "skills";
tag = "v${finalAttrs.version}";
hash = "sha256-176EeM1VhNSBH1cYUUy3oLST21PbV0v+tCNglfM9+6Y=";
hash = "sha256-gL8uNkS3gsRGXIunIsYLYykLYs2c1gO9PFVTE69nWKU=";
};
pnpmDeps = fetchPnpmDeps {
fetcherVersion = 3;
inherit (finalAttrs) pname version src;
inherit pnpm;
hash = "sha256-3GSa4ze859dRA4Yrxw8r3rwZKn7FMSjBMvpz1HTDobU=";
hash = "sha256-wntHp5UT21wD1myxj8EQafQis5QMuQ9U2PKiKg2jalw=";
};
nativeBuildInputs = [
+11 -6
View File
@@ -24,11 +24,12 @@
stdenv.mkDerivation (finalAttrs: {
pname = "srsran";
version = "25_10";
__structuredAttrs = true;
src = fetchFromGitHub {
owner = "srsran";
repo = "srsran";
rev = "release_${builtins.replaceStrings [ "." ] [ "_" ] finalAttrs.version}";
repo = "srsRAN_4G";
tag = "release_${builtins.replaceStrings [ "." ] [ "_" ] finalAttrs.version}";
sha256 = "sha256-DwQ4u17m8D5RqX3OIYSyeE5+51sLah1qchRcwlX5i0A=";
};
@@ -68,7 +69,7 @@ stdenv.mkDerivation (finalAttrs: {
cmakeFlags = [
"-DENABLE_WERROR=OFF"
(lib.cmakeBool "ENABLE_LTE_RATES" enableLteRates)
(lib.cmakeBool "USE_LTE_RATES" enableLteRates)
(lib.cmakeBool "ENABLE_AVX" enableAvx)
(lib.cmakeBool "ENABLE_AVX2" enableAvx2)
(lib.cmakeBool "ENABLE_FMA" enableFma)
@@ -81,9 +82,13 @@ stdenv.mkDerivation (finalAttrs: {
meta = {
homepage = "https://www.srslte.com/";
description = "Open-source 4G and 5G software radio suite";
changelog = "https://github.com/srsran/srsRAN_4G/releases/tag/${finalAttrs.src.tag}";
description = "Open-source 4G software radio suite, including complete LTE UE, eNodeB and EPC applications";
license = lib.licenses.agpl3Plus;
platforms = with lib.platforms; linux;
maintainers = with lib.maintainers; [ hexagonal-sun ];
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [
hexagonal-sun
felbinger
];
};
})
+2 -2
View File
@@ -6,12 +6,12 @@
}:
stdenv.mkDerivation (finalAttrs: {
pname = "sssnake";
version = "0.3.2";
version = "0.4.0";
src = fetchFromGitHub {
owner = "angeljumbo";
repo = "sssnake";
rev = "v${finalAttrs.version}";
hash = "sha256-zkErOV6Az0kJdwyXzMCnVW1997zpAB79TBvf/41Igic=";
hash = "sha256-RU+yYT+GcCsk0lBisE2/4Y9zMVLA6dbN4n0ibAovav4=";
};
postPatch = ''
substituteInPlace makefile --replace '-lncursesw' '-lncursesw -D_XOPEN_SOURCE=500'
@@ -0,0 +1,42 @@
diff --git a/build.rs b/build.rs
index aa2bec5..d512a42 100644
--- a/build.rs
+++ b/build.rs
@@ -26,7 +26,7 @@ fn setup_po() -> Result<()> {
&& extension == "po"
&& let Some(po_lang) = path.file_stem()
{
- let mo_dir = po_dir.join(po_lang).join("LC_MESSAGES");
+ let mo_dir = Path::new("@out@/share/locale").join(po_lang).join("LC_MESSAGES");
fs::create_dir_all(&mo_dir)?;
@@ -46,7 +46,7 @@ fn setup_po() -> Result<()> {
fn setup_schemas(filename: &str) -> Result<()> {
println!("cargo:rerun-if-changed={DATA_DIR}");
- let out_dir = dirs::data_dir().expect("Failed to get data dir");
+ let out_dir = Path::new("@out@/share");
let out_dir = out_dir.join("glib-2.0/schemas");
fs::create_dir_all(&out_dir)?;
diff --git a/data/com.stremio.Stremio.service b/data/com.stremio.Stremio.service
index 7cfb139..7491969 100644
--- a/data/com.stremio.Stremio.service
+++ b/data/com.stremio.Stremio.service
@@ -1,3 +1,3 @@
[D-BUS Service]
Name=com.stremio.Stremio
-Exec=/app/bin/stremio --gapplication-service
+Exec=@out@/bin/stremio --gapplication-service
diff --git a/data/stremio.sh b/data/stremio.sh
index 161bada..37373b0 100644
--- a/data/stremio.sh
+++ b/data/stremio.sh
@@ -5,4 +5,4 @@ if ls /dev/nvidia0 &>/dev/null 2>&1; then
export GSK_RENDERER=opengl
fi
-exec /app/libexec/stremio/stremio "$@"
\ No newline at end of file
+exec @out@/libexec/stremio/stremio "$@"
+19 -11
View File
@@ -3,7 +3,7 @@
rustPlatform,
fetchFromGitHub,
versionCheckHook,
gitUpdater,
nix-update-script,
# nativeBuildInputs
pkg-config,
@@ -26,7 +26,7 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "stremio-linux-shell";
version = "1.0.2";
version = "1.1.2";
strictDeps = true;
__structuredAttrs = true;
@@ -35,17 +35,18 @@ rustPlatform.buildRustPackage (finalAttrs: {
owner = "Stremio";
repo = "stremio-linux-shell";
tag = "v${finalAttrs.version}";
hash = "sha256-NbzUAv/L8xzdepqn677nlROumjlliZIHzPXIToHHeTU=";
hash = "sha256-jo+9KDX/a46jPTmYhiFNgp5fDKhoAsML/+m7u3ituEQ=";
};
cargoHash = "sha256-yafkD7D0E+lbFV7MlLwQM4iWC8Glo/Tn2F+TFff6GoM=";
cargoHash = "sha256-hZ9neZD+aB7bth4UTsWJXIKGSbo/c3wZRtfOIp7LvwY=";
patches = [
./out-path.patch
];
postPatch = ''
substituteInPlace data/com.stremio.Stremio.service \
--replace-fail "Exec=/app/bin/stremio" "Exec=$out/bin/stremio"
substituteInPlace data/stremio.sh \
--replace-fail "/app/libexec/stremio/stremio" "$out/libexec/stremio/stremio"
substituteInPlace data/com.stremio.Stremio.service data/stremio.sh build.rs \
--subst-var out
'';
nativeBuildInputs = [
@@ -67,9 +68,11 @@ rustPlatform.buildRustPackage (finalAttrs: {
postInstall = ''
install -Dm644 data/icons/com.stremio.Stremio.svg $out/share/icons/hicolor/scalable/apps/com.stremio.Stremio.svg
install -Dm644 data/com.stremio.Stremio.desktop $out/share/applications/com.stremio.Stremio.desktop
install -Dm644 data/com.stremio.Stremio.metainfo.xml $out/share/metainfo/com.stremio.Stremio.metainfo.xml
install -Dm644 data/com.stremio.Stremio.service $out/share/dbus-1/services/com.stremio.Stremio.service
install -Dm644 data/server.js $out/libexec/stremio/server.js
install -Dm755 data/stremio.sh $out/bin/stremio
install -Dm644 LICENSE $out/share/licenses/stremio/LICENSE
mv $out/bin/stremio-linux-shell $out/libexec/stremio/stremio
'';
@@ -93,7 +96,9 @@ rustPlatform.buildRustPackage (finalAttrs: {
doInstallCheck = true;
passthru = {
updateScript = gitUpdater { rev-prefix = "v"; };
updateScript = nix-update-script {
extraArgs = [ "--version-regex=^v([0-9.]+)$" ];
};
};
meta = {
@@ -111,7 +116,10 @@ rustPlatform.buildRustPackage (finalAttrs: {
fromSource
obfuscatedCode # server.js
];
maintainers = with lib.maintainers; [ thunze ];
maintainers = with lib.maintainers; [
thunze
fazzi
];
platforms = lib.platforms.linux;
mainProgram = "stremio";
};
+49 -221
View File
@@ -1,25 +1,8 @@
{
cctools,
copyDesktopItems,
electron_41,
fetchFromGitHub,
installShellFiles,
lib,
libicns,
callPackage,
symlinkJoin,
makeBinaryWrapper,
makeDesktopItem,
nix-update-script,
node-gyp,
nodejs,
python3,
stdenv,
writeDarwinBundle,
xcbuild,
fetchPnpmDeps,
pnpm_10,
pnpmConfigHook,
pnpmBuildHook,
cacert,
enableAzureDevOps ? false,
azure-cli,
azure-cli-extensions,
@@ -43,214 +26,59 @@
jujutsu,
enableOpencode ? false,
opencode,
t3code-unwrapped ? callPackage ./unwrapped.nix { },
}:
stdenv.mkDerivation (
finalAttrs:
let
appName = "T3 Code (Alpha)";
electron = electron_41;
pnpm = pnpm_10;
desktopIcon =
if stdenv.hostPlatform.isDarwin then
"assets/prod/black-macos-1024.png"
else
"assets/prod/black-universal-1024.png";
runtimePackages =
lib.optionals enableAzureDevOps [
azure-cli.withExtensions
[ azure-cli-extensions.azure-devops ]
]
++ lib.optionals enableBitbucket [ bitbucket-cli ]
++ lib.optionals enableClaude [ claude-code ]
++ lib.optionals enableCodex [ codex ]
++ lib.optionals enableCursor [ code-cursor ]
++ lib.optionals enableCursorCli [ cursor-cli ]
++ lib.optionals enableGitHub [ gh ]
++ lib.optionals enableGit [ git ]
++ lib.optionals enableGitLab [ glab ]
++ lib.optionals enableJujutsu [ jujutsu ]
++ lib.optionals enableOpencode [ opencode ];
runtimePathWrapperArgs = lib.optionalString (runtimePackages != [ ]) ''
\
--prefix PATH : ${lib.makeBinPath runtimePackages}
'';
in
{
pname = "t3code";
version = "0.0.28";
strictDeps = true;
__structuredAttrs = true;
src = fetchFromGitHub {
owner = "pingdotgg";
repo = "t3code";
tag = "v${finalAttrs.version}";
hash = "sha256-InVrw9L281QSSPrHSiZuivmb+FkYEd6FkHwHIAAxmGk=";
};
postPatch = ''
substituteInPlace apps/web/vite.config.ts \
--replace-fail 'const host = process.env.HOST?.trim() || "localhost";' \
'const host = process.env.HOST?.trim() || "127.0.0.1";'
'';
nativeBuildInputs = [
installShellFiles
makeBinaryWrapper
node-gyp
nodejs
python3
pnpmConfigHook
pnpmBuildHook
pnpm
cacert
let
runtimePackages =
lib.optionals enableAzureDevOps [
(azure-cli.withExtensions [ azure-cli-extensions.azure-devops ])
]
++ lib.optionals stdenv.hostPlatform.isLinux [ copyDesktopItems ]
++ lib.optionals stdenv.hostPlatform.isDarwin [
cctools.libtool
libicns
writeDarwinBundle
xcbuild
];
++ lib.optionals enableBitbucket [ bitbucket-cli ]
++ lib.optionals enableClaude [ claude-code ]
++ lib.optionals enableCodex [ codex ]
++ lib.optionals enableCursor [ code-cursor ]
++ lib.optionals enableCursorCli [ cursor-cli ]
++ lib.optionals enableGitHub [ gh ]
++ lib.optionals enableGit [ git ]
++ lib.optionals enableGitLab [ glab ]
++ lib.optionals enableJujutsu [ jujutsu ]
++ lib.optionals enableOpencode [ opencode ];
pnpmWorkspaces = [
# `...` suffix is used to also include other workspace packages that are
# directly or indirectly depended on by the listed packages, such as
# `@t3tools/contracts` and `@t3tools/shared`.
"@t3tools/monorepo"
"t3..."
"@t3tools/desktop..."
"@t3tools/scripts..."
];
in
symlinkJoin {
pname = "t3code";
inherit (t3code-unwrapped) version;
__structuredAttrs = true;
strictDeps = true;
pnpmDeps = fetchPnpmDeps {
inherit pnpm;
inherit (finalAttrs)
pname
version
src
pnpmWorkspaces
;
paths = [ t3code-unwrapped ];
fetcherVersion = 4;
hash = "sha256-+JqW/iI0wdRPxyL7y6ggD/+AvwwZXs9+fSUtG/SgW9s=";
};
nativeBuildInputs = [ makeBinaryWrapper ];
preBuild = ''
node scripts/update-release-package-versions.ts ${finalAttrs.version}
postBuild = lib.optionalString (runtimePackages != [ ]) ''
for program in "$out/bin"/*; do
wrapProgram "$program" \
--prefix PATH : "${lib.makeBinPath runtimePackages}"
done
'';
export npm_config_nodedir=${nodejs}
export ELECTRON_SKIP_BINARY_DOWNLOAD=1
# Exclude the `@t3tools/monorepo` workspace from the pending rebuild since
# `vp config` needs git
pnpm rebuild --pending "''${pnpmInstallFlags[@]}" --filter '!@t3tools/monorepo'
'';
pnpmBuildScript = "build:desktop";
postBuild = ''
pnpm vp cache clean
'';
# Many dependencies vendors many prebuilt native artifacts for non-host
# platforms, and some of those binaries are statically linked. Let fixup
# handle wrappers, shebangs, and stripping, but skip patchelf on the
# vendored tree.
dontPatchELF = true;
# The tmpdir audit hook also shells out to patchelf while scanning every
# vendored ELF for leaked build paths. That produces spurious warnings on
# some dependencies' static foreign-platform binaries.
noAuditTmpdir = true;
installPhase = ''
runHook preInstall
mkdir --parents "$out"/libexec/t3code/apps/desktop "$out"/libexec/t3code/apps/server
cp --recursive --no-preserve=mode node_modules "$out"/libexec/t3code
cp --recursive --no-preserve=mode apps/server/{node_modules,dist} "$out"/libexec/t3code/apps/server
cp --recursive --no-preserve=mode \
apps/desktop/{package.json,node_modules,dist-electron} \
"$out"/libexec/t3code/apps/desktop
mkdir --parents "$out"/libexec/t3code/apps/desktop/prod-resources
install --mode=444 ${desktopIcon} \
"$out"/libexec/t3code/apps/desktop/prod-resources/icon.png
find "$out"/libexec/t3code -xtype l -delete
makeWrapper ${lib.getExe nodejs} "$out"/bin/t3 \
--add-flags "$out"/libexec/t3code/apps/server/dist/bin.mjs ${runtimePathWrapperArgs}
makeWrapper ${lib.getExe electron} "$out"/bin/t3code-desktop \
--add-flags "$out"/libexec/t3code/apps/desktop \
--inherit-argv0 ${runtimePathWrapperArgs}
''
+ lib.optionalString stdenv.hostPlatform.isDarwin ''
# node-pty tries to chmod this helper at runtime, but the Nix store is
# immutable by then.
find "$out"/libexec/t3code \
-path '*/node-pty/prebuilds/darwin-*/spawn-helper' \
-exec chmod 755 {} +
mkdir --parents "$out/Applications/${appName}.app/Contents/"{MacOS,Resources}
png2icns \
"$out/Applications/${appName}.app/Contents/Resources/t3code.icns" \
${desktopIcon}
# writeDarwinBundle is a shebangless bash script; run it explicitly via
# stdenv.shell to avoid Darwin's intermittent ENOEXEC fallback issues.
${stdenv.shell} ${lib.getExe writeDarwinBundle} \
"$out" "${appName}" t3code-desktop t3code
''
+ ''
mkdir --parents \
"$out"/share/icons/hicolor/scalable/apps
install --mode=444 ${desktopIcon} \
"$out"/share/icons/t3code.png
install --mode=444 assets/prod/logo.svg \
"$out"/share/icons/hicolor/scalable/apps/t3code.svg
runHook postInstall
'';
postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
for shell in bash fish zsh; do
installShellCompletion --cmd t3 --"$shell" <("$out/bin/t3" --completions "$shell")
done
'';
desktopItems = [
(makeDesktopItem {
name = "t3code";
desktopName = appName;
comment = "Minimal web GUI for coding agents";
exec = "t3code-desktop %U";
terminal = false;
icon = "t3code";
startupWMClass = "t3code";
categories = [ "Development" ];
})
];
passthru = {
updateScript = nix-update-script { };
};
meta = {
description = "Minimal web GUI for coding agents";
homepage = "https://t3.codes";
downloadPage = "https://t3.codes/download";
changelog = "https://github.com/pingdotgg/t3code/releases/tag/${finalAttrs.src.tag}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [
iamanaws
qweered
];
mainProgram = "t3code-desktop";
inherit (nodejs.meta) platforms;
};
passthru = {
unwrapped = t3code-unwrapped;
}
)
// t3code-unwrapped.passthru;
meta = {
# Manually inherit so that pos works
inherit (t3code-unwrapped.meta)
description
homepage
downloadPage
changelog
license
maintainers
mainProgram
platforms
;
};
}
+216
View File
@@ -0,0 +1,216 @@
{
cctools,
copyDesktopItems,
electron_41,
fetchFromGitHub,
installShellFiles,
lib,
libicns,
makeBinaryWrapper,
makeDesktopItem,
nix-update-script,
node-gyp,
nodejs,
python3,
stdenv,
writeDarwinBundle,
xcbuild,
fetchPnpmDeps,
pnpm_10,
pnpmConfigHook,
pnpmBuildHook,
cacert,
}:
stdenv.mkDerivation (
finalAttrs:
let
appName = "T3 Code (Alpha)";
electron = electron_41;
pnpm = pnpm_10;
desktopIcon =
if stdenv.hostPlatform.isDarwin then
"assets/prod/black-macos-1024.png"
else
"assets/prod/black-universal-1024.png";
in
{
pname = "t3code-unwrapped";
version = "0.0.28";
strictDeps = true;
__structuredAttrs = true;
src = fetchFromGitHub {
owner = "pingdotgg";
repo = "t3code";
tag = "v${finalAttrs.version}";
hash = "sha256-InVrw9L281QSSPrHSiZuivmb+FkYEd6FkHwHIAAxmGk=";
};
postPatch = ''
substituteInPlace apps/web/vite.config.ts \
--replace-fail 'const host = process.env.HOST?.trim() || "localhost";' \
'const host = process.env.HOST?.trim() || "127.0.0.1";'
'';
nativeBuildInputs = [
installShellFiles
makeBinaryWrapper
node-gyp
nodejs
python3
pnpmConfigHook
pnpmBuildHook
pnpm
cacert
]
++ lib.optionals stdenv.hostPlatform.isLinux [ copyDesktopItems ]
++ lib.optionals stdenv.hostPlatform.isDarwin [
cctools.libtool
libicns
writeDarwinBundle
xcbuild
];
pnpmWorkspaces = [
# `...` suffix is used to also include other workspace packages that are
# directly or indirectly depended on by the listed packages, such as
# `@t3tools/contracts` and `@t3tools/shared`.
"@t3tools/monorepo"
"t3..."
"@t3tools/desktop..."
"@t3tools/scripts..."
];
pnpmDeps = fetchPnpmDeps {
inherit pnpm;
inherit (finalAttrs)
pname
version
src
pnpmWorkspaces
;
fetcherVersion = 4;
hash = "sha256-+JqW/iI0wdRPxyL7y6ggD/+AvwwZXs9+fSUtG/SgW9s=";
};
preBuild = ''
node scripts/update-release-package-versions.ts ${finalAttrs.version}
export npm_config_nodedir=${nodejs}
export ELECTRON_SKIP_BINARY_DOWNLOAD=1
# Exclude the `@t3tools/monorepo` workspace from the pending rebuild since
# `vp config` needs git
pnpm rebuild --pending "''${pnpmInstallFlags[@]}" --filter '!@t3tools/monorepo'
'';
pnpmBuildScript = "build:desktop";
postBuild = ''
pnpm vp cache clean
'';
# Many dependencies vendors many prebuilt native artifacts for non-host
# platforms, and some of those binaries are statically linked. Let fixup
# handle wrappers, shebangs, and stripping, but skip patchelf on the
# vendored tree.
dontPatchELF = true;
# The tmpdir audit hook also shells out to patchelf while scanning every
# vendored ELF for leaked build paths. That produces spurious warnings on
# some dependencies' static foreign-platform binaries.
noAuditTmpdir = true;
installPhase = ''
runHook preInstall
mkdir --parents "$out"/libexec/t3code/apps/desktop "$out"/libexec/t3code/apps/server
cp --recursive --no-preserve=mode node_modules "$out"/libexec/t3code
cp --recursive --no-preserve=mode apps/server/{node_modules,dist} "$out"/libexec/t3code/apps/server
cp --recursive --no-preserve=mode \
apps/desktop/{package.json,node_modules,dist-electron} \
"$out"/libexec/t3code/apps/desktop
mkdir --parents "$out"/libexec/t3code/apps/desktop/prod-resources
install --mode=444 ${desktopIcon} \
"$out"/libexec/t3code/apps/desktop/prod-resources/icon.png
find "$out"/libexec/t3code -xtype l -delete
makeWrapper ${lib.getExe nodejs} "$out"/bin/t3 \
--add-flags "$out"/libexec/t3code/apps/server/dist/bin.mjs
makeWrapper ${lib.getExe electron} "$out"/bin/t3code-desktop \
--add-flags "$out"/libexec/t3code/apps/desktop \
--inherit-argv0
''
+ lib.optionalString stdenv.hostPlatform.isDarwin ''
# node-pty tries to chmod this helper at runtime, but the Nix store is
# immutable by then.
find "$out"/libexec/t3code \
-path '*/node-pty/prebuilds/darwin-*/spawn-helper' \
-exec chmod 755 {} +
mkdir --parents "$out/Applications/${appName}.app/Contents/"{MacOS,Resources}
png2icns \
"$out/Applications/${appName}.app/Contents/Resources/t3code.icns" \
${desktopIcon}
# writeDarwinBundle is a shebangless bash script; run it explicitly via
# stdenv.shell to avoid Darwin's intermittent ENOEXEC fallback issues.
${stdenv.shell} ${lib.getExe writeDarwinBundle} \
"$out" "${appName}" t3code-desktop t3code
''
+ ''
mkdir --parents \
"$out"/share/icons/hicolor/scalable/apps
install --mode=444 ${desktopIcon} \
"$out"/share/icons/t3code.png
install --mode=444 assets/prod/logo.svg \
"$out"/share/icons/hicolor/scalable/apps/t3code.svg
runHook postInstall
'';
postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
for shell in bash fish zsh; do
installShellCompletion --cmd t3 --"$shell" <("$out/bin/t3" --completions "$shell")
done
'';
desktopItems = [
(makeDesktopItem {
name = "t3code";
desktopName = appName;
comment = "Minimal web GUI for coding agents";
exec = "t3code-desktop %U";
terminal = false;
icon = "t3code";
startupWMClass = "t3code";
categories = [ "Development" ];
})
];
passthru = {
updateScript = nix-update-script {
attrPath = "t3code.unwrapped";
extraArgs = [ "--use-github-releases" ];
};
};
meta = {
description = "Minimal web GUI for coding agents";
homepage = "https://t3.codes";
downloadPage = "https://t3.codes/download";
changelog = "https://github.com/pingdotgg/t3code/releases/tag/${finalAttrs.src.tag}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [
iamanaws
qweered
];
mainProgram = "t3code-desktop";
inherit (nodejs.meta) platforms;
};
}
)
+40
View File
@@ -0,0 +1,40 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
nix-update-script,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "vmaware";
version = "2.8.0";
strictDeps = true;
__structuredAttrs = true;
src = fetchFromGitHub {
owner = "kernelwernel";
repo = "VMAware";
tag = "v${finalAttrs.version}";
hash = "sha256-KPjIk5nm27RcxGg3owfLVt+b1sL0y90IPPgeGv7fTgQ=";
};
nativeBuildInputs = [ cmake ];
cmakeFlags = [
"-DCMAKE_BUILD_TYPE=Release"
];
passthru.updateScript = nix-update-script { };
meta = {
description = "Cross-platform C++ library and CLI tool for virtual machine detection";
homepage = "https://github.com/kernelwernel/VMAware";
changelog = "https://github.com/kernelwernel/VMAware/releases/tag/v${finalAttrs.version}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ patrickdag ];
platforms = lib.platforms.linux;
mainProgram = "vmaware";
};
})
+3 -3
View File
@@ -58,11 +58,11 @@
stdenv.mkDerivation rec {
pname = "webex";
version = "46.4.0.34752";
version = "46.6.1.35236";
src = fetchurl {
url = "https://binaries.webex.com/WebexDesktop-Ubuntu-2004-Gold/20260422175501/Webex_ubuntu.7z";
sha256 = "8b0711259237ae1009c05b012d44c5fc4e222005bf26d9ac1b84af063719d09a";
url = "https://binaries.webex.com/WebexDesktop-Ubuntu-2004-Gold/20260625094602/Webex_ubuntu.7z";
sha256 = "2420fda7e86883d53751c38a358dc61b3b9a731e20abda8b84dfcd367ecfc67f";
};
nativeBuildInputs = [
+4 -4
View File
@@ -8,17 +8,17 @@
buildGoModule (finalAttrs: {
pname = "zs";
version = "0.4.1";
version = "0.4.5";
src = fetchFromGitea {
domain = "git.mills.io";
owner = "prologic";
repo = "zs";
rev = finalAttrs.version;
hash = "sha256-V8+p19kvVh64yCreNVp4RVdkJkjrq8Q5VbjaJWekZHY=";
hash = "sha256-NYnr0s730u4ICppPVZAAHB753XVooZtSSKIAp+z98Gw=";
};
vendorHash = "sha256-KXcYTYO4wnWOup5uJ6T+XwthX5l2FL02JyOt1Nv51Sg=";
vendorHash = "sha256-21UukhXVVj1AO+HlTlEpHkf5zLHA6dapjrOriVQd1jM=";
ldflags = [
"-w"
@@ -41,7 +41,7 @@ buildGoModule (finalAttrs: {
homepage = "https://git.mills.io/prologic/zs";
changelog = "https://git.mills.io/prologic/zs/releases/tag/${finalAttrs.version}";
license = lib.licenses.mit;
maintainers = [ ];
maintainers = with lib.maintainers; [ wariuccio ];
mainProgram = "zs";
};
})
+38
View File
@@ -0,0 +1,38 @@
{
lib,
stdenvNoCC,
fetchFromGitHub,
}:
stdenvNoCC.mkDerivation {
pname = "zsh-artisan";
version = "0-unstable-2025-12-08";
src = fetchFromGitHub {
owner = "jessarcher";
repo = "zsh-artisan";
rev = "4063d53fd310f715c7a8fb7d4e133812ef0b3128";
hash = "sha256-O0Tn9zQWR0i7UWJ9VtOvxjqpqz9Sj7aKogdHZSOATC0=";
};
__structuredAttrs = true;
strictDeps = true;
installPhase = ''
runHook preInstall
install -D artisan.plugin.zsh --target-directory=$out/share/zsh-artisan
runHook postInstall
'';
meta = {
description = "Laravel artisan plugin for zsh";
longDescription = ''
Laravel artisan plugin for zsh to help you to run artisan from anywhere in the project tree,
with auto-completion, and it can automatically open files created by artisan!
'';
homepage = "https://github.com/jessarcher/zsh-artisan";
license = lib.licenses.mit;
maintainers = [ lib.maintainers.FatBoyXPC ];
};
}
+3 -3
View File
@@ -7,15 +7,15 @@ let
originalDrv = fetchFromGitHub {
owner = "Aylur";
repo = "astal";
rev = "11842ae3045c1367fb3a62a2302dba0d9ccb4a33";
hash = "sha256-FGZHls4eQJ8y3pvf5h3b83PfXlve3vD/Gj3g1qoAK6o=";
rev = "04454c22094401cc8e682cfe1f8ecc3194cac5f9";
hash = "sha256-bXd034/ARs18ZQ7hWUAw9NwyfBmcKQws8DQHzwYp6jM=";
};
in
originalDrv.overrideAttrs (
final: prev: {
name = "${final.pname}-${final.version}"; # fetchFromGitHub already defines name
pname = "astal-source";
version = "0-unstable-2026-06-21";
version = "0-unstable-2026-07-03";
meta = prev.meta // {
description = "Building blocks for creating custom desktop shells (source)";