about summary refs log tree commit diff
path: root/nixpkgs/pkgs/by-name/ca/cardboard/package.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/by-name/ca/cardboard/package.nix')
-rw-r--r--nixpkgs/pkgs/by-name/ca/cardboard/package.nix137
1 files changed, 137 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/by-name/ca/cardboard/package.nix b/nixpkgs/pkgs/by-name/ca/cardboard/package.nix
new file mode 100644
index 000000000000..4bed07f0bc57
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/ca/cardboard/package.nix
@@ -0,0 +1,137 @@
+{ lib
+, stdenv
+, fetchFromGitLab
+, fetchurl
+, fetchgit
+, ffmpeg
+, libGL
+, libX11
+, libcap
+, libdrm
+, libinput
+, libpng
+, libxcb
+, libxkbcommon
+, mesa
+, meson
+, ninja
+, pandoc
+, pixman
+, pkg-config
+, unzip
+, wayland
+, wayland-protocols
+, xcbutilerrors
+, xcbutilimage
+, xcbutilwm
+}:
+
+let
+  allSources = {
+    # cereal.wrap
+    cereal-wrap = fetchurl {
+      name = "cereal-1.3.0.tar.gz";
+      url = "https://github.com/USCiLab/cereal/archive/v1.3.0.tar.gz";
+      hash = "sha256-Mp6j4xMLAmwDpKzFDhaOfa/05uZhvGp9/sDXe1cIUdU=";
+    };
+    cereal-wrapdb = fetchurl {
+      name = "cereal-1.3.0-1-wrap.zip";
+      url = "https://wrapdb.mesonbuild.com/v1/projects/cereal/1.3.0/1/get_zip";
+      hash = "sha256-QYck5UT7fPLqtLDb1iOSX4Hnnns48Jj23Ae/LCfLSKY=";
+    };
+
+    # expected.wrap
+    expected-wrap = fetchgit {
+      name = "expected";
+      url = "https://gitlab.com/cardboardwm/expected";
+      rev = "0ee13cb2b058809aa9708c45ca18d494e72a759e";
+      sha256 = "sha256-gYr4/pjuLlr3k6Jcrg2/SzJLtbgyA+ZN2oMHkHXANDo=";
+    };
+
+    # wlroots.wrap
+    wlroots-wrap = fetchgit {
+      name = "wlroots";
+      url = "https://github.com/swaywm/wlroots";
+      rev = "0.12.0";
+      sha256 = "sha256-1rE3D+kQprjcjobc95/mQkUa5y1noY0MdoYJ/SpFQwY=";
+    };
+
+    # the source itself
+    cardboard = fetchFromGitLab {
+      owner = "cardboardwm";
+      repo = "cardboard";
+      rev = "b54758d85164fb19468f5ca52588ebea576cd027";
+      hash = "sha256-Kn5NyQSDyX7/nn2bKZPnsuepkoppi5XIkdu7IDy5r4w=";
+    };
+  };
+in
+stdenv.mkDerivation {
+  pname = "cardboard";
+  version = "unstable-2021-05-10";
+
+  src = allSources.cardboard;
+
+  outputs = [ "out" "dev" "lib" "man" ];
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pandoc
+    pkg-config
+    unzip
+  ];
+
+  buildInputs = [
+    ffmpeg
+    libGL
+    libX11
+    libcap
+    libdrm
+    libinput
+    libpng
+    libxcb
+    libxkbcommon
+    mesa
+    pixman
+    wayland
+    wayland-protocols
+    xcbutilerrors
+    xcbutilimage
+    xcbutilwm
+  ];
+
+  postPatch = ''
+    pushd subprojects
+    tar xvf ${allSources.cereal-wrap}
+    unzip ${allSources.cereal-wrapdb}
+    cp -r ${allSources.expected-wrap} ${allSources.expected-wrap.name}
+    cp -r ${allSources.wlroots-wrap} ${allSources.wlroots-wrap.name}
+    popd
+
+    # gcc12
+    sed '1i#include <functional>' -i cardboard/ViewAnimation.h
+  '';
+
+  # "Inherited" from Nixpkgs expression for wlroots
+  mesonFlags = [
+    (lib.mesonBool "man" true)
+    (lib.mesonOption "wlroots:logind-provider" "systemd")
+    (lib.mesonEnable "wlroots:libseat" false)
+  ];
+
+  # gcc12
+  env.NIX_CFLAGS_COMPILE = toString [ "-Wno-error=array-bounds" ];
+
+  passthru = {
+    providedSessions = [ "cardboard" ];
+  };
+
+  meta = {
+    homepage = "https://gitlab.com/cardboardwm/cardboard";
+    description = "A scrollable, tiling Wayland compositor inspired on PaperWM";
+    license = lib.licenses.gpl3Only;
+    mainProgram = "cardboard";
+    maintainers = with lib.maintainers; [ AndersonTorres ];
+    inherit (wayland.meta) platforms;
+  };
+}