Before this change, xdg-open would impurely look up mimetype in the PATH. While
it would fall back to file if not found, mimetype gives decidedly better output
(e.g. text/csv instead of just text/plain).
Or else `xdg-screensaver suspend <WINDOW_ID>` fails with errors like:
Can't locate Net/DBus.pm in @INC [...]
This increases the closure of xdg-utils from 53 MiB to 119 MiB.
(The issue was found when testing retroarch.)
XDG_CONFIG_DIRS should contain directories ordered by priority
so if we want users to be able to customize the defaults, we
need to move the shipped values to the end.
There ver very many conflicts, basically all due to
name -> pname+version. Fortunately, almost everything was auto-resolved
by kdiff3, and for now I just fixed up a couple evaluation problems,
as verified by the tarball job. There might be some fallback to these
conflicts, but I believe it should be minimal.
Hydra nixpkgs: ?compare=1538299
So far, the output binary has been just "validate", which is quite a
very generic name and doesn't match the package name.
Even though I highly doubt that this program will ever be used outside
of NixOS modules, it's nevertheless less confusing to have a consistent
naming.
Signed-off-by: aszlig <aszlig@nix.build>
The only reason why I was using _GNU_SOURCE was because of vasprintf(),
so getting rid of that extension should make the source way more
portable.
When using vsnprintf() with a null pointer for the output buffer and a
size of 0, I wasn't quite sure whether this would be undefined
behaviour, so I looked it up in the C11 standard.
In section 7.21.6.5, it explicitly mentions this case, so we're lucky:
If n is zero, nothing is written, and s may be a null pointer.
Additionally, section 7.21.6.12 writes the following about vsnprintf():
The vsnprintf function does not invoke the va_end macro.
So to be sure to avoid undefined behaviour I subsequently added the
corresponding va_end() calls.
With this, the platforms attribute is now "unix", because the program
should now even run on OS X, even though it usually wouldn't be needed.
Signed-off-by: aszlig <aszlig@nix.build>
I initially didn't use $CC because I thought this would be GCC specific,
but it turns out that Clang actually accepts -std=gnu11.
So using $CC here might not work on compilers other than Clang or GCC,
but at the moment those are the compilers we typically use in nixpkgs,
so even if we'd use some other compiler it *might* even work there.
I've tested this by compiling against clangStdenv with both $CC and
clang hardcoded and it works.
This was reported by @dkudriavtsev on IRC.
Signed-off-by: aszlig <aszlig@nix.build>