diff options
Diffstat (limited to 'pkgs/desktops/cinnamon')
-rw-r--r-- | pkgs/desktops/cinnamon/cinnamon-desktop/default.nix | 77 | ||||
-rw-r--r-- | pkgs/desktops/cinnamon/cinnamon-menus/default.nix | 41 | ||||
-rw-r--r-- | pkgs/desktops/cinnamon/cinnamon-settings-daemon/csd-backlight-helper-fix.patch | 48 | ||||
-rw-r--r-- | pkgs/desktops/cinnamon/cinnamon-settings-daemon/default.nix | 111 | ||||
-rw-r--r-- | pkgs/desktops/cinnamon/cinnamon-translations/default.nix | 32 | ||||
-rw-r--r-- | pkgs/desktops/cinnamon/cjs/default.nix | 90 | ||||
-rw-r--r-- | pkgs/desktops/cinnamon/cjs/fix-werror.patch | 39 | ||||
-rw-r--r-- | pkgs/desktops/cinnamon/cjs/spidermonkey_52.nix | 95 | ||||
-rw-r--r-- | pkgs/desktops/cinnamon/default.nix | 8 | ||||
-rw-r--r-- | pkgs/desktops/cinnamon/nemo/default.nix | 76 | ||||
-rw-r--r-- | pkgs/desktops/cinnamon/xapps/default.nix | 4 |
11 files changed, 618 insertions, 3 deletions
diff --git a/pkgs/desktops/cinnamon/cinnamon-desktop/default.nix b/pkgs/desktops/cinnamon/cinnamon-desktop/default.nix new file mode 100644 index 00000000000..a622e6abfd1 --- /dev/null +++ b/pkgs/desktops/cinnamon/cinnamon-desktop/default.nix @@ -0,0 +1,77 @@ +{ fetchFromGitHub +, gdk-pixbuf +, gobject-introspection +, gtk3 +, intltool +, meson +, ninja +, pkgconfig +, pulseaudio +, python3 +, stdenv +, xkeyboard_config +, xorg +, wrapGAppsHook +, glib +}: + +stdenv.mkDerivation rec { + pname = "cinnamon-desktop"; + version = "4.4.0"; + + src = fetchFromGitHub { + owner = "linuxmint"; + repo = pname; + rev = version; + sha256 = "17hb8gkb9pfj56ckva5g4x83yvmdv7hvpidxjsdf79dw6pabr5rg"; + }; + + outputs = [ "out" "dev" ]; + + propagatedBuildInputs = [ + glib + gtk3 + pulseaudio + ]; + + buildInputs = [ + gdk-pixbuf + xkeyboard_config + xorg.libxkbfile + xorg.libXext + xorg.libXrandr + gobject-introspection + ]; + + nativeBuildInputs = [ + meson + ninja + python3 + wrapGAppsHook + intltool + pkgconfig + ]; + + postPatch = '' + chmod +x install-scripts/meson_install_schemas.py # patchShebangs requires executable file + patchShebangs install-scripts/meson_install_schemas.py + sed "s|/usr/share|/run/current-system/sw/share|g" -i ./schemas/* # NOTE: unless this causes a circular dependency, we could link it to cinnamon-common/share/cinnamon + ''; + + meta = with stdenv.lib; { + homepage = "https://github.com/linuxmint/cinnamon-desktop"; + description = "Library and data for various Cinnamon modules"; + + longDescription = '' + The libcinnamon-desktop library provides API shared by several applications + on the desktop, but that cannot live in the platform for various + reasons. There is no API or ABI guarantee, although we are doing our + best to provide stability. Documentation for the API is available with + gtk-doc. + ''; + + license = [ licenses.gpl2 licenses.lgpl2 ]; + platforms = platforms.linux; + maintainers = [ maintainers.mkg20001 ]; + }; +} diff --git a/pkgs/desktops/cinnamon/cinnamon-menus/default.nix b/pkgs/desktops/cinnamon/cinnamon-menus/default.nix new file mode 100644 index 00000000000..47242cdf38a --- /dev/null +++ b/pkgs/desktops/cinnamon/cinnamon-menus/default.nix @@ -0,0 +1,41 @@ +{ fetchFromGitHub +, glib +, gobject-introspection +, meson +, ninja +, pkgconfig +, stdenv +, wrapGAppsHook +}: + +stdenv.mkDerivation rec { + pname = "cinnamon-menus"; + version = "4.4.0"; + + src = fetchFromGitHub { + owner = "linuxmint"; + repo = pname; + rev = version; + sha256 = "0q4qj28swi2y93fj7pfil68l2cf9gmhbk6jmr8d70l54xf7sigsh"; + }; + + buildInputs = [ + glib + gobject-introspection + ]; + + nativeBuildInputs = [ + meson + ninja + wrapGAppsHook + pkgconfig + ]; + + meta = with stdenv.lib; { + homepage = "https://github.com/linuxmint/cinnamon-menus"; + description = "A menu system for the Cinnamon project"; + license = [ licenses.gpl2 licenses.lgpl2 ]; + platforms = platforms.linux; + maintainers = [ maintainers.mkg20001 ]; + }; +} diff --git a/pkgs/desktops/cinnamon/cinnamon-settings-daemon/csd-backlight-helper-fix.patch b/pkgs/desktops/cinnamon/cinnamon-settings-daemon/csd-backlight-helper-fix.patch new file mode 100644 index 00000000000..967ba98eb48 --- /dev/null +++ b/pkgs/desktops/cinnamon/cinnamon-settings-daemon/csd-backlight-helper-fix.patch @@ -0,0 +1,48 @@ +From 6d71bf9764fb81d437678a603826167850bbf453 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Maciej=20Kr=C3=BCger?= <mkg20001@gmail.com> +Date: Tue, 21 Jan 2020 03:19:28 +0100 +Subject: [PATCH] fix: use an impure path to csd-backlight-helper to fix + policy-reload bug + +--- + plugins/power/csd-power-manager.c | 4 ++-- + .../org.cinnamon.settings-daemon.plugins.power.policy.in.in | 2 +- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/plugins/power/csd-power-manager.c b/plugins/power/csd-power-manager.c +index b24c456..212c47e 100755 +--- a/plugins/power/csd-power-manager.c ++++ b/plugins/power/csd-power-manager.c +@@ -2519,7 +2519,7 @@ backlight_helper_get_value (const gchar *argument, CsdPowerManager* manager, + #endif + + /* get the data */ +- command = g_strdup_printf (LIBEXECDIR "/csd-backlight-helper --%s %s", ++ command = g_strdup_printf ("/run/current-system/sw/bin/cinnamon-settings-daemon/csd-backlight-helper --%s %s", + argument, + manager->priv->backlight_helper_preference_args); + ret = g_spawn_command_line_sync (command, +@@ -2609,7 +2609,7 @@ backlight_helper_set_value (const gchar *argument, + #endif + + /* get the data */ +- command = g_strdup_printf ("pkexec " LIBEXECDIR "/csd-backlight-helper --%s %i %s", ++ command = g_strdup_printf ("pkexec " "/run/current-system/sw/bin/cinnamon-settings-daemon/csd-backlight-helper --%s %i %s", + argument, value, + manager->priv->backlight_helper_preference_args); + ret = g_spawn_command_line_sync (command, +diff --git a/plugins/power/org.cinnamon.settings-daemon.plugins.power.policy.in.in b/plugins/power/org.cinnamon.settings-daemon.plugins.power.policy.in.in +index 2c44e62..c0a2348 100755 +--- a/plugins/power/org.cinnamon.settings-daemon.plugins.power.policy.in.in ++++ b/plugins/power/org.cinnamon.settings-daemon.plugins.power.policy.in.in +@@ -25,7 +25,7 @@ + <allow_inactive>no</allow_inactive> + <allow_active>yes</allow_active> + </defaults> +- <annotate key="org.freedesktop.policykit.exec.path">@libexecdir@/csd-backlight-helper</annotate> ++ <annotate key="org.freedesktop.policykit.exec.path">/run/current-system/sw/bin/cinnamon-settings-daemon/csd-backlight-helper</annotate> + </action> + + </policyconfig> +-- +2.24.1 diff --git a/pkgs/desktops/cinnamon/cinnamon-settings-daemon/default.nix b/pkgs/desktops/cinnamon/cinnamon-settings-daemon/default.nix new file mode 100644 index 00000000000..1dc58e3c3b5 --- /dev/null +++ b/pkgs/desktops/cinnamon/cinnamon-settings-daemon/default.nix @@ -0,0 +1,111 @@ +{ fetchFromGitHub +, autoconf-archive +, autoreconfHook +, cinnamon-desktop +, colord +, glib +, gsettings-desktop-schemas +, gtk3 +, intltool +, lcms2 +, libcanberra-gtk3 +, libgnomekbd +, libnotify +, libxklavier +, wrapGAppsHook +, pkgconfig +, pulseaudio +, stdenv +, systemd +, upower +, dconf +, cups +, polkit +, librsvg +, libwacom +, xf86_input_wacom +, xorg +, fontconfig +, tzdata +}: + +stdenv.mkDerivation rec { + pname = "cinnamon-settings-daemon"; + version = "4.4.0"; + + /* csd-power-manager.c:50:10: fatal error: csd-power-proxy.h: No such file or directory + #include "csd-power-proxy.h" + ^~~~~~~~~~~~~~~~~~~ + compilation terminated. */ + + # but this occurs only sometimes, so disabling parallel building + # also see https://github.com/linuxmint/cinnamon-settings-daemon/issues/248 + enableParallelBuilding = false; + + src = fetchFromGitHub { + owner = "linuxmint"; + repo = pname; + rev = version; + sha256 = "1h74d68a7hx85vv6ak26b85jq0wr56ps9rzfvqsnxwk81zxw2n7q"; + }; + + patches = [ + ./csd-backlight-helper-fix.patch + ]; + + NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0"; # TODO: https://github.com/NixOS/nixpkgs/issues/36468 + + buildInputs = [ + cinnamon-desktop + colord + gtk3 + glib + gsettings-desktop-schemas + lcms2 + libcanberra-gtk3 + libgnomekbd + libnotify + libxklavier + pulseaudio + systemd + upower + dconf + cups + polkit + librsvg + libwacom + xf86_input_wacom + xorg.libXext + xorg.libX11 + xorg.libXi + xorg.libXtst + xorg.libXfixes + fontconfig + ]; + + nativeBuildInputs = [ + autoconf-archive + autoreconfHook + wrapGAppsHook + intltool + pkgconfig + ]; + + postPatch = '' + sed "s|/usr/share/zoneinfo|${tzdata}/share/zoneinfo|g" -i plugins/datetime/system-timezone.h + ''; + + # So the polkit policy can reference /run/current-system/sw/bin/cinnamon-settings-daemon/csd-backlight-helper + postFixup = '' + mkdir -p $out/bin/cinnamon-settings-daemon + ln -s $out/libexec/csd-backlight-helper $out/bin/cinnamon-settings-daemon/csd-backlight-helper + ''; + + meta = with stdenv.lib; { + homepage = "https://github.com/linuxmint/cinnamon-settings-daemon"; + description = "The settings daemon for the Cinnamon desktop"; + license = licenses.gpl2; + platforms = platforms.linux; + maintainers = [ maintainers.mkg20001 ]; + }; +} diff --git a/pkgs/desktops/cinnamon/cinnamon-translations/default.nix b/pkgs/desktops/cinnamon/cinnamon-translations/default.nix new file mode 100644 index 00000000000..b03678c5d7a --- /dev/null +++ b/pkgs/desktops/cinnamon/cinnamon-translations/default.nix @@ -0,0 +1,32 @@ +{ stdenv +, fetchFromGitHub +, gettext +}: + +stdenv.mkDerivation rec { + pname = "cinnamon-translations"; + version = "4.4.0"; + + src = fetchFromGitHub { + owner = "linuxmint"; + repo = pname; + rev = version; + sha256 = "0hh6shfj7vc1mw814l38cakfmh135ba8j604h1rmx4zwspwgvgzh"; + }; + + nativeBuildInputs = [ + gettext + ]; + + installPhase = '' + mv usr $out # files get installed like so: msgfmt -o usr/share/locale/$lang/LC_MESSAGES/$dir.mo $file + ''; + + meta = with stdenv.lib; { + homepage = "https://github.com/linuxmint/cinnamon-translations"; + description = "Translations files for the Cinnamon desktop"; + license = licenses.gpl2; + platforms = platforms.linux; + maintainers = [ maintainers.mkg20001 ]; + }; +} diff --git a/pkgs/desktops/cinnamon/cjs/default.nix b/pkgs/desktops/cinnamon/cjs/default.nix new file mode 100644 index 00000000000..9dbab8fd767 --- /dev/null +++ b/pkgs/desktops/cinnamon/cjs/default.nix @@ -0,0 +1,90 @@ +{ autoconf-archive +, autoreconfHook +, dbus-glib +, fetchFromGitHub +, gobject-introspection +, pkgconfig +, stdenv +, wrapGAppsHook +, python3 +, cairo +, gnome3 +, xapps +, keybinder3 +, upower +, callPackage +, glib +, libffi +, gtk3 +, readline +, networkmanagerapplet +}: + +let + + # https://github.com/linuxmint/cjs/issues/80 + spidermonkey_52 = callPackage ./spidermonkey_52.nix {}; + +in + +stdenv.mkDerivation rec { + pname = "cjs"; + version = "4.4.0"; + + src = fetchFromGitHub { + owner = "linuxmint"; + repo = pname; + rev = version; + sha256 = "0q5h2pbwysc6hwq5js3lwi6zn7i5qjjy070ynfhfn3z69lw5iz2d"; + }; + + propagatedBuildInputs = [ + glib + + # bindings + gnome3.caribou + keybinder3 + upower + xapps + networkmanagerapplet + ]; + + nativeBuildInputs = [ + autoconf-archive + autoreconfHook + wrapGAppsHook + pkgconfig + ]; + + buildInputs = [ + # from .pc + gobject-introspection + libffi + spidermonkey_52 # mozjs-52 + cairo # +cairo-gobject + gtk3 + + # other + + dbus-glib + readline + ]; + + meta = with stdenv.lib; { + homepage = "https://github.com/linuxmint/cjs"; + description = "JavaScript bindings for Cinnamon"; + + longDescription = '' + This module contains JavaScript bindings based on gobject-introspection. + ''; + + license = with licenses; [ + gpl2Plus + lgpl2Plus + mit + mpl11 + ]; + platforms = platforms.linux; + maintainers = [ maintainers.mkg20001 ]; + }; +} diff --git a/pkgs/desktops/cinnamon/cjs/fix-werror.patch b/pkgs/desktops/cinnamon/cjs/fix-werror.patch new file mode 100644 index 00000000000..0218eba3b46 --- /dev/null +++ b/pkgs/desktops/cinnamon/cjs/fix-werror.patch @@ -0,0 +1,39 @@ +From 1b802175914418f5675047c34f1ab1593dd35b18 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Maciej=20Kr=C3=BCger?= <mkg20001@gmail.com> +Date: Wed, 8 Jan 2020 11:04:27 +0100 +Subject: [PATCH] fix werror + +--- + js/src/moz.build | 2 +- + js/src/shell/moz.build | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/js/src/moz.build b/js/src/moz.build +index 1162cb70c..595ea9842 100644 +--- a/js/src/moz.build ++++ b/js/src/moz.build +@@ -785,7 +785,7 @@ if CONFIG['JS_HAS_CTYPES']: + DEFINES['FFI_BUILDING'] = True + + if CONFIG['GNU_CXX']: +- CXXFLAGS += ['-Wno-shadow', '-Werror=format'] ++ CXXFLAGS += ['-Wno-shadow'] + + # Suppress warnings in third-party code. + if CONFIG['CLANG_CXX']: +diff --git a/js/src/shell/moz.build b/js/src/shell/moz.build +index 72ea8145c..77475b241 100644 +--- a/js/src/shell/moz.build ++++ b/js/src/shell/moz.build +@@ -51,7 +51,7 @@ shellmoduleloader.inputs = [ + ] + + if CONFIG['GNU_CXX']: +- CXXFLAGS += ['-Wno-shadow', '-Werror=format'] ++ CXXFLAGS += ['-Wno-shadow'] + + # This is intended as a temporary workaround to enable VS2015. + if CONFIG['_MSC_VER']: +-- +2.17.1 + diff --git a/pkgs/desktops/cinnamon/cjs/spidermonkey_52.nix b/pkgs/desktops/cinnamon/cjs/spidermonkey_52.nix new file mode 100644 index 00000000000..87f670c8c09 --- /dev/null +++ b/pkgs/desktops/cinnamon/cjs/spidermonkey_52.nix @@ -0,0 +1,95 @@ +{ stdenv, fetchurl, fetchpatch, autoconf213, pkgconfig, perl, zip, which, readline, icu, zlib, nspr, buildPackages }: + +let + version = "52.9.0"; +in stdenv.mkDerivation { + pname = "spidermonkey"; + inherit version; + + src = fetchurl { + url = "mirror://mozilla/firefox/releases/${version}esr/source/firefox-${version}esr.source.tar.xz"; + sha256 = "1mlx34fgh1kaqamrkl5isf0npch3mm6s4lz3jsjb7hakiijhj7f0"; + }; + + outputs = [ "out" "dev" ]; + setOutputFlags = false; # Configure script only understands --includedir + + buildInputs = [ readline icu zlib nspr ]; + nativeBuildInputs = [ autoconf213 pkgconfig perl which buildPackages.python2 zip ]; + + # Apparently this package fails to build correctly with modern compilers, which at least + # on ARMv6 causes polkit testsuite to break with an assertion failure in spidermonkey. + # These flags were stolen from: + # https://git.archlinux.org/svntogit/packages.git/tree/trunk/PKGBUILD?h=packages/js52 + NIX_CFLAGS_COMPILE = "-fno-delete-null-pointer-checks -fno-strict-aliasing -fno-tree-vrp"; + + patches = [ + # needed to build gnome3.gjs + (fetchpatch { + name = "mozjs52-disable-mozglue.patch"; + url = https://git.archlinux.org/svntogit/packages.git/plain/trunk/mozjs52-disable-mozglue.patch?h=packages/js52&id=4279d2e18d9a44f6375f584911f63d13de7704be; + sha256 = "18wkss0agdyff107p5lfflk72qiz350xqw2yqc353alkx4fsfpz0"; + }) + (fetchpatch { + url = https://git.archlinux.org/svntogit/packages.git/plain/trunk/no-error.diff?h=packages/js52; + sha256 = "1vsw6558lxiy0r1mg6y49cgddan1mfqvqlkyv734bgxyg6n3pb9i"; + }) + ./fix-werror.patch + ]; + + configurePlatforms = [ ]; + + preConfigure = '' + export CXXFLAGS="-fpermissive" + export LIBXUL_DIST=$out + export PYTHON="${buildPackages.python2.interpreter}" + configureFlagsArray+=("--includedir=$dev/include") + + cd js/src + + autoconf + ''; + + configureFlags = [ + "--with-nspr-prefix=${nspr}" + "--with-system-zlib" + "--with-system-icu" + "--with-intl-api" + "--enable-readline" + "--enable-shared-js" + ] ++ stdenv.lib.optional stdenv.hostPlatform.isMusl "--disable-jemalloc" + ++ stdenv.lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ + "--host=${stdenv.buildPlatform.config}" + "--target=${stdenv.hostPlatform.config}" + ]; + + makeFlags = [ + "HOST_CC=${buildPackages.stdenv.cc}/bin/cc" + ]; + + depsBuildBuild = [ buildPackages.stdenv.cc ]; + + enableParallelBuilding = true; + + postInstall = '' + moveToOutput bin/js52-config "$dev" + # Nuke a static lib. + rm $out/lib/libjs_static.ajs + ''; + + meta = with stdenv.lib; { + description = "Mozilla's JavaScript engine written in C/C++"; + homepage = https://developer.mozilla.org/en/SpiderMonkey; + license = licenses.gpl2; # TODO: MPL/GPL/LGPL tri-license. + maintainers = [ maintainers.abbradar ]; + platforms = platforms.linux; + + # Commented out so hydra builds the package + # (I know what you're thinking now, but cjs won't be pulling anything from the network + # and modules are allowed to execute commands anyways, so an RCE is basically irrelevant) + # + # knownVulnerabilities = [ + # "The runtime was extracted from Firefox 52, which EOL’d on September 5, 2018." + # ]; + }; +} diff --git a/pkgs/desktops/cinnamon/default.nix b/pkgs/desktops/cinnamon/default.nix index 44589078241..b077ad18476 100644 --- a/pkgs/desktops/cinnamon/default.nix +++ b/pkgs/desktops/cinnamon/default.nix @@ -1,5 +1,11 @@ { pkgs, lib }: lib.makeScope pkgs.newScope (self: with self; { - xapps = callPackage ./xapps {}; + cinnamon-desktop = callPackage ./cinnamon-desktop { }; + cinnamon-menus = callPackage ./cinnamon-menus { }; + cinnamon-translations = callPackage ./cinnamon-translations { }; + cinnamon-settings-daemon = callPackage ./cinnamon-settings-daemon { }; + cjs = callPackage ./cjs { }; + nemo = callPackage ./nemo { }; + xapps = callPackage ./xapps { }; }) diff --git a/pkgs/desktops/cinnamon/nemo/default.nix b/pkgs/desktops/cinnamon/nemo/default.nix new file mode 100644 index 00000000000..419aaf249f7 --- /dev/null +++ b/pkgs/desktops/cinnamon/nemo/default.nix @@ -0,0 +1,76 @@ +{ fetchFromGitHub +, fetchpatch +, glib +, gobject-introspection +, meson +, ninja +, pkgconfig +, stdenv +, wrapGAppsHook +, libxml2 +, gtk3 +, libnotify +, cinnamon-desktop +, xapps +, libexif +, exempi +, intltool +, shared-mime-info +}: + +stdenv.mkDerivation rec { + pname = "nemo"; + version = "4.4.1"; + + # TODO: add plugins support (see https://github.com/NixOS/nixpkgs/issues/78327) + + src = fetchFromGitHub { + owner = "linuxmint"; + repo = pname; + rev = version; + sha256 = "0sskq0rssxvna937md446x1489hkhxys1zq03hvl8asjqa259w2q"; + }; + + patches = [ + (fetchpatch { # details see https://github.com/linuxmint/nemo/pull/2303 + url = "https://github.com/linuxmint/nemo/pull/2303/commits/9c1ec7812abe712419317df07d6b64623e8f639d.patch"; + sha256 = "09dz7lq3i47rbvycawrxwgjmd9g1mhb76ibx2vq85wck6r08arml"; + }) + ]; + + outputs = [ "out" "dev" ]; + + buildInputs = [ + glib + gtk3 + libnotify + cinnamon-desktop + libxml2 + xapps + libexif + exempi + gobject-introspection + ]; + + nativeBuildInputs = [ + meson + pkgconfig + ninja + wrapGAppsHook + intltool + shared-mime-info + ]; + + mesonFlags = [ + # TODO: https://github.com/NixOS/nixpkgs/issues/36468 + "-Dc_args=-I${glib.dev}/include/gio-unix-2.0" + ]; + + meta = with stdenv.lib; { + homepage = "https://github.com/linuxmint/nemo"; + description = "File browser for Cinnamon"; + license = [ licenses.gpl2 licenses.lgpl2 ]; + platforms = platforms.linux; + maintainers = [ maintainers.mkg20001 ]; + }; +} diff --git a/pkgs/desktops/cinnamon/xapps/default.nix b/pkgs/desktops/cinnamon/xapps/default.nix index f63ab3cedd8..dce9d6f666a 100644 --- a/pkgs/desktops/cinnamon/xapps/default.nix +++ b/pkgs/desktops/cinnamon/xapps/default.nix @@ -20,7 +20,7 @@ stdenv.mkDerivation rec { pname = "xapps"; - version = "1.6.8"; + version = "1.6.10"; outputs = [ "out" "dev" ]; @@ -28,7 +28,7 @@ stdenv.mkDerivation rec { owner = "linuxmint"; repo = pname; rev = version; - sha256 = "09f77vsydv8r6r43py8hrpq7pb4a1pfivy19zgijjy2241i7059v"; + sha256 = "1jkxvqv9fxf9il5qfyddn4j4nkxgbxlil8vizbx99xz0kafb81vp"; }; # TODO: https://github.com/NixOS/nixpkgs/issues/36468 |