diff --git a/pkgs/development/python-modules/pyside2-tools/default.nix b/pkgs/development/python-modules/pyside2-tools/default.nix index a96ea5d32ff8..9f1f94ffecbb 100644 --- a/pkgs/development/python-modules/pyside2-tools/default.nix +++ b/pkgs/development/python-modules/pyside2-tools/default.nix @@ -6,6 +6,13 @@ stdenv.mkDerivation { inherit (pyside2) version src; + patches = [ + # Upstream has a crazy build system only geared towards producing binary + # wheels distributed via pypi. For this, they copy the `uic` and `rcc` + # binaries to the wheel. + ./remove_hacky_binary_copying.patch + ]; + postPatch = '' cd sources/pyside2-tools ''; @@ -18,8 +25,16 @@ stdenv.mkDerivation { "-DBUILD_TESTS=OFF" ]; + # The upstream build system consists of a `setup.py` whichs builds three + # different python libraries and calls cmake as a subprocess. We call cmake + # directly because that's easier to get working. However, the `setup.py` + # build also creates a few wrapper scripts, which we replicate here: postInstall = '' rm $out/bin/pyside_tool.py + + for tool in uic rcc; do + makeWrapper "$(command -v $tool)" $out/bin/pyside2-$tool --add-flags "-g python" + done ''; postFixup = '' diff --git a/pkgs/development/python-modules/pyside2-tools/remove_hacky_binary_copying.patch b/pkgs/development/python-modules/pyside2-tools/remove_hacky_binary_copying.patch new file mode 100644 index 000000000000..19dd8aaf101c --- /dev/null +++ b/pkgs/development/python-modules/pyside2-tools/remove_hacky_binary_copying.patch @@ -0,0 +1,50 @@ +--- pyside-setup-opensource-src-5.14.2/sources/pyside2-tools/CMakeLists.txt~ 2020-07-17 10:51:14.498291075 +0200 ++++ pyside-setup-opensource-src-5.14.2/sources/pyside2-tools/CMakeLists.txt 2020-07-17 10:52:20.165336508 +0200 +@@ -46,47 +46,6 @@ + set(EXE_EXT "") + endif() + +-set(TOOLS_PATH "${_qt5Core_install_prefix}/bin") +-set(UIC_PATH "${TOOLS_PATH}/uic${EXE_EXT}") +-set(RCC_PATH "${TOOLS_PATH}/rcc${EXE_EXT}") +-if (APPLE) +- set(DESIGNER_PATH "${TOOLS_PATH}/Designer.app") +-else() +- set(DESIGNER_PATH "${TOOLS_PATH}/designer${EXE_EXT}") +-endif() +- +-install(FILES "${UIC_PATH}" +- DESTINATION bin +- PERMISSIONS +- OWNER_EXECUTE OWNER_WRITE OWNER_READ +- GROUP_EXECUTE GROUP_READ +- WORLD_EXECUTE WORLD_READ) +- +-install(FILES "${RCC_PATH}" +- DESTINATION bin +- PERMISSIONS +- OWNER_EXECUTE OWNER_WRITE OWNER_READ +- GROUP_EXECUTE GROUP_READ +- WORLD_EXECUTE WORLD_READ) +- +-if (EXISTS ${DESIGNER_PATH}) +- if (APPLE) +- install(DIRECTORY "${DESIGNER_PATH}" +- DESTINATION bin +- FILE_PERMISSIONS +- OWNER_EXECUTE OWNER_WRITE OWNER_READ +- GROUP_EXECUTE GROUP_READ +- WORLD_EXECUTE WORLD_READ) +- else() +- install(FILES "${DESIGNER_PATH}" +- DESTINATION bin +- PERMISSIONS +- OWNER_EXECUTE OWNER_WRITE OWNER_READ +- GROUP_EXECUTE GROUP_READ +- WORLD_EXECUTE WORLD_READ) +- endif() +-endif() +- + configure_file("${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake" + IMMEDIATE @ONLY) diff --git a/pkgs/development/python-modules/pyside2/default.nix b/pkgs/development/python-modules/pyside2/default.nix index e12db4d2e883..f9d07be5796b 100644 --- a/pkgs/development/python-modules/pyside2/default.nix +++ b/pkgs/development/python-modules/pyside2/default.nix @@ -3,11 +3,11 @@ stdenv.mkDerivation rec { pname = "pyside2"; - version = "5.12.6"; + version = "5.14.2"; src = fetchurl { - url = "https://download.qt.io/official_releases/QtForPython/pyside2/PySide2-${version}-src/pyside-setup-everywhere-src-${version}.tar.xz"; - sha256 = "1n45l6xxyxs6cfp2l4rp8qs1c2fyfwyrdxa4qcpwfsqsi51rydsk"; + url = "https://download.qt.io/official_releases/QtForPython/pyside2/PySide2-${version}-src/pyside-setup-opensource-src-${version}.tar.xz"; + sha256 = "1cwjpv8qmjksi7cj4naw54h2afphw44chrf1pmfjamyyj8vz6ykw"; }; patches = [ diff --git a/pkgs/development/python-modules/pyside2/dont_ignore_optional_modules.patch b/pkgs/development/python-modules/pyside2/dont_ignore_optional_modules.patch index 681e16a2bfd3..c9f17bea71b4 100644 --- a/pkgs/development/python-modules/pyside2/dont_ignore_optional_modules.patch +++ b/pkgs/development/python-modules/pyside2/dont_ignore_optional_modules.patch @@ -1,6 +1,6 @@ ---- pyside-setup-everywhere-src-5.12.3/sources/pyside2/CMakeLists.txt~ 2019-06-15 19:07:48.368704430 +0200 -+++ pyside-setup-everywhere-src-5.12.3/sources/pyside2/CMakeLists.txt 2019-06-15 19:08:04.429489908 +0200 -@@ -219,7 +219,7 @@ +--- pyside-setup-opensource-src-5.14.2/sources/cmake_helpers/helpers.cmake~ 2020-07-17 10:29:30.555285529 +0200 ++++ pyside-setup-opensource-src-5.14.2/sources/cmake_helpers/helpers.cmake 2020-07-17 10:29:49.817003683 +0200 +@@ -139,7 +139,7 @@ # If the module was found, and also the module path is the same as the # Qt5Core base path, we will generate the list with the modules to be installed set(looked_in_message ". Looked in: ${${_name_dir}}")