summary refs log tree commit diff
path: root/pkgs/development/libraries/wlroots/default.nix
diff options
context:
space:
mode:
authorMichael Weiss <dev.primeos@gmail.com>2018-10-22 22:51:10 +0200
committerMichael Weiss <dev.primeos@gmail.com>2018-10-22 22:58:44 +0200
commitf4615bef063265001f47ee7e8e351aa1708f773a (patch)
treeaaeab91bfe1a5afd5a6d4a62525de4ffad198822 /pkgs/development/libraries/wlroots/default.nix
parent7615027fadea92ca1757c6c40d2bb1c2e9ef824f (diff)
downloadnixpkgs-f4615bef063265001f47ee7e8e351aa1708f773a.tar
nixpkgs-f4615bef063265001f47ee7e8e351aa1708f773a.tar.gz
nixpkgs-f4615bef063265001f47ee7e8e351aa1708f773a.tar.bz2
nixpkgs-f4615bef063265001f47ee7e8e351aa1708f773a.tar.lz
nixpkgs-f4615bef063265001f47ee7e8e351aa1708f773a.tar.xz
nixpkgs-f4615bef063265001f47ee7e8e351aa1708f773a.tar.zst
nixpkgs-f4615bef063265001f47ee7e8e351aa1708f773a.zip
wlroots: 2018-03-16 -> 0.1
Keep "meta.broken = true" but update the package to keep track of
upstream changes and prepare the "reintegration" into nixpkgs.
Diffstat (limited to 'pkgs/development/libraries/wlroots/default.nix')
-rw-r--r--pkgs/development/libraries/wlroots/default.nix75
1 files changed, 59 insertions, 16 deletions
diff --git a/pkgs/development/libraries/wlroots/default.nix b/pkgs/development/libraries/wlroots/default.nix
index a4c2b329714..f724ae00995 100644
--- a/pkgs/development/libraries/wlroots/default.nix
+++ b/pkgs/development/libraries/wlroots/default.nix
@@ -1,39 +1,82 @@
-{ stdenv, fetchFromGitHub, meson, ninja, pkgconfig
+{ stdenv, fetchFromGitHub, fetchpatch, meson, ninja, pkgconfig
 , wayland, libGL, wayland-protocols, libinput, libxkbcommon, pixman
 , xcbutilwm, libX11, libcap, xcbutilimage, xcbutilerrors, mesa_noglu
+, libpng, ffmpeg_4
+, python3Packages # TODO: Temporary
 }:
 
-let pname = "wlroots";
-    version = "unstable-2018-03-16";
+let
+  pname = "wlroots";
+  version = "0.1";
+  meson480 = meson.overrideAttrs (oldAttrs: rec {
+    name = pname + "-" + version;
+    pname = "meson";
+    version = "0.48.0";
+
+    src = python3Packages.fetchPypi {
+      inherit pname version;
+      sha256 = "0qawsm6px1vca3babnqwn0hmkzsxy4w0gi345apd2qk3v0cv7ipc";
+    };
+    patches = builtins.filter # Remove gir-fallback-path.patch
+      (str: !(stdenv.lib.hasSuffix "gir-fallback-path.patch" str))
+      oldAttrs.patches;
+  });
 in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchFromGitHub {
     owner = "swaywm";
     repo = "wlroots";
-    rev = "9cc875429b40e2567b219f8e9ffd23316d136204";
-    sha256 = "1prhic3pyf9n65qfg5akzkc9qv2z3ab60dpcacr7wgr9nxrvnsdq";
+    rev = version;
+    sha256 = "0xfipgg2qh2xcf3a1pzx8pyh1aqpb9rijdyi0as4s6fhgy4w269c";
   };
 
-  # $out for the library and $bin for rootston
-  outputs = [ "out" "bin" ];
+  patches = [ (fetchpatch { # TODO: Only required for version 0.1
+    url = https://github.com/swaywm/wlroots/commit/be6210cf8216c08a91e085dac0ec11d0e34fb217.patch;
+    sha256 = "0njv7mr4ark603w79cxcsln29galh87vpzsx2dzkrl1x5x4i6cj5";
+  }) ];
+
+  # $out for the library, $bin for rootston, and $examples for the example
+  # programs (in examples) AND rootston
+  outputs = [ "out" "bin" "examples" ];
 
-  nativeBuildInputs = [ meson ninja pkgconfig ];
+  nativeBuildInputs = [ meson480 ninja pkgconfig ];
 
   buildInputs = [
     wayland libGL wayland-protocols libinput libxkbcommon pixman
     xcbutilwm libX11 libcap xcbutilimage xcbutilerrors mesa_noglu
+    libpng ffmpeg_4
+  ];
+
+  mesonFlags = [
+    "-Dlibcap=enabled" "-Dlogind=enabled" "-Dxwayland=enabled" "-Dx11-backend=enabled"
+    "-Dxcb-icccm=enabled" "-Dxcb-xkb=enabled" "-Dxcb-errors=enabled"
   ];
 
-  # Install rootston (the reference compositor) to $bin
   postInstall = ''
-    mkdir -p $bin/bin
-    cp rootston/rootston $bin/bin/
-    mkdir $bin/lib
-    cp libwlroots* $bin/lib/
-    patchelf --set-rpath "$bin/lib:${stdenv.lib.makeLibraryPath buildInputs}" $bin/bin/rootston
-    mkdir $bin/etc
-    cp ../rootston/rootston.ini.example $bin/etc/rootston.ini
+    # Install rootston (the reference compositor) to $bin and $examples
+    for output in "$bin" "$examples"; do
+      mkdir -p $output/bin
+      cp rootston/rootston $output/bin/
+      mkdir $output/lib
+      cp libwlroots* $output/lib/
+      patchelf \
+        --set-rpath "$output/lib:${stdenv.lib.makeLibraryPath buildInputs}" \
+        $output/bin/rootston
+      mkdir $output/etc
+      cp ../rootston/rootston.ini.example $output/etc/rootston.ini
+    done
+    # Install ALL example programs to $examples:
+    # screencopy dmabuf-capture input-inhibitor layer-shell idle-inhibit idle
+    # screenshot output-layout multi-pointer rotation tablet touch pointer
+    # simple
+    mkdir -p $examples/bin
+    for binary in $(find ./examples -executable -type f | grep -vE '\.so'); do
+      patchelf \
+        --set-rpath "$examples/lib:${stdenv.lib.makeLibraryPath buildInputs}" \
+        "$binary"
+      cp "$binary" $examples/bin/
+    done
   '';
 
   meta = with stdenv.lib; {