Commit graph

899 commits

Author SHA1 Message Date
John Ericson f073df60d6 Replace ./../* with ../* in Nix expressions (#16414) 2016-06-22 10:39:50 +02:00
zimbatm bc6b93511f Merge pull request #16377 from aszlig/improve-escape-shell-arg
lib: Make escapeShellArg more robust
2016-06-21 14:32:45 +01:00
Benjamin Saunders 8e47786c0e coturn: init at 4.5.0.3 (#16284) 2016-06-21 12:59:29 +02:00
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