Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

wayland: 1.17.0 -> 1.18.0 #79237

Merged
merged 4 commits into from
Feb 12, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
57 changes: 40 additions & 17 deletions pkgs/development/libraries/wayland/default.nix
Original file line number Diff line number Diff line change
@@ -1,43 +1,66 @@
{ lib, stdenv, fetchurl, pkgconfig
{ lib, stdenv, fetchurl, meson, pkgconfig, ninja
, libffi, libxml2, wayland
, expat ? null # Build wayland-scanner (currently cannot be disabled as of 1.7.0)
, withDocumentation ? false, graphviz-nox, doxygen, libxslt, xmlto, python3
, docbook_xsl, docbook_xml_dtd_45, docbook_xml_dtd_42
}:

# Require the optional to be enabled until upstream fixes or removes the configure flag
assert expat != null;

stdenv.mkDerivation rec {
let
isCross = stdenv.buildPlatform != stdenv.hostPlatform;
in stdenv.mkDerivation rec {
pname = "wayland";
version = "1.17.0";
version = "1.18.0";

src = fetchurl {
url = "https://wayland.freedesktop.org/releases/${pname}-${version}.tar.xz";
sha256 = "194ibzwpdcn6fvk4xngr4bf5axpciwg2bj82fdvz88kfmjw13akj";
sha256 = "0k995rn96xkplrapz5k648j651wc43kq817xk1x8280h16gsfxa6";
};

separateDebugInfo = true;

configureFlags = [
"--disable-documentation"
] ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
"--with-host-scanner"
];
mesonFlags = [ "-Ddocumentation=${lib.boolToString withDocumentation}" ];

patches = lib.optional isCross ./fix-wayland-cross-compilation.patch;

postPatch = lib.optionalString withDocumentation ''
patchShebangs doc/doxygen/gen-doxygen.py
'' + lib.optionalString isCross ''
substituteInPlace egl/meson.build --replace \
"find_program('nm').path()" \
"find_program('${stdenv.cc.targetPrefix}nm').path()"
'';

nativeBuildInputs = [
pkgconfig
] ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
# for wayland-scanner during build
wayland
meson pkgconfig ninja
] ++ lib.optionals isCross [
wayland # For wayland-scanner during the build
] ++ lib.optionals withDocumentation [
(graphviz-nox.override { pango = null; }) # To avoid an infinite recursion
doxygen libxslt xmlto python3 docbook_xml_dtd_45
];

buildInputs = [ libffi /* docbook_xsl doxygen graphviz libxslt xmlto */ expat libxml2 ];
buildInputs = [ libffi expat libxml2
] ++ lib.optionals withDocumentation [
docbook_xsl docbook_xml_dtd_45 docbook_xml_dtd_42
];

meta = {
description = "Reference implementation of the wayland protocol";
description = "Core Wayland window system code and protocol";
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).
'';
homepage = https://wayland.freedesktop.org/;
license = lib.licenses.mit;
license = lib.licenses.mit; # Expat version
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [ codyopel ];
maintainers = with lib.maintainers; [ primeos codyopel ];
};

passthru.version = version;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
diff --git a/src/meson.build b/src/meson.build
index 3e8c9bf..75241cb 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -55,8 +55,7 @@ pkgconfig.generate(
)

if meson.is_cross_build()
- scanner_dep = dependency('wayland-scanner', native: true, version: '>=1.14.0')
- wayland_scanner_for_build = find_program(scanner_dep.get_pkgconfig_variable('wayland_scanner'))
+ wayland_scanner_for_build = find_program('wayland-scanner', native: true, version: '>=1.14.0')
else
wayland_scanner_for_build = wayland_scanner
endif
13 changes: 10 additions & 3 deletions pkgs/development/libraries/wayland/protocols.nix
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,17 @@ stdenv.mkDerivation rec {

meta = {
description = "Wayland protocol extensions";
homepage = https://wayland.freedesktop.org/;
license = lib.licenses.mit;
longDescription = ''
wayland-protocols contains Wayland protocols that add functionality not
available in the Wayland core protocol. Such protocols either add
completely new functionality, or extend the functionality of some other
protocol either in Wayland core, or some other protocol in
wayland-protocols.
'';
homepage = https://gitlab.freedesktop.org/wayland/wayland-protocols;
license = lib.licenses.mit; # Expat version
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [ ];
maintainers = with lib.maintainers; [ primeos ];
};

passthru.version = version;
Expand Down