-
-
Notifications
You must be signed in to change notification settings - Fork 14.8k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #259804 from OPNA2608/init/lomiri/qtmir
lomiri.qtmir: init at 0.7.2-unstable-2024-01-08
- Loading branch information
Showing
2 changed files
with
161 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,160 @@ | ||
{ stdenv | ||
, lib | ||
, fetchFromGitLab | ||
, fetchpatch | ||
, testers | ||
, cmake | ||
, cmake-extras | ||
, pkg-config | ||
, wrapQtAppsHook | ||
, gsettings-qt | ||
, gtest | ||
, libqtdbustest | ||
, libqtdbusmock | ||
, libuuid | ||
, lomiri-api | ||
, lomiri-app-launch | ||
, lomiri-url-dispatcher | ||
, lttng-ust | ||
, mir | ||
, process-cpp | ||
, qtbase | ||
, qtdeclarative | ||
, qtsensors | ||
, valgrind | ||
, protobuf | ||
, glm | ||
, boost | ||
, properties-cpp | ||
, glib | ||
, validatePkgConfig | ||
, wayland | ||
, xwayland | ||
}: | ||
|
||
stdenv.mkDerivation (finalAttrs: { | ||
# Not regular qtmir, experimental support for Mir 2.x | ||
# Currently following https://gitlab.com/ubports/development/core/qtmir/-/tree/personal/mariogrip/desktop-development | ||
pname = "qtmir-mir2"; | ||
version = "0.7.2-unstable-2024-01-08"; | ||
|
||
src = fetchFromGitLab { | ||
owner = "ubports"; | ||
repo = "development/core/qtmir"; | ||
rev = "ae0d87415d5c9ed2c4fd2284ba0807d23d564bb0"; | ||
hash = "sha256-fE8ttCC0FNavs91pASGGG7k7nKVg2lD3JK0WTmCA3gM="; | ||
}; | ||
|
||
outputs = [ | ||
"out" | ||
"dev" | ||
]; | ||
|
||
patches = [ | ||
# Mir 2.15 compatibility patch | ||
# Remove when https://gitlab.com/ubports/development/core/qtmir/-/merge_requests/70 merged into branch | ||
(fetchpatch { | ||
name = "0001-qtmir-Update-for-Mir-2.15-removals.patch"; | ||
url = "https://gitlab.com/ubports/development/core/qtmir/-/commit/ead5cacd4d69094ab956627f4dd94ecaff1fd69e.patch"; | ||
hash = "sha256-hUUUnYwhNH3gm76J21M8gA5okaRd/Go03ZFJ4qn0JUo="; | ||
}) | ||
|
||
# Remove when https://gitlab.com/ubports/development/core/qtmir/-/merge_requests/72 merged in branch | ||
(fetchpatch { | ||
name = "0002-qtmir-Add-more-better-GNUInstallDirs-variables-usage.patch"; | ||
url = "https://gitlab.com/ubports/development/core/qtmir/-/commit/87e2cd31052ce15e9625c1327807a320ee5d12af.patch"; | ||
hash = "sha256-MTE9tHw+xJhraEO1up7dLg0UIcmfHXgWOeuyYrVu2wc="; | ||
}) | ||
|
||
# Remove when https://gitlab.com/ubports/development/core/qtmir/-/merge_requests/73 merged in branch | ||
(fetchpatch { | ||
name = "0003-qtmir-CMakeLists-Only-require-test-dependencies-when-building-tests.patch"; | ||
url = "https://gitlab.com/ubports/development/core/qtmir/-/commit/b7144e67bcbb4cfbd2283d5d05146fb22b7d8cd4.patch"; | ||
hash = "sha256-Afbj40MopztchDnk6fphTYk86YrQkiK8L1e/oXiL1Mw="; | ||
}) | ||
|
||
# Remove when https://gitlab.com/ubports/development/core/qtmir/-/merge_requests/74 merged in branch | ||
(fetchpatch { | ||
name = "0004-qtmir-CMakeLists-Drop-call-of-Qt-internal-macro.patch"; | ||
url = "https://gitlab.com/ubports/development/core/qtmir/-/commit/8f9c599a4dbc4cf35e289157fd0c82df55b9f8d9.patch"; | ||
hash = "sha256-SMAErXnlMtVleWRPgO4xuUI7gAAy6W18LxtgXgetRA4="; | ||
}) | ||
]; | ||
|
||
postPatch = '' | ||
substituteInPlace CMakeLists.txt \ | ||
--replace "\''${CMAKE_INSTALL_FULL_LIBDIR}/qt5/qml" "\''${CMAKE_INSTALL_PREFIX}/${qtbase.qtQmlPrefix}" \ | ||
--replace "\''${CMAKE_INSTALL_FULL_LIBDIR}/qt5/plugins/platforms" "\''${CMAKE_INSTALL_PREFIX}/${qtbase.qtPluginPrefix}/platforms" \ | ||
substituteInPlace data/xwayland.qtmir.desktop \ | ||
--replace '/usr/bin/Xwayland' 'Xwayland' | ||
''; | ||
|
||
strictDeps = true; | ||
|
||
nativeBuildInputs = [ | ||
cmake | ||
glib # glib-compile-schemas | ||
pkg-config | ||
validatePkgConfig | ||
wrapQtAppsHook | ||
]; | ||
|
||
buildInputs = [ | ||
cmake-extras | ||
boost | ||
gsettings-qt | ||
libuuid | ||
lomiri-api | ||
lomiri-app-launch | ||
lomiri-url-dispatcher | ||
lttng-ust | ||
mir | ||
process-cpp | ||
protobuf | ||
qtbase | ||
qtdeclarative | ||
qtsensors | ||
valgrind | ||
|
||
glm # included by mir header | ||
wayland # mirwayland asks for this | ||
properties-cpp # included by l-a-l header | ||
]; | ||
|
||
propagatedBuildInputs = [ | ||
# Needs Xwayland on PATH for desktop file, else launching X11 applications crashes qtmir | ||
xwayland | ||
]; | ||
|
||
checkInputs = [ | ||
gtest | ||
libqtdbustest | ||
libqtdbusmock | ||
]; | ||
|
||
cmakeFlags = [ | ||
(lib.cmakeBool "NO_TESTS" (!finalAttrs.finalPackage.doCheck)) | ||
(lib.cmakeBool "WITH_MIR2" true) | ||
]; | ||
|
||
postInstall = '' | ||
glib-compile-schemas $out/share/glib-2.0/schemas | ||
''; | ||
|
||
# Tests currently unavailable when building with Mir2 | ||
doCheck = false; | ||
|
||
passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; | ||
|
||
meta = with lib; { | ||
description = "QPA plugin to make Qt a Mir server"; | ||
homepage = "https://gitlab.com/ubports/development/core/qtmir"; | ||
license = licenses.lgpl3Only; | ||
maintainers = teams.lomiri.members; | ||
platforms = platforms.linux; | ||
pkgConfigModules = [ | ||
"qtmirserver" | ||
]; | ||
}; | ||
}) |