mir: Format with nixfmt-rfc-style, modernise

substituteInPlace --replace is deprecated
This commit is contained in:
OPNA2608 2024-06-08 20:37:09 +02:00
parent 15175aae76
commit 5a6c959fa8

View File

@ -1,41 +1,42 @@
{ stdenv
, lib
, fetchFromGitHub
, gitUpdater
, testers
, cmake
, pkg-config
, python3
, boost
, egl-wayland
, freetype
, glib
, glm
, glog
, libdrm
, libepoxy
, libevdev
, libglvnd
, libinput
, libuuid
, libxcb
, libxkbcommon
, libxmlxx
, yaml-cpp
, lttng-ust
, mesa
, nettle
, udev
, wayland
, wayland-scanner
, xorg
, xwayland
, dbus
, gobject-introspection
, gtest
, umockdev
, wlcs
, validatePkgConfig
{
stdenv,
lib,
fetchFromGitHub,
gitUpdater,
testers,
cmake,
pkg-config,
python3,
boost,
egl-wayland,
freetype,
glib,
glm,
glog,
libdrm,
libepoxy,
libevdev,
libglvnd,
libinput,
libuuid,
libxcb,
libxkbcommon,
libxmlxx,
yaml-cpp,
lttng-ust,
mesa,
nettle,
udev,
wayland,
wayland-scanner,
xorg,
xwayland,
dbus,
gobject-introspection,
gtest,
umockdev,
wlcs,
validatePkgConfig,
}:
stdenv.mkDerivation (finalAttrs: {
@ -54,25 +55,22 @@ stdenv.mkDerivation (finalAttrs: {
patchShebangs tools/detect_fd_leaks.bash tests/acceptance-tests/wayland-generator/test_wayland_generator.sh.in
# Fix LD_PRELOADing in tests
for needsPreloadFixing in \
substituteInPlace \
cmake/MirCommon.cmake \
tests/umock-acceptance-tests/CMakeLists.txt \
tests/unit-tests/platforms/gbm-kms/kms/CMakeLists.txt \
tests/unit-tests/CMakeLists.txt
do
substituteInPlace $needsPreloadFixing \
--replace 'LD_PRELOAD=liblttng-ust-fork.so' 'LD_PRELOAD=${lib.getLib lttng-ust}/lib/liblttng-ust-fork.so' \
--replace 'LD_PRELOAD=libumockdev-preload.so.0' 'LD_PRELOAD=${lib.getLib umockdev}/lib/libumockdev-preload.so.0'
done
tests/unit-tests/CMakeLists.txt \
--replace-warn 'LD_PRELOAD=liblttng-ust-fork.so' 'LD_PRELOAD=${lib.getLib lttng-ust}/lib/liblttng-ust-fork.so' \
--replace-warn 'LD_PRELOAD=libumockdev-preload.so.0' 'LD_PRELOAD=${lib.getLib umockdev}/lib/libumockdev-preload.so.0'
# Fix Xwayland default
substituteInPlace src/miral/x11_support.cpp \
--replace '/usr/bin/Xwayland' '${lib.getExe xwayland}'
--replace-fail '/usr/bin/Xwayland' '${lib.getExe xwayland}'
# Fix paths for generating drm-formats
substituteInPlace src/platform/graphics/CMakeLists.txt \
--replace "/usr/include/drm/drm_fourcc.h" "${lib.getDev libdrm}/include/libdrm/drm_fourcc.h" \
--replace "/usr/include/libdrm/drm_fourcc.h" "${lib.getDev libdrm}/include/libdrm/drm_fourcc.h"
--replace-fail "/usr/include/drm/drm_fourcc.h" "${lib.getDev libdrm}/include/libdrm/drm_fourcc.h" \
--replace-fail "/usr/include/libdrm/drm_fourcc.h" "${lib.getDev libdrm}/include/libdrm/drm_fourcc.h"
'';
strictDeps = true;
@ -82,12 +80,15 @@ stdenv.mkDerivation (finalAttrs: {
glib # gdbus-codegen
lttng-ust # lttng-gen-tp
pkg-config
(python3.withPackages (ps: with ps; [
pillow
] ++ lib.optionals finalAttrs.finalPackage.doCheck [
pygobject3
python-dbusmock
]))
(python3.withPackages (
ps:
with ps;
[ pillow ]
++ lib.optionals finalAttrs.finalPackage.doCheck [
pygobject3
python-dbusmock
]
))
validatePkgConfig
wayland-scanner
];
@ -133,28 +134,31 @@ stdenv.mkDerivation (finalAttrs: {
cmakeFlags = [
(lib.cmakeBool "BUILD_DOXYGEN" false)
(lib.cmakeFeature "MIR_PLATFORM" (lib.strings.concatStringsSep ";" [
"gbm-kms"
"x11"
"eglstream-kms"
"wayland"
]))
(lib.cmakeFeature "MIR_PLATFORM" (
lib.strings.concatStringsSep ";" [
"gbm-kms"
"x11"
"eglstream-kms"
"wayland"
]
))
(lib.cmakeBool "MIR_ENABLE_TESTS" finalAttrs.finalPackage.doCheck)
# BadBufferTest.test_truncated_shm_file *doesn't* throw an error as the test expected, mark as such
# https://github.com/canonical/mir/pull/1947#issuecomment-811810872
(lib.cmakeBool "MIR_SIGBUS_HANDLER_ENVIRONMENT_BROKEN" true)
(lib.cmakeFeature "MIR_EXCLUDE_TESTS" (lib.strings.concatStringsSep ";" [
]))
(lib.cmakeFeature "MIR_EXCLUDE_TESTS" (lib.strings.concatStringsSep ";" [ ]))
# These get built but don't get executed by default, yet they get installed when tests are enabled
(lib.cmakeBool "MIR_BUILD_PERFORMANCE_TESTS" false)
(lib.cmakeBool "MIR_BUILD_PLATFORM_TEST_HARNESS" false)
# https://github.com/canonical/mir/issues/2987
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106799
(lib.cmakeBool "MIR_USE_PRECOMPILED_HEADERS" false)
(lib.cmakeFeature "MIR_COMPILER_QUIRKS" (lib.strings.concatStringsSep ";" [
# https://github.com/canonical/mir/issues/3017 actually affects x86_64 as well
"test_touchspot_controller.cpp:array-bounds"
]))
(lib.cmakeFeature "MIR_COMPILER_QUIRKS" (
lib.strings.concatStringsSep ";" [
# https://github.com/canonical/mir/issues/3017 actually affects x86_64 as well
"test_touchspot_controller.cpp:array-bounds"
]
))
];
doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
@ -163,13 +167,14 @@ stdenv.mkDerivation (finalAttrs: {
export XDG_RUNTIME_DIR=$TMP
'';
outputs = [ "out" "dev" ];
outputs = [
"out"
"dev"
];
passthru = {
tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
updateScript = gitUpdater {
rev-prefix = "v";
};
updateScript = gitUpdater { rev-prefix = "v"; };
};
meta = with lib; {
@ -177,7 +182,10 @@ stdenv.mkDerivation (finalAttrs: {
homepage = "https://mir-server.io";
changelog = "https://github.com/canonical/mir/releases/tag/v${finalAttrs.version}";
license = licenses.gpl2Plus;
maintainers = with maintainers; [ onny OPNA2608 ];
maintainers = with maintainers; [
onny
OPNA2608
];
platforms = platforms.linux;
pkgConfigModules = [
"miral"