diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 090ea3507b2d..8784c95cb89d 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -15009,6 +15009,7 @@ github = "nyadiia"; githubId = 43252360; name = "Nadia"; + keys = [ { fingerprint = "6B51 E324 238A F455 2381 313A 9254 1B0C D2A9 3AD8"; } ]; }; nyanbinary = { email = "nyanbinary@keemail.me"; diff --git a/pkgs/applications/editors/jetbrains/source/build.nix b/pkgs/applications/editors/jetbrains/source/build.nix index b5dbb28559c8..132a2c377c06 100644 --- a/pkgs/applications/editors/jetbrains/source/build.nix +++ b/pkgs/applications/editors/jetbrains/source/build.nix @@ -79,7 +79,7 @@ let nativeBuildInputs = [ cmake pkg-config ]; buildInputs = [ glib xorg.libX11 libdbusmenu ]; inherit src; - sourceRoot = "source/native/LinuxGlobalMenu"; + sourceRoot = "${src.name}/native/LinuxGlobalMenu"; patches = [ ../patches/libdbm-headers.patch ]; postPatch = "cp ${libdbusmenu-jb}/lib/libdbusmenu-glib.a libdbusmenu-glib.a"; passthru.patched-libdbusmenu = libdbusmenu-jb; @@ -97,7 +97,7 @@ let pname = "fsnotifier"; version = buildVer; inherit src; - sourceRoot = "source/native/fsNotifier/linux"; + sourceRoot = "${src.name}/native/fsNotifier/linux"; buildPhase = '' runHook preBuild $CC -O2 -Wall -Wextra -Wpedantic -D "VERSION=\"${buildVer}\"" -std=c11 main.c inotify.c util.c -o fsnotifier @@ -115,7 +115,7 @@ let pname = "restarter"; version = buildVer; inherit src; - sourceRoot = "source/native/restarter"; + sourceRoot = "${src.name}/native/restarter"; cargoHash = restarterHash; }; @@ -138,7 +138,7 @@ let pname = "jps-bootstrap"; version = buildVer; inherit src; - sourceRoot = "source/platform/jps-bootstrap"; + sourceRoot = "${src.name}/platform/jps-bootstrap"; nativeBuildInputs = [ ant makeWrapper jbr ]; patches = [ ../patches/kotlinc-path.patch ]; postPatch = "sed -i 's|KOTLIN_PATH_HERE|${kotlin}|' src/main/java/org/jetbrains/jpsBootstrap/KotlinCompiler.kt"; diff --git a/pkgs/applications/science/electronics/nanovna-saver/default.nix b/pkgs/applications/science/electronics/nanovna-saver/default.nix index 8ab2ba14f663..d4c3c68991a2 100644 --- a/pkgs/applications/science/electronics/nanovna-saver/default.nix +++ b/pkgs/applications/science/electronics/nanovna-saver/default.nix @@ -1,5 +1,6 @@ { lib, + stdenv, python3, fetchFromGitHub, qt6, @@ -15,11 +16,13 @@ python3.pkgs.buildPythonApplication rec { sha256 = "sha256-fAVsjknhLhsrGdHu2Q6JWLoFoxZoc+wDCNja+ySCsR4="; }; - nativeBuildInputs = [ + nativeBuildInputs = [ qt6.wrapQtAppsHook qt6.qtbase ]; + buildInputs = lib.optional stdenv.isLinux qt6.qtwayland; + propagatedBuildInputs = with python3.pkgs; [ cython scipy diff --git a/pkgs/by-name/ar/arrow-cpp/package.nix b/pkgs/by-name/ar/arrow-cpp/package.nix index 1cc21b5b56dc..1abfe6f3b701 100644 --- a/pkgs/by-name/ar/arrow-cpp/package.nix +++ b/pkgs/by-name/ar/arrow-cpp/package.nix @@ -89,7 +89,7 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-ZQqi1RFb4Ey0A0UVCThuIxM7DoFfkLwaeRAc2z8u9so="; }; - sourceRoot = "source/cpp"; + sourceRoot = "${finalAttrs.src.name}/cpp"; # versions are all taken from # https://github.com/apache/arrow/blob/apache-arrow-${version}/cpp/thirdparty/versions.txt diff --git a/pkgs/by-name/ar/arrow-glib/package.nix b/pkgs/by-name/ar/arrow-glib/package.nix index ce9220508bb8..53bad716affb 100644 --- a/pkgs/by-name/ar/arrow-glib/package.nix +++ b/pkgs/by-name/ar/arrow-glib/package.nix @@ -13,7 +13,7 @@ stdenv.mkDerivation rec { pname = "arrow-glib"; inherit (arrow-cpp) src version; - sourceRoot = "source/c_glib"; + sourceRoot = "${arrow-cpp.src.name}/c_glib"; strictDeps = true; diff --git a/pkgs/by-name/cr/crabfit-api/package.nix b/pkgs/by-name/cr/crabfit-api/package.nix index 27162f7ee24f..1facbe0f121d 100644 --- a/pkgs/by-name/cr/crabfit-api/package.nix +++ b/pkgs/by-name/cr/crabfit-api/package.nix @@ -13,7 +13,7 @@ adaptor ? "sql", }: -rustPlatform.buildRustPackage { +rustPlatform.buildRustPackage rec { pname = "crabfit-api"; version = "0-unstable-2023-08-02"; @@ -24,7 +24,7 @@ rustPlatform.buildRustPackage { hash = "sha256-jy8BrJSHukRenPbZHw4nPx3cSi7E2GSg//WOXDh90mY="; }; - sourceRoot = "source/api"; + sourceRoot = "${src.name}/api"; patches = [ (fetchpatch { diff --git a/pkgs/by-name/cr/crabfit-frontend/package.nix b/pkgs/by-name/cr/crabfit-frontend/package.nix index 920b39a5319f..f6f3bc8a8c40 100644 --- a/pkgs/by-name/cr/crabfit-frontend/package.nix +++ b/pkgs/by-name/cr/crabfit-frontend/package.nix @@ -24,7 +24,7 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-jy8BrJSHukRenPbZHw4nPx3cSi7E2GSg//WOXDh90mY="; }; - sourceRoot = "source/frontend"; + sourceRoot = "${finalAttrs.src.name}/frontend"; patches = [ ./01-localfont.patch diff --git a/pkgs/by-name/de/desktop-postflop/package.nix b/pkgs/by-name/de/desktop-postflop/package.nix index 0dd74943fc38..4f81bfa4943f 100644 --- a/pkgs/by-name/de/desktop-postflop/package.nix +++ b/pkgs/by-name/de/desktop-postflop/package.nix @@ -33,7 +33,7 @@ rustPlatform.buildRustPackage rec { ''; }; - sourceRoot = "source/src-tauri"; + sourceRoot = "${src.name}/src-tauri"; cargoLock = { lockFile = ./Cargo.lock; @@ -86,4 +86,3 @@ rustPlatform.buildRustPackage rec { maintainers = with lib.maintainers; [ tomasajt ]; }; } - diff --git a/pkgs/by-name/js/jsonschema/package.nix b/pkgs/by-name/js/jsonschema/package.nix index aba8e7d4a2c1..f962c14776b2 100644 --- a/pkgs/by-name/js/jsonschema/package.nix +++ b/pkgs/by-name/js/jsonschema/package.nix @@ -15,7 +15,7 @@ buildGoModule rec { hash = "sha256-ANo9OkdNVCjV5uEqr9lNNbStquNb/3oxuTfMqE2nUzo="; }; - sourceRoot = "source/cmd/jv"; + sourceRoot = "${src.name}/cmd/jv"; passthru.updateScript = nix-update-script { }; vendorHash = "sha256-FuUkC7iwn/jO3fHjT9nGUXc2X1QuuxPc8DAzVpzhANk="; diff --git a/pkgs/by-name/kc/kclvm/package.nix b/pkgs/by-name/kc/kclvm/package.nix index 249c9bca9812..08864ba0b65a 100644 --- a/pkgs/by-name/kc/kclvm/package.nix +++ b/pkgs/by-name/kc/kclvm/package.nix @@ -19,7 +19,7 @@ rustPlatform.buildRustPackage rec { hash = "sha256-nk5oJRTBRj0LE2URJqno8AoZ+/342C2tEt8d6k2MAc8="; }; - sourceRoot = "source/kclvm"; + sourceRoot = "${src.name}/kclvm"; cargoLock = { lockFile = ./Cargo.lock; outputHashes = { diff --git a/pkgs/by-name/kc/kclvm_cli/package.nix b/pkgs/by-name/kc/kclvm_cli/package.nix index 15e86da2f872..bfac990017be 100644 --- a/pkgs/by-name/kc/kclvm_cli/package.nix +++ b/pkgs/by-name/kc/kclvm_cli/package.nix @@ -18,7 +18,7 @@ rustPlatform.buildRustPackage rec { hash = "sha256-nk5oJRTBRj0LE2URJqno8AoZ+/342C2tEt8d6k2MAc8="; }; - sourceRoot = "source/cli"; + sourceRoot = "${src.name}/cli"; cargoHash = "sha256-LZUE2J/UYepl5BGf4T4eWKIZfN3mVJtMDLtm0uUmvI8="; cargoPatches = [ ./cargo_lock.patch ]; diff --git a/pkgs/by-name/lo/local-ai/package.nix b/pkgs/by-name/lo/local-ai/package.nix index 498cc96a454b..4dbbd05fde29 100644 --- a/pkgs/by-name/lo/local-ai/package.nix +++ b/pkgs/by-name/lo/local-ai/package.nix @@ -174,7 +174,7 @@ let espeak-ng' = espeak-ng.overrideAttrs (self: { name = "espeak-ng'"; inherit (go-piper) src; - sourceRoot = "source/espeak"; + sourceRoot = "${go-piper.src.name}/espeak"; patches = [ ]; nativeBuildInputs = [ cmake ]; cmakeFlags = (self.cmakeFlags or [ ]) ++ [ @@ -194,7 +194,7 @@ let piper-phonemize = stdenv.mkDerivation { name = "piper-phonemize"; inherit (go-piper) src; - sourceRoot = "source/piper-phonemize"; + sourceRoot = "${go-piper.src.name}/piper-phonemize"; buildInputs = [ espeak-ng' onnxruntime ]; nativeBuildInputs = [ cmake pkg-config ]; cmakeFlags = [ @@ -207,7 +207,7 @@ let piper-tts' = (piper-tts.override { inherit piper-phonemize; }).overrideAttrs (self: { name = "piper-tts'"; inherit (go-piper) src; - sourceRoot = "source/piper"; + sourceRoot = "${go-piper.src.name}/piper"; installPhase = null; postInstall = '' cp CMakeFiles/piper.dir/src/cpp/piper.cpp.o $out/piper.o @@ -339,7 +339,7 @@ let go-tiny-dream-ncnn = ncnn.overrideAttrs (self: { name = "go-tiny-dream-ncnn"; inherit (go-tiny-dream) src; - sourceRoot = "source/ncnn"; + sourceRoot = "${go-tiny-dream.src.name}/ncnn"; cmakeFlags = self.cmakeFlags ++ [ (lib.cmakeBool "NCNN_SHARED_LIB" false) (lib.cmakeBool "NCNN_OPENMP" false) diff --git a/pkgs/by-name/lo/loco-cli/package.nix b/pkgs/by-name/lo/loco-cli/package.nix index 784039d66f70..94df46452fe5 100644 --- a/pkgs/by-name/lo/loco-cli/package.nix +++ b/pkgs/by-name/lo/loco-cli/package.nix @@ -1,5 +1,5 @@ { lib, rustPlatform, fetchFromGitHub }: -rustPlatform.buildRustPackage { +rustPlatform.buildRustPackage rec { pname = "loco-cli"; version = "0.2.6"; @@ -17,7 +17,7 @@ rustPlatform.buildRustPackage { ln -s ${./Cargo.lock} Cargo.lock ''; - sourceRoot = "source/loco-cli"; + sourceRoot = "${src.name}/loco-cli"; meta = with lib; { mainProgram = "loco"; diff --git a/pkgs/by-name/my/mycelium/package.nix b/pkgs/by-name/my/mycelium/package.nix index 9551413833dd..df96ad255fad 100644 --- a/pkgs/by-name/my/mycelium/package.nix +++ b/pkgs/by-name/my/mycelium/package.nix @@ -10,7 +10,7 @@ rustPlatform.buildRustPackage rec { pname = "mycelium"; version = "0.5.3"; - sourceRoot = "source/myceliumd"; + sourceRoot = "${src.name}/myceliumd"; src = fetchFromGitHub { owner = "threefoldtech"; diff --git a/pkgs/by-name/ni/nix-inspect/package.nix b/pkgs/by-name/ni/nix-inspect/package.nix index e433517fcb0c..ec4a9dee34e2 100644 --- a/pkgs/by-name/ni/nix-inspect/package.nix +++ b/pkgs/by-name/ni/nix-inspect/package.nix @@ -22,7 +22,7 @@ pname = "nix-inspect-worker"; version = "0.1.2"; - sourceRoot = "source/worker"; + sourceRoot = "${src.name}/worker"; nativeBuildInputs = [meson ninja pkg-config]; diff --git a/pkgs/by-name/sp/spades/package.nix b/pkgs/by-name/sp/spades/package.nix index b390524f718c..daa748087b3c 100644 --- a/pkgs/by-name/sp/spades/package.nix +++ b/pkgs/by-name/sp/spades/package.nix @@ -21,7 +21,7 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-k2+ddJIgGE41KGZODovU9VdurbWerEtdqNrFDwyuFjo="; }; - sourceRoot = "source/src"; + sourceRoot = "${finalAttrs.src.name}/src"; patches = [ # https://github.com/ablab/spades/pull/1314 diff --git a/pkgs/development/libraries/psqlodbc/default.nix b/pkgs/development/libraries/psqlodbc/default.nix index 946cb5035935..0431bb284dab 100644 --- a/pkgs/development/libraries/psqlodbc/default.nix +++ b/pkgs/development/libraries/psqlodbc/default.nix @@ -1,4 +1,9 @@ -{ lib, stdenv, fetchurl, libiodbc, postgresql, openssl }: +{ lib, stdenv, fetchurl, postgresql, openssl +, withLibiodbc ? false, libiodbc +, withUnixODBC ? true, unixODBC +}: + +assert lib.xor withLibiodbc withUnixODBC; stdenv.mkDerivation rec { pname = "psqlodbc"; @@ -9,18 +14,28 @@ stdenv.mkDerivation rec { hash = "sha256-r9iS+J0uzujT87IxTxvVvy0CIBhyxuNDHlwxCW7KTIs="; }; - buildInputs = [ libiodbc postgresql openssl ]; + buildInputs = [ + postgresql + openssl + ] + ++ lib.optional withLibiodbc libiodbc + ++ lib.optional withUnixODBC unixODBC; + + passthru = lib.optionalAttrs withUnixODBC { + fancyName = "PostgreSQL"; + driver = "lib/psqlodbcw.so"; + }; configureFlags = [ - "--with-iodbc=${libiodbc}" "--with-libpq=${lib.getDev postgresql}/bin/pg_config" - ]; + ] + ++ lib.optional withLibiodbc "--with-iodbc=${libiodbc}"; meta = with lib; { homepage = "https://odbc.postgresql.org/"; description = "ODBC driver for PostgreSQL"; license = licenses.lgpl2; - platforms = platforms.linux; + platforms = platforms.unix; maintainers = [ ]; }; } diff --git a/pkgs/development/libraries/qmlbox2d/default.nix b/pkgs/development/libraries/qmlbox2d/default.nix index 95827b630f1a..7f7613d7f05f 100644 --- a/pkgs/development/libraries/qmlbox2d/default.nix +++ b/pkgs/development/libraries/qmlbox2d/default.nix @@ -12,7 +12,7 @@ let rev = "v${version}"; hash = "sha256-Z2J17YMzQNZqABIa5eyJDT7BWfXveymzs+DWsrklPIs="; }; - sourceRoot = "source/Box2D"; + sourceRoot = "${src.name}/Box2D"; cmakeFlags = old.cmakeFlags or [ ] ++ [ (cmakeBool "BOX2D_INSTALL" true) (cmakeBool "BOX2D_BUILD_SHARED" true) diff --git a/pkgs/development/libraries/unixODBCDrivers/default.nix b/pkgs/development/libraries/unixODBCDrivers/default.nix index 641d051c1c32..fe181d37f6bf 100644 --- a/pkgs/development/libraries/unixODBCDrivers/default.nix +++ b/pkgs/development/libraries/unixODBCDrivers/default.nix @@ -1,4 +1,4 @@ -{ fetchurl, stdenv, unixODBC, cmake, postgresql, mariadb, sqlite, zlib, libxml2, dpkg, lib, openssl, libkrb5, libuuid, patchelf, libiconv, fixDarwinDylibNames, fetchFromGitHub }: +{ fetchurl, stdenv, unixODBC, cmake, mariadb, sqlite, zlib, libxml2, dpkg, lib, openssl, libkrb5, libuuid, patchelf, libiconv, fixDarwinDylibNames, fetchFromGitHub, psqlodbc }: # Each of these ODBC drivers can be configured in your odbcinst.ini file using # the various passthru and meta values. Of note are: @@ -16,30 +16,7 @@ # '' { - psql = stdenv.mkDerivation rec { - pname = "psqlodbc"; - version = "10.01.0000"; - - src = fetchurl { - url = "mirror://postgresql/odbc/versions/src/${pname}-${version}.tar.gz"; - sha256 = "1cyams7157f3gry86x64xrplqi2vyqrq3rqka59gv4lb4rpl7jl7"; - }; - - buildInputs = [ unixODBC postgresql ]; - - # see the top of the file for an explanation - passthru = { - fancyName = "PostgreSQL"; - driver = "lib/psqlodbcw.so"; - }; - - meta = with lib; { - description = "Official PostgreSQL ODBC Driver"; - homepage = "https://odbc.postgresql.org/"; - license = licenses.lgpl2; - platforms = platforms.unix; - }; - }; + psql = psqlodbc.override { withUnixODBC = true; withLibiodbc = false; }; mariadb = stdenv.mkDerivation rec { pname = "mariadb-connector-odbc"; diff --git a/pkgs/development/python-modules/capstone/4.nix b/pkgs/development/python-modules/capstone/4.nix index 8c3a8df8f733..66b57a01bcb2 100644 --- a/pkgs/development/python-modules/capstone/4.nix +++ b/pkgs/development/python-modules/capstone/4.nix @@ -11,7 +11,7 @@ buildPythonPackage { pname = "capstone"; inherit (capstone_4) version src; - sourceRoot = "source/bindings/python"; + sourceRoot = "${capstone_4.src.name}/bindings/python"; patches = [ # Drop distutils in python binding (PR 2271) (fetchpatch { diff --git a/pkgs/development/python-modules/jaraco-path/default.nix b/pkgs/development/python-modules/jaraco-path/default.nix index a492a0448b4f..9dc6c763a2ca 100644 --- a/pkgs/development/python-modules/jaraco-path/default.nix +++ b/pkgs/development/python-modules/jaraco-path/default.nix @@ -4,6 +4,7 @@ fetchFromGitHub, setuptools-scm, pytestCheckHook, + stdenv, }: buildPythonPackage rec { @@ -30,5 +31,6 @@ buildPythonPackage rec { homepage = "https://github.com/jaraco/jaraco.path"; license = lib.licenses.mit; maintainers = with lib.maintainers; [ dotlambda ]; + broken = stdenv.isDarwin; # pyobjc is missing }; } diff --git a/pkgs/development/python-modules/pendulum/default.nix b/pkgs/development/python-modules/pendulum/default.nix index 1a13b5a10fe6..627769ff18c8 100644 --- a/pkgs/development/python-modules/pendulum/default.nix +++ b/pkgs/development/python-modules/pendulum/default.nix @@ -45,7 +45,7 @@ buildPythonPackage rec { cargoRoot = "rust"; cargoDeps = rustPlatform.fetchCargoTarball { inherit src; - sourceRoot = "source/rust"; + sourceRoot = "${src.name}/rust"; name = "${pname}-${version}"; hash = "sha256-6fw0KgnPIMfdseWcunsGjvjVB+lJNoG3pLDqkORPJ0I="; postPatch = '' diff --git a/pkgs/development/python-modules/puremagic/default.nix b/pkgs/development/python-modules/puremagic/default.nix index 2d373362fb4f..3012925d4103 100644 --- a/pkgs/development/python-modules/puremagic/default.nix +++ b/pkgs/development/python-modules/puremagic/default.nix @@ -9,7 +9,7 @@ buildPythonPackage rec { pname = "puremagic"; - version = "1.26"; + version = "1.27"; pyproject = true; disabled = pythonOlder "3.7"; @@ -18,7 +18,7 @@ buildPythonPackage rec { owner = "cdgriffith"; repo = "puremagic"; rev = "refs/tags/${version}"; - hash = "sha256-0lnMLlW/cwP0tOM0oZEl5M5k5ZDssnZejGt3+ctW1qg="; + hash = "sha256-93akHgfkNbYGDJxXXJTk9yobvpiycqdroVBEeOzDiFQ="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/pyarrow/default.nix b/pkgs/development/python-modules/pyarrow/default.nix index 5c90ed002745..3c9b1d3bc211 100644 --- a/pkgs/development/python-modules/pyarrow/default.nix +++ b/pkgs/development/python-modules/pyarrow/default.nix @@ -33,7 +33,7 @@ buildPythonPackage rec { disabled = pythonOlder "3.7"; - sourceRoot = "source/python"; + sourceRoot = "${src.name}/python"; nativeBuildInputs = [ cmake diff --git a/pkgs/development/python-modules/yapsy/default.nix b/pkgs/development/python-modules/yapsy/default.nix index 12ad6fc215f8..256d421f918f 100644 --- a/pkgs/development/python-modules/yapsy/default.nix +++ b/pkgs/development/python-modules/yapsy/default.nix @@ -6,7 +6,7 @@ pytestCheckHook, }: -buildPythonPackage { +buildPythonPackage rec { pname = "yapsy"; version = "1.12.2-unstable-2023-03-29"; pyproject = true; @@ -18,7 +18,7 @@ buildPythonPackage { hash = "sha256-QKZlUAhYMCCsT/jbEHb39ESZ2+2FZYnhJnc1PgsozBA="; }; - sourceRoot = "source/package"; + sourceRoot = "${src.name}/package"; build-system = [ setuptools ]; diff --git a/pkgs/os-specific/linux/hid-t150/default.nix b/pkgs/os-specific/linux/hid-t150/default.nix index b3800ec5cfa3..7cb40d01aaff 100644 --- a/pkgs/os-specific/linux/hid-t150/default.nix +++ b/pkgs/os-specific/linux/hid-t150/default.nix @@ -5,7 +5,7 @@ kernel, }: -stdenv.mkDerivation { +stdenv.mkDerivation rec { pname = "hid-t150"; #https://github.com/scarburato/t150_driver/blob/165d0601e11576186c9416c40144927549ef804d/install.sh#L3 version = "0.8a"; @@ -19,7 +19,7 @@ stdenv.mkDerivation { nativeBuildInputs = kernel.moduleBuildDependencies; - sourceRoot = "source/hid-t150"; + sourceRoot = "${src.name}/hid-t150"; makeFlags = kernel.makeFlags ++ [ "KDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" diff --git a/pkgs/servers/web-apps/freshrss/extensions/default.nix b/pkgs/servers/web-apps/freshrss/extensions/default.nix index c8d779f7933d..deb8d4de471f 100644 --- a/pkgs/servers/web-apps/freshrss/extensions/default.nix +++ b/pkgs/servers/web-apps/freshrss/extensions/default.nix @@ -97,7 +97,7 @@ let pname = "title-wrap"; version = official_extensions_version; src = official_extensions_src; - sourceRoot = "source/xExtension-TitleWrap"; + sourceRoot = "${official_extensions_src.name}/xExtension-TitleWrap"; meta = { description = "FreshRSS extension instead of truncating the title is wrapped."; homepage = "https://github.com/FreshRSS/Extensions/tree/master/xExtension-TitleWrap"; @@ -111,7 +111,7 @@ let pname = "youtube"; version = official_extensions_version; src = official_extensions_src; - sourceRoot = "source/xExtension-YouTube"; + sourceRoot = "${official_extensions_src.name}/xExtension-YouTube"; meta = { description = "FreshRSS extension allows you to directly watch YouTube/PeerTube videos from within subscribed channel feeds."; homepage = "https://github.com/FreshRSS/Extensions/tree/master/xExtension-YouTube"; diff --git a/pkgs/tools/security/ghidra/build-extension.nix b/pkgs/tools/security/ghidra/build-extension.nix index 49d68b2f81ee..b34f67d34b56 100644 --- a/pkgs/tools/security/ghidra/build-extension.nix +++ b/pkgs/tools/security/ghidra/build-extension.nix @@ -1,72 +1,98 @@ -{ lib -, stdenv -, unzip -, jdk -, gradle -, ghidra +{ + lib, + stdenv, + unzip, + jdk, + gradle, + ghidra, }: let - metaCommon = oldMeta: - oldMeta // (with lib; { - maintainers = (oldMeta.maintainers or []) ++ (with maintainers; [ vringar ]); + metaCommon = + oldMeta: + oldMeta + // (with lib; { + maintainers = (oldMeta.maintainers or [ ]) ++ (with maintainers; [ vringar ]); platforms = oldMeta.platforms or ghidra.meta.platforms; }); - buildGhidraExtension = { - pname, nativeBuildInputs ? [], meta ? { }, ... - }@args: - stdenv.mkDerivation (args // { - nativeBuildInputs = nativeBuildInputs ++ [ - unzip - jdk - gradle - ]; + buildGhidraExtension = + { + pname, + nativeBuildInputs ? [ ], + meta ? { }, + ... + }@args: + stdenv.mkDerivation ( + args + // { + nativeBuildInputs = nativeBuildInputs ++ [ + unzip + jdk + gradle + ]; - preBuild = '' - # Set project name, otherwise defaults to directory name - echo -e '\nrootProject.name = "${pname}"' >> settings.gradle - ${args.preBuild or ""} - ''; + preBuild = '' + # Set project name, otherwise defaults to directory name + echo -e '\nrootProject.name = "${pname}"' >> settings.gradle + # A config directory needs to exist when ghidra's GHelpBuilder is run + export XDG_CONFIG_HOME="''${XDG_CONFIG_HOME:-$(mktemp -d)}" + ${args.preBuild or ""} + ''; - gradleBuildTask = args.gradleBuildTask or "buildExtension"; - gradleFlags = args.gradleFlags or [] ++ [ "-PGHIDRA_INSTALL_DIR=${ghidra}/lib/ghidra" ]; + # Needed to run gradle on darwin + __darwinAllowLocalNetworking = true; - installPhase = args.installPhase or '' - runHook preInstall + gradleBuildTask = args.gradleBuildTask or "buildExtension"; + gradleFlags = args.gradleFlags or [ ] ++ [ "-PGHIDRA_INSTALL_DIR=${ghidra}/lib/ghidra" ]; - mkdir -p $out/lib/ghidra/Ghidra/Extensions - unzip -d $out/lib/ghidra/Ghidra/Extensions dist/*.zip + installPhase = + args.installPhase or '' + runHook preInstall - runHook postInstall - ''; + mkdir -p $out/lib/ghidra/Ghidra/Extensions + unzip -d $out/lib/ghidra/Ghidra/Extensions dist/*.zip - meta = metaCommon meta; - }); + runHook postInstall + ''; - buildGhidraScripts = { pname, meta ? { }, ... }@args: - stdenv.mkDerivation (args // { - installPhase = '' - runHook preInstall + meta = metaCommon meta; + } + ); - GHIDRA_HOME=$out/lib/ghidra/Ghidra/Extensions/${pname} - mkdir -p $GHIDRA_HOME - cp -r . $GHIDRA_HOME/ghidra_scripts + buildGhidraScripts = + { + pname, + meta ? { }, + ... + }@args: + stdenv.mkDerivation ( + args + // { + installPhase = '' + runHook preInstall - touch $GHIDRA_HOME/Module.manifest - cat <<'EOF' > extension.properties - name=${pname} - description=${meta.description or ""} - author= - createdOn= - version=${lib.getVersion ghidra} + GHIDRA_HOME=$out/lib/ghidra/Ghidra/Extensions/${pname} + mkdir -p $GHIDRA_HOME + cp -r . $GHIDRA_HOME/ghidra_scripts - EOF + touch $GHIDRA_HOME/Module.manifest + cat <<'EOF' > extension.properties + name=${pname} + description=${meta.description or ""} + author= + createdOn= + version=${lib.getVersion ghidra} - runHook postInstall - ''; + EOF - meta = metaCommon meta; - }); + runHook postInstall + ''; + + meta = metaCommon meta; + } + ); in - { inherit buildGhidraExtension buildGhidraScripts; } +{ + inherit buildGhidraExtension buildGhidraScripts; +} diff --git a/pkgs/tools/security/ghidra/default.nix b/pkgs/tools/security/ghidra/default.nix index fc9b4d2853dc..fc5a7678d674 100644 --- a/pkgs/tools/security/ghidra/default.nix +++ b/pkgs/tools/security/ghidra/default.nix @@ -1,12 +1,13 @@ -{ stdenv -, fetchzip -, lib -, makeWrapper -, autoPatchelfHook -, openjdk17 -, pam -, makeDesktopItem -, icoutils +{ + stdenv, + fetchzip, + lib, + makeWrapper, + autoPatchelfHook, + openjdk17, + pam, + makeDesktopItem, + icoutils, }: let @@ -24,7 +25,8 @@ let startupWMClass = "ghidra-Ghidra"; }; -in stdenv.mkDerivation rec { +in +stdenv.mkDerivation rec { pname = "ghidra"; version = "10.4"; versiondate = "20230928"; @@ -37,8 +39,7 @@ in stdenv.mkDerivation rec { nativeBuildInputs = [ makeWrapper icoutils - ] - ++ lib.optionals stdenv.isLinux [ autoPatchelfHook ]; + ] ++ lib.optionals stdenv.isLinux [ autoPatchelfHook ]; buildInputs = [ stdenv.cc.cc.lib @@ -74,10 +75,17 @@ in stdenv.mkDerivation rec { description = "Software reverse engineering (SRE) suite of tools developed by NSA's Research Directorate in support of the Cybersecurity mission"; mainProgram = "ghidra"; homepage = "https://github.com/NationalSecurityAgency/ghidra"; - platforms = [ "x86_64-linux" "x86_64-darwin" ]; + platforms = [ + "x86_64-linux" + "x86_64-darwin" + ]; sourceProvenance = with sourceTypes; [ binaryBytecode ]; license = licenses.asl20; - maintainers = with maintainers; [ ck3d govanify mic92 ]; + maintainers = with maintainers; [ + ck3d + govanify + mic92 + ]; }; } diff --git a/pkgs/tools/security/ghidra/extensions.nix b/pkgs/tools/security/ghidra/extensions.nix index 3f30dd8ab40a..9b6012573bab 100644 --- a/pkgs/tools/security/ghidra/extensions.nix +++ b/pkgs/tools/security/ghidra/extensions.nix @@ -1,14 +1,26 @@ -{ lib, newScope, callPackage, ghidra }: +{ + lib, + newScope, + callPackage, + ghidra, +}: lib.makeScope newScope (self: { - inherit (callPackage ./build-extension.nix { inherit ghidra; }) buildGhidraExtension buildGhidraScripts; + inherit (callPackage ./build-extension.nix { inherit ghidra; }) + buildGhidraExtension + buildGhidraScripts + ; ghidraninja-ghidra-scripts = self.callPackage ./extensions/ghidraninja-ghidra-scripts { }; gnudisassembler = self.callPackage ./extensions/gnudisassembler { inherit ghidra; }; + lightkeeper = self.callPackage ./extensions/lightkeeper { }; + machinelearning = self.callPackage ./extensions/machinelearning { inherit ghidra; }; + ret-sync = self.callPackage ./extensions/ret-sync { }; + sleighdevtools = self.callPackage ./extensions/sleighdevtools { inherit ghidra; }; }) diff --git a/pkgs/tools/security/ghidra/extensions/ghidraninja-ghidra-scripts/default.nix b/pkgs/tools/security/ghidra/extensions/ghidraninja-ghidra-scripts/default.nix index 6c5e2ec2ea2a..1e4fcefabdc3 100644 --- a/pkgs/tools/security/ghidra/extensions/ghidraninja-ghidra-scripts/default.nix +++ b/pkgs/tools/security/ghidra/extensions/ghidraninja-ghidra-scripts/default.nix @@ -1,9 +1,10 @@ -{ lib -, fetchFromGitHub -, buildGhidraScripts -, binwalk -, swift -, yara +{ + lib, + fetchFromGitHub, + buildGhidraScripts, + binwalk, + swift, + yara, }: buildGhidraScripts { diff --git a/pkgs/tools/security/ghidra/extensions/gnudisassembler/default.nix b/pkgs/tools/security/ghidra/extensions/gnudisassembler/default.nix index 14b0f1df2733..6cddb49b8dc0 100644 --- a/pkgs/tools/security/ghidra/extensions/gnudisassembler/default.nix +++ b/pkgs/tools/security/ghidra/extensions/gnudisassembler/default.nix @@ -1,14 +1,15 @@ -{ lib -, stdenv -, fetchurl -, buildGhidraExtension -, ghidra -, flex -, bison -, texinfo -, perl -, zlib -, xcbuild +{ + lib, + stdenv, + fetchurl, + buildGhidraExtension, + ghidra, + flex, + bison, + texinfo, + perl, + zlib, + xcbuild, }: let @@ -41,13 +42,9 @@ buildGhidraExtension { bison texinfo perl - ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ - xcbuild - ]; + ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ xcbuild ]; - buildInputs = [ - zlib - ]; + buildInputs = [ zlib ]; gradleBuildTask = "assemble"; installPhase = '' diff --git a/pkgs/tools/security/ghidra/extensions/lightkeeper/default.nix b/pkgs/tools/security/ghidra/extensions/lightkeeper/default.nix new file mode 100644 index 000000000000..74aa7ca90b11 --- /dev/null +++ b/pkgs/tools/security/ghidra/extensions/lightkeeper/default.nix @@ -0,0 +1,24 @@ +{ + lib, + fetchFromGitHub, + buildGhidraExtension, +}: +buildGhidraExtension rec { + pname = "lightkeeper"; + version = "1.1.0"; + + src = fetchFromGitHub { + owner = "WorksButNotTested"; + repo = "lightkeeper"; + rev = version; + hash = "sha256-S8yNn56A2CvrIBsq0RoBx0qOjrYDZSv1IVTxGmlL4Js="; + }; + preConfigure = '' + cd lightkeeper + ''; + meta = { + description = "A port of the Lighthouse plugin to GHIDRA."; + homepage = "https://github.com/WorksButNotTested/lightkeeper"; + license = lib.licenses.asl20; + }; +} diff --git a/pkgs/tools/security/ghidra/extensions/machinelearning/default.nix b/pkgs/tools/security/ghidra/extensions/machinelearning/default.nix index ba1e315c7512..a34845db0578 100644 --- a/pkgs/tools/security/ghidra/extensions/machinelearning/default.nix +++ b/pkgs/tools/security/ghidra/extensions/machinelearning/default.nix @@ -1,6 +1,7 @@ -{ lib -, buildGhidraExtension -, ghidra +{ + lib, + buildGhidraExtension, + ghidra, }: buildGhidraExtension { @@ -28,7 +29,7 @@ buildGhidraExtension { downloadPage = "https://github.com/NationalSecurityAgency/ghidra/tree/master/Ghidra/Extensions/MachineLearning"; sourceProvenance = with sourceTypes; [ fromSource - binaryBytecode # deps + binaryBytecode # deps ]; }; } diff --git a/pkgs/tools/security/ghidra/extensions/ret-sync/default.nix b/pkgs/tools/security/ghidra/extensions/ret-sync/default.nix new file mode 100644 index 000000000000..e2ab50c119c1 --- /dev/null +++ b/pkgs/tools/security/ghidra/extensions/ret-sync/default.nix @@ -0,0 +1,32 @@ +{ + lib, + fetchFromGitHub, + buildGhidraExtension, + ghidra, +}: +buildGhidraExtension { + pname = "ret-sync-ghidra"; + version = "0-unstable-2024-05-29"; + + src = fetchFromGitHub { + owner = "bootleg"; + repo = "ret-sync"; + rev = "0617c75746ddde7fe2bdbbf880175af8ad27553e"; + hash = "sha256-+G5ccdHnFL0sHpueuIYwLRU9FhzN658CYqQCHCBwxV4="; + }; + + preConfigure = '' + cd ext_ghidra + ''; + preInstall = '' + correct_version=$(ls dist | grep ${ghidra.version}) + mv dist/$correct_version dist/safe.zip + rm dist/ghidra* + mv dist/safe.zip dist/$correct_version + ''; + meta = with lib; { + description = "Reverse-Engineering Tools SYNChronization. Allows syncing between a debugging session and Ghidra"; + homepage = "https://github.com/bootleg/ret-sync"; + license = licenses.gpl3Only; + }; +} diff --git a/pkgs/tools/security/ghidra/extensions/sleighdevtools/default.nix b/pkgs/tools/security/ghidra/extensions/sleighdevtools/default.nix index d8fd0182ab9d..90a495459ab1 100644 --- a/pkgs/tools/security/ghidra/extensions/sleighdevtools/default.nix +++ b/pkgs/tools/security/ghidra/extensions/sleighdevtools/default.nix @@ -1,7 +1,8 @@ -{ lib -, buildGhidraExtension -, ghidra -, python3 +{ + lib, + buildGhidraExtension, + ghidra, + python3, }: buildGhidraExtension { @@ -34,7 +35,7 @@ buildGhidraExtension { downloadPage = "https://github.com/NationalSecurityAgency/ghidra/tree/master/Ghidra/Extensions/SleighDevTools"; sourceProvenance = with sourceTypes; [ fromSource - binaryBytecode # deps + binaryBytecode # deps ]; }; } diff --git a/pkgs/tools/security/ghidra/with-extensions.nix b/pkgs/tools/security/ghidra/with-extensions.nix index 38165ed94f71..40abbdf62f1b 100644 --- a/pkgs/tools/security/ghidra/with-extensions.nix +++ b/pkgs/tools/security/ghidra/with-extensions.nix @@ -1,36 +1,43 @@ -{ lib -, stdenv -, callPackage -, symlinkJoin -, makeBinaryWrapper -, desktopToDarwinBundle -, ghidra +{ + lib, + stdenv, + callPackage, + symlinkJoin, + makeBinaryWrapper, + desktopToDarwinBundle, + ghidra, }: let ghidra-extensions = callPackage ./extensions.nix { inherit ghidra; }; allExtensions = lib.filterAttrs (n: pkg: lib.isDerivation pkg) ghidra-extensions; - /* Make Ghidra with additional extensions - Example: - pkgs.ghidra.withExtensions (p: with p; [ - ghostrings - ]); - => /nix/store/3yn0rbnz5mbrxf0x70jbjq73wgkszr5c-ghidra-with-extensions-10.2.2 + /* + Make Ghidra with additional extensions + Example: + pkgs.ghidra.withExtensions (p: with p; [ + ghostrings + ]); + => /nix/store/3yn0rbnz5mbrxf0x70jbjq73wgkszr5c-ghidra-with-extensions-10.2.2 */ - withExtensions = f: (symlinkJoin { - name = "${ghidra.pname}-with-extensions-${lib.getVersion ghidra}"; - paths = (f allExtensions); - nativeBuildInputs = [ makeBinaryWrapper ] - ++ lib.optional stdenv.hostPlatform.isDarwin desktopToDarwinBundle; - postBuild = '' - makeWrapper '${ghidra}/bin/ghidra' "$out/bin/ghidra" \ - --set NIX_GHIDRAHOME "$out/lib/ghidra/Ghidra" - ln -s ${ghidra}/share $out/share - '' + lib.optionalString stdenv.hostPlatform.isDarwin '' - convertDesktopFiles $prefix - ''; - inherit (ghidra) meta; - }); + withExtensions = + f: + (symlinkJoin { + name = "${ghidra.pname}-with-extensions-${lib.getVersion ghidra}"; + paths = (f allExtensions); + nativeBuildInputs = [ + makeBinaryWrapper + ] ++ lib.optional stdenv.hostPlatform.isDarwin desktopToDarwinBundle; + postBuild = + '' + makeWrapper '${ghidra}/bin/ghidra' "$out/bin/ghidra" \ + --set NIX_GHIDRAHOME "$out/lib/ghidra/Ghidra" + ln -s ${ghidra}/share $out/share + '' + + lib.optionalString stdenv.hostPlatform.isDarwin '' + convertDesktopFiles $prefix + ''; + inherit (ghidra) meta; + }); in - withExtensions +withExtensions