From 62b9942ca2e6a0de48ef3fad42a48c9d7785532f Mon Sep 17 00:00:00 2001 From: OPNA2608 Date: Mon, 15 Jan 2024 18:42:35 +0100 Subject: [PATCH 1/3] lomiri.lomiri-terminal-app: init at 2.0.1 --- nixos/tests/terminal-emulators.nix | 2 + ...0001-Drop-deprecated-qt5_use_modules.patch | 63 ++++++++++++++ .../lomiri-terminal-app/default.nix | 83 +++++++++++++++++++ pkgs/desktops/lomiri/default.nix | 3 + 4 files changed, 151 insertions(+) create mode 100644 pkgs/desktops/lomiri/applications/lomiri-terminal-app/0001-Drop-deprecated-qt5_use_modules.patch create mode 100644 pkgs/desktops/lomiri/applications/lomiri-terminal-app/default.nix diff --git a/nixos/tests/terminal-emulators.nix b/nixos/tests/terminal-emulators.nix index efaac03e19837..3c1188ca88c99 100644 --- a/nixos/tests/terminal-emulators.nix +++ b/nixos/tests/terminal-emulators.nix @@ -61,6 +61,8 @@ let tests = { konsole.pkg = p: p.plasma5Packages.konsole; + lomiri-terminal-app.pkg = p: p.lomiri.lomiri-terminal-app; + lxterminal.pkg = p: p.lxterminal; mate-terminal.pkg = p: p.mate.mate-terminal; diff --git a/pkgs/desktops/lomiri/applications/lomiri-terminal-app/0001-Drop-deprecated-qt5_use_modules.patch b/pkgs/desktops/lomiri/applications/lomiri-terminal-app/0001-Drop-deprecated-qt5_use_modules.patch new file mode 100644 index 0000000000000..566a8a704a815 --- /dev/null +++ b/pkgs/desktops/lomiri/applications/lomiri-terminal-app/0001-Drop-deprecated-qt5_use_modules.patch @@ -0,0 +1,63 @@ +From b02fd5f9074d449bd0a60ce18c77735643f35e00 Mon Sep 17 00:00:00 2001 +From: Puna2608 +Date: Tue, 14 Mar 2023 18:11:04 +0100 +Subject: [PATCH] Drop deprecated qt5_use_modules + +Isn't even getting included correctly here: + Unknown CMake command "qt5_use_modules". +--- + app/CMakeLists.txt | 7 ++++++- + tests/qtquicktest/CMakeLists.txt | 8 ++++++-- + 2 files changed, 12 insertions(+), 3 deletions(-) + +diff --git a/app/CMakeLists.txt b/app/CMakeLists.txt +index 3570b25..e0a7371 100644 +--- a/app/CMakeLists.txt ++++ b/app/CMakeLists.txt +@@ -1,5 +1,10 @@ + file(GLOB_RECURSE QML_SRCS *.qml *.js *.json *.png) + ++find_package(Qt5Gui REQUIRED) ++find_package(Qt5Qml REQUIRED) ++find_package(Qt5Quick REQUIRED) ++find_package(Qt5Widgets REQUIRED) ++ + set(terminal_SRCS + main.cpp + fileio.cpp +@@ -11,7 +16,7 @@ set(terminal_SRCS + + add_executable(lomiri-terminal-app ${terminal_SRCS}) + +-qt5_use_modules(lomiri-terminal-app Gui Qml Quick Widgets) ++target_link_libraries(lomiri-terminal-app Qt5::Gui Qt5::Qml Qt5::Quick Qt5::Widgets) + target_link_libraries(lomiri-terminal-app stdc++) + + if(NOT "${CMAKE_CURRENT_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_BINARY_DIR}") +diff --git a/tests/qtquicktest/CMakeLists.txt b/tests/qtquicktest/CMakeLists.txt +index 3feec36..f370fa1 100644 +--- a/tests/qtquicktest/CMakeLists.txt ++++ b/tests/qtquicktest/CMakeLists.txt +@@ -5,7 +5,11 @@ + #set(XVFB_RUN_CMD ${XVFB_RUN_BIN} -a -s "-screen 0 1024x768x24") + + include(FindPkgConfig) +-find_package(Qt5Core) ++find_package(Qt5Core REQUIRED) ++find_package(Qt5Qml REQUIRED) ++find_package(Qt5Quick REQUIRED) ++find_package(Qt5Test REQUIRED) ++find_package(Qt5QuickTest REQUIRED) + + # copy qml test files to build directory + if(NOT "${CMAKE_CURRENT_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_BINARY_DIR}") +@@ -16,5 +20,5 @@ endif(NOT "${CMAKE_CURRENT_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_BINARY_DIR}") + + set(QTQUICK_TEST tst_qtquicktest) + add_executable(${QTQUICK_TEST} qtquicktest.cpp) +-qt5_use_modules(${QTQUICK_TEST} Core Qml Quick Test QuickTest) ++target_link_libraries(${QTQUICK_TEST} Qt5::Core Qt5::Qml Qt5::Quick Qt5::Test Qt5::QuickTest) + #add_test(${QTQUICK_TEST} ${XVFB_RUN_CMD} ${CMAKE_CURRENT_BINARY_DIR}/${QTQUICK_TEST}) +-- +2.39.2 + diff --git a/pkgs/desktops/lomiri/applications/lomiri-terminal-app/default.nix b/pkgs/desktops/lomiri/applications/lomiri-terminal-app/default.nix new file mode 100644 index 0000000000000..0fab1fa9fd426 --- /dev/null +++ b/pkgs/desktops/lomiri/applications/lomiri-terminal-app/default.nix @@ -0,0 +1,83 @@ +{ stdenv +, lib +, fetchFromGitLab +, gitUpdater +, nixosTests +, cmake +, gsettings-qt +, lomiri-ui-extras +, lomiri-ui-toolkit +, pkg-config +, qmltermwidget +, qtbase +, qtdeclarative +, qtsystems +, wrapQtAppsHook +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "lomiri-terminal-app"; + version = "2.0.1"; + + src = fetchFromGitLab { + owner = "ubports"; + repo = "development/apps/lomiri-terminal-app"; + rev = "v${finalAttrs.version}"; + hash = "sha256-WYPP4sZisZMJmRs+QtILh1TELqrJxE+RarkXI58GIKc="; + }; + + patches = [ + # Fix CMake code not using the (intended? correct? working?) mechanism for depending on Qt modules + ./0001-Drop-deprecated-qt5_use_modules.patch + ]; + + postPatch = '' + substituteInPlace CMakeLists.txt \ + --replace "\''${CMAKE_INSTALL_LIBDIR}/qt5/qml" '${qtbase.qtQmlPrefix}' \ + --replace "\''${CMAKE_INSTALL_PREFIX}/\''${DATA_DIR}" "\''${CMAKE_INSTALL_FULL_DATADIR}/lomiri-terminal-app" \ + --replace 'EXEC "''${APP_NAME}"' 'EXEC "${placeholder "out"}/bin/''${APP_NAME}"' + + # Tests look abandoned - add_test in CMake code is commented out, refers to old repo structure in import paths + sed -i -e '/add_subdirectory(tests)/d' CMakeLists.txt + ''; + + strictDeps = true; + + nativeBuildInputs = [ + cmake + pkg-config + wrapQtAppsHook + ]; + + buildInputs = [ + qtbase + qtdeclarative + qmltermwidget + + # QML + gsettings-qt + lomiri-ui-extras + lomiri-ui-toolkit + qtsystems + ]; + + cmakeFlags = [ + "-DINSTALL_TESTS=OFF" + "-DCLICK_MODE=OFF" + ]; + + passthru = { + tests.vm-test = nixosTests.terminal-emulators.lomiri-terminal-app; + updateScript = gitUpdater { + rev-prefix = "v"; + }; + }; + + meta = with lib; { + description = "A terminal app for desktop and mobile devices"; + homepage = "https://gitlab.com/ubports/development/apps/lomiri-terminal-app"; + license = licenses.gpl3Only; + maintainers = teams.lomiri.members; + platforms = platforms.linux; + }; +}) diff --git a/pkgs/desktops/lomiri/default.nix b/pkgs/desktops/lomiri/default.nix index 70caa9d644203..f90895cca706f 100644 --- a/pkgs/desktops/lomiri/default.nix +++ b/pkgs/desktops/lomiri/default.nix @@ -7,6 +7,9 @@ let packages = self: let inherit (self) callPackage; in { + #### Core Apps + lomiri-terminal-app = callPackage ./applications/lomiri-terminal-app { }; + #### Data lomiri-schemas = callPackage ./data/lomiri-schemas { }; suru-icon-theme = callPackage ./data/suru-icon-theme { }; From 22aed12dab5605187b76aadf7c3fce9ec90ae4cb Mon Sep 17 00:00:00 2001 From: OPNA2608 Date: Mon, 15 Jan 2024 18:42:45 +0100 Subject: [PATCH 2/3] lomiri.lomiri-terminal-app: 2.0.1 -> 2.0.2 --- .../lomiri/applications/lomiri-terminal-app/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/desktops/lomiri/applications/lomiri-terminal-app/default.nix b/pkgs/desktops/lomiri/applications/lomiri-terminal-app/default.nix index 0fab1fa9fd426..6518525b0a54a 100644 --- a/pkgs/desktops/lomiri/applications/lomiri-terminal-app/default.nix +++ b/pkgs/desktops/lomiri/applications/lomiri-terminal-app/default.nix @@ -17,13 +17,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "lomiri-terminal-app"; - version = "2.0.1"; + version = "2.0.2"; src = fetchFromGitLab { owner = "ubports"; repo = "development/apps/lomiri-terminal-app"; rev = "v${finalAttrs.version}"; - hash = "sha256-WYPP4sZisZMJmRs+QtILh1TELqrJxE+RarkXI58GIKc="; + hash = "sha256-mXbPmVcl5dL78QUp+w3o4im5ohUQCPTKWLSVqlNO0yo="; }; patches = [ From 6d8373b052878c617dc85f3c03e4ab459a9b6957 Mon Sep 17 00:00:00 2001 From: OPNA2608 Date: Mon, 15 Jan 2024 18:43:23 +0100 Subject: [PATCH 3/3] lomiri.lomiri-terminal-app: Fetch upstream-submitted patches --- ...0001-Drop-deprecated-qt5_use_modules.patch | 63 ------------------- .../lomiri-terminal-app/default.nix | 31 +++++++-- 2 files changed, 26 insertions(+), 68 deletions(-) delete mode 100644 pkgs/desktops/lomiri/applications/lomiri-terminal-app/0001-Drop-deprecated-qt5_use_modules.patch diff --git a/pkgs/desktops/lomiri/applications/lomiri-terminal-app/0001-Drop-deprecated-qt5_use_modules.patch b/pkgs/desktops/lomiri/applications/lomiri-terminal-app/0001-Drop-deprecated-qt5_use_modules.patch deleted file mode 100644 index 566a8a704a815..0000000000000 --- a/pkgs/desktops/lomiri/applications/lomiri-terminal-app/0001-Drop-deprecated-qt5_use_modules.patch +++ /dev/null @@ -1,63 +0,0 @@ -From b02fd5f9074d449bd0a60ce18c77735643f35e00 Mon Sep 17 00:00:00 2001 -From: Puna2608 -Date: Tue, 14 Mar 2023 18:11:04 +0100 -Subject: [PATCH] Drop deprecated qt5_use_modules - -Isn't even getting included correctly here: - Unknown CMake command "qt5_use_modules". ---- - app/CMakeLists.txt | 7 ++++++- - tests/qtquicktest/CMakeLists.txt | 8 ++++++-- - 2 files changed, 12 insertions(+), 3 deletions(-) - -diff --git a/app/CMakeLists.txt b/app/CMakeLists.txt -index 3570b25..e0a7371 100644 ---- a/app/CMakeLists.txt -+++ b/app/CMakeLists.txt -@@ -1,5 +1,10 @@ - file(GLOB_RECURSE QML_SRCS *.qml *.js *.json *.png) - -+find_package(Qt5Gui REQUIRED) -+find_package(Qt5Qml REQUIRED) -+find_package(Qt5Quick REQUIRED) -+find_package(Qt5Widgets REQUIRED) -+ - set(terminal_SRCS - main.cpp - fileio.cpp -@@ -11,7 +16,7 @@ set(terminal_SRCS - - add_executable(lomiri-terminal-app ${terminal_SRCS}) - --qt5_use_modules(lomiri-terminal-app Gui Qml Quick Widgets) -+target_link_libraries(lomiri-terminal-app Qt5::Gui Qt5::Qml Qt5::Quick Qt5::Widgets) - target_link_libraries(lomiri-terminal-app stdc++) - - if(NOT "${CMAKE_CURRENT_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_BINARY_DIR}") -diff --git a/tests/qtquicktest/CMakeLists.txt b/tests/qtquicktest/CMakeLists.txt -index 3feec36..f370fa1 100644 ---- a/tests/qtquicktest/CMakeLists.txt -+++ b/tests/qtquicktest/CMakeLists.txt -@@ -5,7 +5,11 @@ - #set(XVFB_RUN_CMD ${XVFB_RUN_BIN} -a -s "-screen 0 1024x768x24") - - include(FindPkgConfig) --find_package(Qt5Core) -+find_package(Qt5Core REQUIRED) -+find_package(Qt5Qml REQUIRED) -+find_package(Qt5Quick REQUIRED) -+find_package(Qt5Test REQUIRED) -+find_package(Qt5QuickTest REQUIRED) - - # copy qml test files to build directory - if(NOT "${CMAKE_CURRENT_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_BINARY_DIR}") -@@ -16,5 +20,5 @@ endif(NOT "${CMAKE_CURRENT_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_BINARY_DIR}") - - set(QTQUICK_TEST tst_qtquicktest) - add_executable(${QTQUICK_TEST} qtquicktest.cpp) --qt5_use_modules(${QTQUICK_TEST} Core Qml Quick Test QuickTest) -+target_link_libraries(${QTQUICK_TEST} Qt5::Core Qt5::Qml Qt5::Quick Qt5::Test Qt5::QuickTest) - #add_test(${QTQUICK_TEST} ${XVFB_RUN_CMD} ${CMAKE_CURRENT_BINARY_DIR}/${QTQUICK_TEST}) --- -2.39.2 - diff --git a/pkgs/desktops/lomiri/applications/lomiri-terminal-app/default.nix b/pkgs/desktops/lomiri/applications/lomiri-terminal-app/default.nix index 6518525b0a54a..31ef9ed8838cb 100644 --- a/pkgs/desktops/lomiri/applications/lomiri-terminal-app/default.nix +++ b/pkgs/desktops/lomiri/applications/lomiri-terminal-app/default.nix @@ -1,6 +1,7 @@ { stdenv , lib , fetchFromGitLab +, fetchpatch , gitUpdater , nixosTests , cmake @@ -27,15 +28,34 @@ stdenv.mkDerivation (finalAttrs: { }; patches = [ - # Fix CMake code not using the (intended? correct? working?) mechanism for depending on Qt modules - ./0001-Drop-deprecated-qt5_use_modules.patch + # Stop usage of private qt5_use_modules function, seemingly unavailable in this package + # Remove when https://gitlab.com/ubports/development/apps/lomiri-terminal-app/-/merge_requests/103 merged & in release + (fetchpatch { + name = "0001-lomiri-terminal-app-Stop-using-qt5_use_modules.patch"; + url = "https://gitlab.com/ubports/development/apps/lomiri-terminal-app/-/commit/db210c74e771a427066aebdc3a99cab6e782d326.patch"; + hash = "sha256-op4+/eo8rBRMcW6MZ0rOEFReM7JBCck1B+AsgAPyqAI="; + }) + + # Explicitly bind textdomain, don't rely on hacky workaround in LUITK + # Remove when https://gitlab.com/ubports/development/apps/lomiri-terminal-app/-/merge_requests/104 merged & in release + (fetchpatch { + name = "0002-lomiri-terminal-app-Call-i18n.bindtextdomain.patch"; + url = "https://gitlab.com/ubports/development/apps/lomiri-terminal-app/-/commit/7f9d419e29043f0d0922d2ac1dce5673e2723a01.patch"; + hash = "sha256-HfIvGVbIdTasoHAfHysnzFLufQQ4lskym5HTekH+mjk="; + }) + + # Add more & correct existing usage of GNUInstallDirs variables + # Remove when https://gitlab.com/ubports/development/apps/lomiri-terminal-app/-/merge_requests/105 merged & in release + (fetchpatch { + name = "0003-lomiri-terminal-app-GNUInstallDirs-usage.patch"; + url = "https://gitlab.com/ubports/development/apps/lomiri-terminal-app/-/commit/fcde1f05bb442c74b1dff95917fd7594f26e97a7.patch"; + hash = "sha256-umxCMGNjyz0TVmwH0Gl0MpgjLQtkW9cHkUfpNJcoasE="; + }) ]; postPatch = '' substituteInPlace CMakeLists.txt \ - --replace "\''${CMAKE_INSTALL_LIBDIR}/qt5/qml" '${qtbase.qtQmlPrefix}' \ - --replace "\''${CMAKE_INSTALL_PREFIX}/\''${DATA_DIR}" "\''${CMAKE_INSTALL_FULL_DATADIR}/lomiri-terminal-app" \ - --replace 'EXEC "''${APP_NAME}"' 'EXEC "${placeholder "out"}/bin/''${APP_NAME}"' + --replace "\''${CMAKE_INSTALL_LIBDIR}/qt5/qml" "\''${CMAKE_INSTALL_PREFIX}/${qtbase.qtQmlPrefix}" # Tests look abandoned - add_test in CMake code is commented out, refers to old repo structure in import paths sed -i -e '/add_subdirectory(tests)/d' CMakeLists.txt @@ -77,6 +97,7 @@ stdenv.mkDerivation (finalAttrs: { description = "A terminal app for desktop and mobile devices"; homepage = "https://gitlab.com/ubports/development/apps/lomiri-terminal-app"; license = licenses.gpl3Only; + mainProgram = "lomiri-terminal-app"; maintainers = teams.lomiri.members; platforms = platforms.linux; };