nixpkgs-suyu/nixos/modules/config
Bryan Gardiner 2400191caf
nixos/xdg/mime: disable fdatasync when building the XDG MIME database
Back in 2013, update-mime-database started using fdatasync() to write out
its changes after processing each file in /share/mime, with the reasoning
that a corrupted database from an interruption midway would be
problematic for applications[1].  Unfortunately, this caused a
significant regression in the time required to run update-mime-database:
commonly from under a second to half a minute or more.

This delay affects the time required to build system-path on NixOS, when
xdg.mime.enable is true (the default).  For example, on one of my systems
system-path builds in ~48 seconds, 45 of which are update-mime-database.
This makes rapidly building new system configurations not fun.

This commit disables the calls to fdatasync().  update-mime-database
checks an environment variable, PKGSYSTEM_ENABLE_FSYNC, to determine
whether it should sync, and we can set this to false.  system-path
already only has whatever filesystem commit guarantees that the Nix
builder provides.  Furthermore, there is no risk of a failed MIME
database update messing up existing packages, because this is Nix.

(This issue was also reported at and discussed by Debian, Red Hat, and
Gentoo at least.)

[1] https://bugs.freedesktop.org/show_bug.cgi?id=70366
2019-05-25 21:00:25 -07:00
..
fonts treewide: Remove usage of isNull 2019-04-29 14:05:50 +02:00
gtk
krb5
xdg nixos/xdg/mime: disable fdatasync when building the XDG MIME database 2019-05-25 21:00:25 -07:00
appstream.nix nixos: add AppStream module 2018-12-04 20:26:25 +00:00
debug-info.nix
gnu.nix
i18n.nix
iproute2.nix
ldap.nix nixos/ldap: set proper User= and Group= for nslcd service 2019-03-28 13:08:47 +01:00
malloc.nix FIx some malformed XML in option descriptions 2019-05-13 09:15:17 +02:00
networking.nix
no-x-libs.nix environment.noXlibs: disable gnome3 support for pinentry (#59051) 2019-04-06 10:06:55 +00:00
nsswitch.nix nixos/nsswitch: add option to configure nssHosts 2019-02-22 23:00:24 +01:00
power-management.nix
pulseaudio.nix nixos/pulseaudio: disable flat-volumes by default 2019-01-27 19:51:26 +00:00
shells-environment.nix
swap.nix
sysctl.nix treewide: Remove usage of isNull 2019-04-29 14:05:50 +02:00
system-environment.nix
system-path.nix nixos/system-path.nix: add 3 to every priority 2019-02-18 21:16:30 -05:00
terminfo.nix
timezone.nix
unix-odbc-drivers.nix
update-users-groups.pl
users-groups.nix lib.makePerlPath -> perlPackages.makePerlPath 2018-12-15 03:50:31 +00:00
vpnc.nix
zram.nix zram: revert "change default algorithm to zstd" (#56856) 2019-03-07 02:11:20 +02:00