diff --git a/nixos/modules/services/video/go2rtc/default.nix b/nixos/modules/services/video/go2rtc/default.nix index 45506d551f1c..1151d31b68e6 100644 --- a/nixos/modules/services/video/go2rtc/default.nix +++ b/nixos/modules/services/video/go2rtc/default.nix @@ -103,6 +103,10 @@ in serviceConfig = { DynamicUser = true; User = "go2rtc"; + SupplementaryGroups = [ + # for v4l2 devices + "video" + ]; StateDirectory = "go2rtc"; ExecStart = "${cfg.package}/bin/go2rtc -config ${configFile}"; }; diff --git a/pkgs/applications/blockchains/erigon/default.nix b/pkgs/applications/blockchains/erigon/default.nix index 8583fc8683fd..ca2b70a024a5 100644 --- a/pkgs/applications/blockchains/erigon/default.nix +++ b/pkgs/applications/blockchains/erigon/default.nix @@ -2,7 +2,7 @@ let pname = "erigon"; - version = "2.43.0"; + version = "2.45.1"; in buildGoModule { inherit pname version; @@ -11,11 +11,11 @@ buildGoModule { owner = "ledgerwatch"; repo = pname; rev = "v${version}"; - sha256 = "sha256-3o7vu2bA8lB1CiVaSF6YU9WjwNliQAK5AcGl82GCqFg="; + sha256 = "sha256-uaEGshpAmCXIIcpN5Fx/VNUK8DgQp9yFm2xBDGz7FNo="; fetchSubmodules = true; }; - vendorSha256 = "sha256-JhMefeUxo9ksyCnNsLgAhGG0Ix7kxCA/cYyiELd0H64="; + vendorSha256 = "sha256-Yd78OW48HsOgxT5R3QT6/xDzPsRNFRE2nKocljTKKBA="; proxyVendor = true; # Build errors in mdbx when format hardening is enabled: diff --git a/pkgs/applications/networking/cluster/aiac/default.nix b/pkgs/applications/networking/cluster/aiac/default.nix index 6f1f75a3cfd2..92f04fa88815 100644 --- a/pkgs/applications/networking/cluster/aiac/default.nix +++ b/pkgs/applications/networking/cluster/aiac/default.nix @@ -2,14 +2,14 @@ buildGoModule rec { pname = "aiac"; - version = "2.4.0"; + version = "2.5.0"; excludedPackages = [".ci"]; src = fetchFromGitHub { owner = "gofireflyio"; repo = pname; rev = "v${version}"; - hash = "sha256-C9eQdN8S8Qe0x+Uly69nbYNXDKpi1uZ6qNBetn2P4Gk="; + hash = "sha256-BCcoMftnvfAqmabnSz/oRAlJg95KJ236mduxV2DfRG4="; }; vendorHash = "sha256-Uqr9wH7hCLdZEu6DXddgB7NuLtqcjUbOPJ2YX+9ehKM="; diff --git a/pkgs/applications/networking/cluster/k0sctl/default.nix b/pkgs/applications/networking/cluster/k0sctl/default.nix index 8995ace0125a..dcce516e3da6 100644 --- a/pkgs/applications/networking/cluster/k0sctl/default.nix +++ b/pkgs/applications/networking/cluster/k0sctl/default.nix @@ -6,13 +6,13 @@ buildGoModule rec { pname = "k0sctl"; - version = "0.15.1"; + version = "0.15.2"; src = fetchFromGitHub { owner = "k0sproject"; repo = pname; rev = "v${version}"; - sha256 = "sha256-80AmGc3SdniKayvviVoItrj8v+3m1sAJXSjoRJzw7mE="; + sha256 = "sha256-pti52JlnIxinKg2DxNfLewoJuhMohsAVmHgvR2N5shg="; }; vendorSha256 = "sha256-K4/sIHWVe1Wj8LJgrqfoOg1hHXvH3HEgU5vq82tzMSk="; diff --git a/pkgs/applications/radio/chirp/default.nix b/pkgs/applications/radio/chirp/default.nix index 11011293ffd1..48e75048ba6a 100644 --- a/pkgs/applications/radio/chirp/default.nix +++ b/pkgs/applications/radio/chirp/default.nix @@ -9,13 +9,13 @@ python3.pkgs.buildPythonApplication rec { pname = "chirp"; - version = "unstable-2023-03-15"; + version = "unstable-2023-06-02"; src = fetchFromGitHub { owner = "kk7ds"; repo = "chirp"; - rev = "33402b7c545c5a92b7042369867e7eb75ef32a59"; - hash = "sha256-duSEpd2GBBskoKNFos5X9wFtsjRct1918VhZd1T2rvU="; + rev = "72789c3652c332dc68ba694f8f8f005913fe5c95"; + hash = "sha256-WQwCX7h9BFLdYOBVVntxQ6g4t3j7QLfNmlHVLzlRh7U="; }; buildInputs = [ glib diff --git a/pkgs/applications/version-management/git-credential-oauth/default.nix b/pkgs/applications/version-management/git-credential-oauth/default.nix index 85125f62712c..3f776e29dc9c 100644 --- a/pkgs/applications/version-management/git-credential-oauth/default.nix +++ b/pkgs/applications/version-management/git-credential-oauth/default.nix @@ -2,13 +2,13 @@ buildGoModule rec { pname = "git-credential-oauth"; - version = "0.7.0"; + version = "0.8.0"; src = fetchFromGitHub { owner = "hickford"; repo = pname; rev = "v${version}"; - hash = "sha256-f12PgTtfs/S9RI8+QFROkNqccRWeIW1/YkynqvKJc7I="; + hash = "sha256-t1P20BDNQ0aJRgQhOgYP2Md44+I8xs6884ktBO4nGjY="; }; ldflags = [ @@ -17,7 +17,7 @@ buildGoModule rec { "-X main.version=${version}" ]; - vendorHash = "sha256-9X7ti3NR5MKK0MpiyTOTO+EtdMuu4/TW/diHq9FjSHY="; + vendorHash = "sha256-oHusgU5SMkFDY2dhFRdDonyYkyOBGOp+zqx2nFmOWXk="; meta = { description = "Git credential helper that securely authenticates to GitHub, GitLab and BitBucket using OAuth"; diff --git a/pkgs/development/compilers/halide/default.nix b/pkgs/development/compilers/halide/default.nix index d0d3038c23c6..636506836dc9 100644 --- a/pkgs/development/compilers/halide/default.nix +++ b/pkgs/development/compilers/halide/default.nix @@ -1,4 +1,5 @@ -{ llvmPackages +{ stdenv +, llvmPackages , lib , fetchFromGitHub , cmake @@ -13,7 +14,7 @@ assert blas.implementation == "openblas" && lapack.implementation == "openblas"; -llvmPackages.stdenv.mkDerivation rec { +stdenv.mkDerivation rec { pname = "halide"; version = "15.0.1"; @@ -24,7 +25,15 @@ llvmPackages.stdenv.mkDerivation rec { sha256 = "sha256-mnZ6QMqDr48bH2W+andGZj2EhajXKApjuW6B50xtzx0="; }; - cmakeFlags = [ "-DWARNINGS_AS_ERRORS=OFF" "-DWITH_PYTHON_BINDINGS=OFF" "-DTARGET_WEBASSEMBLY=OFF" ]; + cmakeFlags = [ + "-DWARNINGS_AS_ERRORS=OFF" + "-DWITH_PYTHON_BINDINGS=OFF" + "-DTARGET_WEBASSEMBLY=OFF" + # Disable performance tests since they may fail on busy machines + "-DWITH_TEST_PERFORMANCE=OFF" + ]; + + doCheck = true; # Note: only openblas and not atlas part of this Nix expression # see pkgs/development/libraries/science/math/liblapack/3.5.0.nix diff --git a/pkgs/development/interpreters/erlang/25.nix b/pkgs/development/interpreters/erlang/25.nix index 500995a8a2a3..5431112ba418 100644 --- a/pkgs/development/interpreters/erlang/25.nix +++ b/pkgs/development/interpreters/erlang/25.nix @@ -1,6 +1,6 @@ { mkDerivation }: mkDerivation { - version = "25.3.2.1"; - sha256 = "4PDK18/tekJHgNGECG5hv/HvwvteR+FeN6hlpB9FC9o="; + version = "25.3.2.2"; + sha256 = "TeDszsF9X4ExnOfP20ujlJpfxKK1zwhHHnPAbSnm/YQ="; } diff --git a/pkgs/development/python-modules/diceware/default.nix b/pkgs/development/python-modules/diceware/default.nix index d719dd738ca2..ed6c77c6abc6 100644 --- a/pkgs/development/python-modules/diceware/default.nix +++ b/pkgs/development/python-modules/diceware/default.nix @@ -1,32 +1,49 @@ -{ lib, buildPythonPackage, fetchPypi -, pytest-runner +{ lib +, buildPythonPackage +, fetchPypi , setuptools -, coverage, pytest +, pytestCheckHook +, pythonOlder }: buildPythonPackage rec { pname = "diceware"; version = "0.10"; + format = "setuptools"; + + disabled = pythonOlder "3.7"; src = fetchPypi { inherit pname version; hash = "sha256-srTMm1n1aNLvUb/fn34a+UHSX7j1wl8XAZHburzpZWk="; }; - nativeBuildInputs = [ pytest-runner ]; - - propagatedBuildInputs = [ setuptools ]; - - nativeCheckInputs = [ coverage pytest ]; - - # see https://github.com/ulif/diceware/commit/a7d844df76cd4b95a717f21ef5aa6167477b6733 - checkPhase = '' - py.test -m 'not packaging' + postPatch = '' + substituteInPlace setup.py \ + --replace "'pytest_runner'," "" ''; + propagatedBuildInputs = [ + setuptools + ]; + + nativeCheckInputs = [ + pytestCheckHook + ]; + + pytestFlagsArray = [ + # see https://github.com/ulif/diceware/commit/a7d844df76cd4b95a717f21ef5aa6167477b6733 + "-m 'not packaging'" + ]; + + pythonImportsCheck = [ + "diceware" + ]; + meta = with lib; { description = "Generates passphrases by concatenating words randomly picked from wordlists"; homepage = "https://github.com/ulif/diceware"; + changelog = "https://github.com/ulif/diceware/blob/v${version}/CHANGES.rst"; license = licenses.gpl3; maintainers = with maintainers; [ asymmetric ]; }; diff --git a/pkgs/development/python-modules/libais/default.nix b/pkgs/development/python-modules/libais/default.nix index fbf0224204e8..ba42d47d346d 100644 --- a/pkgs/development/python-modules/libais/default.nix +++ b/pkgs/development/python-modules/libais/default.nix @@ -1,25 +1,49 @@ -{ lib, buildPythonPackage, fetchPypi, - six, pytest, pytest-runner, pytest-cov, coverage +{ lib +, buildPythonPackage +, fetchPypi +, pytestCheckHook +, pythonOlder +, six }: + buildPythonPackage rec { pname = "libais"; version = "0.17"; + format = "setuptools"; + + disabled = pythonOlder "3.7"; src = fetchPypi { inherit pname version; - sha256 = "0pyka09h8nb0vlzh14npq4nxmzg1046lr3klgn97dsf5k0iflapb"; + hash = "sha256-6yrqIpjF6XaSfXSOTA0B4f3aLcHXkgA/3WBZBBNQ018="; }; + postPatch = '' + substituteInPlace setup.py \ + --replace "'pytest-runner'," "" + ''; + + propagatedBuildInputs = [ + six + ]; + + nativeCheckInputs = [ + pytestCheckHook + ]; + # data files missing doCheck = false; - nativeCheckInputs = [ pytest pytest-runner pytest-cov coverage ]; - propagatedBuildInputs = [ six ]; + pythonImportsCheck = [ + "ais" + ]; meta = with lib; { - homepage = "https://github.com/schwehr/libais"; description = "Library for decoding maritime Automatic Identification System messages"; + homepage = "https://github.com/schwehr/libais"; + changelog = "https://github.com/schwehr/libais/blob/master/Changelog.md"; license = licenses.asl20; + maintainers = with maintainers; [ ]; platforms = platforms.unix; }; } diff --git a/pkgs/development/python-modules/policyuniverse/default.nix b/pkgs/development/python-modules/policyuniverse/default.nix index 027e2da7a538..85fe94458f0a 100644 --- a/pkgs/development/python-modules/policyuniverse/default.nix +++ b/pkgs/development/python-modules/policyuniverse/default.nix @@ -6,14 +6,14 @@ buildPythonPackage rec { pname = "policyuniverse"; - version = "1.5.1.20230526"; + version = "1.5.1.20230608"; format = "setuptools"; disabled = pythonOlder "3.7"; src = fetchPypi { inherit pname version; - hash = "sha256-80Q1qkCAD3VwNk0pblPWni3qY/8Dc2YrOLDjPrg/2Os="; + hash = "sha256-q0Btbo5jznv3mUXh5SjVU7SmdxFpPkiVe/ZNY+lzUCg="; }; # Tests are not shipped and there are no GitHub tags diff --git a/pkgs/development/python-modules/pycategories/default.nix b/pkgs/development/python-modules/pycategories/default.nix index 8d41b7f4ee42..6586f598ca0a 100644 --- a/pkgs/development/python-modules/pycategories/default.nix +++ b/pkgs/development/python-modules/pycategories/default.nix @@ -1,34 +1,42 @@ -{ buildPythonPackage +{ lib +, buildPythonPackage , callPackage -, pytest-cov , fetchPypi -, lib -, pytest +, pytestCheckHook , pythonOlder -, pytest-runner }: buildPythonPackage rec { pname = "pycategories"; version = "1.2.0"; - disabled = pythonOlder "3.4"; + format = "setuptools"; + + disabled = pythonOlder "3.7"; src = fetchPypi { inherit pname version; - sha256 = "bd70ecb5e94e7659e564ea153f0c7673291dc37c526c246800fc08d6c5378099"; + hash = "sha256-vXDstelOdlnlZOoVPwx2cykdw3xSbCRoAPwI1sU3gJk="; }; - nativeBuildInputs = [ pytest-runner ]; + postPatch = '' + substituteInPlace setup.py \ + --replace "'pytest-runner'," "" + substituteInPlace setup.cfg \ + --replace "--cov-report term --cov=categories" "" + ''; # Is private because the author states it's unmaintained # and shouldn't be used in production code propagatedBuildInputs = [ (callPackage ./infix.nix { }) ]; - nativeCheckInputs = [ pytest pytest-cov ]; + nativeCheckInputs = [ + pytestCheckHook + ]; meta = with lib; { - homepage = "https://gitlab.com/danielhones/pycategories"; description = "Implementation of some concepts from category theory"; + homepage = "https://gitlab.com/danielhones/pycategories"; + changelog = "https://gitlab.com/danielhones/pycategories/-/blob/v${version}/CHANGELOG.rst"; license = licenses.mit; maintainers = with maintainers; [ dmvianna ]; }; diff --git a/pkgs/development/python-modules/pysrim/default.nix b/pkgs/development/python-modules/pysrim/default.nix index 4f295dfc7c27..4c3b66698adb 100644 --- a/pkgs/development/python-modules/pysrim/default.nix +++ b/pkgs/development/python-modules/pysrim/default.nix @@ -1,30 +1,43 @@ { lib -, fetchPypi , buildPythonPackage -, pytest-runner +, fetchPypi , numpy +, pythonOlder , pyyaml }: buildPythonPackage rec { pname = "pysrim"; version = "0.5.10"; + format = "setuptools"; + + disabled = pythonOlder "3.7"; src = fetchPypi { inherit pname version; - sha256 = "ada088f73f7e1a3bf085206e81e0f83ed89c1d0b23a789ecd0ba0a250724aee8"; + hash = "sha256-raCI9z9+GjvwhSBugeD4PticHQsjp4ns0LoKJQckrug="; }; - buildInputs = [ pytest-runner ]; - propagatedBuildInputs = [ numpy pyyaml ]; + postPatch = '' + substituteInPlace setup.py \ + --replace "'pytest-runner', " "" + ''; + + propagatedBuildInputs = [ + numpy + pyyaml + ]; # Tests require git lfs download of repository doCheck = false; - meta = { + # pythonImportsCheck does not work + # TypeError: load() missing 1 required positional argument: 'Loader' + + meta = with lib; { description = "Srim Automation of Tasks via Python"; homepage = "https://gitlab.com/costrouc/pysrim"; - license = lib.licenses.mit; - maintainers = with lib.maintainers; [ costrouc ]; + license = licenses.mit; + maintainers = with maintainers; [ costrouc ]; }; } diff --git a/pkgs/development/python-modules/sensirion-ble/default.nix b/pkgs/development/python-modules/sensirion-ble/default.nix new file mode 100644 index 000000000000..68e9f2302b60 --- /dev/null +++ b/pkgs/development/python-modules/sensirion-ble/default.nix @@ -0,0 +1,52 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, hatchling +, bluetooth-data-tools +, bluetooth-sensor-state-data +, home-assistant-bluetooth +, sensor-state-data +, pythonOlder +}: + +buildPythonPackage rec { + pname = "sensirion-ble"; + version = "0.1.0"; + format = "pyproject"; + + disabled = pythonOlder "3.8"; + + src = fetchFromGitHub { + owner = "akx"; + repo = "sensirion-ble"; + rev = "refs/tags/v${version}"; + hash = "sha256-7l76/Bci1ztt2CfwytLOySK6IL8IDijpB0AYhksRP7o="; + }; + + postPatch = '' + substituteInPlace pyproject.toml \ + --replace " --cov=sensirion_ble --cov-report=term-missing:skip-covered" "" + ''; + + nativeBuildInputs = [ + hatchling + ]; + + propagatedBuildInputs = [ + bluetooth-data-tools + bluetooth-sensor-state-data + home-assistant-bluetooth + sensor-state-data + ]; + + pythonImportsCheck = [ + "sensirion_ble" + ]; + + meta = with lib; { + description = "Parser for Sensirion BLE devices"; + homepage = "https://github.com/akx/sensirion-ble"; + license = licenses.mit; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/development/python-modules/srptools/default.nix b/pkgs/development/python-modules/srptools/default.nix index 75435ca5a45a..9c80f4dbc90b 100644 --- a/pkgs/development/python-modules/srptools/default.nix +++ b/pkgs/development/python-modules/srptools/default.nix @@ -1,21 +1,39 @@ -{ lib, buildPythonPackage, fetchPypi, six, pytest, pytest-runner }: +{ lib +, buildPythonPackage +, fetchPypi +, six +, pytestCheckHook +, pythonOlder +}: buildPythonPackage rec { pname = "srptools"; version = "1.0.1"; + format = "setuptools"; + + disabled = pythonOlder "3.7"; src = fetchPypi { inherit pname version; - sha256 = "7fa4337256a1542e8f5bb4bed19e1d9aea98fe5ff9baf76693342a1dd6ac7c96"; + hash = "sha256-f6QzclahVC6PW7S+0Z4dmuqY/l/5uvdmkzQqHdasfJY="; }; - propagatedBuildInputs = [ six ]; + propagatedBuildInputs = [ + six + ]; - nativeCheckInputs = [ pytest pytest-runner ]; + nativeCheckInputs = [ + pytestCheckHook + ]; + + pythonImportsCheck = [ + "srptools" + ]; meta = with lib; { - description = "Python-Tools to implement Secure Remote Password (SRP) authentication"; + description = "Module to implement Secure Remote Password (SRP) authentication"; homepage = "https://github.com/idlesign/srptools"; + changelog = "https://github.com/idlesign/srptools/blob/v${version}/CHANGELOG"; license = licenses.bsd3; maintainers = with maintainers; [ ]; }; diff --git a/pkgs/development/python-modules/tatsu/default.nix b/pkgs/development/python-modules/tatsu/default.nix index 9351784e905e..5d787e360a75 100644 --- a/pkgs/development/python-modules/tatsu/default.nix +++ b/pkgs/development/python-modules/tatsu/default.nix @@ -1,12 +1,18 @@ -{ lib, buildPythonPackage, fetchFromGitHub, pythonOlder -, colorama, regex -, pytest-runner, pytestCheckHook, pytest-mypy +{ lib +, buildPythonPackage +, colorama +, fetchFromGitHub +, pytest-mypy +, pytestCheckHook +, pythonOlder +, regex }: buildPythonPackage rec { pname = "tatsu"; version = "5.8.3"; - # upstream only supports 3.10+ + format = "setuptools"; + disabled = pythonOlder "3.10"; src = fetchFromGitHub { @@ -16,11 +22,19 @@ buildPythonPackage rec { hash = "sha256-cKEMRbH/xNtYM0lmNVazv3i0Q1tmVrVPrB6F2s02Sro="; }; - nativeBuildInputs = [ pytest-runner ]; - propagatedBuildInputs = [ colorama regex ]; - nativeCheckInputs = [ pytestCheckHook pytest-mypy ]; + propagatedBuildInputs = [ + colorama + regex + ]; - pythonImportsCheck = [ "tatsu" ]; + nativeCheckInputs = [ + pytest-mypy + pytestCheckHook + ]; + + pythonImportsCheck = [ + "tatsu" + ]; meta = with lib; { description = "Generates Python parsers from grammars in a variation of EBNF"; @@ -30,8 +44,8 @@ buildPythonPackage rec { Python. ''; homepage = "https://tatsu.readthedocs.io/"; + changelog = "https://github.com/neogeny/TatSu/releases/tag/v${version}"; license = licenses.bsd2; maintainers = with maintainers; [ ]; }; - } diff --git a/pkgs/games/shipwright/default.nix b/pkgs/games/shipwright/default.nix new file mode 100644 index 000000000000..182e2cf654ae --- /dev/null +++ b/pkgs/games/shipwright/default.nix @@ -0,0 +1,222 @@ +{ stdenv +, cmake +, lsb-release +, ninja +, lib +, fetchFromGitHub +, fetchurl +, makeDesktopItem +, python3 +, libX11 +, libXrandr +, libXinerama +, libXcursor +, libXi +, libXext +, glew +, boost +, SDL2 +, SDL2_net +, pkg-config +, libpulseaudio +, libpng +, imagemagick +, requireFile + +, oot ? rec { + enable = true; + variant = "debug"; + + rom = requireFile { + name = "oot-${variant}.z64"; + message = '' + This nix expression requires that oot-${variant}.z64 is already part of the store. + To get this file you can dump your Ocarina of Time's cartridge to a file, + and add it to the nix store with nix-store --add-fixed sha1 , or override the package: + shipwright.override { oot = { enable = true; variant = "debug"; rom = path/to/oot-debug-mq.z64; } } + + The supported variants are: + - debug: Ocarina of Time Debug PAL GC (not Master Quest) + - pal-gc: Ocarina of Time PAL GameCube (may lead to crashes and instability) + + This is optional if you have imported an Ocarina of Time Master Quest ROM. + If so, please set oot.enable to false and ootMq.enable to true. + If both are enabled, Ship of Harkinian will be built with both ROMs. + ''; + + # From upstream: https://github.com/HarbourMasters/Shipwright/blob/e46c60a7a1396374e23f7a1f7122ddf9efcadff7/README.md#1-check-your-sha1 + sha1 = { + debug = "cee6bc3c2a634b41728f2af8da54d9bf8cc14099"; + pal-gc = "0227d7c0074f2d0ac935631990da8ec5914597b4"; + }.${variant} or (throw "Unsupported romVariant ${variant}. Valid options are 'debug' and 'pal-gc'."); + }; + } + +, ootMq ? rec { + enable = false; + variant = "debug-mq"; + + rom = requireFile { + name = "oot-${variant}.z64"; + message = '' + This nix expression requires that oot-${variant}.z64 is already part of the store. + To get this file you can dump your Ocarina of Time Master Quest's cartridge to a file, + and add it to the nix store with nix-store --add-fixed sha1 , or override the package: + shipwright.override { ootMq = { enable = true; variant = "debug-mq"; rom = path/to/oot-debug-mq.z64; } } + + The supported variants are: + - debug-mq: Ocarina of Time Debug PAL GC MQ (Dungeons will be Master Quest) + - debug-mq-alt: Alternate ROM, not produced by decompilation. + + This is optional if you have imported an Ocarina of Time ROM. + If so, please set oot.enable to true and ootMq.enable to false. + If both are enabled, Ship of Harkinian will be built with both ROMs. + ''; + + # From upstream: https://github.com/HarbourMasters/Shipwright/blob/e46c60a7a1396374e23f7a1f7122ddf9efcadff7/README.md#1-check-your-sha1 + sha1 = { + debug-mq = "079b855b943d6ad8bd1eb026c0ed169ecbdac7da"; + debug-mq-alt = "50bebedad9e0f10746a52b07239e47fa6c284d03"; + }.${variant} or (throw "Unsupported mqRomVariant ${variant}. Valid options are 'debug-mq' and 'debug-mq-alt'."); + }; + } +}: + +let + checkAttrs = attrs: + let + validAttrs = [ "enable" "rom" "variant" ]; + in + lib.all (name: lib.elem name validAttrs) (lib.attrNames attrs); +in +assert (lib.assertMsg (checkAttrs oot) "oot must have the attributes 'enable' and 'rom', and none other"); +assert (lib.assertMsg (checkAttrs ootMq) "ootMq must have the attributes 'enable' and 'rom', and none other"); +assert (lib.assertMsg (oot.enable || ootMq.enable) "At least one of 'oot.enable' and 'ootMq.enable' must be true"); + +stdenv.mkDerivation rec { + pname = "shipwright"; + version = "7.0.2"; + + src = fetchFromGitHub { + owner = "harbourmasters"; + repo = "shipwright"; + rev = version; + hash = "sha256-2VCcczGWSvp6hk8FTA1/T1E1KkrrvWyOdkEw8eiYYnY="; + fetchSubmodules = true; + }; + + # This would get fetched at build time otherwise, see: + # https://github.com/HarbourMasters/Shipwright/blob/e46c60a7a1396374e23f7a1f7122ddf9efcadff7/soh/CMakeLists.txt#L736 + gamecontrollerdb = fetchurl { + name = "gamecontrollerdb.txt"; + url = "https://raw.githubusercontent.com/gabomdq/SDL_GameControllerDB/c5b4df0e1061175cb11e3ebbf8045178339864a5/gamecontrollerdb.txt"; + hash = "sha256-2VFCsaalXoe+JYWCH6IbgjnLXNKxe0UqSyJNGZMn5Ko="; + }; + + nativeBuildInputs = [ + cmake + ninja + pkg-config + lsb-release + python3 + imagemagick + ]; + + buildInputs = [ + boost + libX11 + libXrandr + libXinerama + libXcursor + libXi + libXext + glew + SDL2 + SDL2_net + libpulseaudio + libpng + ]; + + patches = [ + # These patches make soh look inside the nix store for data files (the controller database and the OTRs) + ./lus-install-paths.patch + ./soh-misc-otr-patches.patch + ]; + + cmakeFlags = [ + "-DCMAKE_INSTALL_PREFIX=${placeholder "out"}/lib" + ]; + + dontAddPrefix = true; + + # Linking fails without this + hardeningDisable = [ "format" ]; + + postBuild = '' + cp ${gamecontrollerdb} ${gamecontrollerdb.name} + + pushd ../OTRExporter + ${lib.optionalString oot.enable "python3 ./extract_assets.py -z ../build/ZAPD/ZAPD.out ${oot.rom}"} + ${lib.optionalString ootMq.enable "python3 ./extract_assets.py -z ../build/ZAPD/ZAPD.out ${ootMq.rom}"} + popd + ''; + + preInstall = '' + # Cmake likes it here for its install paths + cp ../OTRExporter/soh.otr .. + ''; + + postInstall = '' + mkdir -p $out/bin + + # Copy the extracted assets, required to be in the same directory as the executable + ${lib.optionalString oot.enable "cp ../OTRExporter/oot.otr $out/lib"} + ${lib.optionalString ootMq.enable "cp ../OTRExporter/oot-mq.otr $out/lib"} + + ln -s $out/lib/soh.elf $out/bin/soh + ''; + + desktopItems = [ + (makeDesktopItem { + name = "soh"; + icon = "soh"; + exec = "soh"; + genericName = "Ship of Harkinian"; + desktopName = "soh"; + categories = [ "Game" ]; + }) + ]; + + meta = with lib; { + homepage = "https://github.com/HarbourMasters/Shipwright"; + description = "A PC port of Ocarina of Time with modern controls, widescreen, high-resolution, and more"; + longDescription = '' + An PC port of Ocarina of Time with modern controls, widescreen, high-resolution and more, based off of decompilation. + Note that you must supply an OoT rom yourself to use this package because propietary assets are extracted from it. + + You can change the game variant like this: + shipwright.override { oot.enable = false; ootMq.enable = true } + + The default ROM variants for Oot and OotMq are debug and debug-mq respectively. + If you have a pal-gc rom, you should override like this: + shipwright.override { oot = { enable = true; variant = "pal-gc"; rom = path/to/oot-pal-gc.z64; } } + + The supported Oot variants are: + - debug: Ocarina of Time Debug PAL GC (not Master Quest) + - pal-gc: Ocarina of Time PAL GameCube (may lead to crashes and instability) + + The supported OotMq variants are: + - debug-mq: Ocarina of Time Debug PAL GC MQ (Dungeons will be Master Quest) + - debug-mq-alt: Alternate ROM, not produced by decompilation. + ''; + mainProgram = "soh"; + platforms = [ "x86_64-linux" ]; + maintainers = with maintainers; [ ivar j0lol ]; + license = with licenses; [ + # OTRExporter, OTRGui, ZAPDTR, libultraship + mit + # Ship of Harkinian itself + unfree + ]; + }; +} diff --git a/pkgs/games/shipwright/lus-install-paths.patch b/pkgs/games/shipwright/lus-install-paths.patch new file mode 100644 index 000000000000..c14ecccfed0f --- /dev/null +++ b/pkgs/games/shipwright/lus-install-paths.patch @@ -0,0 +1,146 @@ +Submodule libultraship contains modified content +diff --git a/libultraship/src/CMakeLists.txt b/libultraship/src/CMakeLists.txt +index f95c3c9..5b967b9 100644 +--- a/libultraship/src/CMakeLists.txt ++++ b/libultraship/src/CMakeLists.txt +@@ -74,7 +74,10 @@ target_sources(libultraship PRIVATE ${Source_Files__Controller}) + + #=================== Core =================== + ++configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/install_config.h.in ${CMAKE_BINARY_DIR}/install_config.h @ONLY) ++ + set(Source_Files__Core ++ ${CMAKE_BINARY_DIR}/install_config.h + ${CMAKE_CURRENT_SOURCE_DIR}/core/Window.h + ${CMAKE_CURRENT_SOURCE_DIR}/core/Window.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/core/ConsoleVariable.h +@@ -329,7 +332,7 @@ endif() + #=================== Packages & Includes =================== + + target_include_directories(libultraship +- PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../extern ++ PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../extern ${CMAKE_BINARY_DIR} + PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} ${INCLUDE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/../extern/spdlog/include ${CMAKE_CURRENT_SOURCE_DIR}/../extern/stb + ) + +diff --git a/libultraship/src/core/Context.cpp b/libultraship/src/core/Context.cpp +index 776333e..fa546e6 100644 +--- a/libultraship/src/core/Context.cpp ++++ b/libultraship/src/core/Context.cpp +@@ -14,6 +14,7 @@ + #elif defined(__WIIU__) + #include "port/wiiu/WiiUImpl.h" + #endif ++#include "install_config.h" + + namespace LUS { + std::weak_ptr Context::mContext; +@@ -281,6 +282,18 @@ std::string Context::GetShortName() { + } + + std::string Context::GetAppBundlePath() { ++#ifdef CMAKE_INSTALL_PREFIX ++ static const std::string fpath = CMAKE_INSTALL_PREFIX; ++ static int exists = -1; ++ ++ if (exists == -1) { ++ exists = fpath.size() > 0 && std::filesystem::is_directory(fpath); ++ } ++ ++ if (exists) { ++ return fpath; ++ } ++#else + #ifdef __APPLE__ + FolderManager folderManager; + return folderManager.getMainBundlePath(); +@@ -291,6 +304,7 @@ std::string Context::GetAppBundlePath() { + if (fpath != NULL) { + return std::string(fpath); + } ++#endif + #endif + + return "."; +@@ -304,6 +318,13 @@ std::string Context::GetAppDirectoryPath() { + } + #endif + ++ char *prefpath = SDL_GetPrefPath(NULL, "soh"); ++ if (prefpath != NULL) { ++ std::string ret(prefpath); ++ SDL_free(prefpath); ++ return ret; ++ } ++ + return "."; + } + +@@ -315,7 +336,24 @@ std::string Context::GetPathRelativeToAppDirectory(const char* path) { + return GetAppDirectoryPath() + "/" + path; + } + ++std::string Context::FindFileFromAllAppDirectories(const char* path) { ++ std::string fpath; ++ ++ // app configuration dir (eg. ~/.local/share) ++ fpath = GetPathRelativeToAppDirectory(path); ++ if (std::filesystem::exists(fpath)) { ++ return fpath; ++ } ++ // app install dir (eg. /usr/) ++ fpath = GetPathRelativeToAppBundle(path); ++ if (std::filesystem::exists(fpath)) { ++ return fpath; ++ } ++ // current dir ++ return "./" + std::string(path); ++} ++ + bool Context::DoesOtrFileExist() { + return mOtrFileExists; + } +-} // namespace LUS +\ No newline at end of file ++} // namespace LUS +diff --git a/libultraship/src/core/Context.h b/libultraship/src/core/Context.h +index c32f4dd..a9f1639 100644 +--- a/libultraship/src/core/Context.h ++++ b/libultraship/src/core/Context.h +@@ -26,6 +26,7 @@ class Context { + static std::string GetAppDirectoryPath(); + static std::string GetPathRelativeToAppDirectory(const char* path); + static std::string GetPathRelativeToAppBundle(const char* path); ++ static std::string FindFileFromAllAppDirectories(const char* path); + + Context(std::string name, std::string shortName); + +diff --git a/libultraship/src/core/libultra/os.cpp b/libultraship/src/core/libultra/os.cpp +index 9058fe1..7d9387e 100644 +--- a/libultraship/src/core/libultra/os.cpp ++++ b/libultraship/src/core/libultra/os.cpp +@@ -21,8 +21,8 @@ int32_t osContInit(OSMesgQueue* mq, uint8_t* controllerBits, OSContStatus* statu + } + + #ifndef __SWITCH__ +- const char* controllerDb = "gamecontrollerdb.txt"; +- int mappingsAdded = SDL_GameControllerAddMappingsFromFile(controllerDb); ++ std::string controllerDb = LUS::Context::GetPathRelativeToAppBundle("gamecontrollerdb.txt"); ++ int mappingsAdded = SDL_GameControllerAddMappingsFromFile(controllerDb.c_str()); + if (mappingsAdded >= 0) { + SPDLOG_INFO("Added SDL game controllers from \"{}\" ({})", controllerDb, mappingsAdded); + } else { +@@ -90,4 +90,4 @@ int32_t osRecvMesg(OSMesgQueue* mq, OSMesg* msg, int32_t flag) { + mq->validCount--; + return 0; + } +-} +\ No newline at end of file ++} +diff --git a/libultraship/src/install_config.h.in b/libultraship/src/install_config.h.in +new file mode 100644 +index 0000000..029753c +--- /dev/null ++++ b/libultraship/src/install_config.h.in +@@ -0,0 +1 @@ ++#cmakedefine CMAKE_INSTALL_PREFIX "@CMAKE_INSTALL_PREFIX@" diff --git a/pkgs/games/shipwright/soh-misc-otr-patches.patch b/pkgs/games/shipwright/soh-misc-otr-patches.patch new file mode 100644 index 000000000000..2be31092e285 --- /dev/null +++ b/pkgs/games/shipwright/soh-misc-otr-patches.patch @@ -0,0 +1,119 @@ +diff --git a/soh/soh/Extractor/Extract.cpp b/soh/soh/Extractor/Extract.cpp +index a9ddc4f4..f6d45fe2 100644 +--- a/soh/soh/Extractor/Extract.cpp ++++ b/soh/soh/Extractor/Extract.cpp +@@ -490,28 +490,27 @@ const char* Extractor::GetZapdVerStr() const { + + extern "C" int zapd_main(int argc, char** argv); + +-bool Extractor::CallZapd() { ++bool Extractor::CallZapd(std::string &assetPath) { + constexpr int argc = 16; +- char xmlPath[100]; +- char confPath[100]; + std::array argv; + const char* version = GetZapdVerStr(); + +- snprintf(xmlPath, 100, "assets/extractor/xmls/%s", version); +- snprintf(confPath, 100, "assets/extractor/Config_%s.xml", version); ++ std::string xmlPath = assetPath + "/assets/extractor/xmls/" + version; ++ std::string confPath = assetPath + "/assets/extractor/Config_" + version + ".xml"; ++ std::string fileListsPath = assetPath + "/assets/extractor/filelists"; + + argv[0] = "ZAPD"; + argv[1] = "ed"; + argv[2] = "-i"; +- argv[3] = xmlPath; ++ argv[3] = xmlPath.c_str(); + argv[4] = "-b"; + argv[5] = mCurrentRomPath.c_str(); + argv[6] = "-fl"; +- argv[7] = "assets/extractor/filelists"; ++ argv[7] = fileListsPath.c_str(); + argv[8] = "-gsf"; +- argv[9] = "1"; ++ argv[9] = "0"; + argv[10] = "-rconf"; +- argv[11] = confPath; ++ argv[11] = confPath.c_str(); + argv[12] = "-se"; + argv[13] = "OTR"; + argv[14] = "--otrfile"; +diff --git a/soh/soh/Extractor/Extract.h b/soh/soh/Extractor/Extract.h +index e4eb2e5b..3c95b025 100644 +--- a/soh/soh/Extractor/Extract.h ++++ b/soh/soh/Extractor/Extract.h +@@ -57,7 +57,7 @@ class Extractor { + bool IsMasterQuest() const; + + bool Run(RomSearchMode searchMode = RomSearchMode::Both); +- bool CallZapd(); ++ bool CallZapd(std::string& assetPath); + const char* GetZapdStr(); + }; + #endif +diff --git a/soh/soh/OTRGlobals.cpp b/soh/soh/OTRGlobals.cpp +index d192de6a..cc516085 100644 +--- a/soh/soh/OTRGlobals.cpp ++++ b/soh/soh/OTRGlobals.cpp +@@ -201,11 +201,11 @@ const char* constCameraStrings[] = { + + OTRGlobals::OTRGlobals() { + std::vector OTRFiles; +- std::string mqPath = LUS::Context::GetPathRelativeToAppDirectory("oot-mq.otr"); ++ std::string mqPath = LUS::Context::FindFileFromAllAppDirectories("oot-mq.otr"); + if (std::filesystem::exists(mqPath)) { + OTRFiles.push_back(mqPath); + } +- std::string ootPath = LUS::Context::GetPathRelativeToAppDirectory("oot.otr"); ++ std::string ootPath = LUS::Context::FindFileFromAllAppDirectories("oot.otr"); + if (std::filesystem::exists(ootPath)) { + OTRFiles.push_back(ootPath); + } +@@ -213,7 +213,7 @@ OTRGlobals::OTRGlobals() { + if (std::filesystem::exists(sohOtrPath)) { + OTRFiles.push_back(sohOtrPath); + } +- std::string patchesPath = LUS::Context::GetPathRelativeToAppDirectory("mods"); ++ std::string patchesPath = LUS::Context::FindFileFromAllAppDirectories("mods"); + if (patchesPath.length() > 0 && std::filesystem::exists(patchesPath)) { + if (std::filesystem::is_directory(patchesPath)) { + for (const auto& p : std::filesystem::recursive_directory_iterator(patchesPath)) { +@@ -709,8 +709,10 @@ extern "C" void OTRExtScanner() { + + extern "C" void InitOTR() { + #if not defined (__SWITCH__) && not defined(__WIIU__) +- if (!std::filesystem::exists(LUS::Context::GetPathRelativeToAppDirectory("oot-mq.otr")) && +- !std::filesystem::exists(LUS::Context::GetPathRelativeToAppDirectory("oot.otr"))){ ++ if (!std::filesystem::exists(LUS::Context::FindFileFromAllAppDirectories("oot-mq.otr")) && ++ !std::filesystem::exists(LUS::Context::FindFileFromAllAppDirectories("oot.otr"))){ ++ std::string exporterAssetPath = LUS::Context::GetAppBundlePath(); ++ + bool generatedOtrIsMQ = false; + if (Extractor::ShowYesNoBox("No OTR Files", "No OTR files found. Generate one now?") == IDYES) { + Extractor extract; +@@ -718,7 +720,7 @@ extern "C" void InitOTR() { + Extractor::ShowErrorBox("Error", "An error occured, no OTR file was generated. Exiting..."); + exit(1); + } +- extract.CallZapd(); ++ extract.CallZapd(exporterAssetPath); + generatedOtrIsMQ = extract.IsMasterQuest(); + } else { + exit(1); +@@ -728,7 +730,7 @@ extern "C" void InitOTR() { + if (!extract.Run(generatedOtrIsMQ ? RomSearchMode::Vanilla : RomSearchMode::MQ)) { + Extractor::ShowErrorBox("Error", "An error occured, an OTR file may have been generated by a different step. Continuing..."); + } else { +- extract.CallZapd(); ++ extract.CallZapd(exporterAssetPath); + } + } + } +@@ -2018,4 +2020,4 @@ extern "C" void Gfx_RegisterBlendedTexture(const char* name, u8* mask, u8* repla + + extern "C" void SaveManager_ThreadPoolWait() { + SaveManager::Instance->ThreadPoolWait(); +-} +\ No newline at end of file ++} diff --git a/pkgs/misc/urbit/default.nix b/pkgs/misc/urbit/default.nix index 3c78544f9bd9..4d24b97f7d89 100644 --- a/pkgs/misc/urbit/default.nix +++ b/pkgs/misc/urbit/default.nix @@ -10,15 +10,15 @@ let in stdenv.mkDerivation rec { pname = "urbit"; - version = "2.8"; + version = "2.9"; src = fetchzip { url = "https://github.com/urbit/vere/releases/download/vere-v${version}/${platform}.tgz"; sha256 = { - x86_64-linux = "sha256-reU8i7++VdAiuH36AyfhZhAJPnE4t0nBnYvWoglrKwA="; - aarch64-linux = "sha256-l3190BUIeJVbQI1tfP8W6WHw6WyfoYpI8rnjbgevznk="; - x86_64-darwin = "sha256-tsBuIcbWiK1oyu9UzHfwJe/nsVrLWXzoX/eIHyg4uaU="; - aarch64-darwin = "sha256-f+C5DB+IeN6ZcZ4oES4dc3LQ4pwDDszffu/U/KFwqmg="; + x86_64-linux = "sha256-CX3KoB5NNZBfikARh0ikeKQocaGIhbWcZsTFWOFk5oI="; + aarch64-linux = "sha256-PHVh4ktUe2HIPyudiwEUNuAfwOu4yCI9lxgbjrIllSU="; + x86_64-darwin = "sha256-lACh1UYtGrZUw+dtR0Ye6zqdtgp7llV9EkUoGOi+V4c="; + aarch64-darwin = "sha256-IRVMIriFVEsv69yUCxsiUaEgIlc618tf9dHiz76D+ug="; }.${stdenv.hostPlatform.system} or (throw "unsupported system ${stdenv.hostPlatform.system}"); }; diff --git a/pkgs/servers/home-assistant/component-packages.nix b/pkgs/servers/home-assistant/component-packages.nix index 7bebac1b445a..029b770560bf 100644 --- a/pkgs/servers/home-assistant/component-packages.nix +++ b/pkgs/servers/home-assistant/component-packages.nix @@ -3500,10 +3500,11 @@ psutil-home-assistant pyserial pyudev + sensirion-ble sqlalchemy webrtcvad zeroconf - ]; # missing inputs: sensirion-ble + ]; "sensor" = ps: with ps; [ fnv-hash-fast psutil-home-assistant @@ -5280,6 +5281,7 @@ "sense" "senseme" "sensibo" + "sensirion_ble" "sensor" "sensorpro" "sensorpush" diff --git a/pkgs/servers/matrix-synapse/default.nix b/pkgs/servers/matrix-synapse/default.nix index d5c7acb39244..74d27cb29521 100644 --- a/pkgs/servers/matrix-synapse/default.nix +++ b/pkgs/servers/matrix-synapse/default.nix @@ -12,20 +12,20 @@ in with python3.pkgs; buildPythonApplication rec { pname = "matrix-synapse"; - version = "1.85.1"; + version = "1.85.2"; format = "pyproject"; src = fetchFromGitHub { owner = "matrix-org"; repo = "synapse"; rev = "v${version}"; - hash = "sha256-I/InjuTJOwYXw98qW7zT+fTnyLUo96xsVkFGSL+x+5k="; + hash = "sha256-pFafBsisBPfpDnFYWcimUuBgfFVPZzLna3yHeqIBAAE="; }; cargoDeps = rustPlatform.fetchCargoTarball { inherit src; name = "${pname}-${version}"; - hash = "sha256-KE56crjZDM1cJnVS7MvObIQ7NvH7+fUm1Mlb6HcT9+U="; + hash = "sha256-dnno+5Ma0YNYpmj3oZ5UG22uAanKwVT67BwQW+mHoFc="; }; postPatch = '' diff --git a/pkgs/tools/admin/trivy/default.nix b/pkgs/tools/admin/trivy/default.nix index e87927481a37..ca8dabc86191 100644 --- a/pkgs/tools/admin/trivy/default.nix +++ b/pkgs/tools/admin/trivy/default.nix @@ -5,17 +5,17 @@ buildGoModule rec { pname = "trivy"; - version = "0.42.0"; + version = "0.42.1"; src = fetchFromGitHub { owner = "aquasecurity"; repo = pname; rev = "v${version}"; - sha256 = "sha256-TmtQ7rs77W6YFjh3y9kvIZabcGT6U/SCr5Hg6pa7K+s="; + sha256 = "sha256-QEjhnZmrmVzNG1/Zj8z/76v0Fb1N0rMYlvGb2pid2VM="; }; # hash missmatch on across linux and darwin proxyVendor = true; - vendorHash = "sha256-4YUJ4HfbAvYt/QtI9wmh8326T4avIXCtPkICo4lEpqQ="; + vendorHash = "sha256-bEmp3Fq9Zop3YCbZH4lOG71osY0P71xuhpIPOUSnHSY="; excludedPackages = [ "magefiles" "misc" ]; diff --git a/pkgs/tools/misc/nitch/default.nix b/pkgs/tools/misc/nitch/default.nix index e06b7809a8fb..a050b4133e30 100644 --- a/pkgs/tools/misc/nitch/default.nix +++ b/pkgs/tools/misc/nitch/default.nix @@ -4,7 +4,7 @@ nimPackages.buildNimPackage rec { version = "0.1.6"; nimBinOnly = true; src = fetchFromGitHub { - owner = "unxsh"; + owner = "ssleert"; repo = "nitch"; rev = "42ad6899931dd5e0cec7b021c2b7e383fcc891f3"; hash = "sha256-QI7CbP0lvvjD+g29FR/YJjuZboZ+PoHynsNbpYC9SvE="; @@ -15,6 +15,10 @@ nimPackages.buildNimPackage rec { url = "https://github.com/unxsh/nitch/commit/6831cf96144f58c4da298a0bc9b50d33056f6c08.patch"; sha256 = "sha256-uZUzUBLHBsssNqDxZ0NuTRMN9/gBxIlIiGgQkqCqEFc="; }) + (fetchpatch { + url = "https://github.com/ssleert/nitch/commit/ff10dea47dbc4d9736bd839b87869f53166cf395.patch"; + hash = "sha256-n7JtI1Td0xMqhuScnMvxTkbY2I+l+FcUTz7aytxFasE="; + }) ]; meta = with lib; { @@ -23,6 +27,5 @@ nimPackages.buildNimPackage rec { license = licenses.mit; platforms = platforms.linux; maintainers = with maintainers; [ michaelBelsanti ]; - mainProgram = "nitch"; }; } diff --git a/pkgs/tools/misc/phrase-cli/default.nix b/pkgs/tools/misc/phrase-cli/default.nix index 2a85535b29aa..c90981475bda 100644 --- a/pkgs/tools/misc/phrase-cli/default.nix +++ b/pkgs/tools/misc/phrase-cli/default.nix @@ -2,13 +2,13 @@ buildGoModule rec { pname = "phrase-cli"; - version = "2.8.0"; + version = "2.8.2"; src = fetchFromGitHub { owner = "phrase"; repo = "phrase-cli"; rev = version; - sha256 = "sha256-Gima27E77iJEgOVY49Y2s9kQkd+rnzS359ru5NAyGik="; + sha256 = "sha256-jsN7JouIyrFd//+kDAcEEsXiGLZx8e5jQsiNVQuDiQg="; }; vendorHash = "sha256-a0QA/1vUryAnO0Nr+m8frxtpnSHBOSOP1pq+BORTIJw="; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 91ba8637c4ab..c67d4fb18d51 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -36221,6 +36221,8 @@ with pkgs; keeperrl = callPackage ../games/keeperrl { }; + shipwright = callPackage ../games/shipwright { }; + ### GAMES/DOOM-PORTS dhewm3 = callPackage ../games/doom-ports/dhewm3 { }; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index c394e42aada2..e44b27d24d48 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -11040,6 +11040,8 @@ self: super: with self; { sense-energy = callPackage ../development/python-modules/sense-energy { }; + sensirion-ble = callPackage ../development/python-modules/sensirion-ble { }; + sensor-state-data = callPackage ../development/python-modules/sensor-state-data { }; sensorpro-ble = callPackage ../development/python-modules/sensorpro-ble { };