From e063d084de472cf0f7ab19d6785242970102a653 Mon Sep 17 00:00:00 2001 From: Vincent Laporte Date: Tue, 27 Aug 2019 05:28:29 +0000 Subject: [PATCH 1/2] =?UTF-8?q?qarte:=20use=20qt5=E2=80=99s=20mkDerivation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit See #65399 --- pkgs/applications/video/qarte/default.nix | 23 ++++++++++++++--------- pkgs/top-level/all-packages.nix | 2 +- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/pkgs/applications/video/qarte/default.nix b/pkgs/applications/video/qarte/default.nix index f0c3776a4336..bd70c84175ce 100644 --- a/pkgs/applications/video/qarte/default.nix +++ b/pkgs/applications/video/qarte/default.nix @@ -1,8 +1,8 @@ -{ stdenv, fetchbzr, python3, rtmpdump, makeWrapper }: +{ mkDerivation, lib, fetchbzr, python3, rtmpdump }: let - pythonEnv = python3.withPackages (ps: with ps; [ pyqt5 sip ]); -in stdenv.mkDerivation { + pythonEnv = python3.withPackages (ps: with ps; [ pyqt5 ]); +in mkDerivation { name = "qarte-4.6.0"; src = fetchbzr { url = http://bazaar.launchpad.net/~vincent-vandevyvre/qarte/qarte-4; @@ -10,28 +10,33 @@ in stdenv.mkDerivation { sha256 = "0v4zpj8w67ydvnmanxbl8pwvn0cfv70c0mlw36a1r4n0rvgxffcn"; }; - buildInputs = [ makeWrapper pythonEnv ]; + buildInputs = [ pythonEnv ]; installPhase = '' + runHook preInstall mkdir -p $out/bin mv qarte $out/bin/ substituteInPlace $out/bin/qarte \ --replace '/usr/share' "$out/share" - wrapProgram $out/bin/qarte \ - --prefix PATH : "${rtmpdump}/bin" mkdir -p $out/share/man/man1/ mv qarte.1 $out/share/man/man1/ mkdir -p $out/share/qarte mv * $out/share/qarte/ + runHook postInstall + ''; + + postFixup = '' + wrapQtApp $out/bin/qarte \ + --prefix PATH : ${rtmpdump}/bin ''; meta = { homepage = https://launchpad.net/qarte; description = "A recorder for Arte TV Guide and Arte Concert"; - license = stdenv.lib.licenses.gpl3; - maintainers = with stdenv.lib.maintainers; [ vbgl ]; - platforms = stdenv.lib.platforms.linux; + license = lib.licenses.gpl3; + maintainers = with lib.maintainers; [ vbgl ]; + platforms = lib.platforms.linux; }; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index bbe2e49bc8f7..64b03b42315b 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5689,7 +5689,7 @@ in openmodelica = callPackage ../applications/science/misc/openmodelica { }; - qarte = callPackage ../applications/video/qarte { }; + qarte = libsForQt5.callPackage ../applications/video/qarte { }; qlcplus = libsForQt5.callPackage ../applications/misc/qlcplus { }; From ef15478313dccf73684d46816d20752ba5b18cf4 Mon Sep 17 00:00:00 2001 From: Vincent Laporte Date: Tue, 27 Aug 2019 05:39:43 +0000 Subject: [PATCH 2/2] qarte: use pyqt5_with_qtmultimedia Otherwise, qarte fails at run-time with: > from PyQt5.QtMultimedia import QMediaPlayer > ModuleNotFoundError: No module named 'PyQt5.QtMultimedia' --- pkgs/applications/video/qarte/default.nix | 2 +- pkgs/development/python-modules/pyqt/5.x.nix | 3 +++ pkgs/top-level/python-packages.nix | 2 ++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/pkgs/applications/video/qarte/default.nix b/pkgs/applications/video/qarte/default.nix index bd70c84175ce..cd6416032da2 100644 --- a/pkgs/applications/video/qarte/default.nix +++ b/pkgs/applications/video/qarte/default.nix @@ -1,7 +1,7 @@ { mkDerivation, lib, fetchbzr, python3, rtmpdump }: let - pythonEnv = python3.withPackages (ps: with ps; [ pyqt5 ]); + pythonEnv = python3.withPackages (ps: with ps; [ pyqt5_with_qtmultimedia ]); in mkDerivation { name = "qarte-4.6.0"; src = fetchbzr { diff --git a/pkgs/development/python-modules/pyqt/5.x.nix b/pkgs/development/python-modules/pyqt/5.x.nix index 5791299bdc12..f3578459b9d0 100644 --- a/pkgs/development/python-modules/pyqt/5.x.nix +++ b/pkgs/development/python-modules/pyqt/5.x.nix @@ -6,6 +6,7 @@ , qtdeclarative , qtwebchannel , withConnectivity ? false, qtconnectivity +, withMultimedia ? false, qtmultimedia , withWebKit ? false, qtwebkit , withWebSockets ? false, qtwebsockets }: @@ -50,6 +51,7 @@ in buildPythonPackage rec { qtwebchannel ] ++ lib.optional withConnectivity qtconnectivity + ++ lib.optional withMultimedia qtmultimedia ++ lib.optional withWebKit qtwebkit ++ lib.optional withWebSockets qtwebsockets ; @@ -121,6 +123,7 @@ in buildPythonPackage rec { ] ++ lib.optional withWebSockets "PyQt5.QtWebSockets" ++ lib.optional withWebKit "PyQt5.QtWebKit" + ++ lib.optional withMultimedia "PyQt5.QtMultimedia" ++ lib.optional withConnectivity "PyQt5.QtConnectivity" ; imports = lib.concatMapStrings (module: "import ${module};") modules; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 008c624c94ac..79d4ee0a5625 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -984,6 +984,8 @@ in { */ pyqt5_with_qtwebkit = self.pyqt5.override { withWebKit = true; }; + pyqt5_with_qtmultimedia = self.pyqt5.override { withMultimedia = true; }; + pyqtwebengine = pkgs.libsForQt5.callPackage ../development/python-modules/pyqtwebengine { pythonPackages = self; };