Merge staging-next into staging

Changed files
+870 -558
maintainers
pkgs
+13
maintainers/maintainer-list.nix
···
githubId = 9433472;
name = "ash";
+
keyzox = {
+
email = "nixpkgs@adjoly.fr";
+
github = "keyzox71";
+
matrix = "@keyzox:matrix.org";
+
githubId = 18579667;
+
name = "Adam J.";
+
};
kfollesdal = {
email = "kfollesdal@gmail.com";
github = "kfollesdal";
···
github = "Stunkymonkey";
githubId = 1315818;
name = "Felix Bühler";
+
};
+
stupidcomputer = {
+
email = "ryan@beepboop.systems";
+
github = "stupidcomputer";
+
githubId = 108326967;
+
name = "Ryan Marina";
stupremee = {
email = "jutus.k@protonmail.com";
+2 -2
pkgs/applications/editors/android-studio/default.nix
···
inherit tiling_wm;
};
stableVersion = {
-
version = "2025.1.2.11"; # "Android Studio Narwhal Feature Drop | 2025.1.2"
-
sha256Hash = "sha256-jzh0xrEZU4zdlse8tlVV/uqBEz4lH2k2XSHd13d3vng=";
+
version = "2025.1.2.12"; # "Android Studio Narwhal Feature Drop | 2025.1.2 Patch 1"
+
sha256Hash = "sha256-fLjCbB9Wwrx7siYQTmtWvce+8TdYTea+y6HTtSTYWAY=";
};
betaVersion = {
version = "2025.1.3.5"; # "Android Studio Narwhal 3 Feature Drop | 2025.1.3 RC 1"
-24
pkgs/by-name/ch/checksec/0001-attempt-to-modprobe-config-before-checking-kernel.patch
···
-
From 5cfb08effd21d9278e3eb8901c85112a331c3181 Mon Sep 17 00:00:00 2001
-
From: Austin Seipp <aseipp@pobox.com>
-
Date: Tue, 26 Oct 2021 09:23:07 +0000
-
Subject: [PATCH] attempt to 'modprobe config' before checking kernel
-
-
---
-
checksec | 1 +
-
1 file changed, 1 insertion(+)
-
-
diff --git a/checksec b/checksec
-
index 5536250..895073b 100755
-
--- a/checksec
-
+++ b/checksec
-
@@ -1059,6 +1059,7 @@ kernelcheck() {
-
echo_message " options that harden the kernel itself against attack.\n\n" '' '' ''
-
echo_message " Kernel config:\n" '' '' '{ "kernel": '
-
-
+ modprobe configs 2> /dev/null
-
if [[ ! "${1}" == "" ]]; then
-
kconfig="cat ${1}"
-
echo_message " Warning: The config ${1} on disk may not represent running kernel config!\n\n" "${1}" "<kernel config=\"${1}\"" "{ \"KernelConfig\":\"${1}\""
-
--
-
2.33.0
-
-25
pkgs/by-name/ch/checksec/0002-don-t-sanatize-the-environment.patch
···
-
From 3b047ab4271919856ae0a3dee3a03a24045c0016 Mon Sep 17 00:00:00 2001
-
From: Paul Meyer <49727155+katexochen@users.noreply.github.com>
-
Date: Mon, 13 Nov 2023 20:24:54 +0000
-
Subject: [PATCH] don't sanatize the environment
-
-
---
-
checksec | 3 ---
-
1 file changed, 3 deletions(-)
-
-
diff --git a/checksec b/checksec
-
index 4fc3c31..135223a 100755
-
--- a/checksec
-
+++ b/checksec
-
@@ -2,9 +2,6 @@
-
# Do not edit this file directly, this file is generated from the files
-
# in the src directory. Any updates to this file will be overwritten when generated
-
-
-# sanitize the environment before run
-
-[[ "$(env | /bin/sed -r -e '/^(PWD|SHLVL|_)=/d')" ]] && exec -c "$0" "$@"
-
-
-
# --- Modified Version ---
-
# Name : checksec.sh
-
# Version : 1.7.0
-
--
-
2.42.0
+15 -75
pkgs/by-name/ch/checksec/package.nix
···
{
lib,
-
stdenv,
-
fetchpatch,
fetchFromGitHub,
-
makeWrapper,
-
testers,
-
runCommand,
-
# dependencies
-
binutils,
-
coreutils,
-
curl,
-
elfutils,
-
file,
-
findutils,
-
gawk,
-
glibc,
-
gnugrep,
-
gnused,
-
openssl,
-
procps,
-
sysctl,
-
wget,
-
which,
+
buildGoModule,
# tests
+
testers,
checksec,
}:
-
stdenv.mkDerivation rec {
+
buildGoModule rec {
pname = "checksec";
-
version = "2.6.0";
+
version = "3.0.2";
src = fetchFromGitHub {
owner = "slimm609";
-
repo = "checksec.sh";
-
rev = version;
-
hash = "sha256-BWtchWXukIDSLJkFX8M/NZBvfi7vUE2j4yFfS0KEZDo=";
+
repo = "checksec";
+
tag = version;
+
hash = "sha256-ZpDowTmnK23+ZocOY1pJMgMSn7FiQQGvMg/gSbiL1nw=";
};
-
patches = [
-
./0001-attempt-to-modprobe-config-before-checking-kernel.patch
-
# Tool would sanitize the environment, removing the PATH set by our wrapper.
-
./0002-don-t-sanatize-the-environment.patch
-
# Fix the exit code of debug_report command. Check if PR 226 was merged when upgrading version.
-
(fetchpatch {
-
url = "https://github.com/slimm609/checksec.sh/commit/851ebff6972f122fde5507f1883e268bbff1f23d.patch";
-
hash = "sha256-DOcVF+oPGIR9VSbqE+EqWlcNANEvou1gV8qBvJLGLBE=";
-
})
-
];
+
vendorHash = "sha256-7poHsEsRATljkqtfGxzqUbqhwSjVmiao2KoMVQ8LkD4=";
-
nativeBuildInputs = [
-
makeWrapper
+
ldflags = [
+
"-s"
+
"-w"
+
"-X main.version=${version}"
];
-
installPhase =
-
let
-
path = lib.makeBinPath [
-
binutils
-
coreutils
-
curl
-
elfutils
-
file
-
findutils
-
gawk
-
gnugrep
-
gnused
-
openssl
-
procps
-
sysctl
-
wget
-
which
-
];
-
in
-
''
-
mkdir -p $out/bin
-
install checksec $out/bin
-
substituteInPlace $out/bin/checksec \
-
--replace "/bin/sed" "${gnused}/bin/sed" \
-
--replace "/usr/bin/id" "${coreutils}/bin/id" \
-
--replace "/lib/libc.so.6" "${glibc}/lib/libc.so.6"
-
wrapProgram $out/bin/checksec \
-
--prefix PATH : ${path}
-
'';
-
passthru.tests = {
version = testers.testVersion {
package = checksec;
-
version = "v${version}";
+
inherit version;
};
-
debug-report = runCommand "debug-report" { buildInputs = [ checksec ]; } ''
-
checksec --debug_report || exit 1
-
echo "OK"
-
touch $out
-
'';
};
meta = with lib; {
description = "Tool for checking security bits on executables";
mainProgram = "checksec";
-
homepage = "https://www.trapkit.de/tools/checksec/";
+
homepage = "https://slimm609.github.io/checksec/";
license = licenses.bsd3;
platforms = platforms.linux;
maintainers = with maintainers; [
thoughtpolice
globin
+
sdht0
];
};
}
+4 -4
pkgs/by-name/cl/clash-verge-rev/package.nix
···
}:
let
pname = "clash-verge-rev";
-
version = "2.3.2";
+
version = "2.4.0";
src = fetchFromGitHub {
owner = "clash-verge-rev";
repo = "clash-verge-rev";
tag = "v${version}";
-
hash = "sha256-Wdd1iZspVcCxifCYvST4vlatQJXnyeZkm3Ifc8Q2xtM=";
+
hash = "sha256-Kw2QXePBjDs0kUMPLE7UyN/v9GvsMNYi1rxcy+O6EWs=";
};
src-service = fetchFromGitHub {
···
};
service-cargo-hash = "sha256-HET7/Lyc0Ip1f9WMVzUWr0QFuL8YN3dgZdK0adl/rYc=";
-
pnpm-hash = "sha256-yizUju+AswVkbfPMxNhHkrkKsFIe7yedEUqS15uy+V0=";
-
vendor-hash = "sha256-u2y0fSx15Kbe3auL7c4enW0y6z4gjvTg4WIGkmXpMmI=";
+
pnpm-hash = "sha256-O6JO5sW3eKjOPcnu2JDnXEUnR2Yma+SkRMOfEjG5X/E=";
+
vendor-hash = "sha256-kUPzKfrcMaGAMGzYy666I9l3ctac7b1xTCO8oMA9fYg=";
service = callPackage ./service.nix {
inherit
+6
pkgs/by-name/cl/clash-verge-rev/unwrapped.nix
···
# See service.nix for reasons
substituteInPlace src-tauri/src/core/service_ipc.rs \
--replace-fail "/tmp/clash-verge-service.sock" "/run/clash-verge-rev/service.sock"
+
# Set verge-mihomo.sock path
+
# In service mode, use /run/clash-verge-rev
+
# In sidecar mode, use $XDG_RUNTIME_DIR or /run/user/$UID or /tmp
+
substituteInPlace src-tauri/src/utils/dirs.rs \
+
--replace-fail '"/var/tmp", "/tmp"' '"/run/clash-verge-rev", &std::env::var("XDG_RUNTIME_DIR").unwrap_or_else(|_| std::env::var("UID").map(|uid| format!("/run/user/{}", uid)).unwrap_or_else(|_| "/tmp".to_string()))' \
+
--replace-fail 'base_dir.join("verge")' 'base_dir'
substituteInPlace $cargoDepsCopy/libappindicator-sys-*/src/lib.rs \
--replace-fail "libayatana-appindicator3.so.1" "${libayatana-appindicator}/lib/libayatana-appindicator3.so.1"
+3 -3
pkgs/by-name/cl/cliflux/package.nix
···
rustPlatform.buildRustPackage (finalAttrs: {
pname = "cliflux";
-
version = "1.8.0";
+
version = "1.9.0";
src = fetchFromGitHub {
owner = "spencerwi";
repo = "cliflux";
tag = "v${finalAttrs.version}";
-
hash = "sha256-AGkinlN5Ng0LXau6U9Ft+yMIFMpbrbup3R3c3UlglEM=";
+
hash = "sha256-2Hmdze3so74YHv9JrRHfylWcT1LlBrXVcAiBxigW6wU=";
};
-
cargoHash = "sha256-3nNvPQMnYRZlhUab0MSf39vMNidpMLJh56JSjlsrYAg=";
+
cargoHash = "sha256-glA78iRu7SoJZnk6QL7b84jY1+U4RzgUXe/zQpAnK7A=";
nativeBuildInputs = [
pkg-config
+2 -2
pkgs/by-name/ec/ecapture/package.nix
···
buildGoModule rec {
pname = "ecapture";
-
version = "1.4.0";
+
version = "1.4.1";
src = fetchFromGitHub {
owner = "gojue";
repo = "ecapture";
tag = "v${version}";
-
hash = "sha256-2YuBgN7KUH8pgFSvvk0gpkAc1YCL8NLrU/UtQ9ykyqw=";
+
hash = "sha256-vVDr0KKfjFg282FLt23foYWoW5XSFdEgGfXgdiWrfk4=";
fetchSubmodules = true;
};
+20 -20
pkgs/by-name/el/elmerfem/package.nix
···
libGL,
libGLU,
opencascade-occt,
-
libsForQt5,
+
qt6Packages,
tbb,
-
vtkWithQt5,
+
vtkWithQt6,
llvmPackages,
}:
stdenv.mkDerivation rec {
···
cmake
gfortran
pkg-config
-
libsForQt5.wrapQtAppsHook
+
qt6Packages.wrapQtAppsHook
];
buildInputs = [
mpi
blas
liblapack
-
libsForQt5.qtbase
-
libsForQt5.qtscript
-
libsForQt5.qwt
+
qt6Packages.qtbase
+
qt6Packages.qwt
libGL
libGLU
opencascade-occt
tbb
-
vtkWithQt5
+
vtkWithQt6
]
++ lib.optional stdenv.cc.isClang llvmPackages.openmp;
preConfigure = ''
patchShebangs ./
'';
-
-
storepath = placeholder "out";
NIX_CFLAGS_COMPILE = "-Wno-error=implicit-function-declaration";
cmakeFlags = [
-
"-DELMER_INSTALL_LIB_DIR=${storepath}/lib"
-
"-DWITH_OpenMP:BOOLEAN=TRUE"
-
"-DWITH_MPI:BOOLEAN=TRUE"
-
"-DWITH_QT5:BOOLEAN=TRUE"
-
"-DWITH_OCC:BOOLEAN=TRUE"
-
"-DWITH_VTK:BOOLEAN=TRUE"
-
"-DWITH_ELMERGUI:BOOLEAN=TRUE"
-
"-DCMAKE_INSTALL_LIBDIR=lib"
-
"-DCMAKE_INSTALL_INCLUDEDIR=include"
-
"-DCMAKE_OpenGL_GL_PREFERENCE=GLVND"
-
"-DUSE_MACOS_PACKAGE_MANAGER=False"
+
(lib.cmakeFeature "ELMER_INSTALL_LIB_DIR" "${placeholder "out"}/lib")
+
(lib.cmakeBool "WITH_OpenMP" true)
+
(lib.cmakeBool "WITH_MPI" true)
+
(lib.cmakeBool "WITH_QT6" true)
+
(lib.cmakeBool "WITH_OCC" true)
+
(lib.cmakeBool "WITH_VTK" true)
+
(lib.cmakeBool "WITH_ELMERGUI" true)
+
(lib.cmakeFeature "CMAKE_INSTALL_LIBDIR" "lib")
+
(lib.cmakeFeature "CMAKE_INSTALL_INCLUDEDIR" "include")
+
(lib.cmakeFeature "CMAKE_OpenGL_GL_PREFERENCE" "GLVND")
+
]
+
++ lib.optionals stdenv.hostPlatform.isDarwin [
+
(lib.cmakeBool "USE_MACOS_PACKAGE_MANAGER" false)
+
(lib.cmakeFeature "QWT_INCLUDE_DIR" "${qt6Packages.qwt}/lib/qwt.framework/Headers")
];
meta = with lib; {
+4 -5
pkgs/by-name/eq/equibop/disable_update_checking.patch
···
index 23ea0d6..1ef465f 100644
--- i/src/main/index.ts
+++ w/src/main/index.ts
-
@@ -32,7 +32,9 @@ if (process.platform === "linux") {
-
if (IS_DEV) {
-
require("source-map-support").install();
-
} else {
+
@@ -22,7 +22,9 @@ import { isDeckGameMode } from "./utils/steamOS";
+
+
if (!IS_DEV) {
- autoUpdater.checkForUpdatesAndNotify();
+ console.log("Update checking is disabled. Skipping...");
+ // autoUpdater.checkForUpdatesAndNotify();
+
}
-
// Make the Vencord files use our DATA_DIR
+
console.log("Equibop v" + app.getVersion());
+6 -6
pkgs/by-name/eq/equibop/package.nix
···
pipewire,
libpulseaudio,
autoPatchelfHook,
-
pnpm_9,
+
pnpm_10,
nodejs,
nix-update-script,
withTTS ? true,
···
}:
stdenv.mkDerivation (finalAttrs: {
pname = "equibop";
-
version = "2.1.4";
+
version = "2.1.5";
src = fetchFromGitHub {
owner = "Equicord";
repo = "Equibop";
tag = "v${finalAttrs.version}";
-
hash = "sha256-y5q3shwmMjXlMaLWfxjN164uM8hSbWymsHIIJxM82Nk=";
+
hash = "sha256-uod94pP261Alq+dby+/diiLT0KFjXswVapwXYAAAkbs=";
};
-
pnpmDeps = pnpm_9.fetchDeps {
+
pnpmDeps = pnpm_10.fetchDeps {
inherit (finalAttrs)
pname
version
···
patches
;
fetcherVersion = 1;
-
hash = "sha256-laTyxRh54x3iopGVgoFtcgaV7R6IKux1O/+tzGEy0Fg=";
+
hash = "sha256-0UNScJAdpcMOcBHGGG+SeGQon89qLXTCNmaxEswNFBI=";
};
nativeBuildInputs = [
nodejs
-
pnpm_9.configHook
+
pnpm_10.configHook
# XXX: Equibop *does not* ship venmic as a prebuilt node module. The package
# seems to build with or without this hook, but I (NotAShelf) don't have the
# time to test the consequences of removing this hook. Please open a pull
+2 -2
pkgs/by-name/eq/equibop/use_system_equicord.patch
···
index afb171f..c6a014e 100644
--- i/src/main/constants.ts
+++ w/src/main/constants.ts
-
@@ -47,10 +47,7 @@ export const VENCORD_THEMES_DIR = join(DATA_DIR, "themes");
+
@@ -30,10 +30,7 @@ export const VENCORD_THEMES_DIR = join(DATA_DIR, "themes");
// needs to be inline require because of circular dependency
// as otherwise "DATA_DIR" (which is used by ./settings) will be uninitialised
-export const VENCORD_DIR = (() => {
- const { State } = require("./settings") as typeof import("./settings");
-
- return State.store.vencordDir ? join(State.store.vencordDir, "equibop") : join(SESSION_DATA_DIR, "equicord.asar");
+
- return State.store.equicordDir ? join(State.store.equicordDir, "equibop") : join(SESSION_DATA_DIR, "equicord.asar");
-})();
+export const VENCORD_DIR = "@equicord@";
+4 -4
pkgs/by-name/eq/equicord/package.nix
···
# the Equicord repository. Dates as tags (and automatic releases) were the compromise
# we came to with upstream. Please do not change the version schema (e.g., to semver)
# unless upstream changes the tag schema from dates.
-
version = "2025-04-17";
+
version = "2025-07-25";
src = fetchFromGitHub {
owner = "Equicord";
repo = "Equicord";
tag = "${finalAttrs.version}";
-
hash = "sha256-pAuNqPrQBeL2qPIoIvyBl1PrUBz81TrBd5RT15Iuuus=";
+
hash = "sha256-6p7lfdRaxQusqZf86a1qclal2E0LusYYT1y3BPkOSKY=";
};
pnpmDeps = pnpm_9.fetchDeps {
inherit (finalAttrs) pname version src;
fetcherVersion = 1;
-
hash = "sha256-fjfzBy1Z7AUKA53yjjCQ6yasHc5QMaOBtXtXA5fNK5s=";
+
hash = "sha256-LXbr/qh1QZXQ/Na5180Im2WW8KbWU78Oo0O12SiNMWg=";
};
nativeBuildInputs = [
···
passthru.updateScript = nix-update-script {
extraArgs = [
"--version-regex"
-
"^\d{4}-\d{2}-\d{2}$"
+
"^(\\d{4}-\\d{2}-\\d{2})$"
];
};
+2 -2
pkgs/by-name/fo/fosrl-newt/package.nix
···
buildGoModule rec {
pname = "newt";
-
version = "1.4.1";
+
version = "1.4.2";
src = fetchFromGitHub {
owner = "fosrl";
repo = "newt";
tag = version;
-
hash = "sha256-rRieo1olWwTSx5p7HpDE0eMY4d2/GcU0o0wIFyXetzI=";
+
hash = "sha256-yfQ9w1PKLhdpakZQLnQEcOAxpA4LC4S2OFX4dYKgDKw=";
};
vendorHash = "sha256-PENsCO2yFxLVZNPgx2OP+gWVNfjJAfXkwWS7tzlm490=";
+2 -2
pkgs/by-name/fr/freetube/package.nix
···
in
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "freetube";
-
version = "0.23.7";
+
version = "0.23.8";
src = fetchFromGitHub {
owner = "FreeTubeApp";
repo = "FreeTube";
tag = "v${finalAttrs.version}-beta";
-
hash = "sha256-252d80xCWBZnPHnRESxRqYzT40Gu/LLBbzXr2nIJW/I=";
+
hash = "sha256-CHp/6/E/v6UdSe3xoB66Ot24WuZDPdmNyUG1w2w3bX0=";
};
# Darwin requires writable Electron dist
+3 -3
pkgs/by-name/gi/gitify/package.nix
···
stdenv.mkDerivation (finalAttrs: {
pname = "gitify";
-
version = "6.5.0";
+
version = "6.6.0";
src = fetchFromGitHub {
owner = "gitify-app";
repo = "gitify";
tag = "v${finalAttrs.version}";
-
hash = "sha256-nFOlzHrtkIYB2shaGnSboqI0HKycTBlu7IkmKwudP5w=";
+
hash = "sha256-cYbIXrvo8K63SusPMD4e2MmtHl4h84eiJb30SIHke/0=";
};
nativeBuildInputs = [
···
pnpmDeps = pnpm_10.fetchDeps {
inherit (finalAttrs) pname version src;
fetcherVersion = 1;
-
hash = "sha256-GEUI44QDi1ooq0qXP3lTFp7mVyVJY+TJKv3D1UCe8NI=";
+
hash = "sha256-oUjlLE7PzA4wfiQlVPnAYk3MF/lqD7hb+k++0RFGvw4=";
};
env.ELECTRON_SKIP_BINARY_DOWNLOAD = 1;
+3 -3
pkgs/by-name/hy/hyprprop/package.nix
···
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "hyprprop";
-
version = "0.1-unstable-2025-07-23";
+
version = "0.1-unstable-2025-08-20";
src = fetchFromGitHub {
owner = "hyprwm";
repo = "contrib";
-
rev = "6839b23345b71db17cd408373de4f5605bf589b8";
-
hash = "sha256-PFAJoEqQWMlo1J+yZb+4HixmhbRVmmNl58e/AkLYDDI=";
+
rev = "04721247f417256ca96acf28cdfe946cf1006263";
+
hash = "sha256-g7/g5o0spemkZCzPa8I21RgCmN0Kv41B5z9Z5HQWraY=";
};
sourceRoot = "${finalAttrs.src.name}/hyprprop";
+4 -4
pkgs/by-name/li/libmamba/package.nix
···
lib,
stdenv,
cmake,
-
fmt,
+
fmt_11,
spdlog,
tl-expected,
nlohmann_json,
···
stdenv.mkDerivation (finalAttrs: {
pname = "libmamba";
-
version = "2.1.1";
+
version = "2.3.0";
src = fetchFromGitHub {
owner = "mamba-org";
repo = "mamba";
tag = finalAttrs.version;
-
hash = "sha256-JBwdfYM7J5R7HZyw5kVXwu4FlZUd2QPrsTaGuXnyAJI=";
+
hash = "sha256-EwG5pR3nOYffQdK3xIKJztkKLqMi6Hj9fmkihn9pZHE=";
};
nativeBuildInputs = [
···
];
buildInputs = [
-
fmt
+
fmt_11
spdlog
tl-expected
nlohmann_json
+2 -10
pkgs/by-name/ma/mamba-cpp/package.nix
···
{
lib,
stdenv,
-
fetchFromGitHub,
bzip2,
cmake,
cli11,
···
python3,
versionCheckHook,
}:
-
stdenv.mkDerivation rec {
+
stdenv.mkDerivation {
pname = "mamba-cpp";
-
version = "2.1.1";
-
-
src = fetchFromGitHub {
-
owner = "mamba-org";
-
repo = "mamba";
-
tag = version;
-
hash = "sha256-JBwdfYM7J5R7HZyw5kVXwu4FlZUd2QPrsTaGuXnyAJI=";
-
};
+
inherit (libmamba) version src;
nativeBuildInputs = [ cmake ];
+63
pkgs/by-name/ne/netpeek/package.nix
···
+
{
+
lib,
+
python3Packages,
+
fetchFromGitHub,
+
meson,
+
ninja,
+
appstream,
+
desktop-file-utils,
+
gobject-introspection,
+
wrapGAppsHook4,
+
pkg-config,
+
libadwaita,
+
libportal-gtk4,
+
gnome,
+
}:
+
python3Packages.buildPythonApplication rec {
+
pname = "netpeek";
+
version = "0.2.3.1";
+
pyproject = false;
+
+
src = fetchFromGitHub {
+
owner = "ZingyTomato";
+
repo = "NetPeek";
+
tag = "v${version}";
+
hash = "sha256-3PbGK8e/W4pHlXwIvW6kmyeBMvzBIS2DrV0pxafgJOY=";
+
};
+
+
nativeBuildInputs = [
+
meson
+
ninja
+
appstream
+
desktop-file-utils
+
gobject-introspection
+
wrapGAppsHook4
+
pkg-config
+
];
+
+
buildInputs = [
+
libadwaita
+
libportal-gtk4
+
];
+
+
dependencies = with python3Packages; [
+
pygobject3
+
ping3
+
];
+
+
dontWrapGApps = true;
+
+
preFixup = ''
+
makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
+
'';
+
+
meta = {
+
description = "Modern network scanner for GNOME";
+
homepage = "https://github.com/ZingyTomato/NetPeek";
+
changelog = "https://github.com/ZingyTomato/NetPeek/releases/tag/${src.tag}";
+
license = lib.licenses.gpl3Plus;
+
maintainers = with lib.maintainers; [ Cameo007 ];
+
mainProgram = "netpeek";
+
platforms = lib.platforms.linux;
+
};
+
}
+5
pkgs/by-name/nv/nvs/package.nix
···
installShellFiles,
writableTmpDirAsHomeHook,
lib,
+
nix-update-script,
}:
buildGoModule (finalAttrs: {
pname = "nvs";
···
'';
__darwinAllowLocalNetworking = true;
+
+
passthru = {
+
updateScript = nix-update-script { };
+
};
meta = {
mainProgram = "nvs";
+6 -6
pkgs/by-name/ru/ruffle/package.nix
···
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "ruffle";
-
version = "0-nightly-2025-08-22";
+
version = "0.2-nightly-2025-08-22";
src = fetchFromGitHub {
owner = "ruffle-rs";
repo = "ruffle";
-
tag = lib.strings.removePrefix "0-" finalAttrs.version;
+
tag = lib.strings.removePrefix "0.2-" finalAttrs.version;
hash = "sha256-bv8ZQuEU8QqtC7fvtELXlkQkjPoGqqSglhE0lzsTEIk=";
};
···
env =
let
-
tag = lib.strings.removePrefix "0-" finalAttrs.version;
-
versionDate = lib.strings.removePrefix "0-nightly-" finalAttrs.version;
+
tag = lib.strings.removePrefix "0.2-" finalAttrs.version;
+
versionDate = lib.strings.removePrefix "0.2-nightly-" finalAttrs.version;
in
{
VERGEN_IDEMPOTENT = "1";
···
curl https://api.github.com/repos/ruffle-rs/ruffle/releases?per_page=1 | \
jq -r ".[0].tag_name" \
)"
-
exec nix-update --version "0-$version" ruffle
+
exec nix-update --version "0.2-$version" ruffle
'';
});
};
···
'';
homepage = "https://ruffle.rs/";
downloadPage = "https://ruffle.rs/downloads";
-
changelog = "https://github.com/ruffle-rs/ruffle/releases/tag/${lib.strings.removePrefix "0-" finalAttrs.version}";
+
changelog = "https://github.com/ruffle-rs/ruffle/releases/tag/${lib.strings.removePrefix "0.2" finalAttrs.version}";
license = [
lib.licenses.mit
lib.licenses.asl20
+16
pkgs/by-name/sp/spaghettikart/dont-fetch-stb.patch
···
+
Submodule libultraship contains modified content
+
diff --git a/libultraship/cmake/dependencies/common.cmake b/libultraship/cmake/dependencies/common.cmake
+
index 596158c..c62d7b2 100644
+
--- a/libultraship/cmake/dependencies/common.cmake
+
+++ b/libultraship/cmake/dependencies/common.cmake
+
@@ -47,10 +47,6 @@ set(stormlib_optimizations_patch git apply ${CMAKE_CURRENT_SOURCE_DIR}/cmake/dep
+
endif()
+
+
#=================== STB ===================
+
-set(STB_DIR ${CMAKE_BINARY_DIR}/_deps/stb)
+
-file(DOWNLOAD "https://github.com/nothings/stb/raw/0bc88af4de5fb022db643c2d8e549a0927749354/stb_image.h" "${STB_DIR}/stb_image.h")
+
-file(WRITE "${STB_DIR}/stb_impl.c" "#define STB_IMAGE_IMPLEMENTATION\n#include \"stb_image.h\"")
+
-
+
add_library(stb STATIC)
+
+
target_sources(stb PRIVATE
+44
pkgs/by-name/sp/spaghettikart/git-deps.patch
···
+
diff --git a/torch/CMakeLists.txt b/torch/CMakeLists.txt
+
index ba3859a..cf3da99 100644
+
--- a/torch/CMakeLists.txt
+
+++ b/torch/CMakeLists.txt
+
@@ -36,8 +36,7 @@ if(USE_STANDALONE)
+
# Because libgfxd is not a CMake project, we have to manually fetch it and add it to the build
+
FetchContent_Declare(
+
libgfxd
+
- GIT_REPOSITORY https://github.com/glankk/libgfxd.git
+
- GIT_TAG 96fd3b849f38b3a7c7b7f3ff03c5921d328e6cdf
+
+ URL @libgfxd_src@
+
)
+
+
FetchContent_GetProperties(libgfxd)
+
@@ -205,8 +204,7 @@ set(YAML_CPP_BUILD_TESTS OFF)
+
set(YAML_CPP_DISABLE_UNINSTALL ON)
+
FetchContent_Declare(
+
yaml-cpp
+
- GIT_REPOSITORY https://github.com/jbeder/yaml-cpp.git
+
- GIT_TAG 2f86d13775d119edbb69af52e5f566fd65c6953b
+
+ URL @yaml-cpp_src@
+
)
+
set(YAML_CPP_BUILD_TESTS OFF)
+
FetchContent_MakeAvailable(yaml-cpp)
+
@@ -219,8 +217,7 @@ endif()
+
if(USE_STANDALONE)
+
FetchContent_Declare(
+
spdlog
+
- GIT_REPOSITORY https://github.com/gabime/spdlog.git
+
- GIT_TAG 7e635fca68d014934b4af8a1cf874f63989352b7
+
+ URL @spdlog_src@
+
)
+
+
FetchContent_MakeAvailable(spdlog)
+
@@ -234,8 +231,7 @@ endif()
+
set(tinyxml2_BUILD_TESTING OFF)
+
FetchContent_Declare(
+
tinyxml2
+
- GIT_REPOSITORY https://github.com/leethomason/tinyxml2.git
+
- GIT_TAG 10.0.0
+
+ URL @tinyxml2_src@
+
OVERRIDE_FIND_PACKAGE
+
)
+
FetchContent_MakeAvailable(tinyxml2)
+263
pkgs/by-name/sp/spaghettikart/package.nix
···
+
{
+
lib,
+
fetchFromGitHub,
+
applyPatches,
+
writeTextFile,
+
fetchurl,
+
stdenv,
+
replaceVars,
+
yaml-cpp,
+
srcOnly,
+
cmake,
+
copyDesktopItems,
+
installShellFiles,
+
lsb-release,
+
makeWrapper,
+
ninja,
+
pkg-config,
+
libGL,
+
libvorbis,
+
libX11,
+
libzip,
+
nlohmann_json,
+
SDL2,
+
SDL2_net,
+
spdlog,
+
tinyxml-2,
+
zenity,
+
sdl_gamecontrollerdb,
+
spaghettikart,
+
makeDesktopItem,
+
}:
+
+
let
+
+
# The following are either normally fetched during build time or a specific version is required
+
+
dr_libs = fetchFromGitHub {
+
owner = "mackron";
+
repo = "dr_libs";
+
rev = "da35f9d6c7374a95353fd1df1d394d44ab66cf01";
+
hash = "sha256-ydFhQ8LTYDBnRTuETtfWwIHZpRciWfqGsZC6SuViEn0=";
+
};
+
+
imgui' = applyPatches {
+
src = fetchFromGitHub {
+
owner = "ocornut";
+
repo = "imgui";
+
tag = "v1.91.9b-docking";
+
hash = "sha256-mQOJ6jCN+7VopgZ61yzaCnt4R1QLrW7+47xxMhFRHLQ=";
+
};
+
patches = [
+
"${spaghettikart.src}/libultraship/cmake/dependencies/patches/imgui-fixes-and-config.patch"
+
];
+
};
+
+
libgfxd = fetchFromGitHub {
+
owner = "glankk";
+
repo = "libgfxd";
+
rev = "008f73dca8ebc9151b205959b17773a19c5bd0da";
+
hash = "sha256-AmHAa3/cQdh7KAMFOtz5TQpcM6FqO9SppmDpKPTjTt8=";
+
};
+
+
prism = fetchFromGitHub {
+
owner = "KiritoDv";
+
repo = "prism-processor";
+
rev = "7ae724a6fb7df8cbf547445214a1a848aefef747";
+
hash = "sha256-G7koDUxD6PgZWmoJtKTNubDHg6Eoq8I+AxIJR0h3i+A=";
+
};
+
+
stb_impl = writeTextFile {
+
name = "stb_impl.c";
+
text = ''
+
#define STB_IMAGE_IMPLEMENTATION
+
#include "stb_image.h"
+
'';
+
};
+
+
stb' = fetchurl {
+
name = "stb_image.h";
+
url = "https://raw.githubusercontent.com/nothings/stb/0bc88af4de5fb022db643c2d8e549a0927749354/stb_image.h";
+
hash = "sha256-xUsVponmofMsdeLsI6+kQuPg436JS3PBl00IZ5sg3Vw=";
+
};
+
+
stormlib' = applyPatches {
+
src = fetchFromGitHub {
+
owner = "ladislav-zezula";
+
repo = "StormLib";
+
tag = "v9.25";
+
hash = "sha256-HTi2FKzKCbRaP13XERUmHkJgw8IfKaRJvsK3+YxFFdc=";
+
};
+
patches = [
+
"${spaghettikart.src}/libultraship/cmake/dependencies/patches/stormlib-optimizations.patch"
+
];
+
};
+
+
thread_pool = fetchFromGitHub {
+
owner = "bshoshany";
+
repo = "thread-pool";
+
tag = "v4.1.0";
+
hash = "sha256-zhRFEmPYNFLqQCfvdAaG5VBNle9Qm8FepIIIrT9sh88=";
+
};
+
+
in
+
stdenv.mkDerivation (finalAttrs: {
+
pname = "spaghettikart";
+
version = "0-unstable-2025-08-07";
+
+
src = fetchFromGitHub {
+
owner = "HarbourMasters";
+
repo = "SpaghettiKart";
+
rev = "334fdeafd26c15e03b4f198002ad86b8422c0e2f";
+
hash = "sha256-0nDaX34C7stg7S2mzPChz0fRz/t7yyevKEAPmIR+lak=";
+
fetchSubmodules = true;
+
deepClone = true;
+
postFetch = ''
+
cd $out
+
(git describe --tags HEAD 2>/dev/null || echo "") > PROJECT_VERSION
+
git log --pretty=format:%h -1 > PROJECT_VERSION_PATCH
+
rm -rf .git
+
'';
+
};
+
+
patches = [
+
# Don't fetch stb as we will patch our own
+
./dont-fetch-stb.patch
+
+
# Can't fetch these torch deps in the sandbox
+
(replaceVars ./git-deps.patch {
+
libgfxd_src = fetchFromGitHub {
+
owner = "glankk";
+
repo = "libgfxd";
+
rev = "96fd3b849f38b3a7c7b7f3ff03c5921d328e6cdf";
+
hash = "sha256-dedZuV0BxU6goT+rPvrofYqTz9pTA/f6eQcsvpDWdvQ=";
+
};
+
spdlog_src = fetchFromGitHub {
+
owner = "gabime";
+
repo = "spdlog";
+
rev = "7e635fca68d014934b4af8a1cf874f63989352b7";
+
hash = "sha256-cxTaOuLXHRU8xMz9gluYz0a93O0ez2xOxbloyc1m1ns=";
+
};
+
yaml-cpp_src = fetchFromGitHub {
+
owner = "jbeder";
+
repo = "yaml-cpp";
+
rev = "28f93bdec6387d42332220afa9558060c8016795";
+
hash = "sha256-59/s4Rqiiw7LKQw0UwH3vOaT/YsNVcoq3vblK0FiO5c=";
+
};
+
tinyxml2_src = srcOnly tinyxml-2;
+
})
+
];
+
+
# Recent builds enabled LTO which won't build with nix
+
NIX_CFLAGS_COMPILE = "-fno-lto";
+
+
nativeBuildInputs = [
+
cmake
+
copyDesktopItems
+
installShellFiles
+
lsb-release
+
makeWrapper
+
ninja
+
pkg-config
+
];
+
+
buildInputs = [
+
libGL
+
libvorbis
+
libX11
+
libzip
+
nlohmann_json
+
SDL2
+
SDL2_net
+
spdlog
+
tinyxml-2
+
zenity
+
];
+
+
cmakeFlags = [
+
(lib.cmakeFeature "CMAKE_INSTALL_PREFIX" "${placeholder "out"}")
+
(lib.cmakeFeature "FETCHCONTENT_SOURCE_DIR_DR_LIBS" "${dr_libs}")
+
(lib.cmakeFeature "FETCHCONTENT_SOURCE_DIR_IMGUI" "${imgui'}")
+
(lib.cmakeFeature "FETCHCONTENT_SOURCE_DIR_LIBGFXD" "${libgfxd}")
+
(lib.cmakeFeature "FETCHCONTENT_SOURCE_DIR_PRISM" "${prism}")
+
(lib.cmakeFeature "FETCHCONTENT_SOURCE_DIR_STORMLIB" "${stormlib'}")
+
(lib.cmakeFeature "FETCHCONTENT_SOURCE_DIR_THREADPOOL" "${thread_pool}")
+
(lib.cmakeFeature "FETCHCONTENT_SOURCE_DIR_TINYXML2" "${tinyxml-2}")
+
(lib.cmakeFeature "FETCHCONTENT_SOURCE_DIR_YAML-CPP" "${yaml-cpp.src}")
+
];
+
+
strictDeps = true;
+
+
# Linking fails without this
+
hardeningDisable = [ "format" ];
+
+
preConfigure = ''
+
mkdir stb
+
cp ${stb'} ./stb/${stb'.name}
+
cp ${stb_impl} ./stb/${stb_impl.name}
+
substituteInPlace libultraship/cmake/dependencies/common.cmake \
+
--replace-fail "\''${STB_DIR}" "$(readlink -f ./stb)"
+
'';
+
+
postPatch = ''
+
substituteInPlace CMakeLists.txt \
+
--replace-fail "COMMAND git describe --tags" "COMMAND echo $(cat PROJECT_VERSION)" \
+
--replace-fail "COMMAND git log --pretty=format:%h -1" "COMMAND echo $(cat PROJECT_VERSION_PATCH)"
+
'';
+
+
postBuild = ''
+
cp ${sdl_gamecontrollerdb}/share/gamecontrollerdb.txt gamecontrollerdb.txt
+
./TorchExternal/src/TorchExternal-build/torch pack ../assets spaghetti.o2r o2r
+
'';
+
+
postInstall = ''
+
installBin Spaghettify
+
mkdir -p $out/share/spaghettikart
+
cp -r ../yamls $out/share/spaghettikart/
+
install -Dm644 -t $out/share/spaghettikart {spaghetti.o2r,config.yml,gamecontrollerdb.txt}
+
install -Dm644 ../icon.png $out/share/pixmaps/spaghettikart.png
+
install -Dm644 -t $out/share/licenses/spaghettikart/libgfxd ${libgfxd}/LICENSE
+
install -Dm644 -t $out/share/licenses/spaghettikart/libultraship ../libultraship/LICENSE
+
install -Dm644 -t $out/share/licenses/spaghettikart/thread_pool ${thread_pool}/LICENSE.txt
+
'';
+
+
# Unfortunately, spaghettikart really wants a writable working directory
+
# Create $HOME/.local/share/spaghettikart and symlink required files
+
+
postFixup = ''
+
wrapProgram $out/bin/Spaghettify \
+
--prefix PATH ":" ${lib.makeBinPath [ zenity ]} \
+
--run 'mkdir -p ~/.local/share/spaghettikart' \
+
--run "ln -sf $out/share/spaghettikart/spaghetti.o2r ~/.local/share/spaghettikart/spaghetti.o2r" \
+
--run "ln -sf $out/share/spaghettikart/config.yml ~/.local/share/spaghettikart/config.yml" \
+
--run "ln -sfT $out/share/spaghettikart/yamls ~/.local/share/spaghettikart/yamls" \
+
--run "ln -sf $out/share/spaghettikart/gamecontrollerdb.txt ~/.local/share/spaghettikart/gamecontrollerdb.txt" \
+
--run 'cd ~/.local/share/spaghettikart'
+
'';
+
+
desktopItems = [
+
(makeDesktopItem {
+
name = "spaghettikart";
+
icon = "spaghettikart";
+
exec = "Spaghettify";
+
comment = finalAttrs.meta.description;
+
genericName = "spaghettikart";
+
desktopName = "spaghettikart";
+
categories = [ "Game" ];
+
})
+
];
+
+
meta = {
+
homepage = "https://github.com/HarbourMasters/SpaghettiKart";
+
description = "Mario Kart 64 PC Port";
+
mainProgram = "Spaghettify";
+
platforms = [ "x86_64-linux" ];
+
maintainers = with lib.maintainers; [ qubitnano ];
+
license = with lib.licenses; [
+
# libultraship, libgfxd, thread_pool, dr_libs, prism-processor
+
mit
+
# Reverse engineering
+
unfree
+
];
+
};
+
})
+48
pkgs/by-name/ti/tilinggallery/package.nix
···
+
{
+
lib,
+
rustPlatform,
+
fetchFromGitHub,
+
pkg-config,
+
fontconfig,
+
nix-update-script,
+
}:
+
+
rustPlatform.buildRustPackage (finalAttrs: {
+
pname = "tiling-gallery";
+
version = "0.3.0";
+
+
src = fetchFromGitHub {
+
owner = "roothch";
+
repo = "TilingGallery";
+
tag = "v${finalAttrs.version}";
+
hash = "sha256-k6AHNvizXitrdY/K13B/eVBCvdmfVou7Zv3tslHA4T8=";
+
};
+
+
cargoHash = "sha256-xr+gVDaxGtu7U/HaJoFXzNztvp+LNYAGuMqKA9QyXHg=";
+
+
nativeBuildInputs = [ pkg-config ];
+
+
buildInputs = [ fontconfig ];
+
+
passthru.updateScript = nix-update-script { };
+
+
meta = {
+
description = "CLI tool for generating aperiodic tilings";
+
longDescription = ''
+
Tiling Gallery is a Rust-based CLI tool for generating SVG
+
images of two types of aperiodic tilings:
+
+
- Penrose tiling using the De Bruijn pentagrid method Pinwheel
+
+
- tiling with recursive triangle subdivision
+
+
This project is ideal for generating mathematical and artistic
+
patterns based on non-periodic tilings.
+
'';
+
homepage = "https://github.com/roothch/TilingGallery";
+
changelog = "https://github.com/roothch/TilingGallery/releases/tag/${finalAttrs.src.tag}";
+
license = lib.licenses.gpl3Only;
+
maintainers = with lib.maintainers; [ yiyu ];
+
mainProgram = "tiling-gallery";
+
};
+
})
+35
pkgs/by-name/to/tomlc17/package.nix
···
+
{
+
lib,
+
stdenv,
+
fetchFromGitHub,
+
nix-update-script,
+
}:
+
+
stdenv.mkDerivation (finalAttrs: {
+
pname = "tomlc17";
+
version = "250712";
+
+
src = fetchFromGitHub {
+
owner = "cktan";
+
repo = "tomlc17";
+
tag = "R${finalAttrs.version}";
+
hash = "sha256-0if07Zj7Og+DBc/gxmAEHQh7QwAo8C/4S+x9IttEUjI=";
+
};
+
+
doCheck = false; # tries to download toml-test suite
+
+
installFlags = [
+
"prefix=${placeholder "out"}"
+
];
+
+
passthru.updateScript = nix-update-script { };
+
+
meta = {
+
homepage = "https://github.com/cktan/tomlc17";
+
changelog = "https://github.com/cktan/tomlc17/releases/tag/R${finalAttrs.version}";
+
description = "TOML parser in C17";
+
license = lib.licenses.mit;
+
maintainers = with lib.maintainers; [ marcin-serwin ];
+
platforms = with lib.platforms; unix;
+
};
+
})
+51
pkgs/by-name/tu/tuatara/package.nix
···
+
{
+
lib,
+
stdenvNoCC,
+
fetchFromGitHub,
+
zig_0_13,
+
nix-update-script,
+
}:
+
+
stdenvNoCC.mkDerivation (finalAttrs: {
+
pname = "tuatara";
+
version = "1631040452-unstable-2025-04-29";
+
+
src = fetchFromGitHub {
+
owner = "q60";
+
repo = "tuatara";
+
rev = "bc093e5fe1cb8dec667806f1b41c8e4e913368e8";
+
hash = "sha256-GLOb2vqDlcCQ3bPXC50t1j+DJFhl8JK117t7uRLrBbk=";
+
};
+
+
strictDeps = true;
+
+
nativeBuildInputs = [ zig_0_13.hook ];
+
+
preBuild = ''
+
export ZIG_LOCAL_CACHE_DIR=$TMPDIR/zig-cache
+
export ZIG_GLOBAL_CACHE_DIR=$TMPDIR/zig-global-cache
+
'';
+
+
passthru.updateScript = nix-update-script { };
+
+
meta = {
+
description = "Ziggidy *nix system info fetcher";
+
longDescription = ''
+
tuatara is a ziggidy *nix system info fetcher. WIP. It is
+
descendant of disfetch. Although sharing some common concepts
+
and principles, they are different.
+
+
The main difference of tuatara from disfetch is that tuatara
+
will be highly customizable, while disfetch won't, because it
+
covers minimalism and simplicity. Though, they will share some
+
other principles regarding showing only needed information,
+
being fast and reliable and sharing the same handmade logos with
+
the principle of not-more-or-less-than 8 rows.
+
'';
+
homepage = "https://github.com/q60/tuatara";
+
license = lib.licenses.unlicense;
+
maintainers = with lib.maintainers; [ yiyu ];
+
mainProgram = "tuatara";
+
platforms = lib.platforms.all;
+
};
+
})
+1 -1
pkgs/by-name/ty/typora/package.nix
···
src = fetchurl {
urls = [
"https://download.typora.io/linux/typora_${version}_amd64.deb"
-
"https://download2.typoraio.cn/linux/typora_${version}_amd64.deb"
+
"https://downloads.typoraio.cn/linux/typora_${version}_amd64.deb"
];
hash = "sha256-7auxTtdVafvM2fIpQVvEey1Q6eLVG3mLdjdZXcqSE/Q=";
};
+2 -2
pkgs/by-name/xb/xbyak/package.nix
···
}:
stdenv.mkDerivation (finalAttrs: {
pname = "xbyak";
-
version = "7.28";
+
version = "7.29.2";
src = fetchFromGitHub {
owner = "herumi";
repo = "xbyak";
tag = "v${finalAttrs.version}";
-
hash = "sha256-jBxpNeA2Ed13zpJ++ODsjKgSC14z/RTFX3px4SapeS0=";
+
hash = "sha256-dKUb6zkMLW6VujTscD3aZdkoj5Q2Jlui/o3g8HOhZEc=";
};
nativeBuildInputs = [ cmake ];
+47
pkgs/by-name/xo/xosd-xft/package.nix
···
+
{
+
lib,
+
stdenv,
+
fetchFromGitHub,
+
versionCheckHook,
+
nix-update-script,
+
pkg-config,
+
xorg,
+
}:
+
+
stdenv.mkDerivation (finalAttrs: {
+
pname = "xosd-xft";
+
version = "1.1.0";
+
+
src = fetchFromGitHub {
+
owner = "kdmurthy";
+
repo = "libxosd-xft";
+
tag = finalAttrs.version;
+
hash = "sha256-hsI7KMDmqGoGExSI3K7JiKNoiwZMNLubekuEEgkmQTg=";
+
};
+
+
nativeBuildInputs = [
+
pkg-config
+
];
+
buildInputs = with xorg; [
+
libXft
+
libXrandr
+
libXinerama
+
];
+
+
nativeInstallCheckInputs = [
+
versionCheckHook
+
];
+
doInstallCheck = true;
+
versionCheckProgram = "${placeholder "out"}/bin/osd-echo";
+
versionCheckProgramArg = "--help";
+
+
updateScript = nix-update-script { };
+
+
meta = {
+
description = "Show text content with Xft/TTF fonts on X11 display";
+
homepage = "https://github.com/kdmurthy/libxosd-xft";
+
license = lib.licenses.gpl3Plus;
+
maintainers = with lib.maintainers; [ ulysseszhan ];
+
platforms = lib.platforms.linux;
+
};
+
})
-137
pkgs/development/compilers/gcc/ng/15/gcc/0001-find_a_program-First-search-with-machine-prefix.patch
···
-
From 3af17de3a5f6acd5a2f9340d84b8667459f43eea Mon Sep 17 00:00:00 2001
-
From: John Ericson <git@JohnEricson.me>
-
Date: Wed, 18 Aug 2021 01:55:31 -0400
-
Subject: [PATCH 1/3] find_a_program: First search with machine prefix
-
-
This matches the behavior of Clang, and makes it easier to work with
-
cross compilers without heeding to hard-code paths at build time.
-
---
-
gcc/gcc.cc | 78 +++++++++++++++++++++++++++++++++++++++++++++++-------
-
1 file changed, 68 insertions(+), 10 deletions(-)
-
-
diff --git a/gcc/gcc.cc b/gcc/gcc.cc
-
index 4fd87f2c4a1..55738d258b3 100644
-
--- a/gcc/gcc.cc
-
+++ b/gcc/gcc.cc
-
@@ -1600,6 +1600,11 @@ static const char *machine_suffix = 0;
-
-
static const char *just_machine_suffix = 0;
-
-
+/* Prefix to attach to *basename* of commands being searched.
-
+ This is just `MACHINE-'. */
-
+
-
+static const char *just_machine_prefix = 0;
-
+
-
/* Adjusted value of GCC_EXEC_PREFIX envvar. */
-
-
static const char *gcc_exec_prefix;
-
@@ -3043,15 +3048,6 @@ file_at_path (char *path, void *data)
-
memcpy (path + len, info->name, info->name_len);
-
len += info->name_len;
-
-
- /* Some systems have a suffix for executable files.
-
- So try appending that first. */
-
- if (info->suffix_len)
-
- {
-
- memcpy (path + len, info->suffix, info->suffix_len + 1);
-
- if (access_check (path, info->mode) == 0)
-
- return path;
-
- }
-
-
-
path[len] = '\0';
-
if (access_check (path, info->mode) == 0)
-
return path;
-
@@ -3091,12 +3087,52 @@ find_a_file (const struct path_prefix *pprefix, const char *name, int mode,
-
file_at_path, &info);
-
}
-
-
+/* Callback for find_a_program. Appends the file name to the directory
-
+ path. Like file_at_path but tries machine prefix and exe suffix too. */
-
+
-
+static void *
-
+program_at_path (char *path, void *data)
-
+{
-
+ /* try first with machine-prefixed name */
-
+ struct file_at_path_info *info = (struct file_at_path_info *) data;
-
+ size_t path_len = strlen (path);
-
+
-
+ for (auto prefix : { just_machine_prefix, "" })
-
+ {
-
+ auto len = path_len;
-
+
-
+ auto prefix_len = strlen(prefix);
-
+ memcpy (path + len, prefix, prefix_len);
-
+ len += prefix_len;
-
+
-
+ memcpy (path + len, info->name, info->name_len);
-
+ len += info->name_len;
-
+
-
+ /* Some systems have a suffix for executable files.
-
+ So try appending that first. */
-
+ if (info->suffix_len)
-
+ {
-
+ memcpy (path + len, info->suffix, info->suffix_len + 1);
-
+ if (access_check (path, info->mode) == 0)
-
+ return path;
-
+ }
-
+
-
+ path[len] = '\0';
-
+ if (access_check (path, info->mode) == 0)
-
+ return path;
-
+ }
-
+
-
+ return NULL;
-
+}
-
+
-
/* Specialization of find_a_file for programs that also takes into account
-
configure-specified default programs. */
-
-
static char*
-
find_a_program (const char *name)
-
{
-
+ const int mode = X_OK;
-
+
-
/* Do not search if default matches query. */
-
-
#ifdef DEFAULT_ASSEMBLER
-
@@ -3114,7 +3150,28 @@ find_a_program (const char *name)
-
return xstrdup (DEFAULT_DSYMUTIL);
-
#endif
-
-
- return find_a_file (&exec_prefixes, name, X_OK, false);
-
+ /* Find the filename in question (special case for absolute paths). */
-
+
-
+ if (IS_ABSOLUTE_PATH (name))
-
+ {
-
+ if (access (name, mode) == 0)
-
+ return xstrdup (name);
-
+
-
+ return NULL;
-
+ }
-
+
-
+ struct file_at_path_info info;
-
+
-
+ info.name = name;
-
+ info.suffix = HOST_EXECUTABLE_SUFFIX;
-
+ info.name_len = strlen (info.name);
-
+ info.suffix_len = strlen (info.suffix);
-
+ info.mode = mode;
-
+
-
+ return (char*) for_each_path (
-
+ &exec_prefixes, false,
-
+ info.name_len + info.suffix_len + strlen(just_machine_prefix),
-
+ program_at_path, &info);
-
}
-
-
/* Ranking of prefixes in the sort list. -B prefixes are put before
-
@@ -8492,6 +8549,7 @@ driver::set_up_specs () const
-
machine_suffix = concat (spec_host_machine, dir_separator_str, spec_version,
-
accel_dir_suffix, dir_separator_str, NULL);
-
just_machine_suffix = concat (spec_machine, dir_separator_str, NULL);
-
+ just_machine_prefix = concat (spec_machine, "-", NULL);
-
-
specs_file = find_a_file (&startfile_prefixes, "specs", R_OK, true);
-
/* Read the specs file unless it is a default one. */
-
--
-
2.47.2
-
-103
pkgs/development/compilers/gcc/ng/15/gcc/0002-driver-for_each_pass-Pass-to-callback-whether-dir-is.patch
···
-
From 8e1b7a128a69393c6d3f53b8f66bd52c6bbce908 Mon Sep 17 00:00:00 2001
-
From: John Ericson <git@JohnEricson.me>
-
Date: Wed, 18 Aug 2021 01:55:45 -0400
-
Subject: [PATCH 2/3] driver: for_each_pass: Pass to callback whether dir is
-
machine-disambiguated
-
-
We will use this in the subsequent diff to control what basenames we
-
search for. In machine-specific subdirectories, we should just look for
-
the original basename, but in machine-agnostic subdirectories, we might
-
additionally look for prefixed disambiguated names, as an alternate
-
method of keeping targets apart.
-
---
-
gcc/gcc.cc | 18 +++++++++---------
-
1 file changed, 9 insertions(+), 9 deletions(-)
-
-
diff --git a/gcc/gcc.cc b/gcc/gcc.cc
-
index 55738d258b3..f9f83d1a804 100644
-
--- a/gcc/gcc.cc
-
+++ b/gcc/gcc.cc
-
@@ -2783,7 +2783,7 @@ static void *
-
for_each_path (const struct path_prefix *paths,
-
bool do_multi,
-
size_t extra_space,
-
- void *(*callback) (char *, void *),
-
+ void *(*callback) (char *, bool, void *),
-
void *callback_info)
-
{
-
struct prefix_list *pl;
-
@@ -2844,7 +2844,7 @@ for_each_path (const struct path_prefix *paths,
-
if (!skip_multi_dir)
-
{
-
memcpy (path + len, multi_suffix, suffix_len + 1);
-
- ret = callback (path, callback_info);
-
+ ret = callback (path, true, callback_info);
-
if (ret)
-
break;
-
}
-
@@ -2855,7 +2855,7 @@ for_each_path (const struct path_prefix *paths,
-
&& pl->require_machine_suffix == 2)
-
{
-
memcpy (path + len, just_multi_suffix, just_suffix_len + 1);
-
- ret = callback (path, callback_info);
-
+ ret = callback (path, true, callback_info);
-
if (ret)
-
break;
-
}
-
@@ -2865,7 +2865,7 @@ for_each_path (const struct path_prefix *paths,
-
&& !pl->require_machine_suffix && multiarch_dir)
-
{
-
memcpy (path + len, multiarch_suffix, multiarch_len + 1);
-
- ret = callback (path, callback_info);
-
+ ret = callback (path, true, callback_info);
-
if (ret)
-
break;
-
}
-
@@ -2893,7 +2893,7 @@ for_each_path (const struct path_prefix *paths,
-
else
-
path[len] = '\0';
-
-
- ret = callback (path, callback_info);
-
+ ret = callback (path, false, callback_info);
-
if (ret)
-
break;
-
}
-
@@ -2948,7 +2948,7 @@ struct add_to_obstack_info {
-
};
-
-
static void *
-
-add_to_obstack (char *path, void *data)
-
+add_to_obstack (char *path, bool, void *data)
-
{
-
struct add_to_obstack_info *info = (struct add_to_obstack_info *) data;
-
-
@@ -3040,7 +3040,7 @@ struct file_at_path_info {
-
};
-
-
static void *
-
-file_at_path (char *path, void *data)
-
+file_at_path (char *path, bool, void *data)
-
{
-
struct file_at_path_info *info = (struct file_at_path_info *) data;
-
size_t len = strlen (path);
-
@@ -3091,7 +3091,7 @@ find_a_file (const struct path_prefix *pprefix, const char *name, int mode,
-
path. Like file_at_path but tries machine prefix and exe suffix too. */
-
-
static void *
-
-program_at_path (char *path, void *data)
-
+program_at_path (char *path, bool machine_specific, void *data)
-
{
-
/* try first with machine-prefixed name */
-
struct file_at_path_info *info = (struct file_at_path_info *) data;
-
@@ -6074,7 +6074,7 @@ struct spec_path_info {
-
};
-
-
static void *
-
-spec_path (char *path, void *data)
-
+spec_path (char *path, bool, void *data)
-
{
-
struct spec_path_info *info = (struct spec_path_info *) data;
-
size_t len = 0;
-
--
-
2.47.2
-
-75
pkgs/development/compilers/gcc/ng/15/gcc/0003-find_a_program-Only-search-for-prefixed-paths-in-und.patch
···
-
From e1ee1a2df1ad32de24e8fdaeac0a533681710578 Mon Sep 17 00:00:00 2001
-
From: John Ericson <git@JohnEricson.me>
-
Date: Wed, 18 Aug 2021 01:55:52 -0400
-
Subject: [PATCH 3/3] find_a_program: Only search for prefixed paths in
-
undisambiguated dirs
-
-
This means, we might search for:
-
-
- path/$machine/$version/prog
-
- path/$machine/prog
-
- path/$machine-prog
-
-
But not
-
-
- path/$machine/$version/$machine-prog
-
-
because disambiguating $machine twice is unnecessary.
-
-
This does mean we less liberal in what we accept than LLVM, but that's
-
OK. The down side of always Postel's law is everyone converges on
-
accepting all sorts of garbage, which makes debugging end-to-end hard
-
when mistakes are not caught early.
-
---
-
gcc/gcc.cc | 25 ++++++++++++++++---------
-
1 file changed, 16 insertions(+), 9 deletions(-)
-
-
diff --git a/gcc/gcc.cc b/gcc/gcc.cc
-
index f9f83d1a804..d837b6ea779 100644
-
--- a/gcc/gcc.cc
-
+++ b/gcc/gcc.cc
-
@@ -3097,15 +3097,9 @@ program_at_path (char *path, bool machine_specific, void *data)
-
struct file_at_path_info *info = (struct file_at_path_info *) data;
-
size_t path_len = strlen (path);
-
-
- for (auto prefix : { just_machine_prefix, "" })
-
+ auto search = [=](size_t len) -> void *
-
{
-
- auto len = path_len;
-
-
-
- auto prefix_len = strlen(prefix);
-
- memcpy (path + len, prefix, prefix_len);
-
- len += prefix_len;
-
-
-
- memcpy (path + len, info->name, info->name_len);
-
+ memcpy (path + len, info->name, info->name_len + 1);
-
len += info->name_len;
-
-
/* Some systems have a suffix for executable files.
-
@@ -3120,9 +3114,22 @@ program_at_path (char *path, bool machine_specific, void *data)
-
path[len] = '\0';
-
if (access_check (path, info->mode) == 0)
-
return path;
-
+
-
+ return NULL;
-
+ };
-
+
-
+ /* Additionally search for $target-prog in machine-agnostic dirs, as an
-
+ additional way to disambiguate targets. Do not do this in machine-specific
-
+ dirs because so further disambiguation is needed. */
-
+ if (!machine_specific)
-
+ {
-
+ auto prefix_len = strlen(just_machine_prefix);
-
+ memcpy (path + path_len, just_machine_prefix, prefix_len);
-
+ auto res = search(path_len + prefix_len);
-
+ if (res) return res;
-
}
-
-
- return NULL;
-
+ return search(path_len);
-
}
-
-
/* Specialization of find_a_file for programs that also takes into account
-
--
-
2.47.2
-
+26 -3
pkgs/development/compilers/gcc/ng/common/gcc/default.nix
···
release_version,
version,
monorepoSrc ? null,
+
fetchpatch,
langAda ? false,
langC ? true,
langCC ? true,
···
];
patches = [
-
(getVersionFile "gcc/0001-find_a_program-First-search-with-machine-prefix.patch")
-
(getVersionFile "gcc/0002-driver-for_each_pass-Pass-to-callback-whether-dir-is.patch")
-
(getVersionFile "gcc/0003-find_a_program-Only-search-for-prefixed-paths-in-und.patch")
+
(fetchpatch {
+
name = "for_each_path-functional-programming.patch";
+
url = "https://github.com/gcc-mirror/gcc/commit/f23bac62f46fc296a4d0526ef54824d406c3756c.diff";
+
hash = "sha256-J7SrypmVSbvYUzxWWvK2EwEbRsfGGLg4vNZuLEe6Xe0=";
+
})
+
(fetchpatch {
+
name = "find_a_program-separate-from-find_a_file.patch";
+
url = "https://inbox.sourceware.org/gcc-patches/20250822234120.1988059-1-git@JohnEricson.me/raw";
+
hash = "sha256-0gaWaeFZq+a8q7Bcr3eILNjHh1LfzL/Lz4F+W+H6XIU=";
+
})
+
(fetchpatch {
+
name = "simplify-find_a_program-and-find_a_file.patch";
+
url = "https://inbox.sourceware.org/gcc-patches/20250822234120.1988059-2-git@JohnEricson.me/raw";
+
hash = "sha256-ojdyszxLGL+njHK4eAaeBkxAhFTDI57j6lGuAf0A+N0=";
+
})
+
(fetchpatch {
+
name = "for_each_path-pass-machine-specific.patch";
+
url = "https://inbox.sourceware.org/gcc-patches/20250822234120.1988059-3-git@JohnEricson.me/raw";
+
hash = "sha256-C5jUSyNchmZcE8RTXc2dHfCqNKuBHeiouLruK9UooSM=";
+
})
+
(fetchpatch {
+
name = "find_a_program-search-with-machine-prefix.patch";
+
url = "https://inbox.sourceware.org/gcc-patches/20250822234120.1988059-4-git@JohnEricson.me/raw";
+
hash = "sha256-MwcO4OXPlcdaSYivsh5ru+Cfq6qybeAtgCgTEPGYg40=";
+
})
(getVersionFile "gcc/fix-collect2-paths.diff")
];
-25
pkgs/development/compilers/gcc/ng/common/patches.nix
···
}
];
-
# Submitted (001--003):
-
# - https://gcc.gnu.org/pipermail/gcc-patches/2021-August/577639.html
-
# - https://gcc.gnu.org/pipermail/gcc-patches/2021-August/577640.html
-
# - https://gcc.gnu.org/pipermail/gcc-patches/2021-August/577638.html
-
#
-
# In Git: https://github.com/Ericson2314/gcc/tree/prog-target-15
-
"gcc/0001-find_a_program-First-search-with-machine-prefix.patch" = [
-
{
-
after = "15";
-
path = ../15;
-
}
-
];
-
"gcc/0002-driver-for_each_pass-Pass-to-callback-whether-dir-is.patch" = [
-
{
-
after = "15";
-
path = ../15;
-
}
-
];
-
"gcc/0003-find_a_program-Only-search-for-prefixed-paths-in-und.patch" = [
-
{
-
after = "15";
-
path = ../15;
-
}
-
];
-
# In Git: https://github.com/Ericson2314/gcc/tree/regular-dirs-in-libgcc-15
"libgcc/force-regular-dirs.patch" = [
{
+2 -2
pkgs/development/libraries/itk/5.x.nix
···
import ./generic.nix rec {
-
version = "5.4.3";
+
version = "5.4.4";
tag = "v${version}";
-
sourceSha256 = "sha256-Ve9AzgzePYb6mJ6OZ6C4YeiggCd4WBxB4Xu3ju5HhAg=";
+
sourceSha256 = "sha256-vHcMlWr/Dy5CnX165ihpCKNTVvw1eWncxzPho+73wB0=";
}
+50
pkgs/development/python-modules/environ-config/default.nix
···
+
{
+
lib,
+
buildPythonPackage,
+
fetchFromGitHub,
+
hatchling,
+
hatch-vcs,
+
hatch-fancy-pypi-readme,
+
attrs,
+
importlib-metadata,
+
pytestCheckHook,
+
moto,
+
}:
+
buildPythonPackage rec {
+
pname = "environ-config";
+
version = "24.1.0";
+
pyproject = true;
+
+
src = fetchFromGitHub {
+
repo = "environ-config";
+
owner = "hynek";
+
tag = version;
+
hash = "sha256-XiJNLQgKhf9hXQfIMsfiEaHx7IHaExhphpYfOBgIT+s=";
+
};
+
+
build-system = [
+
hatchling
+
hatch-vcs
+
hatch-fancy-pypi-readme
+
];
+
+
dependencies = [
+
attrs
+
importlib-metadata
+
];
+
+
nativeCheckInputs = [
+
pytestCheckHook
+
moto
+
];
+
+
pythonImportsCheck = [ "environ" ];
+
+
meta = {
+
description = "Python Application Configuration With Environment Variables";
+
homepage = "https://github.com/hynek/environ-config";
+
changelog = "https://github.com/hynek/environ-config/releases/tag/${version}";
+
license = lib.licenses.apsl20;
+
maintainers = with lib.maintainers; [ lykos153 ];
+
};
+
}
+61
pkgs/development/python-modules/pyairtable/default.nix
···
+
{
+
lib,
+
buildPythonPackage,
+
fetchPypi,
+
setuptools,
+
+
inflection,
+
pydantic,
+
requests,
+
urllib3,
+
click,
+
+
pytest,
+
pytest-cov,
+
mock,
+
requests-mock,
+
tox,
+
}:
+
+
buildPythonPackage rec {
+
pname = "pyairtable";
+
version = "3.1.1";
+
pyproject = true;
+
+
src = fetchPypi {
+
inherit pname version;
+
hash = "sha256-sYX+8SEZ8kng5wSrTksVopCA/Ikq1NVRoQU6G7YJ7y4=";
+
};
+
+
build-system = [
+
setuptools
+
];
+
+
dependencies = [
+
setuptools
+
inflection
+
pydantic
+
requests
+
urllib3
+
click
+
];
+
+
nativeCheckInputs = [
+
pytest
+
pytest-cov
+
mock
+
requests-mock
+
tox
+
];
+
+
pythonImportsCheck = [ "pyairtable" ];
+
+
meta = {
+
description = "Python API Client for Airtable";
+
homepage = "https://pyairtable.readthedocs.io/";
+
changelog = "https://pyairtable.readthedocs.io/en/${version}/changelog.html";
+
license = lib.licenses.mit;
+
mainProgram = "pyairtable";
+
maintainers = with lib.maintainers; [ stupidcomputer ];
+
};
+
}
+5 -6
pkgs/development/python-modules/pycayennelpp/default.nix
···
{
lib,
-
python3Packages,
+
buildPythonPackage,
fetchPypi,
+
setuptools,
}:
-
python3Packages.buildPythonPackage rec {
+
buildPythonPackage rec {
pname = "pycayennelpp";
version = "2.4.0";
-
format = "setuptools";
+
pyproject = true;
src = fetchPypi {
inherit pname version;
sha256 = "1cc6lz28aa57gs74767xyd3i370lwx046yb5a1nfch6fk3kf7xdx";
};
-
nativeBuildInputs = with python3Packages; [
-
setuptools
-
];
+
build-system = [ setuptools ];
# Patch setup.py to remove pytest-runner
postPatch = ''
+2 -2
pkgs/development/python-modules/signify/default.nix
···
buildPythonPackage rec {
pname = "signify";
-
version = "0.7.1";
+
version = "0.8.1";
pyproject = true;
disabled = pythonOlder "3.8";
···
owner = "ralphje";
repo = "signify";
tag = "v${version}";
-
hash = "sha256-yQCb7vNbz+ZGftqlEUUh6UUuxwv5+zhvBJmUn1eNgqM=";
+
hash = "sha256-kEQPoCNO3jGucnqYKRKOivaBtHHX4SMW9KALBMqqqVo=";
};
build-system = [ setuptools ];
+40
pkgs/development/python-modules/st-pages/default.nix
···
+
{
+
lib,
+
stdenv,
+
buildPythonPackage,
+
fetchFromGitHub,
+
pythonOlder,
+
streamlit,
+
poetry-core,
+
}:
+
buildPythonPackage rec {
+
pname = "st-pages";
+
version = "1.0.1";
+
pyproject = true;
+
+
disabled = pythonOlder "3.9";
+
+
src = fetchFromGitHub {
+
owner = "blackary";
+
repo = "st_pages";
+
tag = "v${version}";
+
hash = "sha256-sJXgpRiducJVYuyvVvTZthHnIJyIRn+f9Uw/wAMfnm0=";
+
};
+
+
nativeBuildInputs = [
+
poetry-core
+
];
+
+
propagatedBuildInputs = [
+
streamlit
+
];
+
+
meta = {
+
description = "An experimental version of Streamlit Multi-Page Apps";
+
homepage = "https://github.com/blackary/st_pages";
+
license = lib.licenses.mit;
+
maintainers = with lib.maintainers; [
+
keyzox
+
];
+
};
+
}
+6
pkgs/top-level/python-packages.nix
···
env-canada = callPackage ../development/python-modules/env-canada { };
+
environ-config = callPackage ../development/python-modules/environ-config { };
+
environmental-override = callPackage ../development/python-modules/environmental-override { };
environs = callPackage ../development/python-modules/environs { };
···
pyairports = callPackage ../development/python-modules/pyairports { };
+
pyairtable = callPackage ../development/python-modules/pyairtable { };
+
pyairvisual = callPackage ../development/python-modules/pyairvisual { };
pyais = callPackage ../development/python-modules/pyais { };
···
sslib = callPackage ../development/python-modules/sslib { };
ssort = callPackage ../development/python-modules/ssort { };
+
+
st-pages = callPackage ../development/python-modules/st-pages { };
stable-baselines3 = callPackage ../development/python-modules/stable-baselines3 { };