nixpkgs mirror (for testing) github.com/NixOS/nixpkgs
nix
at devShellTools-shell 131 lines 2.2 kB view raw
1{ 2 stdenv, 3 lib, 4 fetchFromGitHub, 5 replaceVars, 6 cairo, 7 cinnamon-desktop, 8 dbus, 9 desktop-file-utils, 10 egl-wayland, 11 glib, 12 gobject-introspection, 13 graphene, 14 gtk3, 15 json-glib, 16 libcanberra, 17 libdrm, 18 libgbm, 19 libgnomekbd, 20 libgudev, 21 libinput, 22 libstartup_notification, 23 libwacom, 24 libxcvt, 25 libXdamage, 26 libxkbcommon, 27 libXtst, 28 mesa-gl-headers, 29 meson, 30 ninja, 31 pipewire, 32 pkg-config, 33 python3, 34 udev, 35 wayland, 36 wayland-protocols, 37 wayland-scanner, 38 wrapGAppsHook3, 39 xorgserver, 40 xwayland, 41 zenity, 42}: 43 44stdenv.mkDerivation rec { 45 pname = "muffin"; 46 version = "6.4.1"; 47 48 outputs = [ 49 "out" 50 "dev" 51 "man" 52 ]; 53 54 src = fetchFromGitHub { 55 owner = "linuxmint"; 56 repo = "muffin"; 57 rev = version; 58 hash = "sha256-cGC1yGft3uEqefm2DvZrMaROoZKYd6LNY0IJ+58f6vs="; 59 }; 60 61 patches = [ 62 (replaceVars ./fix-paths.patch { 63 inherit zenity; 64 }) 65 ]; 66 67 nativeBuildInputs = [ 68 desktop-file-utils 69 meson 70 ninja 71 pkg-config 72 python3 73 wrapGAppsHook3 74 xorgserver # for cvt command 75 gobject-introspection 76 wayland-scanner 77 ]; 78 79 buildInputs = [ 80 cairo 81 cinnamon-desktop 82 dbus 83 egl-wayland 84 glib 85 gtk3 86 libcanberra 87 libdrm 88 libgbm 89 libgnomekbd 90 libgudev 91 libinput 92 libstartup_notification 93 libwacom 94 libxcvt 95 libXdamage 96 libxkbcommon 97 pipewire 98 udev 99 wayland 100 wayland-protocols 101 xwayland 102 ]; 103 104 propagatedBuildInputs = [ 105 # required for pkg-config to detect muffin-clutter 106 json-glib 107 libXtst 108 graphene 109 mesa-gl-headers 110 ]; 111 112 mesonFlags = [ 113 # Based on Mint's debian/rules. 114 "-Degl_device=true" 115 "-Dwayland_eglstream=true" 116 "-Dxwayland_path=${lib.getExe xwayland}" 117 ]; 118 119 postPatch = '' 120 patchShebangs src/backends/native/gen-default-modes.py 121 ''; 122 123 meta = with lib; { 124 homepage = "https://github.com/linuxmint/muffin"; 125 description = "Window management library for the Cinnamon desktop (libmuffin) and its sample WM binary (muffin)"; 126 mainProgram = "muffin"; 127 license = licenses.gpl2Plus; 128 platforms = platforms.linux; 129 teams = [ teams.cinnamon ]; 130 }; 131}