Commit graph

946 commits

Author SHA1 Message Date
aszlig
df475092e9
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
2016-06-20 23:53:36 +02:00
zimbatm
31c158ad45 Merge pull request #16189 from zimbatm/usershell-config
User shell config
2016-06-19 23:36:45 +01:00
zimbatm
b0f8416c5c Merge pull request #16180 from zimbatm/shell-escaping
Escape all shell arguments uniformly
2016-06-19 23:27:52 +01:00
Severen Redwood
915edac0ce
adapta-gtk-theme: Init at 3.21.2 2016-06-18 23:33:29 +12:00
Eelco Dolstra
f81fc6b5ac Merge pull request #16289 from zimbatm/old-nix-cleanup
Remove unecessary branching on old nix versions
2016-06-17 14:38:42 +02:00
zimbatm
bec28d748c Remove unecessary branching on old nix versions
All these builtins are available since 1.10 or earlier (1.10 being the
lib/minver.nix)
2016-06-17 11:06:48 +01:00
Franz Thoma
b60b7eeaab i3-gaps: init at 4.12 2016-06-16 14:25:46 +01:00
Paweł Pacana
d2b58dd39a buildkite-agent: init at 2.1.8
* nixos module included
* install compiled binary
* only one platform now
* limited config options
* relies on providing ssh keys for agent
2016-06-13 17:21:08 +01:00
zimbatm
2974b6f4c8 Use shell packages to select the user's shell
The string type is still available for backward-compatiblity.
2016-06-12 20:35:34 +01:00
zimbatm
28fa4a2f03 Escape all shell arguments uniformly 2016-06-12 18:11:37 +01:00
Joachim Fasting
589082646a Merge pull request #16097 from mimadrid/update/klavaro-3.02
klavaro: 3.01 -> 3.02
2016-06-10 00:18:39 +02:00
mimadrid
830c748ea4 Add myself as maintainer 2016-06-09 23:41:17 +02:00
Chris Martin
d33bf90a6f maintainers: add chris-martin 2016-06-04 13:20:13 -04:00
Joachim Fasting
e65698db0b Merge pull request #15939 from ChrisJefferson/fix-gap
gap : 4.4.12 -> 4.8.3
2016-06-04 01:14:09 +02:00
Chris Jefferson
75f793bbb2 gap : 4.4.12 -> 4.8.3 2016-06-03 19:01:12 +01:00
obadz
4c5fdf42ed nixos/modules/misc/version.nix: check that .git is a directory
That's not the case for git submodules
Fixes #15928
2016-06-03 13:38:41 +01:00
Ruslan Babayev
6d3fcd33d7 pktgen: init at 3.0.00 2016-06-02 02:12:06 -07:00
Eelco Dolstra
587473c574 Fix display of deprecated option definition warnings
Looks like this was accidentally left commented out by
5f077e2296.
2016-06-01 12:55:46 +02:00
Paul Hendry
8ea1f2d36c syncthing: 0.12.25 -> 0.13.4 (#15730)
* Rename v0.12.25 package from 'syncthing' to 'syncthing012'
* Remove syncthing011
2016-05-30 10:15:58 +02:00
Redvers Davies
2745b5a652 mtx: init at 1.3.12 2016-05-28 10:43:03 -04:00
Vladimír Čunát
f94a806c4a properly fix the maintainer.matthewbauer problem
There was inconsisten usage of maintainers.matthewbauer and mbauer.
/cc @matthewbauer I chose the github identifier, as it's customary.
2016-05-27 15:58:41 +02:00
Vladimír Čunát
e4832c7541 Merge branch 'staging'
Includes a security update of libxml2.
2016-05-27 15:58:40 +02:00
Graham Christensen
f993e6543a
facetimehd, facetimehd-firmware: Add grahamc as a maintainer 2016-05-26 14:10:03 -05:00
Vladimír Čunát
81039713fa Merge branch 'master' into staging
... to get the systemd update (rebuilding ~7k jobs).
2016-05-26 16:50:22 +02:00
Domen Kožar
1ab408e1da lib.lists: fix fold example 2016-05-26 11:52:35 +01:00
Eelco Dolstra
b056948c00 Improve types.listOf error message
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
2016-05-25 11:39:17 +02:00
obadz
47950b5353 modules/misc/version.nix: populate nixosRevision based on <nixpkgs/.git> when possible (#15624)
Example:

$ nixos-option system.nixosLabel
Value:
"16.09.git.4643ca1"
2016-05-24 23:34:28 +01:00
Vladimír Čunát
0b192a0976 Merge branch 'master' into staging
That's to get mesa rebuild from master, as it's nontrivial.
2016-05-23 09:02:10 +02:00
Vladimír Čunát
c4661e9643 Merge: make dev output references explicit
This is a rebase of most commits from #14766,
resolving conflicts and a few other evaluation problems.
2016-05-22 12:09:23 +02:00
NikolaMandic
9bc61f92ff adding me to maintainers 2016-05-20 19:46:20 +00:00
Charles Strahan
5d54038771
maintainers: update cstrahan's email address 2016-05-19 15:51:04 -04:00
Vladimír Čunát
da2788c3d7 Merge #15354: add tracefilegen and tracefilesim 2016-05-19 10:29:28 +02:00
Tuomas Tynkkynen
e28e010b36 treewide: Make explicit that 'dev' output of curl is used 2016-05-19 10:00:29 +02:00
Roger Qiu
83e9c5caaf Added cmcdragonkai to the list of maintainers 2016-05-19 18:00:14 +10:00
Nikolay Amiantov
cdff1f61f0 lib: revert my bogus comment fix
See 5445e521b6 (commitcomment-17531945)
2016-05-19 01:26:04 +03:00
Nikolay Amiantov
5445e521b6 firefox: restore gstreamer support for older firefox releases 2016-05-19 00:28:49 +03:00
Domen Kožar
b49bf121b8 rename iElectric to domenkozar to match GitHub 2016-05-17 13:00:47 +01:00
Peter Simons
b4f60add6a lib/maintainers.nix: alphabetize the list of user names 2016-05-16 22:49:55 +02:00
Peter Simons
8e462995ba Bring my stdenv.lib.maintainers user name in line with my github nick. 2016-05-16 22:49:55 +02:00
obadz
abd64abdb5 maintainers: fix my email address 2016-05-16 20:09:45 +01:00
Sebastian Jordan
8484328a34 guile-sdl2: init at 0.1.0 2016-05-15 19:04:48 +02:00
Julien Dehos
6400283c09 cpputest: init at 3.7.2 2016-05-15 14:54:19 +02:00
Vladimír Čunát
3e387c3e00 Merge branch 'staging'
Darwin isn't in a perfect state, in particular its bootstrap tools won't
build which will block nixpkgs channel. But on the whole it seems
acceptable.
2016-05-13 10:14:53 +02:00
Frederik Rietdijk
53ffb3fcf1 Merge pull request #15414 from teh/dask
distributed: init at 1.10.0 (+init and update dependencies)
2016-05-12 18:06:34 +02:00
Tom Hunger
dacbeea15b locket: init at 0.2.0 2016-05-12 17:04:40 +01:00
Vladimír Čunát
6c2fbfbd77 Merge branch 'master' into staging 2016-05-12 04:53:38 +02:00
Andrew Abbott
90201710a2 cava: update to 0.4.1 2016-05-11 20:40:03 +10:00
Martijn Vermaat
3ada292a67 lesspipe: init at 1.82
lesspipe.sh is a preprocessor for less.
2016-05-10 22:21:42 +02:00
Vladimír Čunát
1dc36904d8 Merge #14920: windows improvements, mainly mingw 2016-05-05 08:30:19 +02:00
zimbatm
0bc713f817 Merge pull request #15135 from gpyh/asciidoctor
asciidoctor: Init at 1.5.4
2016-05-04 20:42:26 +01:00
Tuomas Tynkkynen
aadaa91379 Merge remote-tracking branch 'upstream/master' into staging
Conflicts:
	pkgs/applications/networking/browsers/vivaldi/default.nix
	pkgs/misc/emulators/wine/base.nix
2016-05-03 23:12:48 +03:00
Nikolay Amiantov
7fec04cd7f Merge pull request #15129 from rardiol/openra
openra: 20141029 -> 20151224
2016-05-02 16:28:20 +04:00
Joachim Fasting
ae59e8c644 Merge pull request #15062 from holidaycheck/node-6.0.0
nodejs-6_x : init at 6.0.0
2016-05-02 09:53:18 +02:00
Tobias Pflug
822abc49ad nodejs-6_x : init at 6.0.0 2016-05-02 08:58:50 +02:00
ryneeverett
1e84b0c070 you-get: init at 0.4.390 2016-05-02 06:21:42 +00:00
Ricardo Ardissone
42cce6ab11 openra: my maintainership 2016-05-01 19:03:07 -03:00
Yacine Hmito
a5a98ce5a3 Added gpyh to the list of maintainers 2016-05-01 15:55:39 +02:00
Nathan Moos
6dac18a8be imatix_gsl: init at 4.1 2016-04-28 18:26:10 -04:00
Tuomas Tynkkynen
4ff8f377af Merge remote-tracking branch 'upstream/master' into staging 2016-04-28 00:13:53 +03:00
Allen Nelson
d7f032e805 Add new package "lsi" (#12780) 2016-04-26 12:24:25 +02:00
Nikolay Amiantov
5f19542581 Merge commit 'refs/pull/14694/head' of git://github.com/NixOS/nixpkgs into staging 2016-04-25 18:02:23 +03:00
Nikolay Amiantov
5ff40ddedf add get* helper functions and mass-replace manual outputs search with them 2016-04-25 13:24:39 +03:00
Nikolay Amiantov
c779e30d53 make*Path: implement via makeSearchPathOutput 2016-04-25 13:24:39 +03:00
Nikolay Amiantov
ab0a0c004e makeSearchPathOutputs: refactor to makeSearchPathOutput 2016-04-25 13:24:39 +03:00
Nikolay Amiantov
7d3e75827b getOutput function: init 2016-04-25 13:22:41 +03:00
Nikolay Amiantov
5f3987f44f Revert "tryAttrs: init function"
This reverts commit 338340f993.
2016-04-25 13:22:41 +03:00
Rafał Łasocha
bea31c31f2 pws: Init at 1.0.6 2016-04-25 01:55:07 +02:00
obadz
5b5ce8dcff fix my email address 2016-04-22 17:16:10 -05:00
Nikolay Amiantov
b2426adf1c Merge pull request #14870 from retrry/rust-updates
Rust Updates
2016-04-22 14:29:14 +04:00
Andrew Burkett
0ddf8c7f6f scrapy: init at 1.0.5 2016-04-21 16:09:18 -07:00
zimbatm
898d9d9e83 Merge pull request #14815 from choochootrain/add-xbanish
xbanish: init at 1.4
2016-04-20 11:36:20 +01:00
Tadas Barzdzius
fe901d1372 maintainers: add retrry to maintainers list 2016-04-20 12:39:14 +03:00
Hurshal Patel
9023722e77
xbanish: init at 1.4 👻 2016-04-19 23:33:38 -07:00
Alexey Shmalko
0ebe901035
avro-c++: Init at 1.7.5 2016-04-19 16:57:02 +03:00
Rahul Gopinath
29f895426c vis: init vis at 0.2x (nightly)
Vis editor is a vim like editor.
This commit provides the initial package for vis (nightly)
2016-04-15 19:44:25 -05:00
Christian Lask
10b2ba56d3 maintainers: update mail address. 2016-04-15 23:07:07 +02:00
Myrl Hex
c73d14a39f profont: init 2016-04-14 14:27:25 +03:00
Nikolay Amiantov
9b9fea305f makeSearchPath (and derivatives): check outputUnspecified 2016-04-13 22:09:41 +03:00
Nikolay Amiantov
e26119619f makePerlPath: try to guess outputs 2016-04-13 22:05:45 +03:00
Nikolay Amiantov
2a3b3d6f8b makeSearchPathOutputs: init function 2016-04-13 22:05:45 +03:00
Nikolay Amiantov
338340f993 tryAttrs: init function 2016-04-13 22:05:45 +03:00
Nikolay Amiantov
5ef56700b9 makeBinPath: guess outputs 2016-04-13 22:05:45 +03:00
zimbatm
04267ed630 Merge pull request #14647 from MostAwesomeDude/tahoe
Tahoe-LAFS improvements
2016-04-13 16:39:53 +01:00
Vladimír Čunát
39ebb01d6e Merge branch 'staging', containing closure-size #7701 2016-04-13 09:25:28 +02:00
Corbin
4c85efbda1 tahoe-lafs: 1.10.2 -> 1.11.0
Also add myself to maintainers, as I *do* care about this package.
2016-04-12 18:44:26 -07:00
joachifm
860aa01782 Merge pull request #14618 from moretea/update_mcrl2
Update mcrl2
2016-04-12 23:42:45 +02:00
joachifm
b0d2c0cade Merge pull request #14613 from cransom/jp
Jp
2016-04-12 22:33:48 +02:00
Maarten Hoogendoorn
ec098aad41 mcrl2: 2009.01 -> 2014.09 2016-04-12 22:16:30 +02:00
Casey Ransom
800367ee37 Add @cransom as a maintainer 2016-04-11 23:51:34 -04:00
Tobias Geerinckx-Rice
57ef1712e3
Substite new GitHub username ‘timbertson’ for ‘gfxmonk’ 2016-04-11 16:35:18 +02:00
Vladimír Čunát
30f14243c3 Merge branch 'master' into closure-size
Comparison to master evaluations on Hydra:
  - 1255515 for nixos
  - 1255502 for nixpkgs
2016-04-10 11:17:52 +02:00
joachifm
ddef34387d Merge pull request #14518 from CrystalGamma/master
lombok: init at 1.16.8
2016-04-09 17:47:15 +02:00
Frederik Rietdijk
dddafe61eb Merge pull request #14498 from expipiplus1/python-cgkit
pythonPackages.cgkit: init at 2.0.0
2016-04-09 11:51:15 +02:00
Jona Stubbe (CrystalGamma)
8430db7e17 lombok: init at 1.16.8 2016-04-09 10:00:08 +02:00
Vladimír Čunát
710573ce6d Merge #12653: rework default outputs 2016-04-07 16:00:09 +02:00
Vladimír Čunát
d1df28f8e5 Merge 'staging' into closure-size
This is mainly to get the update of bootstrap tools.
Otherwise there were mysterious segfaults:
https://github.com/NixOS/nixpkgs/pull/7701#issuecomment-203389817
2016-04-07 14:40:51 +02:00
Joe Hermaszewski
2be0505b8d pythonPackages.cgkit: Add maintenance information
Add @expipiplus as a maintainer.
2016-04-07 11:34:53 +01:00
ldesgoui
f2a88f89c6 discord: init at 0.0.1 2016-04-05 13:17:43 +02:00
Eelco Dolstra
fd2273e419 Stronger warning against usage of splitString 2016-04-01 13:52:54 +02:00
Vladimír Čunát
ab15a62c68 Merge branch 'master' into closure-size
Beware that stdenv doesn't build. It seems something more will be needed
than just resolution of merge conflicts.
2016-04-01 10:06:01 +02:00