summary refs log tree commit diff
path: root/pkgs/desktops/cinnamon/muffin/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/desktops/cinnamon/muffin/default.nix')
-rw-r--r--pkgs/desktops/cinnamon/muffin/default.nix115
1 files changed, 115 insertions, 0 deletions
diff --git a/pkgs/desktops/cinnamon/muffin/default.nix b/pkgs/desktops/cinnamon/muffin/default.nix
new file mode 100644
index 00000000000..2913d4761ff
--- /dev/null
+++ b/pkgs/desktops/cinnamon/muffin/default.nix
@@ -0,0 +1,115 @@
+{ fetchFromGitHub
+, cinnamon-desktop
+, glib
+, file
+, gnome3
+, gnome-doc-utils
+, fetchpatch
+, gobject-introspection
+, gtk3
+, intltool
+, json-glib
+, libinput
+, libstartup_notification
+, libXtst
+, libxkbcommon
+, pkgconfig
+, stdenv
+, udev
+, xorg
+, wrapGAppsHook
+, pango
+, cairo
+, gtk-doc
+, docbook_xsl
+, docbook_xml_dtd_43
+, docbook_xml_dtd_42
+, docbook_xml_dtd_412
+, autoconf
+, automake
+, gettext
+, libtool
+}:
+
+# it's a frankensteins monster with some cinnamon sparkles added on top of it
+
+stdenv.mkDerivation rec {
+  pname = "muffin";
+  version = "4.4.2";
+
+  src = fetchFromGitHub {
+    owner = "linuxmint";
+    repo = pname;
+    rev = version;
+    sha256 = "1kzjw4a5p69j8x55vpbpn6gy8pkbbyii6kzw2nzbypmipgnnijw8";
+  };
+
+  patches = [
+    # backport patch that disables wayland components via build flags
+    # https://github.com/linuxmint/muffin/pull/548#issuecomment-578316820
+    (fetchpatch {
+      url = "https://github.com/linuxmint/muffin/commit/f78bf5b309b3d306848f47cc241b31e9399999a7.patch";
+      sha256 = "1c79aa9w2v23xlz86x3l42pavwrqx5d6nmfd9nms29hjsk8mpf4i";
+    })
+    # mute some warnings that caused build failures
+    # https://github.com/linuxmint/muffin/issues/535#issuecomment-536917143
+    (fetchpatch {
+      url = "https://src.fedoraproject.org/rpms/muffin/raw/6b0af3a22173e374804371a1cca74e23d696dd37/f/0001-fix-warnings-when-compiling.patch";
+      sha256 = "15wdbn3afn3103v7rq1icp8n0vqqwrrya03h0g2rzqlrsc7wrvzw";
+    })
+  ];
+
+  buildInputs = [
+    gtk3
+    glib
+    pango
+    cairo
+    json-glib
+    cinnamon-desktop
+    xorg.libXcomposite
+    xorg.libXcursor
+    xorg.libXdamage
+    xorg.libXext
+    xorg.libXfixes
+    xorg.libXi
+    xorg.libxkbfile
+    xorg.xkeyboardconfig
+
+    libxkbcommon
+    gnome3.zenity
+    libinput
+    libstartup_notification
+    libXtst
+    udev
+    gobject-introspection
+  ];
+
+  nativeBuildInputs = [
+    autoconf
+    automake
+    gettext
+    libtool
+    wrapGAppsHook
+    pkgconfig
+    intltool
+
+    gnome-doc-utils
+    gtk-doc
+    docbook_xsl
+    docbook_xml_dtd_43
+    docbook_xml_dtd_42
+    docbook_xml_dtd_412
+  ];
+
+  preConfigure = ''
+    NOCONFIGURE=1 ./autogen.sh
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/linuxmint/muffin";
+    description = "The window management library for the Cinnamon desktop (libmuffin) and its sample WM binary (muffin)";
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.mkg20001 ];
+  };
+}