Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{ 2 lib, 3 stdenv, 4 fetchFromGitHub, 5 meson, 6 ninja, 7 pkg-config, 8 wayland-scanner, 9 scdoc, 10 makeWrapper, 11 wlroots_0_18, 12 wayland, 13 wayland-protocols, 14 pixman, 15 libxkbcommon, 16 xcbutilwm, 17 systemd, 18 libGL, 19 libX11, 20 xwayland ? null, 21 nixosTests, 22}: 23 24stdenv.mkDerivation (finalAttrs: { 25 pname = "cage"; 26 version = "0.2.0"; 27 28 src = fetchFromGitHub { 29 owner = "cage-kiosk"; 30 repo = "cage"; 31 tag = "v${finalAttrs.version}"; 32 hash = "sha256-2SFtz62z0EF8cpFTC6wGi125MD4a5mkXqP/C+7fH+3g="; 33 }; 34 35 depsBuildBuild = [ 36 pkg-config 37 ]; 38 39 nativeBuildInputs = [ 40 meson 41 ninja 42 pkg-config 43 wayland-scanner 44 scdoc 45 makeWrapper 46 ]; 47 48 buildInputs = [ 49 wlroots_0_18 50 wayland 51 wayland-protocols 52 pixman 53 libxkbcommon 54 xcbutilwm 55 systemd 56 libGL 57 libX11 58 ]; 59 60 postFixup = lib.optionalString wlroots_0_18.enableXWayland '' 61 wrapProgram $out/bin/cage --prefix PATH : "${xwayland}/bin" 62 ''; 63 64 # Tests Cage using the NixOS module by launching xterm: 65 passthru.tests.basic-nixos-module-functionality = nixosTests.cage; 66 67 meta = { 68 description = "Wayland kiosk that runs a single, maximized application"; 69 homepage = "https://www.hjdskes.nl/projects/cage/"; 70 license = lib.licenses.mit; 71 platforms = lib.platforms.linux; 72 maintainers = with lib.maintainers; [ ]; 73 mainProgram = "cage"; 74 }; 75})