git.iko.soy/typeable/nixpkgs
on master help sign in
Merge master into haskell-updates
commit7f8bee8617bdd916a92f8342fde153e35b4fa55a authorgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> dateSun 19 Sep 2021, 00:06 (5 years ago) parent77adbb91cf01b5
246 files changed+3593−2544
maintainers/maintainer-list.nix+16 nixos/doc/manual/from_md/release-notes/rl-2111.section.xml+61−4 nixos/doc/manual/release-notes/rl-2111.section.md+17−1 nixos/modules/config/console.nix+5−1 nixos/modules/misc/ids.nix+7−7 nixos/modules/module-list.nix+2 nixos/modules/programs/bandwhich.nix+3−1 nixos/modules/programs/captive-browser.nix+4 nixos/modules/programs/ccache.nix+2 nixos/modules/programs/firejail.nix+6−1 nixos/modules/programs/gamemode.nix+2 nixos/modules/programs/iftop.nix+3−1 nixos/modules/programs/iotop.nix+3−1 nixos/modules/programs/kbdlight.nix+6−1 nixos/modules/programs/liboping.nix+3−1 nixos/modules/programs/msmtp.nix+2 nixos/modules/programs/mtr.nix+3−1 nixos/modules/programs/noisetorch.nix+3−1 nixos/modules/programs/shadow.nix+14−7 nixos/modules/programs/singularity.nix+6−1 nixos/modules/programs/slock.nix+6−1 nixos/modules/programs/ssmtp.nix+2 nixos/modules/programs/traceroute.nix+3−1 nixos/modules/programs/udevil.nix+6−1 nixos/modules/programs/wavemon.nix+3−1 nixos/modules/programs/wshowkeys.nix+6−1 nixos/modules/security/chromium-suid-sandbox.nix+6−1 nixos/modules/security/doas.nix+6−3 nixos/modules/security/duosec.nix+6−1 nixos/modules/security/pam.nix+3−2 nixos/modules/security/pam_usb.nix+12−2 nixos/modules/security/polkit.nix+12−2 nixos/modules/security/wrappers/default.nix+188−94 nixos/modules/services/cluster/spark/default.nix+162 nixos/modules/services/desktops/gnome/gnome-keyring.nix+3−1 nixos/modules/services/logging/logcheck.nix+5−1 nixos/modules/services/mail/exim.nix+6−1 nixos/modules/services/mail/mail.nix+2−1 nixos/modules/services/mail/opensmtpd.nix+4−1 nixos/modules/services/mail/postfix.nix+4 nixos/modules/services/misc/cgminer.nix+6−2 nixos/modules/services/misc/gammu-smsd.nix+2−2 nixos/modules/services/misc/gpsd.nix+1 nixos/modules/services/misc/mame.nix+3−1 nixos/modules/services/misc/weechat.nix+6−1 nixos/modules/services/monitoring/heapster.nix+3−1 nixos/modules/services/monitoring/incron.nix+6−1 nixos/modules/services/monitoring/zabbix-proxy.nix+6−1 nixos/modules/services/networking/nntp-proxy.nix+7−7 nixos/modules/services/networking/ntp/ntpd.nix+6−6 nixos/modules/services/networking/ntp/openntpd.nix+3−1 nixos/modules/services/networking/smokeping.nix+12−2 nixos/modules/services/networking/unifi.nix+3−1 nixos/modules/services/networking/x2goserver.nix+2 nixos/modules/services/scheduling/cron.nix+6−1 nixos/modules/services/scheduling/fcron.nix+3 nixos/modules/services/video/replay-sorcery.nix+3−1 nixos/modules/services/web-apps/dokuwiki.nix+327−268 nixos/modules/services/x11/desktop-managers/cde.nix+3−2 nixos/modules/services/x11/desktop-managers/enlightenment.nix+18−3 nixos/modules/services/x11/desktop-managers/pantheon.nix+16−10 nixos/modules/services/x11/desktop-managers/pantheon.xml+1−1 nixos/modules/services/x11/desktop-managers/plasma5.nix+18−6 nixos/modules/services/x11/extra-layouts.nix+6−46 nixos/modules/services/x11/touchegg.nix+38 nixos/modules/services/x11/xserver.nix+3 nixos/modules/system/activation/activation-script.nix+1 nixos/modules/tasks/filesystems/ecryptfs.nix+12−2 nixos/modules/tasks/network-interfaces.nix+7−2 nixos/modules/virtualisation/libvirtd.nix+3 nixos/modules/virtualisation/spice-usb-redirection.nix+4−2 nixos/tests/all-tests.nix+1 nixos/tests/dokuwiki.nix+60−25 nixos/tests/pantheon.nix+2−2 nixos/tests/spark/default.nix+28 nixos/tests/spark/spark_sample.py+40 nixos/tests/user-activation-scripts.nix+33 pkgs/applications/radio/pyradio/default.nix → pkgs/applications/audio/pyradio/default.nix pkgs/applications/audio/sidplayfp/default.nix+2−2 pkgs/applications/editors/emacs/elisp-packages/ement/default.nix+11−7 pkgs/applications/editors/emacs/elisp-packages/ement/handle-nil-images.patch+28 pkgs/applications/misc/gpxsee/default.nix+2−2 pkgs/applications/networking/browsers/chromium/common.nix+2−1 pkgs/applications/networking/browsers/chromium/upstream-info.json+6−6 pkgs/applications/networking/browsers/palemoon/default.nix+7−10 pkgs/applications/networking/cluster/bosh-cli/default.nix+2−2 pkgs/applications/networking/cluster/minikube/default.nix+3−3 pkgs/applications/networking/cluster/spark/default.nix+64−45 pkgs/applications/networking/instant-messengers/ferdi/default.nix+2−2 pkgs/applications/networking/instant-messengers/signal-desktop/default.nix+2−2 pkgs/applications/science/biology/bowtie/default.nix+2−2 pkgs/applications/system/monitor/default.nix+2−2 pkgs/applications/video/streamlink/default.nix+9−5 pkgs/applications/virtualization/catatonit/default.nix+3−11 pkgs/applications/virtualization/lima/default.nix+3−3 pkgs/desktops/gnome/core/epiphany/dark-style.patch+76 pkgs/desktops/gnome/core/epiphany/default.nix+11−2 pkgs/desktops/gnome/core/epiphany/navigation-buttons.patch+12 pkgs/desktops/gnome/core/gnome-settings-daemon/3.38/default.nix+135 pkgs/desktops/pantheon/services/elementary-settings-daemon/fix-paths.patch → pkgs/desktops/gnome/core/gnome-settings-daemon/3.38/fix-paths.patch pkgs/desktops/gnome/core/mutter/3.34/0001-EGL-Include-EGL-eglmesaext.h.patch−74 pkgs/desktops/gnome/core/mutter/3.34/0002-drop-inheritable.patch−135 pkgs/desktops/gnome/core/mutter/3.34/0003-Fix-glitches-in-gala.patch−33 pkgs/desktops/gnome/core/mutter/3.34/0004-profiler-track-changes-in-GLib-and-Sysprof.patch−58 pkgs/desktops/gnome/core/mutter/3.34/0005-meta-Add-missing-display.h-to-meta-workspace-manager.h.patch−32 pkgs/desktops/gnome/core/mutter/3.34/0006-build-bump-ABI-to-sysprof-capture-4.patch−102 pkgs/desktops/gnome/core/mutter/3.34/0007-fix-paths.patch−27 pkgs/desktops/gnome/core/mutter/3.34/default.nix → pkgs/desktops/gnome/core/mutter/3.38/default.nix+62−32 pkgs/desktops/gnome/core/mutter/drop-inheritable.patch → pkgs/desktops/gnome/core/mutter/3.38/drop-inheritable.patch pkgs/desktops/gnome/core/mutter/3.38/fix-glitches-in-gala.patch+27 pkgs/desktops/gnome/core/mutter/3.38/fix-paths.patch+13 pkgs/desktops/gnome/default.nix+8−4 pkgs/desktops/pantheon/apps/appcenter/default.nix+8−2 pkgs/desktops/pantheon/apps/appcenter/flatpak-only.patch+196 pkgs/desktops/pantheon/apps/elementary-calculator/default.nix+5−2 pkgs/desktops/pantheon/apps/elementary-calendar/default.nix+4−2 pkgs/desktops/pantheon/apps/elementary-camera/default.nix+6−4 pkgs/desktops/pantheon/apps/elementary-code/default.nix+11−4 pkgs/desktops/pantheon/apps/elementary-dock/default.nix+5−12 pkgs/desktops/pantheon/apps/elementary-feedback/default.nix+12−2 pkgs/desktops/pantheon/apps/elementary-files/0001-filechooser-module-hardcode-gsettings-for-nixos.patch−35 pkgs/desktops/pantheon/apps/elementary-files/default.nix+9−7 pkgs/desktops/pantheon/apps/elementary-files/filechooser-portal-hardcode-gsettings-for-nixos.patch+24 pkgs/desktops/pantheon/apps/elementary-mail/default.nix+9−2 pkgs/desktops/pantheon/apps/elementary-mail/revert-fix-warning.patch+55 pkgs/desktops/pantheon/apps/elementary-music/default.nix+14−4 pkgs/desktops/pantheon/apps/elementary-photos/default.nix+10−2 pkgs/desktops/pantheon/apps/elementary-screenshot-tool/default.nix → pkgs/desktops/pantheon/apps/elementary-screenshot/default.nix+5−3 pkgs/desktops/pantheon/apps/elementary-tasks/default.nix+84 pkgs/desktops/pantheon/apps/elementary-terminal/default.nix+9 pkgs/desktops/pantheon/apps/elementary-videos/default.nix+10 pkgs/desktops/pantheon/apps/sideload/default.nix+4−2 pkgs/desktops/pantheon/apps/switchboard-plugs/a11y/default.nix+12−3 pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix+13−24 pkgs/desktops/pantheon/apps/switchboard-plugs/about/fix-paths.patch−26 pkgs/desktops/pantheon/apps/switchboard-plugs/about/remove-logo-background.patch+36 pkgs/desktops/pantheon/apps/switchboard-plugs/applications/default.nix+15−3 pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix+12−2 pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/default.nix+16−2 pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/fix-paths.patch+15 pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix+3−3 pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/0001-Remove-Install-Unlisted-Engines-function.patch+28−30 pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix+14−3 pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/fix-paths.patch+13 pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix+26−5 pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/fix-paths.patch+13 pkgs/desktops/pantheon/apps/switchboard-plugs/network/default.nix+3−3 pkgs/desktops/pantheon/apps/switchboard-plugs/notifications/default.nix+11−2 pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix+13−22 pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/default.nix+36−5 pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix+4−12 pkgs/desktops/pantheon/apps/switchboard-plugs/power/dpms-helper-exec.patch−13 pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix+7−6 pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/default.nix+9−8 pkgs/desktops/pantheon/apps/switchboard-plugs/sharing/default.nix+12−3 pkgs/desktops/pantheon/apps/switchboard-plugs/sound/default.nix+13−5 pkgs/desktops/pantheon/apps/switchboard-plugs/wacom/default.nix+72 pkgs/desktops/pantheon/apps/switchboard/default.nix+11−2 pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix+4−2 pkgs/desktops/pantheon/artwork/elementary-wallpapers/default.nix+2−2 pkgs/desktops/pantheon/default.nix+25−16 pkgs/desktops/pantheon/desktop/elementary-default-settings/0001-Build-with-Meson.patch−309 pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix+6−24 pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/io.elementary.mail.dockitem+2 pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/org.gnome.Geary.dockitem−2 pkgs/desktops/pantheon/desktop/elementary-default-settings/overrides/plank-dockitems.gschema.override+1−1 pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix+15−6 pkgs/desktops/pantheon/desktop/elementary-gsettings-schemas/default.nix+2−2 pkgs/desktops/pantheon/desktop/elementary-onboarding/default.nix+11−14 pkgs/desktops/pantheon/desktop/elementary-onboarding/fix-paths.patch+13 pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix+7−8 pkgs/desktops/pantheon/desktop/elementary-session-settings/pantheon-mimeapps.list+1−1 pkgs/desktops/pantheon/desktop/elementary-shortcut-overlay/default.nix+14−2 pkgs/desktops/pantheon/desktop/gala/default.nix+10−8 pkgs/desktops/pantheon/desktop/gala/plugins-dir.patch+6−5 pkgs/desktops/pantheon/desktop/gala/use-new-notifications-default.patch−13 pkgs/desktops/pantheon/desktop/wingpanel-indicators/a11y/default.nix+70 pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix+2−12 pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/fix-paths.patch+4−4 pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix+3−3 pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix+20−3 pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/fix-paths.patch+13 pkgs/desktops/pantheon/desktop/wingpanel-indicators/keyboard/default.nix+12−3 pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/default.nix+18−2 pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/fix-paths.patch+13 pkgs/desktops/pantheon/desktop/wingpanel-indicators/nightlight/default.nix+12−4 pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix+8−6 pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/default.nix+14−3 pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/fix-paths.patch+13 pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix+14−3 pkgs/desktops/pantheon/desktop/wingpanel-indicators/sound/default.nix+13−3 pkgs/desktops/pantheon/desktop/wingpanel/default.nix+3−3 pkgs/desktops/pantheon/granite/default.nix+2−2 pkgs/desktops/pantheon/services/contractor/default.nix+2−2 pkgs/desktops/pantheon/services/elementary-capnet-assist/default.nix+5−3 pkgs/desktops/pantheon/services/elementary-dpms-helper/default.nix−66 pkgs/desktops/pantheon/services/elementary-notifications/default.nix+5−3 pkgs/desktops/pantheon/services/elementary-settings-daemon/default.nix+31−130 pkgs/desktops/pantheon/services/elementary-settings-daemon/elementary-dpms.patch−84 pkgs/desktops/pantheon/services/elementary-settings-daemon/global-backlight-helper.patch−26 pkgs/desktops/pantheon/services/pantheon-agent-geoclue2/default.nix+2−2 pkgs/desktops/pantheon/services/pantheon-agent-polkit/default.nix+2−2 pkgs/development/libraries/cmark-gfm/default.nix+2−2 pkgs/development/libraries/intel-gmmlib/default.nix+2−2 pkgs/development/libraries/memorymapping/default.nix+3−1 pkgs/development/libraries/rdkafka/default.nix+2−2 pkgs/development/libraries/science/math/openlibm/default.nix+2−2 pkgs/development/ocaml-modules/omd/default.nix+5−1 pkgs/development/python-modules/aiobotocore/default.nix+1−1 pkgs/development/python-modules/hdate/default.nix+2−2 pkgs/development/python-modules/pook/default.nix+2−12 pkgs/development/python-modules/pyturbojpeg/default.nix+2−2 pkgs/development/tools/pscale/default.nix+3−3 pkgs/development/tools/stylua/default.nix+3−3 pkgs/development/tools/trunk/default.nix+6−3 pkgs/misc/vim-plugins/generated.nix+237−225 pkgs/misc/vim-plugins/overrides.nix+1−1 pkgs/misc/vim-plugins/vim-plugin-names+1 pkgs/misc/vim-plugins/vim-utils.nix+5−3 pkgs/misc/vscode-extensions/default.nix+21−4 pkgs/os-specific/linux/procdump/default.nix+2−2 pkgs/servers/computing/slurm/default.nix+2−2 pkgs/servers/gerbera/default.nix+2−2 pkgs/servers/home-assistant/default.nix+1−1 pkgs/servers/nosql/apache-jena/binary.nix+2−2 pkgs/servers/nosql/apache-jena/fuseki-binary.nix+4−3 pkgs/servers/pleroma/default.nix+2−2 pkgs/servers/sql/materialize/default.nix+7−4 pkgs/tools/audio/abcmidi/default.nix+2−2 pkgs/tools/audio/tts/default.nix+2−2 pkgs/tools/backup/autorestic/default.nix+32 pkgs/tools/filesystems/tar2ext4/default.nix+2−2 pkgs/tools/inputmethods/touchegg/default.nix+56−15 pkgs/tools/misc/macchina/default.nix+3−3 pkgs/tools/misc/mmv-go/default.nix+3−3 pkgs/tools/misc/yt-dlp/default.nix−6 pkgs/tools/networking/atftp/default.nix+10−4 pkgs/tools/networking/innernet/default.nix+3−3 pkgs/tools/networking/proxychains-ng/default.nix+24 pkgs/tools/networking/sish/default.nix+3−3 pkgs/tools/security/hcxtools/default.nix+2−2 pkgs/tools/security/kubesec/default.nix+3−3 pkgs/tools/text/crowdin-cli/default.nix+2−2 pkgs/tools/text/difftastic/default.nix+16−5 pkgs/tools/text/ocrmypdf/default.nix+4−4 pkgs/top-level/all-packages.nix+11−4
maintainers/maintainer-list.nix+16
@@ -9182,6 +9182,12 @@
91829182 githubId = 546296;
91839183 name = "Eric Ren";
91849184 };
9185+ renesat = {
9186+ name = "Ivan Smolyakov";
9187+ email = "smol.ivan97@gmail.com";
9188+ github = "renesat";
9189+ githubId = 11363539;
9190+ };
91859191 renzo = {
91869192 email = "renzocarbonara@gmail.com";
91879193 github = "k0001";
@@ -12512,6 +12518,16 @@
1251212518 fingerprint = "61AE D40F 368B 6F26 9DAE 3892 6861 6B2D 8AC4 DCC5";
1251312519 }];
1251412520 };
12521+ zenithal = {
12522+ name = "zenithal";
12523+ email = "i@zenithal.me";
12524+ github = "ZenithalHourlyRate";
12525+ githubId = 19512674;
12526+ keys = [{
12527+ longkeyid = "rsa4096/0x87E17EEF9B18B6C9";
12528+ fingerprint = "1127 F188 280A E312 3619 3329 87E1 7EEF 9B18 B6C9";
12529+ }];
12530+ };
1251512531 zeri = {
1251612532 name = "zeri";
1251712533 email = "68825133+zeri42@users.noreply.github.com";
nixos/doc/manual/from_md/release-notes/rl-2111.section.xml+61−4
@@ -37,6 +37,13 @@
3737 PostgreSQL now defaults to major version 13.
3838 </para>
3939 </listitem>
40+ <listitem>
41+ <para>
42+ spark now defaults to spark 3, updated from 2. A
43+ <link xlink:href="https://spark.apache.org/docs/latest/core-migration-guide.html#upgrading-from-core-24-to-30">migration
44+ guide</link> is available.
45+ </para>
46+ </listitem>
4047 <listitem>
4148 <para>
4249 Activation scripts can now opt int to be run when running
@@ -48,6 +55,13 @@
4855 actions.
4956 </para>
5057 </listitem>
58+ <listitem>
59+ <para>
60+ Pantheon desktop has been updated to version 6. Due to changes
61+ of screen locker, if locking doesn’t work for you, please try
62+ <literal>gsettings set org.gnome.desktop.lockdown disable-lock-screen false</literal>.
63+ </para>
64+ </listitem>
5165 </itemizedlist>
5266 </section>
5367 <section xml:id="sec-release-21.11-new-services">
@@ -182,8 +196,6 @@
182196 <link linkend="opt-services.isso.enable">isso</link>
183197 </para>
184198 </listitem>
185− </itemizedlist>
186− <itemizedlist spacing="compact">
187199 <listitem>
188200 <para>
189201 <link xlink:href="https://www.navidrome.org/">navidrome</link>,
@@ -192,8 +204,6 @@
192204 <link linkend="opt-services.navidrome.enable">navidrome</link>.
193205 </para>
194206 </listitem>
195− </itemizedlist>
196− <itemizedlist>
197207 <listitem>
198208 <para>
199209 <link xlink:href="https://docs.fluidd.xyz/">fluidd</link>, a
@@ -250,11 +260,34 @@
250260 entry</link>.
251261 </para>
252262 </listitem>
263+ <listitem>
264+ <para>
265+ <link xlink:href="https://spark.apache.org/">spark</link>, a
266+ unified analytics engine for large-scale data processing.
267+ </para>
268+ </listitem>
269+ <listitem>
270+ <para>
271+ <link xlink:href="https://github.com/JoseExposito/touchegg">touchegg</link>,
272+ a multi-touch gesture recognizer. Available as
273+ <link linkend="opt-services.touchegg.enable">services.touchegg</link>.
274+ </para>
275+ </listitem>
253276 </itemizedlist>
254277 </section>
255278 <section xml:id="sec-release-21.11-incompatibilities">
256279 <title>Backward Incompatibilities</title>
257280 <itemizedlist>
281+ <listitem>
282+ <para>
283+ The <literal>security.wrappers</literal> option now requires
284+ to always specify an owner, group and whether the
285+ setuid/setgid bit should be set. This is motivated by the fact
286+ that before NixOS 21.11, specifying either setuid or setgid
287+ but not owner/group resulted in wrappers owned by
288+ nobody/nogroup, which is unsafe.
289+ </para>
290+ </listitem>
258291 <listitem>
259292 <para>
260293 The <literal>paperless</literal> module and package have been
@@ -1016,6 +1049,14 @@ Superuser created successfully.
10161049 attempts from the SSH logs.
10171050 </para>
10181051 </listitem>
1052+ <listitem>
1053+ <para>
1054+ The
1055+ <link xlink:href="options.html#opt-services.xserver.extraLayouts"><literal>services.xserver.extraLayouts</literal></link>
1056+ no longer cause additional rebuilds when a layout is added or
1057+ modified.
1058+ </para>
1059+ </listitem>
10191060 <listitem>
10201061 <para>
10211062 Sway: The terminal emulator <literal>rxvt-unicode</literal> is
@@ -1067,6 +1108,22 @@ Superuser created successfully.
10671108 be removed in 22.05.
10681109 </para>
10691110 </listitem>
1111+ <listitem>
1112+ <para>
1113+ The dokuwiki module provides a new interface which allows to
1114+ use different webservers with the new option
1115+ <link xlink:href="options.html#opt-services.dokuwiki.webserver"><literal>services.dokuwiki.webserver</literal></link>.
1116+ Currently <literal>caddy</literal> and
1117+ <literal>nginx</literal> are supported. The definitions of
1118+ dokuwiki sites should now be set in
1119+ <link xlink:href="options.html#opt-services.dokuwiki.sites"><literal>services.dokuwiki.sites</literal></link>.
1120+ </para>
1121+ <para>
1122+ Sites definitions that use the old interface are automatically
1123+ migrated in the new option. This backward compatibility will
1124+ be removed in 22.05.
1125+ </para>
1126+ </listitem>
10701127 <listitem>
10711128 <para>
10721129 The order of NSS (host) modules has been brought in line with
nixos/doc/manual/release-notes/rl-2111.section.md+17−1
@@ -14,10 +14,14 @@ In addition to numerous new and upgraded packages, this release has the followin
1414
1515- PostgreSQL now defaults to major version 13.
1616
17+- spark now defaults to spark 3, updated from 2. A [migration guide](https://spark.apache.org/docs/latest/core-migration-guide.html#upgrading-from-core-24-to-30) is available.
18+
1719- Activation scripts can now opt int to be run when running `nixos-rebuild dry-activate` and detect the dry activation by reading `$NIXOS_ACTION`.
1820 This allows activation scripts to output what they would change if the activation was really run.
1921 The users/modules activation script supports this and outputs some of is actions.
2022
23+- Pantheon desktop has been updated to version 6. Due to changes of screen locker, if locking doesn't work for you, please try `gsettings set org.gnome.desktop.lockdown disable-lock-screen false`.
24+
2125## New Services {#sec-release-21.11-new-services}
2226
2327- [btrbk](https://digint.ch/btrbk/index.html), a backup tool for btrfs subvolumes, taking advantage of btrfs specific capabilities to create atomic snapshots and transfer them incrementally to your backup locations. Available as [services.btrbk](options.html#opt-services.brtbk.instances).
@@ -58,7 +62,7 @@ pt-services.clipcat.enable).
5862- [isso](https://posativ.org/isso/), a commenting server similar to Disqus.
5963 Available as [isso](#opt-services.isso.enable)
6064
61−* [navidrome](https://www.navidrome.org/), a personal music streaming server with
65+- [navidrome](https://www.navidrome.org/), a personal music streaming server with
6266subsonic-compatible api. Available as [navidrome](#opt-services.navidrome.enable).
6367
6468- [fluidd](https://docs.fluidd.xyz/), a Klipper web interface for managing 3d printers using moonraker. Available as [fluidd](#opt-services.fluidd.enable).
@@ -78,8 +82,14 @@ subsonic-compatible api. Available as [navidrome](#opt-services.navidrome.enable
7882 or sends them to a downstream service for further analysis.
7983 Documented in [its manual entry](#module-services-parsedmarc).
8084
85+- [spark](https://spark.apache.org/), a unified analytics engine for large-scale data processing.
86+
87+- [touchegg](https://github.com/JoseExposito/touchegg), a multi-touch gesture recognizer. Available as [services.touchegg](#opt-services.touchegg.enable).
88+
8189## Backward Incompatibilities {#sec-release-21.11-incompatibilities}
8290
91+- The `security.wrappers` option now requires to always specify an owner, group and whether the setuid/setgid bit should be set.
92+ This is motivated by the fact that before NixOS 21.11, specifying either setuid or setgid but not owner/group resulted in wrappers owned by nobody/nogroup, which is unsafe.
8393
8494- The `paperless` module and package have been removed. All users should migrate to the
8595 successor `paperless-ng` instead. The Paperless project [has been
@@ -309,6 +319,8 @@ To be able to access the web UI this port needs to be opened in the firewall.
309319
310320 However, if [`services.fail2ban.enable`](options.html#opt-services.fail2ban.enable) is `true`, the `fail2ban` will override the verbosity to `"VERBOSE"`, so that `fail2ban` can observe the failed login attempts from the SSH logs.
311321
322+- The [`services.xserver.extraLayouts`](options.html#opt-services.xserver.extraLayouts) no longer cause additional rebuilds when a layout is added or modified.
323+
312324- Sway: The terminal emulator `rxvt-unicode` is no longer installed by default via `programs.sway.extraPackages`. The current default configuration uses `alacritty` (and soon `foot`) so this is only an issue when using a customized configuration and not installing `rxvt-unicode` explicitly.
313325
314326- `python3` now defaults to Python 3.9. Python 3.9 introduces many deprecation warnings, please look at the [What's New In Python 3.9 post](https://docs.python.org/3/whatsnew/3.9.html) for more information.
@@ -321,6 +333,10 @@ To be able to access the web UI this port needs to be opened in the firewall.
321333
322334 Sites definitions that use the old interface are automatically migrated in the new option. This backward compatibility will be removed in 22.05.
323335
336+- The dokuwiki module provides a new interface which allows to use different webservers with the new option [`services.dokuwiki.webserver`](options.html#opt-services.dokuwiki.webserver). Currently `caddy` and `nginx` are supported. The definitions of dokuwiki sites should now be set in [`services.dokuwiki.sites`](options.html#opt-services.dokuwiki.sites).
337+
338+ Sites definitions that use the old interface are automatically migrated in the new option. This backward compatibility will be removed in 22.05.
339+
324340- The order of NSS (host) modules has been brought in line with upstream
325341 recommendations:
326342
nixos/modules/config/console.nix+5−1
@@ -116,7 +116,11 @@ in
116116 { console.keyMap = with config.services.xserver;
117117 mkIf cfg.useXkbConfig
118118 (pkgs.runCommand "xkb-console-keymap" { preferLocalBuild = true; } ''
119− '${pkgs.ckbcomp}/bin/ckbcomp' -model '${xkbModel}' -layout '${layout}' \
119+ '${pkgs.ckbcomp}/bin/ckbcomp' \
120+ ${optionalString (config.environment.sessionVariables ? XKB_CONFIG_ROOT)
121+ "-I${config.environment.sessionVariables.XKB_CONFIG_ROOT}"
122+ } \
123+ -model '${xkbModel}' -layout '${layout}' \
120124 -option '${xkbOptions}' -variant '${xkbVariant}' > "$out"
121125 '');
122126 }
nixos/modules/misc/ids.nix+7−7
@@ -137,9 +137,9 @@ in
137137 #mongodb = 98; #dynamically allocated as of 2021-09-03
138138 #openldap = 99; # dynamically allocated as of PR#94610
139139 #users = 100; # unused
140− cgminer = 101;
140+ # cgminer = 101; #dynamically allocated as of 2021-09-17
141141 munin = 102;
142− logcheck = 103;
142+ #logcheck = 103; #dynamically allocated as of 2021-09-17
143143 #nix-ssh = 104; #dynamically allocated as of 2021-09-03
144144 dictd = 105;
145145 couchdb = 106;
@@ -212,10 +212,10 @@ in
212212 sddm = 175;
213213 tss = 176;
214214 #memcached = 177; removed 2018-01-03
215− ntp = 179;
215+ #ntp = 179; # dynamically allocated as of 2021-09-17
216216 zabbix = 180;
217217 #redis = 181; removed 2018-01-03
218− unifi = 183;
218+ #unifi = 183; dynamically allocated as of 2021-09-17
219219 uptimed = 184;
220220 zope2 = 185;
221221 ripple-data-api = 186;
@@ -244,7 +244,7 @@ in
244244 #kibana = 211;# dynamically allocated as of 2021-09-03
245245 xtreemfs = 212;
246246 calibre-server = 213;
247− heapster = 214;
247+ #heapster = 214; #dynamically allocated as of 2021-09-17
248248 bepasty = 215;
249249 # pumpio = 216; # unused, removed 2018-02-24
250250 nm-openvpn = 217;
@@ -258,11 +258,11 @@ in
258258 rspamd = 225;
259259 # rmilter = 226; # unused, removed 2019-08-22
260260 cfdyndns = 227;
261− gammu-smsd = 228;
261+ # gammu-smsd = 228; #dynamically allocated as of 2021-09-17
262262 pdnsd = 229;
263263 octoprint = 230;
264264 avahi-autoipd = 231;
265− nntp-proxy = 232;
265+ # nntp-proxy = 232; #dynamically allocated as of 2021-09-17
266266 mjpg-streamer = 233;
267267 #radicale = 234;# dynamically allocated as of 2021-09-03
268268 hydra-queue-runner = 235;
nixos/modules/module-list.nix+2
@@ -297,6 +297,7 @@
297297 ./services/cluster/kubernetes/pki.nix
298298 ./services/cluster/kubernetes/proxy.nix
299299 ./services/cluster/kubernetes/scheduler.nix
300+ ./services/cluster/spark/default.nix
300301 ./services/computing/boinc/client.nix
301302 ./services/computing/foldingathome/client.nix
302303 ./services/computing/slurm/slurm.nix
@@ -1054,6 +1055,7 @@
10541055 ./services/x11/gdk-pixbuf.nix
10551056 ./services/x11/imwheel.nix
10561057 ./services/x11/redshift.nix
1058+ ./services/x11/touchegg.nix
10571059 ./services/x11/urserver.nix
10581060 ./services/x11/urxvtd.nix
10591061 ./services/x11/window-managers/awesome.nix
nixos/modules/programs/bandwhich.nix+3−1
@@ -22,8 +22,10 @@ in {
2222 config = mkIf cfg.enable {
2323 environment.systemPackages = with pkgs; [ bandwhich ];
2424 security.wrappers.bandwhich = {
25− source = "${pkgs.bandwhich}/bin/bandwhich";
25+ owner = "root";
26+ group = "root";
2627 capabilities = "cap_net_raw,cap_net_admin+ep";
28+ source = "${pkgs.bandwhich}/bin/bandwhich";
2729 };
2830 };
2931}
nixos/modules/programs/captive-browser.nix+4
@@ -105,11 +105,15 @@ in
105105 );
106106
107107 security.wrappers.udhcpc = {
108+ owner = "root";
109+ group = "root";
108110 capabilities = "cap_net_raw+p";
109111 source = "${pkgs.busybox}/bin/udhcpc";
110112 };
111113
112114 security.wrappers.captive-browser = {
115+ owner = "root";
116+ group = "root";
113117 capabilities = "cap_net_raw+p";
114118 source = pkgs.writeShellScript "captive-browser" ''
115119 export PREV_CONFIG_HOME="$XDG_CONFIG_HOME"
nixos/modules/programs/ccache.nix+2
@@ -28,7 +28,9 @@ in {
2828
2929 # "nix-ccache --show-stats" and "nix-ccache --clear"
3030 security.wrappers.nix-ccache = {
31+ owner = "nobody";
3132 group = "nixbld";
33+ setuid = false;
3234 setgid = true;
3335 source = pkgs.writeScript "nix-ccache.pl" ''
3436 #!${pkgs.perl}/bin/perl
nixos/modules/programs/firejail.nix+6−1
@@ -81,7 +81,12 @@ in {
8181 };
8282
8383 config = mkIf cfg.enable {
84− security.wrappers.firejail.source = "${lib.getBin pkgs.firejail}/bin/firejail";
84+ security.wrappers.firejail =
85+ { setuid = true;
86+ owner = "root";
87+ group = "root";
88+ source = "${lib.getBin pkgs.firejail}/bin/firejail";
89+ };
8590
8691 environment.systemPackages = [ pkgs.firejail ] ++ [ wrappedBins ];
8792 };
nixos/modules/programs/gamemode.nix+2
@@ -56,6 +56,8 @@ in
5656 polkit.enable = true;
5757 wrappers = mkIf cfg.enableRenice {
5858 gamemoded = {
59+ owner = "root";
60+ group = "root";
5961 source = "${pkgs.gamemode}/bin/gamemoded";
6062 capabilities = "cap_sys_nice+ep";
6163 };
nixos/modules/programs/iftop.nix+3−1
@@ -11,8 +11,10 @@ in {
1111 config = mkIf cfg.enable {
1212 environment.systemPackages = [ pkgs.iftop ];
1313 security.wrappers.iftop = {
14− source = "${pkgs.iftop}/bin/iftop";
14+ owner = "root";
15+ group = "root";
1516 capabilities = "cap_net_raw+p";
17+ source = "${pkgs.iftop}/bin/iftop";
1618 };
1719 };
1820}
nixos/modules/programs/iotop.nix+3−1
@@ -10,8 +10,10 @@ in {
1010 };
1111 config = mkIf cfg.enable {
1212 security.wrappers.iotop = {
13− source = "${pkgs.iotop}/bin/iotop";
13+ owner = "root";
14+ group = "root";
1415 capabilities = "cap_net_admin+p";
16+ source = "${pkgs.iotop}/bin/iotop";
1517 };
1618 };
1719}
nixos/modules/programs/kbdlight.nix+6−1
@@ -11,6 +11,11 @@ in
1111
1212 config = mkIf cfg.enable {
1313 environment.systemPackages = [ pkgs.kbdlight ];
14− security.wrappers.kbdlight.source = "${pkgs.kbdlight.out}/bin/kbdlight";
14+ security.wrappers.kbdlight =
15+ { setuid = true;
16+ owner = "root";
17+ group = "root";
18+ source = "${pkgs.kbdlight.out}/bin/kbdlight";
19+ };
1520 };
1621}
nixos/modules/programs/liboping.nix+3−1
@@ -13,8 +13,10 @@ in {
1313 security.wrappers = mkMerge (map (
1414 exec: {
1515 "${exec}" = {
16− source = "${pkgs.liboping}/bin/${exec}";
16+ owner = "root";
17+ group = "root";
1718 capabilities = "cap_net_raw+p";
19+ source = "${pkgs.liboping}/bin/${exec}";
1820 };
1921 }
2022 ) [ "oping" "noping" ]);
nixos/modules/programs/msmtp.nix+2
@@ -78,6 +78,8 @@ in {
7878 source = "${pkgs.msmtp}/bin/sendmail";
7979 setuid = false;
8080 setgid = false;
81+ owner = "root";
82+ group = "root";
8183 };
8284
8385 environment.etc."msmtprc".text = let
nixos/modules/programs/mtr.nix+3−1
@@ -31,8 +31,10 @@ in {
3131 environment.systemPackages = with pkgs; [ cfg.package ];
3232
3333 security.wrappers.mtr-packet = {
34− source = "${cfg.package}/bin/mtr-packet";
34+ owner = "root";
35+ group = "root";
3536 capabilities = "cap_net_raw+p";
37+ source = "${cfg.package}/bin/mtr-packet";
3638 };
3739 };
3840}
nixos/modules/programs/noisetorch.nix+3−1
@@ -18,8 +18,10 @@ in {
1818
1919 config = mkIf cfg.enable {
2020 security.wrappers.noisetorch = {
21− source = "${cfg.package}/bin/noisetorch";
21+ owner = "root";
22+ group = "root";
2223 capabilities = "cap_sys_resource=+ep";
24+ source = "${cfg.package}/bin/noisetorch";
2325 };
2426 };
2527}
nixos/modules/programs/shadow.nix+14−7
@@ -43,6 +43,13 @@ let
4343
4444 '';
4545
46+ mkSetuidRoot = source:
47+ { setuid = true;
48+ owner = "root";
49+ group = "root";
50+ inherit source;
51+ };
52+
4653in
4754
4855{
@@ -109,14 +116,14 @@ in
109116 };
110117
111118 security.wrappers = {
112− su.source = "${pkgs.shadow.su}/bin/su";
113− sg.source = "${pkgs.shadow.out}/bin/sg";
114− newgrp.source = "${pkgs.shadow.out}/bin/newgrp";
115− newuidmap.source = "${pkgs.shadow.out}/bin/newuidmap";
116− newgidmap.source = "${pkgs.shadow.out}/bin/newgidmap";
119+ su = mkSetuidRoot "${pkgs.shadow.su}/bin/su";
120+ sg = mkSetuidRoot "${pkgs.shadow.out}/bin/sg";
121+ newgrp = mkSetuidRoot "${pkgs.shadow.out}/bin/newgrp";
122+ newuidmap = mkSetuidRoot "${pkgs.shadow.out}/bin/newuidmap";
123+ newgidmap = mkSetuidRoot "${pkgs.shadow.out}/bin/newgidmap";
117124 } // lib.optionalAttrs config.users.mutableUsers {
118− chsh.source = "${pkgs.shadow.out}/bin/chsh";
119− passwd.source = "${pkgs.shadow.out}/bin/passwd";
125+ chsh = mkSetuidRoot "${pkgs.shadow.out}/bin/chsh";
126+ passwd = mkSetuidRoot "${pkgs.shadow.out}/bin/passwd";
120127 };
121128 };
122129}
nixos/modules/programs/singularity.nix+6−1
@@ -16,7 +16,12 @@ in {
1616
1717 config = mkIf cfg.enable {
1818 environment.systemPackages = [ singularity ];
19− security.wrappers.singularity-suid.source = "${singularity}/libexec/singularity/bin/starter-suid.orig";
19+ security.wrappers.singularity-suid =
20+ { setuid = true;
21+ owner = "root";
22+ group = "root";
23+ source = "${singularity}/libexec/singularity/bin/starter-suid.orig";
24+ };
2025 systemd.tmpfiles.rules = [
2126 "d /var/singularity/mnt/session 0770 root root -"
2227 "d /var/singularity/mnt/final 0770 root root -"
nixos/modules/programs/slock.nix+6−1
@@ -21,6 +21,11 @@ in
2121
2222 config = mkIf cfg.enable {
2323 environment.systemPackages = [ pkgs.slock ];
24− security.wrappers.slock.source = "${pkgs.slock.out}/bin/slock";
24+ security.wrappers.slock =
25+ { setuid = true;
26+ owner = "root";
27+ group = "root";
28+ source = "${pkgs.slock.out}/bin/slock";
29+ };
2530 };
2631}
nixos/modules/programs/ssmtp.nix+2
@@ -181,6 +181,8 @@ in
181181 source = "${pkgs.ssmtp}/bin/sendmail";
182182 setuid = false;
183183 setgid = false;
184+ owner = "root";
185+ group = "root";
184186 };
185187
186188 };
nixos/modules/programs/traceroute.nix+3−1
@@ -19,8 +19,10 @@ in {
1919
2020 config = mkIf cfg.enable {
2121 security.wrappers.traceroute = {
22− source = "${pkgs.traceroute}/bin/traceroute";
22+ owner = "root";
23+ group = "root";
2324 capabilities = "cap_net_raw+p";
25+ source = "${pkgs.traceroute}/bin/traceroute";
2426 };
2527 };
2628}
nixos/modules/programs/udevil.nix+6−1
@@ -9,6 +9,11 @@ in {
99 options.programs.udevil.enable = mkEnableOption "udevil";
1010
1111 config = mkIf cfg.enable {
12− security.wrappers.udevil.source = "${lib.getBin pkgs.udevil}/bin/udevil";
12+ security.wrappers.udevil =
13+ { setuid = true;
14+ owner = "root";
15+ group = "root";
16+ source = "${lib.getBin pkgs.udevil}/bin/udevil";
17+ };
1318 };
1419}
nixos/modules/programs/wavemon.nix+3−1
@@ -21,8 +21,10 @@ in {
2121 config = mkIf cfg.enable {
2222 environment.systemPackages = with pkgs; [ wavemon ];
2323 security.wrappers.wavemon = {
24− source = "${pkgs.wavemon}/bin/wavemon";
24+ owner = "root";
25+ group = "root";
2526 capabilities = "cap_net_admin+ep";
27+ source = "${pkgs.wavemon}/bin/wavemon";
2628 };
2729 };
2830}
nixos/modules/programs/wshowkeys.nix+6−1
@@ -17,6 +17,11 @@ in {
1717 };
1818
1919 config = mkIf cfg.enable {
20− security.wrappers.wshowkeys.source = "${pkgs.wshowkeys}/bin/wshowkeys";
20+ security.wrappers.wshowkeys =
21+ { setuid = true;
22+ owner = "root";
23+ group = "root";
24+ source = "${pkgs.wshowkeys}/bin/wshowkeys";
25+ };
2126 };
2227}
nixos/modules/security/chromium-suid-sandbox.nix+6−1
@@ -28,6 +28,11 @@ in
2828
2929 config = mkIf cfg.enable {
3030 environment.systemPackages = [ sandbox ];
31− security.wrappers.${sandbox.passthru.sandboxExecutableName}.source = "${sandbox}/bin/${sandbox.passthru.sandboxExecutableName}";
31+ security.wrappers.${sandbox.passthru.sandboxExecutableName} =
32+ { setuid = true;
33+ owner = "root";
34+ group = "root";
35+ source = "${sandbox}/bin/${sandbox.passthru.sandboxExecutableName}";
36+ };
3237 };
3338}
nixos/modules/security/doas.nix+6−3
@@ -241,9 +241,12 @@ in
241241 }
242242 ];
243243
244− security.wrappers = {
245− doas.source = "${doas}/bin/doas";
246− };
244+ security.wrappers.doas =
245+ { setuid = true;
246+ owner = "root";
247+ group = "root";
248+ source = "${doas}/bin/doas";
249+ };
247250
248251 environment.systemPackages = [
249252 doas
nixos/modules/security/duosec.nix+6−1
@@ -186,7 +186,12 @@ in
186186 config = mkIf (cfg.ssh.enable || cfg.pam.enable) {
187187 environment.systemPackages = [ pkgs.duo-unix ];
188188
189− security.wrappers.login_duo.source = "${pkgs.duo-unix.out}/bin/login_duo";
189+ security.wrappers.login_duo =
190+ { setuid = true;
191+ owner = "root";
192+ group = "root";
193+ source = "${pkgs.duo-unix.out}/bin/login_duo";
194+ };
190195
191196 system.activationScripts = {
192197 login_duo = mkIf cfg.ssh.enable ''
nixos/modules/security/pam.nix+3−2
@@ -869,9 +869,10 @@ in
869869
870870 security.wrappers = {
871871 unix_chkpwd = {
872− source = "${pkgs.pam}/sbin/unix_chkpwd.orig";
873− owner = "root";
874872 setuid = true;
873+ owner = "root";
874+ group = "root";
875+ source = "${pkgs.pam}/sbin/unix_chkpwd.orig";
875876 };
876877 };
877878
nixos/modules/security/pam_usb.nix+12−2
@@ -32,8 +32,18 @@ in
3232
3333 # Make sure pmount and pumount are setuid wrapped.
3434 security.wrappers = {
35− pmount.source = "${pkgs.pmount.out}/bin/pmount";
36− pumount.source = "${pkgs.pmount.out}/bin/pumount";
35+ pmount =
36+ { setuid = true;
37+ owner = "root";
38+ group = "root";
39+ source = "${pkgs.pmount.out}/bin/pmount";
40+ };
41+ pumount =
42+ { setuid = true;
43+ owner = "root";
44+ group = "root";
45+ source = "${pkgs.pmount.out}/bin/pumount";
46+ };
3747 };
3848
3949 environment.systemPackages = [ pkgs.pmount ];
nixos/modules/security/polkit.nix+12−2
@@ -83,8 +83,18 @@ in
8383 security.pam.services.polkit-1 = {};
8484
8585 security.wrappers = {
86− pkexec.source = "${pkgs.polkit.bin}/bin/pkexec";
87− polkit-agent-helper-1.source = "${pkgs.polkit.out}/lib/polkit-1/polkit-agent-helper-1";
86+ pkexec =
87+ { setuid = true;
88+ owner = "root";
89+ group = "root";
90+ source = "${pkgs.polkit.bin}/bin/pkexec";
91+ };
92+ polkit-agent-helper-1 =
93+ { setuid = true;
94+ owner = "root";
95+ group = "root";
96+ source = "${pkgs.polkit.out}/lib/polkit-1/polkit-agent-helper-1";
97+ };
8898 };
8999
90100 systemd.tmpfiles.rules = [
nixos/modules/security/wrappers/default.nix+188−94
@@ -5,85 +5,140 @@ let
55
66 parentWrapperDir = dirOf wrapperDir;
77
8− programs =
9− (lib.mapAttrsToList
10− (n: v: (if v ? program then v else v // {program=n;}))
11− wrappers);
12−
138 securityWrapper = pkgs.callPackage ./wrapper.nix {
149 inherit parentWrapperDir;
1510 };
1611
12+ fileModeType =
13+ let
14+ # taken from the chmod(1) man page
15+ symbolic = "[ugoa]*([-+=]([rwxXst]*|[ugo]))+|[-+=][0-7]+";
16+ numeric = "[-+=]?[0-7]{0,4}";
17+ mode = "((${symbolic})(,${symbolic})*)|(${numeric})";
18+ in
19+ lib.types.strMatching mode
20+ // { description = "file mode string"; };
21+
22+ wrapperType = lib.types.submodule ({ name, config, ... }: {
23+ options.source = lib.mkOption
24+ { type = lib.types.path;
25+ description = "The absolute path to the program to be wrapped.";
26+ };
27+ options.program = lib.mkOption
28+ { type = with lib.types; nullOr str;
29+ default = name;
30+ description = ''
31+ The name of the wrapper program. Defaults to the attribute name.
32+ '';
33+ };
34+ options.owner = lib.mkOption
35+ { type = lib.types.str;
36+ description = "The owner of the wrapper program.";
37+ };
38+ options.group = lib.mkOption
39+ { type = lib.types.str;
40+ description = "The group of the wrapper program.";
41+ };
42+ options.permissions = lib.mkOption
43+ { type = fileModeType;
44+ default = "u+rx,g+x,o+x";
45+ example = "a+rx";
46+ description = ''
47+ The permissions of the wrapper program. The format is that of a
48+ symbolic or numeric file mode understood by <command>chmod</command>.
49+ '';
50+ };
51+ options.capabilities = lib.mkOption
52+ { type = lib.types.commas;
53+ default = "";
54+ description = ''
55+ A comma-separated list of capabilities to be given to the wrapper
56+ program. For capabilities supported by the system check the
57+ <citerefentry>
58+ <refentrytitle>capabilities</refentrytitle>
59+ <manvolnum>7</manvolnum>
60+ </citerefentry>
61+ manual page.
62+
63+ <note><para>
64+ <literal>cap_setpcap</literal>, which is required for the wrapper
65+ program to be able to raise caps into the Ambient set is NOT raised
66+ to the Ambient set so that the real program cannot modify its own
67+ capabilities!! This may be too restrictive for cases in which the
68+ real program needs cap_setpcap but it at least leans on the side
69+ security paranoid vs. too relaxed.
70+ </para></note>
71+ '';
72+ };
73+ options.setuid = lib.mkOption
74+ { type = lib.types.bool;
75+ default = false;
76+ description = "Whether to add the setuid bit the wrapper program.";
77+ };
78+ options.setgid = lib.mkOption
79+ { type = lib.types.bool;
80+ default = false;
81+ description = "Whether to add the setgid bit the wrapper program.";
82+ };
83+ });
84+
1785 ###### Activation script for the setcap wrappers
1886 mkSetcapProgram =
1987 { program
2088 , capabilities
2189 , source
22− , owner ? "nobody"
23− , group ? "nogroup"
24− , permissions ? "u+rx,g+x,o+x"
90+ , owner
91+ , group
92+ , permissions
2593 , ...
2694 }:
2795 assert (lib.versionAtLeast (lib.getVersion config.boot.kernelPackages.kernel) "4.3");
2896 ''
29− cp ${securityWrapper}/bin/security-wrapper $wrapperDir/${program}
30− echo -n "${source}" > $wrapperDir/${program}.real
97+ cp ${securityWrapper}/bin/security-wrapper "$wrapperDir/${program}"
98+ echo -n "${source}" > "$wrapperDir/${program}.real"
3199
32100 # Prevent races
33− chmod 0000 $wrapperDir/${program}
34− chown ${owner}.${group} $wrapperDir/${program}
101+ chmod 0000 "$wrapperDir/${program}"
102+ chown ${owner}.${group} "$wrapperDir/${program}"
35103
36104 # Set desired capabilities on the file plus cap_setpcap so
37105 # the wrapper program can elevate the capabilities set on
38106 # its file into the Ambient set.
39− ${pkgs.libcap.out}/bin/setcap "cap_setpcap,${capabilities}" $wrapperDir/${program}
107+ ${pkgs.libcap.out}/bin/setcap "cap_setpcap,${capabilities}" "$wrapperDir/${program}"
40108
41109 # Set the executable bit
42− chmod ${permissions} $wrapperDir/${program}
110+ chmod ${permissions} "$wrapperDir/${program}"
43111 '';
44112
45113 ###### Activation script for the setuid wrappers
46114 mkSetuidProgram =
47115 { program
48116 , source
49− , owner ? "nobody"
50− , group ? "nogroup"
51− , setuid ? false
52− , setgid ? false
53− , permissions ? "u+rx,g+x,o+x"
117+ , owner
118+ , group
119+ , setuid
120+ , setgid
121+ , permissions
54122 , ...
55123 }:
56124 ''
57− cp ${securityWrapper}/bin/security-wrapper $wrapperDir/${program}
58− echo -n "${source}" > $wrapperDir/${program}.real
125+ cp ${securityWrapper}/bin/security-wrapper "$wrapperDir/${program}"
126+ echo -n "${source}" > "$wrapperDir/${program}.real"
59127
60128 # Prevent races
61− chmod 0000 $wrapperDir/${program}
62− chown ${owner}.${group} $wrapperDir/${program}
129+ chmod 0000 "$wrapperDir/${program}"
130+ chown ${owner}.${group} "$wrapperDir/${program}"
63131
64− chmod "u${if setuid then "+" else "-"}s,g${if setgid then "+" else "-"}s,${permissions}" $wrapperDir/${program}
132+ chmod "u${if setuid then "+" else "-"}s,g${if setgid then "+" else "-"}s,${permissions}" "$wrapperDir/${program}"
65133 '';
66134
67135 mkWrappedPrograms =
68136 builtins.map
69− (s: if (s ? capabilities)
70− then mkSetcapProgram
71− ({ owner = "root";
72− group = "root";
73− } // s)
74− else if
75− (s ? setuid && s.setuid) ||
76− (s ? setgid && s.setgid) ||
77− (s ? permissions)
78− then mkSetuidProgram s
79− else mkSetuidProgram
80− ({ owner = "root";
81− group = "root";
82− setuid = true;
83− setgid = false;
84− permissions = "u+rx,g+x,o+x";
85− } // s)
86− ) programs;
137+ (opts:
138+ if opts.capabilities != ""
139+ then mkSetcapProgram opts
140+ else mkSetuidProgram opts
141+ ) (lib.attrValues wrappers);
87142in
88143{
89144 imports = [
@@ -95,45 +150,42 @@ in
95150
96151 options = {
97152 security.wrappers = lib.mkOption {
98− type = lib.types.attrs;
153+ type = lib.types.attrsOf wrapperType;
99154 default = {};
100155 example = lib.literalExample
101156 ''
102− { sendmail.source = "/nix/store/.../bin/sendmail";
103− ping = {
104− source = "${pkgs.iputils.out}/bin/ping";
105− owner = "nobody";
106− group = "nogroup";
107− capabilities = "cap_net_raw+ep";
108− };
157+ {
158+ # a setuid root program
159+ doas =
160+ { setuid = true;
161+ owner = "root";
162+ group = "root";
163+ source = "''${pkgs.doas}/bin/doas";
164+ };
165+
166+ # a setgid program
167+ locate =
168+ { setgid = true;
169+ owner = "root";
170+ group = "mlocate";
171+ source = "''${pkgs.locate}/bin/locate";
172+ };
173+
174+ # a program with the CAP_NET_RAW capability
175+ ping =
176+ { owner = "root";
177+ group = "root";
178+ capabilities = "cap_net_raw+ep";
179+ source = "''${pkgs.iputils.out}/bin/ping";
180+ };
109181 }
110182 '';
111183 description = ''
112− This option allows the ownership and permissions on the setuid
113− wrappers for specific programs to be overridden from the
114− default (setuid root, but not setgid root).
115−
116− <note>
117− <para>The sub-attribute <literal>source</literal> is mandatory,
118− it must be the absolute path to the program to be wrapped.
119− </para>
120−
121− <para>The sub-attribute <literal>program</literal> is optional and
122− can give the wrapper program a new name. The default name is the same
123− as the attribute name itself.</para>
124−
125− <para>Additionally, this option can set capabilities on a
126− wrapper program that propagates those capabilities down to the
127− wrapped, real program.</para>
128−
129− <para>NOTE: cap_setpcap, which is required for the wrapper
130− program to be able to raise caps into the Ambient set is NOT
131− raised to the Ambient set so that the real program cannot
132− modify its own capabilities!! This may be too restrictive for
133− cases in which the real program needs cap_setpcap but it at
134− least leans on the side security paranoid vs. too
135− relaxed.</para>
136− </note>
184+ This option effectively allows adding setuid/setgid bits, capabilities,
185+ changing file ownership and permissions of a program without directly
186+ modifying it. This works by creating a wrapper program under the
187+ <option>security.wrapperDir</option> directory, which is then added to
188+ the shell <literal>PATH</literal>.
137189 '';
138190 };
139191
@@ -151,13 +203,31 @@ in
151203 ###### implementation
152204 config = {
153205
154− security.wrappers = {
155− # These are mount related wrappers that require the +s permission.
156− fusermount.source = "${pkgs.fuse}/bin/fusermount";
157− fusermount3.source = "${pkgs.fuse3}/bin/fusermount3";
158− mount.source = "${lib.getBin pkgs.util-linux}/bin/mount";
159− umount.source = "${lib.getBin pkgs.util-linux}/bin/umount";
160− };
206+ assertions = lib.mapAttrsToList
207+ (name: opts:
208+ { assertion = opts.setuid || opts.setgid -> opts.capabilities == "";
209+ message = ''
210+ The security.wrappers.${name} wrapper is not valid:
211+ setuid/setgid and capabilities are mutually exclusive.
212+ '';
213+ }
214+ ) wrappers;
215+
216+ security.wrappers =
217+ let
218+ mkSetuidRoot = source:
219+ { setuid = true;
220+ owner = "root";
221+ group = "root";
222+ inherit source;
223+ };
224+ in
225+ { # These are mount related wrappers that require the +s permission.
226+ fusermount = mkSetuidRoot "${pkgs.fuse}/bin/fusermount";
227+ fusermount3 = mkSetuidRoot "${pkgs.fuse3}/bin/fusermount3";
228+ mount = mkSetuidRoot "${lib.getBin pkgs.util-linux}/bin/mount";
229+ umount = mkSetuidRoot "${lib.getBin pkgs.util-linux}/bin/umount";
230+ };
161231
162232 boot.specialFileSystems.${parentWrapperDir} = {
163233 fsType = "tmpfs";
@@ -179,19 +249,15 @@ in
179249 ]}"
180250 '';
181251
182− ###### setcap activation script
252+ ###### wrappers activation script
183253 system.activationScripts.wrappers =
184254 lib.stringAfter [ "specialfs" "users" ]
185255 ''
186− # Look in the system path and in the default profile for
187− # programs to be wrapped.
188− WRAPPER_PATH=${config.system.path}/bin:${config.system.path}/sbin
189−
190256 chmod 755 "${parentWrapperDir}"
191257
192258 # We want to place the tmpdirs for the wrappers to the parent dir.
193259 wrapperDir=$(mktemp --directory --tmpdir="${parentWrapperDir}" wrappers.XXXXXXXXXX)
194− chmod a+rx $wrapperDir
260+ chmod a+rx "$wrapperDir"
195261
196262 ${lib.concatStringsSep "\n" mkWrappedPrograms}
197263
@@ -199,16 +265,44 @@ in
199265 # Atomically replace the symlink
200266 # See https://axialcorps.com/2013/07/03/atomically-replacing-files-and-directories/
201267 old=$(readlink -f ${wrapperDir})
202− if [ -e ${wrapperDir}-tmp ]; then
203− rm --force --recursive ${wrapperDir}-tmp
268+ if [ -e "${wrapperDir}-tmp" ]; then
269+ rm --force --recursive "${wrapperDir}-tmp"
204270 fi
205− ln --symbolic --force --no-dereference $wrapperDir ${wrapperDir}-tmp
206− mv --no-target-directory ${wrapperDir}-tmp ${wrapperDir}
207− rm --force --recursive $old
271+ ln --symbolic --force --no-dereference "$wrapperDir" "${wrapperDir}-tmp"
272+ mv --no-target-directory "${wrapperDir}-tmp" "${wrapperDir}"
273+ rm --force --recursive "$old"
208274 else
209275 # For initial setup
210− ln --symbolic $wrapperDir ${wrapperDir}
276+ ln --symbolic "$wrapperDir" "${wrapperDir}"
211277 fi
212278 '';
279+
280+ ###### wrappers consistency checks
281+ system.extraDependencies = lib.singleton (pkgs.runCommandLocal
282+ "ensure-all-wrappers-paths-exist" { }
283+ ''
284+ # make sure we produce output
285+ mkdir -p $out
286+
287+ echo -n "Checking that Nix store paths of all wrapped programs exist... "
288+
289+ declare -A wrappers
290+ ${lib.concatStringsSep "\n" (lib.mapAttrsToList (n: v:
291+ "wrappers['${n}']='${v.source}'") wrappers)}
292+
293+ for name in "''${!wrappers[@]}"; do
294+ path="''${wrappers[$name]}"
295+ if [[ "$path" =~ /nix/store ]] && [ ! -e "$path" ]; then
296+ test -t 1 && echo -ne '\033[1;31m'
297+ echo "FAIL"
298+ echo "The path $path does not exist!"
299+ echo 'Please, check the value of `security.wrappers."'$name'".source`.'
300+ test -t 1 && echo -ne '\033[0m'
301+ exit 1
302+ fi
303+ done
304+
305+ echo "OK"
306+ '');
213307 };
214308}
nixos/modules/services/cluster/spark/default.nixnew file+162
@@ -0,0 +1,162 @@
1+{config, pkgs, lib, ...}:
2+let
3+ cfg = config.services.spark;
4+in
5+with lib;
6+{
7+ options = {
8+ services.spark = {
9+ master = {
10+ enable = mkEnableOption "Spark master service";
11+ bind = mkOption {
12+ type = types.str;
13+ description = "Address the spark master binds to.";
14+ default = "127.0.0.1";
15+ example = "0.0.0.0";
16+ };
17+ restartIfChanged = mkOption {
18+ type = types.bool;
19+ description = ''
20+ Automatically restart master service on config change.
21+ This can be set to false to defer restarts on clusters running critical applications.
22+ Please consider the security implications of inadvertently running an older version,
23+ and the possibility of unexpected behavior caused by inconsistent versions across a cluster when disabling this option.
24+ '';
25+ default = true;
26+ };
27+ extraEnvironment = mkOption {
28+ type = types.attrsOf types.str;
29+ description = "Extra environment variables to pass to spark master. See spark-standalone documentation.";
30+ default = {};
31+ example = {
32+ SPARK_MASTER_WEBUI_PORT = 8181;
33+ SPARK_MASTER_OPTS = "-Dspark.deploy.defaultCores=5";
34+ };
35+ };
36+ };
37+ worker = {
38+ enable = mkEnableOption "Spark worker service";
39+ workDir = mkOption {
40+ type = types.path;
41+ description = "Spark worker work dir.";
42+ default = "/var/lib/spark";
43+ };
44+ master = mkOption {
45+ type = types.str;
46+ description = "Address of the spark master.";
47+ default = "127.0.0.1:7077";
48+ };
49+ restartIfChanged = mkOption {
50+ type = types.bool;
51+ description = ''
52+ Automatically restart worker service on config change.
53+ This can be set to false to defer restarts on clusters running critical applications.
54+ Please consider the security implications of inadvertently running an older version,
55+ and the possibility of unexpected behavior caused by inconsistent versions across a cluster when disabling this option.
56+ '';
57+ default = true;
58+ };
59+ extraEnvironment = mkOption {
60+ type = types.attrsOf types.str;
61+ description = "Extra environment variables to pass to spark worker.";
62+ default = {};
63+ example = {
64+ SPARK_WORKER_CORES = 5;
65+ SPARK_WORKER_MEMORY = "2g";
66+ };
67+ };
68+ };
69+ confDir = mkOption {
70+ type = types.path;
71+ description = "Spark configuration directory. Spark will use the configuration files (spark-defaults.conf, spark-env.sh, log4j.properties, etc) from this directory.";
72+ default = "${cfg.package}/lib/${cfg.package.untarDir}/conf";
73+ defaultText = literalExample "\${cfg.package}/lib/\${cfg.package.untarDir}/conf";
74+ };
75+ logDir = mkOption {
76+ type = types.path;
77+ description = "Spark log directory.";
78+ default = "/var/log/spark";
79+ };
80+ package = mkOption {
81+ type = types.package;
82+ description = "Spark package.";
83+ default = pkgs.spark;
84+ defaultText = "pkgs.spark";
85+ example = literalExample ''pkgs.spark.overrideAttrs (super: rec {
86+ pname = "spark";
87+ version = "2.4.4";
88+
89+ src = pkgs.fetchzip {
90+ url = "mirror://apache/spark/"''${pname}-''${version}/''${pname}-''${version}-bin-without-hadoop.tgz";
91+ sha256 = "1a9w5k0207fysgpxx6db3a00fs5hdc2ncx99x4ccy2s0v5ndc66g";
92+ };
93+ })'';
94+ };
95+ };
96+ };
97+ config = lib.mkIf (cfg.worker.enable || cfg.master.enable) {
98+ environment.systemPackages = [ cfg.package ];
99+ systemd = {
100+ services = {
101+ spark-master = lib.mkIf cfg.master.enable {
102+ path = with pkgs; [ procps openssh nettools ];
103+ description = "spark master service.";
104+ after = [ "network.target" ];
105+ wantedBy = [ "multi-user.target" ];
106+ restartIfChanged = cfg.master.restartIfChanged;
107+ environment = cfg.master.extraEnvironment // {
108+ SPARK_MASTER_HOST = cfg.master.bind;
109+ SPARK_CONF_DIR = cfg.confDir;
110+ SPARK_LOG_DIR = cfg.logDir;
111+ };
112+ serviceConfig = {
113+ Type = "forking";
114+ User = "spark";
115+ Group = "spark";
116+ WorkingDirectory = "${cfg.package}/lib/${cfg.package.untarDir}";
117+ ExecStart = "${cfg.package}/lib/${cfg.package.untarDir}/sbin/start-master.sh";
118+ ExecStop = "${cfg.package}/lib/${cfg.package.untarDir}/sbin/stop-master.sh";
119+ TimeoutSec = 300;
120+ StartLimitBurst=10;
121+ Restart = "always";
122+ };
123+ };
124+ spark-worker = lib.mkIf cfg.worker.enable {
125+ path = with pkgs; [ procps openssh nettools rsync ];
126+ description = "spark master service.";
127+ after = [ "network.target" ];
128+ wantedBy = [ "multi-user.target" ];
129+ restartIfChanged = cfg.worker.restartIfChanged;
130+ environment = cfg.worker.extraEnvironment // {
131+ SPARK_MASTER = cfg.worker.master;
132+ SPARK_CONF_DIR = cfg.confDir;
133+ SPARK_LOG_DIR = cfg.logDir;
134+ SPARK_WORKER_DIR = cfg.worker.workDir;
135+ };
136+ serviceConfig = {
137+ Type = "forking";
138+ User = "spark";
139+ WorkingDirectory = "${cfg.package}/lib/${cfg.package.untarDir}";
140+ ExecStart = "${cfg.package}/lib/${cfg.package.untarDir}/sbin/start-worker.sh spark://${cfg.worker.master}";
141+ ExecStop = "${cfg.package}/lib/${cfg.package.untarDir}/sbin/stop-worker.sh";
142+ TimeoutSec = 300;
143+ StartLimitBurst=10;
144+ Restart = "always";
145+ };
146+ };
147+ };
148+ tmpfiles.rules = [
149+ "d '${cfg.worker.workDir}' - spark spark - -"
150+ "d '${cfg.logDir}' - spark spark - -"
151+ ];
152+ };
153+ users = {
154+ users.spark = {
155+ description = "spark user.";
156+ group = "spark";
157+ isSystemUser = true;
158+ };
159+ groups.spark = { };
160+ };
161+ };
162+}
nixos/modules/services/desktops/gnome/gnome-keyring.nix+3−1
@@ -52,8 +52,10 @@ with lib;
5252 security.pam.services.login.enableGnomeKeyring = true;
5353
5454 security.wrappers.gnome-keyring-daemon = {
55− source = "${pkgs.gnome.gnome-keyring}/bin/gnome-keyring-daemon";
55+ owner = "root";
56+ group = "root";
5657 capabilities = "cap_ipc_lock=ep";
58+ source = "${pkgs.gnome.gnome-keyring}/bin/gnome-keyring-daemon";
5759 };
5860
5961 };
nixos/modules/services/logging/logcheck.nix+5−1
@@ -215,12 +215,16 @@ in
215215
216216 users.users = optionalAttrs (cfg.user == "logcheck") {
217217 logcheck = {
218− uid = config.ids.uids.logcheck;
218+ group = "logcheck";
219+ isSystemUser = true;
219220 shell = "/bin/sh";
220221 description = "Logcheck user account";
221222 extraGroups = cfg.extraGroups;
222223 };
223224 };
225+ users.groups = optionalAttrs (cfg.user == "logcheck") {
226+ logcheck = {};
227+ };
224228
225229 system.activationScripts.logcheck = ''
226230 mkdir -m 700 -p /var/{lib,lock}/logcheck
nixos/modules/services/mail/exim.nix+6−1
@@ -104,7 +104,12 @@ in
104104 gid = config.ids.gids.exim;
105105 };
106106
107− security.wrappers.exim.source = "${cfg.package}/bin/exim";
107+ security.wrappers.exim =
108+ { setuid = true;
109+ owner = "root";
110+ group = "root";
111+ source = "${cfg.package}/bin/exim";
112+ };
108113
109114 systemd.services.exim = {
110115 description = "Exim Mail Daemon";
nixos/modules/services/mail/mail.nix+2−1
@@ -1,4 +1,4 @@
1−{ config, lib, ... }:
1+{ config, options, lib, ... }:
22
33with lib;
44
@@ -11,6 +11,7 @@ with lib;
1111 services.mail = {
1212
1313 sendmailSetuidWrapper = mkOption {
14+ type = types.nullOr options.security.wrappers.type.nestedTypes.elemType;
1415 default = null;
1516 internal = true;
1617 description = ''
nixos/modules/services/mail/opensmtpd.nix+4−1
@@ -103,12 +103,15 @@ in {
103103 };
104104
105105 security.wrappers.smtpctl = {
106+ owner = "nobody";
106107 group = "smtpq";
108+ setuid = false;
107109 setgid = true;
108110 source = "${cfg.package}/bin/smtpctl";
109111 };
110112
111− services.mail.sendmailSetuidWrapper = mkIf cfg.setSendmail security.wrappers.smtpctl;
113+ services.mail.sendmailSetuidWrapper = mkIf cfg.setSendmail
114+ security.wrappers.smtpctl // { program = "sendmail"; };
112115
113116 systemd.tmpfiles.rules = [
114117 "d /var/spool/smtpd 711 root - - -"
nixos/modules/services/mail/postfix.nix+4
@@ -673,6 +673,7 @@ in
673673 services.mail.sendmailSetuidWrapper = mkIf config.services.postfix.setSendmail {
674674 program = "sendmail";
675675 source = "${pkgs.postfix}/bin/sendmail";
676+ owner = "nobody";
676677 group = setgidGroup;
677678 setuid = false;
678679 setgid = true;
@@ -681,6 +682,7 @@ in
681682 security.wrappers.mailq = {
682683 program = "mailq";
683684 source = "${pkgs.postfix}/bin/mailq";
685+ owner = "nobody";
684686 group = setgidGroup;
685687 setuid = false;
686688 setgid = true;
@@ -689,6 +691,7 @@ in
689691 security.wrappers.postqueue = {
690692 program = "postqueue";
691693 source = "${pkgs.postfix}/bin/postqueue";
694+ owner = "nobody";
692695 group = setgidGroup;
693696 setuid = false;
694697 setgid = true;
@@ -697,6 +700,7 @@ in
697700 security.wrappers.postdrop = {
698701 program = "postdrop";
699702 source = "${pkgs.postfix}/bin/postdrop";
703+ owner = "nobody";
700704 group = setgidGroup;
701705 setuid = false;
702706 setgid = true;
nixos/modules/services/misc/cgminer.nix+6−2
@@ -86,7 +86,7 @@ in
8686
8787 config = mkOption {
8888 default = {};
89− type = (types.either types.bool types.int);
89+ type = types.attrsOf (types.either types.bool types.int);
9090 description = "Additional config";
9191 example = {
9292 auto-fan = true;
@@ -110,10 +110,14 @@ in
110110
111111 users.users = optionalAttrs (cfg.user == "cgminer") {
112112 cgminer = {
113− uid = config.ids.uids.cgminer;
113+ isSystemUser = true;
114+ group = "cgminer";
114115 description = "Cgminer user";
115116 };
116117 };
118+ users.groups = optionalAttrs (cfg.user == "cgminer") {
119+ cgminer = {};
120+ };
117121
118122 environment.systemPackages = [ cfg.package ];
119123
nixos/modules/services/misc/gammu-smsd.nix+2−2
@@ -202,8 +202,8 @@ in {
202202 config = mkIf cfg.enable {
203203 users.users.${cfg.user} = {
204204 description = "gammu-smsd user";
205− uid = config.ids.uids.gammu-smsd;
206− extraGroups = [ "${cfg.device.group}" ];
205+ isSystemUser = true;
206+ group = cfg.device.group;
207207 };
208208
209209 environment.systemPackages = with cfg.backend; [ gammuPackage ]
nixos/modules/services/misc/gpsd.nix+1
@@ -88,6 +88,7 @@ in
8888
8989 users.users.gpsd =
9090 { inherit uid;
91+ group = "gpsd";
9192 description = "gpsd daemon user";
9293 home = "/var/empty";
9394 };
nixos/modules/services/misc/mame.nix+3−1
@@ -45,8 +45,10 @@ in
4545 environment.systemPackages = [ pkgs.mame ];
4646
4747 security.wrappers."${mame}" = {
48− source = "${pkgs.mame}/bin/${mame}";
48+ owner = "root";
49+ group = "root";
4950 capabilities = "cap_net_admin,cap_net_raw+eip";
51+ source = "${pkgs.mame}/bin/${mame}";
5052 };
5153
5254 systemd.services.mame = {
nixos/modules/services/misc/weechat.nix+6−1
@@ -52,7 +52,12 @@ in
5252 wants = [ "network.target" ];
5353 };
5454
55− security.wrappers.screen.source = "${pkgs.screen}/bin/screen";
55+ security.wrappers.screen =
56+ { setuid = true;
57+ owner = "root";
58+ group = "root";
59+ source = "${pkgs.screen}/bin/screen";
60+ };
5661 };
5762
5863 meta.doc = ./weechat.xml;
nixos/modules/services/monitoring/heapster.nix+3−1
@@ -50,8 +50,10 @@ in {
5050 };
5151
5252 users.users.heapster = {
53− uid = config.ids.uids.heapster;
53+ isSystemUser = true;
54+ group = "heapster";
5455 description = "Heapster user";
5556 };
57+ users.groups.heapster = {};
5658 };
5759}
nixos/modules/services/monitoring/incron.nix+6−1
@@ -71,7 +71,12 @@ in
7171
7272 environment.systemPackages = [ pkgs.incron ];
7373
74− security.wrappers.incrontab.source = "${pkgs.incron}/bin/incrontab";
74+ security.wrappers.incrontab =
75+ { setuid = true;
76+ owner = "root";
77+ group = "root";
78+ source = "${pkgs.incron}/bin/incrontab";
79+ };
7580
7681 # incron won't read symlinks
7782 environment.etc."incron.d/system" = {
nixos/modules/services/monitoring/zabbix-proxy.nix+6−1
@@ -262,7 +262,12 @@ in
262262 };
263263
264264 security.wrappers = {
265− fping.source = "${pkgs.fping}/bin/fping";
265+ fping =
266+ { setuid = true;
267+ owner = "root";
268+ group = "root";
269+ source = "${pkgs.fping}/bin/fping";
270+ };
266271 };
267272
268273 systemd.services.zabbix-proxy = {
nixos/modules/services/networking/nntp-proxy.nix+7−7
@@ -6,8 +6,6 @@ let
66
77 inherit (pkgs) nntp-proxy;
88
9− proxyUser = "nntp-proxy";
10−
119 cfg = config.services.nntp-proxy;
1210
1311 configBool = b: if b then "TRUE" else "FALSE";
@@ -210,16 +208,18 @@ in
210208
211209 config = mkIf cfg.enable {
212210
213− users.users.${proxyUser} =
214− { uid = config.ids.uids.nntp-proxy;
215− description = "NNTP-Proxy daemon user";
216− };
211+ users.users.nntp-proxy = {
212+ isSystemUser = true;
213+ group = "nntp-proxy";
214+ description = "NNTP-Proxy daemon user";
215+ };
216+ users.groups.nntp-proxy = {};
217217
218218 systemd.services.nntp-proxy = {
219219 description = "NNTP proxy";
220220 after = [ "network.target" "nss-lookup.target" ];
221221 wantedBy = [ "multi-user.target" ];
222− serviceConfig = { User="${proxyUser}"; };
222+ serviceConfig = { User="nntp-proxy"; };
223223 serviceConfig.ExecStart = "${nntp-proxy}/bin/nntp-proxy ${confFile}";
224224 preStart = ''
225225 if [ ! \( -f ${cfg.sslCert} -a -f ${cfg.sslKey} \) ]; then
nixos/modules/services/networking/ntp/ntpd.nix+6−6
@@ -10,8 +10,6 @@ let
1010
1111 stateDir = "/var/lib/ntp";
1212
13− ntpUser = "ntp";
14−
1513 configFile = pkgs.writeText "ntp.conf" ''
1614 driftfile ${stateDir}/ntp.drift
1715
@@ -27,7 +25,7 @@ let
2725 ${cfg.extraConfig}
2826 '';
2927
30− ntpFlags = "-c ${configFile} -u ${ntpUser}:nogroup ${toString cfg.extraFlags}";
28+ ntpFlags = "-c ${configFile} -u ntp:ntp ${toString cfg.extraFlags}";
3129
3230in
3331
@@ -119,11 +117,13 @@ in
119117
120118 systemd.services.systemd-timedated.environment = { SYSTEMD_TIMEDATED_NTP_SERVICES = "ntpd.service"; };
121119
122− users.users.${ntpUser} =
123− { uid = config.ids.uids.ntp;
120+ users.users.ntp =
121+ { isSystemUser = true;
122+ group = "ntp";
124123 description = "NTP daemon user";
125124 home = stateDir;
126125 };
126+ users.groups.ntp = {};
127127
128128 systemd.services.ntpd =
129129 { description = "NTP Daemon";
@@ -135,7 +135,7 @@ in
135135 preStart =
136136 ''
137137 mkdir -m 0755 -p ${stateDir}
138− chown ${ntpUser} ${stateDir}
138+ chown ntp ${stateDir}
139139 '';
140140
141141 serviceConfig = {
nixos/modules/services/networking/ntp/openntpd.nix+3−1
@@ -61,10 +61,12 @@ in
6161 environment.etc."ntpd.conf".text = configFile;
6262
6363 users.users.ntp = {
64− uid = config.ids.uids.ntp;
64+ isSystemUser = true;
65+ group = "ntp";
6566 description = "OpenNTP daemon user";
6667 home = "/var/empty";
6768 };
69+ users.groups.ntp = {};
6870
6971 systemd.services.openntpd = {
7072 description = "OpenNTP Server";
nixos/modules/services/networking/smokeping.nix+12−2
@@ -278,8 +278,18 @@ in
278278 }
279279 ];
280280 security.wrappers = {
281− fping.source = "${pkgs.fping}/bin/fping";
282− fping6.source = "${pkgs.fping}/bin/fping6";
281+ fping =
282+ { setuid = true;
283+ owner = "root";
284+ group = "root";
285+ source = "${pkgs.fping}/bin/fping";
286+ };
287+ fping6 =
288+ { setuid = true;
289+ owner = "root";
290+ group = "root";
291+ source = "${pkgs.fping}/bin/fping6";
292+ };
283293 };
284294 environment.systemPackages = [ pkgs.fping ];
285295 users.users.${cfg.user} = {
nixos/modules/services/networking/unifi.nix+3−1
@@ -115,10 +115,12 @@ in
115115 config = mkIf cfg.enable {
116116
117117 users.users.unifi = {
118− uid = config.ids.uids.unifi;
118+ isSystemUser = true;
119+ group = "unifi";
119120 description = "UniFi controller daemon user";
120121 home = "${stateDir}";
121122 };
123+ users.groups.unifi = {};
122124
123125 networking.firewall = mkIf cfg.openPorts {
124126 # https://help.ubnt.com/hc/en-us/articles/218506997
nixos/modules/services/networking/x2goserver.nix+2
@@ -88,12 +88,14 @@ in {
8888 source = "${pkgs.x2goserver}/lib/x2go/libx2go-server-db-sqlite3-wrapper.pl";
8989 owner = "x2go";
9090 group = "x2go";
91+ setuid = false;
9192 setgid = true;
9293 };
9394 security.wrappers.x2goprintWrapper = {
9495 source = "${pkgs.x2goserver}/bin/x2goprint";
9596 owner = "x2go";
9697 group = "x2go";
98+ setuid = false;
9799 setgid = true;
98100 };
99101
nixos/modules/services/scheduling/cron.nix+6−1
@@ -93,7 +93,12 @@ in
9393
9494 { services.cron.enable = mkDefault (allFiles != []); }
9595 (mkIf (config.services.cron.enable) {
96− security.wrappers.crontab.source = "${cronNixosPkg}/bin/crontab";
96+ security.wrappers.crontab =
97+ { setuid = true;
98+ owner = "root";
99+ group = "root";
100+ source = "${cronNixosPkg}/bin/crontab";
101+ };
97102 environment.systemPackages = [ cronNixosPkg ];
98103 environment.etc.crontab =
99104 { source = pkgs.runCommand "crontabs" { inherit allFiles; preferLocalBuild = true; }
nixos/modules/services/scheduling/fcron.nix+3
@@ -136,10 +136,13 @@ in
136136 owner = "fcron";
137137 group = "fcron";
138138 setgid = true;
139+ setuid = false;
139140 };
140141 fcronsighup = {
141142 source = "${pkgs.fcron}/bin/fcronsighup";
143+ owner = "root";
142144 group = "fcron";
145+ setuid = true;
143146 };
144147 };
145148 systemd.services.fcron = {
nixos/modules/services/video/replay-sorcery.nix+3−1
@@ -44,8 +44,10 @@ in
4444
4545 security.wrappers = mkIf cfg.enableSysAdminCapability {
4646 replay-sorcery = {
47− source = "${pkgs.replay-sorcery}/bin/replay-sorcery";
47+ owner = "root";
48+ group = "root";
4849 capabilities = "cap_sys_admin+ep";
50+ source = "${pkgs.replay-sorcery}/bin/replay-sorcery";
4951 };
5052 };
5153
nixos/modules/services/web-apps/dokuwiki.nix+327−268
@@ -1,16 +1,21 @@
1−{ config, lib, pkgs, ... }:
1+{ config, pkgs, lib, ... }:
22
33let
4+ inherit (lib) mkDefault mkEnableOption mkForce mkIf mkMerge mkOption types maintainers recursiveUpdate;
5+ inherit (lib) any attrValues concatMapStrings concatMapStringsSep flatten literalExample;
6+ inherit (lib) filterAttrs mapAttrs mapAttrs' mapAttrsToList nameValuePair optional optionalAttrs optionalString;
47
5− inherit (lib) mkEnableOption mkForce mkIf mkMerge mkOption optionalAttrs recursiveUpdate types maintainers;
6− inherit (lib) concatMapStringsSep flatten mapAttrs mapAttrs' mapAttrsToList nameValuePair concatMapStringSep;
7−
8− eachSite = config.services.dokuwiki;
9−
8+ cfg = migrateOldAttrs config.services.dokuwiki;
9+ eachSite = cfg.sites;
1010 user = "dokuwiki";
11− group = config.services.nginx.group;
11+ webserver = config.services.${cfg.webserver};
12+ stateDir = hostName: "/var/lib/dokuwiki/${hostName}/data";
13+
14+ # Migrate config.services.dokuwiki.<hostName> to config.services.dokuwiki.sites.<hostName>
15+ oldSites = filterAttrs (o: _: o != "sites" && o != "webserver");
16+ migrateOldAttrs = cfg: cfg // { sites = cfg.sites // oldSites cfg; };
1217
13− dokuwikiAclAuthConfig = cfg: pkgs.writeText "acl.auth.php" ''
18+ dokuwikiAclAuthConfig = hostName: cfg: pkgs.writeText "acl.auth-${hostName}.php" ''
1419 # acl.auth.php
1520 # <?php exit()?>
1621 #
@@ -19,7 +24,7 @@ let
1924 ${toString cfg.acl}
2025 '';
2126
22− dokuwikiLocalConfig = cfg: pkgs.writeText "local.php" ''
27+ dokuwikiLocalConfig = hostName: cfg: pkgs.writeText "local-${hostName}.php" ''
2328 <?php
2429 $conf['savedir'] = '${cfg.stateDir}';
2530 $conf['superuser'] = '${toString cfg.superUser}';
@@ -28,11 +33,12 @@ let
2833 ${toString cfg.extraConfig}
2934 '';
3035
31− dokuwikiPluginsLocalConfig = cfg: pkgs.writeText "plugins.local.php" ''
36+ dokuwikiPluginsLocalConfig = hostName: cfg: pkgs.writeText "plugins.local-${hostName}.php" ''
3237 <?php
3338 ${cfg.pluginsConfig}
3439 '';
3540
41+
3642 pkg = hostName: cfg: pkgs.stdenv.mkDerivation rec {
3743 pname = "dokuwiki-${hostName}";
3844 version = src.version;
@@ -43,13 +49,13 @@ let
4349 cp -r * $out/
4450
4551 # symlink the dokuwiki config
46− ln -s ${dokuwikiLocalConfig cfg} $out/share/dokuwiki/local.php
52+ ln -s ${dokuwikiLocalConfig hostName cfg} $out/share/dokuwiki/local.php
4753
4854 # symlink plugins config
49− ln -s ${dokuwikiPluginsLocalConfig cfg} $out/share/dokuwiki/plugins.local.php
55+ ln -s ${dokuwikiPluginsLocalConfig hostName cfg} $out/share/dokuwiki/plugins.local.php
5056
5157 # symlink acl
52− ln -s ${dokuwikiAclAuthConfig cfg} $out/share/dokuwiki/acl.auth.php
58+ ln -s ${dokuwikiAclAuthConfig hostName cfg} $out/share/dokuwiki/acl.auth.php
5359
5460 # symlink additional plugin(s) and templates(s)
5561 ${concatMapStringsSep "\n" (template: "ln -s ${template} $out/share/dokuwiki/lib/tpl/${template.name}") cfg.templates}
@@ -57,332 +63,385 @@ let
5763 '';
5864 };
5965
60− siteOpts = { config, lib, name, ...}: {
61− options = {
62− enable = mkEnableOption "DokuWiki web application.";
63−
64− package = mkOption {
65− type = types.package;
66− default = pkgs.dokuwiki;
67− description = "Which dokuwiki package to use.";
68− };
66+ siteOpts = { config, lib, name, ... }:
67+ {
68+ options = {
69+ package = mkOption {
70+ type = types.package;
71+ default = pkgs.dokuwiki;
72+ description = "Which DokuWiki package to use.";
73+ };
6974
70− hostName = mkOption {
71− type = types.str;
72− default = "localhost";
73− description = "FQDN for the instance.";
74− };
75+ stateDir = mkOption {
76+ type = types.path;
77+ default = "/var/lib/dokuwiki/${name}/data";
78+ description = "Location of the DokuWiki state directory.";
79+ };
7580
76− stateDir = mkOption {
77− type = types.path;
78− default = "/var/lib/dokuwiki/${name}/data";
79− description = "Location of the dokuwiki state directory.";
80− };
81+ acl = mkOption {
82+ type = types.nullOr types.lines;
83+ default = null;
84+ example = "* @ALL 8";
85+ description = ''
86+ Access Control Lists: see <link xlink:href="https://www.dokuwiki.org/acl"/>
87+ Mutually exclusive with services.dokuwiki.aclFile
88+ Set this to a value other than null to take precedence over aclFile option.
89+
90+ Warning: Consider using aclFile instead if you do not
91+ want to store the ACL in the world-readable Nix store.
92+ '';
93+ };
8194
82− acl = mkOption {
83− type = types.nullOr types.lines;
84− default = null;
85− example = "* @ALL 8";
86− description = ''
87− Access Control Lists: see <link xlink:href="https://www.dokuwiki.org/acl"/>
88− Mutually exclusive with services.dokuwiki.aclFile
89− Set this to a value other than null to take precedence over aclFile option.
90−
91− Warning: Consider using aclFile instead if you do not
92− want to store the ACL in the world-readable Nix store.
93− '';
94− };
95+ aclFile = mkOption {
96+ type = with types; nullOr str;
97+ default = if (config.aclUse && config.acl == null) then "/var/lib/dokuwiki/${name}/acl.auth.php" else null;
98+ description = ''
99+ Location of the dokuwiki acl rules. Mutually exclusive with services.dokuwiki.acl
100+ Mutually exclusive with services.dokuwiki.acl which is preferred.
101+ Consult documentation <link xlink:href="https://www.dokuwiki.org/acl"/> for further instructions.
102+ Example: <link xlink:href="https://github.com/splitbrain/dokuwiki/blob/master/conf/acl.auth.php.dist"/>
103+ '';
104+ example = "/var/lib/dokuwiki/${name}/acl.auth.php";
105+ };
95106
96− aclFile = mkOption {
97− type = with types; nullOr str;
98− default = if (config.aclUse && config.acl == null) then "/var/lib/dokuwiki/${name}/acl.auth.php" else null;
99− description = ''
100− Location of the dokuwiki acl rules. Mutually exclusive with services.dokuwiki.acl
101− Mutually exclusive with services.dokuwiki.acl which is preferred.
102− Consult documentation <link xlink:href="https://www.dokuwiki.org/acl"/> for further instructions.
103− Example: <link xlink:href="https://github.com/splitbrain/dokuwiki/blob/master/conf/acl.auth.php.dist"/>
104− '';
105− example = "/var/lib/dokuwiki/${name}/acl.auth.php";
106− };
107+ aclUse = mkOption {
108+ type = types.bool;
109+ default = true;
110+ description = ''
111+ Necessary for users to log in into the system.
112+ Also limits anonymous users. When disabled,
113+ everyone is able to create and edit content.
114+ '';
115+ };
107116
108− aclUse = mkOption {
109− type = types.bool;
110− default = true;
111− description = ''
112− Necessary for users to log in into the system.
113− Also limits anonymous users. When disabled,
114− everyone is able to create and edit content.
115− '';
116− };
117+ pluginsConfig = mkOption {
118+ type = types.lines;
119+ default = ''
120+ $plugins['authad'] = 0;
121+ $plugins['authldap'] = 0;
122+ $plugins['authmysql'] = 0;
123+ $plugins['authpgsql'] = 0;
124+ '';
125+ description = ''
126+ List of the dokuwiki (un)loaded plugins.
127+ '';
128+ };
117129
118− pluginsConfig = mkOption {
119− type = types.lines;
120− default = ''
121− $plugins['authad'] = 0;
122− $plugins['authldap'] = 0;
123− $plugins['authmysql'] = 0;
124− $plugins['authpgsql'] = 0;
125− '';
126− description = ''
127− List of the dokuwiki (un)loaded plugins.
128− '';
129− };
130+ superUser = mkOption {
131+ type = types.nullOr types.str;
132+ default = "@admin";
133+ description = ''
134+ You can set either a username, a list of usernames (“admin1,admin2”),
135+ or the name of a group by prepending an @ char to the groupname
136+ Consult documentation <link xlink:href="https://www.dokuwiki.org/config:superuser"/> for further instructions.
137+ '';
138+ };
130139
131− superUser = mkOption {
132− type = types.nullOr types.str;
133− default = "@admin";
134− description = ''
135− You can set either a username, a list of usernames (“admin1,admin2”),
136− or the name of a group by prepending an @ char to the groupname
137− Consult documentation <link xlink:href="https://www.dokuwiki.org/config:superuser"/> for further instructions.
138− '';
139− };
140+ usersFile = mkOption {
141+ type = with types; nullOr str;
142+ default = if config.aclUse then "/var/lib/dokuwiki/${name}/users.auth.php" else null;
143+ description = ''
144+ Location of the dokuwiki users file. List of users. Format:
145+ login:passwordhash:Real Name:email:groups,comma,separated
146+ Create passwordHash easily by using:$ mkpasswd -5 password `pwgen 8 1`
147+ Example: <link xlink:href="https://github.com/splitbrain/dokuwiki/blob/master/conf/users.auth.php.dist"/>
148+ '';
149+ example = "/var/lib/dokuwiki/${name}/users.auth.php";
150+ };
140151
141− usersFile = mkOption {
142− type = with types; nullOr str;
143− default = if config.aclUse then "/var/lib/dokuwiki/${name}/users.auth.php" else null;
144− description = ''
145− Location of the dokuwiki users file. List of users. Format:
146− login:passwordhash:Real Name:email:groups,comma,separated
147− Create passwordHash easily by using:$ mkpasswd -5 password `pwgen 8 1`
148− Example: <link xlink:href="https://github.com/splitbrain/dokuwiki/blob/master/conf/users.auth.php.dist"/>
152+ disableActions = mkOption {
153+ type = types.nullOr types.str;
154+ default = "";
155+ example = "search,register";
156+ description = ''
157+ Disable individual action modes. Refer to
158+ <link xlink:href="https://www.dokuwiki.org/config:action_modes"/>
159+ for details on supported values.
149160 '';
150− example = "/var/lib/dokuwiki/${name}/users.auth.php";
151− };
161+ };
152162
153− disableActions = mkOption {
154− type = types.nullOr types.str;
155− default = "";
156− example = "search,register";
157− description = ''
158− Disable individual action modes. Refer to
159− <link xlink:href="https://www.dokuwiki.org/config:action_modes"/>
160− for details on supported values.
161− '';
162− };
163+ plugins = mkOption {
164+ type = types.listOf types.path;
165+ default = [];
166+ description = ''
167+ List of path(s) to respective plugin(s) which are copied from the 'plugin' directory.
168+ <note><para>These plugins need to be packaged before use, see example.</para></note>
169+ '';
170+ example = ''
171+ # Let's package the icalevents plugin
172+ plugin-icalevents = pkgs.stdenv.mkDerivation {
173+ name = "icalevents";
174+ # Download the plugin from the dokuwiki site
175+ src = pkgs.fetchurl {
176+ url = "https://github.com/real-or-random/dokuwiki-plugin-icalevents/releases/download/2017-06-16/dokuwiki-plugin-icalevents-2017-06-16.zip";
177+ sha256 = "e40ed7dd6bbe7fe3363bbbecb4de481d5e42385b5a0f62f6a6ce6bf3a1f9dfa8";
178+ };
179+ sourceRoot = ".";
180+ # We need unzip to build this package
181+ buildInputs = [ pkgs.unzip ];
182+ # Installing simply means copying all files to the output directory
183+ installPhase = "mkdir -p $out; cp -R * $out/";
184+ };
163185
164− extraConfig = mkOption {
165− type = types.nullOr types.lines;
166− default = null;
167− example = ''
168− $conf['title'] = 'My Wiki';
169− $conf['userewrite'] = 1;
170− '';
171− description = ''
172− DokuWiki configuration. Refer to
173− <link xlink:href="https://www.dokuwiki.org/config"/>
174− for details on supported values.
175− '';
176− };
186+ # And then pass this theme to the plugin list like this:
187+ plugins = [ plugin-icalevents ];
188+ '';
189+ };
177190
178− plugins = mkOption {
179− type = types.listOf types.path;
180− default = [];
181− description = ''
182− List of path(s) to respective plugin(s) which are copied from the 'plugin' directory.
183− <note><para>These plugins need to be packaged before use, see example.</para></note>
184− '';
185− example = ''
186− # Let's package the icalevents plugin
187− plugin-icalevents = pkgs.stdenv.mkDerivation {
188− name = "icalevents";
189− # Download the plugin from the dokuwiki site
190− src = pkgs.fetchurl {
191− url = "https://github.com/real-or-random/dokuwiki-plugin-icalevents/releases/download/2017-06-16/dokuwiki-plugin-icalevents-2017-06-16.zip";
192− sha256 = "e40ed7dd6bbe7fe3363bbbecb4de481d5e42385b5a0f62f6a6ce6bf3a1f9dfa8";
191+ templates = mkOption {
192+ type = types.listOf types.path;
193+ default = [];
194+ description = ''
195+ List of path(s) to respective template(s) which are copied from the 'tpl' directory.
196+ <note><para>These templates need to be packaged before use, see example.</para></note>
197+ '';
198+ example = ''
199+ # Let's package the bootstrap3 theme
200+ template-bootstrap3 = pkgs.stdenv.mkDerivation {
201+ name = "bootstrap3";
202+ # Download the theme from the dokuwiki site
203+ src = pkgs.fetchurl {
204+ url = "https://github.com/giterlizzi/dokuwiki-template-bootstrap3/archive/v2019-05-22.zip";
205+ sha256 = "4de5ff31d54dd61bbccaf092c9e74c1af3a4c53e07aa59f60457a8f00cfb23a6";
206+ };
207+ # We need unzip to build this package
208+ buildInputs = [ pkgs.unzip ];
209+ # Installing simply means copying all files to the output directory
210+ installPhase = "mkdir -p $out; cp -R * $out/";
193211 };
194− sourceRoot = ".";
195− # We need unzip to build this package
196− nativeBuildInputs = [ pkgs.unzip ];
197− # Installing simply means copying all files to the output directory
198− installPhase = "mkdir -p $out; cp -R * $out/";
199− };
200−
201− # And then pass this theme to the plugin list like this:
202− plugins = [ plugin-icalevents ];
203− '';
204− };
205212
206− templates = mkOption {
207− type = types.listOf types.path;
208− default = [];
209− description = ''
210− List of path(s) to respective template(s) which are copied from the 'tpl' directory.
211− <note><para>These templates need to be packaged before use, see example.</para></note>
212− '';
213− example = ''
214− # Let's package the bootstrap3 theme
215− template-bootstrap3 = pkgs.stdenv.mkDerivation {
216− name = "bootstrap3";
217− # Download the theme from the dokuwiki site
218− src = pkgs.fetchurl {
219− url = "https://github.com/giterlizzi/dokuwiki-template-bootstrap3/archive/v2019-05-22.zip";
220− sha256 = "4de5ff31d54dd61bbccaf092c9e74c1af3a4c53e07aa59f60457a8f00cfb23a6";
221− };
222− # We need unzip to build this package
223− nativeBuildInputs = [ pkgs.unzip ];
224− # Installing simply means copying all files to the output directory
225− installPhase = "mkdir -p $out; cp -R * $out/";
226− };
227−
228− # And then pass this theme to the template list like this:
229− templates = [ template-bootstrap3 ];
230− '';
231− };
213+ # And then pass this theme to the template list like this:
214+ templates = [ template-bootstrap3 ];
215+ '';
216+ };
232217
233− poolConfig = mkOption {
234− type = with types; attrsOf (oneOf [ str int bool ]);
235− default = {
236− "pm" = "dynamic";
237− "pm.max_children" = 32;
238− "pm.start_servers" = 2;
239− "pm.min_spare_servers" = 2;
240− "pm.max_spare_servers" = 4;
241− "pm.max_requests" = 500;
218+ poolConfig = mkOption {
219+ type = with types; attrsOf (oneOf [ str int bool ]);
220+ default = {
221+ "pm" = "dynamic";
222+ "pm.max_children" = 32;
223+ "pm.start_servers" = 2;
224+ "pm.min_spare_servers" = 2;
225+ "pm.max_spare_servers" = 4;
226+ "pm.max_requests" = 500;
227+ };
228+ description = ''
229+ Options for the DokuWiki PHP pool. See the documentation on <literal>php-fpm.conf</literal>
230+ for details on configuration directives.
231+ '';
242232 };
243− description = ''
244− Options for the dokuwiki PHP pool. See the documentation on <literal>php-fpm.conf</literal>
245− for details on configuration directives.
246− '';
247− };
248233
249− nginx = mkOption {
250− type = types.submodule (
251− recursiveUpdate
252− (import ../web-servers/nginx/vhost-options.nix { inherit config lib; }) {}
253− );
254− default = {};
255− example = {
256− serverAliases = [
257− "wiki.\${config.networking.domain}"
258− ];
259− # To enable encryption and let let's encrypt take care of certificate
260− forceSSL = true;
261− enableACME = true;
234+ extraConfig = mkOption {
235+ type = types.nullOr types.lines;
236+ default = null;
237+ example = ''
238+ $conf['title'] = 'My Wiki';
239+ $conf['userewrite'] = 1;
240+ '';
241+ description = ''
242+ DokuWiki configuration. Refer to
243+ <link xlink:href="https://www.dokuwiki.org/config"/>
244+ for details on supported values.
245+ '';
262246 };
263− description = ''
264− With this option, you can customize the nginx virtualHost settings.
265− '';
247+
266248 };
249+
267250 };
268− };
269251in
270252{
271253 # interface
272254 options = {
273255 services.dokuwiki = mkOption {
274− type = types.attrsOf (types.submodule siteOpts);
256+ type = types.submodule {
257+ # Used to support old interface
258+ freeformType = types.attrsOf (types.submodule siteOpts);
259+
260+ # New interface
261+ options.sites = mkOption {
262+ type = types.attrsOf (types.submodule siteOpts);
263+ default = {};
264+ description = "Specification of one or more DokuWiki sites to serve";
265+ };
266+
267+ options.webserver = mkOption {
268+ type = types.enum [ "nginx" "caddy" ];
269+ default = "nginx";
270+ description = ''
271+ Whether to use nginx or caddy for virtual host management.
272+
273+ Further nginx configuration can be done by adapting <literal>services.nginx.virtualHosts.&lt;name&gt;</literal>.
274+ See <xref linkend="opt-services.nginx.virtualHosts"/> for further information.
275+
276+ Further apache2 configuration can be done by adapting <literal>services.httpd.virtualHosts.&lt;name&gt;</literal>.
277+ See <xref linkend="opt-services.httpd.virtualHosts"/> for further information.
278+ '';
279+ };
280+ };
275281 default = {};
276− description = "Sepcification of one or more dokuwiki sites to serve.";
282+ description = "DokuWiki configuration";
277283 };
284+
278285 };
279286
280287 # implementation
281−
282− config = mkIf (eachSite != {}) {
283−
284− warnings = mapAttrsToList (hostName: cfg: mkIf (cfg.superUser == null) "Not setting services.dokuwiki.${hostName} superUser will impair your ability to administer DokuWiki") eachSite;
288+ config = mkIf (eachSite != {}) (mkMerge [{
285289
286290 assertions = flatten (mapAttrsToList (hostName: cfg:
287291 [{
288292 assertion = cfg.aclUse -> (cfg.acl != null || cfg.aclFile != null);
289− message = "Either services.dokuwiki.${hostName}.acl or services.dokuwiki.${hostName}.aclFile is mandatory if aclUse true";
293+ message = "Either services.dokuwiki.sites.${hostName}.acl or services.dokuwiki.sites.${hostName}.aclFile is mandatory if aclUse true";
290294 }
291295 {
292296 assertion = cfg.usersFile != null -> cfg.aclUse != false;
293− message = "services.dokuwiki.${hostName}.aclUse must must be true if usersFile is not null";
297+ message = "services.dokuwiki.sites.${hostName}.aclUse must must be true if usersFile is not null";
294298 }
295299 ]) eachSite);
296300
301+ warnings = mapAttrsToList (hostName: _: ''services.dokuwiki."${hostName}" is deprecated use services.dokuwiki.sites."${hostName}"'') (oldSites cfg);
302+
297303 services.phpfpm.pools = mapAttrs' (hostName: cfg: (
298304 nameValuePair "dokuwiki-${hostName}" {
299305 inherit user;
300− inherit group;
306+ group = webserver.group;
307+
301308 phpEnv = {
302− DOKUWIKI_LOCAL_CONFIG = "${dokuwikiLocalConfig cfg}";
303− DOKUWIKI_PLUGINS_LOCAL_CONFIG = "${dokuwikiPluginsLocalConfig cfg}";
309+ DOKUWIKI_LOCAL_CONFIG = "${dokuwikiLocalConfig hostName cfg}";
310+ DOKUWIKI_PLUGINS_LOCAL_CONFIG = "${dokuwikiPluginsLocalConfig hostName cfg}";
304311 } // optionalAttrs (cfg.usersFile != null) {
305312 DOKUWIKI_USERS_AUTH_CONFIG = "${cfg.usersFile}";
306313 } //optionalAttrs (cfg.aclUse) {
307− DOKUWIKI_ACL_AUTH_CONFIG = if (cfg.acl != null) then "${dokuwikiAclAuthConfig cfg}" else "${toString cfg.aclFile}";
314+ DOKUWIKI_ACL_AUTH_CONFIG = if (cfg.acl != null) then "${dokuwikiAclAuthConfig hostName cfg}" else "${toString cfg.aclFile}";
308315 };
309316
310317 settings = {
311− "listen.mode" = "0660";
312− "listen.owner" = user;
313− "listen.group" = group;
318+ "listen.owner" = webserver.user;
319+ "listen.group" = webserver.group;
314320 } // cfg.poolConfig;
315− })) eachSite;
316−
317− services.nginx = {
318− enable = true;
319− virtualHosts = mapAttrs (hostName: cfg: mkMerge [ cfg.nginx {
320− root = mkForce "${pkg hostName cfg}/share/dokuwiki";
321− extraConfig = lib.optionalString (cfg.nginx.addSSL || cfg.nginx.forceSSL || cfg.nginx.onlySSL || cfg.nginx.enableACME) "fastcgi_param HTTPS on;";
322−
323− locations."~ /(conf/|bin/|inc/|install.php)" = {
324− extraConfig = "deny all;";
325− };
321+ }
322+ )) eachSite;
326323
327− locations."~ ^/data/" = {
328− root = "${cfg.stateDir}";
329− extraConfig = "internal;";
330− };
324+ }
331325
332− locations."~ ^/lib.*\\.(js|css|gif|png|ico|jpg|jpeg)$" = {
333− extraConfig = "expires 365d;";
334− };
326+ {
327+ systemd.tmpfiles.rules = flatten (mapAttrsToList (hostName: cfg: [
328+ "d ${stateDir hostName}/attic 0750 ${user} ${webserver.group} - -"
329+ "d ${stateDir hostName}/cache 0750 ${user} ${webserver.group} - -"
330+ "d ${stateDir hostName}/index 0750 ${user} ${webserver.group} - -"
331+ "d ${stateDir hostName}/locks 0750 ${user} ${webserver.group} - -"
332+ "d ${stateDir hostName}/media 0750 ${user} ${webserver.group} - -"
333+ "d ${stateDir hostName}/media_attic 0750 ${user} ${webserver.group} - -"
334+ "d ${stateDir hostName}/media_meta 0750 ${user} ${webserver.group} - -"
335+ "d ${stateDir hostName}/meta 0750 ${user} ${webserver.group} - -"
336+ "d ${stateDir hostName}/pages 0750 ${user} ${webserver.group} - -"
337+ "d ${stateDir hostName}/tmp 0750 ${user} ${webserver.group} - -"
338+ ] ++ lib.optional (cfg.aclFile != null) "C ${cfg.aclFile} 0640 ${user} ${webserver.group} - ${pkg hostName cfg}/share/dokuwiki/conf/acl.auth.php.dist"
339+ ++ lib.optional (cfg.usersFile != null) "C ${cfg.usersFile} 0640 ${user} ${webserver.group} - ${pkg hostName cfg}/share/dokuwiki/conf/users.auth.php.dist"
340+ ) eachSite);
335341
336− locations."/" = {
337− priority = 1;
338− index = "doku.php";
339− extraConfig = "try_files $uri $uri/ @dokuwiki;";
340− };
342+ users.users.${user} = {
343+ group = webserver.group;
344+ isSystemUser = true;
345+ };
346+ }
341347
342− locations."@dokuwiki" = {
343− extraConfig = ''
348+ (mkIf (cfg.webserver == "nginx") {
349+ services.nginx = {
350+ enable = true;
351+ virtualHosts = mapAttrs (hostName: cfg: {
352+ serverName = mkDefault hostName;
353+ root = "${pkg hostName cfg}/share/dokuwiki";
354+
355+ locations = {
356+ "~ /(conf/|bin/|inc/|install.php)" = {
357+ extraConfig = "deny all;";
358+ };
359+
360+ "~ ^/data/" = {
361+ root = "${stateDir hostName}";
362+ extraConfig = "internal;";
363+ };
364+
365+ "~ ^/lib.*\.(js|css|gif|png|ico|jpg|jpeg)$" = {
366+ extraConfig = "expires 365d;";
367+ };
368+
369+ "/" = {
370+ priority = 1;
371+ index = "doku.php";
372+ extraConfig = ''try_files $uri $uri/ @dokuwiki;'';
373+ };
374+
375+ "@dokuwiki" = {
376+ extraConfig = ''
344377 # rewrites "doku.php/" out of the URLs if you set the userwrite setting to .htaccess in dokuwiki config page
345378 rewrite ^/_media/(.*) /lib/exe/fetch.php?media=$1 last;
346379 rewrite ^/_detail/(.*) /lib/exe/detail.php?media=$1 last;
347380 rewrite ^/_export/([^/]+)/(.*) /doku.php?do=export_$1&id=$2 last;
348381 rewrite ^/(.*) /doku.php?id=$1&$args last;
349− '';
350− };
382+ '';
383+ };
351384
352− locations."~ \\.php$" = {
353− extraConfig = ''
385+ "~ \\.php$" = {
386+ extraConfig = ''
354387 try_files $uri $uri/ /doku.php;
355388 include ${pkgs.nginx}/conf/fastcgi_params;
356389 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
357390 fastcgi_param REDIRECT_STATUS 200;
358391 fastcgi_pass unix:${config.services.phpfpm.pools."dokuwiki-${hostName}".socket};
359− ${lib.optionalString (cfg.nginx.addSSL || cfg.nginx.forceSSL || cfg.nginx.onlySSL || cfg.nginx.enableACME) "fastcgi_param HTTPS on;"}
360− '';
392+ '';
393+ };
394+
361395 };
362− }]) eachSite;
396+ }) eachSite;
363397 };
398+ })
364399
365− systemd.tmpfiles.rules = flatten (mapAttrsToList (hostName: cfg: [
366− "d ${cfg.stateDir}/attic 0750 ${user} ${group} - -"
367− "d ${cfg.stateDir}/cache 0750 ${user} ${group} - -"
368− "d ${cfg.stateDir}/index 0750 ${user} ${group} - -"
369− "d ${cfg.stateDir}/locks 0750 ${user} ${group} - -"
370− "d ${cfg.stateDir}/media 0750 ${user} ${group} - -"
371− "d ${cfg.stateDir}/media_attic 0750 ${user} ${group} - -"
372− "d ${cfg.stateDir}/media_meta 0750 ${user} ${group} - -"
373− "d ${cfg.stateDir}/meta 0750 ${user} ${group} - -"
374− "d ${cfg.stateDir}/pages 0750 ${user} ${group} - -"
375− "d ${cfg.stateDir}/tmp 0750 ${user} ${group} - -"
376− ] ++ lib.optional (cfg.aclFile != null) "C ${cfg.aclFile} 0640 ${user} ${group} - ${pkg hostName cfg}/share/dokuwiki/conf/acl.auth.php.dist"
377− ++ lib.optional (cfg.usersFile != null) "C ${cfg.usersFile} 0640 ${user} ${group} - ${pkg hostName cfg}/share/dokuwiki/conf/users.auth.php.dist"
378− ) eachSite);
400+ (mkIf (cfg.webserver == "caddy") {
401+ services.caddy = {
402+ enable = true;
403+ virtualHosts = mapAttrs' (hostName: cfg: (
404+ nameValuePair "http://${hostName}" {
405+ extraConfig = ''
406+ root * ${pkg hostName cfg}/share/dokuwiki
407+ file_server
379408
380− users.users.${user} = {
381− group = group;
382− isSystemUser = true;
409+ encode zstd gzip
410+ php_fastcgi unix/${config.services.phpfpm.pools."dokuwiki-${hostName}".socket}
411+
412+ @restrict_files {
413+ path /data/* /conf/* /bin/* /inc/* /vendor/* /install.php
414+ }
415+
416+ respond @restrict_files 404
417+
418+ @allow_media {
419+ path_regexp path ^/_media/(.*)$
420+ }
421+ rewrite @allow_media /lib/exe/fetch.php?media=/{http.regexp.path.1}
422+
423+ @allow_detail {
424+ path /_detail*
425+ }
426+ rewrite @allow_detail /lib/exe/detail.php?media={path}
427+
428+ @allow_export {
429+ path /_export*
430+ path_regexp export /([^/]+)/(.*)
431+ }
432+ rewrite @allow_export /doku.php?do=export_{http.regexp.export.1}&id={http.regexp.export.2}
433+
434+ try_files {path} {path}/ /doku.php?id={path}&{query}
435+ '';
436+ }
437+ )) eachSite;
383438 };
384− };
439+ })
385440
386− meta.maintainers = with maintainers; [ _1000101 ];
441+ ]);
387442
443+ meta.maintainers = with maintainers; [
444+ _1000101
445+ onny
446+ ];
388447}
nixos/modules/services/x11/desktop-managers/cde.nix+3−2
@@ -49,9 +49,10 @@ in {
4949 users.groups.mail = {};
5050 security.wrappers = {
5151 dtmail = {
52− source = "${pkgs.cdesktopenv}/bin/dtmail";
53− group = "mail";
5452 setgid = true;
53+ owner = "nobody";
54+ group = "mail";
55+ source = "${pkgs.cdesktopenv}/bin/dtmail";
5556 };
5657 };
5758
nixos/modules/services/x11/desktop-managers/enlightenment.nix+18−3
@@ -65,9 +65,24 @@ in
6565
6666 # Wrappers for programs installed by enlightenment that should be setuid
6767 security.wrappers = {
68− enlightenment_ckpasswd.source = "${pkgs.enlightenment.enlightenment}/lib/enlightenment/utils/enlightenment_ckpasswd";
69− enlightenment_sys.source = "${pkgs.enlightenment.enlightenment}/lib/enlightenment/utils/enlightenment_sys";
70− enlightenment_system.source = "${pkgs.enlightenment.enlightenment}/lib/enlightenment/utils/enlightenment_system";
68+ enlightenment_ckpasswd =
69+ { setuid = true;
70+ owner = "root";
71+ group = "root";
72+ source = "${pkgs.enlightenment.enlightenment}/lib/enlightenment/utils/enlightenment_ckpasswd";
73+ };
74+ enlightenment_sys =
75+ { setuid = true;
76+ owner = "root";
77+ group = "root";
78+ source = "${pkgs.enlightenment.enlightenment}/lib/enlightenment/utils/enlightenment_sys";
79+ };
80+ enlightenment_system =
81+ { setuid = true;
82+ owner = "root";
83+ group = "root";
84+ source = "${pkgs.enlightenment.enlightenment}/lib/enlightenment/utils/enlightenment_system";
85+ };
7186 };
7287
7388 environment.etc."X11/xkb".source = xcfg.xkbDir;
nixos/modules/services/x11/desktop-managers/pantheon.nix+16−10
@@ -134,6 +134,9 @@ in
134134 services.accounts-daemon.enable = true;
135135 services.bamf.enable = true;
136136 services.colord.enable = mkDefault true;
137+ services.fwupd.enable = mkDefault true;
138+ services.touchegg.enable = mkDefault true;
139+ services.touchegg.package = pkgs.pantheon.touchegg;
137140 services.tumbler.enable = mkDefault true;
138141 services.system-config-printer.enable = (mkIf config.services.printing.enable (mkDefault true));
139142 services.dbus.packages = with pkgs.pantheon; [
@@ -162,12 +165,11 @@ in
162165 isAllowed = true;
163166 isSystem = true;
164167 };
165− # Use gnome-settings-daemon fork
166168 services.udev.packages = [
167− pkgs.pantheon.elementary-settings-daemon
169+ pkgs.gnome.gnome-settings-daemon338
168170 ];
169171 systemd.packages = [
170− pkgs.pantheon.elementary-settings-daemon
172+ pkgs.gnome.gnome-settings-daemon338
171173 ];
172174 programs.dconf.enable = true;
173175 networking.networkmanager.enable = mkDefault true;
@@ -180,7 +182,6 @@ in
180182 gnome.adwaita-icon-theme
181183 gtk3.out
182184 hicolor-icon-theme
183− lightlocker
184185 onboard
185186 qgnomeplatform
186187 shared-mime-info
@@ -208,15 +209,13 @@ in
208209
209210 # Services
210211 elementary-capnet-assist
211− elementary-dpms-helper
212212 elementary-notifications
213213 elementary-settings-daemon
214214 pantheon-agent-geoclue2
215215 pantheon-agent-polkit
216216 ]) ++ (gnome.removePackagesByName [
217− gnome.geary
218− gnome.epiphany
219217 gnome.gnome-font-viewer
218+ gnome.gnome-settings-daemon338
220219 ] config.environment.pantheon.excludePackages);
221220
222221 programs.evince.enable = mkDefault true;
@@ -224,9 +223,12 @@ in
224223
225224 # Settings from elementary-default-settings
226225 environment.sessionVariables.GTK_CSD = "1";
227− environment.sessionVariables.GTK3_MODULES = [ "pantheon-filechooser-module" ];
228226 environment.etc."gtk-3.0/settings.ini".source = "${pkgs.pantheon.elementary-default-settings}/etc/gtk-3.0/settings.ini";
229227
228+ xdg.portal.extraPortals = [
229+ pkgs.pantheon.elementary-files
230+ ];
231+
230232 # Override GSettings schemas
231233 environment.sessionVariables.NIX_GSETTINGS_OVERRIDES_DIR = "${nixos-gsettings-desktop-schemas}/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas";
232234
@@ -254,6 +256,8 @@ in
254256
255257 # Default Fonts
256258 fonts.fonts = with pkgs; [
259+ inter
260+ open-dyslexic
257261 open-sans
258262 roboto-mono
259263 ];
@@ -271,14 +275,16 @@ in
271275 elementary-camera
272276 elementary-code
273277 elementary-files
278+ elementary-mail
274279 elementary-music
275280 elementary-photos
276− elementary-screenshot-tool
281+ elementary-screenshot
277282 elementary-terminal
278283 elementary-videos
284+ epiphany
279285 ] config.environment.pantheon.excludePackages);
280286
281− # needed by screenshot-tool
287+ # needed by screenshot
282288 fonts.fonts = [
283289 pkgs.pantheon.elementary-redacted-script
284290 ];
nixos/modules/services/x11/desktop-managers/pantheon.xml+1−1
@@ -22,7 +22,7 @@
2222<programlisting>
2323<xref linkend="opt-services.pantheon.apps.enable"/> = false;
2424</programlisting>
25− You can also use <xref linkend="opt-environment.pantheon.excludePackages"/> to remove any other app (like <package>geary</package>).
25+ You can also use <xref linkend="opt-environment.pantheon.excludePackages"/> to remove any other app (like <package>elementary-mail</package>).
2626 </para>
2727 </section>
2828 <section xml:id="sec-pantheon-wingpanel-switchboard">
nixos/modules/services/x11/desktop-managers/plasma5.nix+18−6
@@ -197,12 +197,24 @@ in
197197 };
198198
199199 security.wrappers = {
200− kcheckpass.source = "${lib.getBin libsForQt5.kscreenlocker}/libexec/kcheckpass";
201− start_kdeinit.source = "${lib.getBin libsForQt5.kinit}/libexec/kf5/start_kdeinit";
202− kwin_wayland = {
203− source = "${lib.getBin plasma5.kwin}/bin/kwin_wayland";
204− capabilities = "cap_sys_nice+ep";
205− };
200+ kcheckpass =
201+ { setuid = true;
202+ owner = "root";
203+ group = "root";
204+ source = "${lib.getBin libsForQt5.kscreenlocker}/libexec/kcheckpass";
205+ };
206+ start_kdeinit =
207+ { setuid = true;
208+ owner = "root";
209+ group = "root";
210+ source = "${lib.getBin libsForQt5.kinit}/libexec/kf5/start_kdeinit";
211+ };
212+ kwin_wayland =
213+ { owner = "root";
214+ group = "root";
215+ capabilities = "cap_sys_nice+ep";
216+ source = "${lib.getBin plasma5.kwin}/bin/kwin_wayland";
217+ };
206218 };
207219
208220 # DDC support
nixos/modules/services/x11/extra-layouts.nix+6−46
@@ -79,6 +79,10 @@ let
7979 };
8080 };
8181
82+ xkb_patched = pkgs.xorg.xkeyboardconfig_custom {
83+ layouts = config.services.xserver.extraLayouts;
84+ };
85+
8286in
8387
8488{
@@ -114,58 +118,14 @@ in
114118
115119 config = mkIf (layouts != { }) {
116120
117− # We don't override xkeyboard_config directly to
118− # reduce the amount of packages to be recompiled.
119− # Only the following packages are necessary to set
120− # a custom layout anyway:
121− nixpkgs.overlays = lib.singleton (self: super: {
122−
123− xkb_patched = self.xorg.xkeyboardconfig_custom {
124− layouts = config.services.xserver.extraLayouts;
125− };
126−
127− xorg = super.xorg // {
128− xorgserver = super.xorg.xorgserver.overrideAttrs (old: {
129− configureFlags = old.configureFlags ++ [
130− "--with-xkb-bin-directory=${self.xorg.xkbcomp}/bin"
131− "--with-xkb-path=${self.xkb_patched}/share/X11/xkb"
132− ];
133− });
134−
135− setxkbmap = super.xorg.setxkbmap.overrideAttrs (old: {
136− postInstall =
137− ''
138− mkdir -p $out/share
139− ln -sfn ${self.xkb_patched}/etc/X11 $out/share/X11
140− '';
141− });
142−
143− xkbcomp = super.xorg.xkbcomp.overrideAttrs (old: {
144− configureFlags = [ "--with-xkb-config-root=${self.xkb_patched}/share/X11/xkb" ];
145− });
146−
147− };
148−
149− ckbcomp = super.ckbcomp.override {
150− xkeyboard_config = self.xkb_patched;
151− };
152−
153− xkbvalidate = super.xkbvalidate.override {
154− libxkbcommon = self.libxkbcommon.override {
155− xkeyboard_config = self.xkb_patched;
156− };
157− };
158−
159− });
160−
161121 environment.sessionVariables = {
162122 # runtime override supported by multiple libraries e. g. libxkbcommon
163123 # https://xkbcommon.org/doc/current/group__include-path.html
164− XKB_CONFIG_ROOT = "${pkgs.xkb_patched}/etc/X11/xkb";
124+ XKB_CONFIG_ROOT = "${xkb_patched}/etc/X11/xkb";
165125 };
166126
167127 services.xserver = {
168− xkbDir = "${pkgs.xkb_patched}/etc/X11/xkb";
128+ xkbDir = "${xkb_patched}/etc/X11/xkb";
169129 exportConfiguration = config.services.xserver.displayManager.startx.enable
170130 || config.services.xserver.displayManager.sx.enable;
171131 };
nixos/modules/services/x11/touchegg.nixnew file+38
@@ -0,0 +1,38 @@
1+{ config, lib, pkgs, ... }:
2+
3+with lib;
4+
5+let cfg = config.services.touchegg;
6+
7+in {
8+ meta = {
9+ maintainers = teams.pantheon.members;
10+ };
11+
12+ ###### interface
13+ options.services.touchegg = {
14+ enable = mkEnableOption "touchegg, a multi-touch gesture recognizer";
15+
16+ package = mkOption {
17+ type = types.package;
18+ default = pkgs.touchegg;
19+ defaultText = "pkgs.touchegg";
20+ description = "touchegg derivation to use.";
21+ };
22+ };
23+
24+ ###### implementation
25+ config = mkIf cfg.enable {
26+ systemd.services.touchegg = {
27+ description = "Touchegg Daemon";
28+ serviceConfig = {
29+ Type = "simple";
30+ ExecStart = "${cfg.package}/bin/touchegg --daemon";
31+ Restart = "on-failure";
32+ };
33+ wantedBy = [ "multi-user.target" ];
34+ };
35+
36+ environment.systemPackages = [ cfg.package ];
37+ };
38+}
nixos/modules/services/x11/xserver.nix+3
@@ -738,6 +738,9 @@ in
738738 nativeBuildInputs = with pkgs.buildPackages; [ xkbvalidate ];
739739 preferLocalBuild = true;
740740 } ''
741+ ${optionalString (config.environment.sessionVariables ? XKB_CONFIG_ROOT)
742+ "export XKB_CONFIG_ROOT=${config.environment.sessionVariables.XKB_CONFIG_ROOT}"
743+ }
741744 xkbvalidate "$xkbModel" "$layout" "$xkbVariant" "$xkbOptions"
742745 touch "$out"
743746 '');
nixos/modules/system/activation/activation-script.nix+1
@@ -263,6 +263,7 @@ in
263263 script = config.system.userActivationScripts.script;
264264 unitConfig.ConditionUser = "!@system";
265265 serviceConfig.Type = "oneshot";
266+ wantedBy = [ "default.target" ];
266267 };
267268 };
268269 };
nixos/modules/tasks/filesystems/ecryptfs.nix+12−2
@@ -7,8 +7,18 @@ with lib;
77 config = mkIf (any (fs: fs == "ecryptfs") config.boot.supportedFilesystems) {
88 system.fsPackages = [ pkgs.ecryptfs ];
99 security.wrappers = {
10− "mount.ecryptfs_private".source = "${pkgs.ecryptfs.out}/bin/mount.ecryptfs_private";
11− "umount.ecryptfs_private".source = "${pkgs.ecryptfs.out}/bin/umount.ecryptfs_private";
10+ "mount.ecryptfs_private" =
11+ { setuid = true;
12+ owner = "root";
13+ group = "root";
14+ source = "${pkgs.ecryptfs.out}/bin/mount.ecryptfs_private";
15+ };
16+ "umount.ecryptfs_private" =
17+ { setuid = true;
18+ owner = "root";
19+ group = "root";
20+ source = "${pkgs.ecryptfs.out}/bin/umount.ecryptfs_private";
21+ };
1222 };
1323 };
1424}
nixos/modules/tasks/network-interfaces.nix+7−2
@@ -1133,11 +1133,16 @@ in
11331133 # kernel because we need the ambient capability
11341134 security.wrappers = if (versionAtLeast (getVersion config.boot.kernelPackages.kernel) "4.3") then {
11351135 ping = {
1136− source = "${pkgs.iputils.out}/bin/ping";
1136+ owner = "root";
1137+ group = "root";
11371138 capabilities = "cap_net_raw+p";
1139+ source = "${pkgs.iputils.out}/bin/ping";
11381140 };
11391141 } else {
1140− ping.source = "${pkgs.iputils.out}/bin/ping";
1142+ setuid = true;
1143+ owner = "root";
1144+ group = "root";
1145+ source = "${pkgs.iputils.out}/bin/ping";
11411146 };
11421147 security.apparmor.policies."bin.ping".profile = lib.mkIf config.security.apparmor.policies."bin.ping".enable (lib.mkAfter ''
11431148 /run/wrappers/bin/ping {
nixos/modules/virtualisation/libvirtd.nix+3
@@ -183,6 +183,9 @@ in {
183183 };
184184
185185 security.wrappers.qemu-bridge-helper = {
186+ setuid = true;
187+ owner = "root";
188+ group = "root";
186189 source = "/run/${dirName}/nix-helpers/qemu-bridge-helper";
187190 };
188191
nixos/modules/virtualisation/spice-usb-redirection.nix+4−2
@@ -14,9 +14,11 @@
1414
1515 config = lib.mkIf config.virtualisation.spiceUSBRedirection.enable {
1616 environment.systemPackages = [ pkgs.spice-gtk ]; # For polkit actions
17− security.wrappers.spice-client-glib-usb-acl-helper ={
18− source = "${pkgs.spice-gtk}/bin/spice-client-glib-usb-acl-helper";
17+ security.wrappers.spice-client-glib-usb-acl-helper = {
18+ owner = "root";
19+ group = "root";
1920 capabilities = "cap_fowner+ep";
21+ source = "${pkgs.spice-gtk}/bin/spice-client-glib-usb-acl-helper";
2022 };
2123 };
2224
nixos/tests/all-tests.nix+1
@@ -461,6 +461,7 @@ in
461461 unit-php = handleTest ./web-servers/unit-php.nix {};
462462 upnp = handleTest ./upnp.nix {};
463463 usbguard = handleTest ./usbguard.nix {};
464+ user-activation-scripts = handleTest ./user-activation-scripts.nix {};
464465 uwsgi = handleTest ./uwsgi.nix {};
465466 v2ray = handleTest ./v2ray.nix {};
466467 vault = handleTest ./vault.nix {};
nixos/tests/dokuwiki.nix+60−25
@@ -33,44 +33,79 @@ let
3333in {
3434 name = "dokuwiki";
3535 meta = with pkgs.lib; {
36− maintainers = with maintainers; [ _1000101 ];
36+ maintainers = with maintainers; [
37+ _1000101
38+ onny
39+ ];
3740 };
38− machine = { ... }: {
39− services.dokuwiki."site1.local" = {
40− aclUse = false;
41− superUser = "admin";
41+
42+ nodes = {
43+ dokuwiki_nginx = {...}: {
44+ services.dokuwiki = {
45+ sites = {
46+ "site1.local" = {
47+ aclUse = false;
48+ superUser = "admin";
49+ };
50+ "site2.local" = {
51+ usersFile = "/var/lib/dokuwiki/site2.local/users.auth.php";
52+ superUser = "admin";
53+ templates = [ template-bootstrap3 ];
54+ plugins = [ plugin-icalevents ];
55+ };
56+ };
57+ };
58+
59+ networking.firewall.allowedTCPPorts = [ 80 ];
60+ networking.hosts."127.0.0.1" = [ "site1.local" "site2.local" ];
4261 };
43− services.dokuwiki."site2.local" = {
44− usersFile = "/var/lib/dokuwiki/site2.local/users.auth.php";
45− superUser = "admin";
46− templates = [ template-bootstrap3 ];
47− plugins = [ plugin-icalevents ];
62+
63+ dokuwiki_caddy = {...}: {
64+ services.dokuwiki = {
65+ webserver = "caddy";
66+ sites = {
67+ "site1.local" = {
68+ aclUse = false;
69+ superUser = "admin";
70+ };
71+ "site2.local" = {
72+ usersFile = "/var/lib/dokuwiki/site2.local/users.auth.php";
73+ superUser = "admin";
74+ templates = [ template-bootstrap3 ];
75+ plugins = [ plugin-icalevents ];
76+ };
77+ };
78+ };
79+
80+ networking.firewall.allowedTCPPorts = [ 80 ];
81+ networking.hosts."127.0.0.1" = [ "site1.local" "site2.local" ];
4882 };
49− networking.hosts."127.0.0.1" = [ "site1.local" "site2.local" ];
83+
5084 };
5185
5286 testScript = ''
53− site_names = ["site1.local", "site2.local"]
5487
5588 start_all()
5689
57− machine.wait_for_unit("phpfpm-dokuwiki-site1.local.service")
58− machine.wait_for_unit("phpfpm-dokuwiki-site2.local.service")
90+ dokuwiki_nginx.wait_for_unit("nginx")
91+ dokuwiki_caddy.wait_for_unit("caddy")
5992
60− machine.wait_for_unit("nginx.service")
93+ site_names = ["site1.local", "site2.local"]
6194
62− machine.wait_for_open_port(80)
95+ for machine in (dokuwiki_nginx, dokuwiki_caddy):
96+ for site_name in site_names:
97+ machine.wait_for_unit(f"phpfpm-dokuwiki-{site_name}")
6398
64− machine.succeed("curl -sSfL http://site1.local/ | grep 'DokuWiki'")
65− machine.fail("curl -sSfL 'http://site1.local/doku.php?do=login' | grep 'Login'")
99+ machine.succeed("curl -sSfL http://site1.local/ | grep 'DokuWiki'")
100+ machine.fail("curl -sSfL 'http://site1.local/doku.php?do=login' | grep 'Login'")
66101
67− machine.succeed("curl -sSfL http://site2.local/ | grep 'DokuWiki'")
68− machine.succeed("curl -sSfL 'http://site2.local/doku.php?do=login' | grep 'Login'")
102+ machine.succeed("curl -sSfL http://site2.local/ | grep 'DokuWiki'")
103+ machine.succeed("curl -sSfL 'http://site2.local/doku.php?do=login' | grep 'Login'")
69104
70− machine.succeed(
71− "echo 'admin:$2y$10$ijdBQMzSVV20SrKtCna8gue36vnsbVm2wItAXvdm876sshI4uwy6S:Admin:admin@example.test:user' >> /var/lib/dokuwiki/site2.local/users.auth.php",
72− "curl -sSfL -d 'u=admin&p=password' --cookie-jar cjar 'http://site2.local/doku.php?do=login'",
73− "curl -sSfL --cookie cjar --cookie-jar cjar 'http://site2.local/doku.php?do=login' | grep 'Logged in as: <bdi>Admin</bdi>'",
74− )
105+ machine.succeed(
106+ "echo 'admin:$2y$10$ijdBQMzSVV20SrKtCna8gue36vnsbVm2wItAXvdm876sshI4uwy6S:Admin:admin@example.test:user' >> /var/lib/dokuwiki/site2.local/users.auth.php",
107+ "curl -sSfL -d 'u=admin&p=password' --cookie-jar cjar 'http://site2.local/doku.php?do=login'",
108+ "curl -sSfL --cookie cjar --cookie-jar cjar 'http://site2.local/doku.php?do=login' | grep 'Logged in as: <bdi>Admin</bdi>'",
109+ )
75110 '';
76111})
nixos/tests/pantheon.nix+2−2
@@ -45,8 +45,8 @@ import ./make-test-python.nix ({ pkgs, ...} :
4545 with subtest("Check if pantheon session components actually start"):
4646 machine.wait_until_succeeds("pgrep gala")
4747 machine.wait_for_window("gala")
48− machine.wait_until_succeeds("pgrep wingpanel")
49− machine.wait_for_window("wingpanel")
48+ machine.wait_until_succeeds("pgrep -f io.elementary.wingpanel")
49+ machine.wait_for_window("io.elementary.wingpanel")
5050 machine.wait_until_succeeds("pgrep plank")
5151 machine.wait_for_window("plank")
5252
nixos/tests/spark/default.nixnew file+28
@@ -0,0 +1,28 @@
1+import ../make-test-python.nix ({...}: {
2+ name = "spark";
3+
4+ nodes = {
5+ worker = { nodes, pkgs, ... }: {
6+ virtualisation.memorySize = 1024;
7+ services.spark.worker = {
8+ enable = true;
9+ master = "master:7077";
10+ };
11+ };
12+ master = { config, pkgs, ... }: {
13+ services.spark.master = {
14+ enable = true;
15+ bind = "0.0.0.0";
16+ };
17+ networking.firewall.allowedTCPPorts = [ 22 7077 8080 ];
18+ };
19+ };
20+
21+ testScript = ''
22+ master.wait_for_unit("spark-master.service")
23+ worker.wait_for_unit("spark-worker.service")
24+ worker.copy_from_host( "${./spark_sample.py}", "/spark_sample.py" )
25+ assert "<title>Spark Master at spark://" in worker.succeed("curl -sSfkL http://master:8080/")
26+ worker.succeed("spark-submit --master spark://master:7077 --executor-memory 512m --executor-cores 1 /spark_sample.py")
27+ '';
28+})
nixos/tests/spark/spark_sample.pynew file+40
@@ -0,0 +1,40 @@
1+from pyspark.sql import Row, SparkSession
2+from pyspark.sql import functions as F
3+from pyspark.sql.functions import udf
4+from pyspark.sql.types import *
5+from pyspark.sql.functions import explode
6+
7+def explode_col(weight):
8+ return int(weight//10) * [10.0] + ([] if weight%10==0 else [weight%10])
9+
10+spark = SparkSession.builder.getOrCreate()
11+
12+dataSchema = [
13+ StructField("feature_1", FloatType()),
14+ StructField("feature_2", FloatType()),
15+ StructField("bias_weight", FloatType())
16+]
17+
18+data = [
19+ Row(0.1, 0.2, 10.32),
20+ Row(0.32, 1.43, 12.8),
21+ Row(1.28, 1.12, 0.23)
22+]
23+
24+df = spark.createDataFrame(spark.sparkContext.parallelize(data), StructType(dataSchema))
25+
26+normalizing_constant = 100
27+sum_bias_weight = df.select(F.sum('bias_weight')).collect()[0][0]
28+normalizing_factor = normalizing_constant / sum_bias_weight
29+df = df.withColumn('normalized_bias_weight', df.bias_weight * normalizing_factor)
30+df = df.drop('bias_weight')
31+df = df.withColumnRenamed('normalized_bias_weight', 'bias_weight')
32+
33+my_udf = udf(lambda x: explode_col(x), ArrayType(FloatType()))
34+df1 = df.withColumn('explode_val', my_udf(df.bias_weight))
35+df1 = df1.withColumn("explode_val_1", explode(df1.explode_val)).drop("explode_val")
36+df1 = df1.drop('bias_weight').withColumnRenamed('explode_val_1', 'bias_weight')
37+
38+df1.show()
39+
40+assert(df1.count() == 12)
nixos/tests/user-activation-scripts.nixnew file+33
@@ -0,0 +1,33 @@
1+import ./make-test-python.nix ({ lib, ... }: {
2+ name = "user-activation-scripts";
3+ meta = with lib.maintainers; { maintainers = [ chkno ]; };
4+
5+ machine = {
6+ system.userActivationScripts.foo = "mktemp ~/user-activation-ran.XXXXXX";
7+ users.users.alice = {
8+ initialPassword = "pass1";
9+ isNormalUser = true;
10+ };
11+ };
12+
13+ testScript = ''
14+ def verify_user_activation_run_count(n):
15+ machine.succeed(
16+ '[[ "$(find /home/alice/ -name user-activation-ran.\\* | wc -l)" == %s ]]' % n
17+ )
18+
19+
20+ machine.wait_for_unit("multi-user.target")
21+ machine.wait_for_unit("getty@tty1.service")
22+ machine.wait_until_tty_matches(1, "login: ")
23+ machine.send_chars("alice\n")
24+ machine.wait_until_tty_matches(1, "Password: ")
25+ machine.send_chars("pass1\n")
26+ machine.send_chars("touch login-ok\n")
27+ machine.wait_for_file("/home/alice/login-ok")
28+ verify_user_activation_run_count(1)
29+
30+ machine.succeed("/run/current-system/bin/switch-to-configuration test")
31+ verify_user_activation_run_count(2)
32+ '';
33+})
pkgs/applications/radio/pyradio/default.nix → pkgs/applications/audio/pyradio/default.nixrenamed

The content is the same.

pkgs/applications/audio/sidplayfp/default.nix+2−2
@@ -16,13 +16,13 @@
1616
1717stdenv.mkDerivation rec {
1818 pname = "sidplayfp";
19− version = "2.2.1";
19+ version = "2.2.2";
2020
2121 src = fetchFromGitHub {
2222 owner = "libsidplayfp";
2323 repo = "sidplayfp";
2424 rev = "v${version}";
25− sha256 = "sha256-IlPZmZpWxMaArkRnqu6JCGxiHU7JczRxiySqzAopfxc=";
25+ sha256 = "sha256-DBZZf3A0AYkeQxQvHGyHHbsQ2EDuxsZnZPbxkWTNcHA=";
2626 };
2727
2828 nativeBuildInputs = [ autoreconfHook perl pkg-config ];
pkgs/applications/editors/emacs/elisp-packages/ement/default.nix+11−7
@@ -9,7 +9,14 @@
99
1010trivialBuild {
1111 pname = "ement";
12− version = "unstable-2021-09-08";
12+ version = "unstable-2021-09-16";
13+
14+ src = fetchFromGitHub {
15+ owner = "alphapapa";
16+ repo = "ement.el";
17+ rev = "c07e914f077199c95b0e7941a421675c95d4687e";
18+ sha256 = "sha256-kYVb2NrHYC87mY/hFUMAjb4TLJ9A2L2RrHoiAXvRaGg=";
19+ };
1320
1421 packageRequires = [
1522 plz
@@ -17,12 +24,9 @@ trivialBuild {
1724 ts
1825 ];
1926
20− src = fetchFromGitHub {
21− owner = "alphapapa";
22− repo = "ement.el";
23− rev = "468aa9b0526aaa054f059c63797aa3d9ea13611d";
24− sha256 = "sha256-0FCAu253iTSf9qcsmoJxKlzfd5eYc8eJXUxG6+0eg/I=";
25− };
27+ patches = [
28+ ./handle-nil-images.patch
29+ ];
2630
2731 meta = {
2832 description = "Ement.el is a Matrix client for Emacs";
pkgs/applications/editors/emacs/elisp-packages/ement/handle-nil-images.patchnew file+28
@@ -0,0 +1,28 @@
1+diff --git a/ement.el b/ement.el
2+index c9596a7..1b33045 100644
3+--- a/ement.el
4++++ b/ement.el
5+@@ -682,14 +682,15 @@ can cause undesirable underlining."
6+ "Return a copy of IMAGE set to MAX-WIDTH and MAX-HEIGHT.
7+ IMAGE should be one as created by, e.g. `create-image'."
8+ ;; It would be nice if the image library had some simple functions to do this sort of thing.
9+- (let ((new-image (cl-copy-list image)))
10+- (when (fboundp 'imagemagick-types)
11+- ;; Only do this when ImageMagick is supported.
12+- ;; FIXME: When requiring Emacs 27+, remove this (I guess?).
13+- (setf (image-property new-image :type) 'imagemagick))
14+- (setf (image-property new-image :max-width) max-width
15+- (image-property new-image :max-height) max-height)
16+- new-image))
17++ (when image
18++ (let ((new-image (cl-copy-list image)))
19++ (when (fboundp 'imagemagick-types)
20++ ;; Only do this when ImageMagick is supported.
21++ ;; FIXME: When requiring Emacs 27+, remove this (I guess?).
22++ (setf (image-property new-image :type) 'imagemagick))
23++ (setf (image-property new-image :max-width) max-width
24++ (image-property new-image :max-height) max-height)
25++ new-image)))
26+
27+ ;;;;; Reading/writing sessions
28+
pkgs/applications/misc/gpxsee/default.nix+2−2
@@ -2,13 +2,13 @@
22
33mkDerivation rec {
44 pname = "gpxsee";
5− version = "9.5";
5+ version = "9.6";
66
77 src = fetchFromGitHub {
88 owner = "tumic0";
99 repo = "GPXSee";
1010 rev = version;
11− sha256 = "sha256-KYw3RXdL/iiE2zFbrDzRWe8jdLYbF6gvOFAGyWgd3GM=";
11+ sha256 = "sha256-Yj8lR8zgIV+gshea7rzLbMF84n1nyN3DytiIkr3B274=";
1212 };
1313
1414 patches = (substituteAll {
pkgs/applications/networking/browsers/chromium/common.nix+2−1
@@ -88,6 +88,8 @@ let
8888 gnSystemLibraries = lib.optionals (!chromiumVersionAtLeast "93") [
8989 "ffmpeg"
9090 "snappy"
91+ ] ++ lib.optionals (!chromiumVersionAtLeast "95") [
92+ "zlib"
9193 ] ++ [
9294 "flac"
9395 "libjpeg"
@@ -95,7 +97,6 @@ let
9597 "libwebp"
9698 "libxslt"
9799 "opus"
98− "zlib"
99100 ];
100101
101102 opusWithCustomModes = libopus.override {
pkgs/applications/networking/browsers/chromium/upstream-info.json+6−6
@@ -18,9 +18,9 @@
1818 }
1919 },
2020 "beta": {
21− "version": "94.0.4606.41",
22− "sha256": "0kdi8rbly002abg9jwkmv6xmfcv7g0rm68lbdsnhr0biy7wvadij",
23− "sha256bin64": "0ayhppzwc4ia36hpakqg9rh3cggw33c7d2zkfaias3zm14k86ga2",
21+ "version": "94.0.4606.50",
22+ "sha256": "1aqy9bvypx66bvn5p15g94p47yfbal8mixs1d0j82pznqnqgph1z",
23+ "sha256bin64": "07hq4qnbgq6m43zhipgy84yhiiy1fs6ffjkgsi8ixhr9b5pipzpv",
2424 "deps": {
2525 "gn": {
2626 "version": "2021-08-11",
@@ -31,9 +31,9 @@
3131 }
3232 },
3333 "dev": {
34− "version": "95.0.4636.4",
35− "sha256": "1rhkmja9p2a8cxnjsrs0ipzajxwgp3c8q3903rp8ns1g579c4g3j",
36− "sha256bin64": "0l89iqi95fa10m3jdhbvfdjf4x88gscx6imkhy2x2ax669d19606",
34+ "version": "95.0.4638.10",
35+ "sha256": "0pgd5k24yly9fqpzigc5qqx6lvn6m95fjp7294cgmk0132icx71j",
36+ "sha256bin64": "1gfaal3yxmi1n2nvfp39xp82g8vykzm0fjbdk0c1wh4gvlq2xx85",
3737 "deps": {
3838 "gn": {
3939 "version": "2021-08-11",
pkgs/applications/networking/browsers/palemoon/default.nix+7−10
@@ -1,6 +1,6 @@
11{ stdenv
22, lib
3−, fetchFromGitHub
3+, fetchzip
44, writeScript
55, alsa-lib
66, autoconf213
@@ -52,15 +52,12 @@ let
5252in
5353stdenv.mkDerivation rec {
5454 pname = "palemoon";
55− version = "29.4.0.2";
56−
57− src = fetchFromGitHub {
58− githubBase = "repo.palemoon.org";
59− owner = "MoonchildProductions";
60− repo = "Pale-Moon";
61− rev = "${version}_Release";
62− sha256 = "086f517xkk4smx57klyyvx4m3g6r5f1667w990zhpapbh997hfri";
63− fetchSubmodules = true;
55+ version = "29.4.1";
56+
57+ src = fetchzip {
58+ url = "http://archive.palemoon.org/source/palemoon-${version}-source.tar.xz";
59+ stripRoot = false;
60+ sha256 = "0kb9yn1q8rrmnlsyvxvv2gdgyyf12g6rxlyh82lmc0gysvd4qd2c";
6461 };
6562
6663 passthru.updateScript = writeScript "update-${pname}" ''
pkgs/applications/networking/cluster/bosh-cli/default.nix+2−2
@@ -8,13 +8,13 @@
88buildGoModule rec {
99 pname = "bosh-cli";
1010
11− version = "6.4.6";
11+ version = "6.4.7";
1212
1313 src = fetchFromGitHub {
1414 owner = "cloudfoundry";
1515 repo = pname;
1616 rev = "v${version}";
17− sha256 = "sha256-MNM8gyi7L00OSf2EIEQFAlH7oMrcZSubf6tWcgJJMeQ=";
17+ sha256 = "sha256-uLzYRfH2wJB/ucYtZGjKi0K5FaiP3CyA85gJ8Ji3WHE=";
1818 };
1919 vendorSha256 = null;
2020
pkgs/applications/networking/cluster/minikube/default.nix+3−3
@@ -11,9 +11,9 @@
1111
1212buildGoModule rec {
1313 pname = "minikube";
14− version = "1.22.0";
14+ version = "1.23.0";
1515
16− vendorSha256 = "sha256-zAXEwGJ3dnqN/+3k189zqppdiNHPyJ+mdZvDNEWQLsA=";
16+ vendorSha256 = "sha256-KhUmyQn97rXX49EFqUrR7UEm0J5gIdogUJMVW1Wjrdw=";
1717
1818 doCheck = false;
1919
@@ -21,7 +21,7 @@ buildGoModule rec {
2121 owner = "kubernetes";
2222 repo = "minikube";
2323 rev = "v${version}";
24− sha256 = "sha256-wL/HsdV6MZcsR3Y8pGZ5WYUMJ7j+VyJGpLeLIXm5MJM=";
24+ sha256 = "sha256-Cf77qaAsavkSpSoBJz3kcPzL2SL7X9O9lCTYcm1tFFQ=";
2525 };
2626
2727 nativeBuildInputs = [ installShellFiles pkg-config which ];
pkgs/applications/networking/cluster/spark/default.nix+64−45
@@ -1,56 +1,75 @@
1−{ lib, stdenv, fetchzip, makeWrapper, jre, pythonPackages, coreutils, hadoop
1+{ lib, stdenv, fetchzip, makeWrapper, jdk8, python3Packages, extraPythonPackages ? [], coreutils, hadoop
22, RSupport? true, R
33}:
44
55with lib;
66
7−stdenv.mkDerivation rec {
7+let
8+ spark = { pname, version, src }:
9+ stdenv.mkDerivation rec {
10+ inherit pname version src;
11+ nativeBuildInputs = [ makeWrapper ];
12+ buildInputs = [ jdk8 python3Packages.python ]
13+ ++ extraPythonPackages
14+ ++ optional RSupport R;
815
9− pname = "spark";
10− version = "2.4.4";
16+ untarDir = "${pname}-${version}";
17+ installPhase = ''
18+ mkdir -p $out/{lib/${untarDir}/conf,bin,/share/java}
19+ mv * $out/lib/${untarDir}
1120
12− src = fetchzip {
13− url = "mirror://apache/spark/${pname}-${version}/${pname}-${version}-bin-without-hadoop.tgz";
14− sha256 = "1a9w5k0207fysgpxx6db3a00fs5hdc2ncx99x4ccy2s0v5ndc66g";
21+ cp $out/lib/${untarDir}/conf/log4j.properties{.template,}
22+
23+ cat > $out/lib/${untarDir}/conf/spark-env.sh <<- EOF
24+ export JAVA_HOME="${jdk8}"
25+ export SPARK_HOME="$out/lib/${untarDir}"
26+ export SPARK_DIST_CLASSPATH=$(${hadoop}/bin/hadoop classpath)
27+ export PYSPARK_PYTHON="${python3Packages.python}/bin/${python3Packages.python.executable}"
28+ export PYTHONPATH="\$PYTHONPATH:$PYTHONPATH"
29+ ${optionalString RSupport ''
30+ export SPARKR_R_SHELL="${R}/bin/R"
31+ export PATH="\$PATH:${R}/bin"''}
32+ EOF
33+
34+ for n in $(find $out/lib/${untarDir}/bin -type f ! -name "*.*"); do
35+ makeWrapper "$n" "$out/bin/$(basename $n)"
36+ substituteInPlace "$n" --replace dirname ${coreutils.out}/bin/dirname
37+ done
38+ for n in $(find $out/lib/${untarDir}/sbin -type f); do
39+ # Spark deprecated scripts with "slave" in the name.
40+ # This line adds forward compatibility with the nixos spark module for
41+ # older versions of spark that don't have the new "worker" scripts.
42+ ln -s "$n" $(echo "$n" | sed -r 's/slave(s?).sh$/worker\1.sh/g') || true
43+ done
44+ ln -s $out/lib/${untarDir}/lib/spark-assembly-*.jar $out/share/java
45+ '';
46+
47+ meta = {
48+ description = "Apache Spark is a fast and general engine for large-scale data processing";
49+ homepage = "http://spark.apache.org";
50+ license = lib.licenses.asl20;
51+ platforms = lib.platforms.all;
52+ maintainers = with maintainers; [ thoughtpolice offline kamilchm illustris ];
53+ repositories.git = "git://git.apache.org/spark.git";
54+ };
55+ };
56+in {
57+ spark3 = spark rec {
58+ pname = "spark";
59+ version = "3.1.2";
60+
61+ src = fetchzip {
62+ url = "mirror://apache/spark/${pname}-${version}/${pname}-${version}-bin-without-hadoop.tgz";
63+ sha256 = "1bgh2y6jm7wqy6yc40rx68xkki31i3jiri2yixb1bm0i9pvsj9yf";
64+ };
1565 };
66+ spark2 = spark rec {
67+ pname = "spark";
68+ version = "2.4.8";
1669
17− nativeBuildInputs = [ makeWrapper ];
18− buildInputs = [ jre pythonPackages.python pythonPackages.numpy ]
19− ++ optional RSupport R;
20−
21− untarDir = "${pname}-${version}-bin-without-hadoop";
22− installPhase = ''
23− mkdir -p $out/{lib/${untarDir}/conf,bin,/share/java}
24− mv * $out/lib/${untarDir}
25−
26− sed -e 's/INFO, console/WARN, console/' < \
27− $out/lib/${untarDir}/conf/log4j.properties.template > \
28− $out/lib/${untarDir}/conf/log4j.properties
29−
30− cat > $out/lib/${untarDir}/conf/spark-env.sh <<- EOF
31− export JAVA_HOME="${jre}"
32− export SPARK_HOME="$out/lib/${untarDir}"
33− export SPARK_DIST_CLASSPATH=$(${hadoop}/bin/hadoop classpath)
34− export PYSPARK_PYTHON="${pythonPackages.python}/bin/${pythonPackages.python.executable}"
35− export PYTHONPATH="\$PYTHONPATH:$PYTHONPATH"
36− ${optionalString RSupport
37− ''export SPARKR_R_SHELL="${R}/bin/R"
38− export PATH=$PATH:"${R}/bin/R"''}
39− EOF
40−
41− for n in $(find $out/lib/${untarDir}/bin -type f ! -name "*.*"); do
42− makeWrapper "$n" "$out/bin/$(basename $n)"
43− substituteInPlace "$n" --replace dirname ${coreutils.out}/bin/dirname
44− done
45− ln -s $out/lib/${untarDir}/lib/spark-assembly-*.jar $out/share/java
46− '';
47−
48− meta = {
49− description = "Apache Spark is a fast and general engine for large-scale data processing";
50− homepage = "http://spark.apache.org";
51− license = lib.licenses.asl20;
52− platforms = lib.platforms.all;
53− maintainers = with maintainers; [ thoughtpolice offline kamilchm ];
54− repositories.git = "git://git.apache.org/spark.git";
70+ src = fetchzip {
71+ url = "mirror://apache/spark/${pname}-${version}/${pname}-${version}-bin-without-hadoop.tgz";
72+ sha256 = "1mkyq0gz9fiav25vr0dba5ivp0wh0mh7kswwnx8pvsmb6wbwyfxv";
73+ };
5574 };
5675}
pkgs/applications/networking/instant-messengers/ferdi/default.nix+2−2
@@ -17,10 +17,10 @@ in
1717mkFranzDerivation' rec {
1818 pname = "ferdi";
1919 name = "Ferdi";
20− version = "5.6.0";
20+ version = "5.6.2";
2121 src = fetchurl {
2222 url = "https://github.com/getferdi/ferdi/releases/download/v${version}/ferdi_${version}_amd64.deb";
23− sha256 = "sha256-yaAYNQAvbtArw9qAtbTDD11a9nH2OQEPE8QLg1E79Yc=";
23+ sha256 = "sha256-8rB7SnaIaeCXAaKELNO1CnxpV8TyeKRCVamwpATeia4=";
2424 };
2525 extraBuildInputs = [ xorg.libxshmfence ];
2626 meta = with lib; {
pkgs/applications/networking/instant-messengers/signal-desktop/default.nix+2−2
@@ -25,7 +25,7 @@ let
2525 else "");
2626in stdenv.mkDerivation rec {
2727 pname = "signal-desktop";
28− version = "5.17.1"; # Please backport all updates to the stable channel.
28+ version = "5.17.2"; # Please backport all updates to the stable channel.
2929 # All releases have a limited lifetime and "expire" 90 days after the release.
3030 # When releases "expire" the application becomes unusable until an update is
3131 # applied. The expiration date for the current release can be extracted with:
@@ -35,7 +35,7 @@ in stdenv.mkDerivation rec {
3535
3636 src = fetchurl {
3737 url = "https://updates.signal.org/desktop/apt/pool/main/s/signal-desktop/signal-desktop_${version}_amd64.deb";
38− sha256 = "sha256-gJ5jDMdEx2YSmPtNfv2gKKAgPfRJcb3Aabti/DgHaIU=";
38+ sha256 = "1fmn2i6k3zh3d37234yxbawzf85fa66xybcli7xffli39czxbcj3";
3939 };
4040
4141 nativeBuildInputs = [
pkgs/applications/science/biology/bowtie/default.nix+2−2
@@ -2,13 +2,13 @@
22
33stdenv.mkDerivation rec {
44 pname = "bowtie";
5− version = "1.3.0";
5+ version = "1.3.1";
66
77 src = fetchFromGitHub {
88 owner = "BenLangmead";
99 repo = pname;
1010 rev = "v${version}";
11− sha256 = "0da2kzyfsn6xv8mlqsv2vv7k8g0c9d2vgqzq8yqk888yljdzcrjp";
11+ sha256 = "sha256-mWItmrTMPst/NnzSpxxTHcBztDqHPCza9yOsZPwp7G4=";
1212 };
1313
1414 buildInputs = [ zlib ];
pkgs/applications/system/monitor/default.nix+2−2
@@ -19,13 +19,13 @@
1919
2020stdenv.mkDerivation rec {
2121 pname = "monitor";
22− version = "0.8.1";
22+ version = "0.9.5";
2323
2424 src = fetchFromGitHub {
2525 owner = "stsdc";
2626 repo = "monitor";
2727 rev = version;
28− sha256 = "111g2f3y5lmz91m755jz0x8yx5cx9ym484gch8wcv80dmr7ilb1y";
28+ sha256 = "sha256-eTsPn2Z1++KsZnnBnZ2s9fKK2HguPw+JqaRRkxQDiAk=";
2929 fetchSubmodules = true;
3030 };
3131
pkgs/applications/video/streamlink/default.nix+9−5
@@ -2,6 +2,7 @@
22, python3Packages
33, rtmpdump
44, ffmpeg
5+, fetchpatch
56}:
67
78python3Packages.buildPythonApplication rec {
@@ -33,11 +34,14 @@ python3Packages.buildPythonApplication rec {
3334 ffmpeg
3435 ];
3536
36− # note that upstream currently uses requests 2.25.1 in Windows builds
37− postPatch = ''
38− substituteInPlace setup.py \
39− --replace 'requests>=2.26.0,<3.0' 'requests'
40− '';
37+ patches = [
38+ # Patch failing tests to expect correct Accept-Encoding as generated by Requests
39+ (fetchpatch {
40+ url = "https://github.com/streamlink/streamlink/commit/ae747a113199c119bced4613d33edcc67a222bb9.patch";
41+ includes = [ "tests/test_stream_json.py" ];
42+ sha256 = "sha256-KEgyWdh5DNgNktmLSvKQowUQO9p9Q7zP4NbCQJPNgKw=";
43+ })
44+ ];
4145
4246 meta = with lib; {
4347 homepage = "https://streamlink.github.io/";
pkgs/applications/virtualization/catatonit/default.nix+3−11
@@ -1,24 +1,16 @@
1−{ lib, stdenv, fetchFromGitHub, fetchpatch, autoreconfHook, glibc, nixosTests }:
1+{ lib, stdenv, fetchFromGitHub, autoreconfHook, glibc, nixosTests }:
22
33stdenv.mkDerivation rec {
44 pname = "catatonit";
5− version = "0.1.5";
5+ version = "0.1.6";
66
77 src = fetchFromGitHub {
88 owner = "openSUSE";
99 repo = pname;
1010 rev = "v${version}";
11− sha256 = "ciJ1MI7jr5P2PgxIykQ+BiwNUO8lQHGt0+U8CNbc5bI=";
11+ sha256 = "sha256-hokG6o7toZxU984EvIlne33Aa2EZVZ3qu1jTZMm5nt4=";
1212 };
1313
14− patches = [
15− # Fix compilation with musl
16− (fetchpatch {
17− url = "https://github.com/openSUSE/catatonit/commit/75014b1c3099245b7d0f44f24d7f6dc4888a45fd.patch";
18− sha256 = "sha256-9VMNUT1U90ocjvE7EXYfLxuodDwTXXHYg89qqa5Jq0g=";
19− })
20− ];
21−
2214 nativeBuildInputs = [ autoreconfHook ];
2315 buildInputs = lib.optionals (!stdenv.hostPlatform.isMusl) [ glibc glibc.static ];
2416
pkgs/applications/virtualization/lima/default.nix+3−3
@@ -8,16 +8,16 @@
88
99buildGoModule rec {
1010 pname = "lima";
11− version = "0.6.3";
11+ version = "0.6.4";
1212
1313 src = fetchFromGitHub {
1414 owner = "lima-vm";
1515 repo = pname;
1616 rev = "v${version}";
17− sha256 = "sha256-3Bc8F8L4ac0YoUp2zoQYPsj7hcXKf8SVkE7q6q0MNSs=";
17+ sha256 = "sha256-u4XLWDJ35jEKKr98eEoUUsT3gawM/qNqXPXrhlQlugg=";
1818 };
1919
20− vendorSha256 = "sha256-vYeHv6sSiO6fY+oXR8bFFs/NAhivtnkc15pXEu+reZQ=";
20+ vendorSha256 = "sha256-ivKudP0SlArfD+wXHmqNRmW8UGu0o2SJqURrjPhK2hs=";
2121
2222 nativeBuildInputs = [ makeWrapper installShellFiles ];
2323
pkgs/desktops/gnome/core/epiphany/dark-style.patchnew file+76
@@ -0,0 +1,76 @@
1+diff --git a/meson.build b/meson.build
2+index de9cbfa850..647f617605 100644
3+--- a/meson.build
4++++ b/meson.build
5+@@ -92,6 +92,7 @@ iso_codes_dep = dependency('iso-codes', version: '>= 0.35')
6+ json_glib_dep = dependency('json-glib-1.0', version: '>= 1.6')
7+ libarchive_dep = dependency('libarchive')
8+ libdazzle_dep = dependency('libdazzle-1.0', version: '>= 3.37.1')
9++libgranite_dep = dependency('granite', version: '>= 6.0.0')
10+ libhandy_dep = dependency('libhandy-1', version: '>= 1.1.0')
11+ libsecret_dep = dependency('libsecret-1', version: '>= 0.19.0')
12+ libsoup_dep = dependency('libsoup-2.4', version: '>= 2.48.0')
13+diff --git a/src/ephy-shell.c b/src/ephy-shell.c
14+index 650531da86..b9d1355e86 100644
15+--- a/src/ephy-shell.c
16++++ b/src/ephy-shell.c
17+@@ -50,6 +50,7 @@
18+
19+ #include <glib/gi18n.h>
20+ #include <gtk/gtk.h>
21++#include <granite.h>
22+ #include <handy.h>
23+
24+ struct _EphyShell {
25+@@ -483,6 +484,20 @@ run_in_background_set_mapping (const GValue *value,
26+ return g_variant_new_boolean (g_variant_get_boolean (var));
27+ }
28+
29++static void
30++ephy_shell_set_prefers_color_scheme (EphyShell *shell)
31++{
32++ GtkSettings* gtk_settings = gtk_settings_get_default ();
33++ GraniteSettings* granite_settings = granite_settings_get_default ();
34++
35++ g_object_set (
36++ gtk_settings,
37++ "gtk-application-prefer-dark-theme",
38++ granite_settings_get_prefers_color_scheme (granite_settings) == GRANITE_SETTINGS_COLOR_SCHEME_DARK,
39++ NULL
40++ );
41++}
42++
43+ static void
44+ ephy_shell_startup (GApplication *application)
45+ {
46+@@ -490,11 +505,18 @@ ephy_shell_startup (GApplication *application)
47+ EphyShell *shell = EPHY_SHELL (application);
48+ EphyEmbedShellMode mode;
49+ GAction *action;
50++ GraniteSettings* granite_settings = granite_settings_get_default ();
51+
52+ G_APPLICATION_CLASS (ephy_shell_parent_class)->startup (application);
53+
54+ hdy_init ();
55+
56++ ephy_shell_set_prefers_color_scheme (shell);
57++
58++ g_signal_connect (granite_settings, "notify::prefers-color-scheme",
59++ G_CALLBACK (ephy_shell_set_prefers_color_scheme), shell
60++ );
61++
62+ /* If we are under Pantheon set the icon-theme and cursor-theme accordingly. */
63+ if (is_desktop_pantheon ()) {
64+ GtkSettings *settings = gtk_settings_get_default ();
65+diff --git a/src/meson.build b/src/meson.build
66+index 5bf3eb92ec..d17b1b6d93 100644
67+--- a/src/meson.build
68++++ b/src/meson.build
69+@@ -74,6 +74,7 @@ libephymain_deps = [
70+ gdk_dep,
71+ gvdb_dep,
72+ libarchive_dep,
73++ libgranite_dep,
74+ libhandy_dep
75+ ]
76+
pkgs/desktops/gnome/core/epiphany/default.nix+11−2
@@ -9,6 +9,7 @@
99, icu
1010, wrapGAppsHook
1111, gnome
12+, pantheon
1213, libportal
1314, libxml2
1415, libxslt
@@ -33,6 +34,7 @@
3334, libdazzle
3435, libhandy
3536, buildPackages
37+, withPantheon ? false
3638}:
3739
3840stdenv.mkDerivation rec {
@@ -44,6 +46,13 @@ stdenv.mkDerivation rec {
4446 sha256 = "2tE4ufLVXeJxEo/KOLYfU/2YDFh9KeG6a1CP/zsZ9WQ=";
4547 };
4648
49+ patches = lib.optionals withPantheon [
50+ # https://github.com/elementary/browser
51+ # FIXME: Update the patches when https://github.com/elementary/browser/pull/41 merged
52+ ./dark-style.patch
53+ ./navigation-buttons.patch
54+ ];
55+
4756 nativeBuildInputs = [
4857 desktop-file-utils
4958 gettext
@@ -87,7 +96,7 @@ stdenv.mkDerivation rec {
8796 p11-kit
8897 sqlite
8998 webkitgtk
90− ];
99+ ] ++ lib.optional withPantheon pantheon.granite;
91100
92101 # Tests need an X display
93102 mesonFlags = [
@@ -108,7 +117,7 @@ stdenv.mkDerivation rec {
108117 meta = with lib; {
109118 homepage = "https://wiki.gnome.org/Apps/Epiphany";
110119 description = "WebKit based web browser for GNOME";
111− maintainers = teams.gnome.members;
120+ maintainers = teams.gnome.members ++ teams.pantheon.members;
112121 license = licenses.gpl3Plus;
113122 platforms = platforms.linux;
114123 };
pkgs/desktops/gnome/core/epiphany/navigation-buttons.patchnew file+12
@@ -0,0 +1,12 @@
1+diff --git a/src/resources/gtk/action-bar-start.ui b/src/resources/gtk/action-bar-start.ui
2+index e604b9601f..2bfe244d53 100644
3+--- a/src/resources/gtk/action-bar-start.ui
4++++ b/src/resources/gtk/action-bar-start.ui
5+@@ -7,7 +7,6 @@
6+ <property name="visible">True</property>
7+ <property name="orientation">horizontal</property>
8+ <style>
9+- <class name="linked"/>
10+ <class name="navigation-box"/>
11+ </style>
12+ <child>
pkgs/desktops/gnome/core/gnome-settings-daemon/3.38/default.nixnew file+135
@@ -0,0 +1,135 @@
1+{ lib, stdenv
2+, fetchpatch
3+, substituteAll
4+, fetchurl
5+, meson
6+, ninja
7+, pkg-config
8+, gnome
9+, perl
10+, gettext
11+, gtk3
12+, glib
13+, libnotify
14+, libgnomekbd
15+, lcms2
16+, libpulseaudio
17+, alsa-lib
18+, libcanberra-gtk3
19+, upower
20+, colord
21+, libgweather
22+, polkit
23+, gsettings-desktop-schemas
24+, geoclue2
25+, systemd
26+, libgudev
27+, libwacom
28+, libxslt
29+, libxml2
30+, modemmanager
31+, networkmanager
32+, gnome-desktop
33+, geocode-glib
34+, docbook_xsl
35+, wrapGAppsHook
36+, python3
37+, tzdata
38+, nss
39+, gcr
40+, gnome-session-ctl
41+, pantheon
42+}:
43+
44+stdenv.mkDerivation rec {
45+ pname = "gnome-settings-daemon";
46+ version = "3.38.2";
47+
48+ src = fetchurl {
49+ url = "mirror://gnome/sources/gnome-settings-daemon/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
50+ sha256 = "136p3prdqvc0lvrcqs4h7crpnfqnimqklpzjivq5w4g1rhbdbhrj";
51+ };
52+
53+ patches = [
54+ # https://gitlab.gnome.org/GNOME/gnome-settings-daemon/-/merge_requests/202
55+ (fetchpatch {
56+ url = "https://gitlab.gnome.org/GNOME/gnome-settings-daemon/commit/aae1e774dd9de22fe3520cf9eb2bfbf7216f5eb0.patch";
57+ sha256 = "O4m0rOW8Zrgu3Q0p0OA8b951VC0FjYbOUk9MLzB9icI=";
58+ })
59+
60+ (substituteAll {
61+ src = ./fix-paths.patch;
62+ inherit tzdata;
63+ })
64+
65+ # Adjust to libgweather changes.
66+ # https://gitlab.gnome.org/GNOME/gnome-settings-daemon/-/merge_requests/217
67+ (fetchpatch {
68+ url = "https://gitlab.gnome.org/GNOME/gnome-settings-daemon/commit/82d88014dfca2df7e081712870e1fb017c16b808.patch";
69+ sha256 = "H5k/v+M2bRaswt5nrDJFNn4gS4BdB0UfzdjUCT4yLKg=";
70+ })
71+ ];
72+
73+ nativeBuildInputs = [
74+ meson
75+ ninja
76+ pkg-config
77+ perl
78+ gettext
79+ libxml2
80+ libxslt
81+ docbook_xsl
82+ wrapGAppsHook
83+ python3
84+ ];
85+
86+ buildInputs = [
87+ gtk3
88+ glib
89+ gsettings-desktop-schemas
90+ modemmanager
91+ networkmanager
92+ libnotify
93+ libgnomekbd # for org.gnome.libgnomekbd.keyboard schema
94+ gnome-desktop
95+ lcms2
96+ libpulseaudio
97+ alsa-lib
98+ libcanberra-gtk3
99+ upower
100+ colord
101+ libgweather
102+ nss
103+ polkit
104+ geocode-glib
105+ geoclue2
106+ systemd
107+ libgudev
108+ libwacom
109+ gcr
110+ ];
111+
112+ mesonFlags = [
113+ "-Dudev_dir=${placeholder "out"}/lib/udev"
114+ "-Dgnome_session_ctl_path=${gnome-session-ctl}/libexec/gnome-session-ctl"
115+ ];
116+
117+ # Default for release buildtype but passed manually because
118+ # we're using plain
119+ NIX_CFLAGS_COMPILE = "-DG_DISABLE_CAST_CHECKS";
120+
121+ postPatch = ''
122+ for f in gnome-settings-daemon/codegen.py plugins/power/gsd-power-constants-update.pl meson_post_install.py; do
123+ chmod +x $f
124+ patchShebangs $f
125+ done
126+ '';
127+
128+ meta = with lib; {
129+ description = "GNOME Settings Daemon";
130+ homepage = "https://gitlab.gnome.org/GNOME/gnome-settings-daemon/";
131+ license = licenses.gpl2Plus;
132+ maintainers = pantheon.maintainers;
133+ platforms = platforms.linux;
134+ };
135+}
pkgs/desktops/pantheon/services/elementary-settings-daemon/fix-paths.patch → pkgs/desktops/gnome/core/gnome-settings-daemon/3.38/fix-paths.patchrenamed

The content is the same.

pkgs/desktops/gnome/core/mutter/3.34/0001-EGL-Include-EGL-eglmesaext.h.patchdeleted−74
@@ -1,74 +0,0 @@
1−From 7b94f980f2a099dd4b19b60c357cfcf5ff7ada6d Mon Sep 17 00:00:00 2001
2−Message-Id: <7b94f980f2a099dd4b19b60c357cfcf5ff7ada6d.1601082838.git-series.worldofpeace@protonmail.ch>
3−From: WORLDofPEACE <worldofpeace@protonmail.ch>
4−Date: Sun, 20 Oct 2019 12:04:31 +0200
5−Subject: [PATCH 1/7] EGL: Include EGL/eglmesaext.h
6−
7−From: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
8−
9−The eglext.h shipped by libglvnd does not include the Mesa extensions,
10−unlike the header shipped in Mesa.
11−
12−Fixes https://gitlab.gnome.org/GNOME/mutter/issues/876
13−
14−(cherry picked from commit a444a4c5f58ea516ad3cd9d6ddc0056c3ca9bc90)
15−---
16− cogl/cogl/meson.build | 2 +-
17− src/backends/meta-egl-ext.h | 1 +
18− src/backends/meta-egl.c | 1 +
19− src/backends/meta-egl.h | 1 +
20− 4 files changed, 4 insertions(+), 1 deletion(-)
21−
22−diff --git a/cogl/cogl/meson.build b/cogl/cogl/meson.build
23−index 1057ef9..9a64294 100644
24−--- a/cogl/cogl/meson.build
25−+++ b/cogl/cogl/meson.build
26−@@ -48,7 +48,7 @@ cogl_gl_header_h = configure_file(
27− built_headers += [cogl_gl_header_h]
28−
29− if have_egl
30−- cogl_egl_includes_string = '#include <EGL/egl.h>\n#include <EGL/eglext.h>'
31−+ cogl_egl_includes_string = '#include <EGL/egl.h>\n#include <EGL/eglext.h>\n#include <EGL/eglmesaext.h>'
32− else
33− cogl_egl_includes_string = ''
34− endif
35−diff --git a/src/backends/meta-egl-ext.h b/src/backends/meta-egl-ext.h
36−index 8705e7d..db0b74f 100644
37−--- a/src/backends/meta-egl-ext.h
38−+++ b/src/backends/meta-egl-ext.h
39−@@ -29,6 +29,7 @@
40−
41− #include <EGL/egl.h>
42− #include <EGL/eglext.h>
43−+#include <EGL/eglmesaext.h>
44−
45− /*
46− * This is a little different to the tests shipped with EGL implementations,
47−diff --git a/src/backends/meta-egl.c b/src/backends/meta-egl.c
48−index 6554be9..fdeff4f 100644
49−--- a/src/backends/meta-egl.c
50−+++ b/src/backends/meta-egl.c
51−@@ -27,6 +27,7 @@
52−
53− #include <EGL/egl.h>
54− #include <EGL/eglext.h>
55−+#include <EGL/eglmesaext.h>
56− #include <gio/gio.h>
57− #include <glib.h>
58− #include <glib-object.h>
59−diff --git a/src/backends/meta-egl.h b/src/backends/meta-egl.h
60−index f2a8164..4591e7d 100644
61−--- a/src/backends/meta-egl.h
62−+++ b/src/backends/meta-egl.h
63−@@ -28,6 +28,7 @@
64−
65− #include <EGL/egl.h>
66− #include <EGL/eglext.h>
67−+#include <EGL/eglmesaext.h>
68− #include <glib-object.h>
69−
70− #define META_EGL_ERROR meta_egl_error_quark ()
71−
72−base-commit: 48ffbb582404c1d52196eb6cc5f082c31ca4910c
73−--
74−git-series 0.9.1
pkgs/desktops/gnome/core/mutter/3.34/0002-drop-inheritable.patchdeleted−135
@@ -1,135 +0,0 @@
1−From 14cee101882e65a57dcd66ea0f8399477b23ce7e Mon Sep 17 00:00:00 2001
2−Message-Id: <14cee101882e65a57dcd66ea0f8399477b23ce7e.1601082838.git-series.worldofpeace@protonmail.ch>
3−In-Reply-To: <7b94f980f2a099dd4b19b60c357cfcf5ff7ada6d.1601082838.git-series.worldofpeace@protonmail.ch>
4−References: <7b94f980f2a099dd4b19b60c357cfcf5ff7ada6d.1601082838.git-series.worldofpeace@protonmail.ch>
5−From: WORLDofPEACE <worldofpeace@protonmail.ch>
6−Date: Sat, 19 Oct 2019 13:26:05 +0200
7−Subject: [PATCH 2/7] drop inheritable
8−
9−From: Tor Hedin Brønner <torhedinbronner@gmail.com>
10−
11−Adapted from https://gitlab.gnome.org/GNOME/mutter/commit/c53c47ae123b03cc66044d2b846342123ecb3a01
12−
13−We only want to drop inheritable though, to prevent the ambient set leaking further than gnome-shell.
14−---
15− config.h.meson | 3 +++
16− meson.build | 5 +++++
17− meson_options.txt | 6 ++++++
18− src/core/main.c | 10 ++++++++++
19− src/meson.build | 1 +
20− 5 files changed, 25 insertions(+)
21−
22−diff --git a/config.h.meson b/config.h.meson
23−index 0bab718..202fb7e 100644
24−--- a/config.h.meson
25−+++ b/config.h.meson
26−@@ -58,6 +58,9 @@
27− /* Xwayland applications allowed to issue keyboard grabs */
28− #mesondefine XWAYLAND_GRAB_DEFAULT_ACCESS_RULES
29−
30−+/* Defined if libcap-ng is available */
31−+#mesondefine HAVE_LIBCAPNG
32−+
33− /* XKB base prefix */
34− #mesondefine XKB_BASE
35−
36−diff --git a/meson.build b/meson.build
37−index 29d495b..86970df 100644
38−--- a/meson.build
39−+++ b/meson.build
40−@@ -35,6 +35,7 @@ libstartup_notification_req = '>= 0.7'
41− libcanberra_req = '>= 0.26'
42− libwacom_req = '>= 0.13'
43− atk_req = '>= 2.5.3'
44−+libcapng_req = '>= 0.7.9'
45−
46− # optional version requirements
47− udev_req = '>= 228'
48−@@ -125,6 +126,7 @@ xau_dep = dependency('xau')
49− ice_dep = dependency('ice')
50− atk_dep = dependency('atk', version: atk_req)
51− libcanberra_dep = dependency('libcanberra', version: libcanberra_req)
52−+libcapng_dep = dependency('libcap-ng', required: get_option('libcapng'))
53−
54− # For now always require X11 support
55− have_x11 = true
56−@@ -256,6 +258,7 @@ have_core_tests = false
57− have_cogl_tests = false
58− have_clutter_tests = false
59− have_installed_tests = false
60−+have_libcapng = libcapng_dep.found()
61−
62− if have_tests
63− have_core_tests = get_option('core_tests')
64−@@ -361,6 +364,7 @@ cdata.set('HAVE_LIBWACOM', have_libwacom)
65− cdata.set('HAVE_SM', have_sm)
66− cdata.set('HAVE_STARTUP_NOTIFICATION', have_startup_notification)
67− cdata.set('HAVE_INTROSPECTION', have_introspection)
68−+cdata.set('HAVE_LIBCAPNG', have_libcapng)
69− cdata.set('HAVE_PROFILER', have_profiler)
70−
71− xkb_base = xkeyboard_config_dep.get_pkgconfig_variable('xkb_base')
72−@@ -443,6 +447,7 @@ output = [
73− ' Startup notification..... ' + have_startup_notification.to_string(),
74− ' Introspection............ ' + have_introspection.to_string(),
75− ' Profiler................. ' + have_profiler.to_string(),
76−+ ' libcap-ng................ ' + have_libcapng.to_string(),
77− '',
78− ' Tests:',
79− '',
80−diff --git a/meson_options.txt b/meson_options.txt
81−index 73aa7ad..8bfaacd 100644
82−--- a/meson_options.txt
83−+++ b/meson_options.txt
84−@@ -152,3 +152,9 @@ option('xwayland_grab_default_access_rules',
85− value: 'gnome-boxes,remote-viewer,virt-viewer,virt-manager,vinagre,vncviewer,Xephyr',
86− description: 'Comma delimited list of applications ressources or class allowed to issue X11 grabs in Xwayland'
87− )
88−+
89−+option('libcapng',
90−+ type: 'feature',
91−+ value: 'auto',
92−+ description: 'Enable libcap-ng support'
93−+)
94−diff --git a/src/core/main.c b/src/core/main.c
95−index 3935f35..ecf3cb2 100644
96−--- a/src/core/main.c
97−+++ b/src/core/main.c
98−@@ -66,6 +66,10 @@
99− #include <girepository.h>
100− #endif
101−
102−+#ifdef HAVE_LIBCAPNG
103−+#include <cap-ng.h>
104−+#endif
105−+
106− #if defined(HAVE_NATIVE_BACKEND) && defined(HAVE_WAYLAND)
107− #include <systemd/sd-login.h>
108− #endif /* HAVE_WAYLAND && HAVE_NATIVE_BACKEND */
109−@@ -673,6 +677,12 @@ meta_run (void)
110− if (!meta_display_open ())
111− meta_exit (META_EXIT_ERROR);
112−
113−+#ifdef HAVE_LIBCAPNG
114−+ capng_clear(CAPNG_SELECT_BOTH);
115−+ capng_update(CAPNG_ADD, CAPNG_EFFECTIVE|CAPNG_PERMITTED, CAP_SYS_NICE);
116−+ capng_apply(CAPNG_SELECT_BOTH);
117−+#endif
118−+
119− g_main_loop_run (meta_main_loop);
120−
121− meta_finalize ();
122−diff --git a/src/meson.build b/src/meson.build
123−index 90d8073..a9fffa2 100644
124−--- a/src/meson.build
125−+++ b/src/meson.build
126−@@ -18,6 +18,7 @@ mutter_pkg_deps = [
127− glib_dep,
128− gsettings_desktop_schemas_dep,
129− gtk3_dep,
130−+ libcapng_dep,
131− pango_dep,
132− ]
133−
134−--
135−git-series 0.9.1
pkgs/desktops/gnome/core/mutter/3.34/0003-Fix-glitches-in-gala.patchdeleted−33
@@ -1,33 +0,0 @@
1−From 5d2b9a03f24b4dbc423adff52b2eeb478c4b5913 Mon Sep 17 00:00:00 2001
2−Message-Id: <5d2b9a03f24b4dbc423adff52b2eeb478c4b5913.1601082838.git-series.worldofpeace@protonmail.ch>
3−In-Reply-To: <7b94f980f2a099dd4b19b60c357cfcf5ff7ada6d.1601082838.git-series.worldofpeace@protonmail.ch>
4−References: <7b94f980f2a099dd4b19b60c357cfcf5ff7ada6d.1601082838.git-series.worldofpeace@protonmail.ch>
5−From: WORLDofPEACE <worldofpeace@protonmail.ch>
6−Date: Sun, 5 Apr 2020 23:06:03 -0400
7−Subject: [PATCH 3/7] Fix glitches in gala
8−
9−From: worldofpeace <worldofpeace@protonmail.ch>
10−
11−This fixes issues for users of mutter like in gala[0].
12−
13−Upstream report: https://gitlab.gnome.org/GNOME/mutter/issues/536
14−[0]: https://github.com/elementary/gala/issues/605
15−---
16− clutter/clutter/clutter-actor.c | 2 +-
17− 1 file changed, 1 insertion(+), 1 deletion(-)
18−
19−diff --git a/clutter/clutter/clutter-actor.c b/clutter/clutter/clutter-actor.c
20−index ecf9a59..07b8b71 100644
21−--- a/clutter/clutter/clutter-actor.c
22−+++ b/clutter/clutter/clutter-actor.c
23−@@ -17831,7 +17831,7 @@ _clutter_actor_get_paint_volume_mutable (ClutterActor *self)
24− if (_clutter_actor_get_paint_volume_real (self, &priv->paint_volume))
25− {
26− priv->paint_volume_valid = TRUE;
27−- priv->needs_paint_volume_update = FALSE;
28−+ //priv->needs_paint_volume_update = FALSE;
29− return &priv->paint_volume;
30− }
31− else
32−--
33−git-series 0.9.1
pkgs/desktops/gnome/core/mutter/3.34/0004-profiler-track-changes-in-GLib-and-Sysprof.patchdeleted−58
@@ -1,58 +0,0 @@
1−From 5a9f9fbaa1322b2ad0a52fcdd171d4f44d031918 Mon Sep 17 00:00:00 2001
2−Message-Id: <5a9f9fbaa1322b2ad0a52fcdd171d4f44d031918.1601082838.git-series.worldofpeace@protonmail.ch>
3−In-Reply-To: <7b94f980f2a099dd4b19b60c357cfcf5ff7ada6d.1601082838.git-series.worldofpeace@protonmail.ch>
4−References: <7b94f980f2a099dd4b19b60c357cfcf5ff7ada6d.1601082838.git-series.worldofpeace@protonmail.ch>
5−From: WORLDofPEACE <worldofpeace@protonmail.ch>
6−Date: Wed, 30 Oct 2019 15:23:24 -0700
7−Subject: [PATCH 4/7] profiler: track changes in GLib and Sysprof
8−
9−From: Christian Hergert <chergert@redhat.com>
10−
11−This tracks the changes to gdbus-codegen in terms of how GUnixFDList is
12−done to use the UnixFD annotation.
13−
14−https://gitlab.gnome.org/GNOME/mutter/merge_requests/908
15−(cherry picked from commit 605171291993460f31d470a8143d6438d0c6169c)
16−---
17− src/backends/meta-profiler.c | 7 ++-----
18− 1 file changed, 2 insertions(+), 5 deletions(-)
19−
20−diff --git a/src/backends/meta-profiler.c b/src/backends/meta-profiler.c
21−index 10d433a..0d62701 100644
22−--- a/src/backends/meta-profiler.c
23−+++ b/src/backends/meta-profiler.c
24−@@ -51,13 +51,12 @@ G_DEFINE_TYPE_WITH_CODE (MetaProfiler,
25− static gboolean
26− handle_start (MetaDBusSysprof3Profiler *dbus_profiler,
27− GDBusMethodInvocation *invocation,
28−+ GUnixFDList *fd_list,
29− GVariant *options,
30− GVariant *fd_variant)
31− {
32− MetaProfiler *profiler = META_PROFILER (dbus_profiler);
33− GMainContext *main_context = g_main_context_default ();
34−- GDBusMessage *message;
35−- GUnixFDList *fd_list;
36− const char *group_name;
37− int position;
38− int fd = -1;
39−@@ -73,8 +72,6 @@ handle_start (MetaDBusSysprof3Profiler *dbus_profiler,
40−
41− g_variant_get (fd_variant, "h", &position);
42−
43−- message = g_dbus_method_invocation_get_message (invocation);
44−- fd_list = g_dbus_message_get_unix_fd_list (message);
45− if (fd_list)
46− fd = g_unix_fd_list_get (fd_list, position, NULL);
47−
48−@@ -98,7 +95,7 @@ handle_start (MetaDBusSysprof3Profiler *dbus_profiler,
49−
50− g_debug ("Profiler running");
51−
52−- meta_dbus_sysprof3_profiler_complete_start (dbus_profiler, invocation);
53−+ meta_dbus_sysprof3_profiler_complete_start (dbus_profiler, invocation, NULL);
54− return TRUE;
55− }
56−
57−--
58−git-series 0.9.1
pkgs/desktops/gnome/core/mutter/3.34/0005-meta-Add-missing-display.h-to-meta-workspace-manager.h.patchdeleted−32
@@ -1,32 +0,0 @@
1−From 2caa072dd8e283a8e43febeab55fe8b76dda69b7 Mon Sep 17 00:00:00 2001
2−Message-Id: <2caa072dd8e283a8e43febeab55fe8b76dda69b7.1601082838.git-series.worldofpeace@protonmail.ch>
3−In-Reply-To: <7b94f980f2a099dd4b19b60c357cfcf5ff7ada6d.1601082838.git-series.worldofpeace@protonmail.ch>
4−References: <7b94f980f2a099dd4b19b60c357cfcf5ff7ada6d.1601082838.git-series.worldofpeace@protonmail.ch>
5−From: WORLDofPEACE <worldofpeace@protonmail.ch>
6−Date: Wed, 29 Jan 2020 11:02:33 +0100
7−Subject: [PATCH 5/7] meta: Add missing display.h to meta-workspace-manager.h
8−
9−From: Corentin Noël <corentin@elementary.io>
10−
11−This is required because MetaDisplayCorner is only defined in display.h
12−
13−https://gitlab.gnome.org/GNOME/mutter/merge_requests/1025
14−(cherry picked from commit 9d390ee49fb1f6300336e82ae94cc8061c6bae12)
15−---
16− src/meta/meta-workspace-manager.h | 1 +
17− 1 file changed, 1 insertion(+)
18−
19−diff --git a/src/meta/meta-workspace-manager.h b/src/meta/meta-workspace-manager.h
20−index 0390c44..92cd681 100644
21−--- a/src/meta/meta-workspace-manager.h
22−+++ b/src/meta/meta-workspace-manager.h
23−@@ -26,6 +26,7 @@
24− #include <glib-object.h>
25−
26− #include <meta/common.h>
27−+#include <meta/display.h>
28− #include <meta/prefs.h>
29− #include <meta/types.h>
30−
31−--
32−git-series 0.9.1
pkgs/desktops/gnome/core/mutter/3.34/0006-build-bump-ABI-to-sysprof-capture-4.patchdeleted−102
@@ -1,102 +0,0 @@
1−From 0c95e5a5b31eab93f149b90982680f38e8977063 Mon Sep 17 00:00:00 2001
2−Message-Id: <0c95e5a5b31eab93f149b90982680f38e8977063.1601082838.git-series.worldofpeace@protonmail.ch>
3−In-Reply-To: <7b94f980f2a099dd4b19b60c357cfcf5ff7ada6d.1601082838.git-series.worldofpeace@protonmail.ch>
4−References: <7b94f980f2a099dd4b19b60c357cfcf5ff7ada6d.1601082838.git-series.worldofpeace@protonmail.ch>
5−From: WORLDofPEACE <worldofpeace@protonmail.ch>
6−Date: Sat, 4 Jul 2020 12:01:28 -0700
7−Subject: [PATCH 6/7] build: bump ABI to sysprof-capture-4
8−
9−From: Christian Hergert <chergert@redhat.com>
10−
11−GLib will now be linking against sysprof-capture-4.a. To support that,
12−sysprof had to remove the GLib dependency from sysprof-capture-4 which
13−had the side-effect of breaking ABi.
14−
15−This bumps the dependency and includes a fallback to compile just the
16−libsysprof-capture-4.a using a subproject wrap.
17−
18−https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1352
19−(cherry picked from commit 2c08eb6d163b6758efec9eafe1d5c17fc1ab3692)
20−---
21− meson.build | 20 ++++++++++++++++++--
22− src/meson.build | 8 ++++++--
23− subprojects/sysprof.wrap | 4 ++++
24− 3 files changed, 28 insertions(+), 4 deletions(-)
25− create mode 100644 subprojects/sysprof.wrap
26−
27−diff --git a/meson.build b/meson.build
28−index 86970df..3dc0098 100644
29−--- a/meson.build
30−+++ b/meson.build
31−@@ -1,6 +1,6 @@
32− project('mutter', 'c',
33− version: '3.34.6',
34−- meson_version: '>= 0.50.0',
35−+ meson_version: '>= 0.51.0',
36− license: 'GPLv2+'
37− )
38−
39−@@ -52,6 +52,9 @@ gbm_req = '>= 10.3'
40− # screen cast version requirements
41− libpipewire_req = '>= 0.2.5'
42−
43−+# profiler requirements
44−+sysprof_req = '>= 3.37.2'
45−+
46− gnome = import('gnome')
47− pkg = import('pkgconfig')
48− i18n = import('i18n')
49−@@ -275,7 +278,20 @@ endif
50−
51− have_profiler = get_option('profiler')
52− if have_profiler
53−- sysprof_dep = dependency('sysprof-capture-3')
54−+ # libsysprof-capture support
55−+ sysprof_dep = dependency('sysprof-capture-4',
56−+ required: true,
57−+ default_options: [
58−+ 'enable_examples=false',
59−+ 'enable_gtk=false',
60−+ 'enable_tests=false',
61−+ 'enable_tools=false',
62−+ 'libsysprof=false',
63−+ 'with_sysprofd=none',
64−+ 'help=false',
65−+ ],
66−+ fallback: ['sysprof', 'libsysprof_capture_dep'],
67−+ )
68− endif
69−
70− required_functions = [
71−diff --git a/src/meson.build b/src/meson.build
72−index a9fffa2..a91baa1 100644
73−--- a/src/meson.build
74−+++ b/src/meson.build
75−@@ -711,9 +711,13 @@ if have_profiler
76− 'backends/meta-profiler.h',
77− ]
78−
79−- dbus_interfaces_dir = join_paths(datadir, 'dbus-1', 'interfaces')
80−- sysprof3_dbus_file = join_paths(dbus_interfaces_dir, 'org.gnome.Sysprof3.Profiler.xml')
81−+ if sysprof_dep.type_name() == 'pkgconfig'
82−+ sysprof_dbus_interfaces_dir = join_paths(sysprof_dep.get_pkgconfig_variable('datadir'), 'dbus-1', 'interfaces')
83−+ else
84−+ sysprof_dbus_interfaces_dir = join_paths(meson.source_root(), 'subprojects', 'sysprof', 'src')
85−+ endif
86−
87−+ sysprof3_dbus_file = join_paths(sysprof_dbus_interfaces_dir, 'org.gnome.Sysprof3.Profiler.xml')
88− dbus_sysprof3_profiler_built_sources = gnome.gdbus_codegen('meta-dbus-sysprof3-profiler',
89− sysprof3_dbus_file,
90− interface_prefix: 'org.gnome.',
91−diff --git a/subprojects/sysprof.wrap b/subprojects/sysprof.wrap
92−new file mode 100644
93−index 0000000..c8f5883
94−--- /dev/null
95−+++ b/subprojects/sysprof.wrap
96−@@ -0,0 +1,4 @@
97−+[wrap-git]
98−+directory=sysprof
99−+url=https://gitlab.gnome.org/GNOME/sysprof.git
100−+revision=cae28263ff5dd4a510d82f3dc2e3a3b3d9b386fb
101−--
102−git-series 0.9.1
pkgs/desktops/gnome/core/mutter/3.34/0007-fix-paths.patchdeleted−27
@@ -1,27 +0,0 @@
1−From 7bbbf082599ec786f64f2135c9acc0b4fe2ecbf4 Mon Sep 17 00:00:00 2001
2−Message-Id: <7bbbf082599ec786f64f2135c9acc0b4fe2ecbf4.1601082838.git-series.worldofpeace@protonmail.ch>
3−In-Reply-To: <7b94f980f2a099dd4b19b60c357cfcf5ff7ada6d.1601082838.git-series.worldofpeace@protonmail.ch>
4−References: <7b94f980f2a099dd4b19b60c357cfcf5ff7ada6d.1601082838.git-series.worldofpeace@protonmail.ch>
5−From: WORLDofPEACE <worldofpeace@protonmail.ch>
6−Date: Fri, 25 Sep 2020 20:48:33 -0400
7−Subject: [PATCH 7/7] fix paths
8−
9−---
10− src/core/util.c | 2 +-
11− 1 file changed, 1 insertion(+), 1 deletion(-)
12−
13−diff --git a/src/core/util.c b/src/core/util.c
14−index 79bcfdc..87ce549 100644
15−--- a/src/core/util.c
16−+++ b/src/core/util.c
17−@@ -623,7 +623,7 @@ meta_show_dialog (const char *type,
18−
19− args = g_ptr_array_new ();
20−
21−- append_argument (args, "zenity");
22−+ append_argument (args, "@zenity@/bin/zenity");
23− append_argument (args, type);
24−
25− if (display)
26−--
27−git-series 0.9.1
pkgs/desktops/gnome/core/mutter/3.34/default.nix → pkgs/desktops/gnome/core/mutter/3.38/default.nixrenamed+62−32
@@ -1,35 +1,35 @@
11{ fetchurl
2−, fetchpatch
32, substituteAll
4−, lib, stdenv
3+, runCommand
4+, lib
5+, stdenv
56, pkg-config
67, gnome
7−, pantheon
88, gettext
99, gobject-introspection
10−, upower
1110, cairo
1211, pango
13−, cogl
1412, json-glib
1513, libstartup_notification
1614, zenity
17−, libcanberra-gtk3
15+, libcanberra
1816, ninja
1917, xkeyboard_config
2018, libxkbfile
19+, libXdamage
2120, libxkbcommon
2221, libXtst
2322, libinput
23+, libdrm
2424, gsettings-desktop-schemas
2525, glib
2626, gtk3
2727, gnome-desktop
28−, geocode-glib
29−, pipewire_0_2
28+, pipewire
3029, libgudev
3130, libwacom
3231, xwayland
32+, mesa
3333, meson
3434, gnome-settings-daemon
3535, xorgserver
@@ -39,23 +39,47 @@
3939, desktop-file-utils
4040, libcap_ng
4141, egl-wayland
42+, graphene
43+, wayland-protocols
44+, pantheon
4245}:
4346
44−stdenv.mkDerivation rec {
47+let self = stdenv.mkDerivation rec {
4548 pname = "mutter";
46− version = "3.34.6";
49+ version = "3.38.6";
4750
4851 outputs = [ "out" "dev" "man" ];
4952
5053 src = fetchurl {
5154 url = "mirror://gnome/sources/mutter/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
52− hash = "sha256-I73ofTO4mBNYgxzsiRW7X/Hq+cHedMkM0WYLG5WINSY=";
55+ sha256 = "0mxln9azl4krmknq2vmhd15lgpa2q7gh7whiv14nsqbr9iaxmg2x";
5356 };
5457
58+ patches = [
59+ # Drop inheritable cap_sys_nice, to prevent the ambient set from leaking
60+ # from mutter/gnome-shell, see https://github.com/NixOS/nixpkgs/issues/71381
61+ ./drop-inheritable.patch
62+
63+ # Fixes issues for users of mutter like in gala.
64+ # https://github.com/elementary/gala/issues/605
65+ # https://gitlab.gnome.org/GNOME/mutter/issues/536
66+ ./fix-glitches-in-gala.patch
67+
68+ (substituteAll {
69+ src = ./fix-paths.patch;
70+ inherit zenity;
71+ })
72+ ];
73+
5574 mesonFlags = [
5675 "-Degl_device=true"
5776 "-Dinstalled_tests=false" # TODO: enable these
5877 "-Dwayland_eglstream=true"
78+ "-Dprofiler=true"
79+ "-Dxwayland_path=${xwayland}/bin/Xwayland"
80+ # This should be auto detected, but it looks like it manages a false
81+ # positive.
82+ "-Dxwayland_initfd=disabled"
5983 ];
6084
6185 propagatedBuildInputs = [
@@ -63,11 +87,13 @@ stdenv.mkDerivation rec {
6387 json-glib
6488 libXtst
6589 libcap_ng
90+ graphene
6691 ];
6792
6893 nativeBuildInputs = [
6994 desktop-file-utils
7095 gettext
96+ mesa # needed for gbm
7197 meson
7298 ninja
7399 pkg-config
@@ -78,42 +104,28 @@ stdenv.mkDerivation rec {
78104
79105 buildInputs = [
80106 cairo
81− cogl
82107 egl-wayland
83− geocode-glib
84108 glib
85109 gnome-desktop
86110 gnome-settings-daemon
87111 gobject-introspection
88112 gsettings-desktop-schemas
89113 gtk3
90− libcanberra-gtk3
114+ libcanberra
115+ libdrm
91116 libgudev
92117 libinput
93118 libstartup_notification
94119 libwacom
95120 libxkbcommon
96121 libxkbfile
122+ libXdamage
97123 pango
98− pipewire_0_2 # TODO: backport pipewire 0.3 support
124+ pipewire
99125 sysprof
100− upower
101126 xkeyboard_config
102127 xwayland
103− zenity
104− ];
105−
106− patches = [
107− ./0001-EGL-Include-EGL-eglmesaext.h.patch
108− ./0002-drop-inheritable.patch
109− ./0003-Fix-glitches-in-gala.patch
110− ./0004-profiler-track-changes-in-GLib-and-Sysprof.patch
111− ./0005-meta-Add-missing-display.h-to-meta-workspace-manager.h.patch
112− ./0006-build-bump-ABI-to-sysprof-capture-4.patch
113− (substituteAll {
114− src = ./0007-fix-paths.patch;
115− inherit zenity;
116− })
128+ wayland-protocols
117129 ];
118130
119131 postPatch = ''
@@ -124,11 +136,29 @@ stdenv.mkDerivation rec {
124136 ${glib.dev}/bin/glib-compile-schemas "$out/share/glib-2.0/schemas"
125137 '';
126138
139+ # Install udev files into our own tree.
140+ PKG_CONFIG_UDEV_UDEVDIR = "${placeholder "out"}/lib/udev";
141+
142+ passthru = {
143+ libdir = "${self}/lib/mutter-7";
144+
145+ tests = {
146+ libdirExists = runCommand "mutter-libdir-exists" {} ''
147+ if [[ ! -d ${self.libdir} ]]; then
148+ echo "passthru.libdir should contain a directory, “${self.libdir}” is not one."
149+ exit 1
150+ fi
151+ touch $out
152+ '';
153+ };
154+ };
155+
127156 meta = with lib; {
128157 description = "A window manager for GNOME";
129158 homepage = "https://gitlab.gnome.org/GNOME/mutter";
130− license = licenses.gpl2;
159+ license = licenses.gpl2Plus;
131160 maintainers = pantheon.maintainers;
132161 platforms = platforms.linux;
133162 };
134−}
163+};
164+in self
pkgs/desktops/gnome/core/mutter/drop-inheritable.patch → pkgs/desktops/gnome/core/mutter/3.38/drop-inheritable.patchrenamed

The content is the same.

pkgs/desktops/gnome/core/mutter/3.38/fix-glitches-in-gala.patchnew file+27
@@ -0,0 +1,27 @@
1+From a58ace29db48f98ad59f4f309d49b458c68a6eec Mon Sep 17 00:00:00 2001
2+From: Bobby Rong <rjl931189261@126.com>
3+Date: Wed, 28 Jul 2021 22:08:11 +0800
4+Subject: [PATCH] Fix glitches in gala
5+
6+Co-Authored-By: WORLDofPEACE <worldofpeace@protonmail.ch>
7+
8+This fixes issues for users of mutter like in gala[0].
9+
10+Upstream report: https://gitlab.gnome.org/GNOME/mutter/issues/536
11+[0]: https://github.com/elementary/gala/issues/605
12+---
13+ clutter/clutter/clutter-actor.c | 1 -
14+ 1 file changed, 1 deletion(-)
15+
16+diff --git a/clutter/clutter/clutter-actor.c b/clutter/clutter/clutter-actor.c
17+index febfb31918..71906000c0 100644
18+--- a/clutter/clutter/clutter-actor.c
19++++ b/clutter/clutter/clutter-actor.c
20+@@ -15926,7 +15926,6 @@ _clutter_actor_get_paint_volume_mutable (ClutterActor *self)
21+ if (_clutter_actor_get_paint_volume_real (self, &priv->paint_volume))
22+ {
23+ priv->paint_volume_valid = TRUE;
24+- priv->needs_paint_volume_update = FALSE;
25+ return &priv->paint_volume;
26+ }
27+ else
pkgs/desktops/gnome/core/mutter/3.38/fix-paths.patchnew file+13
@@ -0,0 +1,13 @@
1+diff --git a/src/core/util.c b/src/core/util.c
2+index 57b73747d..f424cc81c 100644
3+--- a/src/core/util.c
4++++ b/src/core/util.c
5+@@ -636,7 +636,7 @@ meta_show_dialog (const char *type,
6+
7+ args = g_ptr_array_new ();
8+
9+- append_argument (args, "zenity");
10++ append_argument (args, "@zenity@/bin/zenity");
11+ append_argument (args, type);
12+
13+ if (display)
pkgs/desktops/gnome/default.nix+8−4
@@ -88,6 +88,9 @@ lib.makeScope pkgs.newScope (self: with self; {
8888
8989 gnome-settings-daemon = callPackage ./core/gnome-settings-daemon { };
9090
91+ # Using 3.38 to match Mutter used in Pantheon
92+ gnome-settings-daemon338 = callPackage ./core/gnome-settings-daemon/3.38 { };
93+
9194 gnome-software = callPackage ./core/gnome-software { };
9295
9396 gnome-system-monitor = callPackage ./core/gnome-system-monitor { };
@@ -106,9 +109,8 @@ lib.makeScope pkgs.newScope (self: with self; {
106109
107110 mutter = callPackage ./core/mutter { };
108111
109− # Needed for elementary's gala and greeter until 3.36 support has more bugfixes
110− # https://github.com/elementary/gala/issues/763
111− mutter334 = callPackage ./core/mutter/3.34 { };
112+ # Needed for elementary's gala and greeter until support for higher versions is provided
113+ mutter338 = callPackage ./core/mutter/3.38 { };
112114
113115 nautilus = callPackage ./core/nautilus { };
114116
@@ -355,7 +357,9 @@ lib.makeScope pkgs.newScope (self: with self; {
355357
356358 maintainers = lib.teams.gnome.members;
357359
358− mutter328 = throw "Removed as Pantheon is upgraded to mutter334.";
360+ mutter328 = throw "Removed as Pantheon is upgraded to mutter338.";
361+
362+ mutter334 = throw "Removed as Pantheon is upgraded to mutter338.";
359363
360364 gnome-getting-started-docs = throw "Removed in favour of gnome-tour.";
361365
pkgs/desktops/pantheon/apps/appcenter/default.nix+8−2
@@ -30,15 +30,21 @@
3030
3131stdenv.mkDerivation rec {
3232 pname = "appcenter";
33− version = "3.6.0";
33+ version = "3.7.1";
3434
3535 src = fetchFromGitHub {
3636 owner = "elementary";
3737 repo = pname;
3838 rev = version;
39− sha256 = "0kwqgilhyrj2nbvw5y34nzch5h9jnrg1a1n333qdsx4ax6yrxh4j";
39+ sha256 = "1llkc0p47jcx992lkwics86vv622dmmvm5hxrdsq26j9crcd5dam";
4040 };
4141
42+ patches = [
43+ # Try to remove other backends to make flatpak backend work.
44+ # https://github.com/NixOS/nixpkgs/issues/70214
45+ ./flatpak-only.patch
46+ ];
47+
4248 passthru = {
4349 updateScript = nix-update-script {
4450 attrPath = "pantheon.${pname}";
pkgs/desktops/pantheon/apps/appcenter/flatpak-only.patchnew file+196
@@ -0,0 +1,196 @@
1+From 63594caa1da772de504ab1d93b69aae148f29f64 Mon Sep 17 00:00:00 2001
2+From: Bobby Rong <rjl931189261@126.com>
3+Date: Wed, 1 Sep 2021 12:25:09 +0800
4+Subject: [PATCH] Drop PackageKitBackend and UbuntuDriversBackend
5+
6+---
7+ src/Application.vala | 14 ---------
8+ src/Core/BackendAggregator.vala | 2 --
9+ src/Core/UpdateManager.vala | 56 ---------------------------------
10+ src/MainWindow.vala | 17 ----------
11+ src/Views/Homepage.vala | 15 ---------
12+ 5 files changed, 104 deletions(-)
13+
14+diff --git a/src/Application.vala b/src/Application.vala
15+index 65fae5aa..9d42b14f 100644
16+--- a/src/Application.vala
17++++ b/src/Application.vala
18+@@ -167,10 +167,6 @@ public class AppCenter.App : Gtk.Application {
19+
20+ var client = AppCenterCore.Client.get_default ();
21+
22+- if (fake_update_packages != null) {
23+- AppCenterCore.PackageKitBackend.get_default ().fake_packages = fake_update_packages;
24+- }
25+-
26+ if (silent) {
27+ NetworkMonitor.get_default ().network_changed.connect ((available) => {
28+ schedule_cache_update (!available);
29+@@ -183,16 +179,6 @@ public class AppCenter.App : Gtk.Application {
30+ return;
31+ }
32+
33+- if (local_path != null) {
34+- var file = File.new_for_commandline_arg (local_path);
35+-
36+- try {
37+- local_package = AppCenterCore.PackageKitBackend.get_default ().add_local_component_file (file);
38+- } catch (Error e) {
39+- warning ("Failed to load local AppStream XML file: %s", e.message);
40+- }
41+- }
42+-
43+ if (main_window == null) {
44+ main_window = new MainWindow (this);
45+
46+diff --git a/src/Core/BackendAggregator.vala b/src/Core/BackendAggregator.vala
47+index 2f8bdedf..b705ca87 100644
48+--- a/src/Core/BackendAggregator.vala
49++++ b/src/Core/BackendAggregator.vala
50+@@ -26,8 +26,6 @@ public class AppCenterCore.BackendAggregator : Backend, Object {
51+
52+ construct {
53+ backends = new Gee.ArrayList<unowned Backend> ();
54+- backends.add (PackageKitBackend.get_default ());
55+- backends.add (UbuntuDriversBackend.get_default ());
56+ backends.add (FlatpakBackend.get_default ());
57+
58+ unowned Gtk.Application app = (Gtk.Application) GLib.Application.get_default ();
59+diff --git a/src/Core/UpdateManager.vala b/src/Core/UpdateManager.vala
60+index 29fa397a..ce42dd57 100644
61+--- a/src/Core/UpdateManager.vala
62++++ b/src/Core/UpdateManager.vala
63+@@ -53,42 +53,9 @@ public class AppCenterCore.UpdateManager : Object {
64+ installed_package.update_state ();
65+ }
66+
67+- Pk.Results pk_updates;
68+- unowned PackageKitBackend client = PackageKitBackend.get_default ();
69+- try {
70+- pk_updates = yield client.get_updates (cancellable);
71+- } catch (Error e) {
72+- warning ("Unable to get updates from PackageKit backend: %s", e.message);
73+- return 0;
74+- }
75+-
76+ uint os_count = 0;
77+ string os_desc = "";
78+
79+- var package_array = pk_updates.get_package_array ();
80+- debug ("PackageKit backend reports %d updates", package_array.length);
81+-
82+- package_array.foreach ((pk_package) => {
83+- var pkg_name = pk_package.get_name ();
84+- var appcenter_package = client.lookup_package_by_id (pkg_name);
85+- if (appcenter_package != null) {
86+- debug ("Added %s to app updates", pkg_name);
87+- apps_with_updates.add (appcenter_package);
88+- appcenter_package.latest_version = pk_package.get_version ();
89+- } else {
90+- debug ("Added %s to OS updates", pkg_name);
91+- os_count++;
92+- unowned string pkg_summary = pk_package.get_summary ();
93+- unowned string pkg_version = pk_package.get_version ();
94+- os_desc += Markup.printf_escaped (
95+- "<li>%s\n\t%s\n\t%s</li>\n",
96+- pkg_name,
97+- pkg_summary,
98+- _("Version: %s").printf (pkg_version)
99+- );
100+- }
101+- });
102+-
103+ os_updates.component.set_pkgnames ({});
104+ os_updates.change_information.clear_update_info ();
105+
106+@@ -160,29 +127,6 @@ public class AppCenterCore.UpdateManager : Object {
107+ count += 1;
108+ }
109+
110+- pk_updates.get_details_array ().foreach ((pk_detail) => {
111+- var pk_package = new Pk.Package ();
112+- try {
113+- pk_package.set_id (pk_detail.get_package_id ());
114+- var pkg_name = pk_package.get_name ();
115+- var appcenter_package = client.lookup_package_by_id (pkg_name);
116+- if (appcenter_package != null) {
117+- appcenter_package.change_information.updatable_packages.@set (client, pk_package.get_id ());
118+- appcenter_package.change_information.size += pk_detail.size;
119+- appcenter_package.update_state ();
120+- } else {
121+- var pkgnames = os_updates.component.pkgnames;
122+- pkgnames += pkg_name;
123+- os_updates.component.pkgnames = pkgnames;
124+-
125+- os_updates.change_information.updatable_packages.@set (client, pk_package.get_id ());
126+- os_updates.change_information.size += pk_detail.size;
127+- }
128+- } catch (Error e) {
129+- critical (e.message);
130+- }
131+- });
132+-
133+ os_updates.update_state ();
134+ return count;
135+ }
136+diff --git a/src/MainWindow.vala b/src/MainWindow.vala
137+index a32ce47b..b9f8594a 100644
138+--- a/src/MainWindow.vala
139++++ b/src/MainWindow.vala
140+@@ -292,23 +292,6 @@ public class AppCenter.MainWindow : Hdy.ApplicationWindow {
141+ }
142+
143+ public override bool delete_event (Gdk.EventAny event) {
144+- unowned AppCenterCore.PackageKitBackend client = AppCenterCore.PackageKitBackend.get_default ();
145+- if (client.working) {
146+- if (task_finished_connection != 0U) {
147+- client.disconnect (task_finished_connection);
148+- }
149+-
150+- hide ();
151+- task_finished_connection = client.notify["working"].connect (() => {
152+- if (!visible && !client.working) {
153+- destroy ();
154+- }
155+- });
156+-
157+- AppCenterCore.Client.get_default ().cancel_updates (false); //Timeouts keep running
158+- return true;
159+- }
160+-
161+ return false;
162+ }
163+
164+diff --git a/src/Views/Homepage.vala b/src/Views/Homepage.vala
165+index 67d1e208..48af8f61 100644
166+--- a/src/Views/Homepage.vala
167++++ b/src/Views/Homepage.vala
168+@@ -212,7 +212,6 @@ public class AppCenter.Homepage : AbstractView {
169+ recently_updated_revealer.reveal_child = recently_updated_carousel.get_children ().length () > 0;
170+
171+ var houston = AppCenterCore.Houston.get_default ();
172+- var pk_client = AppCenterCore.PackageKitBackend.get_default ();
173+ var packages_for_banner = new Gee.LinkedList<AppCenterCore.Package> ();
174+
175+ var newest_ids = yield houston.get_app_ids ("/newest/project");
176+@@ -220,20 +219,6 @@ public class AppCenter.Homepage : AbstractView {
177+ Utils.shuffle_array (trending_ids);
178+
179+ var packages = new Gee.HashMap<string, AppCenterCore.Package> ();
180+- packages.set_all (pk_client.get_packages_for_component_ids (newest_ids));
181+- packages.set_all (pk_client.get_packages_for_component_ids (trending_ids));
182+-
183+- if (!AppCenterCore.PackageKitBackend.supports_parallel_package_queries) {
184+- foreach (var package in packages.values) {
185+- package.update_state ();
186+- }
187+- } else {
188+- try {
189+- yield pk_client.update_multiple_package_state (packages.values);
190+- } catch (Error e) {
191+- warning ("Error while getting installed state of banner packages: %s", e.message);
192+- }
193+- }
194+
195+ foreach (var package in newest_ids) {
196+ if (packages_for_banner.size >= NUM_PACKAGES_IN_BANNER) {
pkgs/desktops/pantheon/apps/elementary-calculator/default.nix+5−2
@@ -1,5 +1,6 @@
11{ lib, stdenv
22, fetchFromGitHub
3+, fetchpatch
34, nix-update-script
45, pantheon
56, pkg-config
@@ -12,6 +13,7 @@
1213, python3
1314, granite
1415, libgee
16+, libhandy
1517, elementary-icon-theme
1618, appstream
1719, wrapGAppsHook
@@ -19,7 +21,7 @@
1921
2022stdenv.mkDerivation rec {
2123 pname = "elementary-calculator";
22− version = "1.6.2";
24+ version = "1.7.0";
2325
2426 repoName = "calculator";
2527
@@ -27,7 +29,7 @@ stdenv.mkDerivation rec {
2729 owner = "elementary";
2830 repo = repoName;
2931 rev = version;
30− sha256 = "sha256-kOQr94PAfLPv4LjY2WDdTtlbf3/tYf+NUESZ94+L41M=";
32+ sha256 = "1kl2iximcmbk8inklb2xav7dp08lp5pn9xxa59327zw13gdy8fkf";
3133 };
3234
3335 passthru = {
@@ -53,6 +55,7 @@ stdenv.mkDerivation rec {
5355 granite
5456 gtk3
5557 libgee
58+ libhandy
5659 ];
5760
5861 postPatch = ''
pkgs/desktops/pantheon/apps/elementary-calendar/default.nix+4−2
@@ -10,6 +10,7 @@
1010, gtk3
1111, granite
1212, libgee
13+, libhandy
1314, geoclue2
1415, libchamplain
1516, clutter
@@ -27,7 +28,7 @@
2728
2829stdenv.mkDerivation rec {
2930 pname = "elementary-calendar";
30− version = "5.1.1";
31+ version = "6.0.1";
3132
3233 repoName = "calendar";
3334
@@ -35,7 +36,7 @@ stdenv.mkDerivation rec {
3536 owner = "elementary";
3637 repo = repoName;
3738 rev = version;
38− sha256 = "18npf4zzf2dywr1zkr6fqzcbb70297yvdp5wxw7zyam1xwa86v07";
39+ sha256 = "1caxc42jrys5s4x9qai5wdpcwpkmyvnqx9z75974g7swiz1lrzq6";
3940 };
4041
4142 passthru = {
@@ -66,6 +67,7 @@ stdenv.mkDerivation rec {
6667 gtk3
6768 libchamplain
6869 libgee
70+ libhandy
6971 libical
7072 libnotify
7173 libgdata # required by some dependency transitively
pkgs/desktops/pantheon/apps/elementary-camera/default.nix+6−4
@@ -13,6 +13,7 @@
1313, gtk3
1414, granite
1515, libgee
16+, libhandy
1617, gst_all_1
1718, libcanberra
1819, clutter-gtk
@@ -24,7 +25,7 @@
2425
2526stdenv.mkDerivation rec {
2627 pname = "elementary-camera";
27− version = "1.0.6";
28+ version = "6.0.0";
2829
2930 repoName = "camera";
3031
@@ -32,7 +33,7 @@ stdenv.mkDerivation rec {
3233 owner = "elementary";
3334 repo = repoName;
3435 rev = version;
35− sha256 = "sha256-asl5NdSuLItXebxvqGlSEjwWhdButmka12YQAYkQT44=";
36+ sha256 = "1z5c6pkc7psglxwzby5idsdxvplpi28ckjxrwdngnr22knfdcgag";
3637 };
3738
3839 passthru = {
@@ -61,11 +62,12 @@ stdenv.mkDerivation rec {
6162 granite
6263 gst_all_1.gst-plugins-bad
6364 gst_all_1.gst-plugins-base
64− gst_all_1.gst-plugins-good
65+ (gst_all_1.gst-plugins-good.override { gtkSupport = true; })
6566 gst_all_1.gstreamer
6667 gtk3
6768 libcanberra
6869 libgee
70+ libhandy
6971 ];
7072
7173 postPatch = ''
@@ -76,7 +78,7 @@ stdenv.mkDerivation rec {
7678 meta = with lib; {
7779 description = "Camera app designed for elementary OS";
7880 homepage = "https://github.com/elementary/camera";
79− license = licenses.gpl2Plus;
81+ license = licenses.gpl3Plus;
8082 platforms = platforms.linux;
8183 maintainers = pantheon.maintainers;
8284 };
pkgs/desktops/pantheon/apps/elementary-code/default.nix+11−4
@@ -1,5 +1,6 @@
11{ lib, stdenv
22, fetchFromGitHub
3+, fetchpatch
34, nix-update-script
45, pantheon
56, pkg-config
@@ -41,6 +42,15 @@ stdenv.mkDerivation rec {
4142 sha256 = "1w1m52mq3zr9alkxk1c0s4ncscka1km5ppd0r6zm86qan9cjwq0f";
4243 };
4344
45+ patches = [
46+ # Upstream code not respecting our localedir
47+ # https://github.com/elementary/code/pull/1090
48+ (fetchpatch {
49+ url = "https://github.com/elementary/code/commit/88dc40d7bbcc2288ada6673eb8f4fab345d97882.patch";
50+ sha256 = "16y20bvslcm390irlib759703lvf7w6rz4xzaiazjj1r1njwinvv";
51+ })
52+ ];
53+
4454 passthru = {
4555 updateScript = nix-update-script {
4656 attrPath = "pantheon.${pname}";
@@ -53,10 +63,7 @@ stdenv.mkDerivation rec {
5363 meson
5464 ninja
5565 pkg-config
56−
57− # polkit is needed for ITS rules
58− polkit
59−
66+ polkit # needed for ITS rules
6067 python3
6168 vala
6269 wrapGAppsHook
pkgs/desktops/pantheon/apps/elementary-dock/default.nix+5−12
@@ -1,6 +1,5 @@
11{ lib, stdenv
22, fetchFromGitHub
3−, fetchpatch
43, vala
54, atk
65, cairo
@@ -24,11 +23,12 @@
2423, pantheon
2524, meson
2625, ninja
26+, granite
2727}:
2828
2929stdenv.mkDerivation rec {
3030 pname = "elementary-dock";
31− version = "unstable-2020-06-11";
31+ version = "unstable-2021-07-16";
3232
3333 outputs = [ "out" "dev" ];
3434
@@ -37,18 +37,10 @@ stdenv.mkDerivation rec {
3737 src = fetchFromGitHub {
3838 owner = "elementary";
3939 repo = repoName;
40− rev = "0a389ee58939d8c91c340df4e5340fc4b23d0b80";
41− sha256 = "01vinik73s0vmk56samgf49zr2bl4wjv44x15sz2cmh744llckja";
40+ rev = "05fd6fccdf1a769f6737a0d7e57e092825348660";
41+ sha256 = "0lqqq5cx0kk8y7qyjx7z2k3v1kw2xxzns968ianarcji19wzcns4";
4242 };
4343
44− patches = [
45− # Fix double includedir path in plank.pc
46− (fetchpatch {
47− url = "https://github.com/elementary/dock/commit/3bc368e2c4fafcd5b8baca2711c773b0e2441c7c.patch";
48− sha256 = "0gg35phi1cg7ixljc388i0h70w323r1gqzjhanccnsbjpqsgvs3k";
49− })
50− ];
51−
5244 nativeBuildInputs = [
5345 gettext
5446 meson
@@ -67,6 +59,7 @@ stdenv.mkDerivation rec {
6759 glib
6860 gnome-menus
6961 dconf
62+ granite
7063 gtk3
7164 libX11
7265 libXfixes
pkgs/desktops/pantheon/apps/elementary-feedback/default.nix+12−2
@@ -1,5 +1,6 @@
11{ lib, stdenv
22, fetchFromGitHub
3+, fetchpatch
34, nix-update-script
45, pantheon
56, pkg-config
@@ -21,7 +22,7 @@
2122
2223stdenv.mkDerivation rec {
2324 pname = "elementary-feedback";
24− version = "6.0.0";
25+ version = "6.1.0";
2526
2627 repoName = "feedback";
2728
@@ -29,9 +30,18 @@ stdenv.mkDerivation rec {
2930 owner = "elementary";
3031 repo = repoName;
3132 rev = version;
32− sha256 = "1fh9a0nfvbrxamki9avm9by760csj2nqy4ya7wzbnqbrrvjwd3fv";
33+ sha256 = "02wydbpa5qaa4xmmh4m7rbj4djbrn2i44zjakj5i6mzwjlj6sv5n";
3334 };
3435
36+ patches = [
37+ # Upstream code not respecting our localedir
38+ # https://github.com/elementary/feedback/pull/48
39+ (fetchpatch {
40+ url = "https://github.com/elementary/feedback/commit/080005153977a86d10099eff6a5b3e68f7b12847.patch";
41+ sha256 = "01710i90qsaqsrjs92ahwwj198bdrrif6mnw29l9har2rncfkfk2";
42+ })
43+ ];
44+
3545 passthru = {
3646 updateScript = nix-update-script {
3747 attrPath = "pantheon.${pname}";
pkgs/desktops/pantheon/apps/elementary-files/0001-filechooser-module-hardcode-gsettings-for-nixos.patchdeleted−35
@@ -1,35 +0,0 @@
1−From f51974c9736c3e28755245d15729578214652343 Mon Sep 17 00:00:00 2001
2−Message-Id: <f51974c9736c3e28755245d15729578214652343.1599178185.git-series.worldofpeace@protonmail.ch>
3−From: worldofpeace <worldofpeace@protonmail.ch>
4−Date: Thu, 3 Sep 2020 20:08:15 -0400
5−Subject: [PATCH] filechooser-module: hardcode gsettings for nixos
6−
7−---
8− filechooser-module/FileChooserDialog.vala | 8 ++++++--
9− 1 file changed, 6 insertions(+), 2 deletions(-)
10−
11−diff --git a/filechooser-module/FileChooserDialog.vala b/filechooser-module/FileChooserDialog.vala
12−index a70fe10..08fde2c 100644
13−--- a/filechooser-module/FileChooserDialog.vala
14−+++ b/filechooser-module/FileChooserDialog.vala
15−@@ -60,10 +60,14 @@ public class CustomFileChooserDialog : Object {
16− /* If not local only during creation, strange bug occurs on fresh installs */
17− chooser_dialog.local_only = true;
18−
19−- var files_preferences = new Settings ("io.elementary.files.preferences");
20−+ SettingsSchemaSource sss = new SettingsSchemaSource.from_directory ("@ELEMENTARY_FILES_GSETTINGS_PATH@", SettingsSchemaSource.get_default (), true);
21−+ SettingsSchema preferences_schema = sss.lookup ("io.elementary.files.preferences", false);
22−+ SettingsSchema chooser_schema = sss.lookup ("io.elementary.files.file-chooser", false);
23−+
24−+ var files_preferences = new Settings.full (preferences_schema, null, null);
25− is_single_click = files_preferences.get_boolean ("single-click");
26−
27−- var chooser_settings = new Settings ("io.elementary.files.file-chooser");
28−+ var chooser_settings = new Settings.full (chooser_schema, null, null);
29−
30− assign_container_box ();
31− remove_gtk_widgets ();
32−
33−base-commit: 57cb89b64fd2d5c08f4aaf23e8c74bfaa5d0384f
34−--
35−git-series 0.9.1
pkgs/desktops/pantheon/apps/elementary-files/default.nix+9−7
@@ -13,9 +13,9 @@
1313, gtk3
1414, glib
1515, libgee
16+, libhandy
1617, granite
1718, libnotify
18−, libunity
1919, pango
2020, elementary-dock
2121, bamf
@@ -27,11 +27,12 @@
2727, libcloudproviders
2828, libgit2-glib
2929, wrapGAppsHook
30+, systemd
3031}:
3132
3233stdenv.mkDerivation rec {
3334 pname = "elementary-files";
34− version = "4.5.0";
35+ version = "6.0.2";
3536
3637 repoName = "files";
3738
@@ -41,7 +42,7 @@ stdenv.mkDerivation rec {
4142 owner = "elementary";
4243 repo = repoName;
4344 rev = version;
44− sha256 = "sha256-wtQW1poX791DAlSFdVV9psnCfBDeVXI2fDZ2GcvvNn8=";
45+ sha256 = "1i514r3adypmcwinmv4c1kybims16xi4i3akx0yy04dib92hbk7c";
4546 };
4647
4748 passthru = {
@@ -73,29 +74,30 @@ stdenv.mkDerivation rec {
7374 libdbusmenu-gtk3
7475 libgee
7576 libgit2-glib
77+ libhandy
7678 libnotify
77− libunity
7879 pango
7980 sqlite
81+ systemd
8082 zeitgeist
8183 ];
8284
8385 patches = [
84− ./0001-filechooser-module-hardcode-gsettings-for-nixos.patch
86+ ./filechooser-portal-hardcode-gsettings-for-nixos.patch
8587 ];
8688
8789 postPatch = ''
8890 chmod +x meson/post_install.py
8991 patchShebangs meson/post_install.py
9092
91− substituteInPlace filechooser-module/FileChooserDialog.vala \
93+ substituteInPlace filechooser-portal/LegacyFileChooserDialog.vala \
9294 --subst-var-by ELEMENTARY_FILES_GSETTINGS_PATH ${glib.makeSchemaPath "$out" "${pname}-${version}"}
9395 '';
9496
9597 meta = with lib; {
9698 description = "File browser designed for elementary OS";
9799 homepage = "https://github.com/elementary/files";
98− license = licenses.lgpl3;
100+ license = licenses.gpl3Plus;
99101 platforms = platforms.linux;
100102 maintainers = pantheon.maintainers;
101103 };
pkgs/desktops/pantheon/apps/elementary-files/filechooser-portal-hardcode-gsettings-for-nixos.patchnew file+24
@@ -0,0 +1,24 @@
1+From 726ab4c0ab01273cb2197e4c151a5b69ff0954b6 Mon Sep 17 00:00:00 2001
2+From: Bobby Rong <rjl931189261@126.com>
3+Date: Fri, 16 Jul 2021 18:24:58 +0800
4+Subject: [PATCH] filechooser-portal: hardcode gsettings for nixos
5+
6+---
7+ filechooser-portal/LegacyFileChooserDialog.vala | 4 +++-
8+ 1 file changed, 3 insertions(+), 1 deletion(-)
9+
10+diff --git a/filechooser-portal/LegacyFileChooserDialog.vala b/filechooser-portal/LegacyFileChooserDialog.vala
11+index 330718f..f383bb1 100644
12+--- a/filechooser-portal/LegacyFileChooserDialog.vala
13++++ b/filechooser-portal/LegacyFileChooserDialog.vala
14+@@ -60,7 +60,9 @@ public class Files.LegacyFileChooserDialog : Object {
15+ /* If not local only during creation, strange bug occurs on fresh installs */
16+ chooser_dialog.local_only = true;
17+
18+- var chooser_settings = new Settings ("io.elementary.files.file-chooser");
19++ SettingsSchemaSource sss = new SettingsSchemaSource.from_directory ("@ELEMENTARY_FILES_GSETTINGS_PATH@", SettingsSchemaSource.get_default (), true);
20++ SettingsSchema chooser_schema = sss.lookup ("io.elementary.files.file-chooser", false);
21++ var chooser_settings = new Settings.full (chooser_schema, null, null);
22+
23+ action_area = (Gtk.ButtonBox) chooser_dialog.get_action_area ();
24+
pkgs/desktops/pantheon/apps/elementary-mail/default.nix+9−2
@@ -1,5 +1,6 @@
11{ lib, stdenv
22, fetchFromGitHub
3+, fetchpatch
34, nix-update-script
45, pantheon
56, pkg-config
@@ -25,7 +26,7 @@
2526
2627stdenv.mkDerivation rec {
2728 pname = "elementary-mail";
28− version = "6.0.0";
29+ version = "6.1.1";
2930
3031 repoName = "mail";
3132
@@ -33,7 +34,7 @@ stdenv.mkDerivation rec {
3334 owner = "elementary";
3435 repo = repoName;
3536 rev = version;
36− sha256 = "07iiipl0nsp63g5bn1y2hg6bmgj6i9cxqcfpd7q3vmldnkijvaxs";
37+ sha256 = "15ai0x9236pjx76m0756nyc1by78v0lg1dgdiifk868krdvipzzx";
3738 };
3839
3940 passthru = {
@@ -42,6 +43,12 @@ stdenv.mkDerivation rec {
4243 };
4344 };
4445
46+ patches = [
47+ # The app stuck when loading gravatar, temporarily reverts part
48+ # of https://github.com/elementary/mail/pull/600 to fix this
49+ ./revert-fix-warning.patch
50+ ];
51+
4552 nativeBuildInputs = [
4653 appstream
4754 desktop-file-utils
pkgs/desktops/pantheon/apps/elementary-mail/revert-fix-warning.patchnew file+55
@@ -0,0 +1,55 @@
1+From 9e61e9493e78b83b9599886561ee596c096030ed Mon Sep 17 00:00:00 2001
2+From: Bobby Rong <rjl931189261@126.com>
3+Date: Thu, 29 Jul 2021 13:57:21 +0800
4+Subject: [PATCH] Partly revert "Fix Warnings in Vala Code (#600)"
5+
6+This partly reverts commit 9477c24201d3c9c3c7bcc650e0290daa0ee1ab21.
7+---
8+ src/MessageList/MessageListItem.vala | 27 ++++++++++++++++++++++++++-
9+ 1 file changed, 26 insertions(+), 1 deletion(-)
10+
11+diff --git a/src/MessageList/MessageListItem.vala b/src/MessageList/MessageListItem.vala
12+index 96b61027..a7ef8f9e 100644
13+--- a/src/MessageList/MessageListItem.vala
14++++ b/src/MessageList/MessageListItem.vala
15+@@ -290,7 +290,7 @@ public class Mail.MessageListItem : Gtk.ListBoxRow {
16+ expanded = false;
17+ show_all ();
18+
19+- avatar.set_loadable_icon (new GravatarIcon (parsed_address, get_style_context ().get_scale ()));
20++ download_gravatar.begin (parsed_address, avatar.size);
21+
22+ /* Override default handler to stop event propagation. Otherwise clicking the menu will
23+ expand or collapse the MessageListItem. */
24+@@ -348,6 +348,31 @@ public class Mail.MessageListItem : Gtk.ListBoxRow {
25+ });
26+ }
27+
28++ private async void download_gravatar (string address, int size) {
29++ if (avatars[address] == null) {
30++ var uri = "https://secure.gravatar.com/avatar/%s?d=404&s=%d".printf (
31++ Checksum.compute_for_string (ChecksumType.MD5, address.strip ().down ()),
32++ size * get_style_context ().get_scale ()
33++ );
34++
35++ var server_file = File.new_for_uri (uri);
36++ var path = Path.build_filename (Environment.get_tmp_dir (), server_file.get_basename ());
37++ var local_file = File.new_for_path (path);
38++
39++ try {
40++ yield server_file.copy_async (local_file, FileCopyFlags.OVERWRITE, Priority.DEFAULT, null);
41++ avatars[address] = new Gdk.Pixbuf.from_file_at_scale (path, size, size, true);
42++ } catch (Error e) {
43++ debug ("Unable to fetch gravatar: %s", e.message);
44++ return;
45++ }
46++ }
47++
48++ avatar.set_image_load_func (() => {
49++ return avatars[address];
50++ });
51++ }
52++
53+ private void add_inline_composer (ComposerWidget.Type composer_type) {
54+ var message_list_box = (MessageListBox) get_parent ();
55+ message_list_box.add_inline_composer.begin (composer_type, this);
pkgs/desktops/pantheon/apps/elementary-music/default.nix+14−4
@@ -1,5 +1,6 @@
11{ lib, stdenv
22, fetchFromGitHub
3+, fetchpatch
34, nix-update-script
45, pantheon
56, pkg-config
@@ -31,7 +32,7 @@
3132
3233stdenv.mkDerivation rec {
3334 pname = "elementary-music";
34− version = "5.1.0";
35+ version = "5.1.1";
3536
3637 repoName = "music";
3738
@@ -39,9 +40,18 @@ stdenv.mkDerivation rec {
3940 owner = "elementary";
4041 repo = repoName;
4142 rev = version;
42− sha256 = "13v7rii9ardyd661s6d4hvvs4ig44v7s3qd1bx7imaigr72gg58b";
43+ sha256 = "1wqsn4ss9acg0scaqpg514ll2dj3bl71wly4mm79qkinhy30yv9n";
4344 };
4445
46+ patches = [
47+ # Upstream code not respecting our localedir
48+ # https://github.com/elementary/music/pull/648
49+ (fetchpatch {
50+ url = "https://github.com/elementary/music/commit/aea97103d59afd213467403a48788e476e47c4c3.patch";
51+ sha256 = "1ayj8l6lb19hhl9bhsdfbq7jgchfmpjx0qkljnld90czcksn95yx";
52+ })
53+ ];
54+
4555 passthru = {
4656 updateScript = nix-update-script {
4757 attrPath = "pantheon.${pname}";
@@ -84,7 +94,7 @@ stdenv.mkDerivation rec {
8494 ];
8595
8696 mesonFlags = [
87− "-Dplugins=lastfm,audioplayer,cdrom,ipod"
97+ "-Dplugins=audioplayer,cdrom,ipod"
8898 ];
8999
90100 postPatch = ''
@@ -95,7 +105,7 @@ stdenv.mkDerivation rec {
95105 meta = with lib; {
96106 description = "Music player and library designed for elementary OS";
97107 homepage = "https://github.com/elementary/music";
98− license = licenses.lgpl2Plus;
108+ license = licenses.gpl3Plus;
99109 platforms = platforms.linux;
100110 maintainers = pantheon.maintainers;
101111 };
pkgs/desktops/pantheon/apps/elementary-photos/default.nix+10−2
@@ -1,5 +1,6 @@
11{ lib, stdenv
22, fetchFromGitHub
3+, fetchpatch
34, nix-update-script
45, pantheon
56, meson
@@ -28,7 +29,6 @@
2829, webkitgtk
2930, libwebp
3031, appstream
31−, libunity
3232, wrapGAppsHook
3333, elementary-icon-theme
3434}:
@@ -46,6 +46,15 @@ stdenv.mkDerivation rec {
4646 sha256 = "1dql14k43rv3in451amiwv4z71hz3ailx67hd8gw1ka3yw12128p";
4747 };
4848
49+ patches = [
50+ # Upstream code not respecting our localedir
51+ # https://github.com/elementary/photos/pull/629
52+ (fetchpatch {
53+ url = "https://github.com/elementary/photos/commit/e5230a4305381734e93f1e3d1177da21a8a4121b.patch";
54+ sha256 = "1igqq51sj1sx6rl8yrw037jsgnaxfwzfs0m6pqzb9q4jvfdimzfi";
55+ })
56+ ];
57+
4958 passthru = {
5059 updateScript = nix-update-script {
5160 attrPath = "pantheon.${pname}";
@@ -84,7 +93,6 @@ stdenv.mkDerivation rec {
8493 libraw
8594 librest
8695 libsoup
87− libunity
8896 libwebp
8997 scour
9098 sqlite
pkgs/desktops/pantheon/apps/elementary-screenshot-tool/default.nix → pkgs/desktops/pantheon/apps/elementary-screenshot/default.nixrenamed+5−3
@@ -11,14 +11,15 @@
1111, gtk3
1212, granite
1313, libgee
14+, libhandy
1415, libcanberra
1516, elementary-icon-theme
1617, wrapGAppsHook
1718}:
1819
1920stdenv.mkDerivation rec {
20− pname = "elementary-screenshot-tool"; # This will be renamed to "screenshot" soon. See -> https://github.com/elementary/screenshot/pull/93
21− version = "1.7.1";
21+ pname = "elementary-screenshot";
22+ version = "6.0.0";
2223
2324 repoName = "screenshot";
2425
@@ -26,7 +27,7 @@ stdenv.mkDerivation rec {
2627 owner = "elementary";
2728 repo = repoName;
2829 rev = version;
29− sha256 = "sha256-qo55fzp0ieYF5I5uxnCQY066mege06InHL3B3ahYMZ0=";
30+ sha256 = "1fvsl9zdkv7bgx3jpy7pr9lflm4ckr3swdby379mdxn2x6kxji0x";
3031 };
3132
3233 passthru = {
@@ -51,6 +52,7 @@ stdenv.mkDerivation rec {
5152 gtk3
5253 libcanberra
5354 libgee
55+ libhandy
5456 ];
5557
5658 postPatch = ''
pkgs/desktops/pantheon/apps/elementary-tasks/default.nixnew file+84
@@ -0,0 +1,84 @@
1+{ lib, stdenv
2+, fetchFromGitHub
3+, nix-update-script
4+, pantheon
5+, appstream
6+, desktop-file-utils
7+, meson
8+, ninja
9+, pkg-config
10+, python3
11+, vala
12+, wrapGAppsHook
13+, clutter-gtk
14+, elementary-icon-theme
15+, evolution-data-server
16+, granite
17+, geoclue2
18+, geocode-glib
19+, gtk3
20+, libchamplain
21+, libgdata
22+, libgee
23+, libhandy
24+, libical
25+}:
26+
27+stdenv.mkDerivation rec {
28+ pname = "elementary-tasks";
29+ version = "6.0.3";
30+
31+ repoName = "tasks";
32+
33+ src = fetchFromGitHub {
34+ owner = "elementary";
35+ repo = repoName;
36+ rev = version;
37+ sha256 = "0a6zgf7di4jyl764pn78wbanm0i5vrkk5ks3cfsvi3baprf3j9d5";
38+ };
39+
40+ passthru = {
41+ updateScript = nix-update-script {
42+ attrPath = "pantheon.${pname}";
43+ };
44+ };
45+
46+ nativeBuildInputs = [
47+ appstream
48+ desktop-file-utils
49+ meson
50+ ninja
51+ pkg-config
52+ python3
53+ vala
54+ wrapGAppsHook
55+ ];
56+
57+ buildInputs = [
58+ clutter-gtk
59+ elementary-icon-theme
60+ evolution-data-server
61+ granite
62+ geoclue2
63+ geocode-glib
64+ gtk3
65+ libchamplain
66+ libgdata
67+ libgee
68+ libhandy
69+ libical
70+ ];
71+
72+ postPatch = ''
73+ chmod +x meson/post_install.py
74+ patchShebangs meson/post_install.py
75+ '';
76+
77+ meta = with lib; {
78+ homepage = "https://github.com/elementary/tasks";
79+ description = "Synced tasks and reminders on elementary OS";
80+ license = licenses.gpl3Plus;
81+ platforms = platforms.linux;
82+ maintainers = pantheon.maintainers;
83+ };
84+}
pkgs/desktops/pantheon/apps/elementary-terminal/default.nix+9
@@ -35,6 +35,15 @@ stdenv.mkDerivation rec {
3535 sha256 = "08akr4sv4jy9kd4s26kib6j7i8hc3vs0sp71fifv7ww4mi9cm6jc";
3636 };
3737
38+ patches = [
39+ # Upstream code not respecting our localedir
40+ # https://github.com/elementary/terminal/pull/611
41+ (fetchpatch {
42+ url = "https://github.com/elementary/terminal/commit/4f6f2d9f58642ed904240c247cc0a0846baecb6b.patch";
43+ sha256 = "04pbd72migxw8i949v3bmw8kfi5nr02rjcwfrx3b6xkiic9825sv";
44+ })
45+ ];
46+
3847 passthru = {
3948 updateScript = nix-update-script {
4049 attrPath = "pantheon.${pname}";
pkgs/desktops/pantheon/apps/elementary-videos/default.nix+10
@@ -1,5 +1,6 @@
11{ lib, stdenv
22, fetchFromGitHub
3+, fetchpatch
34, nix-update-script
45, pantheon
56, pkg-config
@@ -31,6 +32,15 @@ stdenv.mkDerivation rec {
3132 sha256 = "04nl9kn33dysvsg0n5qx1z8qgrifkgfwsm7gh1l308v3n8c69lh7";
3233 };
3334
35+ patches = [
36+ # Upstream code not respecting our localedir
37+ # https://github.com/elementary/videos/pull/233
38+ (fetchpatch {
39+ url = "https://github.com/elementary/videos/commit/19ba2a9148be09ea521d2e9ac29dede6b9c6fa07.patch";
40+ sha256 = "0ffp7ana98846xi7vxrzfg6dbs4yy28x2i4ky85mqs1gj6fjqin5";
41+ })
42+ ];
43+
3444 passthru = {
3545 updateScript = nix-update-script {
3646 attrPath = "pantheon.${pname}";
pkgs/desktops/pantheon/apps/sideload/default.nix+4−2
@@ -10,6 +10,7 @@
1010, granite
1111, gtk3
1212, libgee
13+, libhandy
1314, meson
1415, ninja
1516, pantheon
@@ -22,13 +23,13 @@
2223
2324stdenv.mkDerivation rec {
2425 pname = "sideload";
25− version = "1.1.1";
26+ version = "6.0.1";
2627
2728 src = fetchFromGitHub {
2829 owner = "elementary";
2930 repo = pname;
3031 rev = version;
31− sha256 = "sha256-eI/j6+lok9axRHV5DCsFY1fDCV+X5zBR7X8rK6odjFY=";
32+ sha256 = "0mwcaayzcm5pjcwdd61can93y66jiz4wyz9wr8j5fbns5hbk3z5m";
3233 };
3334
3435 passthru = {
@@ -56,6 +57,7 @@ stdenv.mkDerivation rec {
5657 granite
5758 gtk3
5859 libgee
60+ libhandy
5961 libxml2
6062 ];
6163
pkgs/desktops/pantheon/apps/switchboard-plugs/a11y/default.nix+12−3
@@ -1,6 +1,7 @@
11{ lib, stdenv
22, substituteAll
33, fetchFromGitHub
4+, fetchpatch
45, nix-update-script
56, pantheon
67, meson
@@ -11,18 +12,19 @@
1112, granite
1213, gtk3
1314, switchboard
15+, wingpanel-indicator-a11y
1416, onboard
1517}:
1618
1719stdenv.mkDerivation rec {
1820 pname = "switchboard-plug-a11y";
19− version = "2.2.0";
21+ version = "2.3.0";
2022
2123 src = fetchFromGitHub {
2224 owner = "elementary";
2325 repo = pname;
2426 rev = version;
25− sha256 = "sha256-3PaOIadlEdYvfNZJaoAQVDKdSTfUdn+snCa8tHmDFD0=";
27+ sha256 = "0dc5jv335j443rg08cb7p8wvmcg36wrf1vlcfg9r20cksdis9v4l";
2628 };
2729
2830 patches = [
@@ -30,6 +32,12 @@ stdenv.mkDerivation rec {
3032 src = ./fix-paths.patch;
3133 inherit onboard;
3234 })
35+ # Upstream code not respecting our localedir
36+ # https://github.com/elementary/switchboard-plug-a11y/pull/79
37+ (fetchpatch {
38+ url = "https://github.com/elementary/switchboard-plug-a11y/commit/08db4b696128a6bf809da3403a818834fcd62b02.patch";
39+ sha256 = "1s13ak23bdxgcb74wdz3ql192bla5qhabdicqyjv1rp32plhkbg5";
40+ })
3341 ];
3442
3543 passthru = {
@@ -50,12 +58,13 @@ stdenv.mkDerivation rec {
5058 gtk3
5159 libgee
5260 switchboard
61+ wingpanel-indicator-a11y
5362 ];
5463
5564 meta = with lib; {
5665 description = "Switchboard Universal Access Plug";
5766 homepage = "https://github.com/elementary/switchboard-plug-a11y";
58− license = licenses.lgpl3Plus;
67+ license = licenses.gpl3Plus;
5968 platforms = platforms.linux;
6069 maintainers = pantheon.maintainers;
6170 };
pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix+13−24
@@ -1,6 +1,5 @@
11{ lib, stdenv
22, fetchFromGitHub
3−, fetchpatch
43, nix-update-script
54, pantheon
65, substituteAll
@@ -9,22 +8,24 @@
98, pkg-config
109, vala
1110, libgee
11+, libgtop
12+, libhandy
1213, granite
1314, gtk3
1415, switchboard
15−, pciutils
16−, elementary-feedback
16+, fwupd
17+, appstream
1718}:
1819
1920stdenv.mkDerivation rec {
2021 pname = "switchboard-plug-about";
21− version = "2.6.3";
22+ version = "6.0.1";
2223
2324 src = fetchFromGitHub {
2425 owner = "elementary";
2526 repo = pname;
2627 rev = version;
27− sha256 = "sha256-wis6wNEOOjPLUCT9vRRhMxbKHR2Y2nZArKogSF/FQv8=";
28+ sha256 = "0c075ac7iqz4hqbp2ph0cwyhiq0jn6c1g1jjfhygjbssv3vvd268";
2829 };
2930
3031 passthru = {
@@ -41,32 +42,20 @@ stdenv.mkDerivation rec {
4142 ];
4243
4344 buildInputs = [
45+ appstream
46+ fwupd
4447 granite
4548 gtk3
4649 libgee
50+ libgtop
51+ libhandy
4752 switchboard
4853 ];
4954
5055 patches = [
51− # Get OS Info from GLib.Environment
52− # https://github.com/elementary/switchboard-plug-about/pull/128
53− (fetchpatch {
54− url = "https://github.com/elementary/switchboard-plug-about/commit/5ed29988e3a895b2df66e5529df0f12a94d5517c.patch";
55− sha256 = "1ipDxnpDZjpSEzZdtOeNe5U+QOXiB5M+hC3yDAsl/rQ=";
56− })
57−
58− # Use Pretty Name
59− # https://github.com/elementary/switchboard-plug-about/pull/134
60− (fetchpatch {
61− url = "https://github.com/elementary/switchboard-plug-about/commit/653d131dc8fac10ae7523f2bf6b179ffffa9c0fd.patch";
62− sha256 = "AsM49Dc9/yn2tG6fqjfedeOlDXUu+iEoyNUmNYLH+zE=";
63− })
64−
65− (substituteAll {
66− src = ./fix-paths.patch;
67− inherit pciutils;
68− elementary_feedback = elementary-feedback;
69− })
56+ # The NixOS logo is not centered in the circular background and path
57+ # to the background is hardcoded, we will drop the background.
58+ ./remove-logo-background.patch
7059 ];
7160
7261 meta = with lib; {
pkgs/desktops/pantheon/apps/switchboard-plugs/about/fix-paths.patchdeleted−26
@@ -1,26 +0,0 @@
1−diff --git a/src/Plug.vala b/src/Plug.vala
2−index c32efcbe..0cdaeaca 100644
3−--- a/src/Plug.vala
4−+++ b/src/Plug.vala
5−@@ -178,7 +178,7 @@ public class About.Plug : Switchboard.Plug {
6−
7− var bug_button = new Gtk.Button.with_label (_("Report a Problem"));
8− bug_button.clicked.connect (() => {
9−- var appinfo = new GLib.DesktopAppInfo ("io.elementary.feedback.desktop");
10−+ var appinfo = new GLib.DesktopAppInfo ("@elementary_feedback@/bin/io.elementary.feedback.desktop");
11− if (appinfo != null) {
12− try {
13− appinfo.launch (null, null);
14−diff --git a/src/Views/HardwareView.vala b/src/Views/HardwareView.vala
15−index f8113634..3794bad8 100644
16−--- a/src/Views/HardwareView.vala
17−+++ b/src/Views/HardwareView.vala
18−@@ -179,7 +179,7 @@ public class About.HardwareView : Gtk.Grid {
19−
20− // Graphics
21− try {
22−- Process.spawn_command_line_sync ("lspci", out graphics);
23−+ Process.spawn_command_line_sync ("@pciutils@/bin/lspci", out graphics);
24−
25− if ("VGA" in graphics) { //VGA-keyword indicates graphics-line
26− string[] lines = graphics.split("\n");
pkgs/desktops/pantheon/apps/switchboard-plugs/about/remove-logo-background.patchnew file+36
@@ -0,0 +1,36 @@
1+diff --git a/src/Views/OperatingSystemView.vala b/src/Views/OperatingSystemView.vala
2+index fdb92e7..87bb3a4 100644
3+--- a/src/Views/OperatingSystemView.vala
4++++ b/src/Views/OperatingSystemView.vala
5+@@ -39,21 +39,6 @@ public class About.OperatingSystemView : Gtk.Grid {
6+ logo_icon_name = "distributor-logo";
7+ }
8+
9+- var logo = new Hdy.Avatar (128, "", false) {
10+- // In case the wallpaper can't be loaded, we don't want an icon or text
11+- icon_name = "invalid-icon-name",
12+- // We need this for the shadow to not get clipped by Gtk.Overlay
13+- margin = 6
14+- };
15+- logo.set_image_load_func ((size) => {
16+- try {
17+- return new Gdk.Pixbuf.from_file_at_scale ("/usr/share/backgrounds/elementaryos-default", -1, size, true);
18+- } catch (Error e) {
19+- critical (e.message);
20+- }
21+- });
22+- logo.get_style_context ().add_provider (style_provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION);
23+-
24+ var icon = new Gtk.Image () {
25+ icon_name = logo_icon_name + "-symbolic",
26+ // 128 minus 3px padding on each side
27+@@ -65,8 +50,7 @@ public class About.OperatingSystemView : Gtk.Grid {
28+ icon_style_context.add_provider (style_provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION);
29+
30+ var logo_overlay = new Gtk.Overlay ();
31+- logo_overlay.add (logo);
32+- logo_overlay.add_overlay (icon);
33++ logo_overlay.add (icon);
34+
35+ // Intentionally not using GLib.OsInfoKey.PRETTY_NAME here because we
36+ // want more granular control over text formatting
pkgs/desktops/pantheon/apps/switchboard-plugs/applications/default.nix+15−3
@@ -1,5 +1,6 @@
11{ lib, stdenv
22, fetchFromGitHub
3+, fetchpatch
34, nix-update-script
45, pantheon
56, meson
@@ -10,19 +11,29 @@
1011, granite
1112, gtk3
1213, switchboard
14+, flatpak
1315}:
1416
1517stdenv.mkDerivation rec {
1618 pname = "switchboard-plug-applications";
17− version = "2.1.7";
19+ version = "6.0.0";
1820
1921 src = fetchFromGitHub {
2022 owner = "elementary";
2123 repo = pname;
2224 rev = version;
23− sha256 = "sha256-uiu19XyogNR0LX/2IIZM6B1JKAfqDMOHniQ29EAa9XM=";
25+ sha256 = "0hgvmrgg6g2sjb3sda7kzfcd3zgngd5w982drl6ll44k1mh16gsj";
2426 };
2527
28+ patches = [
29+ # Upstream code not respecting our localedir
30+ # https://github.com/elementary/switchboard-plug-applications/pull/163
31+ (fetchpatch {
32+ url = "https://github.com/elementary/switchboard-plug-applications/commit/25db490654ab41694be7b7ba19218376f42fbb8d.patch";
33+ sha256 = "16y8zcwnnjsh72ifpyqcdb9f5ajdj0iy8kb5sj6v77c1cxdhrv29";
34+ })
35+ ];
36+
2637 passthru = {
2738 updateScript = nix-update-script {
2839 attrPath = "pantheon.${pname}";
@@ -37,6 +48,7 @@ stdenv.mkDerivation rec {
3748 ];
3849
3950 buildInputs = [
51+ flatpak
4052 granite
4153 gtk3
4254 libgee
@@ -46,7 +58,7 @@ stdenv.mkDerivation rec {
4658 meta = with lib; {
4759 description = "Switchboard Applications Plug";
4860 homepage = "https://github.com/elementary/switchboard-plug-applications";
49− license = licenses.gpl2Plus;
61+ license = licenses.gpl3Plus;
5062 platforms = platforms.linux;
5163 maintainers = pantheon.maintainers;
5264 };
pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix+12−2
@@ -1,5 +1,6 @@
11{ lib, stdenv
22, fetchFromGitHub
3+, fetchpatch
34, nix-update-script
45, pantheon
56, meson
@@ -15,15 +16,24 @@
1516
1617stdenv.mkDerivation rec {
1718 pname = "switchboard-plug-bluetooth";
18− version = "2.3.2";
19+ version = "2.3.6";
1920
2021 src = fetchFromGitHub {
2122 owner = "elementary";
2223 repo = pname;
2324 rev = version;
24− sha256 = "sha256-avu9Hya3C9g8kGl3D9bLwuZBkNPdwyvLspuBWgvpXU8=";
25+ sha256 = "0n9fhi9g0ww341bjk6lpc5ppnl7qj9b3d63j9a7iqnap57bgks9y";
2526 };
2627
28+ patches = [
29+ # Upstream code not respecting our localedir
30+ # https://github.com/elementary/switchboard-plug-bluetooth/pull/182
31+ (fetchpatch {
32+ url = "https://github.com/elementary/switchboard-plug-bluetooth/commit/031dd5660b4bcb0bb4e82ebe6d8bcdaa1791c385.patch";
33+ sha256 = "1g01ad6md7pqp1fx00avbra8yfnr8ipg8y6zhfg35fgjakj4aags";
34+ })
35+ ];
36+
2737 passthru = {
2838 updateScript = nix-update-script {
2939 attrPath = "pantheon.${pname}";
pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/default.nix+16−2
@@ -1,5 +1,6 @@
11{ lib, stdenv
22, fetchFromGitHub
3+, fetchpatch
34, nix-update-script
45, pantheon
56, meson
@@ -17,13 +18,13 @@
1718
1819stdenv.mkDerivation rec {
1920 pname = "switchboard-plug-datetime";
20− version = "2.1.9";
21+ version = "2.2.0";
2122
2223 src = fetchFromGitHub {
2324 owner = "elementary";
2425 repo = pname;
2526 rev = version;
26− sha256 = "sha256-qgsU3NXqH7ryUah7rEnUrsbecV4AsOo4QfgTcWc5bc4=";
27+ sha256 = "10rqhxsqbl1xnz5n84d7m39c3vb71k153989xvyc55djia1wjx96";
2728 };
2829
2930 passthru = {
@@ -32,6 +33,19 @@ stdenv.mkDerivation rec {
3233 };
3334 };
3435
36+ patches = [
37+ (substituteAll {
38+ src = ./fix-paths.patch;
39+ tzdata = tzdata;
40+ })
41+ # Upstream code not respecting our localedir
42+ # https://github.com/elementary/switchboard-plug-datetime/pull/100
43+ (fetchpatch {
44+ url = "https://github.com/elementary/switchboard-plug-datetime/commit/a90639ed4f185f50d4ae448cd9503203dc24b3f4.patch";
45+ sha256 = "0dz0s02ccnds62dqil44k652pc5icka2rfhcx0a5bj1wi5sifnp7";
46+ })
47+ ];
48+
3549 nativeBuildInputs = [
3650 libxml2
3751 meson
pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/fix-paths.patchnew file+15
@@ -0,0 +1,15 @@
1+diff --git a/src/Parser.vala b/src/Parser.vala
2+index 7c7b82d..2c3a061 100644
3+--- a/src/Parser.vala
4++++ b/src/Parser.vala
5+@@ -28,9 +28,9 @@ public class DateTime.Parser : GLib.Object {
6+ return parser;
7+ }
8+ private Parser () {
9+- var file = File.new_for_path ("/usr/share/zoneinfo/zone.tab");
10++ var file = File.new_for_path ("@tzdata@/share/zoneinfo/zone.tab");
11+ if (!file.query_exists ()) {
12+- critical ("/usr/share/zoneinfo/zone.tab doesn't exist !");
13++ critical ("@tzdata@/share/zoneinfo/zone.tab doesn't exist !");
14+ return;
15+ }
pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix+3−3
@@ -14,13 +14,13 @@
1414
1515stdenv.mkDerivation rec {
1616 pname = "switchboard-plug-display";
17− version = "2.2.2";
17+ version = "2.3.1";
1818
1919 src = fetchFromGitHub {
2020 owner = "elementary";
2121 repo = pname;
2222 rev = version;
23− sha256 = "sha256-mjmvuSipCRGg/HSa1n1eLyVU1gERNT2ciqgz/0KqX0Y=";
23+ sha256 = "1dqd34v124y71nnk0l617a53x652m0sb7b58465imr6ppyhx4vsv";
2424 };
2525
2626 passthru = {
@@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
4646 meta = with lib; {
4747 description = "Switchboard Displays Plug";
4848 homepage = "https://github.com/elementary/switchboard-plug-display";
49− license = licenses.lgpl2Plus;
49+ license = licenses.gpl3Plus;
5050 platforms = platforms.linux;
5151 maintainers = pantheon.maintainers;
5252 };
pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/0001-Remove-Install-Unlisted-Engines-function.patch+28−30
@@ -1,19 +1,21 @@
1−From 4fd6da39ab33a6eef46ee2c64eb4f5595c7fe633 Mon Sep 17 00:00:00 2001
2−Message-Id: <4fd6da39ab33a6eef46ee2c64eb4f5595c7fe633.1599180249.git-series.worldofpeace@protonmail.ch>
3−From: worldofpeace <worldofpeace@protonmail.ch>
4−Date: Thu, 3 Sep 2020 20:43:25 -0400
1+From f23363ad2fa402d59b41ffe2c13a46462c6d2194 Mon Sep 17 00:00:00 2001
2+From: Bobby Rong <rjl931189261@126.com>
3+Date: Fri, 16 Jul 2021 23:28:56 +0800
54Subject: [PATCH] Remove Install Unlisted Engines function
65
76https://github.com/elementary/switchboard-plug-keyboard/issues/324
7+
8+Co-Authored-By: WORLDofPEACE <worldofpeace@protonmail.ch>
9+
810---
9− src/Dialogs/InstallEngineDialog.vala | 140 +------------------
10− src/Dialogs/ProgressDialog.vala | 82 +----------
11− src/InputMethod/Installer/InstallList.vala | 73 +---------
12− src/InputMethod/Installer/UbuntuInstaller.vala | 142 +------------------
13− src/InputMethod/Installer/aptd-client.vala | 93 +------------
14− src/Widgets/InputMethod/AddEnginesPopover.vala | 12 +--
15− src/Widgets/InputMethod/LanguagesRow.vala | 43 +-----
16− src/meson.build | 6 +-
11+ src/Dialogs/InstallEngineDialog.vala | 140 -----------------
12+ src/Dialogs/ProgressDialog.vala | 82 ----------
13+ src/InputMethod/Installer/InstallList.vala | 73 ---------
14+ .../Installer/UbuntuInstaller.vala | 142 ------------------
15+ src/InputMethod/Installer/aptd-client.vala | 93 ------------
16+ .../InputMethod/AddEnginesPopover.vala | 12 --
17+ src/Widgets/InputMethod/LanguagesRow.vala | 43 ------
18+ src/meson.build | 6 -
1719 8 files changed, 591 deletions(-)
1820 delete mode 100644 src/Dialogs/InstallEngineDialog.vala
1921 delete mode 100644 src/Dialogs/ProgressDialog.vala
@@ -170,7 +172,7 @@ index ffba3a8..0000000
170172-}
171173diff --git a/src/Dialogs/ProgressDialog.vala b/src/Dialogs/ProgressDialog.vala
172174deleted file mode 100644
173−index f110aca..0000000
175+index 868f167..0000000
174176--- a/src/Dialogs/ProgressDialog.vala
175177+++ /dev/null
176178@@ -1,82 +0,0 @@
@@ -191,7 +193,7 @@ index f110aca..0000000
191193-* with this program. If not, see http://www.gnu.org/licenses/.
192194-*/
193195-
194−-public class Pantheon.Keyboard.InputMethodPage.ProgressDialog : Gtk.Dialog {
196+-public class Pantheon.Keyboard.InputMethodPage.ProgressDialog : Granite.Dialog {
195197- public int progress {
196198- set {
197199- if (value >= 100) {
@@ -583,10 +585,10 @@ index ee5c3f5..0000000
583585- }
584586-}
585587diff --git a/src/Widgets/InputMethod/AddEnginesPopover.vala b/src/Widgets/InputMethod/AddEnginesPopover.vala
586−index 46e005d..6b56c6b 100644
588+index 110bc1d..8a03ca8 100644
587589--- a/src/Widgets/InputMethod/AddEnginesPopover.vala
588590+++ b/src/Widgets/InputMethod/AddEnginesPopover.vala
589−@@ -49,8 +49,6 @@ public class Pantheon.Keyboard.InputMethodPage.AddEnginesPopover : Gtk.Popover {
591+@@ -43,8 +43,6 @@ public class Pantheon.Keyboard.InputMethodPage.AddEnginesPopover : Gtk.Popover {
590592 };
591593 scrolled.add (listbox);
592594
@@ -595,7 +597,7 @@ index 46e005d..6b56c6b 100644
595597 var cancel_button = new Gtk.Button.with_label (_("Cancel"));
596598
597599 var add_button = new Gtk.Button.with_label (_("Add Engine"));
598−@@ -61,10 +59,8 @@ public class Pantheon.Keyboard.InputMethodPage.AddEnginesPopover : Gtk.Popover {
600+@@ -55,10 +53,8 @@ public class Pantheon.Keyboard.InputMethodPage.AddEnginesPopover : Gtk.Popover {
599601 margin = 12,
600602 spacing = 6
601603 };
@@ -606,7 +608,7 @@ index 46e005d..6b56c6b 100644
606608
607609 var grid = new Gtk.Grid ();
608610 grid.attach (search_entry, 0, 0);
609−@@ -92,14 +88,6 @@ public class Pantheon.Keyboard.InputMethodPage.AddEnginesPopover : Gtk.Popover {
611+@@ -88,14 +84,6 @@ public class Pantheon.Keyboard.InputMethodPage.AddEnginesPopover : Gtk.Popover {
610612 listbox.invalidate_filter ();
611613 });
612614
@@ -671,20 +673,20 @@ index dc064ae..0000000
671673- }
672674-}
673675diff --git a/src/meson.build b/src/meson.build
674−index 28f07c1..a515419 100644
676+index 77a51d0..26711c5 100644
675677--- a/src/meson.build
676678+++ b/src/meson.build
677−@@ -16,7 +16,6 @@ plug_files = files(
678− 'Widgets/Shortcuts/CustomTree.vala',
679+@@ -17,7 +17,6 @@ plug_files = files(
679680 'Widgets/Layout/Display.vala',
680− 'Widgets/Layout/AddLayoutPopover.vala',
681+ 'Widgets/Layout/AdvancedSettingsPanel.vala',
682+ 'Widgets/Layout/AdvancedSettingsGrid.vala',
681683- 'Widgets/InputMethod/LanguagesRow.vala',
682684 'Widgets/InputMethod/EnginesRow.vala',
683685 'Widgets/InputMethod/AddEnginesPopover.vala',
684686 'Views/Shortcuts.vala',
685−@@ -36,11 +35,6 @@ plug_files = files(
686− 'Layout/AdvancedSettingsGrid.vala',
687− 'InputMethod/Utils.vala',
687+@@ -33,11 +32,6 @@ plug_files = files(
688+ 'InputSources/SourceSettings.vala',
689+ 'InputSources/InputSource.vala',
688690 'InputMethod/AddEnginesList.vala',
689691- 'InputMethod/Installer/UbuntuInstaller.vala',
690692- 'InputMethod/Installer/InstallList.vala',
@@ -692,9 +694,5 @@ index 28f07c1..a515419 100644
692694- 'Dialogs/ProgressDialog.vala',
693695- 'Dialogs/InstallEngineDialog.vala',
694696 'Dialogs/ConflictDialog.vala',
697+ 'Dialogs/AddLayoutDialog.vala'
695698 )
696−
697−
698−base-commit: 9d9eddeb7da8450a309496c25066f4f78a9d4070
699−--
700−git-series 0.9.1
pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix+14−3
@@ -11,27 +11,37 @@
1111, libgee
1212, granite
1313, gtk3
14+, libhandy
1415, libxml2
1516, libgnomekbd
1617, libxklavier
17−, xorg
1818, ibus
1919, switchboard
2020}:
2121
2222stdenv.mkDerivation rec {
2323 pname = "switchboard-plug-keyboard";
24− version = "2.4.1";
24+ version = "2.5.0";
2525
2626 src = fetchFromGitHub {
2727 owner = "elementary";
2828 repo = pname;
2929 rev = version;
30− sha256 = "sha256-iuv5NZ7v+rXyFsKB/PvGa/7hm9MIV8E6JnTzEGROlhM=";
30+ sha256 = "1nsy9fh6qj5kyg22bs1hm6kpsvarwc63q0hl0nbwymvnhfjf6swp";
3131 };
3232
3333 patches = [
34+ # Upstream code not respecting our localedir
35+ # https://github.com/elementary/switchboard-plug-keyboard/pull/377
36+ (fetchpatch {
37+ url = "https://github.com/elementary/switchboard-plug-keyboard/commit/6d8bcadba05b4ee1115b891448b0de31bcba3749.patch";
38+ sha256 = "1bppxakj71r3cfy8sw19xbyngb7r6nyirc4g6pjf02cdidhw3v8l";
39+ })
3440 ./0001-Remove-Install-Unlisted-Engines-function.patch
41+ (substituteAll {
42+ src = ./fix-paths.patch;
43+ ibus = ibus;
44+ })
3545 ];
3646
3747 passthru = {
@@ -54,6 +64,7 @@ stdenv.mkDerivation rec {
5464 ibus
5565 libgee
5666 libgnomekbd
67+ libhandy
5768 libxklavier
5869 switchboard
5970 ];
pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/fix-paths.patchnew file+13
@@ -0,0 +1,13 @@
1+diff --git a/src/Views/InputMethod.vala b/src/Views/InputMethod.vala
2+index 6d79fdc..de4276e 100644
3+--- a/src/Views/InputMethod.vala
4++++ b/src/Views/InputMethod.vala
5+@@ -325,7 +325,7 @@ public class Pantheon.Keyboard.InputMethodPage.Page : Gtk.Grid {
6+ private void spawn_ibus_daemon () {
7+ bool is_spawn_succeeded = false;
8+ try {
9+- is_spawn_succeeded = Process.spawn_sync ("/", { "ibus-daemon", "-drx" }, Environ.get (), SpawnFlags.SEARCH_PATH, null);
10++ is_spawn_succeeded = Process.spawn_sync ("/", { "@ibus@/bin/ibus-daemon", "-drx" }, Environ.get (), SpawnFlags.SEARCH_PATH, null);
11+ } catch (GLib.SpawnError e) {
12+ warning (e.message);
13+ set_visible_view (e.message);
pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix+26−5
@@ -1,28 +1,33 @@
11{ lib, stdenv
22, fetchFromGitHub
3+, fetchpatch
34, nix-update-script
5+, substituteAll
46, pantheon
57, meson
68, ninja
79, pkg-config
810, vala
911, libgee
12+, libxml2
1013, granite
1114, gtk3
1215, switchboard
13−, elementary-settings-daemon
16+, gnome-settings-daemon
1417, glib
18+, gala # needed for gestures support
19+, touchegg
1520}:
1621
1722stdenv.mkDerivation rec {
1823 pname = "switchboard-plug-mouse-touchpad";
19− version = "2.4.2";
24+ version = "6.0.0";
2025
2126 src = fetchFromGitHub {
2227 owner = "elementary";
2328 repo = pname;
2429 rev = version;
25− sha256 = "sha256-WJ/GRhZsSwC31HEIjHHWBy9/Skqbwor0tNVTedue3kk=";
30+ sha256 = "19kiwrdpan8hr5r79y591591qjx7pm3x814xfkg9vi11ndbcrznr";
2631 };
2732
2833 passthru = {
@@ -39,18 +44,34 @@ stdenv.mkDerivation rec {
3944 ];
4045
4146 buildInputs = [
47+ gala
4248 glib
4349 granite
4450 gtk3
4551 libgee
46− elementary-settings-daemon
52+ libxml2
53+ gnome-settings-daemon
4754 switchboard
55+ touchegg
56+ ];
57+
58+ patches = [
59+ (substituteAll {
60+ src = ./fix-paths.patch;
61+ touchegg = touchegg;
62+ })
63+ # Upstream code not respecting our localedir
64+ # https://github.com/elementary/switchboard-plug-mouse-touchpad/pull/185
65+ (fetchpatch {
66+ url = "https://github.com/elementary/switchboard-plug-mouse-touchpad/commit/a6f84dc08be5dc6f7535082bacfa24e2dff4ef67.patch";
67+ sha256 = "0fxl894dzw1f84n36mb9y7gshs69xcb0samvs2gsa0pcdlzfp3cy";
68+ })
4869 ];
4970
5071 meta = with lib; {
5172 description = "Switchboard Mouse & Touchpad Plug";
5273 homepage = "https://github.com/elementary/switchboard-plug-mouse-touchpad";
53− license = licenses.gpl2Plus;
74+ license = licenses.gpl3Plus;
5475 platforms = platforms.linux;
5576 maintainers = pantheon.maintainers;
5677 };
pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/fix-paths.patchnew file+13
@@ -0,0 +1,13 @@
1+diff --git a/src/Utils/ToucheggSettings.vala b/src/Utils/ToucheggSettings.vala
2+index 1d621b9c..73c89714 100644
3+--- a/src/Utils/ToucheggSettings.vala
4++++ b/src/Utils/ToucheggSettings.vala
5+@@ -36,7 +36,7 @@ public class MouseTouchpad.ToucheggSettings : GLib.Object {
6+ private const string MAXIMIZE_4_XPATH = "//application[@name=\"All\"]/gesture[@fingers=\"4\"]/action[@type=\"MAXIMIZE_RESTORE_WINDOW\"]/..";
7+
8+ public ToucheggSettings () {
9+- system_config_path = Path.build_filename (GLib.Path.DIR_SEPARATOR_S, "usr", "share", "touchegg", "touchegg.conf");
10++ system_config_path = Path.build_filename ("@touchegg@", "share", "touchegg", "touchegg.conf");
11+ user_config_dir_path = Path.build_filename (GLib.Environment.get_home_dir (), ".config", "touchegg");
12+ user_config_path = Path.build_filename (GLib.Environment.get_home_dir (), ".config", "touchegg", "touchegg.conf");
13+ }
pkgs/desktops/pantheon/apps/switchboard-plugs/network/default.nix+3−3
@@ -18,13 +18,13 @@
1818
1919stdenv.mkDerivation rec {
2020 pname = "switchboard-plug-network";
21− version = "2.3.2";
21+ version = "2.4.1";
2222
2323 src = fetchFromGitHub {
2424 owner = "elementary";
2525 repo = pname;
2626 rev = version;
27− sha256 = "sha256-PYgewxBblhOfOJQSeRaq8xD7qZ3083EvgUjpi92FqyI=";
27+ sha256 = "0nqihsbrpjw4nx1c50g854bqybniw38adi78vzg8nyl6ikj2r0z4";
2828 };
2929
3030 passthru = {
@@ -60,7 +60,7 @@ stdenv.mkDerivation rec {
6060 meta = with lib; {
6161 description = "Switchboard Networking Plug";
6262 homepage = "https://github.com/elementary/switchboard-plug-network";
63− license = licenses.lgpl21Plus;
63+ license = licenses.gpl3Plus;
6464 platforms = platforms.linux;
6565 maintainers = pantheon.maintainers;
6666 };
pkgs/desktops/pantheon/apps/switchboard-plugs/notifications/default.nix+11−2
@@ -16,15 +16,24 @@
1616
1717stdenv.mkDerivation rec {
1818 pname = "switchboard-plug-notifications";
19− version = "2.1.7";
19+ version = "2.2.0";
2020
2121 src = fetchFromGitHub {
2222 owner = "elementary";
2323 repo = pname;
2424 rev = version;
25− sha256 = "sha256-MBCSQ+4l0mpS2OTDRJ7+91qo0SWm5nJNYO7SZaSoVQk=";
25+ sha256 = "0zzhgs8m1y7ab31hbn7v8g8k7rx51gqajl243zmysn86lfqk8iay";
2626 };
2727
28+ patches = [
29+ # Upstream code not respecting our localedir
30+ # https://github.com/elementary/switchboard-plug-notifications/pull/83
31+ (fetchpatch {
32+ url = "https://github.com/elementary/switchboard-plug-notifications/commit/2e0320aab62b6932e8ef5f941d02e244de381957.patch";
33+ sha256 = "0rcamasq837grck0i2yx6psggzrhv7p7m3mra5l0k9zsjxgar92v";
34+ })
35+ ];
36+
2837 passthru = {
2938 updateScript = nix-update-script {
3039 attrPath = "pantheon.${pname}";
pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix+13−22
@@ -1,33 +1,36 @@
11{ lib, stdenv
22, fetchFromGitHub
33, nix-update-script
4−, fetchpatch
54, pantheon
65, meson
76, ninja
87, pkg-config
9−, vala_0_46
8+, vala
109, libgee
1110, granite
1211, gtk3
1312, libaccounts-glib
13+, libgdata
14+, libhandy
1415, libsignon-glib
1516, json-glib
1617, librest
1718, webkitgtk
1819, libsoup
20+, sqlite
1921, switchboard
22+, evolution-data-server
2023}:
2124
2225stdenv.mkDerivation rec {
2326 pname = "switchboard-plug-onlineaccounts";
24− version = "2.0.1";
27+ version = "6.2.0";
2528
2629 src = fetchFromGitHub {
2730 owner = "elementary";
2831 repo = pname;
2932 rev = version;
30− sha256 = "sha256-CVYKcRty5bBEMNyoY51JAJQy6uh+U+7IvS6V/1GMCA4=";
33+ sha256 = "1lp3i31jzp21n43d1mh4d4i8zgim3q3j4inw4hmyimyql2s83cc3";
3134 };
3235
3336 passthru = {
@@ -40,45 +43,33 @@ stdenv.mkDerivation rec {
4043 meson
4144 ninja
4245 pkg-config
43− vala_0_46
46+ vala
4447 ];
4548
4649 buildInputs = [
50+ evolution-data-server
4751 granite
4852 gtk3
4953 json-glib
5054 libaccounts-glib
55+ libgdata
5156 libgee
57+ libhandy
5258 libsignon-glib
5359 libsoup
5460 librest
61+ sqlite # needed for camel-1.2
5562 switchboard
5663 webkitgtk
5764 ];
5865
59− patches = [
60− # Fix build with latest vala
61− (fetchpatch {
62− url = "https://github.com/elementary/switchboard-plug-onlineaccounts/commit/5fa2882f765076d20c6ef4886198a34a05159f8a.patch";
63− sha256 = "1szryyy7shdmbvx9yhpi0bhzaayg7hl6pq2c456j1qf9kfv0m4hf";
64− })
65−
66− # fix build with vala 0.48.9
67− (fetchpatch {
68− url = "https://github.com/elementary/switchboard-plug-onlineaccounts/commit/b1853b7427102b8dd94774e1e2cc455f50902263.patch";
69− sha256 = "J3C71GyEHEZWSghGXlwXPHFJRhrvx6i0yvi8NIDb4WE=";
70− })
71− ];
72−
7366 PKG_CONFIG_LIBACCOUNTS_GLIB_PROVIDERFILESDIR = "${placeholder "out"}/share/accounts/providers";
7467 PKG_CONFIG_LIBACCOUNTS_GLIB_SERVICEFILESDIR = "${placeholder "out"}/share/accounts/services";
75− PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "${placeholder "out"}/lib/switchboard";
76−
7768
7869 meta = with lib; {
7970 description = "Switchboard Online Accounts Plug";
8071 homepage = "https://github.com/elementary/switchboard-plug-onlineaccounts";
81− license = licenses.lgpl2Plus;
72+ license = licenses.gpl3Plus;
8273 platforms = platforms.linux;
8374 maintainers = pantheon.maintainers;
8475 };
pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/default.nix+36−5
@@ -1,18 +1,48 @@
1−{ lib, stdenv, fetchFromGitHub, nix-update-script, pantheon, meson, ninja, pkg-config, vala, glib
2−, libgee, granite, gexiv2, elementary-settings-daemon, gtk3, gnome-desktop
3−, gala, wingpanel, elementary-dock, switchboard, gettext, bamf, fetchpatch }:
1+{ lib, stdenv
2+, fetchFromGitHub
3+, fetchpatch
4+, nix-update-script
5+, pantheon
6+, meson
7+, ninja
8+, pkg-config
9+, vala
10+, glib
11+, libgee
12+, granite
13+, gexiv2
14+, gnome-settings-daemon
15+, elementary-settings-daemon
16+, gtk3
17+, gnome-desktop
18+, gala
19+, wingpanel
20+, elementary-dock
21+, switchboard
22+, gettext
23+, bamf
24+}:
425
526stdenv.mkDerivation rec {
627 pname = "switchboard-plug-pantheon-shell";
7− version = "2.8.4";
28+ version = "6.0.0";
829
930 src = fetchFromGitHub {
1031 owner = "elementary";
1132 repo = pname;
1233 rev = version;
13− sha256 = "sha256-CHl+4mVjrDg2gusrWOCfI++DZMWKLdvHxG3ZWMjZ2to=";
34+ sha256 = "0349150kxdv14ald79pzn7lasiqipyc37fgchygbc8hsy62d9a32";
1435 };
1536
37+ patches = [
38+ # Upstream code not respecting our localedir
39+ # https://github.com/elementary/switchboard-plug-pantheon-shell/pull/286
40+ (fetchpatch {
41+ url = "https://github.com/elementary/switchboard-plug-pantheon-shell/commit/0c3207ffaeaa82ca3c743bc9ec772185fbd7e8cf.patch";
42+ sha256 = "11ymzqx6has4zf8y0xy7pfhymcl128hzzjcgp46inshjf99v5kiv";
43+ })
44+ ];
45+
1646 passthru = {
1747 updateScript = nix-update-script {
1848 attrPath = "pantheon.${pname}";
@@ -31,6 +61,7 @@ stdenv.mkDerivation rec {
3161 bamf
3262 elementary-dock
3363 elementary-settings-daemon
64+ gnome-settings-daemon
3465 gala
3566 gexiv2
3667 glib
pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix+4−12
@@ -2,14 +2,13 @@
22, fetchFromGitHub
33, nix-update-script
44, pantheon
5−, substituteAll
65, meson
76, ninja
87, pkg-config
98, vala
109, libgee
11−, elementary-dpms-helper
1210, elementary-settings-daemon
11+, gnome-settings-daemon
1312, granite
1413, gtk3
1514, glib
@@ -20,13 +19,13 @@
2019
2120stdenv.mkDerivation rec {
2221 pname = "switchboard-plug-power";
23− version = "2.4.2";
22+ version = "2.6.0";
2423
2524 src = fetchFromGitHub {
2625 owner = "elementary";
2726 repo = pname;
2827 rev = version;
29− sha256 = "sha256-swcbkaHHe9BZxMWvjdRutvYfXXrSCUJWuld1btfYeH0=";
28+ sha256 = "006h8mrhmdrbd83vhdyahgrfk9wh6j9kjincpp7dz7sl8fsyhmcr";
3029 };
3130
3231 passthru = {
@@ -44,8 +43,8 @@ stdenv.mkDerivation rec {
4443
4544 buildInputs = [
4645 dbus
47− elementary-dpms-helper
4846 elementary-settings-daemon
47+ gnome-settings-daemon
4948 glib
5049 granite
5150 gtk3
@@ -54,13 +53,6 @@ stdenv.mkDerivation rec {
5453 switchboard
5554 ];
5655
57− patches = [
58− (substituteAll {
59− src = ./dpms-helper-exec.patch;
60− elementary_dpms_helper = elementary-dpms-helper;
61− })
62− ];
63−
6456 meta = with lib; {
6557 description = "Switchboard Power Plug";
6658 homepage = "https://github.com/elementary/switchboard-plug-power";
pkgs/desktops/pantheon/apps/switchboard-plugs/power/dpms-helper-exec.patchdeleted−13
@@ -1,13 +0,0 @@
1−diff --git a/src/MainView.vala b/src/MainView.vala
2−index 1654e68..175f220 100644
3−--- a/src/MainView.vala
4−+++ b/src/MainView.vala
5−@@ -317,7 +317,7 @@ public class Power.MainView : Gtk.Grid {
6−
7− private static void run_dpms_helper () {
8− try {
9−- string[] argv = { "io.elementary.dpms-helper" };
10−+ string[] argv = { "@elementary_dpms_helper@/bin/io.elementary.dpms-helper" };
11− Process.spawn_async (null, argv, Environ.get (),
12− SpawnFlags.SEARCH_PATH | SpawnFlags.STDERR_TO_DEV_NULL | SpawnFlags.STDOUT_TO_DEV_NULL,
13− null, null);
pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix+7−6
@@ -16,20 +16,21 @@
1616
1717stdenv.mkDerivation rec {
1818 pname = "switchboard-plug-printers";
19− version = "2.1.9";
19+ version = "2.1.10";
2020
2121 src = fetchFromGitHub {
2222 owner = "elementary";
2323 repo = pname;
2424 rev = version;
25− sha256 = "sha256-tnAJyyPN/Xy1pmlgBpgO2Eb5CeHrRltjQTHmuTPBt8s=";
25+ sha256 = "0frvybbx7mcs87kww0if4zn0c6c2gb400cpiqrl8b0294py58xpb";
2626 };
2727
2828 patches = [
29− # Fix build with latest Vala.
29+ # Upstream code not respecting our localedir
30+ # https://github.com/elementary/switchboard-plug-printers/pull/153
3031 (fetchpatch {
31− url = "https://github.com/elementary/switchboard-plug-printers/commit/5eced5ddda6f229d7265ea0a713f6c1cd181a526.patch";
32− sha256 = "lPTNqka6jjvv1JnAqVzVIQBIdDXlCOQ5ASvgZNuEUC8=";
32+ url = "https://github.com/elementary/switchboard-plug-printers/commit/3e2b01378cbb8e666d23daeef7f40fcaa90daa45.patch";
33+ sha256 = "0b8pq525xnir06pn65rcz68bcp5xdxl0gpbj7p5x1hs23p5dp04n";
3334 })
3435 ];
3536
@@ -57,7 +58,7 @@ stdenv.mkDerivation rec {
5758 meta = with lib; {
5859 description = "Switchboard Printers Plug";
5960 homepage = "https://github.com/elementary/switchboard-plug-printers";
60− license = licenses.lgpl3Plus;
61+ license = licenses.gpl3Plus;
6162 platforms = platforms.linux;
6263 maintainers = pantheon.maintainers;
6364 };
pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/default.nix+9−8
@@ -10,30 +10,31 @@
1010, vala
1111, libgee
1212, granite
13+, gala
1314, gtk3
1415, glib
1516, polkit
1617, zeitgeist
1718, switchboard
18−, lightlocker
1919}:
2020
2121stdenv.mkDerivation rec {
2222 pname = "switchboard-plug-security-privacy";
23− version = "2.2.4";
23+ version = "2.2.5";
2424
2525 src = fetchFromGitHub {
2626 owner = "elementary";
2727 repo = pname;
2828 rev = version;
29− sha256 = "sha256-Sws6FqUL7QAROInDrcqYAp6j1TCC4aGV0/hi5Kmm5wQ=";
29+ sha256 = "1ydr1xpbyxjcnd36c9j7a64srbz6gpbshwhcqj6591kmiqhmvknk";
3030 };
3131
3232 patches = [
33− # Fix build with latest Vala.
33+ # Upstream code not respecting our localedir
34+ # https://github.com/elementary/switchboard-plug-security-privacy/pull/130
3435 (fetchpatch {
35− url = "https://github.com/elementary/switchboard-plug-security-privacy/commit/c8e422e630bbee0badcf4df26364c9e83e06bad0.patch";
36− sha256 = "5Gm+muZiCraJC5JaGVVo0HDJ7KxjOpclHRW1RKsk3bc=";
36+ url = "https://github.com/elementary/switchboard-plug-security-privacy/commit/18fe438baba651670d7f0534856c3b2433e3d75d.patch";
37+ sha256 = "19qwm725k6h41kgg4a98i4rxx45s4bb1wxx0fzkh75gz9syfi58w";
3738 })
3839 ];
3940
@@ -52,13 +53,13 @@ stdenv.mkDerivation rec {
5253 ];
5354
5455 buildInputs = [
56+ gala
5557 glib
5658 granite
5759 gtk3
5860 libgee
5961 polkit
6062 switchboard
61− lightlocker
6263 zeitgeist
6364 ];
6465
@@ -70,7 +71,7 @@ stdenv.mkDerivation rec {
7071 meta = with lib; {
7172 description = "Switchboard Security & Privacy Plug";
7273 homepage = "https://github.com/elementary/switchboard-plug-security-privacy";
73− license = licenses.lgpl3Plus;
74+ license = licenses.gpl3Plus;
7475 platforms = platforms.linux;
7576 maintainers = pantheon.maintainers;
7677 };
pkgs/desktops/pantheon/apps/switchboard-plugs/sharing/default.nix+12−3
@@ -15,15 +15,24 @@
1515
1616stdenv.mkDerivation rec {
1717 pname = "switchboard-plug-sharing";
18− version = "2.1.4";
18+ version = "2.1.5";
1919
2020 src = fetchFromGitHub {
2121 owner = "elementary";
2222 repo = pname;
2323 rev = version;
24− sha256 = "sha256-/M60w14zfAUXspabvTUWlOPRrHvKtCYUio82b034k6s=";
24+ sha256 = "00lqrxq1wz3y2s9jiz8rh9d571va2vza2gdwj6c86z3q4c4hmn17";
2525 };
2626
27+ patches = [
28+ # Upstream code not respecting our localedir
29+ # https://github.com/elementary/switchboard-plug-sharing/pull/55
30+ (fetchpatch {
31+ url = "https://github.com/elementary/switchboard-plug-sharing/commit/5219839738b79e3c5f039a811d96a40eb2644eab.patch";
32+ sha256 = "020w746q7gzmic0pdnbxs792sx15wlsqaf2x770r5xwbyfmqr7bs";
33+ })
34+ ];
35+
2736 passthru = {
2837 updateScript = nix-update-script {
2938 attrPath = "pantheon.${pname}";
@@ -47,7 +56,7 @@ stdenv.mkDerivation rec {
4756 meta = with lib; {
4857 description = "Switchboard Sharing Plug";
4958 homepage = "https://github.com/elementary/switchboard-plug-sharing";
50− license = licenses.gpl2Plus;
59+ license = licenses.gpl3Plus;
5160 platforms = platforms.linux;
5261 maintainers = pantheon.maintainers;
5362 };
pkgs/desktops/pantheon/apps/switchboard-plugs/sound/default.nix+13−5
@@ -1,5 +1,6 @@
11{ lib, stdenv
22, fetchFromGitHub
3+, fetchpatch
34, nix-update-script
45, pantheon
56, meson
@@ -10,22 +11,30 @@
1011, granite
1112, gtk3
1213, pulseaudio
13−, libcanberra
1414, libcanberra-gtk3
1515, switchboard
1616}:
1717
1818stdenv.mkDerivation rec {
1919 pname = "switchboard-plug-sound";
20− version = "2.2.5";
20+ version = "2.2.7";
2121
2222 src = fetchFromGitHub {
2323 owner = "elementary";
2424 repo = pname;
2525 rev = version;
26− sha256 = "sha256-ITgxLZSB4zhSaFKX7Vbf89DGI8ibIcGEQTtLjcGN2tA=";
26+ sha256 = "0yjqws7ryfid9lcafgzzbfnjjwccsankscwdwqfw486qid85whzc";
2727 };
2828
29+ patches = [
30+ # Upstream code not respecting our localedir
31+ # https://github.com/elementary/switchboard-plug-sound/pull/203
32+ (fetchpatch {
33+ url = "https://github.com/elementary/switchboard-plug-sound/commit/1f3b9f001ace4c457ab194158dff04ba5e25d278.patch";
34+ sha256 = "1lmf2bbif2wkfv500nxbqxp8jdmnjg8yk8xhx3g2g55d15rc5hk4";
35+ })
36+ ];
37+
2938 passthru = {
3039 updateScript = nix-update-script {
3140 attrPath = "pantheon.${pname}";
@@ -42,7 +51,6 @@ stdenv.mkDerivation rec {
4251 buildInputs = [
4352 granite
4453 gtk3
45− libcanberra
4654 libcanberra-gtk3
4755 libgee
4856 pulseaudio
@@ -52,7 +60,7 @@ stdenv.mkDerivation rec {
5260 meta = with lib; {
5361 description = "Switchboard Sound Plug";
5462 homepage = "https://github.com/elementary/switchboard-plug-sound";
55− license = licenses.lgpl2Plus;
63+ license = licenses.lgpl21Plus;
5664 platforms = platforms.linux;
5765 maintainers = pantheon.maintainers;
5866 };
pkgs/desktops/pantheon/apps/switchboard-plugs/wacom/default.nixnew file+72
@@ -0,0 +1,72 @@
1+{ lib, stdenv
2+, fetchFromGitHub
3+, fetchpatch
4+, nix-update-script
5+, pantheon
6+, meson
7+, ninja
8+, pkg-config
9+, vala
10+, glib
11+, granite
12+, gtk3
13+, libgee
14+, libgudev
15+, libwacom
16+, switchboard
17+, xorg
18+}:
19+
20+stdenv.mkDerivation rec {
21+ pname = "switchboard-plug-wacom";
22+ version = "1.0.0";
23+
24+ src = fetchFromGitHub {
25+ owner = "elementary";
26+ repo = pname;
27+ rev = version;
28+ sha256 = "1n2yfq4s9xpnfqjikchjp4z2nk8cmfz4g0p18cplzh5w1lvz17lm";
29+ };
30+
31+ patches = [
32+ # Upstream code not respecting our localedir
33+ # https://github.com/elementary/switchboard-plug-wacom/pull/29
34+ (fetchpatch {
35+ url = "https://github.com/elementary/switchboard-plug-wacom/commit/2a7dee180d73ffb3521d806efb7028f5a71cb511.patch";
36+ sha256 = "06ra5c0f14brmj2mmsqscpc4d1114i4qazgnsazzh2hrp04ilnva";
37+ })
38+ ];
39+
40+ passthru = {
41+ updateScript = nix-update-script {
42+ attrPath = "pantheon.${pname}";
43+ };
44+ };
45+
46+ nativeBuildInputs = [
47+ meson
48+ ninja
49+ pkg-config
50+ vala
51+ ];
52+
53+ buildInputs = [
54+ glib
55+ granite
56+ gtk3
57+ libgee
58+ libgudev
59+ libwacom
60+ switchboard
61+ xorg.libX11
62+ xorg.libXi
63+ ];
64+
65+ meta = with lib; {
66+ description = "Switchboard Wacom Plug";
67+ homepage = "https://github.com/elementary/switchboard-plug-wacom";
68+ license = licenses.gpl3Plus;
69+ platforms = platforms.linux;
70+ maintainers = pantheon.maintainers;
71+ };
72+}
pkgs/desktops/pantheon/apps/switchboard/default.nix+11−2
@@ -1,5 +1,6 @@
11{ lib, stdenv
22, fetchFromGitHub
3+, fetchpatch
34, nix-update-script
45, pantheon
56, pkg-config
@@ -9,6 +10,7 @@
910, vala
1011, gtk3
1112, libgee
13+, libhandy
1214, granite
1315, gettext
1416, clutter-gtk
@@ -18,13 +20,13 @@
1820
1921stdenv.mkDerivation rec {
2022 pname = "switchboard";
21− version = "2.4.0";
23+ version = "6.0.0";
2224
2325 src = fetchFromGitHub {
2426 owner = "elementary";
2527 repo = pname;
2628 rev = version;
27− sha256 = "sha256-N3WZysLIah40kcyIyhryZpm2FxCmlvp0EB1krZ/IsYs=";
29+ sha256 = "02dfsrfmr297cxpyd5m3746ihcgjyfnb3d42ng9m4ljdvh0dxgim";
2830 };
2931
3032 passthru = {
@@ -49,10 +51,17 @@ stdenv.mkDerivation rec {
4951 granite
5052 gtk3
5153 libgee
54+ libhandy
5255 ];
5356
5457 patches = [
5558 ./plugs-path-env.patch
59+ # Upstream code not respecting our localedir
60+ # https://github.com/elementary/switchboard/pull/214
61+ (fetchpatch {
62+ url = "https://github.com/elementary/switchboard/commit/8d6b5f4cbbaf134880252afbf1e25d70033e6402.patch";
63+ sha256 = "0gwq3wwj45jrnlhsmxfclbjw6xjr8kf6pp3a84vbnrazw76lg5nc";
64+ })
5665 ];
5766
5867 postPatch = ''
pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix+4−2
@@ -5,11 +5,12 @@
55, meson
66, ninja
77, gettext
8+, sassc
89}:
910
1011stdenv.mkDerivation rec {
1112 pname = "elementary-gtk-theme";
12− version = "5.4.2";
13+ version = "6.0.0";
1314
1415 repoName = "stylesheet";
1516
@@ -17,7 +18,7 @@ stdenv.mkDerivation rec {
1718 owner = "elementary";
1819 repo = repoName;
1920 rev = version;
20− sha256 = "sha256-eE0/LLdnpxOpBvdpioGKV/DOQ5lIuQt9dPnhGkQDGCs=";
21+ sha256 = "08iga854s6w77xr5rhvr74pgn2lc884aigc7gkn0xjlwysd195fr";
2122 };
2223
2324 passthru = {
@@ -30,6 +31,7 @@ stdenv.mkDerivation rec {
3031 gettext
3132 meson
3233 ninja
34+ sassc
3335 ];
3436
3537 meta = with lib; {
pkgs/desktops/pantheon/artwork/elementary-wallpapers/default.nix+2−2
@@ -9,7 +9,7 @@
99
1010stdenv.mkDerivation rec {
1111 pname = "elementary-wallpapers";
12− version = "5.5.0";
12+ version = "6.0.0";
1313
1414 repoName = "wallpapers";
1515
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
1717 owner = "elementary";
1818 repo = repoName;
1919 rev = version;
20− sha256 = "sha256-Q5sYDXqFhiTu8nABmyND3L8bIXd1BJ3GZQ9TL3SzwzA=";
20+ sha256 = "1qpf8w7x9sp3sd4zpsrlj5ywpwqkq4ywbagm4sf25cwwn82dl59b";
2121 };
2222
2323 nativeBuildInputs = [
pkgs/desktops/pantheon/default.nix+25−16
@@ -12,25 +12,31 @@ lib.makeScope pkgs.newScope (self: with self; {
1212 switchboard-plug-onlineaccounts switchboard-plug-pantheon-shell
1313 switchboard-plug-power switchboard-plug-printers
1414 switchboard-plug-security-privacy switchboard-plug-sharing
15− switchboard-plug-sound
15+ switchboard-plug-sound switchboard-plug-wacom
1616 ];
1717
1818 wingpanelIndicators = [
19− wingpanel-applications-menu wingpanel-indicator-bluetooth
20− wingpanel-indicator-datetime wingpanel-indicator-keyboard
21− wingpanel-indicator-network wingpanel-indicator-nightlight
22− wingpanel-indicator-notifications wingpanel-indicator-power
23− wingpanel-indicator-session wingpanel-indicator-sound
19+ wingpanel-applications-menu wingpanel-indicator-a11y
20+ wingpanel-indicator-bluetooth wingpanel-indicator-datetime
21+ wingpanel-indicator-keyboard wingpanel-indicator-network
22+ wingpanel-indicator-nightlight wingpanel-indicator-notifications
23+ wingpanel-indicator-power wingpanel-indicator-session
24+ wingpanel-indicator-sound
2425 ];
2526
2627 maintainers = lib.teams.pantheon.members;
2728
28− mutter = pkgs.gnome.mutter334;
29+ mutter = pkgs.gnome.mutter338;
30+
31+ # Using 3.38 to match Mutter used in Pantheon
32+ gnome-settings-daemon = pkgs.gnome.gnome-settings-daemon338;
2933
3034 elementary-gsettings-schemas = callPackage ./desktop/elementary-gsettings-schemas { };
3135
3236 notes-up = pkgs.notes-up.override { withPantheon = true; };
3337
38+ touchegg = pkgs.touchegg.override { withPantheon = true; };
39+
3440 #### APPS
3541
3642 appcenter = callPackage ./apps/appcenter { };
@@ -55,12 +61,16 @@ lib.makeScope pkgs.newScope (self: with self; {
5561
5662 elementary-photos = callPackage ./apps/elementary-photos { };
5763
58− elementary-screenshot-tool = callPackage ./apps/elementary-screenshot-tool { };
64+ elementary-screenshot = callPackage ./apps/elementary-screenshot { };
65+
66+ elementary-tasks = callPackage ./apps/elementary-tasks { };
5967
6068 elementary-terminal = callPackage ./apps/elementary-terminal { };
6169
6270 elementary-videos = callPackage ./apps/elementary-videos { };
6371
72+ epiphany = pkgs.epiphany.override { withPantheon = true; };
73+
6474 sideload = callPackage ./apps/sideload { };
6575
6676 #### DESKTOP
@@ -103,16 +113,9 @@ lib.makeScope pkgs.newScope (self: with self; {
103113
104114 elementary-capnet-assist = callPackage ./services/elementary-capnet-assist { };
105115
106− elementary-dpms-helper = callPackage ./services/elementary-dpms-helper { };
107−
108116 elementary-notifications = callPackage ./services/elementary-notifications { };
109117
110− # We're using ubuntu and elementary's patchset due to reasons
111− # explained here -> https://github.com/elementary/greeter/issues/92#issuecomment-376215614
112− # Take note of "I am holding off on "fixing" this bug for as long as possible."
113− elementary-settings-daemon = callPackage ./services/elementary-settings-daemon {
114− inherit (gnome) gnome-desktop;
115− };
118+ elementary-settings-daemon = callPackage ./services/elementary-settings-daemon { };
116119
117120 pantheon-agent-geoclue2 = callPackage ./services/pantheon-agent-geoclue2 { };
118121
@@ -122,6 +125,8 @@ lib.makeScope pkgs.newScope (self: with self; {
122125
123126 wingpanel-applications-menu = callPackage ./desktop/wingpanel-indicators/applications-menu { };
124127
128+ wingpanel-indicator-a11y = callPackage ./desktop/wingpanel-indicators/a11y { };
129+
125130 wingpanel-indicator-bluetooth = callPackage ./desktop/wingpanel-indicators/bluetooth { };
126131
127132 wingpanel-indicator-datetime = callPackage ./desktop/wingpanel-indicators/datetime { };
@@ -184,6 +189,8 @@ lib.makeScope pkgs.newScope (self: with self; {
184189
185190 switchboard-plug-sound = callPackage ./apps/switchboard-plugs/sound { };
186191
192+ switchboard-plug-wacom = callPackage ./apps/switchboard-plugs/wacom { };
193+
187194 ### ARTWORK
188195
189196 elementary-gtk-theme = callPackage ./artwork/elementary-gtk-theme { };
@@ -204,4 +211,6 @@ lib.makeScope pkgs.newScope (self: with self; {
204211
205212 cerbere = throw "Cerbere is now obsolete https://github.com/elementary/cerbere/releases/tag/2.5.1.";
206213
214+ elementary-screenshot-tool = elementary-screenshot; # added 2021-07-21
215+
207216})
pkgs/desktops/pantheon/desktop/elementary-default-settings/0001-Build-with-Meson.patchdeleted−309
@@ -1,309 +0,0 @@
1−From f728ac670d8f6bb7600a007d92034b711471fab6 Mon Sep 17 00:00:00 2001
2−From: worldofpeace <worldofpeace@protonmail.ch>
3−Date: Sat, 13 Jul 2019 19:06:20 -0400
4−Subject: [PATCH 1/2] Build with Meson
5−
6−Has the following meson build options:
7−* default-wallpaper
8−* plank-dockitems
9−* default-gsettings-overrides
10−
11−All default to true.
12−
13−We also split the default-settings gsettings override into another that
14−only sets plank's default dockitems. This is installed when plank-dockitems
15−is true. We need to have this because those settings are dependent on
16−those dockitems actually being installed and we have it optional.
17−---
18− accountsservice/create-symlink.py | 24 ++++++
19− accountsservice/meson.build | 25 ++++++
20− .../appcenter.blacklist | 0
21− .../default-testpage.pdf | Bin
22− settings.ini => gtk/settings.ini | 0
23− .inputrc => inputrc/.inputrc | 0
24− meson.build | 79 ++++++++++++++++++
25− meson/post_install.py | 12 +++
26− meson_options.txt | 14 ++++
27− ...e => default-settings.gschema.override.in} | 3 +-
28− overrides/meson.build | 21 +++++
29− overrides/plank-dockitems.gschema.override | 2 +
30− .../sessioninstaller.desktop | 0
31− 13 files changed, 178 insertions(+), 2 deletions(-)
32− create mode 100644 accountsservice/create-symlink.py
33− create mode 100644 accountsservice/meson.build
34− rename appcenter.blacklist => appcenter/appcenter.blacklist (100%)
35− rename default-testpage.pdf => cups/default-testpage.pdf (100%)
36− rename settings.ini => gtk/settings.ini (100%)
37− rename .inputrc => inputrc/.inputrc (100%)
38− create mode 100644 meson.build
39− create mode 100755 meson/post_install.py
40− create mode 100644 meson_options.txt
41− rename overrides/{default-settings.gschema.override => default-settings.gschema.override.in} (92%)
42− create mode 100644 overrides/meson.build
43− create mode 100644 overrides/plank-dockitems.gschema.override
44− rename sessioninstaller.desktop => sessioninstaller/sessioninstaller.desktop (100%)
45−
46−diff --git a/accountsservice/create-symlink.py b/accountsservice/create-symlink.py
47−new file mode 100644
48−index 0000000..e502134
49−--- /dev/null
50−+++ b/accountsservice/create-symlink.py
51−@@ -0,0 +1,24 @@
52−+#!/usr/bin/env python3
53−+
54−+import os
55−+import sys
56−+
57−+if len(sys.argv) < 3:
58−+ print('Usage: create-symlink.py SOURCE DESTINATION')
59−+ sys.exit(1)
60−+
61−+src = sys.argv[1]
62−+dest = sys.argv[2]
63−+
64−+if 'MESON_INSTALL_DESTDIR_PREFIX' in os.environ:
65−+ src = os.path.join(os.environ['MESON_INSTALL_DESTDIR_PREFIX'], src)
66−+ dest = os.path.join(os.environ['MESON_INSTALL_DESTDIR_PREFIX'], dest)
67−+
68−+if os.path.isabs(src):
69−+ src = os.path.relpath(src, os.path.dirname(os.path.realpath(dest)))
70−+
71−+if not os.path.exists(dest):
72−+ print('Creating symbolic link: ' + dest + ' -> ' + src)
73−+ if not os.path.exists(os.path.dirname(dest)):
74−+ os.makedirs(os.path.dirname(dest))
75−+ os.symlink(src, dest)
76−diff --git a/accountsservice/meson.build b/accountsservice/meson.build
77−new file mode 100644
78−index 0000000..6d18459
79−--- /dev/null
80−+++ b/accountsservice/meson.build
81−@@ -0,0 +1,25 @@
82−+dbus_dep = dependency('dbus-1')
83−+dbus_interfaces_dir = dbus_dep.get_pkgconfig_variable('interfaces_dir', define_variable: ['datadir', datadir])
84−+
85−+install_data(
86−+ 'io.elementary.pantheon.AccountsService.xml',
87−+ install_dir: dbus_interfaces_dir
88−+)
89−+
90−+
91−+polkit_dep = dependency('polkit-gobject-1')
92−+polkit_actiondir = polkit_dep.get_pkgconfig_variable('actiondir', define_variable: ['prefix', prefix])
93−+
94−+install_data(
95−+ 'io.elementary.pantheon.AccountsService.policy',
96−+ install_dir: polkit_actiondir
97−+)
98−+
99−+act_dep = dependency('accountsservice')
100−+act_interfacesdir = act_dep.get_pkgconfig_variable('interfacesdir', define_variable: ['datadir', datadir])
101−+
102−+meson.add_install_script(
103−+ 'create-symlink.py',
104−+ join_paths(dbus_interfaces_dir, 'io.elementary.pantheon.AccountsService.xml'),
105−+ join_paths(act_interfacesdir, 'io.elementary.pantheon.AccountsService.xml'),
106−+)
107−diff --git a/appcenter.blacklist b/appcenter/appcenter.blacklist
108−similarity index 100%
109−rename from appcenter.blacklist
110−rename to appcenter/appcenter.blacklist
111−diff --git a/default-testpage.pdf b/cups/default-testpage.pdf
112−similarity index 100%
113−rename from default-testpage.pdf
114−rename to cups/default-testpage.pdf
115−diff --git a/settings.ini b/gtk/settings.ini
116−similarity index 100%
117−rename from settings.ini
118−rename to gtk/settings.ini
119−diff --git a/.inputrc b/inputrc/.inputrc
120−similarity index 100%
121−rename from .inputrc
122−rename to inputrc/.inputrc
123−diff --git a/meson.build b/meson.build
124−new file mode 100644
125−index 0000000..7740a34
126−--- /dev/null
127−+++ b/meson.build
128−@@ -0,0 +1,79 @@
129−+project(
130−+ 'elementary-default-settings',
131−+ version: '5.1.0',
132−+ default_options: 'sysconfdir=/etc',
133−+)
134−+
135−+prefix = get_option('prefix')
136−+datadir = join_paths(prefix, get_option('datadir'))
137−+sysconfdir = get_option('sysconfdir')
138−+
139−+meson.add_install_script('meson/post_install.py', datadir)
140−+
141−+# Planks Default DockItems
142−+if get_option('plank-dockitems')
143−+ install_subdir(
144−+ 'plank',
145−+ install_dir: join_paths(sysconfdir, 'skel', '.config')
146−+ )
147−+endif
148−+
149−+# Setup system wide global environment for applications
150−+install_subdir(
151−+ 'profile.d',
152−+ install_dir: join_paths(sysconfdir, 'profile.d'),
153−+ strip_directory : true
154−+)
155−+
156−+# elementary Plymouth Theme
157−+install_subdir(
158−+ 'plymouth/elementary',
159−+ install_dir: join_paths(datadir, 'plymouth', 'themes')
160−+)
161−+
162−+install_data(
163−+ 'plymouth/ubuntu-text.plymouth',
164−+ install_dir: join_paths(datadir, 'plymouth', 'themes')
165−+)
166−+
167−+# Sudo password feedback in terminals
168−+install_data(
169−+ 'sudoers.d/pwfeedback',
170−+ install_dir: join_paths(sysconfdir, 'sudoers.d')
171−+)
172−+
173−+# CUPS Printing testpage
174−+install_data(
175−+ 'cups/default-testpage.pdf',
176−+ install_dir: join_paths(datadir, 'cups', 'data')
177−+)
178−+
179−+# GTK3 Settings
180−+install_data(
181−+ 'gtk/settings.ini',
182−+ install_dir: join_paths(sysconfdir, 'gtk-3.0')
183−+)
184−+
185−+# So SessionInstaller can have an Icon
186−+install_data(
187−+ 'sessioninstaller/sessioninstaller.desktop',
188−+ install_dir: join_paths(datadir, 'applications')
189−+)
190−+
191−+# Default Appcenter Blacklist
192−+install_data(
193−+ 'appcenter/appcenter.blacklist',
194−+ install_dir: join_paths(sysconfdir, 'appcenter')
195−+)
196−+
197−+# Configuration file of GNU readline
198−+install_data(
199−+ 'inputrc/.inputrc',
200−+ install_dir: join_paths(sysconfdir, 'skel')
201−+)
202−+
203−+# Default gsettings overrides
204−+subdir('overrides')
205−+
206−+# AccountsService extension for Greeter.
207−+subdir('accountsservice')
208−diff --git a/meson/post_install.py b/meson/post_install.py
209−new file mode 100755
210−index 0000000..c6b5617
211−--- /dev/null
212−+++ b/meson/post_install.py
213−@@ -0,0 +1,12 @@
214−+#!/usr/bin/env python3
215−+
216−+import os
217−+import sys
218−+import subprocess
219−+
220−+if 'DESTDIR' not in os.environ:
221−+ default_settings_datadir = sys.argv[1]
222−+
223−+ print('Compiling GSettings schemas...')
224−+ subprocess.call(['glib-compile-schemas',
225−+ os.path.join(default_settings_datadir, 'glib-2.0', 'schemas')])
226−diff --git a/meson_options.txt b/meson_options.txt
227−new file mode 100644
228−index 0000000..8fd19ba
229−--- /dev/null
230−+++ b/meson_options.txt
231−@@ -0,0 +1,14 @@
232−+option('default-wallpaper',
233−+ type: 'string',
234−+ value: '/usr/share/backgrounds/elementaryos-default',
235−+ description: 'Path to default wallpaper to use in Pantheon.')
236−+
237−+option('plank-dockitems',
238−+ type: 'boolean',
239−+ value: true,
240−+ description: 'Install default Pantheon Plank dockitems')
241−+
242−+option('default-gsettings-overrides',
243−+ type: 'boolean',
244−+ value: true,
245−+ description: 'Install default Pantheon GSettings Overrides')
246−diff --git a/overrides/default-settings.gschema.override b/overrides/default-settings.gschema.override.in
247−similarity index 92%
248−rename from overrides/default-settings.gschema.override
249−rename to overrides/default-settings.gschema.override.in
250−index 1aef29c..69d272b 100644
251−--- a/overrides/default-settings.gschema.override
252−+++ b/overrides/default-settings.gschema.override.in
253−@@ -1,5 +1,4 @@
254− [net.launchpad.plank.dock.settings]
255−-dock-items=['gala-multitaskingview.dockitem','org.gnome.Epiphany.dockitem','org.pantheon.mail.dockitem','io.elementary.calendar.dockitem','io.elementary.music.dockitem','io.elementary.videos.dockitem','io.elementary.photos.dockitem','io.elementary.switchboard.dockitem','io.elementary.appcenter.dockitem']
256− hide-delay=250
257− hide-mode='window-dodge'
258− show-dock-item=false
259−@@ -11,7 +10,7 @@ triggers=['<Control>space']
260− [org.gnome.desktop.background]
261− draw-background=true
262− picture-options='zoom'
263−-picture-uri='file:///usr/share/backgrounds/elementaryos-default'
264−+picture-uri='file://@DEFAULT_WALLPAPER@'
265− primary-color='#000000'
266− show-desktop-icons=false
267−
268−diff --git a/overrides/meson.build b/overrides/meson.build
269−new file mode 100644
270−index 0000000..ad80644
271−--- /dev/null
272−+++ b/overrides/meson.build
273−@@ -0,0 +1,21 @@
274−+if get_option('default-gsettings-overrides')
275−+ default_wallpaper = get_option('default-wallpaper')
276−+
277−+ wallpaper_configuration = configuration_data()
278−+ wallpaper_configuration.set('DEFAULT_WALLPAPER', default_wallpaper)
279−+
280−+ settings_override = configure_file(
281−+ input: 'default-settings.gschema.override.in',
282−+ output: '@BASENAME@',
283−+ configuration: wallpaper_configuration,
284−+ install_dir: join_paths(datadir, 'glib-2.0', 'schemas')
285−+ )
286−+endif
287−+
288−+# Install conditionally because it's dependent on our dockitems being installed
289−+if get_option('plank-dockitems')
290−+ install_data(
291−+ 'plank-dockitems.gschema.override',
292−+ install_dir: join_paths(datadir, 'glib-2.0', 'schemas')
293−+ )
294−+endif
295−diff --git a/overrides/plank-dockitems.gschema.override b/overrides/plank-dockitems.gschema.override
296−new file mode 100644
297−index 0000000..72b38d4
298−--- /dev/null
299−+++ b/overrides/plank-dockitems.gschema.override
300−@@ -0,0 +1,2 @@
301−+[net.launchpad.plank.dock.settings]
302−+dock-items=['gala-multitaskingview.dockitem','org.gnome.Epiphany.dockitem','org.pantheon.mail.dockitem','io.elementary.calendar.dockitem','io.elementary.music.dockitem','io.elementary.videos.dockitem','io.elementary.photos.dockitem','io.elementary.switchboard.dockitem','io.elementary.appcenter.dockitem']
303−diff --git a/sessioninstaller.desktop b/sessioninstaller/sessioninstaller.desktop
304−similarity index 100%
305−rename from sessioninstaller.desktop
306−rename to sessioninstaller/sessioninstaller.desktop
307−--
308−2.23.0
309−
pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix+6−24
@@ -11,12 +11,11 @@
1111, polkit
1212, accountsservice
1313, python3
14−, fetchpatch
1514}:
1615
1716stdenv.mkDerivation rec {
1817 pname = "elementary-default-settings";
19− version = "5.1.2";
18+ version = "6.0.1";
2019
2120 repoName = "default-settings";
2221
@@ -24,7 +23,7 @@ stdenv.mkDerivation rec {
2423 owner = "elementary";
2524 repo = repoName;
2625 rev = version;
27− sha256 = "sha256-HKrDs2frEWVPpwyGNP+NikrjyplSXJj1hFMLy6kK4wM=";
26+ sha256 = "0gqnrm968j4v699yhhiyw5fqjy4zbvvrjci2v1jrlycn09c2yrwf";
2827 };
2928
3029 passthru = {
@@ -33,23 +32,6 @@ stdenv.mkDerivation rec {
3332 };
3433 };
3534
36− patches = [
37− # Use new notifications
38− (fetchpatch {
39− url = "https://github.com/elementary/default-settings/commit/0658bb75b9f49f58b35746d05fb6c4b811f125e9.patch";
40− sha256 = "0wa7iq0vfp2av5v23w94a5844ddj4g48d4wk3yrp745dyrimg739";
41− })
42−
43− # Fix media key syntax
44− (fetchpatch {
45− url = "https://github.com/elementary/default-settings/commit/332aefe1883be5dfe90920e165c39e331a53b2ea.patch";
46− sha256 = "0ypcaga55pw58l30srq3ga1mhz2w6hkwanv41jjr6g3ia9jvq69n";
47− })
48−
49− # https://github.com/elementary/default-settings/pull/119
50− ./0001-Build-with-Meson.patch
51− ];
52−
5335 nativeBuildInputs = [
5436 accountsservice
5537 dbus
@@ -73,9 +55,9 @@ stdenv.mkDerivation rec {
7355 '';
7456
7557 preInstall = ''
76− # Install our override for plank dockitems.
77− # This is because we don't have Pantheon's mail or Appcenter.
78− # See: https://github.com/NixOS/nixpkgs/issues/58161
58+ # Install our override for plank dockitems as Appcenter and Tasks is not ready to be preinstalled.
59+ # For Appcenter, see: https://github.com/NixOS/nixpkgs/issues/70214.
60+ # For Tasks, see: https://github.com/elementary/tasks/issues/243#issuecomment-846259496
7961 schema_dir=$out/share/glib-2.0/schemas
8062 install -D ${./overrides/plank-dockitems.gschema.override} $schema_dir/plank-dockitems.gschema.override
8163
@@ -84,7 +66,7 @@ stdenv.mkDerivation rec {
8466 cp -avr ${./launchers} $out/etc/skel/.config/plank/dock1/launchers
8567
8668 # Whitelist wingpanel indicators to be used in the greeter
87− # hhttps://github.com/elementary/greeter/blob/fc19752f147c62767cd2097c0c0c0fcce41e5873/debian/io.elementary.greeter.whitelist
69+ # https://github.com/elementary/greeter/blob/fc19752f147c62767cd2097c0c0c0fcce41e5873/debian/io.elementary.greeter.whitelist
8870 # wingpanel 2.3.2 renamed this to .allowed to .forbidden
8971 # https://github.com/elementary/wingpanel/pull/326
9072 install -D ${./io.elementary.greeter.allowed} $out/etc/wingpanel.d/io.elementary.greeter.allowed
pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/io.elementary.mail.dockitemnew file+2
@@ -0,0 +1,2 @@
1+[PlankDockItemPreferences]
2+Launcher=file:///run/current-system/sw/share/applications/io.elementary.mail.desktop
pkgs/desktops/pantheon/desktop/elementary-default-settings/launchers/org.gnome.Geary.dockitemdeleted−2
@@ -1,2 +0,0 @@
1−[PlankDockItemPreferences]
2−Launcher=file:///run/current-system/sw/share/applications/org.gnome.Geary.desktop
pkgs/desktops/pantheon/desktop/elementary-default-settings/overrides/plank-dockitems.gschema.override+1−1
@@ -1,2 +1,2 @@
11[net.launchpad.plank.dock.settings]
2−dock-items=['gala-multitaskingview.dockitem','org.gnome.Epiphany.dockitem','org.gnome.Geary.dockitem','io.elementary.calendar.dockitem','io.elementary.music.dockitem','io.elementary.videos.dockitem','io.elementary.photos.dockitem','io.elementary.switchboard.dockitem']
2+dock-items=['gala-multitaskingview.dockitem','org.gnome.Epiphany.dockitem','io.elementary.mail.dockitem','io.elementary.calendar.dockitem','io.elementary.music.dockitem','io.elementary.videos.dockitem','io.elementary.photos.dockitem','io.elementary.switchboard.dockitem']
pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix+15−6
@@ -1,5 +1,6 @@
11{ lib, stdenv
22, fetchFromGitHub
3+, fetchpatch
34, nix-update-script
45, linkFarm
56, substituteAll
@@ -13,11 +14,13 @@
1314, gtk3
1415, granite
1516, libgee
16−, elementary-settings-daemon
17+, libhandy
18+, gnome-settings-daemon
1719, mutter
1820, elementary-icon-theme
1921, wingpanel-with-indicators
2022, elementary-gtk-theme
23+, elementary-settings-daemon
2124, nixos-artwork
2225, lightdm
2326, gdk-pixbuf
@@ -29,7 +32,7 @@
2932
3033stdenv.mkDerivation rec {
3134 pname = "elementary-greeter";
32− version = "5.0.4";
35+ version = "6.0.0";
3336
3437 repoName = "greeter";
3538
@@ -37,7 +40,7 @@ stdenv.mkDerivation rec {
3740 owner = "elementary";
3841 repo = repoName;
3942 rev = version;
40− sha256 = "sha256-Enn+ekALWbk7FVJJuea/rNiwEZDIyb3kyMcZNNraOv8=";
43+ sha256 = "1ny1003bbpdscc4kr2d94zc5vxm30y64dpj3fpd5zz2p2g0cq2h9";
4144 };
4245
4346 passthru = {
@@ -66,10 +69,12 @@ stdenv.mkDerivation rec {
6669 elementary-gtk-theme
6770 elementary-icon-theme
6871 elementary-settings-daemon
72+ gnome-settings-daemon
6973 gdk-pixbuf
7074 granite
7175 gtk3
7276 libgee
77+ libhandy
7378 lightdm
7479 mutter
7580 wingpanel-with-indicators
@@ -80,12 +85,16 @@ stdenv.mkDerivation rec {
8085 "--sbindir=${placeholder "out"}/bin"
8186 # baked into the program for discovery of the greeter configuration
8287 "--sysconfdir=/etc"
83− # We use the patched gnome-settings-daemon
84− "-Dubuntu-patched-gsd=true"
85− "-Dgsd-dir=${elementary-settings-daemon}/libexec/" # trailing slash is needed
88+ "-Dgsd-dir=${gnome-settings-daemon}/libexec/" # trailing slash is needed
8689 ];
8790
8891 patches = [
92+ # Upstream code not respecting our localedir
93+ # https://github.com/elementary/greeter/pull/545
94+ (fetchpatch {
95+ url = "https://github.com/elementary/greeter/commit/d1373a7db827bc753bfcd70d0c8f25460ea9f1de.patch";
96+ sha256 = "0s8l7ycd2s307d3dh1p4vdk33dbzjzqwxs6msyb9w0ycfyxlwdvp";
97+ })
8998 ./sysconfdir-install.patch
9099 # Needed until https://github.com/elementary/greeter/issues/360 is fixed
91100 (substituteAll {
pkgs/desktops/pantheon/desktop/elementary-gsettings-schemas/default.nix+2−2
@@ -6,7 +6,7 @@
66, glib
77, gala
88, epiphany
9−, elementary-settings-daemon
9+, gnome-settings-daemon
1010, gtk3
1111, elementary-dock
1212, gsettings-desktop-schemas
@@ -18,7 +18,7 @@ let
1818
1919 gsettingsOverridePackages = [
2020 elementary-dock
21− elementary-settings-daemon
21+ gnome-settings-daemon
2222 epiphany
2323 gala
2424 gsettings-desktop-schemas
pkgs/desktops/pantheon/desktop/elementary-onboarding/default.nix+11−14
@@ -1,8 +1,8 @@
11{ lib, stdenv
22, fetchFromGitHub
33, nix-update-script
4+, substituteAll
45, pantheon
5−, fetchpatch
66, pkg-config
77, meson
88, ninja
@@ -17,11 +17,12 @@
1717, gettext
1818, libhandy
1919, wrapGAppsHook
20+, appcenter
2021}:
2122
2223stdenv.mkDerivation rec {
2324 pname = "elementary-onboarding";
24− version = "1.2.1";
25+ version = "6.0.0";
2526
2627 repoName = "onboarding";
2728
@@ -29,20 +30,9 @@ stdenv.mkDerivation rec {
2930 owner = "elementary";
3031 repo = repoName;
3132 rev = version;
32− sha256 = "sha256-tLTwXA2miHqYqCUbIiBjb2nQB+uN/WzuE4F9m3fVCbM=";
33+ sha256 = "1mpw0j8ymb41py9v9qlk4nwy1lnwj7k388c7gqdv34ynck0ymfi4";
3334 };
3435
35− patches = [
36− # Port to Libhandy-1
37− (fetchpatch {
38− url = "https://github.com/elementary/onboarding/commit/8af6b7d9216f8cbf725f708b36ef4d4f6c400c78.patch";
39− sha256 = "cnSCSSFEQlNd9Ncw5VCJ32stZ8D4vhl3f+derAk/Cas=";
40− excludes = [
41− ".github/workflows/main.yml"
42− ];
43− })
44− ];
45−
4636 passthru = {
4737 updateScript = nix-update-script {
4838 attrPath = "pantheon.${pname}";
@@ -69,6 +59,13 @@ stdenv.mkDerivation rec {
6959 libhandy
7060 ];
7161
62+ patches = [
63+ (substituteAll {
64+ src = ./fix-paths.patch;
65+ appcenter = appcenter;
66+ })
67+ ];
68+
7269 postPatch = ''
7370 chmod +x meson/post_install.py
7471 patchShebangs meson/post_install.py
pkgs/desktops/pantheon/desktop/elementary-onboarding/fix-paths.patchnew file+13
@@ -0,0 +1,13 @@
1+diff --git a/src/Views/AppCenterView.vala b/src/Views/AppCenterView.vala
2+index 16cd18b..5895897 100644
3+--- a/src/Views/AppCenterView.vala
4++++ b/src/Views/AppCenterView.vala
5+@@ -55,7 +55,7 @@ public class Onboarding.AppCenterView : AbstractOnboardingView {
6+ appcenter_button.clicked.connect (() => {
7+ try {
8+ var appcenter = AppInfo.create_from_commandline (
9+- "io.elementary.appcenter",
10++ "@appcenter@/bin/io.elementary.appcenter",
11+ "AppCenter",
12+ AppInfoCreateFlags.SUPPORTS_STARTUP_NOTIFICATION
13+ );
pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix+7−8
@@ -11,7 +11,7 @@
1111, orca
1212, onboard
1313, elementary-default-settings
14−, elementary-settings-daemon
14+, gnome-settings-daemon
1515, runtimeShell
1616, writeText
1717, meson
@@ -89,16 +89,16 @@ let
8989in
9090
9191stdenv.mkDerivation rec {
92− pname = "elementary-session-settings-unstable";
93− version = "2020-07-06";
92+ pname = "elementary-session-settings";
93+ version = "6.0.0";
9494
9595 repoName = "session-settings";
9696
9797 src = fetchFromGitHub {
9898 owner = "elementary";
9999 repo = repoName;
100− rev = "fa15cbd83fba0ba30e9a302db880350bff5ace52";
101− hash = "sha256-26H791c7OAjFYtjVChIatICSocMt0uTej1TKBOvw+6w=";
100+ rev = version;
101+ sha256 = "1faglpa7q3a4335gnd074a3lnsdspyjdnskgy4bfnf6xmwjx7kjx";
102102 };
103103
104104 nativeBuildInputs = [
@@ -109,8 +109,8 @@ stdenv.mkDerivation rec {
109109 ];
110110
111111 buildInputs = [
112− pantheon.elementary-settings-daemon
113112 gnome-keyring
113+ gnome-settings-daemon
114114 onboard
115115 orca
116116 ];
@@ -124,7 +124,6 @@ stdenv.mkDerivation rec {
124124
125125 postInstall = ''
126126 # our mimeapps patched from upstream to exclude:
127− # * pantheon-mail -> geary
128127 # * evince.desktop -> org.gnome.Evince.desktop
129128 mkdir -p $out/share/applications
130129 cp -av ${./pantheon-mimeapps.list} $out/share/applications/pantheon-mimeapps.list
@@ -154,7 +153,7 @@ stdenv.mkDerivation rec {
154153 meta = with lib; {
155154 description = "Session settings for elementary";
156155 homepage = "https://github.com/elementary/session-settings";
157− license = licenses.lgpl3;
156+ license = licenses.gpl2Plus;
158157 platforms = platforms.linux;
159158 maintainers = pantheon.maintainers;
160159 };
pkgs/desktops/pantheon/desktop/elementary-session-settings/pantheon-mimeapps.list+1−1
@@ -163,6 +163,6 @@ x-content/video-svcd=io.elementary.videos.desktop
163163x-content/video-vcd=io.elementary.videos.desktop
164164x-scheme-handler/http=org.gnome.Epiphany.desktop
165165x-scheme-handler/https=org.gnome.Epiphany.desktop
166−x-scheme-handler/mailto=org.gnome.Evolution.desktop
166+x-scheme-handler/mailto=io.elementary.mail.desktop
167167x-scheme-handler/trash=io.elementary.files.desktop
168168
pkgs/desktops/pantheon/desktop/elementary-shortcut-overlay/default.nix+14−2
@@ -1,5 +1,6 @@
11{ lib, stdenv
22, fetchFromGitHub
3+, fetchpatch
34, nix-update-script
45, pantheon
56, pkg-config
@@ -12,13 +13,14 @@
1213, glib
1314, granite
1415, libgee
16+, libhandy
1517, elementary-icon-theme
1618, wrapGAppsHook
1719}:
1820
1921stdenv.mkDerivation rec {
2022 pname = "elementary-shortcut-overlay";
21− version = "1.1.2";
23+ version = "1.2.0";
2224
2325 repoName = "shortcut-overlay";
2426
@@ -26,9 +28,18 @@ stdenv.mkDerivation rec {
2628 owner = "elementary";
2729 repo = repoName;
2830 rev = version;
29− sha256 = "sha256-TFS29vwDkTtoFcIVAbKskyLemqW9fxE7fQkM61DpDm0=";
31+ sha256 = "1zs2fpx4agr00rsfmpi00nhiw92mlypzm4p9x3g851p24m62fn79";
3032 };
3133
34+ patches = [
35+ # Upstream code not respecting our localedir
36+ # https://github.com/elementary/shortcut-overlay/pull/100
37+ (fetchpatch {
38+ url = "https://github.com/elementary/shortcut-overlay/commit/f26e3684568e30cb6e151438e2d86c4d392626bf.patch";
39+ sha256 = "0zxyqpk9xbxdm8lmgdwbb4yzzwbjlhypsca3xs34a2pl0b9pcdwd";
40+ })
41+ ];
42+
3243 passthru = {
3344 updateScript = nix-update-script {
3445 attrPath = "pantheon.${pname}";
@@ -51,6 +62,7 @@ stdenv.mkDerivation rec {
5162 granite
5263 gtk3
5364 libgee
65+ libhandy
5466 ];
5567
5668 meta = with lib; {
pkgs/desktops/pantheon/desktop/gala/default.nix+10−8
@@ -23,18 +23,20 @@
2323, elementary-dock
2424, elementary-icon-theme
2525, elementary-settings-daemon
26+, gnome-settings-daemon
2627, wrapGAppsHook
28+, gexiv2
2729}:
2830
2931stdenv.mkDerivation rec {
3032 pname = "gala";
31− version = "3.3.2";
33+ version = "6.0.1";
3234
3335 src = fetchFromGitHub {
3436 owner = "elementary";
3537 repo = pname;
3638 rev = version;
37− sha256 = "sha256-BOarHUEgWqQM6jmVMauJi0JnsM+jE45MnPNnAqz1qOE=";
39+ sha256 = "0xp9vviamzdwlcnx4836sxaz2pyfkxswgvjm73ppn7fkdm0zjpzx";
3840 };
3941
4042 passthru = {
@@ -61,6 +63,8 @@ stdenv.mkDerivation rec {
6163 elementary-dock
6264 elementary-icon-theme
6365 elementary-settings-daemon
66+ gnome-settings-daemon
67+ gexiv2
6468 gnome-desktop
6569 granite
6670 gtk3
@@ -71,15 +75,13 @@ stdenv.mkDerivation rec {
7175 ];
7276
7377 patches = [
74− # https://github.com/elementary/gala/pull/869
75− # build failure in vala 0.48.7
76− # https://github.com/elementary/gala/pull/869#issuecomment-657147695
78+ # Upstream code not respecting our localedir
79+ # https://github.com/elementary/gala/pull/1205
7780 (fetchpatch {
78− url = "https://github.com/elementary/gala/commit/85d290c75eaa147b704ad34e6c67498071707ee8.patch";
79− sha256 = "19jkvmxidf453qfrxkvi35igxzfz2cm8srwkabvyn9wyd1yhiw0l";
81+ url = "https://github.com/elementary/gala/commit/605aa10ea2a78650e001b2a247c5f7afce478b05.patch";
82+ sha256 = "0bg67wzrnmx8nlw93i35vhyfx8al0bj0lacgci98vwlp2m1jgbd2";
8083 })
8184 ./plugins-dir.patch
82− ./use-new-notifications-default.patch
8385 ];
8486
8587 postPatch = ''
pkgs/desktops/pantheon/desktop/gala/plugins-dir.patch+6−5
@@ -1,16 +1,17 @@
11diff --git a/meson.build b/meson.build
2−index 78113d6..926596c 100644
2+index d0f00e5..977d2e2 100644
33--- a/meson.build
44+++ b/meson.build
5−@@ -24,13 +24,14 @@ vapi_dir = meson.current_source_dir() / 'vapi'
6−
5+@@ -25,6 +25,7 @@ vapi_dir = meson.current_source_dir() / 'vapi'
6+ locale_dir = join_paths(get_option('prefix'), get_option('localedir'))
77 data_dir = join_paths(get_option('prefix'), get_option('datadir'))
88 plugins_dir = join_paths(get_option('prefix'), get_option('libdir'), meson.project_name(), 'plugins')
99+plugins_dir_for_build = join_paths('/run/current-system/sw/lib/', meson.project_name(), 'plugins')
1010 pkgdata_dir = join_paths(get_option('prefix'), get_option('datadir'), meson.project_name())
1111 pkglib_dir = join_paths(get_option('prefix'), get_option('libdir'), meson.project_name())
12−
13− conf = configuration_data()
12+
13+@@ -33,7 +34,7 @@ conf.set_quoted('GETTEXT_PACKAGE', meson.project_name())
14+ conf.set_quoted('LOCALEDIR', locale_dir)
1415 conf.set_quoted('DATADIR', data_dir)
1516 conf.set_quoted('PKGDATADIR', pkgdata_dir)
1617-conf.set_quoted('PLUGINDIR', plugins_dir)
pkgs/desktops/pantheon/desktop/gala/use-new-notifications-default.patchdeleted−13
@@ -1,13 +0,0 @@
1−diff --git a/data/gala.gschema.xml b/data/gala.gschema.xml
2−index 8032583..7f4f03c 100644
3−--- a/data/gala.gschema.xml
4−+++ b/data/gala.gschema.xml
5−@@ -58,7 +58,7 @@
6− <description>If enabled, dropping windows on vertical screen edges maximizes them vertically and resizes them horizontally to cover half of the available area. Dropping windows on the top screen edge maximizes them completely.</description>
7− </key>
8− <key type="b" name="use-new-notifications">
9−- <default>false</default>
10−+ <default>true</default>
11− <summary>If new notifications should be used</summary>
12− <description>If new notifications UI should be used, requires io.elemenetary.notifications to be present and running</description>
13− </key>
pkgs/desktops/pantheon/desktop/wingpanel-indicators/a11y/default.nixnew file+70
@@ -0,0 +1,70 @@
1+{ lib, stdenv
2+, fetchFromGitHub
3+, fetchpatch
4+, nix-update-script
5+, pantheon
6+, meson
7+, ninja
8+, pkg-config
9+, python3
10+, vala
11+, granite
12+, gtk3
13+, libgee
14+, wingpanel
15+}:
16+
17+stdenv.mkDerivation rec {
18+ pname = "wingpanel-indicator-a11y";
19+ version = "1.0.0";
20+
21+ src = fetchFromGitHub {
22+ owner = "elementary";
23+ repo = pname;
24+ rev = version;
25+ sha256 = "1adx1sx9qh02hjgv5h0gwyn116shjl3paxmyaiv4cgh6vq3ndp3c";
26+ };
27+
28+ patches = [
29+ # Upstream code not respecting our localedir
30+ # https://github.com/elementary/wingpanel-indicator-a11y/pull/48
31+ (fetchpatch {
32+ url = "https://github.com/elementary/wingpanel-indicator-a11y/commit/fb8412d56bc1c42b70e8ee41b837e8024e1297f7.patch";
33+ sha256 = "0619npdw9wvaz1zk2lzikczyjdqba8v8c9ry9zizvvl4j1i1ad7k";
34+ })
35+ ];
36+
37+ passthru = {
38+ updateScript = nix-update-script {
39+ attrPath = "pantheon.${pname}";
40+ };
41+ };
42+
43+ nativeBuildInputs = [
44+ meson
45+ ninja
46+ pkg-config
47+ python3
48+ vala
49+ ];
50+
51+ buildInputs = [
52+ granite
53+ gtk3
54+ libgee
55+ wingpanel
56+ ];
57+
58+ postPatch = ''
59+ chmod +x meson/post_install.py
60+ patchShebangs meson/post_install.py
61+ '';
62+
63+ meta = with lib; {
64+ description = "Universal Access Indicator for Wingpanel";
65+ homepage = "https://github.com/elementary/wingpanel-indicator-a11y";
66+ license = licenses.gpl2Plus;
67+ platforms = platforms.linux;
68+ maintainers = pantheon.maintainers;
69+ };
70+}
pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix+2−12
@@ -1,6 +1,5 @@
11{ lib, stdenv
22, fetchFromGitHub
3−, fetchpatch
43, nix-update-script
54, pantheon
65, substituteAll
@@ -19,7 +18,6 @@
1918, elementary-dock
2019, bamf
2120, switchboard-with-plugs
22−, libunity
2321, libsoup
2422, wingpanel
2523, zeitgeist
@@ -29,7 +27,7 @@
2927
3028stdenv.mkDerivation rec {
3129 pname = "wingpanel-applications-menu";
32− version = "2.7.1";
30+ version = "2.8.2";
3331
3432 repoName = "applications-menu";
3533
@@ -37,7 +35,7 @@ stdenv.mkDerivation rec {
3735 owner = "elementary";
3836 repo = repoName;
3937 rev = version;
40− sha256 = "sha256-NeazBzkbdQTC6OzPxxyED4OstMkNkUGtCIaZD67fTnM=";
38+ sha256 = "1pm3dnq35vbvyxqapmfy4frfwhc1l2zh634annlmbjiyfp5mzk0q";
4139 };
4240
4341 passthru = {
@@ -59,14 +57,12 @@ stdenv.mkDerivation rec {
5957 buildInputs = [
6058 bamf
6159 elementary-dock
62− gnome-menus
6360 granite
6461 gtk3
6562 json-glib
6663 libgee
6764 libhandy
6865 libsoup
69− libunity
7066 switchboard-with-plugs
7167 wingpanel
7268 zeitgeist
@@ -83,12 +79,6 @@ stdenv.mkDerivation rec {
8379 ];
8480
8581 patches = [
86− # Port to Libhandy-1
87− (fetchpatch {
88− url = "https://github.com/elementary/applications-menu/commit/8eb2430e8513e9d37f875c5c9b8b15a968c27127.patch";
89− sha256 = "8Uw9mUw7U5nrAwUDGVpAwoRqb9ah503wQCr9kPbBJIo=";
90− })
91−
9282 (substituteAll {
9383 src = ./fix-paths.patch;
9484 bc = "${bc}/bin/bc";
pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/fix-paths.patch+4−4
@@ -1,8 +1,8 @@
11diff --git a/src/synapse-plugins/calculator-plugin.vala b/src/synapse-plugins/calculator-plugin.vala
2−index 18ca3af..f5d1076 100644
2+index 886a44cd..a4601da6 100644
33--- a/src/synapse-plugins/calculator-plugin.vala
44+++ b/src/synapse-plugins/calculator-plugin.vala
5−@@ -44,9 +44,7 @@ namespace Synapse {
5+@@ -50,9 +50,7 @@ namespace Synapse {
66 _("Calculator"),
77 _("Calculate basic expressions."),
88 "accessories-calculator",
@@ -13,10 +13,10 @@ index 18ca3af..f5d1076 100644
1313 );
1414 }
1515
16−@@ -87,7 +85,7 @@ namespace Synapse {
17− if (matched) {
16+@@ -94,7 +92,7 @@ namespace Synapse {
1817 Pid pid;
1918 int read_fd, write_fd;
19+ /* Must include math library to get non-integer results and to access standard math functions */
2020- string[] argv = {"bc", "-l"};
2121+ string[] argv = {"@bc@", "-l"};
2222 string? solution = null;
pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix+3−3
@@ -18,13 +18,13 @@
1818
1919stdenv.mkDerivation rec {
2020 pname = "wingpanel-indicator-bluetooth";
21− version = "unstable-2020-10-01";
21+ version = "2.1.8";
2222
2323 src = fetchFromGitHub {
2424 owner = "elementary";
2525 repo = pname;
26− rev = "2b59d646ea0d66ae45dafc851374f24dcd98c064";
27− sha256 = "sha256-selp70P+7RhbdHF6iiNmcNbMf/c+B9zZ6nlxwRSZGn4=";
26+ rev = version;
27+ sha256 = "12rasf8wy3cqnfjlm9s2qnx4drzx0w0yviagkng3kspdzm3vzsqy";
2828 };
2929
3030 passthru = {
pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix+20−3
@@ -1,6 +1,8 @@
11{ lib, stdenv
22, fetchFromGitHub
3+, fetchpatch
34, nix-update-script
5+, substituteAll
46, pantheon
57, pkg-config
68, meson
@@ -13,6 +15,7 @@
1315, evolution-data-server
1416, libical
1517, libgee
18+, libhandy
1619, libxml2
1720, libsoup
1821, libgdata
@@ -21,13 +24,13 @@
2124
2225stdenv.mkDerivation rec {
2326 pname = "wingpanel-indicator-datetime";
24− version = "2.2.5";
27+ version = "2.3.0";
2528
2629 src = fetchFromGitHub {
2730 owner = "elementary";
2831 repo = pname;
2932 rev = version;
30− sha256 = "sha256-rZzZIh4bwZfwQFDbfPDKQtfLMJQ2IdykH1yiV6ckqnw=";
33+ sha256 = "1mdm0fsnmmyw8c0ik2jmfri3kas9zkz1hskzf8wvbd51vnazfpgw";
3134 };
3235
3336 passthru = {
@@ -50,12 +53,26 @@ stdenv.mkDerivation rec {
5053 granite
5154 gtk3
5255 libgee
56+ libhandy
5357 libical
5458 libsoup
5559 wingpanel
5660 libgdata # required by some dependency transitively
5761 ];
5862
63+ patches = [
64+ (substituteAll {
65+ src = ./fix-paths.patch;
66+ elementary_calendar = elementary-calendar;
67+ })
68+ # Upstream code not respecting our localedir
69+ # https://github.com/elementary/wingpanel-indicator-datetime/pull/269
70+ (fetchpatch {
71+ url = "https://github.com/elementary/wingpanel-indicator-datetime/commit/f7befa68a9fd6215297c334a366919d3431cae65.patch";
72+ sha256 = "0l997b1pnpjscs886xy28as5yykxamxacvxdv8466zin7zynarfs";
73+ })
74+ ];
75+
5976 postPatch = ''
6077 chmod +x meson/post_install.py
6178 patchShebangs meson/post_install.py
@@ -64,7 +81,7 @@ stdenv.mkDerivation rec {
6481 meta = with lib; {
6582 description = "Date & Time Indicator for Wingpanel";
6683 homepage = "https://github.com/elementary/wingpanel-indicator-datetime";
67− license = licenses.gpl2Plus;
84+ license = licenses.gpl3Plus;
6885 platforms = platforms.linux;
6986 maintainers = pantheon.maintainers;
7087 };
pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/fix-paths.patchnew file+13
@@ -0,0 +1,13 @@
1+diff --git a/src/Widgets/calendar/CalendarView.vala b/src/Widgets/calendar/CalendarView.vala
2+index 6e0d530a..2f90f96c 100644
3+--- a/src/Widgets/calendar/CalendarView.vala
4++++ b/src/Widgets/calendar/CalendarView.vala
5+@@ -222,7 +222,7 @@ public class DateTime.Widgets.CalendarView : Gtk.Grid {
6+
7+ // TODO: As far as maya supports it use the Dbus Activation feature to run the calendar-app.
8+ public void show_date_in_maya (GLib.DateTime date) {
9+- var command = "io.elementary.calendar --show-day %s".printf (date.format ("%F"));
10++ var command = "@elementary_calendar@/bin/io.elementary.calendar --show-day %s".printf (date.format ("%F"));
11+
12+ try {
13+ var appinfo = AppInfo.create_from_commandline (command, null, AppInfoCreateFlags.NONE);
pkgs/desktops/pantheon/desktop/wingpanel-indicators/keyboard/default.nix+12−3
@@ -1,5 +1,6 @@
11{ lib, stdenv
22, fetchFromGitHub
3+, fetchpatch
34, nix-update-script
45, pantheon
56, pkg-config
@@ -14,17 +15,18 @@
1415, libgee
1516, xorg
1617, libgnomekbd
18+, ibus
1719}:
1820
1921stdenv.mkDerivation rec {
2022 pname = "wingpanel-indicator-keyboard";
21− version = "2.2.1";
23+ version = "2.4.0";
2224
2325 src = fetchFromGitHub {
2426 owner = "elementary";
2527 repo = pname;
2628 rev = version;
27− sha256 = "sha256-/sTx0qT7gNj1waQg9OKqHY6MtL+p0NljiIAXKA3DYmA=";
29+ sha256 = "10zzsil5l6snz47nx887r22sl2n0j6bg4dhxmgk3j3xp3jhgmrgl";
2830 };
2931
3032 passthru = {
@@ -44,6 +46,7 @@ stdenv.mkDerivation rec {
4446 buildInputs = [
4547 granite
4648 gtk3
49+ ibus
4750 libgee
4851 wingpanel
4952 xorg.xkeyboardconfig
@@ -54,12 +57,18 @@ stdenv.mkDerivation rec {
5457 src = ./fix-paths.patch;
5558 gkbd_keyboard_display = "${libgnomekbd}/bin/gkbd-keyboard-display";
5659 })
60+ # Upstream code not respecting our localedir
61+ # https://github.com/elementary/wingpanel-indicator-keyboard/pull/110
62+ (fetchpatch {
63+ url = "https://github.com/elementary/wingpanel-indicator-keyboard/commit/ea5df2f62a99a216ee5ed137268e710490a852a4.patch";
64+ sha256 = "0fmdz10xgzsryj0f0dnpjrh9yygjkb91a7pxg0rwddxbprhnr7j0";
65+ })
5766 ];
5867
5968 meta = with lib; {
6069 description = "Keyboard Indicator for Wingpanel";
6170 homepage = "https://github.com/elementary/wingpanel-indicator-keyboard";
62− license = licenses.lgpl21Plus;
71+ license = licenses.gpl3Plus;
6372 platforms = platforms.linux;
6473 maintainers = pantheon.maintainers;
6574 };
pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/default.nix+18−2
@@ -1,6 +1,8 @@
11{ lib, stdenv
22, fetchFromGitHub
3+, fetchpatch
34, nix-update-script
5+, substituteAll
46, pantheon
57, pkg-config
68, meson
@@ -12,17 +14,18 @@
1214, libnma
1315, wingpanel
1416, libgee
17+, elementary-capnet-assist
1518}:
1619
1720stdenv.mkDerivation rec {
1821 pname = "wingpanel-indicator-network";
19− version = "2.2.4";
22+ version = "2.3.0";
2023
2124 src = fetchFromGitHub {
2225 owner = "elementary";
2326 repo = pname;
2427 rev = version;
25− sha256 = "sha256-wVHvHduUT55rIWRfRWg3Z3jL3FdzUJfiqFONRmpCR8k=";
28+ sha256 = "0q5ad2sj0nmigrh1rykb2kvik3hzibzyafdvkkmjd6y92145lwl1";
2629 };
2730
2831 passthru = {
@@ -47,6 +50,19 @@ stdenv.mkDerivation rec {
4750 wingpanel
4851 ];
4952
53+ patches = [
54+ (substituteAll {
55+ src = ./fix-paths.patch;
56+ elementary_capnet_assist = elementary-capnet-assist;
57+ })
58+ # Upstream code not respecting our localedir
59+ # https://github.com/elementary/wingpanel-indicator-network/pull/228
60+ (fetchpatch {
61+ url = "https://github.com/elementary/wingpanel-indicator-network/commit/eacc7d46a94a980005e87e38e6c943143a09692a.patch";
62+ sha256 = "1svg07fqmplchp1ass0h8qkr3g24pkw8dcsnd54ddmvnjzwrzz0a";
63+ })
64+ ];
65+
5066 meta = with lib; {
5167 description = "Network Indicator for Wingpanel";
5268 homepage = "https://github.com/elementary/wingpanel-indicator-network";
pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/fix-paths.patchnew file+13
@@ -0,0 +1,13 @@
1+diff --git a/src/Indicator.vala b/src/Indicator.vala
2+index 83ce932a..f95ed142 100644
3+--- a/src/Indicator.vala
4++++ b/src/Indicator.vala
5+@@ -67,7 +67,7 @@ public class Network.Indicator : Wingpanel.Indicator {
6+
7+ if (network_monitor.get_connectivity () == NetworkConnectivity.FULL || network_monitor.get_connectivity () == NetworkConnectivity.PORTAL) {
8+ try {
9+- var appinfo = AppInfo.create_from_commandline ("io.elementary.capnet-assist", null, AppInfoCreateFlags.NONE);
10++ var appinfo = AppInfo.create_from_commandline ("@elementary_capnet_assist@/bin/io.elementary.capnet-assist", null, AppInfoCreateFlags.NONE);
11+ appinfo.launch (null, null);
12+ } catch (Error e) {
13+ warning ("%s\n", e.message);
pkgs/desktops/pantheon/desktop/wingpanel-indicators/nightlight/default.nix+12−4
@@ -1,5 +1,6 @@
11{ lib, stdenv
22, fetchFromGitHub
3+, fetchpatch
34, nix-update-script
45, pantheon
56, pkg-config
@@ -15,15 +16,24 @@
1516
1617stdenv.mkDerivation rec {
1718 pname = "wingpanel-indicator-nightlight";
18− version = "2.0.4";
19+ version = "2.1.0";
1920
2021 src = fetchFromGitHub {
2122 owner = "elementary";
2223 repo = pname;
2324 rev = version;
24− sha256 = "sha256-0f03XO74ezzS/Uy0mXT4raoazETL/SOVh58sAo9bEIA=";
25+ sha256 = "1zxjw68byg4sjn8lzsidzmy4ipwxgnv8rm529a7wzlpgj2xq3x4j";
2526 };
2627
28+ patches = [
29+ # Upstream code not respecting our localedir
30+ # https://github.com/elementary/wingpanel-indicator-nightlight/pull/91
31+ (fetchpatch {
32+ url = "https://github.com/elementary/wingpanel-indicator-nightlight/commit/4e15f71ed958df3569b2f1e224b9fb18613281f1.patch";
33+ sha256 = "07awmswyy0988pm6ggyz22mllja675cbdzrjdqc1xd4knwcgy77v";
34+ })
35+ ];
36+
2737 passthru = {
2838 updateScript = nix-update-script {
2939 attrPath = "pantheon.${pname}";
@@ -45,8 +55,6 @@ stdenv.mkDerivation rec {
4555 wingpanel
4656 ];
4757
48− PKG_CONFIG_WINGPANEL_2_0_INDICATORSDIR = "${placeholder "out"}/lib/wingpanel";
49−
5058 meta = with lib; {
5159 description = "Night Light Indicator for Wingpanel";
5260 homepage = "https://github.com/elementary/wingpanel-indicator-nightlight";
pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix+8−6
@@ -11,26 +11,27 @@
1111, granite
1212, wingpanel
1313, libgee
14+, libhandy
1415, elementary-notifications
1516}:
1617
1718stdenv.mkDerivation rec {
1819 pname = "wingpanel-indicator-notifications";
19− version = "2.1.4";
20+ version = "6.0.0";
2021
2122 src = fetchFromGitHub {
2223 owner = "elementary";
2324 repo = pname;
2425 rev = version;
25− sha256 = "sha256-tVPSJO/9IXlibLkb6Cv+8azdvuXbcNOI1qYk4VQc4WI=";
26+ sha256 = "1pvcpk1d2zh9pvw0clv3bhf2plcww6nbxs6j7xjbvnaqs7d6i1k2";
2627 };
2728
2829 patches = [
29− # Fix do not disturb on NixOS
30− # https://github.com/elementary/wingpanel-indicator-notifications/pull/110
30+ # Upstream code not respecting our localedir
31+ # https://github.com/elementary/wingpanel-indicator-notifications/pull/218
3132 (fetchpatch {
32− url = "https://github.com/elementary/wingpanel-indicator-notifications/commit/02b1e226c0262c1535fdf2b4f1daba6be9084f67.patch";
33− sha256 = "1a5phygygndr28yx8yp0lyk0wxypc5656dpidw1z8x1yd6xysqhy";
33+ url = "https://github.com/elementary/wingpanel-indicator-notifications/commit/c7e73f0683561345935a959dafa2083b7e22fe99.patch";
34+ sha256 = "10xiyq42bqfmih1jgqpq64nha3n0y7ra3j7j0q27rn5hhhgbyjs7";
3435 })
3536 ];
3637
@@ -52,6 +53,7 @@ stdenv.mkDerivation rec {
5253 granite
5354 gtk3
5455 libgee
56+ libhandy
5557 wingpanel
5658 ];
5759
pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/default.nix+14−3
@@ -1,7 +1,9 @@
11{ lib, stdenv
22, fetchFromGitHub
3+, substituteAll
34, nix-update-script
45, pantheon
6+, gnome
57, pkg-config
68, meson
79, python3
@@ -11,6 +13,7 @@
1113, granite
1214, bamf
1315, libgtop
16+, libnotify
1417, udev
1518, wingpanel
1619, libgee
@@ -18,13 +21,13 @@
1821
1922stdenv.mkDerivation rec {
2023 pname = "wingpanel-indicator-power";
21− version = "2.2.0";
24+ version = "6.1.0";
2225
2326 src = fetchFromGitHub {
2427 owner = "elementary";
2528 repo = pname;
2629 rev = version;
27− sha256 = "sha256-wjYZXFnzvPSukzh1BNvyaFxKpYm+kNNFm5AsthLXGVE=";
30+ sha256 = "1zlpnl7983jkpy2nik08ih8lwrqvm456h993ixa6armzlazdvnjk";
2831 };
2932
3033 passthru = {
@@ -47,10 +50,18 @@ stdenv.mkDerivation rec {
4750 gtk3
4851 libgee
4952 libgtop
53+ libnotify
5054 udev
5155 wingpanel
5256 ];
5357
58+ patches = [
59+ (substituteAll {
60+ src = ./fix-paths.patch;
61+ gnome_power_manager = gnome.gnome-power-manager;
62+ })
63+ ];
64+
5465 postPatch = ''
5566 chmod +x meson/post_install.py
5667 patchShebangs meson/post_install.py
@@ -59,7 +70,7 @@ stdenv.mkDerivation rec {
5970 meta = with lib; {
6071 description = "Power Indicator for Wingpanel";
6172 homepage = "https://github.com/elementary/wingpanel-indicator-power";
62− license = licenses.gpl2Plus;
73+ license = licenses.gpl3Plus;
6374 platforms = platforms.linux;
6475 maintainers = pantheon.maintainers;
6576 };
pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/fix-paths.patchnew file+13
@@ -0,0 +1,13 @@
1+diff --git a/src/Widgets/DeviceList.vala b/src/Widgets/DeviceList.vala
2+index 0c56f46..33d97b3 100644
3+--- a/src/Widgets/DeviceList.vala
4++++ b/src/Widgets/DeviceList.vala
5+@@ -39,7 +39,7 @@ public class Power.Widgets.DeviceList : Gtk.ListBox {
6+ string device_path = path_entries.@get (value);
7+ try {
8+ AppInfo statistics_app = AppInfo.create_from_commandline (
9+- "gnome-power-statistics --device " + device_path,
10++ "@gnome_power_manager@/bin/gnome-power-statistics --device " + device_path,
11+ "",
12+ AppInfoCreateFlags.NONE
13+ );
pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix+14−3
@@ -12,19 +12,29 @@
1212, wingpanel
1313, accountsservice
1414, libgee
15+, libhandy
1516}:
1617
1718stdenv.mkDerivation rec {
1819 pname = "wingpanel-indicator-session";
19− version = "unstable-2020-09-13";
20+ version = "2.3.0";
2021
2122 src = fetchFromGitHub {
2223 owner = "elementary";
2324 repo = pname;
24− rev = "e65c95f46adbfd598ad61933394d7bc3c5998278";
25− sha256 = "sha256-QKOfgAc6pDQYpETrFunZB6+rF1P8XIf0pjft/t9aWW0=";
25+ rev = version;
26+ sha256 = "0hww856qjl4kjmmksd5gp8bc5vj4fhs2s9fmbnpbf88lg5ds0wv0";
2627 };
2728
29+ patches = [
30+ # Upstream code not respecting our localedir
31+ # https://github.com/elementary/wingpanel-indicator-session/pull/162
32+ (fetchpatch {
33+ url = "https://github.com/elementary/wingpanel-indicator-session/commit/e85032da8e923df4589dc75ccded10026b6c1cd7.patch";
34+ sha256 = "139b2zbc6qjaw41nwfjkqv4npahkzryv4p5m6v10273clv6l72ng";
35+ })
36+ ];
37+
2838 passthru = {
2939 updateScript = nix-update-script {
3040 attrPath = "pantheon.${pname}";
@@ -43,6 +53,7 @@ stdenv.mkDerivation rec {
4353 granite
4454 gtk3
4555 libgee
56+ libhandy
4657 wingpanel
4758 ];
4859
pkgs/desktops/pantheon/desktop/wingpanel-indicators/sound/default.nix+13−3
@@ -1,5 +1,6 @@
11{ lib, stdenv
22, fetchFromGitHub
3+, fetchpatch
34, nix-update-script
45, pantheon
56, pkg-config
@@ -19,15 +20,24 @@
1920
2021stdenv.mkDerivation rec {
2122 pname = "wingpanel-indicator-sound";
22− version = "2.1.6";
23+ version = "6.0.0";
2324
2425 src = fetchFromGitHub {
2526 owner = "elementary";
2627 repo = pname;
2728 rev = version;
28− sha256 = "sha256-WGkxLsbdJ7Z7kolymYpggsVy4cN4CicNKdfCbunklSI=";
29+ sha256 = "0cv97c0qrhqisyghy9a9qr4ffcx3g4bkswxm6rn4r2wfg4gvljri";
2930 };
3031
32+ patches = [
33+ # Upstream code not respecting our localedir
34+ # https://github.com/elementary/wingpanel-indicator-sound/pull/216
35+ (fetchpatch {
36+ url = "https://github.com/elementary/wingpanel-indicator-sound/commit/df816104c15e4322c1077313b1f43114cdaf710e.patch";
37+ sha256 = "029z7l467jz1ymxwrzrf874062r6xmskl7mldpq39jh110fijy5l";
38+ })
39+ ];
40+
3141 passthru = {
3242 updateScript = nix-update-script {
3343 attrPath = "pantheon.${pname}";
@@ -61,7 +71,7 @@ stdenv.mkDerivation rec {
6171 meta = with lib; {
6272 description = "Sound Indicator for Wingpanel";
6373 homepage = "https://github.com/elementary/wingpanel-indicator-sound";
64− license = licenses.gpl2Plus;
74+ license = licenses.gpl3Plus;
6575 platforms = platforms.linux;
6676 maintainers = pantheon.maintainers;
6777 };
pkgs/desktops/pantheon/desktop/wingpanel/default.nix+3−3
@@ -22,13 +22,13 @@
2222
2323stdenv.mkDerivation rec {
2424 pname = "wingpanel";
25− version = "2.3.2";
25+ version = "3.0.0";
2626
2727 src = fetchFromGitHub {
2828 owner = "elementary";
2929 repo = pname;
3030 rev = version;
31− sha256 = "sha256-mXi600gufUK81Uks9p4+al0tCI7H9KpizZGyoomp42s=";
31+ sha256 = "0ycys24y1rrz0ydpvs4mc89p4k986q1ziwbvziinxr1wsli9v1dj";
3232 };
3333
3434 passthru = {
@@ -82,7 +82,7 @@ stdenv.mkDerivation rec {
8282 including the applications menu.
8383 '';
8484 homepage = "https://github.com/elementary/wingpanel";
85− license = licenses.gpl2Plus;
85+ license = licenses.gpl3Plus;
8686 platforms = platforms.linux;
8787 maintainers = pantheon.maintainers;
8888 };
pkgs/desktops/pantheon/granite/default.nix+2−2
@@ -18,7 +18,7 @@
1818
1919stdenv.mkDerivation rec {
2020 pname = "granite";
21− version = "6.1.0";
21+ version = "6.1.1";
2222
2323 outputs = [ "out" "dev" ];
2424
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
2626 owner = "elementary";
2727 repo = pname;
2828 rev = version;
29− sha256 = "02hn4abnsn6fm2m33pjmlnkj8dljsm292z62vn8ccvy7l8f9my6l";
29+ sha256 = "13c6xk014psvmll9qybdqviskllw4g150m2k4ikjbv59g0rfp7xq";
3030 };
3131
3232 passthru = {
pkgs/desktops/pantheon/services/contractor/default.nix+2−2
@@ -16,13 +16,13 @@
1616
1717stdenv.mkDerivation rec {
1818 pname = "contractor";
19− version = "0.3.4";
19+ version = "0.3.5";
2020
2121 src = fetchFromGitHub {
2222 owner = "elementary";
2323 repo = pname;
2424 rev = version;
25− sha256 = "sha256-FHLecRxTE8v3M7cV6rkQKNhPhKFhuhvkzB5C+u7Z+Ms=";
25+ sha256 = "1sqww7zlzl086pjww3d21ah1g78lfrc9aagrqhmsnnbji9gwb8ab";
2626 };
2727
2828 passthru = {
pkgs/desktops/pantheon/services/elementary-capnet-assist/default.nix+5−3
@@ -11,6 +11,7 @@
1111, gtk3
1212, granite
1313, libgee
14+, libhandy
1415, gcr
1516, webkitgtk
1617, wrapGAppsHook
@@ -18,7 +19,7 @@
1819
1920stdenv.mkDerivation rec {
2021 pname = "elementary-capnet-assist";
21− version = "2.2.5";
22+ version = "2.3.0";
2223
2324 repoName = "capnet-assist";
2425
@@ -26,7 +27,7 @@ stdenv.mkDerivation rec {
2627 owner = "elementary";
2728 repo = repoName;
2829 rev = version;
29− sha256 = "sha256-o6J3vNWvV0zRde8VWWfpb56PQhSck2sJQVLimq0P9CY=";
30+ sha256 = "1gma8a04ndivx1fd3ha9f45r642qq2li80wrd6dsrp4v3vqix9bn";
3031 };
3132
3233 passthru = {
@@ -50,6 +51,7 @@ stdenv.mkDerivation rec {
5051 granite
5152 gtk3
5253 libgee
54+ libhandy
5355 webkitgtk
5456 ];
5557
@@ -66,7 +68,7 @@ stdenv.mkDerivation rec {
6668 meta = with lib; {
6769 description = "A small WebKit app that assists a user with login when a captive portal is detected";
6870 homepage = "https://github.com/elementary/capnet-assist";
69− license = licenses.gpl2Plus;
71+ license = licenses.gpl3Plus;
7072 platforms = platforms.linux;
7173 maintainers = pantheon.maintainers;
7274 };
pkgs/desktops/pantheon/services/elementary-dpms-helper/default.nixdeleted−66
@@ -1,66 +0,0 @@
1−{ lib, stdenv
2−, fetchFromGitHub
3−, nix-update-script
4−, pantheon
5−, meson
6−, ninja
7−, desktop-file-utils
8−, glib
9−, coreutils
10−, elementary-settings-daemon
11−, wrapGAppsHook
12−}:
13−
14−stdenv.mkDerivation rec {
15− pname = "elementary-dpms-helper";
16− version = "1.0";
17−
18− repoName = "dpms-helper";
19−
20− src = fetchFromGitHub {
21− owner = "elementary";
22− repo = repoName;
23− rev = version;
24− sha256 = "sha256-0KbfAxvZ+aFjq+XEK4uoRHSyKlaky0FlJd2a5TG4bms=";
25− };
26−
27− passthru = {
28− updateScript = nix-update-script {
29− attrPath = "pantheon.${pname}";
30− };
31− };
32−
33− nativeBuildInputs = [
34− desktop-file-utils
35− meson
36− ninja
37− wrapGAppsHook
38− ];
39−
40− buildInputs = [
41− elementary-settings-daemon
42− glib
43− ];
44−
45− preFixup = ''
46− gappsWrapperArgs+=(--prefix PATH : "${lib.makeBinPath [ glib.dev coreutils ]}")
47− '';
48−
49− postFixup = ''
50− substituteInPlace $out/etc/xdg/autostart/io.elementary.dpms-helper.desktop \
51− --replace "Exec=io.elementary.dpms-helper" "Exec=$out/bin/io.elementary.dpms-helper"
52− '';
53−
54− # See: https://github.com/elementary/dpms-helper/pull/10
55− postInstall = ''
56− ${glib.dev}/bin/glib-compile-schemas $out/share/glib-2.0/schemas
57− '';
58−
59− meta = with lib; {
60− description = "Sets DPMS settings found in org.pantheon.dpms";
61− homepage = "https://github.com/elementary/dpms-helper";
62− license = licenses.gpl2;
63− platforms = platforms.linux;
64− maintainers = pantheon.maintainers;
65− };
66−}
pkgs/desktops/pantheon/services/elementary-notifications/default.nix+5−3
@@ -8,6 +8,7 @@
88, glib
99, granite
1010, libgee
11+, libhandy
1112, libcanberra-gtk3
1213, pantheon
1314, python3
@@ -16,15 +17,15 @@
1617
1718stdenv.mkDerivation rec {
1819 pname = "elementary-notifications";
19− version = "unstable-2020-03-31";
20+ version = "6.0.0";
2021
2122 repoName = "notifications";
2223
2324 src = fetchFromGitHub {
2425 owner = "elementary";
2526 repo = repoName;
26− rev = "db552b0c3466ba1099c7737c353b7225ab1896cc";
27− sha256 = "1fhf4zx73qka935x5afv6zqsm2l37d1mjbhrbzzzz44dqwa2vp16";
27+ rev = version;
28+ sha256 = "0jfppafbc8jwhhnillylicz4zfds789d8b31ifsx0qijlxa7kji9";
2829 };
2930
3031 nativeBuildInputs = [
@@ -43,6 +44,7 @@ stdenv.mkDerivation rec {
4344 gtk3
4445 libcanberra-gtk3
4546 libgee
47+ libhandy
4648 ];
4749
4850 postPatch = ''
pkgs/desktops/pantheon/services/elementary-settings-daemon/default.nix+31−130
@@ -1,165 +1,66 @@
11{ lib, stdenv
2−, substituteAll
3−, fetchurl
4−, fetchgit
5−, fetchpatch
2+, fetchFromGitHub
63, meson
74, ninja
5+, pantheon
86, pkg-config
9−, gnome
10−, perl
11−, gettext
12−, gtk3
13−, glib
14−, libnotify
15−, libgnomekbd
16−, lcms2
17−, libpulseaudio
18−, alsa-lib
19−, libcanberra-gtk3
20−, upower
21−, colord
22−, libgweather
23−, polkit
24−, gsettings-desktop-schemas
25−, geoclue2
26−, systemd
27−, libgudev
28−, libwacom
29−, libxslt
30−, libxml2
31−, modemmanager
32−, networkmanager
33−, gnome-desktop
34−, geocode-glib
35−, docbook_xsl
7+, python3
8+, vala
369, accountsservice
10+, dbus
11+, desktop-file-utils
12+, geoclue2
13+, glib
14+, gobject-introspection
15+, gtk3
16+, granite
17+, libgee
3718, wrapGAppsHook
38−, python3
39−, tzdata
40−, nss
41−, gcr
42−, pantheon
4319}:
4420
4521stdenv.mkDerivation rec {
4622 pname = "elementary-settings-daemon";
47− version = "3.34.1";
23+ version = "1.0.0";
4824
49− repoName = "gnome-settings-daemon";
25+ repoName = "settings-daemon";
5026
51− src = fetchgit {
52− url = "https://git.launchpad.net/~ubuntu-desktop/ubuntu/+source/${repoName}";
53− rev = "refs/tags/ubuntu/${version}-1ubuntu2";
54− sha256 = "0w0dsbzif7v0gk61rs9g20ldlimbdwb5yvlfdc568yyx5z643jbv";
27+ src = fetchFromGitHub {
28+ owner = "elementary";
29+ repo = repoName;
30+ rev = version;
31+ sha256 = "1masvy1f9z2cp8w5ajnhy4k9bzvzgfziqlm59bf146pdd2567hiw";
5532 };
5633
57− # We've omitted the 53_sync_input_sources_to_accountsservice patch because it breaks the build.
58− # See: https://gist.github.com/worldofpeace/2f152a20b7c47895bb93239fce1c9f52
59− #
60− # Also omit ubuntu_calculator_snap.patch as that's obviously not useful here.
61− patches = let patchPath = "${src}/debian/patches"; in [
62− (substituteAll {
63− src = ./fix-paths.patch;
64− inherit tzdata;
65− })
66− ./global-backlight-helper.patch
67− "${patchPath}/45_suppress-printer-may-not-be-connected-notification.patch"
68− #"${patchPath}/53_sync_input_sources_to_accountsservice.patch"
69− "${patchPath}/64_restore_terminal_keyboard_shortcut_schema.patch"
70− "${patchPath}/correct_logout_action.patch"
71− "${patchPath}/ubuntu-lid-close-suspend.patch"
72− "${patchPath}/revert-gsettings-removals.patch"
73− "${patchPath}/revert-mediakeys-dbus-interface-drop.patch"
74− #"${patchPath}/ubuntu_ibus_configs.patch"
75− # https://github.com/elementary/os-patches/blob/6975d1c254cb6ab913b8e2396877203aea8eaa65/debian/patches/elementary-dpms.patch
76− ./elementary-dpms.patch
77−
78− # Query GWeather DB on the fly instead of caching.
79− # Needed for the next patch to apply.
80− # https://gitlab.gnome.org/GNOME/gnome-settings-daemon/merge_requests/175
81− (fetchpatch {
82− url = "https://gitlab.gnome.org/GNOME/gnome-settings-daemon/commit/df6c69f028d27b53ac86829e11df103b25ed5a74.patch";
83− sha256 = "bKZkPzN64DXMgitjn0vUzUvKl7ldhN/mNVtPKVmHd0Q=";
84− })
85− # Adjust to libgweather changes.
86− # https://gitlab.gnome.org/GNOME/gnome-settings-daemon/-/merge_requests/217
87− (fetchpatch {
88− url = "https://gitlab.gnome.org/GNOME/gnome-settings-daemon/commit/82d88014dfca2df7e081712870e1fb017c16b808.patch";
89− sha256 = "H5k/v+M2bRaswt5nrDJFNn4gS4BdB0UfzdjUCT4yLKg=";
90− })
91− ];
92−
9334 nativeBuildInputs = [
35+ desktop-file-utils
36+ gobject-introspection
9437 meson
9538 ninja
9639 pkg-config
97− perl
98− gettext
99− libxml2
100− libxslt
101− docbook_xsl
102− wrapGAppsHook
10340 python3
41+ vala
42+ wrapGAppsHook
10443 ];
10544
10645 buildInputs = [
10746 accountsservice
108− alsa-lib
109− colord
110− gcr
47+ dbus
11148 geoclue2
112− geocode-glib
11349 glib
114− gnome-desktop
115− gsettings-desktop-schemas
11650 gtk3
117− lcms2
118− libcanberra-gtk3
119− libgnomekbd # for org.gnome.libgnomekbd.keyboard schema
120− libgudev
121− libgweather
122− libnotify
123− libpulseaudio
124− libwacom
125− modemmanager
126− networkmanager
127− nss
128− polkit
129− systemd
130− upower
131− ];
132−
133− mesonFlags = [
134− "-Dudev_dir=${placeholder "out"}/lib/udev"
51+ granite
52+ libgee
13553 ];
13654
137− # Default for release buildtype but passed manually because
138− # we're using plain
139− NIX_CFLAGS_COMPILE = "-DG_DISABLE_CAST_CHECKS";
140−
14155 postPatch = ''
142− for f in gnome-settings-daemon/codegen.py plugins/power/gsd-power-constants-update.pl meson_post_install.py; do
143− chmod +x $f
144− patchShebangs $f
145− done
146− '';
147−
148− postFixup = ''
149− # So the polkit policy can reference /run/current-system/sw/bin/elementary-settings-daemon/gsd-backlight-helper
150− mkdir -p $out/bin/elementary-settings-daemon
151− ln -s $out/libexec/gsd-backlight-helper $out/bin/elementary-settings-daemon/gsd-backlight-helper
56+ chmod +x meson/post_install.py
57+ patchShebangs meson/post_install.py
15258 '';
15359
154− passthru = {
155− updateScript = gnome.updateScript {
156− packageName = repoName;
157− attrPath = "pantheon.${pname}";
158− };
159− };
160−
16160 meta = with lib; {
162− license = licenses.gpl2Plus;
61+ description = "Settings daemon for Pantheon";
62+ homepage = "https://github.com/elementary/settings-daemon";
63+ license = licenses.gpl3Plus;
16364 maintainers = pantheon.maintainers;
16465 platforms = platforms.linux;
16566 };
pkgs/desktops/pantheon/services/elementary-settings-daemon/elementary-dpms.patchdeleted−84
@@ -1,84 +0,0 @@
1−diff --git a/data/org.gnome.settings-daemon.plugins.power.gschema.xml.in b/data/org.gnome.settings-daemon.plugins.power.gschema.xml.in
2−index ec805d8a..cf0d6793 100644
3−--- a/data/org.gnome.settings-daemon.plugins.power.gschema.xml.in
4−+++ b/data/org.gnome.settings-daemon.plugins.power.gschema.xml.in
5−@@ -11,6 +11,11 @@
6− <summary>Activation of this plugin</summary>
7− <description>Whether this plugin would be activated by unity-settings-daemon or not</description>
8− </key>
9−+ <key name="manage-dpms-defaults" type="b">
10−+ <default>false</default>
11−+ <summary>Reset X DPMS values</summary>
12−+ <description>Whether DPMS values will be adjusted by gnome-settings-daemon</description>
13−+ </key>
14− <key name="idle-brightness" type="i">
15− <default>30</default>
16− <summary>The brightness of the screen when idle</summary>
17−diff --git a/plugins/power/gpm-common.c b/plugins/power/gpm-common.c
18−index a7ca87fb..a56a7cdc 100644
19−--- a/plugins/power/gpm-common.c
20−+++ b/plugins/power/gpm-common.c
21−@@ -280,6 +280,18 @@ disable_builtin_screensaver (gpointer unused)
22− return TRUE;
23− }
24−
25−+gboolean
26−+manage_dpms (void)
27−+{
28−+ GSettings *settings;
29−+ gboolean manage_dpms_defaults;
30−+
31−+ settings = g_settings_new ("org.gnome.settings-daemon.plugins.power");
32−+ manage_dpms_defaults = g_settings_get_boolean (settings, "manage-dpms-defaults");
33−+ g_object_unref (settings);
34−+ return manage_dpms_defaults;
35−+}
36−+
37− guint
38− gsd_power_enable_screensaver_watchdog (void)
39− {
40−@@ -290,7 +302,7 @@ gsd_power_enable_screensaver_watchdog (void)
41− * way. The defaults are now applied in Fedora 20 from
42− * being "0" by default to being "600" by default */
43− gdk_x11_display_error_trap_push (gdk_display_get_default ());
44−- if (DPMSQueryExtension(GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), &dummy, &dummy))
45−+ if (manage_dpms () && DPMSQueryExtension(GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), &dummy, &dummy))
46− DPMSSetTimeouts (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), 0, 0, 0);
47− gdk_x11_display_error_trap_pop_ignored (gdk_display_get_default ());
48− id = g_timeout_add_seconds (XSCREENSAVER_WATCHDOG_TIMEOUT,
49−diff --git a/plugins/power/gpm-common.h b/plugins/power/gpm-common.h
50−index 88a8e00e..af106479 100644
51−--- a/plugins/power/gpm-common.h
52−+++ b/plugins/power/gpm-common.h
53−@@ -34,6 +34,7 @@ gchar *gpm_get_timestring (guint time);
54− gboolean gsd_power_is_hardware_a_vm (void);
55− guint gsd_power_enable_screensaver_watchdog (void);
56− void reset_idletime (void);
57−+gboolean manage_dpms (void);
58−
59− /* Backlight helpers */
60−
61−diff --git a/plugins/power/gsd-power-manager.c b/plugins/power/gsd-power-manager.c
62−index c500fa38..445496ee 100644
63−--- a/plugins/power/gsd-power-manager.c
64−+++ b/plugins/power/gsd-power-manager.c
65−@@ -1033,6 +1033,9 @@ backlight_enable (GsdPowerManager *manager)
66− gboolean ret;
67− GError *error = NULL;
68−
69−+ if (!(manage_dpms ()))
70−+ return;
71−+
72− iio_proxy_claim_light (manager, TRUE);
73− ret = gnome_rr_screen_set_dpms_mode (manager->rr_screen,
74− GNOME_RR_DPMS_ON,
75−@@ -1052,6 +1055,9 @@ backlight_disable (GsdPowerManager *manager)
76− gboolean ret;
77− GError *error = NULL;
78−
79−+ if (!(manage_dpms ()))
80−+ return;
81−+
82− iio_proxy_claim_light (manager, FALSE);
83− ret = gnome_rr_screen_set_dpms_mode (manager->rr_screen,
84− GNOME_RR_DPMS_OFF,
pkgs/desktops/pantheon/services/elementary-settings-daemon/global-backlight-helper.patchdeleted−26
@@ -1,26 +0,0 @@
1−diff --git a/plugins/power/gsd-backlight.c b/plugins/power/gsd-backlight.c
2−index d7d10fd2..5619d6ad 100644
3−--- a/plugins/power/gsd-backlight.c
4−+++ b/plugins/power/gsd-backlight.c
5−@@ -358,7 +358,7 @@ gsd_backlight_run_set_helper (GsdBacklight *backlight, GTask *task)
6− proc = g_subprocess_new (G_SUBPROCESS_FLAGS_STDOUT_SILENCE,
7− &error,
8− "pkexec",
9−- LIBEXECDIR "/gsd-backlight-helper",
10−+ "/run/current-system/sw/bin/elementary-settings-daemon/gsd-backlight-helper",
11− g_udev_device_get_sysfs_path (backlight->udev_device),
12− data->value_str, NULL);
13− } else {
14−diff --git a/plugins/power/org.gnome.settings-daemon.plugins.power.policy.in.in b/plugins/power/org.gnome.settings-daemon.plugins.power.policy.in.in
15−index f16300f8..79d6bd17 100644
16−--- a/plugins/power/org.gnome.settings-daemon.plugins.power.policy.in.in
17−+++ b/plugins/power/org.gnome.settings-daemon.plugins.power.policy.in.in
18−@@ -25,7 +25,7 @@
19− <allow_inactive>no</allow_inactive>
20− <allow_active>yes</allow_active>
21− </defaults>
22−- <annotate key="org.freedesktop.policykit.exec.path">@libexecdir@/gsd-backlight-helper</annotate>
23−+ <annotate key="org.freedesktop.policykit.exec.path">/run/current-system/sw/bin/elementary-settings-daemon/gsd-backlight-helper</annotate>
24− </action>
25−
26− </policyconfig>
pkgs/desktops/pantheon/services/pantheon-agent-geoclue2/default.nix+2−2
@@ -16,13 +16,13 @@
1616
1717stdenv.mkDerivation rec {
1818 pname = "pantheon-agent-geoclue2";
19− version = "1.0.4";
19+ version = "1.0.5";
2020
2121 src = fetchFromGitHub {
2222 owner = "elementary";
2323 repo = pname;
2424 rev = version;
25− sha256 = "sha256-LrDu9NczSKN9YLo922MqYbcHG1QAwzXUb7W0Q/g9ftI=";
25+ sha256 = "0hx3sky0vd2vshkscy3w5x3s18gd45cfqh510xhbmvc0sa32q9gd";
2626 };
2727
2828 passthru = {
pkgs/desktops/pantheon/services/pantheon-agent-polkit/default.nix+2−2
@@ -15,13 +15,13 @@
1515
1616stdenv.mkDerivation rec {
1717 pname = "pantheon-agent-polkit";
18− version = "1.0.3";
18+ version = "1.0.4";
1919
2020 src = fetchFromGitHub {
2121 owner = "elementary";
2222 repo = pname;
2323 rev = version;
24− sha256 = "sha256-YL1LHnPH7pP0EW9IkjdSEX+VuaAF9uNyFbl47vjVps0=";
24+ sha256 = "1acqjjarl225yk0f68wkldsamcrzrj0ibpcxma04wq9w7jlmz60c";
2525 };
2626
2727 passthru = {
pkgs/development/libraries/cmark-gfm/default.nix+2−2
@@ -1,13 +1,13 @@
11{ lib, stdenv, fetchFromGitHub, cmake }:
22stdenv.mkDerivation rec {
33 pname = "cmark-gfm";
4− version = "0.29.0.gfm.1";
4+ version = "0.29.0.gfm.2";
55
66 src = fetchFromGitHub {
77 owner = "github";
88 repo = "cmark-gfm";
99 rev = version;
10− sha256 = "sha256-GxWA5CjdXPBh1BJzENIijPDCoth0BTNu5ayX0cXT5z0=";
10+ sha256 = "sha256-8PjG87hR66ozKx+PSuKi0vHIoKICHSLdl2cKUYf+5m8=";
1111 };
1212
1313 nativeBuildInputs = [ cmake ];
pkgs/development/libraries/intel-gmmlib/default.nix+2−2
@@ -6,13 +6,13 @@
66
77stdenv.mkDerivation rec {
88 pname = "intel-gmmlib";
9− version = "21.2.2";
9+ version = "21.3.1";
1010
1111 src = fetchFromGitHub {
1212 owner = "intel";
1313 repo = "gmmlib";
1414 rev = "${pname}-${version}";
15− sha256 = "134l0d74ai4mqlp244nvkvg3mgzbzy20mjd274yay8g8hvb1g90v";
15+ sha256 = "0dzqfgbd0fxl8rxgf5nmj1jd4izzaqfb0s53l96qwz1j57q5ybj5";
1616 };
1717
1818 nativeBuildInputs = [ cmake ];
pkgs/development/libraries/memorymapping/default.nix+3−1
@@ -37,7 +37,9 @@ stdenv.mkDerivation {
3737 description = "fmemopen for Mac OS and iOS";
3838 license = licenses.asl20;
3939 maintainers = with maintainers; [ veprbl ];
40− platforms = platforms.unix;
40+ # Uses BSD-style funopen() to implement glibc-style fmemopen().
41+ # Add more BSDs if you need to.
42+ platforms = platforms.darwin;
4143 broken = stdenv.isAarch64;
4244 };
4345}
pkgs/development/libraries/rdkafka/default.nix+2−2
@@ -2,13 +2,13 @@
22
33stdenv.mkDerivation rec {
44 pname = "rdkafka";
5− version = "1.7.0";
5+ version = "1.8.0";
66
77 src = fetchFromGitHub {
88 owner = "edenhill";
99 repo = "librdkafka";
1010 rev = "v${version}";
11− sha256 = "sha256-NLlg9S3bn5rAFyRa1ETeQGhFJYb/1y2ZiDylOy7xNbY=";
11+ sha256 = "sha256-LTO27UQqGHOEOXaw2Aln1i37ZaXIAKK8r7P2WAx8nIQ=";
1212 };
1313
1414 nativeBuildInputs = [ pkg-config python3 ];
pkgs/development/libraries/science/math/openlibm/default.nix+2−2
@@ -2,10 +2,10 @@
22
33stdenv.mkDerivation rec {
44 pname = "openlibm";
5− version = "0.7.5";
5+ version = "0.8.0";
66 src = fetchurl {
77 url = "https://github.com/JuliaLang/openlibm/archive/v${version}.tar.gz";
8− sha256 = "sha256-vpg7nh5A5pbou7frj2N208oK5nWubYKTZUA4Ww7uwVs=";
8+ sha256 = "sha256-A2IHaN9MpSamPdZ1xt6VpcnRZ/9ZVVzlemHGv0nkAO4=";
99 };
1010
1111 makeFlags = [ "prefix=$(out)" ];
pkgs/development/ocaml-modules/omd/default.nix+5−1
@@ -11,7 +11,11 @@ stdenv.mkDerivation {
1111
1212 createFindlibDestdir = true;
1313
14− configurePhase = "ocaml setup.ml -configure --prefix $out";
14+ configurePhase = ''
15+ runHook preConfigure
16+ ocaml setup.ml -configure --prefix $out
17+ runHook postConfigure
18+ '';
1519
1620 meta = {
1721 description = "Extensible Markdown library and tool in OCaml";
pkgs/development/python-modules/aiobotocore/default.nix+1−1
@@ -21,7 +21,7 @@ buildPythonPackage rec {
2121 # relax version constraints: aiobotocore works with newer botocore versions
2222 # the pinning used to match some `extras_require` we're not using.
2323 postPatch = ''
24− substituteInPlace setup.py --replace 'botocore>=1.20.49,<1.20.50' 'botocore'
24+ substituteInPlace setup.py --replace 'botocore>=1.20.106,<1.20.107' 'botocore'
2525 '';
2626
2727 propagatedBuildInputs = [ wrapt aiohttp aioitertools botocore ];
pkgs/development/python-modules/hdate/default.nix+2−2
@@ -10,7 +10,7 @@
1010
1111buildPythonPackage rec {
1212 pname = "hdate";
13− version = "0.10.3";
13+ version = "0.10.4";
1414 disabled = pythonOlder "3.6";
1515 format = "pyproject";
1616
@@ -18,7 +18,7 @@ buildPythonPackage rec {
1818 owner = "py-libhdate";
1919 repo = "py-libhdate";
2020 rev = "v${version}";
21− sha256 = "sha256-6rOsG6qgq4woBhj25SNWvKshvFLBL/6MJiBZb+NPvdk=";
21+ sha256 = "sha256-NF2ZA9ruW7sL2tLY11VAtyPRxGg2o5/mpv3ZsH/Zxb8=";
2222 };
2323
2424 nativeBuildInputs = [
pkgs/development/python-modules/pook/default.nix+2−12
@@ -2,7 +2,6 @@
22, aiohttp
33, buildPythonPackage
44, fetchFromGitHub
5−, fetchpatch
65, furl
76, jsonschema
87, nose
@@ -14,25 +13,16 @@
1413
1514buildPythonPackage rec {
1615 pname = "pook";
17− version = "1.0.1";
16+ version = "1.0.2";
1817 disabled = pythonOlder "3.5";
1918
2019 src = fetchFromGitHub {
2120 owner = "h2non";
2221 repo = pname;
2322 rev = "v${version}";
24− sha256 = "0z48vswj07kr2sdvq5qzrwqyijpmj2rlnh2z2b32id1mckr6nnz8";
23+ sha256 = "sha256-4OGcnuajGdBRlXCYwbTK/zLNQRrir60qCYajHRRCpkU=";
2524 };
2625
27− patches = [
28− (fetchpatch {
29− # Will be fixed with the new release, https://github.com/h2non/pook/issues/69
30− name = "use-match-keyword-in-pytest.patch";
31− url = "https://github.com/h2non/pook/commit/2071da27701c82ce02b015e01e2aa6fd203e7bb5.patch";
32− sha256 = "0i3qcpbdqqsnbygi46dyqamgkh9v8rhpbm4lkl75riw48j4n080k";
33− })
34− ];
35−
3626 propagatedBuildInputs = [
3727 aiohttp
3828 furl
pkgs/development/python-modules/pyturbojpeg/default.nix+2−2
@@ -10,12 +10,12 @@
1010
1111buildPythonPackage rec {
1212 pname = "pyturbojpeg";
13− version = "1.5.1";
13+ version = "1.5.4";
1414
1515 src = fetchPypi {
1616 pname = "PyTurboJPEG";
1717 inherit version;
18− sha256 = "sha256-56FnJpnQzFPlz0v506CrwIHf9uV3R1LibnuEL7RcFCg=";
18+ sha256 = "sha256-KU24J6iU2y8iLyxjJiuh6Zqx+t1PVBrleOf/mWnfA4I=";
1919 };
2020
2121 patches = [
pkgs/development/tools/pscale/default.nix+3−3
@@ -2,16 +2,16 @@
22
33buildGoModule rec {
44 pname = "pscale";
5− version = "0.68.0";
5+ version = "0.72.0";
66
77 src = fetchFromGitHub {
88 owner = "planetscale";
99 repo = "cli";
1010 rev = "v${version}";
11− sha256 = "sha256-SAKbz33Fpi3sQcqwD2UK5wloJqNs2HohsiGMl1gkfA0=";
11+ sha256 = "sha256-+T1C7qLXSmdpx9uHFK3o4hzaAImd5or/MkE3PB8ZiAs=";
1212 };
1313
14− vendorSha256 = "sha256-dEkCJe6qiyB/pNh78o2/TTRmWQDsUV2TsXiuchC1JLA=";
14+ vendorSha256 = "sha256-7VtDAln/uGalio0pcpqh8XLC0+72dokF+4SmuhPF8AY=";
1515
1616 meta = with lib; {
1717 homepage = "https://www.planetscale.com/";
pkgs/development/tools/stylua/default.nix+3−3
@@ -8,16 +8,16 @@
88
99rustPlatform.buildRustPackage rec {
1010 pname = "stylua";
11− version = "0.10.1";
11+ version = "0.11.0";
1212
1313 src = fetchFromGitHub {
1414 owner = "johnnymorganz";
1515 repo = pname;
1616 rev = "v${version}";
17− sha256 = "12vflwk1h5ahamxiiaznx3k1ldi8il0adwb2rl58swmvfzbcm7y9";
17+ sha256 = "sha256-mHmLwgAyLEWfhSVy7WmJN1Z5BdA+3hoHujbKn2Q9fxI=";
1818 };
1919
20− cargoSha256 = "1glkfxz9apmsqbyl8fy5gwywbr6k7cv0l47w2nfimg92qn9xzgks";
20+ cargoSha256 = "sha256-1aze1U6NrL8KPK5v5NYCdyTTqoczkg32xR5V0jApQWw=";
2121
2222 cargoBuildFlags = lib.optionals lua52Support [ "--features" "lua52" ]
2323 ++ lib.optionals luauSupport [ "--features" "luau" ];
pkgs/development/tools/trunk/default.nix+6−3
@@ -3,13 +3,13 @@
33
44rustPlatform.buildRustPackage rec {
55 pname = "trunk";
6− version = "0.10.0";
6+ version = "0.13.1";
77
88 src = fetchFromGitHub {
99 owner = "thedodd";
1010 repo = "trunk";
1111 rev = "v${version}";
12− sha256 = "W6d05MKquG1QFkvofqWk94+6j5q8yuAjNgZFG3Z3kNo=";
12+ sha256 = "sha256-pFF3x4vfouqO49q+MVyvYS40cH8cVn4yB61o14K6ABY=";
1313 };
1414
1515 nativeBuildInputs = [ pkg-config ];
@@ -17,7 +17,10 @@ rustPlatform.buildRustPackage rec {
1717 then [ libiconv CoreServices Security ]
1818 else [ openssl ];
1919
20− cargoSha256 = "sha256-0ehz0ETNA2gOvTJUu8uq5H+bv4VXOJMq6AA8kn65m/Q=";
20+ # requires network
21+ checkFlags = [ "--skip=tools::tests::download_and_install_binaries" ];
22+
23+ cargoSha256 = "sha256-Faj0xZkGTs5z5vMfr2BwN1/xm5vopewI9ZWkOhyPq9c=";
2124
2225 meta = with lib; {
2326 homepage = "https://github.com/thedodd/trunk";
pkgs/misc/vim-plugins/generated.nix+237−225
@@ -77,12 +77,12 @@ final: prev:
7777
7878 ale = buildVimPluginFrom2Nix {
7979 pname = "ale";
80− version = "2021-09-11";
80+ version = "2021-09-17";
8181 src = fetchFromGitHub {
8282 owner = "dense-analysis";
8383 repo = "ale";
84− rev = "19437e25d05950ab83dce285b4b8ec5166e06dba";
85− sha256 = "1pc99l00ir145b0i7g1m857v1318ji1p8bzhs0cmql0hdp4cvyd3";
84+ rev = "2f72a3ed1972d23a5ef50c78715ec68f090932e8";
85+ sha256 = "1vjg0y02cnnknjgj0zp9f4s84y7dbcy80aw1jp6qizb6cfbkv39v";
8686 };
8787 meta.homepage = "https://github.com/dense-analysis/ale/";
8888 };
@@ -197,12 +197,12 @@ final: prev:
197197
198198 aurora = buildVimPluginFrom2Nix {
199199 pname = "aurora";
200− version = "2021-07-17";
200+ version = "2021-09-17";
201201 src = fetchFromGitHub {
202202 owner = "ray-x";
203203 repo = "aurora";
204− rev = "af110b7f6080bdc4685cdd5551ba1f79a81910f1";
205− sha256 = "1h2czb183lliib95jn4dxq8cn713s22dc4hd1cj19bzqy4j39qhi";
204+ rev = "b88f898bce9abd381f80d12388cf4ae34057b484";
205+ sha256 = "0lfn87i8vd7pczv75f0lrfa1x3cg420xqydhyiq3b6vii4x30d3g";
206206 };
207207 meta.homepage = "https://github.com/ray-x/aurora/";
208208 };
@@ -389,12 +389,12 @@ final: prev:
389389
390390 bufferline-nvim = buildVimPluginFrom2Nix {
391391 pname = "bufferline.nvim";
392− version = "2021-09-12";
392+ version = "2021-09-16";
393393 src = fetchFromGitHub {
394394 owner = "akinsho";
395395 repo = "bufferline.nvim";
396− rev = "15923279b719ce77911caf34e5f4c83a0b5397c9";
397− sha256 = "0rmmr0c2jxsl4b4dzs0jdp3dinldczw3s6mnf80k4jvswy28rd9h";
396+ rev = "be5866b77c713d92cf3d383a387bec1d55e3f798";
397+ sha256 = "1v4fw3idhbhnnnn08zw92g7pyb2x5ss8zbi7hfbxvn5jkpzyqz6p";
398398 };
399399 meta.homepage = "https://github.com/akinsho/bufferline.nvim/";
400400 };
@@ -413,12 +413,12 @@ final: prev:
413413
414414 calendar-vim = buildVimPluginFrom2Nix {
415415 pname = "calendar.vim";
416− version = "2021-01-30";
416+ version = "2021-09-14";
417417 src = fetchFromGitHub {
418418 owner = "itchyny";
419419 repo = "calendar.vim";
420− rev = "4e454c2ca9a489f2631df24845615744bd594b61";
421− sha256 = "12vmysyvavvf1173i0m7jfzh2jsfqx5p7mdm3iafg4iv0209rz66";
420+ rev = "4eeddc2500d5907c71d3e0fe74dd7c93477b4772";
421+ sha256 = "1gyia0z39288lgcjjq9l6myd578m4xgzh15pz0yznzcs7d90b1xr";
422422 };
423423 meta.homepage = "https://github.com/itchyny/calendar.vim/";
424424 };
@@ -437,24 +437,24 @@ final: prev:
437437
438438 caw-vim = buildVimPluginFrom2Nix {
439439 pname = "caw.vim";
440− version = "2021-08-21";
440+ version = "2021-09-16";
441441 src = fetchFromGitHub {
442442 owner = "tyru";
443443 repo = "caw.vim";
444− rev = "2c0cd18aa113cc255daf4366f1d01a7a25ce0110";
445− sha256 = "1sa7mhqvfgyr3fsdyl9bjb7scw8ii4y9ig4n3qq77lm4k7snzp2v";
444+ rev = "8978f977a2a80396ab3a536a0df0a3727fca9882";
445+ sha256 = "0rskyi56rhq6l3iv1695xl049ji2l3y5y7fm272hyb18ggq1rzja";
446446 };
447447 meta.homepage = "https://github.com/tyru/caw.vim/";
448448 };
449449
450450 chadtree = buildVimPluginFrom2Nix {
451451 pname = "chadtree";
452− version = "2021-09-13";
452+ version = "2021-09-17";
453453 src = fetchFromGitHub {
454454 owner = "ms-jpq";
455455 repo = "chadtree";
456− rev = "356863bbe896fbea6450b652c60a27b0a1cb3dbd";
457− sha256 = "0s4vhw8qkg89a9afy9mqa42sl95dmapaqqhzz6gxvamqbk6kgj6y";
456+ rev = "df56f5c804e133fe7438782dcc9e915dd53fe417";
457+ sha256 = "19hs0mbcyjaln8y5bx4rg3n1cpsnwb5rnccaacrj8822c9lk6yz8";
458458 };
459459 meta.homepage = "https://github.com/ms-jpq/chadtree/";
460460 };
@@ -581,12 +581,12 @@ final: prev:
581581
582582 cmp-conjure = buildVimPluginFrom2Nix {
583583 pname = "cmp-conjure";
584− version = "2021-08-29";
584+ version = "2021-09-10";
585585 src = fetchFromGitHub {
586586 owner = "PaterJason";
587587 repo = "cmp-conjure";
588− rev = "4c2a2233de7d2c8ccbf8652b4c741921498ceaec";
589− sha256 = "1ivrag7gch7mc72rim939z5gh7v532j29hgiy0pxgw3m6lvxdhwq";
588+ rev = "27cfdac78ec099a8d1e82b7a810f451ff0f80a30";
589+ sha256 = "1hbkafpqpzf4bzy8cyzg1zxnnpmhfkpz2vj8v8by5ym4qx8b747p";
590590 };
591591 meta.homepage = "https://github.com/PaterJason/cmp-conjure/";
592592 };
@@ -617,12 +617,12 @@ final: prev:
617617
618618 cmp-nvim-lsp = buildVimPluginFrom2Nix {
619619 pname = "cmp-nvim-lsp";
620− version = "2021-09-03";
620+ version = "2021-09-17";
621621 src = fetchFromGitHub {
622622 owner = "hrsh7th";
623623 repo = "cmp-nvim-lsp";
624− rev = "f6f471898bc4b45eacd36eef9887847b73130e0e";
625− sha256 = "1asr32w5q618pqggq9jwrbqs4kjp3ssbw5pca5wc7j2496vm2lhg";
624+ rev = "246a41c55668d5f84afcd805ee73b6e419375ae0";
625+ sha256 = "0ybnrs31i61l6z02fjz65ankxccd5587pnky4lsczcz12kpj6s4n";
626626 };
627627 meta.homepage = "https://github.com/hrsh7th/cmp-nvim-lsp/";
628628 };
@@ -689,12 +689,12 @@ final: prev:
689689
690690 cmp_luasnip = buildVimPluginFrom2Nix {
691691 pname = "cmp_luasnip";
692− version = "2021-09-11";
692+ version = "2021-09-13";
693693 src = fetchFromGitHub {
694694 owner = "saadparwaiz1";
695695 repo = "cmp_luasnip";
696− rev = "7284dd6ee87b05203932db6f9d28516efa5dc981";
697− sha256 = "0wffibd4vfmgrhwzymfqkqn8klvv0mhgbjkzjgxl15hpxhz62i5d";
696+ rev = "e22fe57aec4f9e7029b8e547657fbee1b16cbaf7";
697+ sha256 = "0fkzxhs8gj5vbcbs2s8n66fjzmrxvzh1bn3kxijszmcm706d3nyq";
698698 };
699699 meta.homepage = "https://github.com/saadparwaiz1/cmp_luasnip/";
700700 };
@@ -882,12 +882,12 @@ final: prev:
882882
883883 compe-tabnine = buildVimPluginFrom2Nix {
884884 pname = "compe-tabnine";
885− version = "2021-09-04";
885+ version = "2021-09-14";
886886 src = fetchFromGitHub {
887887 owner = "tzachar";
888888 repo = "compe-tabnine";
889− rev = "b00e1f9d597673bfcba39b6bfc620cea9e6c815a";
890− sha256 = "0ryj8b60vvxb1q58xyv4hgrc1d7rjsbr21wn677xr13836knb5bw";
889+ rev = "33e4af509c27da9ef2c9c3002c01e3ec031797d4";
890+ sha256 = "1lzyia2s66kcxpr6d3db4rcgxlcddfg6gpz8rbg333hdasly383w";
891891 };
892892 meta.homepage = "https://github.com/tzachar/compe-tabnine/";
893893 };
@@ -1062,12 +1062,12 @@ final: prev:
10621062
10631063 crates-nvim = buildVimPluginFrom2Nix {
10641064 pname = "crates.nvim";
1065− version = "2021-09-06";
1065+ version = "2021-09-16";
10661066 src = fetchFromGitHub {
10671067 owner = "saecki";
10681068 repo = "crates.nvim";
1069− rev = "736033d59b2940e35565ae37c3fd5cb024c2a134";
1070− sha256 = "09v5frr2mlqgvdw1kswv0r683xvg0j3k4wm3h00m0r929prqd6ll";
1069+ rev = "d15c2f28d10ed5f299933e812598a1206e4fc4ef";
1070+ sha256 = "1y3qisxd85yfqrn9jdb4g1pf97p62lyp6253g9p127zcdkb3w4g0";
10711071 };
10721072 meta.homepage = "https://github.com/saecki/crates.nvim/";
10731073 };
@@ -1194,12 +1194,12 @@ final: prev:
11941194
11951195 defx-nvim = buildVimPluginFrom2Nix {
11961196 pname = "defx.nvim";
1197− version = "2021-09-09";
1197+ version = "2021-09-16";
11981198 src = fetchFromGitHub {
11991199 owner = "Shougo";
12001200 repo = "defx.nvim";
1201− rev = "7db19db1b1b6a82b763331b1719151a927d494e6";
1202− sha256 = "1v435j2qm395kvrq1vcrg4i76av2nzp5vywlhq4mk54q9gmb5xlp";
1201+ rev = "c8fda6d67c0b345163db03d6f2b6d24c96f85b44";
1202+ sha256 = "1dg0rsxk0s77qdlgzfqz5dkrv4hgw9xhv325ivdxd1vnainihxnz";
12031203 };
12041204 meta.homepage = "https://github.com/Shougo/defx.nvim/";
12051205 };
@@ -1254,12 +1254,12 @@ final: prev:
12541254
12551255 deol-nvim = buildVimPluginFrom2Nix {
12561256 pname = "deol.nvim";
1257− version = "2021-09-09";
1257+ version = "2021-09-13";
12581258 src = fetchFromGitHub {
12591259 owner = "Shougo";
12601260 repo = "deol.nvim";
1261− rev = "9859e06d7a478eb3c2d26ca0270501581bd95a0b";
1262− sha256 = "1r6hr0lfbhdl86a5k2vy3vaiqnnl9pgvgpak0lvswrjzjkz4nn7h";
1261+ rev = "03b772ed3e91b8bdbf5260d76f84c5e90a42a8f0";
1262+ sha256 = "0nbwb2kcmd88zqk1v1zndbrjfpsj5jy99bzm81sx5k9yslhl854n";
12631263 };
12641264 meta.homepage = "https://github.com/Shougo/deol.nvim/";
12651265 };
@@ -1592,12 +1592,12 @@ final: prev:
15921592
15931593 echodoc-vim = buildVimPluginFrom2Nix {
15941594 pname = "echodoc.vim";
1595− version = "2021-08-12";
1595+ version = "2021-09-16";
15961596 src = fetchFromGitHub {
15971597 owner = "Shougo";
15981598 repo = "echodoc.vim";
1599− rev = "3e907e05d0495f999149f50a1e6cd72972ee7cbe";
1600− sha256 = "0bdiz108l4aa5ma49lbmmp8ks8n17i6wzjsawd94rgsyl3j4j3ri";
1599+ rev = "b77548dcebf3a3324fec44ba361f3cd8dbe89f18";
1600+ sha256 = "0fqd3fqfg7zri0y4mm0d4rpp87wjf8kpy0gphkha5r4lpd2mjgv4";
16011601 };
16021602 meta.homepage = "https://github.com/Shougo/echodoc.vim/";
16031603 };
@@ -1629,12 +1629,12 @@ final: prev:
16291629
16301630 editorconfig-nvim = buildVimPluginFrom2Nix {
16311631 pname = "editorconfig.nvim";
1632− version = "2021-09-02";
1632+ version = "2021-09-15";
16331633 src = fetchFromGitHub {
16341634 owner = "gpanders";
16351635 repo = "editorconfig.nvim";
1636− rev = "d9df2225615071bec85e5956a146ae0fabc960f6";
1637− sha256 = "02jjzmgjcaqvgnfnc81xnqfsgfnyyv9mv1xjz6s4vm823gmhi2li";
1636+ rev = "4ebcc2fa7c2663d29df6ccffa5be95b8f266a138";
1637+ sha256 = "13lwv7f0c6sgmpgxx07dpqc59czv69qz30jkgz2dsvjdnd6rvzif";
16381638 };
16391639 meta.homepage = "https://github.com/gpanders/editorconfig.nvim/";
16401640 };
@@ -1762,12 +1762,12 @@ final: prev:
17621762
17631763 feline-nvim = buildVimPluginFrom2Nix {
17641764 pname = "feline.nvim";
1765− version = "2021-09-12";
1765+ version = "2021-09-17";
17661766 src = fetchFromGitHub {
17671767 owner = "famiu";
17681768 repo = "feline.nvim";
1769− rev = "0506b42b11e9ef6c5c9a3710cb29f8829b33aaa8";
1770− sha256 = "17c8fm8yjzic6ys5p6cy3dkpxjlqp1ziqx537wdqylfa9q177gbg";
1769+ rev = "5d152e2cc28c172b42f4caba8baf0973f6a6ece6";
1770+ sha256 = "0mzvh62zphb35kjzx9d09k7sak6fqsk1lcmycgjxk4kydjiw68za";
17711771 };
17721772 meta.homepage = "https://github.com/famiu/feline.nvim/";
17731773 };
@@ -1883,12 +1883,12 @@ final: prev:
18831883
18841884 formatter-nvim = buildVimPluginFrom2Nix {
18851885 pname = "formatter.nvim";
1886− version = "2021-08-27";
1886+ version = "2021-09-15";
18871887 src = fetchFromGitHub {
18881888 owner = "mhartington";
18891889 repo = "formatter.nvim";
1890− rev = "c80405aca78fda2f8da586d7d087c13fdd500d85";
1891− sha256 = "07s7yw0l9xbf55x67yqcxi5r1y9nj5pjx69rl38jffw1l6lnnbgj";
1890+ rev = "42aa771f34843f1583be98bfabc8f4a71f20a001";
1891+ sha256 = "0zrrsisil9z1w6xcf9r5f52w0mnhv9qcl3zsl5c2hkw8ar7im27j";
18921892 };
18931893 meta.homepage = "https://github.com/mhartington/formatter.nvim/";
18941894 };
@@ -1907,12 +1907,12 @@ final: prev:
19071907
19081908 friendly-snippets = buildVimPluginFrom2Nix {
19091909 pname = "friendly-snippets";
1910− version = "2021-09-11";
1910+ version = "2021-09-16";
19111911 src = fetchFromGitHub {
19121912 owner = "rafamadriz";
19131913 repo = "friendly-snippets";
1914− rev = "9b1804bf6b6db18b1e056a92e0e03ddecff8e721";
1915− sha256 = "08gvxbq8i6hw4s2h6d68bdb27gm97sxj00zcamhpj6gi2h4wbzwl";
1914+ rev = "31cdf6ab00898ae80e2bfe870378a499697da725";
1915+ sha256 = "0iafqh05h3v5bnvigrb6bnv0sn6lps64blqfnksr35i60yljw878";
19161916 };
19171917 meta.homepage = "https://github.com/rafamadriz/friendly-snippets/";
19181918 };
@@ -1931,16 +1931,28 @@ final: prev:
19311931
19321932 fugitive-gitlab-vim = buildVimPluginFrom2Nix {
19331933 pname = "fugitive-gitlab.vim";
1934− version = "2021-09-07";
1934+ version = "2021-09-14";
19351935 src = fetchFromGitHub {
19361936 owner = "shumphrey";
19371937 repo = "fugitive-gitlab.vim";
1938− rev = "befd5438ad55a80c6abb415f6c5a9a44275550bc";
1939− sha256 = "1m57c11b7q1sv6va0xzikha19bck6rgr539sjhnhppdy7nlk55lw";
1938+ rev = "36155d4b9f7a7abc2e6e94936952c661314f141f";
1939+ sha256 = "1y0fpzgrqvnk2bgks1icbidc60z07syiaf8912rncmx4pdc2gzv1";
19401940 };
19411941 meta.homepage = "https://github.com/shumphrey/fugitive-gitlab.vim/";
19421942 };
19431943
1944+ futhark-vim = buildVimPluginFrom2Nix {
1945+ pname = "futhark-vim";
1946+ version = "2021-08-24";
1947+ src = fetchFromGitHub {
1948+ owner = "BeneCollyridam";
1949+ repo = "futhark-vim";
1950+ rev = "fd7d053c74f150712eaa73999f44a3f95c8f08ff";
1951+ sha256 = "17iwpqxkvflcimc066n5ljjbx603hpaqzk271r37qxdvk58jpn0w";
1952+ };
1953+ meta.homepage = "https://github.com/BeneCollyridam/futhark-vim/";
1954+ };
1955+
19441956 fwatch-nvim = buildVimPluginFrom2Nix {
19451957 pname = "fwatch.nvim";
19461958 version = "2021-07-25";
@@ -1967,24 +1979,24 @@ final: prev:
19671979
19681980 fzf-lsp-nvim = buildVimPluginFrom2Nix {
19691981 pname = "fzf-lsp.nvim";
1970− version = "2021-09-11";
1982+ version = "2021-09-14";
19711983 src = fetchFromGitHub {
19721984 owner = "gfanto";
19731985 repo = "fzf-lsp.nvim";
1974− rev = "a08c0417fb910e06ad08d13bc8f9c12848722618";
1975− sha256 = "1m5khwj4mbhrhzs5yxipnzja1av9vvnpb460axswcdji9w0niv9y";
1986+ rev = "8757eccc3948aa6107448d7fee2de226f0b7040b";
1987+ sha256 = "0fjjwqkb5xl2prk8im8ndci73zlaaazr5x92aa69qvsjkbzvq7fw";
19761988 };
19771989 meta.homepage = "https://github.com/gfanto/fzf-lsp.nvim/";
19781990 };
19791991
19801992 fzf-vim = buildVimPluginFrom2Nix {
19811993 pname = "fzf.vim";
1982− version = "2021-09-02";
1994+ version = "2021-09-16";
19831995 src = fetchFromGitHub {
19841996 owner = "junegunn";
19851997 repo = "fzf.vim";
1986− rev = "980cd074395110964b66bfbc5c1f1ee237be3c86";
1987− sha256 = "0wpih3xcyr6nnmpqfikp47ay2pmxp1lr0fp7fxwql8sfjc29i76r";
1998+ rev = "bd703a7a7d7afd113634a346290acc27dd314bfc";
1999+ sha256 = "1q4kdcnwyivwddgn3svvi0zp9n1hbx0bfnfrzdfn327kgljsdfnr";
19882000 };
19892001 meta.homepage = "https://github.com/junegunn/fzf.vim/";
19902002 };
@@ -2123,12 +2135,12 @@ final: prev:
21232135
21242136 gitsigns-nvim = buildVimPluginFrom2Nix {
21252137 pname = "gitsigns.nvim";
2126− version = "2021-09-11";
2138+ version = "2021-09-14";
21272139 src = fetchFromGitHub {
21282140 owner = "lewis6991";
21292141 repo = "gitsigns.nvim";
2130− rev = "cef4e6f26cd52f6a9725f0af4798b35cf6807404";
2131− sha256 = "01asl51liflhpdgmcmqw1djq24wpyhb051y87fxq6nnlyg92smpc";
2142+ rev = "42acbae18327c53b8a82011074bcb529c3c75c8a";
2143+ sha256 = "1m5wczqigx3a73a97p0qgqj5121mjawslj596jd18v5scbr39gv0";
21322144 };
21332145 meta.homepage = "https://github.com/lewis6991/gitsigns.nvim/";
21342146 };
@@ -2195,12 +2207,12 @@ final: prev:
21952207
21962208 goto-preview = buildVimPluginFrom2Nix {
21972209 pname = "goto-preview";
2198− version = "2021-09-06";
2210+ version = "2021-09-17";
21992211 src = fetchFromGitHub {
22002212 owner = "rmagatti";
22012213 repo = "goto-preview";
2202− rev = "8093ded366e2e71e87f5e40da29994187c06fce1";
2203− sha256 = "0mm7vrmibcdsxn9b89q7skc0xcm9z5fi1bv0gg3cc8kb1gislnwf";
2214+ rev = "88ebcb56214ace7f52f2a846b40ff1f3e098af35";
2215+ sha256 = "17xpdh5q62d97v5akq52b7qpfqmnvai5ggn46c0ysgl0r5cdycrv";
22042216 };
22052217 meta.homepage = "https://github.com/rmagatti/goto-preview/";
22062218 };
@@ -2447,12 +2459,12 @@ final: prev:
24472459
24482460 increment-activator = buildVimPluginFrom2Nix {
24492461 pname = "increment-activator";
2450− version = "2020-03-09";
2462+ version = "2021-09-16";
24512463 src = fetchFromGitHub {
24522464 owner = "nishigori";
24532465 repo = "increment-activator";
2454− rev = "bff5516da9103fb093ffc0dc993b8d535eacbceb";
2455− sha256 = "1swlv1mrck9s3n7fdg10c2nmlasf2fx8yfk01x3vii7l4aaa9w2y";
2466+ rev = "55efcff88be45bd98cfdf7333dd718399373d10c";
2467+ sha256 = "0q8990q9yxc85h69hssk4lry01qiqyi0hlnnx8l1kk218yar4q6h";
24562468 };
24572469 meta.homepage = "https://github.com/nishigori/increment-activator/";
24582470 };
@@ -2483,12 +2495,12 @@ final: prev:
24832495
24842496 indent-blankline-nvim = buildVimPluginFrom2Nix {
24852497 pname = "indent-blankline.nvim";
2486− version = "2021-09-12";
2498+ version = "2021-09-15";
24872499 src = fetchFromGitHub {
24882500 owner = "lukas-reineke";
24892501 repo = "indent-blankline.nvim";
2490− rev = "0a3792cfc978ce30632bb0b10968849f1b9604eb";
2491− sha256 = "0ggxdcsdwb686rqwqga34cic94i45zp9aykqrqy13iv49gvspyxv";
2502+ rev = "aed095e367bead0784a72e946ddfa2337b59ace8";
2503+ sha256 = "0w90k6zd26a5zsfni10m509gcv7w5gfrcwx9xazhkz4bqwzc8jjr";
24922504 };
24932505 meta.homepage = "https://github.com/lukas-reineke/indent-blankline.nvim/";
24942506 };
@@ -2868,12 +2880,12 @@ final: prev:
28682880
28692881 lightline-bufferline = buildVimPluginFrom2Nix {
28702882 pname = "lightline-bufferline";
2871− version = "2021-08-19";
2883+ version = "2021-09-17";
28722884 src = fetchFromGitHub {
28732885 owner = "mengelbrecht";
28742886 repo = "lightline-bufferline";
2875− rev = "0b1ec6fbb1fceebd88694e99fbc905d916c8b30a";
2876− sha256 = "19mwdnnvps3dr5125al5yqlbziirl100xz11jkp2rbk250pc5h8d";
2887+ rev = "4d1ddf0508069395ed54e7eb38a47f04fb03a387";
2888+ sha256 = "06x3zdfss58ky5z8kgca1gq2zvdqv1nfw3mgnlsj0qq52mj0jwgj";
28772889 };
28782890 meta.homepage = "https://github.com/mengelbrecht/lightline-bufferline/";
28792891 };
@@ -2904,12 +2916,12 @@ final: prev:
29042916
29052917 lightspeed-nvim = buildVimPluginFrom2Nix {
29062918 pname = "lightspeed.nvim";
2907− version = "2021-09-11";
2919+ version = "2021-09-17";
29082920 src = fetchFromGitHub {
29092921 owner = "ggandor";
29102922 repo = "lightspeed.nvim";
2911− rev = "01909f4e4e46777ca808ce91dc1088f8aba40b45";
2912− sha256 = "00szivifmkngq14s3n58hdc3mws0hs2h4ypcykyxc9sypc44ygzs";
2923+ rev = "97d07eb3ac110ee9665eb1a634740ee0397ac59d";
2924+ sha256 = "1mrd4qj3m0qp0n82sbc6mx9zacwgfxq79g25h4yhqrf5q556zqj2";
29132925 };
29142926 meta.homepage = "https://github.com/ggandor/lightspeed.nvim/";
29152927 };
@@ -2976,12 +2988,12 @@ final: prev:
29762988
29772989 lsp-status-nvim = buildVimPluginFrom2Nix {
29782990 pname = "lsp-status.nvim";
2979− version = "2021-09-11";
2991+ version = "2021-09-15";
29802992 src = fetchFromGitHub {
29812993 owner = "nvim-lua";
29822994 repo = "lsp-status.nvim";
2983− rev = "d12d7c62efdfd9151aa1b11bebe8cd8655a61368";
2984− sha256 = "0vsfih3dn0rmnwbmrd2p0y5fw1h5ii62a9fzjvpjkgw7i9s8d4lp";
2995+ rev = "e8e5303f9ee3d8dc327c97891eaa1257ba5d4eee";
2996+ sha256 = "106l23n01czd8ndzfixggj8ifv80w0n19mjakac575sjrxhwbl52";
29852997 };
29862998 meta.homepage = "https://github.com/nvim-lua/lsp-status.nvim/";
29872999 };
@@ -3000,12 +3012,12 @@ final: prev:
30003012
30013013 lsp_signature-nvim = buildVimPluginFrom2Nix {
30023014 pname = "lsp_signature.nvim";
3003− version = "2021-09-12";
3015+ version = "2021-09-17";
30043016 src = fetchFromGitHub {
30053017 owner = "ray-x";
30063018 repo = "lsp_signature.nvim";
3007− rev = "5668ffc9b8cbe472cf0c85938e51c4a22a183da1";
3008− sha256 = "1dqy6m4lwb77zizncr0kyyra3a2ylmgiwr2hrxl3s8f4asggiy6z";
3019+ rev = "5ee2b1fff09463e22679f5f3f8040d1200d6f848";
3020+ sha256 = "18pa21ia9mvla19glf0k20l73mm8kam81xqq73ns16ww9mmql51z";
30093021 };
30103022 meta.homepage = "https://github.com/ray-x/lsp_signature.nvim/";
30113023 };
@@ -3060,12 +3072,12 @@ final: prev:
30603072
30613073 luasnip = buildVimPluginFrom2Nix {
30623074 pname = "luasnip";
3063− version = "2021-09-12";
3075+ version = "2021-09-16";
30643076 src = fetchFromGitHub {
30653077 owner = "l3mon4d3";
30663078 repo = "luasnip";
3067− rev = "80085bcf4a0f5b6a1008cac29eda9c9242b11520";
3068− sha256 = "0jlc2vnyqplzjns3av1h74kfl1jh36aqbffggd59xz2bp10jmwh3";
3079+ rev = "2b59da125dfae74953a1ce30261832d50d04b9b4";
3080+ sha256 = "0wg0lbvjgyw3mvppskf0lpmvsksdrfakn4r8lnkbfhasfs242k5b";
30693081 };
30703082 meta.homepage = "https://github.com/l3mon4d3/luasnip/";
30713083 };
@@ -3480,24 +3492,24 @@ final: prev:
34803492
34813493 neoformat = buildVimPluginFrom2Nix {
34823494 pname = "neoformat";
3483− version = "2021-09-12";
3495+ version = "2021-09-14";
34843496 src = fetchFromGitHub {
34853497 owner = "sbdchd";
34863498 repo = "neoformat";
3487− rev = "88570b2f9c42fbf7ecbaeac3c52d941c461e65b0";
3488− sha256 = "13blkgc1sfkpkrr15vgx8s2nz7np358qv9sr10znv8wjdn9wp2dd";
3499+ rev = "f072ef425be8a51d2130edeb7d773a1f8dc20313";
3500+ sha256 = "0av57z1smv6nj64d5hdqgvzcrd3h0bypi1hcl22k5zpwmaqf40m2";
34893501 };
34903502 meta.homepage = "https://github.com/sbdchd/neoformat/";
34913503 };
34923504
34933505 neogit = buildVimPluginFrom2Nix {
34943506 pname = "neogit";
3495− version = "2021-09-12";
3507+ version = "2021-09-16";
34963508 src = fetchFromGitHub {
34973509 owner = "TimUntersberger";
34983510 repo = "neogit";
3499− rev = "8d0adf5420314e98577c9a1974cf0f0f34ec16eb";
3500− sha256 = "0fl7zk81z54166428ff42dbhzz347scqaajr5qzgin20sydj66qk";
3511+ rev = "28e652d110e7bda263bd4b0cb3c1484dce89cd93";
3512+ sha256 = "0106iy1zkd13i26dviv6w8jgm9hapimpj97passh2khac3ajln5c";
35013513 };
35023514 meta.homepage = "https://github.com/TimUntersberger/neogit/";
35033515 };
@@ -3516,12 +3528,12 @@ final: prev:
35163528
35173529 neomake = buildVimPluginFrom2Nix {
35183530 pname = "neomake";
3519− version = "2021-09-07";
3531+ version = "2021-09-13";
35203532 src = fetchFromGitHub {
35213533 owner = "neomake";
35223534 repo = "neomake";
3523− rev = "053d6bd3605a64f05de11a179cbab423fe759ebe";
3524− sha256 = "0qk3bhpjqi06jj1haydalvvsj7f7jbxbb168jc6i949694v406zj";
3535+ rev = "396f27d1558df657098e81bd6a03f1add6d62cca";
3536+ sha256 = "1cqqp24703q4cf9r5aqfj35qz3fsvril6llvwcshnraawxfxl9ah";
35253537 };
35263538 meta.homepage = "https://github.com/neomake/neomake/";
35273539 };
@@ -3588,12 +3600,12 @@ final: prev:
35883600
35893601 neosnippet-vim = buildVimPluginFrom2Nix {
35903602 pname = "neosnippet.vim";
3591− version = "2021-08-22";
3603+ version = "2021-09-15";
35923604 src = fetchFromGitHub {
35933605 owner = "Shougo";
35943606 repo = "neosnippet.vim";
3595− rev = "3f6f5f8ad34d63ecb1060dbd6d7e2513238da528";
3596− sha256 = "14f0ksrn4grkpjfn766hxg1p19dryngxai33b2322dy0qaw244d2";
3607+ rev = "5d07842911b485240719b781dfd7817b85c8eb96";
3608+ sha256 = "0igrsgvaa36p42gp375w17dp9iz652lr91mmbznbbbb71d7y7l1y";
35973609 };
35983610 meta.homepage = "https://github.com/Shougo/neosnippet.vim/";
35993611 };
@@ -3624,12 +3636,12 @@ final: prev:
36243636
36253637 neovim-ayu = buildVimPluginFrom2Nix {
36263638 pname = "neovim-ayu";
3627− version = "2021-09-10";
3639+ version = "2021-09-13";
36283640 src = fetchFromGitHub {
36293641 owner = "Shatur";
36303642 repo = "neovim-ayu";
3631− rev = "441d9db65ef7fb3ced17d0d88b2114b925302ec2";
3632− sha256 = "1wmvclkrkdmx5ng6hs4yyvlvhwbbv767shsn2yqg6p5hx67sa4d2";
3643+ rev = "9841e30f2cff5b1929620565c9289eb561bae75a";
3644+ sha256 = "0h25wgv5fvkycfsvw6jb82jl3fb94fvay1ii91yqiailpwa2ig76";
36333645 };
36343646 meta.homepage = "https://github.com/Shatur/neovim-ayu/";
36353647 };
@@ -3684,12 +3696,12 @@ final: prev:
36843696
36853697 nerdtree = buildVimPluginFrom2Nix {
36863698 pname = "nerdtree";
3687− version = "2021-09-11";
3699+ version = "2021-09-15";
36883700 src = fetchFromGitHub {
36893701 owner = "preservim";
36903702 repo = "nerdtree";
3691− rev = "aa7e97b7ff2ace7ed434b09bd33f3ad449d294e9";
3692− sha256 = "0ylfls91m65hhargnv1gqlqak61qv63zldh6ri91h7nidrxi7m1m";
3703+ rev = "7eee457efae1bf9b96d7a266ac097639720a68fe";
3704+ sha256 = "0lm58labs6jr1yyax839ks67ij30ijlknf0lnwijv2alf5rzqsc2";
36933705 };
36943706 meta.homepage = "https://github.com/preservim/nerdtree/";
36953707 };
@@ -3756,12 +3768,12 @@ final: prev:
37563768
37573769 nnn-vim = buildVimPluginFrom2Nix {
37583770 pname = "nnn.vim";
3759− version = "2021-09-11";
3771+ version = "2021-09-14";
37603772 src = fetchFromGitHub {
37613773 owner = "mcchrish";
37623774 repo = "nnn.vim";
3763− rev = "07c3ccda0f4b579aa26f882bf771c6096e783e30";
3764− sha256 = "19f4m4djfs5szwc5v9zwc0ki8w59glxcv5mxps88gyns1c07qbvn";
3775+ rev = "8833bbfa7b341896cbb9f3ed9a3b4687461e6aad";
3776+ sha256 = "0ilkspfnlqflp0854gmha4v6zlnmslb83laab25a972svpqrg8pf";
37653777 };
37663778 meta.homepage = "https://github.com/mcchrish/nnn.vim/";
37673779 };
@@ -3864,12 +3876,12 @@ final: prev:
38643876
38653877 nvim-autopairs = buildVimPluginFrom2Nix {
38663878 pname = "nvim-autopairs";
3867− version = "2021-09-11";
3879+ version = "2021-09-16";
38683880 src = fetchFromGitHub {
38693881 owner = "windwp";
38703882 repo = "nvim-autopairs";
3871− rev = "c80b4ac3faec6fa60637f1ac785b311c26b06b1f";
3872− sha256 = "1w2m278g0hl3yc32x8rr4wxmhshsv53a6k59ihgjdk703n66cp7a";
3883+ rev = "4fbb53b8b1d2abbf6b61a6437a0af302b5e58ded";
3884+ sha256 = "0689s55if1fcf6kpmqlvwpc45lwbra5cwyvjvfpnm8249n7yv7pq";
38733885 };
38743886 meta.homepage = "https://github.com/windwp/nvim-autopairs/";
38753887 };
@@ -3924,12 +3936,12 @@ final: prev:
39243936
39253937 nvim-cmp = buildVimPluginFrom2Nix {
39263938 pname = "nvim-cmp";
3927− version = "2021-09-13";
3939+ version = "2021-09-17";
39283940 src = fetchFromGitHub {
39293941 owner = "hrsh7th";
39303942 repo = "nvim-cmp";
3931− rev = "e46ae3b62e11704ace7f1f14c1398bcfaf70b217";
3932− sha256 = "1nb0insrhsa0d2mwhk42b07wkfb28j7ylscj0hqr6n69jg5jc0vz";
3943+ rev = "a2545692ef20f167d67d0d99237cab8f01fd86e4";
3944+ sha256 = "0xs1fmzg10hgjj4wxvjvmbxxn2s587wm10h5jv37cq6ayg1z3vic";
39333945 };
39343946 meta.homepage = "https://github.com/hrsh7th/nvim-cmp/";
39353947 };
@@ -3972,12 +3984,12 @@ final: prev:
39723984
39733985 nvim-dap = buildVimPluginFrom2Nix {
39743986 pname = "nvim-dap";
3975− version = "2021-09-10";
3987+ version = "2021-09-17";
39763988 src = fetchFromGitHub {
39773989 owner = "mfussenegger";
39783990 repo = "nvim-dap";
3979− rev = "55971c4f5cf83177a38bdec9de7bea6711c94880";
3980− sha256 = "149zhqwfv8ciw1ik5c258gwx71y7i0517qzqzw9qq5p66bxsxsdx";
3991+ rev = "9b597eff434669f5e5af79b0881159c8b0dd822e";
3992+ sha256 = "0krih3y97hicx9i9q6sl4mc9gj1mh2irjs5y8zz9lsc836p0b3jr";
39813993 };
39823994 meta.homepage = "https://github.com/mfussenegger/nvim-dap/";
39833995 };
@@ -4044,24 +4056,24 @@ final: prev:
40444056
40454057 nvim-highlite = buildVimPluginFrom2Nix {
40464058 pname = "nvim-highlite";
4047− version = "2021-09-10";
4059+ version = "2021-09-14";
40484060 src = fetchFromGitHub {
40494061 owner = "Iron-E";
40504062 repo = "nvim-highlite";
4051− rev = "6b06fdec591ff93ce47b0489ad524929a323ff59";
4052− sha256 = "10wfs6s76f2vx47q48ihx5y6fxgq0iq3ixifv2z0l1r6n9x5rkr6";
4063+ rev = "c41f95921acc451a49fef9c82fd0e12cde4f6f47";
4064+ sha256 = "16k0y5q0hj0dlh99bp511xpkaam4gz2l4iv1w5i2nzz217zswpvn";
40534065 };
40544066 meta.homepage = "https://github.com/Iron-E/nvim-highlite/";
40554067 };
40564068
40574069 nvim-hlslens = buildVimPluginFrom2Nix {
40584070 pname = "nvim-hlslens";
4059− version = "2021-09-09";
4071+ version = "2021-09-16";
40604072 src = fetchFromGitHub {
40614073 owner = "kevinhwang91";
40624074 repo = "nvim-hlslens";
4063− rev = "df0eb031cdc0688381f6c059ecd3545ecfffe89b";
4064− sha256 = "03mv11724jx5s811gisl6xc62qc31xknydsg67nz81mrya3559jb";
4075+ rev = "fc8a5a3dfafd703a454a5a294ef8cc69d17b4ee6";
4076+ sha256 = "1jn3ay74sf1z7mwm4sv4nz7lcq7qpyr2vx6h8j844nkb0azvhi5q";
40654077 };
40664078 meta.homepage = "https://github.com/kevinhwang91/nvim-hlslens/";
40674079 };
@@ -4104,12 +4116,12 @@ final: prev:
41044116
41054117 nvim-lspconfig = buildVimPluginFrom2Nix {
41064118 pname = "nvim-lspconfig";
4107− version = "2021-09-12";
4119+ version = "2021-09-16";
41084120 src = fetchFromGitHub {
41094121 owner = "neovim";
41104122 repo = "nvim-lspconfig";
4111− rev = "974d15fa2809dff691d6a50a6759bf2c8bf39b4a";
4112− sha256 = "1nb5k8hsxm8anjmvavxniv4k0rgrgl068czczs9x8z6dsd2865il";
4123+ rev = "aa0b9fd746d73a5ebbc72c732c645e96423d4504";
4124+ sha256 = "01jgxf8bgra4sgh63zpb5xga9lyb3bvpqcdzjk3vp6gyks66fb6h";
41134125 };
41144126 meta.homepage = "https://github.com/neovim/nvim-lspconfig/";
41154127 };
@@ -4128,12 +4140,12 @@ final: prev:
41284140
41294141 nvim-nonicons = buildVimPluginFrom2Nix {
41304142 pname = "nvim-nonicons";
4131− version = "2021-07-03";
4143+ version = "2021-09-14";
41324144 src = fetchFromGitHub {
41334145 owner = "yamatsum";
41344146 repo = "nvim-nonicons";
4135− rev = "93450b02533516231e16ddc71f8ab1caf5005eaa";
4136− sha256 = "1mfvi3mzid0fwhgwrg8w4bjy0x6hz78jij60h0ivblvlfai6w0qr";
4147+ rev = "c38ff086e0157b91d0951f83741170bdcf501a9d";
4148+ sha256 = "1vjh82kjs4ki61r0lnidd8xpj6zvc0j4k76fbs7fy0ndzsbph6gw";
41374149 };
41384150 meta.homepage = "https://github.com/yamatsum/nvim-nonicons/";
41394151 };
@@ -4404,12 +4416,12 @@ final: prev:
44044416
44054417 onedark-nvim = buildVimPluginFrom2Nix {
44064418 pname = "onedark.nvim";
4407− version = "2021-08-30";
4419+ version = "2021-09-16";
44084420 src = fetchFromGitHub {
44094421 owner = "olimorris";
44104422 repo = "onedark.nvim";
4411− rev = "7dc9734260e8af794ab69d6976a693e8c631d617";
4412− sha256 = "1hw9m6fasbpy67a4h2a0zw7231gpc4995aj6p4ljk4kw6672mnlw";
4423+ rev = "8eceb078f8093c10b4a68d68203f4edf99db112a";
4424+ sha256 = "1wnhgbi8hgrsnsq78iz7z1v7acfjrbhs08dykf0g4km03s4wa7qb";
44134425 };
44144426 meta.homepage = "https://github.com/olimorris/onedark.nvim/";
44154427 };
@@ -4464,24 +4476,24 @@ final: prev:
44644476
44654477 orgmode-nvim = buildVimPluginFrom2Nix {
44664478 pname = "orgmode.nvim";
4467− version = "2021-09-10";
4479+ version = "2021-09-17";
44684480 src = fetchFromGitHub {
44694481 owner = "kristijanhusak";
44704482 repo = "orgmode.nvim";
4471− rev = "e7fff702db42ed1d90bc9fa46c3b3a102024041f";
4472− sha256 = "0fxz0j7mjbs64x18kx3jsj3h8l124ndxf576k8vh9cwgz1g66bcj";
4483+ rev = "aa69451b48e5ff39737513db402bc38e612c03c4";
4484+ sha256 = "1km88k5ls9xzx31525y2g7sfi9n4qi3yq0sfjxjlbywi0gcwmhrx";
44734485 };
44744486 meta.homepage = "https://github.com/kristijanhusak/orgmode.nvim/";
44754487 };
44764488
44774489 packer-nvim = buildVimPluginFrom2Nix {
44784490 pname = "packer.nvim";
4479− version = "2021-09-10";
4491+ version = "2021-09-15";
44804492 src = fetchFromGitHub {
44814493 owner = "wbthomason";
44824494 repo = "packer.nvim";
4483− rev = "0dc37ac2e93895d0adc872b7ce69ad864a1fa45a";
4484− sha256 = "0a4mnfhrv4g5zqvjj3mv3bv5l7py9s4iqwy0f9xnh0f92c631q0b";
4495+ rev = "8bee5e4ce13691fcb040eced2a219e637b7ef1a1";
4496+ sha256 = "09r2hp94vkgwnwz9rz9xplcxpy2phjpp81hs4b7rxqbrqdf1ccxa";
44854497 };
44864498 meta.homepage = "https://github.com/wbthomason/packer.nvim/";
44874499 };
@@ -4500,12 +4512,12 @@ final: prev:
45004512
45014513 papercolor-theme = buildVimPluginFrom2Nix {
45024514 pname = "papercolor-theme";
4503− version = "2020-12-04";
4515+ version = "2021-09-16";
45044516 src = fetchFromGitHub {
45054517 owner = "NLKNguyen";
45064518 repo = "papercolor-theme";
4507− rev = "845cfa94d95d404ff59e0bdc578b299279e1dc07";
4508− sha256 = "1r6p9ll3bfblz9sfzg0391zjswvmi8wwcc010w8mjsayjclmpwf8";
4519+ rev = "bc078a9f8f7cbe5dc278c25e8554cc7b8f9b79d8";
4520+ sha256 = "00pvllzglv7r8naagb94097qrbz0c63xs08vrfks21nfvwmjdldn";
45094521 };
45104522 meta.homepage = "https://github.com/NLKNguyen/papercolor-theme/";
45114523 };
@@ -4572,24 +4584,24 @@ final: prev:
45724584
45734585 playground = buildVimPluginFrom2Nix {
45744586 pname = "playground";
4575− version = "2021-07-27";
4587+ version = "2021-09-15";
45764588 src = fetchFromGitHub {
45774589 owner = "nvim-treesitter";
45784590 repo = "playground";
4579− rev = "deb887b3f49d66654d9faa9778e8949fe0d80bc3";
4580− sha256 = "10jlgsqkplisa1fd7i36yb46fdsa0cx069bpwp2yl4ki2jys953j";
4591+ rev = "787a7a8d4444e58467d6b3d4b88a497e7d494643";
4592+ sha256 = "1y4dwbs40qn942x0hd93yrk04yiphy73b45vcjrknmxq9szhvhk0";
45814593 };
45824594 meta.homepage = "https://github.com/nvim-treesitter/playground/";
45834595 };
45844596
45854597 plenary-nvim = buildVimPluginFrom2Nix {
45864598 pname = "plenary.nvim";
4587− version = "2021-09-12";
4599+ version = "2021-09-16";
45884600 src = fetchFromGitHub {
45894601 owner = "nvim-lua";
45904602 repo = "plenary.nvim";
4591− rev = "6c80b83cd57ff3b029fae37b6145bcaeb4f69ee3";
4592− sha256 = "1jzyxnjs2zg02ib7h2vshhiq873n04bsg4g829v7d46bsw1337kw";
4603+ rev = "ce8f7fa999b5c091d3e7badcc2340df62b94abf9";
4604+ sha256 = "0v7yidq75yhcghg7bz86r3r59aj6ls7n9w5dhj1s4zskbmqvr94h";
45934605 };
45944606 meta.homepage = "https://github.com/nvim-lua/plenary.nvim/";
45954607 };
@@ -4837,24 +4849,24 @@ final: prev:
48374849
48384850 Recover-vim = buildVimPluginFrom2Nix {
48394851 pname = "Recover.vim";
4840− version = "2021-07-22";
4852+ version = "2021-09-16";
48414853 src = fetchFromGitHub {
48424854 owner = "chrisbra";
48434855 repo = "Recover.vim";
4844− rev = "48b6bc12b560d3013cd30c7959e235993374c24b";
4845− sha256 = "1ia2bv7yigcv944rkqy7jlrzi71m3k9kzj1hjhyrk0c2rg738r94";
4856+ rev = "222c311cd9495ee2fce8945eb5b846832f14ccac";
4857+ sha256 = "0xmzm88fyf7z4crc6gadnxyaagzskgpvfd54ddcchfw90jl47n6a";
48464858 };
48474859 meta.homepage = "https://github.com/chrisbra/Recover.vim/";
48484860 };
48494861
48504862 refactoring-nvim = buildVimPluginFrom2Nix {
48514863 pname = "refactoring.nvim";
4852− version = "2021-09-10";
4864+ version = "2021-09-16";
48534865 src = fetchFromGitHub {
48544866 owner = "theprimeagen";
48554867 repo = "refactoring.nvim";
4856− rev = "dcb0c790f20c4970a9d0e9b1f1c0c5f71b613547";
4857− sha256 = "1adjalqqa27f27nlwkj8pybk6sp8l9fic9fikvlqgnfg7v1r8gkw";
4868+ rev = "fbea6d958aa337194d4c4fbcac9a983d7b99815e";
4869+ sha256 = "0wpdy8ng64c0nn6fakg4yc4z8wrkligwfg70sdlyfcg2qi1skj87";
48584870 };
48594871 meta.homepage = "https://github.com/theprimeagen/refactoring.nvim/";
48604872 };
@@ -4957,12 +4969,12 @@ final: prev:
49574969
49584970 rust-tools-nvim = buildVimPluginFrom2Nix {
49594971 pname = "rust-tools.nvim";
4960− version = "2021-09-07";
4972+ version = "2021-09-15";
49614973 src = fetchFromGitHub {
49624974 owner = "simrat39";
49634975 repo = "rust-tools.nvim";
4964− rev = "cd5105d76fc124634b53039c02ea253cc06bc9b9";
4965− sha256 = "1bhjzng02yfnlfr3kvh6lkl5vbpcmcd51kpgg7yjxmlzlga5k2k3";
4976+ rev = "2ebbd7483247f730d57182b090f78aee466c9d54";
4977+ sha256 = "06kixggr30vpa4iv5rrs5awl7p3z7l2vqkrwz434i39d5gm7wrir";
49664978 };
49674979 meta.homepage = "https://github.com/simrat39/rust-tools.nvim/";
49684980 };
@@ -5439,12 +5451,12 @@ final: prev:
54395451
54405452 symbols-outline-nvim = buildVimPluginFrom2Nix {
54415453 pname = "symbols-outline.nvim";
5442− version = "2021-09-07";
5454+ version = "2021-09-15";
54435455 src = fetchFromGitHub {
54445456 owner = "simrat39";
54455457 repo = "symbols-outline.nvim";
5446− rev = "02ce2dab138a12a36c422ac58fabe9f5a35c664c";
5447− sha256 = "0z5a5q49csfgz0zdad11q75r8ck150ypj866199cl4j1mzb0xdgv";
5458+ rev = "a8cab53271c97ff6d2a0c18756d7b4e71012d41c";
5459+ sha256 = "1nkc0qj4birsydd278hkkjyvkyi69gva367h8fpnk0ss2i621rcc";
54485460 };
54495461 meta.homepage = "https://github.com/simrat39/symbols-outline.nvim/";
54505462 };
@@ -5475,12 +5487,12 @@ final: prev:
54755487
54765488 tabnine-vim = buildVimPluginFrom2Nix {
54775489 pname = "tabnine-vim";
5478− version = "2021-09-12";
5490+ version = "2021-09-14";
54795491 src = fetchFromGitHub {
54805492 owner = "codota";
54815493 repo = "tabnine-vim";
5482− rev = "25b1afe68ab77097fc029389f0b46a1f2a606c57";
5483− sha256 = "1n3714zywqkw3a3wdyp3vnlgly2i51b8f4csyk7nd8giwg3c1428";
5494+ rev = "b7fdf200d309f024bb035a65611422d22abe8710";
5495+ sha256 = "1bvky5gsxhh9ldxk1l9fsaqmqvi7m248dgpwc4f6hh1xdyi9gvcf";
54845496 fetchSubmodules = true;
54855497 };
54865498 meta.homepage = "https://github.com/codota/tabnine-vim/";
@@ -5596,12 +5608,12 @@ final: prev:
55965608
55975609 telescope-coc-nvim = buildVimPluginFrom2Nix {
55985610 pname = "telescope-coc.nvim";
5599− version = "2021-08-26";
5611+ version = "2021-09-14";
56005612 src = fetchFromGitHub {
56015613 owner = "fannheyward";
56025614 repo = "telescope-coc.nvim";
5603− rev = "1037a9186b5889dc3145ce9494956006c8b20f17";
5604− sha256 = "0i2g168q57pfbm63idl054sdbflkgd8a754pvk0q9w7w1mzpql2q";
5615+ rev = "7b8aa399b31998b7adf3da505a1952b1310d429c";
5616+ sha256 = "1x1m13yk222lay6j4w76y9ydbvn52022gif34d452n2x7jk0cvbf";
56055617 };
56065618 meta.homepage = "https://github.com/fannheyward/telescope-coc.nvim/";
56075619 };
@@ -5632,12 +5644,12 @@ final: prev:
56325644
56335645 telescope-fzf-native-nvim = buildVimPluginFrom2Nix {
56345646 pname = "telescope-fzf-native.nvim";
5635− version = "2021-09-12";
5647+ version = "2021-09-15";
56365648 src = fetchFromGitHub {
56375649 owner = "nvim-telescope";
56385650 repo = "telescope-fzf-native.nvim";
5639− rev = "c507c54786e8ce389a6a6aca1f406522fa3d88d3";
5640− sha256 = "1v4gr1bgb1li8xdz78sjn4gms72pa615h5cy2af0zx0akhbk28ql";
5651+ rev = "59e38e1661ffdd586cb7fc22ca0b5a05c7caf988";
5652+ sha256 = "0ipdrzivz04921i1l81bc1xck5smi0c61isfj5g8zyl0mwa0dvrm";
56415653 };
56425654 meta.homepage = "https://github.com/nvim-telescope/telescope-fzf-native.nvim/";
56435655 };
@@ -5705,12 +5717,12 @@ final: prev:
57055717
57065718 telescope-nvim = buildVimPluginFrom2Nix {
57075719 pname = "telescope.nvim";
5708− version = "2021-09-12";
5720+ version = "2021-09-16";
57095721 src = fetchFromGitHub {
57105722 owner = "nvim-telescope";
57115723 repo = "telescope.nvim";
5712− rev = "1d17cc4abc493d20b4aba36569e8805c2382ea7b";
5713− sha256 = "1ycq09ip2dhlzf2bmjayb3zj9zhl1scznls2krzvmzfq46g93ira";
5724+ rev = "5a020a8859657ba909950239c723e08dda6967b9";
5725+ sha256 = "1i565dp8q41i9sshp5y6b17r5risjr5hrcrvqqbs8ngf5ai4rpw8";
57145726 };
57155727 meta.homepage = "https://github.com/nvim-telescope/telescope.nvim/";
57165728 };
@@ -5850,12 +5862,12 @@ final: prev:
58505862
58515863 toggleterm-nvim = buildVimPluginFrom2Nix {
58525864 pname = "toggleterm.nvim";
5853− version = "2021-08-24";
5865+ version = "2021-09-15";
58545866 src = fetchFromGitHub {
58555867 owner = "akinsho";
58565868 repo = "toggleterm.nvim";
5857− rev = "ef7a882a818d1bf2598bc58ca0bc158d097d499d";
5858− sha256 = "0sdp260jnal7qmdqskxwk5cg1c846fz65xr66b18s0y0lm5z53c2";
5869+ rev = "e0fad88c58eeb79bfcd416db6c5f3a752c62907d";
5870+ sha256 = "10flfdw39ambiw3a4549zhax3snsj180d769i473x7fpq2zcw2x5";
58595871 };
58605872 meta.homepage = "https://github.com/akinsho/toggleterm.nvim/";
58615873 };
@@ -6426,12 +6438,12 @@ final: prev:
64266438
64276439 vim-autoformat = buildVimPluginFrom2Nix {
64286440 pname = "vim-autoformat";
6429− version = "2021-07-22";
6441+ version = "2021-09-13";
64306442 src = fetchFromGitHub {
64316443 owner = "vim-autoformat";
64326444 repo = "vim-autoformat";
6433− rev = "80ba8b13a9699db20754623a0933095be65fc203";
6434− sha256 = "0crlkxc55lk37vy52yxwpp84bc3rd7a5am71xj9zl29a4xap5mdp";
6445+ rev = "a65a58db77ad1b5889a68bedbea890c8161b7f8c";
6446+ sha256 = "1frvyb3xpd4njh7ixg1ywj8x11ga343kqrmrgncb45scv12i7hx4";
64356447 };
64366448 meta.homepage = "https://github.com/vim-autoformat/vim-autoformat/";
64376449 };
@@ -6498,12 +6510,12 @@ final: prev:
64986510
64996511 vim-better-whitespace = buildVimPluginFrom2Nix {
65006512 pname = "vim-better-whitespace";
6501− version = "2021-09-12";
6513+ version = "2021-09-16";
65026514 src = fetchFromGitHub {
65036515 owner = "ntpeters";
65046516 repo = "vim-better-whitespace";
6505− rev = "c63394d4da842b6fd547d072a4f22dbd3a0e3168";
6506− sha256 = "1kpq5bjp8wr8r1kfkq4dx3ypgv9jn3y91bfi2sszbn4i882j4ka7";
6517+ rev = "844ceba8fbf393395ec3937f0517f6b5552d2a9d";
6518+ sha256 = "1k4ymv3vzgiq1dy66801114mvmpij70agxsy8ywy32i3vr1vhdzg";
65076519 };
65086520 meta.homepage = "https://github.com/ntpeters/vim-better-whitespace/";
65096521 };
@@ -6630,12 +6642,12 @@ final: prev:
66306642
66316643 vim-clap = buildVimPluginFrom2Nix {
66326644 pname = "vim-clap";
6633− version = "2021-09-11";
6645+ version = "2021-09-15";
66346646 src = fetchFromGitHub {
66356647 owner = "liuchengxu";
66366648 repo = "vim-clap";
6637− rev = "33f194a70ec85dd493449f730030167c213b41e0";
6638− sha256 = "0bqvis6nkgfld8vs20k95vlpg28rigv9pjbqp58lqrjhk5h5lab0";
6649+ rev = "c88f7fdd1c9a394a203785ed791261e7f9e159c7";
6650+ sha256 = "1y7mzlns37a62zys87zd0zbzkwhb7216arjym9bf1n5gfllfbgcl";
66396651 };
66406652 meta.homepage = "https://github.com/liuchengxu/vim-clap/";
66416653 };
@@ -6774,12 +6786,12 @@ final: prev:
67746786
67756787 vim-commentary = buildVimPluginFrom2Nix {
67766788 pname = "vim-commentary";
6777− version = "2021-03-23";
6789+ version = "2021-09-14";
67786790 src = fetchFromGitHub {
67796791 owner = "tpope";
67806792 repo = "vim-commentary";
6781− rev = "349340debb34f6302931f0eb7139b2c11dfdf427";
6782− sha256 = "01lpfcn2hmvxddcf97f4qx5vksxj1hwrxb0c8ri59z9lb9z2hgjd";
6793+ rev = "627308e30639be3e2d5402808ce18690557e8292";
6794+ sha256 = "0d056h2vh3bzc3mcijq90y5c7rvg01zzxyfc826h4f79y1fz8jnp";
67836795 };
67846796 meta.homepage = "https://github.com/tpope/vim-commentary/";
67856797 };
@@ -7422,12 +7434,12 @@ final: prev:
74227434
74237435 vim-fugitive = buildVimPluginFrom2Nix {
74247436 pname = "vim-fugitive";
7425− version = "2021-09-10";
7437+ version = "2021-09-17";
74267438 src = fetchFromGitHub {
74277439 owner = "tpope";
74287440 repo = "vim-fugitive";
7429− rev = "e2927fb4676b499931a3c27a2dc8a8a8bc52ab55";
7430− sha256 = "0bqnq5ayws8dlg4zmp4ra0y9343dncg2v588311kxb3vc5m42vp2";
7441+ rev = "a67e1f8189938c44f295fc97e6c9dd13b727b1e3";
7442+ sha256 = "1r9z936myiasyvx8v838kfjgk1ymwdznsm7w629wchjm2zlxy4by";
74317443 };
74327444 meta.homepage = "https://github.com/tpope/vim-fugitive/";
74337445 };
@@ -9501,12 +9513,12 @@ final: prev:
95019513
95029514 vim-snippets = buildVimPluginFrom2Nix {
95039515 pname = "vim-snippets";
9504− version = "2021-09-11";
9516+ version = "2021-09-17";
95059517 src = fetchFromGitHub {
95069518 owner = "honza";
95079519 repo = "vim-snippets";
9508− rev = "89ff074400256ce7a58bb88ff0c5cc27e6fbe222";
9509− sha256 = "0gzxvlq3mbzx4iiiikibzxpfllzkkzlx0p2fgj7j244z2mjv7h8y";
9520+ rev = "1648b3acf193682668f1ee8e566b03cfed2ac797";
9521+ sha256 = "17db1v36mbhys1zhq9rv7g3gi3gdrl2b9x0gx4g5ffqh7nssw6wf";
95109522 };
95119523 meta.homepage = "https://github.com/honza/vim-snippets/";
95129524 };
@@ -9742,12 +9754,12 @@ final: prev:
97429754
97439755 vim-test = buildVimPluginFrom2Nix {
97449756 pname = "vim-test";
9745− version = "2021-08-13";
9757+ version = "2021-09-15";
97469758 src = fetchFromGitHub {
97479759 owner = "vim-test";
97489760 repo = "vim-test";
9749− rev = "b980e646e5f91d6e65659737b584e484ef918984";
9750− sha256 = "073lpxmrs41zm0mqxf6pmf88xvkq1fngryl8rp1lcgkrwbl7isg4";
9761+ rev = "bf200532aa8e2097af0f26e73b4f00c0cadb3118";
9762+ sha256 = "1s6qqpj1iyrm2cxig3vhxmpb4mcg0d82j1ai7iz4r2rq008m2aqv";
97519763 };
97529764 meta.homepage = "https://github.com/vim-test/vim-test/";
97539765 };
@@ -9958,12 +9970,12 @@ final: prev:
99589970
99599971 vim-twiggy = buildVimPluginFrom2Nix {
99609972 pname = "vim-twiggy";
9961− version = "2021-08-25";
9973+ version = "2021-09-16";
99629974 src = fetchFromGitHub {
99639975 owner = "sodapopcan";
99649976 repo = "vim-twiggy";
9965− rev = "3561237047481c212b55942d9507c937841d3bc8";
9966− sha256 = "1099bnpagw6sv5j2rigsp2b9qc58dcyi4520hb0xz48zdvynkaac";
9977+ rev = "16287d2261be67872870899744fd04a6802a9b87";
9978+ sha256 = "0cfqvq2was7jdhcixnlrzh9qdm2n2sv17l7a2sys8slzl04v2c61";
99679979 };
99689980 meta.homepage = "https://github.com/sodapopcan/vim-twiggy/";
99699981 };
@@ -9994,12 +10006,12 @@ final: prev:
999410006
999510007 vim-unimpaired = buildVimPluginFrom2Nix {
999610008 pname = "vim-unimpaired";
9997− version = "2021-09-11";
10009+ version = "2021-09-17";
999810010 src = fetchFromGitHub {
999910011 owner = "tpope";
1000010012 repo = "vim-unimpaired";
10001− rev = "58e4434f5ecadd4f28a521bcabc690e39186a98f";
10002− sha256 = "10ylvziwr61djc2jp20a8k2pl8qqn9rff5n4ncc8jcib58lq9r62";
10013+ rev = "c51ed445182334aabd392f295708ebe8677bd8e8";
10014+ sha256 = "0j5q11czlkhm4x78z6idbj6am29nfcg3yzli2l5607s60lvxnc0j";
1000310015 };
1000410016 meta.homepage = "https://github.com/tpope/vim-unimpaired/";
1000510017 };
@@ -10066,24 +10078,24 @@ final: prev:
1006610078
1006710079 vim-vsnip = buildVimPluginFrom2Nix {
1006810080 pname = "vim-vsnip";
10069− version = "2021-08-14";
10081+ version = "2021-09-14";
1007010082 src = fetchFromGitHub {
1007110083 owner = "hrsh7th";
1007210084 repo = "vim-vsnip";
10073− rev = "87d144b7451deb3ab55f1a3e3c5124cfab2b02fa";
10074− sha256 = "17gw992xvxsa6wyirah17xbsdi2gl4lif8ibvbs7dwagnkv01vyb";
10085+ rev = "9ac8044206d32bea4dba34e77b6a3b7b87f65df6";
10086+ sha256 = "0m488cfpl7yszyhgz12binrmxysa05wxypdgy83cdxb0npka20ff";
1007510087 };
1007610088 meta.homepage = "https://github.com/hrsh7th/vim-vsnip/";
1007710089 };
1007810090
1007910091 vim-vsnip-integ = buildVimPluginFrom2Nix {
1008010092 pname = "vim-vsnip-integ";
10081− version = "2021-09-09";
10093+ version = "2021-09-13";
1008210094 src = fetchFromGitHub {
1008310095 owner = "hrsh7th";
1008410096 repo = "vim-vsnip-integ";
10085− rev = "1b7259510486e825e61c461362578aa15afe3507";
10086− sha256 = "0ig1dgyyqdzcrrgsbjaa4308ar04xlcgpygc0fbg27xj7ppiy2f5";
10097+ rev = "a570685fc5f691e2323cb2e3c267355b8f72527f";
10098+ sha256 = "0ib7zmvwp46lacay0xq30sxx8jf2d5afzsrsyjkrzkzlvx8c40qh";
1008710099 };
1008810100 meta.homepage = "https://github.com/hrsh7th/vim-vsnip-integ/";
1008910101 };
@@ -10390,12 +10402,12 @@ final: prev:
1039010402
1039110403 vimspector = buildVimPluginFrom2Nix {
1039210404 pname = "vimspector";
10393− version = "2021-09-09";
10405+ version = "2021-09-16";
1039410406 src = fetchFromGitHub {
1039510407 owner = "puremourning";
1039610408 repo = "vimspector";
10397− rev = "2bb8561eb622b6316d2fc7f3fa56d8199da6cc3f";
10398− sha256 = "0a1prybnmfr5iqmdbhrvlcw66fvl426mgv5in3wf4kfxqy2pg9dr";
10409+ rev = "8c7761700bda305b8ddca8f36f8f31e0e2c56bf3";
10410+ sha256 = "1wd0f9kpj42lgzkhpyry0hv1y5jj5dhv0w5hwxdcg4g1h2z7rgm5";
1039910411 fetchSubmodules = true;
1040010412 };
1040110413 meta.homepage = "https://github.com/puremourning/vimspector/";
@@ -10403,12 +10415,12 @@ final: prev:
1040310415
1040410416 vimtex = buildVimPluginFrom2Nix {
1040510417 pname = "vimtex";
10406− version = "2021-09-12";
10418+ version = "2021-09-16";
1040710419 src = fetchFromGitHub {
1040810420 owner = "lervag";
1040910421 repo = "vimtex";
10410− rev = "4989653b88dd94cf23395894123f3d37138f9f52";
10411− sha256 = "0abgkw1sgbnm12hlsg23i01laza3yamxgssxm5sb22gn1pmq0l51";
10422+ rev = "43ba45fe94e6b162c36f06ee80ecd8b225d7c703";
10423+ sha256 = "12c1drvpiwg1jffgar057p9vk7jkcn8ijfxl5hhl9gp2jsy29xzv";
1041210424 };
1041310425 meta.homepage = "https://github.com/lervag/vimtex/";
1041410426 };
@@ -10535,12 +10547,12 @@ final: prev:
1053510547
1053610548 wilder-nvim = buildVimPluginFrom2Nix {
1053710549 pname = "wilder.nvim";
10538− version = "2021-09-11";
10550+ version = "2021-09-14";
1053910551 src = fetchFromGitHub {
1054010552 owner = "gelguy";
1054110553 repo = "wilder.nvim";
10542− rev = "558bf9380df27d4be2e690f5da1958d02052987a";
10543− sha256 = "1cy30b56rjbhvmk44y10zgg8x1f9ghiz3jxm7cmwjisv3bv8n73j";
10554+ rev = "15ff3a0e6fa1882fb4a2391d880c6465652718f5";
10555+ sha256 = "15rb1g0hyp942s9hgpfzf27yz7w5aaym2phrvr51aybnjz6lm9ff";
1054410556 };
1054510557 meta.homepage = "https://github.com/gelguy/wilder.nvim/";
1054610558 };
@@ -10656,12 +10668,12 @@ final: prev:
1065610668
1065710669 YouCompleteMe = buildVimPluginFrom2Nix {
1065810670 pname = "YouCompleteMe";
10659− version = "2021-08-05";
10671+ version = "2021-09-13";
1066010672 src = fetchFromGitHub {
1066110673 owner = "ycm-core";
1066210674 repo = "YouCompleteMe";
10663− rev = "518275b599ab6dd7844c24022f6aec505fb4b07c";
10664− sha256 = "0wkd83xlzfbk3h19gn3jhp6lpkb1wnxrhcdnczhdwhy81lizfq4w";
10675+ rev = "bb9ebb5b25be3534e33a585c77a14c77f15e8bc8";
10676+ sha256 = "1pqa4j7i0qv5k5mxwdwmqrxb2jhqllv1s9rdyvji4qqpdfs6q343";
1066510677 fetchSubmodules = true;
1066610678 };
1066710679 meta.homepage = "https://github.com/ycm-core/YouCompleteMe/";
@@ -10693,12 +10705,12 @@ final: prev:
1069310705
1069410706 zenburn = buildVimPluginFrom2Nix {
1069510707 pname = "zenburn";
10696− version = "2020-09-08";
10708+ version = "2021-09-15";
1069710709 src = fetchFromGitHub {
1069810710 owner = "jnurmine";
1069910711 repo = "zenburn";
10700− rev = "4ec3795d81fc83b6f43389a6291bfa99394473a8";
10701− sha256 = "148s2szjx61rp93nxa95552m87mn4n4ga00dlbvvv7sm607mvxd8";
10712+ rev = "de2fa06a93fe1494638ec7b2fdd565898be25de6";
10713+ sha256 = "0pmmc16gkypb3y87d5wg5g8c3cxhj01ah9khl82hfw564yw4ipqs";
1070210714 };
1070310715 meta.homepage = "https://github.com/jnurmine/zenburn/";
1070410716 };
pkgs/misc/vim-plugins/overrides.nix+1−1
@@ -686,7 +686,7 @@ self: super: {
686686 libiconv
687687 ];
688688
689− cargoSha256 = "1hmbgqd22fy68n05vdb93wsdvws91m4i6nm1kq6bwwbhzhkvd7js";
689+ cargoSha256 = "083v2bnnjyf9j923p6bidgbvmwnh8sfv5ai70qfffzrysi5gvzdf";
690690 };
691691 in
692692 ''
pkgs/misc/vim-plugins/vim-plugin-names+1
@@ -40,6 +40,7 @@ b3nj5m1n/kommentary@main
4040bakpakin/fennel.vim
4141bazelbuild/vim-bazel
4242bbchung/clighter8
43+BeneCollyridam/futhark-vim
4344benizi/vim-automkdir
4445bhurlow/vim-parinfer
4546bitc/vim-hdevtools
pkgs/misc/vim-plugins/vim-utils.nix+5−3
@@ -198,8 +198,8 @@ let
198198 '';
199199
200200 linkVimlPlugin = plugin: packageName: dir: ''
201− mkdir -p $out/pack/${packageName}/${dir}/${plugin.pname}
202− ln -sf ${plugin}/${rtpPath}/* $out/pack/${packageName}/${dir}/${plugin.pname}
201+ mkdir -p $out/pack/${packageName}/${dir}/${lib.getName plugin}
202+ ln -sf ${plugin}/${rtpPath}/* $out/pack/${packageName}/${dir}/${lib.getName plugin}
203203 '';
204204
205205 link = pluginPath: if hasLuaModule pluginPath
@@ -292,12 +292,14 @@ let
292292
293293 /* vim-plug is an extremely popular vim plugin manager.
294294 */
295+ /* Remove repeated "/." suffixes from a path */
296+ stripDots = path: lib.head (builtins.split "(/\\.)*$" path);
295297 plugImpl =
296298 (''
297299 source ${vimPlugins.vim-plug.rtp}/plug.vim
298300 silent! call plug#begin('/dev/null')
299301
300− '' + (lib.concatMapStringsSep "\n" (pkg: "Plug '${pkg.rtp}'") plug.plugins) + ''
302+ '' + (lib.concatMapStringsSep "\n" (pkg: "Plug '${stripDots pkg.rtp}'") plug.plugins) + ''
301303
302304 call plug#end()
303305 '');
pkgs/misc/vscode-extensions/default.nix+21−4
@@ -393,6 +393,23 @@ let
393393 };
394394 };
395395
396+ denoland.vscode-deno = buildVscodeMarketplaceExtension {
397+ mktplcRef = {
398+ name = "vscode-deno";
399+ publisher = "denoland";
400+ version = "3.9.1";
401+ sha256 = "sha256-OuGTjmJQFAWrYp7YnFpyo0NnnCcXYF8itYjGKMa3FCs=";
402+ };
403+ meta = with lib; {
404+ changelog = "https://marketplace.visualstudio.com/items/denoland.vscode-deno/changelog";
405+ description = "A language server client for Deno";
406+ downloadPage = "https://marketplace.visualstudio.com/items?itemName=denoland.vscode-deno";
407+ homepage = "https://github.com/denoland/vscode_deno";
408+ license = licenses.mit;
409+ maintainers = with maintainers; [ ratsclub ];
410+ };
411+ };
412+
396413 dhall.dhall-lang = buildVscodeMarketplaceExtension {
397414 mktplcRef = {
398415 name = "dhall-lang";
@@ -806,8 +823,8 @@ let
806823 mktplcRef = {
807824 name = "haskell";
808825 publisher = "haskell";
809− version = "1.1.0";
810− sha256 = "1wg06lyk0qn9jd6gi007sg7v0z9z8gwq7x2449d4ihs9n3w5l0gb";
826+ version = "1.6.1";
827+ sha256 = "1l6nrbqkq1p62dkmzs4sy0rxbid3qa1104s3fd9fzkmc1sldzgsn";
811828 };
812829 meta = with lib; {
813830 license = licenses.mit;
@@ -955,8 +972,8 @@ let
955972 mktplcRef = {
956973 name = "language-haskell";
957974 publisher = "justusadam";
958− version = "3.2.1";
959− sha256 = "0lxp8xz17ciy93nj4lzxqvz71vw1zdyamrnh2n792yair8890rr6";
975+ version = "3.4.0";
976+ sha256 = "0ab7m5jzxakjxaiwmg0jcck53vnn183589bbxh3iiylkpicrv67y";
960977 };
961978 meta = {
962979 license = lib.licenses.bsd3;
pkgs/os-specific/linux/procdump/default.nix+2−2
@@ -2,13 +2,13 @@
22
33stdenv.mkDerivation rec {
44 pname = "procdump";
5− version = "1.1.1";
5+ version = "1.2";
66
77 src = fetchFromGitHub {
88 owner = "Microsoft";
99 repo = "ProcDump-for-Linux";
1010 rev = version;
11− sha256 = "0h5fhk39d10kjbinzw1yp6nr8w8l300mn9qxrkpivdkyfn6bpq2f";
11+ sha256 = "sha256-gVswAezHl7E2cBTJEQhPFXhHkzhWVHSpPF8m0s8+ekc=";
1212 };
1313
1414 nativeBuildInputs = [ zlib ];
pkgs/servers/computing/slurm/default.nix+2−2
@@ -9,7 +9,7 @@
99
1010stdenv.mkDerivation rec {
1111 pname = "slurm";
12− version = "21.08.0.1";
12+ version = "21.08.1.1";
1313
1414 # N.B. We use github release tags instead of https://www.schedmd.com/downloads.php
1515 # because the latter does not keep older releases.
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
1818 repo = "slurm";
1919 # The release tags use - instead of .
2020 rev = "${pname}-${builtins.replaceStrings ["."] ["-"] version}";
21− sha256 = "0f1i64vby1qa2y9gv9a9x595s58p6dpw4yhljbgrc2wr7glvnfi3";
21+ sha256 = "13fd72ifa1ar8yjavdywzvlk4fzxzhybi30pzcdvjnijc9y52j4m";
2222 };
2323
2424 outputs = [ "out" "dev" ];
pkgs/servers/gerbera/default.nix+2−2
@@ -65,13 +65,13 @@ let
6565in
6666stdenv.mkDerivation rec {
6767 pname = "gerbera";
68− version = "1.9.0";
68+ version = "1.9.1";
6969
7070 src = fetchFromGitHub {
7171 repo = "gerbera";
7272 owner = "gerbera";
7373 rev = "v${version}";
74− sha256 = "sha256-2nSxc5Tvy5EXYH1FqR455r84Y07Jg0sOgIScuAdDn6Q=";
74+ sha256 = "sha256-FtUKj3IhLMRs3VzawFgy6rnd+beW+Kvzq6tk8wPv7pw=";
7575 };
7676
7777 postPatch = lib.optionalString enableMysql ''
pkgs/servers/home-assistant/default.nix+1−1
@@ -743,7 +743,7 @@ in with py.pkgs; buildPythonApplication rec {
743743
744744 pytestFlagsArray = [
745745 # parallelize test run
746− "--numprocesses auto"
746+ "--numprocesses $NIX_BUILD_CORES"
747747 # assign tests grouped by file to workers
748748 "--dist loadfile"
749749 # retry racy tests that end in "RuntimeError: Event loop is closed"
pkgs/servers/nosql/apache-jena/binary.nix+2−2
@@ -3,10 +3,10 @@ let
33 s = # Generated upstream information
44 rec {
55 baseName="apache-jena";
6− version = "3.7.0";
6+ version = "4.2.0";
77 name="${baseName}-${version}";
88 url="http://archive.apache.org/dist/jena/binaries/apache-jena-${version}.tar.gz";
9− sha256 = "12w125hlhcib23cckk77cx7p9rzs57dbmmn90f7v8107d437j4mq";
9+ sha256 = "1yiqlsp1g2fladal8mj164b9s0qsl5csllg54p7x7w63wf7gixnq";
1010 };
1111 buildInputs = [
1212 makeWrapper
pkgs/servers/nosql/apache-jena/fuseki-binary.nix+4−3
@@ -3,10 +3,10 @@ let
33 s = # Generated upstream information
44 rec {
55 baseName="apache-jena-fuseki";
6− version = "3.13.1";
6+ version = "4.2.0";
77 name="${baseName}-${version}";
88 url="http://archive.apache.org/dist/jena/binaries/apache-jena-fuseki-${version}.tar.gz";
9− sha256 = "018b07icvjhd44c046rxfjiczcs63cic77cymgg4w8pd3na06c7y";
9+ sha256 = "1x3va4yqmxh55lhr6ms85ks9v0lqkl3y41h0bpjdycp8j96lsy3h";
1010 };
1111 buildInputs = [
1212 makeWrapper
@@ -20,7 +20,8 @@ stdenv.mkDerivation {
2020 };
2121 installPhase = ''
2222 cp -r . "$out"
23− ln -s "$out"/{fuseki-server,fuseki} "$out/bin"
23+ chmod +x $out/fuseki
24+ ln -s "$out"/{fuseki-backup,fuseki-server,fuseki} "$out/bin"
2425 for i in "$out"/bin/*; do
2526 wrapProgram "$i" \
2627 --prefix "PATH" : "${java}/bin/" \
pkgs/servers/pleroma/default.nix+2−2
@@ -7,14 +7,14 @@
77
88beamPackages.mixRelease rec {
99 pname = "pleroma";
10− version = "2.4.0";
10+ version = "2.4.1";
1111
1212 src = fetchFromGitLab {
1313 domain = "git.pleroma.social";
1414 owner = "pleroma";
1515 repo = "pleroma";
1616 rev = "v${version}";
17− sha256 = "sha256-1zp/qVk2K3q8AtkfXab0MBAHaQnY5enVtfdu64FFPhg=";
17+ sha256 = "sha256-XYZIf8/Vznl4FvVAOy5GVfTBTCwhfUol/3vWWIDwIxQ=";
1818 };
1919
2020 mixNixDeps = import ./mix.nix {
pkgs/servers/sql/materialize/default.nix+7−4
@@ -40,22 +40,25 @@ let
4040in
4141rustPlatform.buildRustPackage rec {
4242 pname = "materialize";
43− version = "0.8.3";
44− rev = "3e47d280945f0ddbdc263fc643f067649f66eda1";
43+ version = "0.9.4";
44+ rev = "29d003cae5e9d46f8b11b2102ff0b9abf6608c2f";
4545
4646 src = fetchFromGitHub {
4747 owner = "MaterializeInc";
4848 repo = pname;
4949 rev = "v${version}";
50− sha256 = "15635hcw04nms133k9l5582xbk7frc86nka91yaafl63q6pwbdvg";
50+ sha256 = "021n05csyvza9ifq09qaxypgmlbp3a7xn6r1m4jn8d4rnz38wag6";
5151 };
5252
53− cargoSha256 = "1fxqjhjs4bqq6nzax7xrhwjpv57dk90iw9fl8ilp41wzg7yvyhcm";
53+ cargoSha256 = "12fysxzmqnx7y7yg6fjcv1952s77d46pwi32vnsv62icgqfpw0j4";
5454
5555 nativeBuildInputs = [ cmake perl pkg-config ]
5656 # Provides the mig command used by the krb5-src build script
5757 ++ lib.optional stdenv.isDarwin bootstrap_cmds;
5858
59+ # Needed to get openssl-sys to use pkg-config.
60+ OPENSSL_NO_VENDOR = 1;
61+
5962 buildInputs = [ openssl ]
6063 ++ lib.optionals stdenv.isDarwin [ libiconv DiskArbitration Foundation ];
6164
pkgs/tools/audio/abcmidi/default.nix+2−2
@@ -2,11 +2,11 @@
22
33stdenv.mkDerivation rec {
44 pname = "abcMIDI";
5− version = "2021.06.27";
5+ version = "2021.09.15";
66
77 src = fetchzip {
88 url = "https://ifdo.ca/~seymour/runabc/${pname}-${version}.zip";
9− sha256 = "sha256-tLKxs1p1CIU/2XV1fMgWrwdtePeXOBZUMjz46kgp9C0=";
9+ sha256 = "sha256-BrEgvrAHNfJpFTlI8tec+9w3G+5YR15lbzh/RKKpQ1c=";
1010 };
1111
1212 meta = with lib; {
pkgs/tools/audio/tts/default.nix+2−2
@@ -16,13 +16,13 @@
1616
1717python3.pkgs.buildPythonApplication rec {
1818 pname = "tts";
19− version = "0.3.0";
19+ version = "0.3.1";
2020
2121 src = fetchFromGitHub {
2222 owner = "coqui-ai";
2323 repo = "TTS";
2424 rev = "v${version}";
25− sha256 = "sha256-LiH056h7eIaikBr6sm5A4T/lF7nVroxaZSYzrES7+zk=";
25+ sha256 = "sha256-/CeetLm3jgS5Q69zTVkLm+Wh4nD7D4c6j9MTujMc3fU=";
2626 };
2727
2828 postPatch = ''
pkgs/tools/backup/autorestic/default.nixnew file+32
@@ -0,0 +1,32 @@
1+{ lib, fetchFromGitHub, installShellFiles, buildGoModule }:
2+
3+buildGoModule rec {
4+ pname = "autorestic";
5+ version = "1.2.0";
6+
7+ src = fetchFromGitHub {
8+ owner = "cupcakearmy";
9+ repo = pname;
10+ rev = "v${version}";
11+ sha256 = "yQgSJ0SQNWPMyrYn8rep+1b549HP8sOERh+kOiAK3+c=";
12+ };
13+
14+ vendorSha256 = "7648gAguqeqLKFS9xRcx20wpSLb+ykZ7rOqR5PKe71o=";
15+
16+ nativeBuildInputs = [ installShellFiles ];
17+
18+ postInstall = ''
19+ installShellCompletion --cmd autorestic \
20+ --bash <($out/bin/autorestic completion bash) \
21+ --fish <($out/bin/autorestic completion fish) \
22+ --zsh <($out/bin/autorestic completion zsh)
23+ '';
24+
25+ meta = with lib; {
26+ description = "High level CLI utility for restic";
27+ homepage = "https://github.com/cupcakearmy/autorestic";
28+ license = licenses.asl20;
29+ maintainers = with maintainers; [ renesat ];
30+ platforms = platforms.linux ++ platforms.darwin;
31+ };
32+}
pkgs/tools/filesystems/tar2ext4/default.nix+2−2
@@ -2,13 +2,13 @@
22
33buildGoModule rec {
44 pname = "tar2ext4";
5− version = "0.8.21";
5+ version = "0.8.22";
66
77 src = fetchFromGitHub {
88 owner = "microsoft";
99 repo = "hcsshim";
1010 rev = "v${version}";
11− sha256 = "sha256-oYCL6agif/BklMY5/ub6PExS6D/ZlTxi1QaabMOsEfw=";
11+ sha256 = "sha256-z8w/xzNEebnQJTO4H5PlU5W+69MY1wQwmuz5inXBl1k=";
1212 };
1313
1414 sourceRoot = "source/cmd/tar2ext4";
pkgs/tools/inputmethods/touchegg/default.nix+56−15
@@ -1,26 +1,67 @@
1−{ lib, stdenv, fetchurl, xorg, xorgserver, qt4, libGLU, libGL, geis, qmake4Hook }:
1+{ stdenv, lib
2+, fetchFromGitHub
3+, fetchpatch
4+, systemd
5+, libinput
6+, pugixml
7+, cairo
8+, xorg
9+, gtk3-x11
10+, pcre
11+, pkg-config
12+, cmake
13+, pantheon
14+, withPantheon ? false
15+}:
216
317stdenv.mkDerivation rec {
418 pname = "touchegg";
5− version = "1.1.1";
6− src = fetchurl {
7− url = "https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/touchegg/${pname}-${version}.tar.gz";
8− sha256 = "95734815c7219d9a71282f3144b3526f2542b4fa270a8e69d644722d024b4038";
19+ version = "2.0.11";
20+ src = fetchFromGitHub {
21+ owner = "JoseExposito";
22+ repo = pname;
23+ rev = version;
24+ sha256 = "1zfiqs5vqlb6drnqx9nsmhgy8qc6svzr8zyjkqvwkpbgrc6ifap9";
925 };
1026
11− buildInputs = [ xorgserver libGLU libGL xorg.libX11 xorg.libXtst xorg.libXext qt4 geis ];
27+ PKG_CONFIG_SYSTEMD_SYSTEMDSYSTEMUNITDIR = "${placeholder "out"}/lib/systemd/system";
1228
13− nativeBuildInputs = [ qmake4Hook ];
29+ buildInputs = [
30+ systemd
31+ libinput
32+ pugixml
33+ cairo
34+ gtk3-x11
35+ pcre
36+ ] ++ (with xorg; [
37+ libX11
38+ libXtst
39+ libXrandr
40+ libXi
41+ libXdmcp
42+ libpthreadstubs
43+ libxcb
44+ ]);
1445
15− preConfigure = ''
16− sed -e "s@/usr/@$out/@g" -i $(find . -name touchegg.pro)
17− sed -e "s@/usr/@$out/@g" -i $(find ./src/touchegg/config/ -name Config.cpp)
18− '';
46+ nativeBuildInputs = [
47+ pkg-config
48+ cmake
49+ ];
1950
20− meta = {
51+ patches = lib.optionals withPantheon [
52+ # Disable per-application gesture by default to make sure the default
53+ # config does not conflict with Pantheon switchboard settings.
54+ (fetchpatch {
55+ url = "https://github.com/elementary/os-patches/commit/ada4e726540a2bb57b606c98e2531cfaaea57211.patch";
56+ sha256 = "0is9acwvgiqdhbiw11i3nq0rp0zldcza779fbj8k78cp329rbqb4";
57+ })
58+ ];
59+
60+ meta = with lib; {
2161 homepage = "https://github.com/JoseExposito/touchegg";
22− description = "Macro binding for touch surfaces";
23− license = lib.licenses.gpl2;
24− platforms = lib.platforms.linux;
62+ description = "Linux multi-touch gesture recognizer";
63+ license = licenses.gpl3Plus;
64+ platforms = platforms.linux;
65+ maintainers = pantheon.maintainers;
2566 };
2667}
pkgs/tools/misc/macchina/default.nix+3−3
@@ -3,16 +3,16 @@
33
44rustPlatform.buildRustPackage rec {
55 pname = "macchina";
6− version = "1.1.5";
6+ version = "1.1.6";
77
88 src = fetchFromGitHub {
99 owner = "Macchina-CLI";
1010 repo = pname;
1111 rev = "v${version}";
12− sha256 = "sha256-ZrBjpmyc9cHaaVzMAdksFVa3iEX/FWCCcdwyPH66E5s=";
12+ sha256 = "sha256-JiyJU+5bKXHUgaRyUKdgINbMxkv2XXAkuoouQv9SEow=";
1313 };
1414
15− cargoSha256 = "sha256-pINaBieDf+2GGid2vsgvNYy0zwjxXaPcBw0Yoy6KGi8=";
15+ cargoSha256 = "sha256-pychP3OHXMv23TtZbaMOPBbEoJh4R03ySzEdwADTmFI=";
1616
1717 nativeBuildInputs = [ installShellFiles ];
1818 buildInputs = lib.optionals stdenv.isDarwin [ libiconv Foundation ];
pkgs/tools/misc/mmv-go/default.nix+3−3
@@ -2,16 +2,16 @@
22
33buildGoModule rec {
44 pname = "mmv-go";
5− version = "0.1.3";
5+ version = "0.1.4";
66
77 src = fetchFromGitHub {
88 owner = "itchyny";
99 repo = "mmv";
1010 rev = "v${version}";
11− sha256 = "12k5zzyr0lhjadc9kza04v0zgb20v7m4syaqwc7qvn3kfvv1mz8s";
11+ sha256 = "sha256-n7yW+0cabJGDgppt6Qcj7ID3sD85094NDOPk2o9xDwY=";
1212 };
1313
14− vendorSha256 = "0xnrai15ww9lfk02bc9p5ssycwnqkyjj5ch1srh7yvnbw3fakx68";
14+ vendorSha256 = "sha256-3Xk8S2Em28r5R7894Ubo2OOlGhrKplV/gY4ftCjPvMo=";
1515
1616 ldflags = [ "-s" "-w" "-X main.revision=${src.rev}" ];
1717
pkgs/tools/misc/yt-dlp/default.nix−6
@@ -27,12 +27,6 @@ buildPythonPackage rec {
2727 sha256 = "sha256-yn53zbBVuiaD31sIB6qxweEgy+AsjzXZ0yk9lNva6mM=";
2828 };
2929
30− # build_lazy_extractors assumes this directory exists but it is not present in
31− # the PyPI package
32− postPatch = ''
33− mkdir -p ytdlp_plugins/extractor
34− '';
35−
3630 propagatedBuildInputs = [ websockets mutagen ]
3731 ++ lib.optional hlsEncryptedSupport pycryptodome;
3832
pkgs/tools/networking/atftp/default.nix+10−4
@@ -1,21 +1,27 @@
1−{ lib, stdenv, fetchurl, readline, tcp_wrappers, pcre, makeWrapper, gcc }:
1+{ lib, stdenv, fetchurl, readline, tcp_wrappers, pcre, makeWrapper, gcc, ps }:
22
33stdenv.mkDerivation rec {
44 pname = "atftp";
5− version = "0.7.4";
5+ version = "0.7.5";
66
77 src = fetchurl {
88 url = "mirror://sourceforge/atftp/${pname}-${version}.tar.gz";
9− sha256 = "sha256-08nNDZcd/Hhtel9AVcNdTmaq/IECrANHPvIlvfftsmo=";
9+ sha256 = "12h3sgkd25j4nfagil2jqyj1n8yxvaawj0cf01742642n57pmj4k";
1010 };
1111
12+ # fix test script
13+ postPatch = ''
14+ patchShebangs .
15+ '';
16+
1217 nativeBuildInputs = [ makeWrapper ];
1318 buildInputs = [ readline tcp_wrappers pcre gcc ];
1419
1520 # Expects pre-GCC5 inline semantics
1621 NIX_CFLAGS_COMPILE = "-std=gnu89";
1722
18− doCheck = false; # fails
23+ doCheck = true;
24+ checkInputs = [ ps ];
1925
2026 meta = {
2127 description = "Advanced tftp tools";
pkgs/tools/networking/innernet/default.nix+3−3
@@ -2,15 +2,15 @@
22
33rustPlatform.buildRustPackage rec {
44 pname = "innernet";
5− version = "1.4.1";
5+ version = "1.5.0";
66
77 src = fetchFromGitHub {
88 owner = "tonarino";
99 repo = pname;
1010 rev = "v${version}";
11− sha256 = "sha256-ss3BtwRnRAUPfM6yjl14rQrYZ7PHAT3s/MEHnbV7IEU=";
11+ sha256 = "sha256-9oL91jacfUADaPvdTTvvXhpwzr9OnNnVLwy1okORss4=";
1212 };
13− cargoSha256 = "sha256-hhsRLm8wsmvnu3wRK9s4Fjdy0bKLboAKw6qS2XQ1nsI=";
13+ cargoSha256 = "sha256-jHWt7Jqv4B7u6Mvo3q69Omcn8kdnXGJSyzod1lDzvKE=";
1414
1515 nativeBuildInputs = with llvmPackages; [
1616 llvm
pkgs/tools/networking/proxychains-ng/default.nixnew file+24
@@ -0,0 +1,24 @@
1+{ lib
2+, stdenv
3+, fetchFromGitHub
4+}:
5+
6+stdenv.mkDerivation rec {
7+ pname = "proxychains-ng";
8+ version = "4.15";
9+
10+ src = fetchFromGitHub {
11+ owner = "rofl0r";
12+ repo = pname;
13+ rev = "v${version}";
14+ sha256 = "128d502y8pn7q2ls6glx9bvibwzfh321sah5r5li6b6iywh2zqlc";
15+ };
16+
17+ meta = with lib; {
18+ description = "A preloader which hooks calls to sockets in dynamically linked programs and redirects it through one or more socks/http proxies";
19+ homepage = "https://github.com/rofl0r/proxychains-ng";
20+ license = licenses.gpl2Plus;
21+ maintainers = with maintainers; [ zenithal ];
22+ platforms = platforms.linux;
23+ };
24+}
pkgs/tools/networking/sish/default.nix+3−3
@@ -5,16 +5,16 @@
55
66buildGoModule rec {
77 pname = "sish";
8− version = "1.1.6";
8+ version = "1.1.7";
99
1010 src = fetchFromGitHub {
1111 owner = "antoniomika";
1212 repo = pname;
1313 rev = "v${version}";
14− sha256 = "sha256-tljJp6Yoc19kkG7F3g1XhSDK2Y/D/2oRHiDkkOP3nn0=";
14+ sha256 = "sha256-v/7DhakTVlcbnhujZOoVx5mpeyMwVI4CfYV12QqR7I4=";
1515 };
1616
17− vendorSha256 = "sha256-AHCa6ErxXzDPUFuq4ATD08e2Wz0tNibV2lLXoD7Sygk=";
17+ vendorSha256 = "sha256-eMqHPxewQ9mvBpcBb+13HmaLDabCGt6C+qfbgaW8/YE=";
1818
1919 meta = with lib; {
2020 description = "HTTP(S)/WS(S)/TCP Tunnels to localhost";
pkgs/tools/security/hcxtools/default.nix+2−2
@@ -2,13 +2,13 @@
22
33stdenv.mkDerivation rec {
44 pname = "hcxtools";
5− version = "6.2.0";
5+ version = "6.2.4";
66
77 src = fetchFromGitHub {
88 owner = "ZerBea";
99 repo = pname;
1010 rev = version;
11− sha256 = "sha256-4/kqy0oIe2FdKWtVj11PAUbdWPcKmZ1aIxLx/Zw1E2w=";
11+ sha256 = "sha256-C6nAZkkdtBSv4WDxoXPsHzcGglB8PEX3ioFaTydiHsU=";
1212 };
1313
1414 nativeBuildInputs = [ pkg-config ];
pkgs/tools/security/kubesec/default.nix+3−3
@@ -5,16 +5,16 @@
55
66buildGoModule rec {
77 pname = "kubesec";
8− version = "2.11.2";
8+ version = "2.11.3";
99
1010 src = fetchFromGitHub {
1111 owner = "controlplaneio";
1212 repo = pname;
1313 rev = "v${version}";
14− sha256 = "sha256-W9c3L8lYjF1W0kwSODhMldlqX1h+2mZIRtElZ20skn4=";
14+ sha256 = "sha256-ntDkkw1mOb3oAs/UX9uazKv1+smVy2qtg6ZqCLEbRNQ=";
1515 };
1616
17− vendorSha256 = "sha256-zfQu1EdwvR+LGmsbE8RA4pcOGgsukG1TMTCgPyNoVsc=";
17+ vendorSha256 = "sha256-1qDi8Ij+uweZggE9fbi50uCqlPzdGOwiO3WPuAxnils=";
1818
1919 # Tests wants to download the kubernetes schema for use with kubeval
2020 doCheck = false;
pkgs/tools/text/crowdin-cli/default.nix+2−2
@@ -12,11 +12,11 @@
1212
1313stdenv.mkDerivation rec {
1414 pname = "crowdin-cli";
15− version = "3.6.5";
15+ version = "3.7.0";
1616
1717 src = fetchurl {
1818 url = "https://github.com/crowdin/${pname}/releases/download/${version}/${pname}.zip";
19− sha256 = "sha256-9bw85dFazlcbZhx/bUoxW4iIsw+RdE3d+O5Cj3Obb7A=";
19+ sha256 = "sha256-2TQL5k2ndckFjOOXNz7clVpwPUMStR4xgd1P+qUhNC8=";
2020 };
2121
2222 nativeBuildInputs = [ installShellFiles makeWrapper unzip ];
pkgs/tools/text/difftastic/default.nix+16−5
@@ -1,23 +1,34 @@
1−{ lib, fetchFromGitHub, rustPlatform }:
1+{ lib, fetchFromGitHub, rustPlatform, tree-sitter }:
22
33rustPlatform.buildRustPackage rec {
44 pname = "difftastic";
5− version = "0.8";
5+ version = "0.9";
66
77 src = fetchFromGitHub {
88 owner = "wilfred";
99 repo = pname;
1010 rev = version;
11− sha256 = "0103py4v4v7xqv85yiczhd9w9h1aa54svhhdibvbl6x4b35y2mk5";
11+ sha256 = "sha256-spncRJjROytGnIig6ujqHu0e/XBTN4dsJ3og4aIu+l8=";
1212 };
1313
14− cargoSha256 = "1k0d7yadicfzfc2m1aqs4c4a2k3srb54fpwarc3kwn26v3vfjai1";
14+ cargoSha256 = "sha256-2xGwS4wjLQ7zmfZ2gMdlUAkjPDF6SmUaiX2j1KYy0vo=";
15+
16+ postPatch = ''
17+ pushd vendor
18+ for grammar in */; do
19+ if [ -d "${tree-sitter.grammars}/$grammar" ]; then
20+ rm -r "$grammar"
21+ ln -s "${tree-sitter.grammars}/$grammar"
22+ fi
23+ done
24+ popd
25+ '';
1526
1627 meta = with lib; {
1728 description = "A syntax-aware diff";
1829 homepage = "https://github.com/Wilfred/difftastic";
1930 changelog = "https://github.com/Wilfred/difftastic/raw/${version}/CHANGELOG.md";
2031 license = licenses.mit;
21− maintainers = with maintainers; [ ethancedwards8 ];
32+ maintainers = with maintainers; [ ethancedwards8 figsoda ];
2233 };
2334}
pkgs/tools/text/ocrmypdf/default.nix+4−4
@@ -30,13 +30,13 @@ let
3030in
3131buildPythonApplication rec {
3232 pname = "ocrmypdf";
33− version = "12.3.0";
33+ version = "12.5.0";
3434
3535 src = fetchFromGitHub {
3636 owner = "jbarlow83";
3737 repo = "OCRmyPDF";
3838 rev = "v${version}";
39− sha256 = "122yv3p0v4fbx30zgppcznwnm7svg97gv0sa103xb6zcld68ggn2";
39+ sha256 = "sha256-g80WedX+TGHE9EJ/RSgOc53PM17V3WZslUNaHoqKTo0=";
4040 };
4141
4242 nativeBuildInputs = with python3Packages; [
@@ -47,9 +47,9 @@ buildPythonApplication rec {
4747
4848 propagatedBuildInputs = with python3Packages; [
4949 cffi
50− chardet
5150 coloredlogs
5251 img2pdf
52+ importlib-resources
5353 pdfminer
5454 pluggy
5555 pikepdf
@@ -84,6 +84,6 @@ buildPythonApplication rec {
8484 license = with licenses; [ mpl20 mit ];
8585 platforms = platforms.linux;
8686 maintainers = [ maintainers.kiwi ];
87− changelog = "https://github.com/jbarlow83/OCRmyPDF/blob/v${version}/docs/release_notes.rst";
87+ changelog = "https://github.com/jbarlow83/OCRmyPDF/blob/v${version}/docs/release_notes.rst";
8888 };
8989}
pkgs/top-level/all-packages.nix+11−4
@@ -141,6 +141,8 @@ with pkgs;
141141 autoconf = autoconf269;
142142 };
143143
144+ autorestic = callPackage ../tools/backup/autorestic { };
145+
144146 autoPatchelfHook = makeSetupHook { name = "auto-patchelf-hook"; }
145147 ../build-support/setup-hooks/auto-patchelf.sh;
146148
@@ -8357,6 +8359,8 @@ with pkgs;
83578359
83588360 proxychains = callPackage ../tools/networking/proxychains { };
83598361
8362+ proxychains-ng = callPackage ../tools/networking/proxychains-ng { };
8363+
83608364 proxify = callPackage ../tools/networking/proxify { };
83618365
83628366 proxytunnel = callPackage ../tools/misc/proxytunnel {
@@ -13059,7 +13063,7 @@ with pkgs;
1305913063 pipewire = callPackage ../development/libraries/pipewire {};
1306013064 pipewire_0_2 = callPackage ../development/libraries/pipewire/0.2.nix {};
1306113065
13062− pyradio = callPackage ../applications/radio/pyradio {};
13066+ pyradio = callPackage ../applications/audio/pyradio {};
1306313067
1306413068 pyrex = pyrex095;
1306513069
@@ -13144,7 +13148,10 @@ with pkgs;
1314413148
1314513149 self = pkgsi686Linux.callPackage ../development/interpreters/self { };
1314613150
13147− spark = callPackage ../applications/networking/cluster/spark { };
13151+ inherit (callPackages ../applications/networking/cluster/spark { hadoop = hadoop_3_1; })
13152+ spark3
13153+ spark2;
13154+ spark = spark3;
1314813155
1314913156 sparkleshare = callPackage ../applications/version-management/sparkleshare { };
1315013157
@@ -19888,11 +19895,11 @@ with pkgs;
1988819895 cassandra = cassandra_3_11;
1988919896
1989019897 apache-jena = callPackage ../servers/nosql/apache-jena/binary.nix {
19891− java = jdk8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
19898+ java = jre;
1989219899 };
1989319900
1989419901 apache-jena-fuseki = callPackage ../servers/nosql/apache-jena/fuseki-binary.nix {
19895− java = jdk8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
19902+ java = jre;
1989619903 };
1989719904
1989819905 apcupsd = callPackage ../servers/apcupsd { };