c594a97518
GitOrigin-RevId: 301aada7a64812853f2e2634a530ef5d34505048
200 lines
4.7 KiB
Nix
200 lines
4.7 KiB
Nix
{ atk
|
|
, cacert
|
|
, dbus
|
|
, cinnamon-control-center
|
|
, cinnamon-desktop
|
|
, cinnamon-menus
|
|
, cinnamon-session
|
|
, cinnamon-translations
|
|
, cjs
|
|
, clutter
|
|
, fetchFromGitHub
|
|
, gdk-pixbuf
|
|
, gettext
|
|
, libgnomekbd
|
|
, glib
|
|
, gobject-introspection
|
|
, gsound
|
|
, gtk3
|
|
, intltool
|
|
, json-glib
|
|
, callPackage
|
|
, libsoup
|
|
, libstartup_notification
|
|
, libXtst
|
|
, libXdamage
|
|
, muffin
|
|
, networkmanager
|
|
, pkg-config
|
|
, polkit
|
|
, lib
|
|
, stdenv
|
|
, wrapGAppsHook
|
|
, libxml2
|
|
, gtk-doc
|
|
, gnome
|
|
, python3
|
|
, keybinder3
|
|
, cairo
|
|
, xapp
|
|
, upower
|
|
, nemo
|
|
, libnotify
|
|
, accountsservice
|
|
, gnome-online-accounts
|
|
, glib-networking
|
|
, pciutils
|
|
, timezonemap
|
|
, libnma
|
|
, meson
|
|
, ninja
|
|
, gst_all_1
|
|
, perl
|
|
}:
|
|
|
|
stdenv.mkDerivation rec {
|
|
pname = "cinnamon-common";
|
|
version = "5.4.12";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "linuxmint";
|
|
repo = "cinnamon";
|
|
rev = version;
|
|
hash = "sha256-uyQZXri3V3dKnowB97QlPWboZz1neblyvCuSacsPROg=";
|
|
};
|
|
|
|
patches = [
|
|
./use-sane-install-dir.patch
|
|
./libdir.patch
|
|
];
|
|
|
|
buildInputs = [
|
|
(python3.withPackages (pp: with pp; [
|
|
dbus-python
|
|
setproctitle
|
|
pygobject3
|
|
pycairo
|
|
python3.pkgs.xapp # The scope prefix is required
|
|
pillow
|
|
pytz
|
|
tinycss2
|
|
python-pam
|
|
pexpect
|
|
distro
|
|
requests
|
|
]))
|
|
atk
|
|
cacert
|
|
cinnamon-control-center
|
|
cinnamon-desktop
|
|
cinnamon-menus
|
|
cjs
|
|
clutter
|
|
dbus
|
|
gdk-pixbuf
|
|
glib
|
|
gsound
|
|
gtk3
|
|
json-glib
|
|
libsoup # referenced in js/ui/environment.js
|
|
libstartup_notification
|
|
libXtst
|
|
libXdamage
|
|
muffin
|
|
networkmanager
|
|
polkit
|
|
libxml2
|
|
libgnomekbd
|
|
gst_all_1.gstreamer
|
|
|
|
# bindings
|
|
cairo
|
|
gnome.caribou
|
|
keybinder3
|
|
upower
|
|
xapp
|
|
timezonemap
|
|
nemo
|
|
libnotify
|
|
accountsservice
|
|
libnma
|
|
|
|
# gsi bindings
|
|
gnome-online-accounts
|
|
glib-networking # for goa
|
|
];
|
|
|
|
nativeBuildInputs = [
|
|
gobject-introspection
|
|
meson
|
|
ninja
|
|
wrapGAppsHook
|
|
intltool
|
|
gtk-doc
|
|
perl
|
|
python3.pkgs.wrapPython
|
|
pkg-config
|
|
];
|
|
|
|
# use locales from cinnamon-translations (not using --localedir because datadir is used)
|
|
postInstall = ''
|
|
ln -s ${cinnamon-translations}/share/locale $out/share/locale
|
|
'';
|
|
|
|
postPatch = ''
|
|
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|${xapp}/bin/upload-system-info|g" -i ./files/usr/share/cinnamon/cinnamon-settings/modules/cs_info.py
|
|
sed "s|\"upload-system-info\"|\"${xapp}/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
|
|
|
|
sed "s|/usr/bin/cinnamon-screensaver-command|/run/current-system/sw/bin/cinnamon-screensaver-command|g" \
|
|
-i ./files/usr/share/cinnamon/applets/menu@cinnamon.org/applet.js -i ./files/usr/share/cinnamon/applets/user@cinnamon.org/applet.js
|
|
|
|
# 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
|
|
|
|
sed "s|msgfmt|${gettext}/bin/msgfmt|g" -i ./files/usr/share/cinnamon/cinnamon-settings/bin/Spices.py
|
|
|
|
patchShebangs src/data-to-c.pl
|
|
'';
|
|
|
|
preFixup = ''
|
|
# https://github.com/NixOS/nixpkgs/issues/101881
|
|
gappsWrapperArgs+=(
|
|
--prefix XDG_DATA_DIRS : "${gnome.caribou}/share"
|
|
)
|
|
|
|
# https://github.com/NixOS/nixpkgs/issues/129946
|
|
buildPythonPath "${python3.pkgs.xapp}"
|
|
patchPythonScript $out/share/cinnamon/cinnamon-desktop-editor/cinnamon-desktop-editor.py
|
|
'';
|
|
|
|
passthru = {
|
|
providedSessions = [ "cinnamon" "cinnamon2d" ];
|
|
};
|
|
|
|
meta = with lib; {
|
|
homepage = "https://github.com/linuxmint/cinnamon";
|
|
description = "The Cinnamon desktop environment";
|
|
license = [ licenses.gpl2 ];
|
|
platforms = platforms.linux;
|
|
maintainers = teams.cinnamon.members;
|
|
};
|
|
}
|