3
0
Fork 0
forked from mirrors/nixpkgs
Nix Packages collection
Go to file
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
.github CODEOWNERS: Change me from all NixOS modules to just new ones 2019-05-01 20:32:02 +02:00
doc ibus-engines.typing-booster: support french by default 2019-05-23 15:53:50 +02:00
lib Merge pull request #60406 from JohnAZoidberg/remove-isnull 2019-05-18 09:36:24 +00:00
maintainers Merge pull request #62058 from freepotion/maintainer-email-update 2019-05-26 02:00:34 +09:00
nixos nixos/xdg/mime: disable fdatasync when building the XDG MIME database 2019-05-25 21:00:25 -07:00
pkgs Merge pull request #62072 from thumphries/autorandr-docfix 2019-05-25 22:37:30 -05:00
.editorconfig Revert ".version: remove final newline" 2018-04-28 14:23:13 +02:00
.gitattributes gitattributes: disable merge=union in all-packages 2018-03-27 11:03:03 -05:00
.gitignore Replace androidenv by new implementation 2018-12-18 21:16:06 +01:00
.version 19.09 is Loris. 2019-02-25 23:21:14 +01:00
COPYING COPYING: include 2019 2019-03-18 19:55:33 -07:00
default.nix Fix local path to release notes in error message 2018-10-08 05:43:15 -05:00
README.md README: 18.09 -> 19.03 2019-04-28 19:15:08 +02:00

logo

Code Triagers Badge

Nixpkgs is a collection of packages for the Nix package manager. It is periodically built and tested by the Hydra build daemon as so-called channels. To get channel information via git, add nixpkgs-channels as a remote:

% git remote add channels https://github.com/NixOS/nixpkgs-channels.git

For stability and maximum binary package support, it is recommended to maintain custom changes on top of one of the channels, e.g. nixos-19.03 for the latest release and nixos-unstable for the latest successful build of master:

% git remote update channels
% git rebase channels/nixos-19.03

For pull requests, please rebase onto nixpkgs master.

NixOS Linux distribution source code is located inside nixos/ folder.

Communication:

Note: MIT license does not apply to the packages built by Nixpkgs, merely to the package descriptions (Nix expressions, build scripts, and so on). It also might not apply to patches included in Nixpkgs, which may be derivative works of the packages to which they apply. The aforementioned artifacts are all covered by the licenses of the respective packages.