167 lines
4.1 KiB
Nix
167 lines
4.1 KiB
Nix
|
{ 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;
|
||
|
};
|
||
|
}
|