From 7a6755b91ac392a7cc8d1afb9163da77a8fb986b Mon Sep 17 00:00:00 2001 From: Mats Date: Thu, 17 Nov 2022 20:05:42 +0100 Subject: [PATCH 1/4] pythonPackages.weakrefmethod: init at 1.0.3 --- .../python-modules/weakrefmethod/default.nix | 24 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 ++ 2 files changed, 26 insertions(+) create mode 100644 pkgs/development/python-modules/weakrefmethod/default.nix diff --git a/pkgs/development/python-modules/weakrefmethod/default.nix b/pkgs/development/python-modules/weakrefmethod/default.nix new file mode 100644 index 000000000000..66c0aef2eb9f --- /dev/null +++ b/pkgs/development/python-modules/weakrefmethod/default.nix @@ -0,0 +1,24 @@ +{ stdenv, lib, buildPythonPackage, fetchPypi, unittest2 }: + +buildPythonPackage rec { + pname = "weakrefmethod"; + version = "1.0.3"; + + src = fetchPypi { + inherit pname version; + sha256 = "sha256-N7wfu1V1rPghctTre2/EQS131aHXDf8sH4pFdDAc2mY="; + }; + + checkInputs = [ + unittest2 + ]; + + pythonImportsCheck = [ "weakrefmethod" ]; + + meta = with lib; { + description = "A WeakMethod class for storing bound methods using weak references"; + homepage = "https://github.com/twang817/weakrefmethod"; + license = licenses.psfl; + maintainers = with maintainers; [ myaats ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 8f23c6a7fa03..d7c7afc756f8 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -11857,6 +11857,8 @@ self: super: with self; { wcwidth = callPackage ../development/python-modules/wcwidth { }; + weakrefmethod = callPackage ../development/python-modules/weakrefmethod { }; + weasyprint = callPackage ../development/python-modules/weasyprint { }; web3 = callPackage ../development/python-modules/web3 { }; From c7094d2c9c0a33782f6e7aa9abed6ea9fbb11bde Mon Sep 17 00:00:00 2001 From: Mats Date: Thu, 17 Nov 2022 20:11:11 +0100 Subject: [PATCH 2/4] pythonPackages.signalslot: init at 0.1.2 --- .../python-modules/signalslot/default.nix | 48 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 50 insertions(+) create mode 100644 pkgs/development/python-modules/signalslot/default.nix diff --git a/pkgs/development/python-modules/signalslot/default.nix b/pkgs/development/python-modules/signalslot/default.nix new file mode 100644 index 000000000000..44f1c91fc435 --- /dev/null +++ b/pkgs/development/python-modules/signalslot/default.nix @@ -0,0 +1,48 @@ +{ stdenv +, lib +, buildPythonPackage +, fetchPypi +, contexter +, eventlet +, mock +, pytestCheckHook +, six +, weakrefmethod +}: + +buildPythonPackage rec { + pname = "signalslot"; + version = "0.1.2"; + + src = fetchPypi { + inherit pname version; + sha256 = "sha256-Z26RPNau+4719e82jMhb2LyIR6EvsANI8r3+eKuw494="; + }; + + propagatedBuildInputs = [ + contexter + six + weakrefmethod + ]; + + checkInputs = [ + eventlet + mock + pytestCheckHook + ]; + + pythonImportsCheck = [ "signalslot" ]; + + postPatch = '' + substituteInPlace setup.cfg \ + --replace "--pep8 --cov" "" \ + --replace "--cov-report html" "" + ''; + + meta = with lib; { + description = "Simple Signal/Slot implementation"; + homepage = "https://github.com/numergy/signalslot"; + license = licenses.mit; + maintainers = with maintainers; [ myaats ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index d7c7afc756f8..457b686c1699 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -10225,6 +10225,8 @@ self: super: with self; { sievelib = callPackage ../development/python-modules/sievelib { }; + signalslot = callPackage ../development/python-modules/signalslot { }; + signedjson = callPackage ../development/python-modules/signedjson { }; sigrok = callPackage ../development/python-modules/sigrok { }; From 1dbbfb411ece9c61fad23025448ee14778ea8e83 Mon Sep 17 00:00:00 2001 From: Mats Date: Thu, 17 Nov 2022 20:17:21 +0100 Subject: [PATCH 3/4] maintainers: add myaats --- maintainers/maintainer-list.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index ee2014d6525b..090a4df67ebf 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -9629,6 +9629,12 @@ githubId = 43796009; name = "Max Wilson"; }; + myaats = { + email = "mats@mats.sh"; + github = "Myaats"; + githubId = 6295090; + name = "Mats"; + }; myrl = { email = "myrl.0xf@gmail.com"; github = "Myrl"; From c4e46d958cff0124c8d6626d6d5d20fae54a94d3 Mon Sep 17 00:00:00 2001 From: Mats Date: Thu, 17 Nov 2022 20:44:15 +0100 Subject: [PATCH 4/4] steamos-devkit: init at 0.20221101 --- .../tools/steamos-devkit/default.nix | 135 ++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 2 files changed, 137 insertions(+) create mode 100644 pkgs/development/tools/steamos-devkit/default.nix diff --git a/pkgs/development/tools/steamos-devkit/default.nix b/pkgs/development/tools/steamos-devkit/default.nix new file mode 100644 index 000000000000..8451f7f9898e --- /dev/null +++ b/pkgs/development/tools/steamos-devkit/default.nix @@ -0,0 +1,135 @@ +{ lib +, fetchFromGitHub +, fetchFromGitLab +, writeScript +, python3 +, copyDesktopItems +, makeDesktopItem +, pkg-config +, SDL2 +}: +let + # steamos-devkit requires a build of the unreleased pyimgui 2.0 branch, move to pythonPackages when 2.0 is released. + pyimgui = python3.pkgs.buildPythonPackage { + pname = "pyimgui"; + version = "unstable-2022-03-06"; + + src = fetchFromGitHub { + owner = "pyimgui"; + repo = "pyimgui"; + rev = "1f095af5886f424ee12f26fa93b108b6420fafa4"; # dev/version-2.0 branch + fetchSubmodules = true; + sha256 = "sha256-k070ue132m8H1Zm8bo7J7spCS5dSTGOj689ci7vJ+aw="; + }; + + nativeBuildInputs = with python3.pkgs; [ + cython + pkg-config + SDL2 + ]; + + propagatedBuildInputs = with python3.pkgs; [ + click + pyopengl + pysdl2 + ]; + + # Requires OpenGL acceleration + doCheck = false; + pythonImportsCheck = [ "imgui" ]; + }; + steamos-devkit-script = '' + #!${python3.interpreter} + import os + + # Change the cwd to avoid imgui using cwd which often is ~ to store the state, use the same location as the settings + path = os.path.expanduser(os.path.join("~", ".devkit-client-gui")) + os.makedirs(path, exist_ok=True) + os.chdir(path) + + # Workaround to get pysdl to work on wayland, remove when https://gitlab.steamos.cloud/devkit/steamos-devkit/-/issues/1 is solved. + if os.environ.get("XDG_SESSION_TYPE") == "wayland": + os.environ["SDL_VIDEODRIVER"] = "wayland" + + import devkit_client.gui2 + devkit_client.gui2.main() + ''; +in +python3.pkgs.buildPythonPackage rec { + pname = "steamos-devkit"; + version = "0.20221101"; + + src = fetchFromGitLab { + domain = "gitlab.steamos.cloud"; + owner = "devkit"; + repo = "steamos-devkit"; + rev = "v${version}"; + sha256 = "sha256-VKnfcMF3WxkvqxlhJF+5j4Hso/TZpSS4dMOmSrWagRU="; + }; + + propagatedBuildInputs = with python3.pkgs; [ + appdirs + bcrypt + cffi + cryptography + idna + ifaddr + netifaces + numpy + paramiko + pycparser + pyimgui + pynacl + pysdl2 + signalslot + six + ]; + + nativeBuildInputs = [ + copyDesktopItems + ]; + + postUnpack = '' + # Find the absolute source root to link correctly to the previous root + prevRoot=$(realpath $sourceRoot) + + # Update the source root to the devkit_client package + sourceRoot="$sourceRoot/client" + + # Link the setup script into the new source root + ln -s $prevRoot/setup/shiv-linux-setup.py $sourceRoot/setup.py + ''; + + postInstall = '' + mkdir -p $out/bin + + # These are various assets like scripts that steamos-devkit will copy to the remote device + cp -R ./devkit-utils $out/${python3.sitePackages}/devkit-utils + + # writeScript + symlink will be ignored by wrapPythonPrograms + # Copying it is undesirable too, just write it directly to a script instead + cat << EOF > $out/bin/steamos-devkit + ${steamos-devkit-script} + EOF + chmod +x $out/bin/steamos-devkit + ''; + + # There are no checks for steamos-devkit + doCheck = false; + pythonImportsCheck = [ "devkit_client" ]; + + desktopItems = [ + (makeDesktopItem { + name = "SteamOS-Devkit"; + exec = "steamos-devkit"; + desktopName = "SteamOS Devkit Client"; + }) + ]; + + meta = with lib; { + description = "SteamOS Devkit Client"; + homepage = "https://gitlab.steamos.cloud/devkit/steamos-devkit"; + license = licenses.mit; + maintainers = with maintainers; [ myaats ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 47fee83a9ae5..a8e4ffcb2744 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -25798,6 +25798,8 @@ with pkgs; statifier = callPackage ../os-specific/linux/statifier { }; + steamos-devkit = callPackage ../development/tools/steamos-devkit { }; + swiftdefaultapps = callPackage ../os-specific/darwin/swiftdefaultapps { }; sysdig = callPackage ../os-specific/linux/sysdig {