From 227c4c8b0b0d5e4f3d992fec4c5377d2fd6f75f5 Mon Sep 17 00:00:00 2001 From: jD91mZM2 Date: Fri, 15 Nov 2019 18:31:15 +0100 Subject: [PATCH] multibootusb: Fix QT and refactor Also removed myself as maintainer because I don't care about this software anymore. --- .../misc/multibootusb/default.nix | 72 ++++++++++++------- pkgs/top-level/all-packages.nix | 2 +- 2 files changed, 48 insertions(+), 26 deletions(-) diff --git a/pkgs/applications/misc/multibootusb/default.nix b/pkgs/applications/misc/multibootusb/default.nix index a2678d6067f9..142014832943 100644 --- a/pkgs/applications/misc/multibootusb/default.nix +++ b/pkgs/applications/misc/multibootusb/default.nix @@ -1,21 +1,33 @@ -{ stdenv, python36Packages, fetchFromGitHub, libxcb, mtools, p7zip, parted, procps, utillinux, qt5, runtimeShell }: +{ fetchFromGitHub, libxcb, mtools, p7zip, parted, procps, + python36Packages, qt5, runtimeShell, stdenv, utillinux, wrapQtAppsHook }: + +# Note: Multibootusb is tricky to maintain. It relies on the +# $PYTHONPATH variable containing some of their code, so that +# something like: +# +# from scripts import config +# +# works. It also relies on the current directory to find some runtime +# resources thanks to a use of __file__. +# +# https://github.com/mbusb/multibootusb/blob/0d34d70c3868f1d7695cfd141141b17c075de967/scripts/osdriver.py#L59 + python36Packages.buildPythonApplication rec { pname = "multibootusb"; name = "${pname}-${version}"; version = "9.2.0"; + nativeBuildInputs = [ + wrapQtAppsHook + ]; + buildInputs = [ - python36Packages.dbus-python - python36Packages.pyqt5 - python36Packages.pytest-shutil - python36Packages.python - python36Packages.pyudev - python36Packages.six libxcb mtools p7zip parted procps + python36Packages.python qt5.full utillinux ]; @@ -28,32 +40,42 @@ python36Packages.buildPythonApplication rec { sha256 = "0wlan0cp6c2i0nahixgpmkm0h4n518gj8rc515d579pqqp91p2h3"; }; - # Skip the fixup stage where stuff is shrinked (can't shrink text files) - phases = [ "unpackPhase" "installPhase" ]; + # Tests can't run inside the NixOS sandbox + # "Failed to connect to socket /run/dbus/system_bus_socket: No such file or directory" + doCheck = false; - installPhase = '' - share="$out/share/${pname}" - mkdir -p "$share" - cp -r data "$share/data" - cp -r scripts "$share/scripts" - cp "${pname}" "$share/${pname}" + pythonPath = [ + python36Packages.dbus-python + python36Packages.pyqt5 + python36Packages.pytest-shutil + python36Packages.pyudev + python36Packages.six + ]; - mkdir "$out/bin" - cat > "$out/bin/${pname}" <