aboutsummaryrefslogtreecommitdiff
path: root/nixpkgs/pkgs/desktops/cinnamon/cinnamon-common/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/desktops/cinnamon/cinnamon-common/default.nix')
-rw-r--r--nixpkgs/pkgs/desktops/cinnamon/cinnamon-common/default.nix166
1 files changed, 166 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/desktops/cinnamon/cinnamon-common/default.nix b/nixpkgs/pkgs/desktops/cinnamon/cinnamon-common/default.nix
new file mode 100644
index 00000000000..35ca865bc1b
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/cinnamon/cinnamon-common/default.nix
@@ -0,0 +1,166 @@
+{ atk
+, autoreconfHook
+, cacert
+, fetchpatch
+, dbus
+, cinnamon-control-center
+, cinnamon-desktop
+, cinnamon-menus
+, cinnamon-session
+, cjs
+, fetchFromGitHub
+, gdk-pixbuf
+, libgnomekbd
+, glib
+, gobject-introspection
+, gtk3
+, intltool
+, json-glib
+, callPackage
+, libsoup
+, libstartup_notification
+, libXtst
+, muffin
+, networkmanager
+, pkgconfig
+, polkit
+, stdenv
+, wrapGAppsHook
+, libxml2
+, gtk-doc
+, gnome3
+, python3
+, keybinder3
+, cairo
+, xapps
+, upower
+, nemo
+, libnotify
+, accountsservice
+, gnome-online-accounts
+, glib-networking
+, pciutils
+, timezonemap
+, libnma
+}:
+
+let
+ libcroco = callPackage ./libcroco.nix { };
+in
+stdenv.mkDerivation rec {
+ pname = "cinnamon-common";
+ version = "4.6.1";
+
+ src = fetchFromGitHub {
+ owner = "linuxmint";
+ repo = "cinnamon";
+ rev = version;
+ sha256 = "149lhg953fa0glm250f76z2jzyaabh97jxiqkjnqvsk6bjk1d0bw";
+ };
+
+ patches = [
+ # remove dbus-glib
+ (fetchpatch {
+ url = "https://github.com/linuxmint/cinnamon/commit/ce99760fa15c3de2e095b9a5372eeaca646fbed1.patch";
+ sha256 = "0p2sbdi5w7sgblqbgisb6f8lcj1syzq5vlk0ilvwaqayxjylg8gz";
+ })
+ ];
+
+ buildInputs = [
+ # TODO: review if we really need this all
+ (python3.withPackages (pp: with pp; [ dbus-python setproctitle pygobject3 pycairo xapp pillow pytz tinycss2 pam pexpect distro ]))
+ atk
+ cacert
+ cinnamon-control-center
+ cinnamon-desktop
+ cinnamon-menus
+ cjs
+ dbus
+ gdk-pixbuf
+ glib
+ gtk3
+ json-glib
+ libcroco
+ libsoup
+ libstartup_notification
+ libXtst
+ muffin
+ networkmanager
+ pkgconfig
+ polkit
+ libxml2
+ libgnomekbd
+
+ # bindings
+ cairo
+ gnome3.caribou
+ keybinder3
+ upower
+ xapps
+ timezonemap
+ nemo
+ libnotify
+ accountsservice
+ libnma
+
+ # gsi bindings
+ gnome-online-accounts
+ glib-networking # for goa
+ ];
+
+ nativeBuildInputs = [
+ gobject-introspection
+ autoreconfHook
+ wrapGAppsHook
+ intltool
+ gtk-doc
+ ];
+
+ autoreconfPhase = ''
+ GTK_DOC_CHECK=false NOCONFIGURE=1 bash ./autogen.sh
+ '';
+
+ configureFlags = [ "--disable-static" "--with-ca-certificates=${cacert}/etc/ssl/certs/ca-bundle.crt" "--with-libxml=${libxml2.dev}/include/libxml2" "--enable-gtk-doc=no" ];
+
+ postPatch = ''
+ substituteInPlace src/Makefile.am \
+ --replace "\$(libdir)/muffin" "${muffin}/lib/muffin"
+ patchShebangs autogen.sh
+
+ find . -type f -exec sed -i \
+ -e s,/usr/share/cinnamon,$out/share/cinnamon,g \
+ -e s,/usr/share/locale,/run/current-system/sw/share/locale,g \
+ {} +
+
+ sed "s|/usr/share/sounds|/run/current-system/sw/share/sounds|g" -i ./files/usr/share/cinnamon/cinnamon-settings/bin/SettingsWidgets.py
+
+ sed "s|/usr/bin/upload-system-info|${xapps}/bin/upload-system-info|g" -i ./files/usr/share/cinnamon/cinnamon-settings/modules/cs_info.py
+ sed "s|upload-system-info|${xapps}/bin/upload-system-info|g" -i ./files/usr/share/cinnamon/cinnamon-settings/modules/cs_info.py
+
+ sed "s|/usr/bin/cinnamon-control-center|${cinnamon-control-center}/bin/cinnamon-control-center|g" -i ./files/usr/bin/cinnamon-settings
+ # this one really IS optional
+ sed "s|/usr/bin/gnome-control-center|/run/current-system/sw/bin/gnome-control-center|g" -i ./files/usr/bin/cinnamon-settings
+
+ sed "s|\"/usr/lib\"|\"${cinnamon-control-center}/lib\"|g" -i ./files/usr/share/cinnamon/cinnamon-settings/bin/capi.py
+
+ # another bunch of optional stuff
+ sed "s|/usr/bin|/run/current-system/sw/bin|g" -i ./files/usr/bin/cinnamon-launcher
+
+ sed 's|"lspci"|"${pciutils}/bin/lspci"|g' -i ./files/usr/share/cinnamon/cinnamon-settings/modules/cs_info.py
+
+ sed "s| cinnamon-session| ${cinnamon-session}/bin/cinnamon-session|g" -i ./files/usr/bin/cinnamon-session-cinnamon -i ./files/usr/bin/cinnamon-session-cinnamon2d
+ sed "s|/usr/bin|$out/bin|g" -i ./files/usr/share/xsessions/cinnamon.desktop ./files/usr/share/xsessions/cinnamon2d.desktop
+ '';
+
+ passthru = {
+ providedSessions = ["cinnamon" "cinnamon2d"];
+ };
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/linuxmint/cinnamon";
+ description = "The Cinnamon desktop environment";
+ license = [ licenses.gpl2 ];
+ platforms = platforms.linux;
+ maintainers = teams.cinnamon.members;
+ };
+}