diff options
| author | Bryan Gardiner <bog@khumba.net> | 2019-05-25 20:25:12 -0700 |
|---|---|---|
| committer | Bryan Gardiner <bog@khumba.net> | 2019-05-25 21:00:25 -0700 |
| commit | 2400191caf15fec9b6376ca99c555f09df31d294 (patch) | |
| tree | dfa1b27e57ef9b5972d7c75cdb3710a9daaf56b9 /pkgs/development/python-modules/python-mapnik/python-mapnik_std_optional.patch | |
| parent | e380ef398761206954e51426d16a328eaba27fce (diff) | |
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
Diffstat (limited to 'pkgs/development/python-modules/python-mapnik/python-mapnik_std_optional.patch')
0 files changed, 0 insertions, 0 deletions
