2020-12-07 07:45:13 +00:00
|
|
|
{ lib
|
|
|
|
, stdenv
|
|
|
|
, fetchurl
|
|
|
|
, meson
|
2021-02-05 17:12:51 +00:00
|
|
|
, pkg-config
|
2020-12-07 07:45:13 +00:00
|
|
|
, ninja
|
2021-05-20 23:08:51 +00:00
|
|
|
, wayland-scanner
|
2024-09-26 11:04:55 +00:00
|
|
|
, withTests ? stdenv.hostPlatform.isLinux
|
2021-04-26 19:14:03 +00:00
|
|
|
, libffi
|
2023-03-24 00:07:29 +00:00
|
|
|
, epoll-shim
|
2024-09-19 14:19:46 +00:00
|
|
|
, withDocumentation ? stdenv.hostPlatform == stdenv.buildPlatform
|
2020-12-07 07:45:13 +00:00
|
|
|
, graphviz-nox
|
|
|
|
, doxygen
|
|
|
|
, libxslt
|
|
|
|
, xmlto
|
|
|
|
, python3
|
|
|
|
, docbook_xsl
|
|
|
|
, docbook_xml_dtd_45
|
|
|
|
, docbook_xml_dtd_42
|
2024-02-29 20:09:43 +00:00
|
|
|
, testers
|
2020-04-24 23:36:52 +00:00
|
|
|
}:
|
|
|
|
|
2024-02-29 20:09:43 +00:00
|
|
|
stdenv.mkDerivation (finalAttrs: {
|
2020-04-24 23:36:52 +00:00
|
|
|
pname = "wayland";
|
2024-09-19 14:19:46 +00:00
|
|
|
version = "1.23.1";
|
2020-04-24 23:36:52 +00:00
|
|
|
|
|
|
|
src = fetchurl {
|
2024-02-29 20:09:43 +00:00
|
|
|
url = with finalAttrs; "https://gitlab.freedesktop.org/wayland/wayland/-/releases/${version}/downloads/${pname}-${version}.tar.xz";
|
2024-09-19 14:19:46 +00:00
|
|
|
hash = "sha256-hk+yqDmeLQ7DnVbp2bdTwJN3W+rcYCLOgfRBkpqB5e0=";
|
2020-04-24 23:36:52 +00:00
|
|
|
};
|
|
|
|
|
2023-04-12 12:48:02 +00:00
|
|
|
patches = [
|
|
|
|
./darwin.patch
|
|
|
|
];
|
|
|
|
|
2020-04-24 23:36:52 +00:00
|
|
|
postPatch = lib.optionalString withDocumentation ''
|
|
|
|
patchShebangs doc/doxygen/gen-doxygen.py
|
2022-01-13 20:06:32 +00:00
|
|
|
'' + lib.optionalString stdenv.hostPlatform.isStatic ''
|
|
|
|
# delete line containing os-wrappers-test, disables
|
|
|
|
# the building of os-wrappers-test
|
|
|
|
sed -i '/os-wrappers-test/d' tests/meson.build
|
2020-04-24 23:36:52 +00:00
|
|
|
'';
|
|
|
|
|
2024-09-19 14:19:46 +00:00
|
|
|
outputs = [ "out" "dev" ] ++ lib.optionals withDocumentation [ "doc" "man" ];
|
2021-04-26 19:14:03 +00:00
|
|
|
separateDebugInfo = true;
|
|
|
|
|
|
|
|
mesonFlags = [
|
2024-09-19 14:19:46 +00:00
|
|
|
(lib.mesonBool "documentation" withDocumentation)
|
|
|
|
(lib.mesonBool "tests" withTests)
|
|
|
|
(lib.mesonBool "scanner" false) # wayland-scanner is a separate derivation
|
2021-04-26 19:14:03 +00:00
|
|
|
];
|
|
|
|
|
2020-06-18 07:06:33 +00:00
|
|
|
depsBuildBuild = [
|
2021-02-05 17:12:51 +00:00
|
|
|
pkg-config
|
2020-06-18 07:06:33 +00:00
|
|
|
];
|
|
|
|
|
2020-04-24 23:36:52 +00:00
|
|
|
nativeBuildInputs = [
|
2020-12-07 07:45:13 +00:00
|
|
|
meson
|
2021-02-05 17:12:51 +00:00
|
|
|
pkg-config
|
2020-12-07 07:45:13 +00:00
|
|
|
ninja
|
2021-05-20 23:08:51 +00:00
|
|
|
wayland-scanner
|
2020-04-24 23:36:52 +00:00
|
|
|
] ++ lib.optionals withDocumentation [
|
|
|
|
(graphviz-nox.override { pango = null; }) # To avoid an infinite recursion
|
2020-12-07 07:45:13 +00:00
|
|
|
doxygen
|
|
|
|
libxslt
|
|
|
|
xmlto
|
|
|
|
python3
|
|
|
|
docbook_xml_dtd_45
|
2021-12-06 16:07:01 +00:00
|
|
|
docbook_xsl
|
2020-04-24 23:36:52 +00:00
|
|
|
];
|
|
|
|
|
2020-12-07 07:45:13 +00:00
|
|
|
buildInputs = [
|
2021-04-26 19:14:03 +00:00
|
|
|
libffi
|
2024-09-19 14:19:46 +00:00
|
|
|
] ++ lib.optionals (!stdenv.hostPlatform.isLinux) [
|
2023-03-24 00:07:29 +00:00
|
|
|
epoll-shim
|
2020-04-24 23:36:52 +00:00
|
|
|
] ++ lib.optionals withDocumentation [
|
2020-12-07 07:45:13 +00:00
|
|
|
docbook_xsl
|
|
|
|
docbook_xml_dtd_45
|
|
|
|
docbook_xml_dtd_42
|
2020-04-24 23:36:52 +00:00
|
|
|
];
|
|
|
|
|
2024-02-29 20:09:43 +00:00
|
|
|
passthru = {
|
|
|
|
tests.pkg-config = testers.hasPkgConfigModules {
|
|
|
|
package = finalAttrs.finalPackage;
|
|
|
|
};
|
|
|
|
};
|
2023-01-20 10:41:00 +00:00
|
|
|
|
2021-04-26 19:14:03 +00:00
|
|
|
meta = with lib; {
|
2020-04-24 23:36:52 +00:00
|
|
|
description = "Core Wayland window system code and protocol";
|
2024-04-21 15:54:59 +00:00
|
|
|
mainProgram = "wayland-scanner";
|
2020-04-24 23:36:52 +00:00
|
|
|
longDescription = ''
|
|
|
|
Wayland is a project to define a protocol for a compositor to talk to its
|
|
|
|
clients as well as a library implementation of the protocol.
|
|
|
|
The wayland protocol is essentially only about input handling and buffer
|
|
|
|
management, but also handles drag and drop, selections, window management
|
|
|
|
and other interactions that must go through the compositor (but not
|
|
|
|
rendering).
|
|
|
|
'';
|
2020-12-07 07:45:13 +00:00
|
|
|
homepage = "https://wayland.freedesktop.org/";
|
2021-04-26 19:14:03 +00:00
|
|
|
license = licenses.mit; # Expat version
|
2023-04-12 12:48:02 +00:00
|
|
|
platforms = platforms.unix;
|
2021-04-26 19:14:03 +00:00
|
|
|
maintainers = with maintainers; [ primeos codyopel qyliss ];
|
2024-02-29 20:09:43 +00:00
|
|
|
pkgConfigModules = [
|
|
|
|
"wayland-client"
|
|
|
|
"wayland-cursor"
|
|
|
|
"wayland-egl"
|
|
|
|
"wayland-egl-backend"
|
|
|
|
"wayland-server"
|
|
|
|
];
|
2020-04-24 23:36:52 +00:00
|
|
|
};
|
2024-02-29 20:09:43 +00:00
|
|
|
})
|