| Commit message (Collapse) | Author | Age |
| |
|
|
|
|
|
| |
This is a first pass at adding an LFE package.
N.B. man pages are ignored for now.
|
| |
|
|
|
|
|
|
| |
* libqrencode: init at 3.4.4
* libqrencode: add maintainer
#16861
|
|
|
|
|
| |
Throwing a message like "removed 2016-02-29 because unused and broken"
is unhelpful because it doesn't show what function was removed.
|
| |
|
|\
| |
| | |
maphosts: init at 1.1.1
|
| | |
|
| | |
|
|/ |
|
|
|
|
|
| |
"This projects aims at gathering/developing new completion scripts that
are not available in Zsh yet. The scripts are meant to be contributed to
the Zsh project when stable enough."
|
|\
| |
| | |
sift: init at 0.8.0
|
| |
| |
| |
| |
| |
| | |
sift is a fast and powerful alternative to grep.
https://sift-tool.org
|
|/ |
|
| |
|
|\
| |
| | |
lib: Make escapeShellArg more robust
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Quoting various characters that the shell *may* interpret specially is a
very fragile thing to do.
I've used something more robust all over the place in various Nix
expression I've written just because I didn't trust escapeShellArg.
Here is a proof of concept showing that I was indeed right in
distrusting escapeShellArg:
with import <nixpkgs> {};
let
payload = runCommand "payload" {} ''
# \x00 is not allowed for Nix strings, so let's begin at 1
for i in $(seq 1 255); do
echo -en "\\x$(printf %02x $i)"
done > "$out"
'';
escapers = with lib; {
current = escapeShellArg;
better = arg: let
backslashEscapes = stringToCharacters "\"\\ ';$`()|<>\r\t*[]&!~#";
search = backslashEscapes ++ [ "\n" ];
replace = map (c: "\\${c}") backslashEscapes ++ [ "'\n'" ];
in replaceStrings search replace (toString arg);
best = arg: "'${replaceStrings ["'"] ["'\\''"] (toString arg)}'";
};
testWith = escaper: let
escaped = escaper (builtins.readFile payload);
in runCommand "test" {} ''
if ! r="$(bash -c ${escapers.best "echo -nE ${escaped}"} 2> /dev/null)"
then
echo bash eval error > "$out"
exit 0
fi
if echo -n "$r" | cmp -s "${payload}"; then
echo success > "$out"
else
echo failed > "$out"
fi
'';
in runCommand "results" {} ''
echo "Test results:"
${lib.concatStrings (lib.mapAttrsToList (name: impl: ''
echo " ${name}: $(< "${testWith impl}")"
'') escapers)}
exit 1
''
The resulting output is the following:
Test results:
best: success
better: success
current: bash eval error
I did the "better" implementation just to illustrate that the method of
quoting only "harmful" characters results in madness in terms of
implementation and performance.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
Cc: @edolstra, @zimbatm
|
|/ |
|
|\
| |
| | |
User shell config
|
| |
| |
| |
| | |
The string type is still available for backward-compatiblity.
|
|\ \
| | |
| | | |
Escape all shell arguments uniformly
|
| |/ |
|
| | |
|
|\ \
| | |
| | | |
Remove unecessary branching on old nix versions
|
| | |
| | |
| | |
| | |
| | | |
All these builtins are available since 1.10 or earlier (1.10 being the
lib/minver.nix)
|
|/ / |
|
|/
|
|
|
|
|
|
| |
* nixos module included
* install compiled binary
* only one platform now
* limited config options
* relies on providing ssh keys for agent
|
|\
| |
| | |
klavaro: 3.01 -> 3.02
|
| | |
|
| | |
|
|\ \
| | |
| | | |
gap : 4.4.12 -> 4.8.3
|
| |/ |
|
| |
| |
| |
| |
| | |
That's not the case for git submodules
Fixes #15928
|
|/ |
|
|
|
|
|
| |
Looks like this was accidentally left commented out by
5f077e229625583072ebf63ea48b11170771b0ed.
|
|
|
|
| |
* Rename v0.12.25 package from 'syncthing' to 'syncthing012'
* Remove syncthing011
|
| |
|
|
|
|
|
| |
There was inconsisten usage of maintainers.matthewbauer and mbauer.
/cc @matthewbauer I chose the github identifier, as it's customary.
|
|\
| |
| |
| | |
Includes a security update of libxml2.
|
| |\
| | |
| | |
| | | |
... to get the systemd update (rebuilding ~7k jobs).
|
| |\ \
| | | |
| | | |
| | | | |
That's to get mesa rebuild from master, as it's nontrivial.
|
| |\ \ \
| | | | |
| | | | |
| | | | |
| | | | | |
This is a rebase of most commits from #14766,
resolving conflicts and a few other evaluation problems.
|
| | | | | |
|
| |_|_|/
|/| | | |
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
If an option value is not a list, you now get
The option value `bla' in `file.nix' is not a list.
rather than
value is a string while a list was expected, at .../nixpkgs/lib/lists.nix:49:56
|
| |_|/
|/| |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
when possible (#15624)
Example:
$ nixos-option system.nixosLabel
Value:
"16.09.git.4643ca1"
|
| | | |
|
|/ / |
|
|\ \ |
|