From b5045c610f52d04b874bed12948b0bc12d087b1d Mon Sep 17 00:00:00 2001 From: Minijackson Date: Tue, 26 Mar 2019 20:23:35 +0100 Subject: [PATCH 1/2] waylandpp: init at 0.2.5 --- .../libraries/waylandpp/default.nix | 23 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 ++ 2 files changed, 25 insertions(+) create mode 100644 pkgs/development/libraries/waylandpp/default.nix diff --git a/pkgs/development/libraries/waylandpp/default.nix b/pkgs/development/libraries/waylandpp/default.nix new file mode 100644 index 000000000000..4fd94a29f9cd --- /dev/null +++ b/pkgs/development/libraries/waylandpp/default.nix @@ -0,0 +1,23 @@ +{ stdenv, fetchFromGitHub, cmake, pkgconfig, pugixml, wayland, libGL }: + +stdenv.mkDerivation rec { + pname = "waylandpp"; + version = "0.2.5"; + + src = fetchFromGitHub { + owner = "NilsBrause"; + repo = pname; + rev = version; + sha256 = "16h57hzd688664qcyznzhjp3hxipdkzgv46x82yhkww24av8b55n"; + }; + + nativeBuildInputs = [ cmake pkgconfig ]; + buildInputs = [ pugixml wayland libGL ]; + + meta = with stdenv.lib; { + description = "Wayland C++ binding"; + homepage = https://github.com/NilsBrause/waylandpp/; + license = with licenses; [ bsd2 hpnd ]; + maintainers = with maintainers; [ minijackson ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 0add6a8c7601..8c282ac336ee 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -13251,6 +13251,8 @@ in wayland-protocols = callPackage ../development/libraries/wayland/protocols.nix { }; + waylandpp = callPackage ../development/libraries/waylandpp { }; + wcslib = callPackage ../development/libraries/wcslib { }; webkitgtk = callPackage ../development/libraries/webkitgtk { From e1f802dfef27f5546cd7d8abb12c0f6d43d03427 Mon Sep 17 00:00:00 2001 From: Minijackson Date: Thu, 11 Apr 2019 20:06:06 +0200 Subject: [PATCH 2/2] kodi: add Wayland support --- pkgs/applications/video/kodi/default.nix | 21 ++++++++++++++++----- pkgs/applications/video/kodi/wrapper.nix | 6 ++++-- pkgs/top-level/all-packages.nix | 6 ++++++ 3 files changed, 26 insertions(+), 7 deletions(-) diff --git a/pkgs/applications/video/kodi/default.nix b/pkgs/applications/video/kodi/default.nix index f7ecbc23a309..e5844eb827df 100644 --- a/pkgs/applications/video/kodi/default.nix +++ b/pkgs/applications/video/kodi/default.nix @@ -13,7 +13,7 @@ , libmpeg2, libsamplerate, libmad , libogg, libvorbis, flac, libxslt , lzo, libcdio, libmodplug, libass, libbluray -, sqlite, mysql, nasm, gnutls, libva, libdrm, wayland +, sqlite, mysql, nasm, gnutls, libva, libdrm , curl, bzip2, zip, unzip, glxinfo, xdpyinfo , libcec, libcec_platform, dcadec, libuuid , libcrossguid, libmicrohttpd @@ -28,6 +28,8 @@ , udevSupport ? true, udev ? null , usbSupport ? false, libusb ? null , vdpauSupport ? true, libvdpau ? null +, useWayland ? false, wayland ? null, wayland-protocols ? null +, waylandpp ? null, libxkbcommon ? null }: assert dbusSupport -> dbus != null; @@ -38,6 +40,7 @@ assert sambaSupport -> samba != null; assert udevSupport -> udev != null; assert usbSupport -> libusb != null && ! udevSupport; # libusb won't be used if udev is avaliable assert vdpauSupport -> libvdpau != null; +assert useWayland -> wayland != null && wayland-protocols != null && waylandpp != null && libxkbcommon != null; # TODO for Kodi 18.0 # - check if dbus support PR has been merged and add dbus as a buildInput @@ -110,7 +113,7 @@ let }; in stdenv.mkDerivation rec { - name = "kodi-${kodiVersion}"; + name = "kodi-${lib.optionalString useWayland "wayland-"}${kodiVersion}"; src = kodi_src; @@ -123,7 +126,7 @@ in stdenv.mkDerivation rec { libX11 xorgproto libXt libXmu libXext libXinerama libXrandr libXtst libXfixes alsaLib libGLU_combined glew fontconfig freetype ftgl - libjpeg jasper libpng libtiff wayland + libjpeg jasper libpng libtiff libmpeg2 libsamplerate libmad libogg libvorbis flac libxslt systemd lzo libcdio libmodplug libass libbluray @@ -144,7 +147,12 @@ in stdenv.mkDerivation rec { ++ lib.optional sambaSupport samba ++ lib.optional udevSupport udev ++ lib.optional usbSupport libusb - ++ lib.optional vdpauSupport libvdpau; + ++ lib.optional vdpauSupport libvdpau + ++ lib.optional useWayland [ + wayland waylandpp + # Not sure why ".dev" is needed here, but CMake doesn't find libxkbcommon otherwise + libxkbcommon.dev + ]; nativeBuildInputs = [ cmake @@ -153,7 +161,7 @@ in stdenv.mkDerivation rec { which pkgconfig gnumake autoconf automake libtool # still needed for some components. Check if that is the case with 18.0 - ]; + ] ++ lib.optional useWayland [ wayland-protocols ]; cmakeFlags = [ "-Dlibdvdcss_URL=${libdvdcss.src}" @@ -164,6 +172,9 @@ in stdenv.mkDerivation rec { "-DENABLE_INTERNAL_CROSSGUID=OFF" "-DENABLE_OPTICAL=ON" "-DLIRC_DEVICE=/run/lirc/lircd" + ] ++ lib.optional useWayland [ + "-DCORE_PLATFORM_NAME=wayland" + "-DWAYLAND_RENDER_SYSTEM=gl" ]; enableParallelBuilding = true; diff --git a/pkgs/applications/video/kodi/wrapper.nix b/pkgs/applications/video/kodi/wrapper.nix index b4365eed949b..6a0b1cbdf739 100644 --- a/pkgs/applications/video/kodi/wrapper.nix +++ b/pkgs/applications/video/kodi/wrapper.nix @@ -1,7 +1,9 @@ { stdenv, lib, makeWrapper, buildEnv, kodi, plugins }: -buildEnv { - name = "kodi-with-plugins-${(builtins.parseDrvName kodi.name).version}"; +let + drvName = builtins.parseDrvName kodi.name; +in buildEnv { + name = "${drvName.name}-with-plugins-${drvName.version}"; paths = [ kodi ] ++ plugins; pathsToLink = [ "/share" ]; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 8c282ac336ee..11a3967691b9 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -20517,12 +20517,18 @@ in kodiPlain = callPackage ../applications/video/kodi { }; + kodiPlainWayland = callPackage ../applications/video/kodi { useWayland = true; }; + kodiPlugins = recurseIntoAttrs (callPackage ../applications/video/kodi/plugins.nix {}); kodi = wrapKodi { kodi = kodiPlain; }; + kodi-wayland = wrapKodi { + kodi = kodiPlainWayland; + }; + kodi-cli = callPackage ../tools/misc/kodi-cli { }; kodi-retroarch-advanced-launchers =