Commit Graph

1144 Commits

Author SHA1 Message Date
Christian Lask
2d524a37f8 Remove myself as maintainer. 2016-11-03 11:54:54 +01:00
Vincent Demeester
1e2f37e9f4
godef: init at 20160620-ee532b9
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2016-11-03 08:30:49 +01:00
rbasso
66a25908de maintainers: add rbasso 2016-11-03 03:25:06 +09:00
zraexy
b7996efeae maintainers: add zraexy 2016-10-31 12:17:32 -08:00
zraexy
a3a40b7089 maintainers: fix alphabetical sorting
Put the list back into alphabetical order
2016-10-30 20:30:52 -08:00
Domen Kožar
62edf873aa Merge pull request #18660 from aneeshusa/add-override-attrs
mkDerivation: add overrideAttrs function
2016-10-30 11:32:15 +01:00
Guillaume Koenig
dd04af4fcc reno: init at 1.8.0 2016-10-29 13:30:18 +02:00
Charles Strahan
ca2b03439f Merge pull request #19496 from Ericson2314/overridePackages
Make `overridePackages` extend rather than replace existing overrides
2016-10-26 14:01:13 -04:00
Kier Davis
a057dfc57f
unigine-valley: init at 1.0-1
Closes https://github.com/NixOS/nixpkgs/pull/19813
2016-10-24 19:35:06 -04:00
AbigailBuccaneer
1983181a7f bootil: init at HEAD 2016-10-24 18:23:26 +01:00
Drill Bear
86793f600c mtpaint: init at 3.49.12 2016-10-23 15:45:49 +01:00
Nick Novitski
69cf5aa4f3
frotz: init at 2.44
Closes https://github.com/NixOS/nixpkgs/pull/19595/files
2016-10-22 07:12:58 -04:00
Vladimír Čunát
210b3b3184 maintainers: add uwap
... to fix evaluation after 42e93b5f.
2016-10-22 12:10:05 +02:00
Jörg Thalheim
9c0b5e4b22 Merge pull request #19666 from veprbl/hep_for_upstream
Add fastjet, hepmc, yoda, rivet, lhapdf, herwig, pythia, sacrifice, nlojet++
2016-10-21 21:58:45 +02:00
Dmitry Kalinkin
b4e3e7b752
add veprbl to maintainers 2016-10-21 13:29:57 -04:00
Philipp
5c3a6d6802 Added package for dehydrated. (#19651)
* Added package for dehydrated.
2016-10-20 13:32:05 +02:00
Pascal Wittmann
24c3271e39 Merge pull request #17554 from KaiHa/master
nitrokey-app: init at 0.4.0
2016-10-20 07:55:05 +02:00
Kai Harries
c43243f085 nitrokey-app: add kaiha as maintainer 2016-10-20 07:15:45 +02:00
Mikhail Volkhov
42cf40bfbd
scudcloud: init at 1.35/254-port-to-qt5 2016-10-19 18:45:31 +03:00
John Ericson
e4cd45a30c top-level: Make overridePackages extend rather than replace existing overrides 2016-10-13 11:14:11 -04:00
Jörg Thalheim
9079bc08e5 Merge pull request #19362 from davorb/purple-facebook
purple-facebook: init at 66ee77378d82
2016-10-12 13:38:34 +02:00
Michael Raskin
e207ba7d6a fetchMD5warn: use INFO, maybe Hydra will like this more 2016-10-12 09:31:38 +02:00
Charles Strahan
da36847d92
nixos: make it easy to apply kernel patches
This makes it easy to specify kernel patches:

    boot.kernelPatches = [ pkgs.kernelPatches.ubuntu_fan_4_4 ];

To make the `boot.kernelPatches` option possible, this also makes it
easy to extend and/or modify the kernel packages within a linuxPackages
set. For example:

    pkgs.linuxPackages.extend (self: super: {
      kernel = super.kernel.override {
        kernelPatches = super.kernel.kernelPatches ++ [
          pkgs.kernelPatches.ubuntu_fan_4_4
        ];
      };
    });

Closes #15095
2016-10-11 19:59:00 -04:00
Peter Simons
2804067fc8 Merge pull request #19462 from dipinhora/pony-stable
pony-stable: init at 2016-10-10
2016-10-11 22:43:07 +02:00
dipinhora
8a7cb597ae pony-stable: init at 2016-10-10 2016-10-11 16:07:55 -04:00
Vladimír Čunát
9d1dfc9ed0 Merge #18861: add AMDGPU-PRO driver 2016-10-11 19:57:30 +02:00
Davor Babić
7cf6f46bd1 purple-facebook: init at 66ee77378d82
adds inherit src meta
2016-10-10 16:23:27 +02:00
Jörg Thalheim
6f389da98d Merge pull request #19399 from sternenseemann/master
Add libgee_0_8 and valadoc-unstable
2016-10-10 11:52:33 +02:00
Jörg Thalheim
905239db28 Merge pull request #18868 from RonnyPfannschmidt/enpass
enpass: init at 5.3.0
2016-10-10 07:56:56 +02:00
sternenseemann
3fb2993cb3 maintainers: rename lukasepple according to github account name 2016-10-09 22:04:22 +02:00
Michael Raskin
f603dc11a6 fetch*: print a trace warning about md5 deprecation 2016-10-09 16:19:04 +02:00
Ronny Pfannschmidt
98895f5b67 enpass: init at 5.3.0 2016-10-09 13:16:50 +02:00
Andrey Trachenko
bd6584277d
maintainers: add goodrone 2016-10-07 14:11:22 +02:00
Gabriel Adomnicai
18d7e2ac33 camingo-code: init at 1.0 2016-10-06 17:47:50 -07:00
Michael Weiss
8268f0a759 pgpdump: init at v0.31
Add the package "pgpdump" at version v0.31 under the category
"tools/security", add it to the top-level package collection and set
myself as the maintainer (I added myself to lib/maintainers.nix).

I have tested this package under NixOS and Gentoo+Nix.
2016-10-06 03:17:01 +02:00
Michael Lieberman
5baecbc4af ptpython: init at 0.35 2016-10-05 15:36:57 -04:00
Kiba Fox
151edd446d
tinyfugue: init at 50b8 2016-10-04 17:46:26 -04:00
makefu
46370ee178
licenses: add Beerware 2016-10-03 19:43:26 +02:00
Alex Ivanov
43d327c137 rambox, franz: recommendations by Mic92 2016-10-03 19:24:57 +03:00
Aneesh Agrawal
39b64b52ed mkDerivation: add overrideAttrs function
This is similar to `overrideDerivation`, but overrides the arguments to
`mkDerivation` instead of the underlying `derivation` call.

Also update `makeOverridable` so that uses of `overrideAttrs` can be
followed by `override` and `overrideDerivation`, i.e. they can be
mix-and-matched.
2016-10-02 11:08:34 -04:00
Jörg Thalheim
fd8e5bf117 Merge pull request #17843 from lucas8/imlibsetroot
imlibsetroot: init at 1.2
2016-10-02 16:39:27 +02:00
Jörg Thalheim
c2ee2a723f Merge pull request #19156 from apeyroux/init/c14
c14: init at 2016-09-09
2016-10-02 15:31:53 +02:00
Francis St-Amour
643d5f80fd
linenoise: init at 1.0.10
Closes https://github.com/NixOS/nixpkgs/pull/19117
2016-10-02 13:03:51 +02:00
Alexandre Peyroux
e5aea822dd mainteners: add apeyroux 2016-10-02 12:18:26 +02:00
Jörg Thalheim
7d3143990f Merge pull request #19136 from nhooyr/powerdns
powerdns: removed PrivateTmp=true in serviceConfig
2016-10-01 18:28:34 +02:00
Anmol Sethi
489ca7e5c0
powerdns: removed PrivateTmp=true in serviceConfig
As discussed in #18718 PrivateTmp is unnecessary because powerdns is
chrooted to /var/lib/powerdns.

I also added myself as co-maintainer.
2016-10-01 12:27:23 -04:00
Joachim F
206851b166 Merge pull request #18922 from ericsagnes/feat/mkOptionModuleFunctions
Functions to change and merge module options
2016-10-01 17:58:40 +02:00
Joachim F
7e80c42b0e Merge pull request #18511 from ericsagnes/feat/remove-optionSet
modules: optionSet -> submodule
2016-10-01 17:57:45 +02:00
David McFarland
44bc50ca15 Add myself as maintainer 2016-09-28 18:46:45 -03:00
Daniel Peebles
58ce50fedf Merge pull request #19049 from grwlf/smironov-email
maintainers: change smironov email
2016-09-28 14:28:26 -04:00
Sergey Mironov
098113bbff maintainers: change smironov email 2016-09-28 21:24:05 +03:00
Henry
295efa1062 libnabo: init at 1.0.6 2016-09-27 15:49:51 +02:00
Joachim F
81f47f7982 Merge pull request #18700 from yochai/master
mfcj470dw: split into mfcj470dwlpr and mfcj470dwcupswrapper
2016-09-27 12:56:05 +02:00
zimbatm
b92a367bed Merge pull request #18969 from loskutov/master
libxml++: add 3.0.0
2016-09-27 11:01:43 +01:00
Ignat Loskutov
8843c40b1a libxmlxx3: add myself as a maintainer 2016-09-27 01:53:43 -04:00
zimbatm
d4c66e2f46 Merge pull request #18694 from bachp/runner-master
gitlab-runner: add package and service
2016-09-26 22:45:39 +01:00
Yochai
3b548dacf4 mfcj470dw: split into mfcj470dwlpr and mfcj470dwcupswrapper 2016-09-26 18:26:52 +03:00
Joachim F
2522504bd1 Merge pull request #18463 from regnat/selfoss
Selfoss : add package and module
2016-09-24 16:10:39 +02:00
Joachim F
6c935af9e1 Merge pull request #18761 from schneefux/nextcloud
nextcloud: init at 10.0.0
2016-09-24 15:55:26 +02:00
Eric Sagnes
26ea947d33 lib/module: add mkChangedOptionModule function 2016-09-24 21:10:29 +09:00
Eric Sagnes
13eefc3a31 lib/module: add mkMergedOptionModule function 2016-09-24 21:09:52 +09:00
schneefux
9cab11980b
maintainers: add schneefux 2016-09-24 09:17:36 +02:00
Anthony Cowley
a3c26fec32 redprl: init at 2016-09-22 2016-09-23 20:37:20 -04:00
Pascal Bach
373b37f179 gitlab-runner: init at 1.6.0 2016-09-23 22:38:56 +02:00
Joachim F
fc4751eccc Merge pull request #18751 from TvoroG/rtlwifi
rtlwifi_new: init at 2016-09-12
2016-09-22 22:50:46 +02:00
Marsel
52dd323047 rtlwifi_new: init at 2016-09-12 2016-09-20 16:18:24 +03:00
Eelco Dolstra
1c043e0749 toDerivation: Provide "out" and "outputName" attributes 2016-09-19 20:02:07 +02:00
Profpatsch
61462c94e6 lib/fetchers.nix: factor out impure proxy vars (#18702)
Apparently everyone just copied those variables, instead of creating a
library constant for them. Some even removed the comment. -.-
2016-09-17 21:50:01 +02:00
Jon Banafato
24923bae6e Add myself to maintainers file 2016-09-16 18:15:04 -04:00
Profpatsch
bd44207786 lib/default.nix: reorder imports for clarity
Group imports according to the kind of functions they contain, in a more
descriptive manner.
2016-09-15 01:21:42 +02:00
Théophane Hufschmitt
e5ac0c8f17 mainteners: add regnat 2016-09-14 09:22:54 +02:00
lucas8
85f532bf41
imlibsetroot: init at 1.2 2016-09-13 10:49:57 +02:00
Eric Sagnes
f923905346 optionSet type: enable deprecation message 2016-09-13 12:57:36 +09:00
Tuomas Tynkkynen
49f4ba7ae0 Merge commit 'e0b5eef' from staging into master 2016-09-12 13:21:45 +03:00
cmfwyp
d6404ad48e
cabin: init at 1.005 2016-09-12 11:13:26 +02:00
Jesse Haber-Kucharsky
99e06fe771 opam, aspcud: init packages for external solver (#16938)
The opam package manager relies on external solvers to determine package
management decisions it makes related to upgrades, new installations,
etc.

While, strictly speaking, an external solver is optional, aspcud is
highly recommended in documentation. Furthermore, even having a
relatively small number of packages installed quickly causes the limits
of the interal solver to be reached (before it times out).

Aspcud itself depends on two programs from the same suite: gringo, and
clasp.

On Darwin, Boost 1.55 (and thus Gringo) do not build, so we only support
Aspcud on non-Darwin platforms.
2016-09-12 10:44:50 +02:00
Tuomas Tynkkynen
e0b5eef4e7 lib.chooseDevOutputs: Use lib.getDev
Reduces duplication, plus is actually needed for Go packages (at least
go-repo-root).
2016-09-12 00:18:18 +03:00
danbst
a01d4ee3f4 tomcat: add danbst as maintainer 2016-09-09 18:29:12 +02:00
Shea Levy
d81d59aad9 Merge branch 'fix/st-update-0.7' of git://github.com/andsild/nixpkgs 2016-09-06 18:04:48 -04:00
Dan Peebles
247c54e374 souffle: init at 1.0.0 2016-09-06 17:45:13 -04:00
asildnes
29aac27089 st: 0.6 -> 0.7 2016-09-06 22:00:19 +02:00
Nikolay Amiantov
845cb949fc Merge pull request #18306 from aske/speech
Speech synthesizer improvements
2016-09-05 04:44:51 +04:00
aske
045bcfef4b maintainers: add aske 2016-09-05 03:33:40 +03:00
Dmitry Ivanov
b52d937475 tcpkali: init at 0.9 2016-09-04 09:21:27 +00:00
Tuomas Tynkkynen
8c4aeb1780 Merge staging into master
Brings in:
    - changed output order for multiple outputs:
      https://github.com/NixOS/nixpkgs/pull/14766
    - audit disabled by default
      https://github.com/NixOS/nixpkgs/pull/17916

 Conflicts:
	pkgs/development/libraries/openldap/default.nix
2016-09-01 13:27:27 +03:00
Frederik Rietdijk
c99076e968 add maintainers
@nand0p @ryansydnor
2016-08-30 12:28:13 +02:00
Eelco Dolstra
822e1ddd89 Use builtins.partition if available 2016-08-29 17:50:06 +02:00
Tuomas Tynkkynen
5326e85f3d stdenv.mkDerivation: Use chooseDevOutputs 2016-08-29 14:49:51 +03:00
s1lvester
0b22104c1d keepassx2-http: init at 2.0.2 (#18039) 2016-08-29 00:02:19 +00:00
Domen Kožar
e01e92f12f Merge pull request #15025 from ericsagnes/modules/manual
manual: automatically generate modules documentation
2016-08-28 13:57:34 +02:00
Domen Kožar
4af09e0031 Merge pull request #14311 from Profpatsch/mkRemovedOptionModule-replacement
mkRemovedOptionModule: add replacement argument
2016-08-28 13:55:28 +02:00
Jörg Thalheim
b170bed1ff lib.licenses: Fix typo in fdl13 license description (#18053) 2016-08-28 07:56:40 +00:00
Nikolay Amiantov
3f70fcd4c1 Merge pull request #11484 from oxij/nixos-toposort-filesystems
lib: add toposort, nixos: use toposort for fileSystems to properly support bind and move mounts
2016-08-27 14:34:55 +04:00
Graham Christensen
8d10928ad0 Merge pull request #17908 from Mic92/ferm
Ferm
2016-08-25 20:38:02 -04:00
Jan Malakhovski
363b0fd040 lib: introduce listDfs and toposort, add example to hasPrefix 2016-08-23 17:48:13 +00:00
Jörg Thalheim
80036bcb1d
add mic92 to maintainers 2016-08-22 13:07:44 +02:00
Ertugrul Söylemez
00dc8c3033 Update compton-git to rev f1cd308.
Also update maintainer's e-mail address.
2016-08-21 07:19:00 +02:00
Peter Simons
99252ad1b4 Merge pull request #17762 from copumpkin/warnings
lib.{warn, info}: add simple helpers
2016-08-19 11:10:27 +02:00
Joachim F
a4bbb2d9a3 Merge pull request #17688 from nexusdev/solc
Add Solidity (Ethereum compiler)
2016-08-17 23:45:34 +02:00
Daniel Brockman
6999aad158 solc: add maintainer @dbrock 2016-08-17 23:31:20 +02:00
Artyom Shalkhakov
a28c729766 gnustep: init
Adding new library: gnustep-startup, which packages the core
libraries necessary for GNUstep: gnustep-make, gnustep-base,
gnustep-gui, gnustep-backend.
2016-08-16 20:58:57 +00:00
Dan Peebles
4dfdb27e00 lib.{warn, info}: add simple helpers
See also https://github.com/NixOS/nix/issues/749.
2016-08-15 13:54:23 -04:00
Michal Rus
397a17aef9 visualvm: init at 1.3.8 (#17745) 2016-08-15 05:45:48 +02:00
Marius Bakke
b5bd862f24
maintainers.nix: update own email address 2016-08-14 00:07:50 +01:00
Domen Kožar
661415d4eb getVersion: first try drv.version before parsing drv.name 2016-08-13 17:17:36 +02:00
Данило Глинський (Danylo Hlynskyi)
0a0b7eb5f2 fix documentation typo in lib/strings.nix (#17684) 2016-08-12 08:30:11 +00:00
Vladimír Čunát
d4de02c46e treewide: change $IN_NIX_SHELL handling
... to be compatible with https://github.com/NixOS/nix/pull/933
while not breaking compatibility with current nix.
2016-08-11 16:40:44 +02:00
Domen Kožar
221f7f18c1 hasSuffix: human readable inputs 2016-08-10 20:06:52 +02:00
Eric Sagnes
4cdfeb78f9 modules: move meta at top level 2016-08-11 00:29:48 +09:00
Mohammed Yaseen Mowzer
04f0cb86d0 geogebra: init at 5.0.265.0
Closes #17400
2016-08-10 14:32:09 +01:00
Domen Kožar
ebffa9fd06 flatten: drastically improve performance, see #17626 2016-08-10 12:02:58 +02:00
obadz
f242b752fe lib/sources.nix@commitIdFromGitRepo: parenthesize what should always have been
Fixes error: cannot coerce a partially applied built-in function to a string, at lib/sources.nix:59:32

I don't understand how this used to work, but doesn't work anymore?
2016-08-08 11:46:41 +01:00
Rok Garbas
d21981c2a8 Merge pull request #16506 from Profpatsch/debug-trace
traceSeq, traceValSeq, deprecate strict
2016-08-07 03:49:05 +02:00
Domen Kožar
39e689e316 cleanSource: filter out also nix result symlinks (#16120) 2016-08-06 19:53:18 +01:00
Mounium
8fcea0822e added myself to maintainers.nix 2016-08-03 09:49:44 +02:00
Eric Sagnes
e276842f6a lib: refactor nixpkgsVersion with fileContents 2016-08-01 18:35:26 +09:00
Eric Sagnes
85d8b01660 lib: refactor commitIdFromGitRepo with fileContents 2016-08-01 18:35:26 +09:00
Eric Sagnes
56575cc0ac lib: add fileContents function 2016-08-01 18:35:25 +09:00
Josef Kemetmueller
33b9935878 Add geant4 license
This license was left out during the geant4 pull request:
https://github.com/NixOS/nixpkgs/pull/3963
2016-07-31 21:27:44 +02:00
Robin Lambertz
b65e9d87e2 matrix-synapse: Only run StartPre script when data folder doesn't exist (#17216) 2016-07-28 04:13:21 +02:00
obadz
fee334f672 lib/sources.nix@commitIdFromGitRepo: remove use of lib.splitString
lib.splitString was blowing up the stack in instances where the
.git/packed-refs file was too large. We now use a regexp over the
whole file instead.

Closes #16570
2016-07-27 15:47:08 +01:00
Proglodyte
16bd51fc0d v8: fix 4.5.107 build
Similar to #14272, but fixes 4.5 build rather than generic.
- Ignores errors due to strict-overflow warnings
- Strips clang-only '-Wno-format-pedantic' flag out since this build
  uses gcc
2016-07-24 02:34:32 -04:00
Shawn Warren
9886c80daa Add gocd agent and server service packages (#16273)
GoCD is an open source continuous delivery server specializing in advanced workflow
modeling and visualization.  Update maintainers list to include swarren83.  Update
module list to include gocd agent and server module.  Update packages list to include
gocd agent and server package.  Update version, revision and checksum for GoCD
release 16.5.0.
2016-07-23 00:29:18 +02:00
Joachim F
46c924c4a2 Merge pull request #17178 from amiloradovsky/add-evilwm
evilwm: init at 1.1.1 (#17104)
2016-07-22 23:28:11 +02:00
Andrew Miloradovsky
17b127205d evilwm: init at 1.1.1 (#17104)
Minimalist window manager for the X Window System
2016-07-22 19:15:57 +00:00
Dmytro Rets
2311673aa9
pythonPackages.jenkinsapi: init at 0.2.32 2016-07-20 01:33:04 +02:00
Langston Barrett
c40a0b50f7 doctl: init at 1.3.1 (#17066) 2016-07-19 12:30:35 +02:00
Hans-Christian Esperer
88154e2877 commandergenius: init at 194beta 2016-07-15 12:54:52 +02:00
Ioannis Koutras
4f987e0e60 maintainers.nix: add joko 2016-07-13 15:47:14 +03:00
Eric Bailey
9d58f894cd lfe: init at 1.1.1 (#16865)
This is a first pass at adding an LFE package.

N.B. man pages are ignored for now.
2016-07-12 13:48:33 +02:00
Martin Gammelsæter
811cf56f5f mypy-lang: init at 0.4.2 2016-07-11 19:35:00 +02:00
Adolfo E. García
b25d21955e libqrencode: init at 3.4.4
* libqrencode: init at 3.4.4
* libqrencode: add maintainer

#16861
2016-07-11 17:46:30 +02:00
Eelco Dolstra
532211c68d Really remove library functions
Throwing a message like "removed 2016-02-29 because unused and broken"
is unhelpful because it doesn't show what function was removed.
2016-07-11 16:34:46 +02:00
Nathan Moore
09f366a360 solarus: init at 1.4.5 2016-07-05 18:33:51 -07:00
Joachim Fasting
291c454d5e Merge pull request #16594 from mpscholten/maphosts2
maphosts: init at 1.1.1
2016-07-02 14:05:09 +02:00
Ram Kromberg
0253f7eafb transgui: init at 5.0.1-svn-r986 2016-07-01 13:51:47 +03:00
Scott Olson
73ee19f0e1 drumstick: init at 1.0.2 2016-06-30 14:39:03 -06:00
Marc Scholten
479c08750a maphosts: init at 1.1.1 2016-06-29 13:31:54 +02:00
Ole Jørgen Brønner
08f0ce1d0a zsh-completions: init at version 0.18.0 (#16512)
"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."
2016-06-27 00:39:18 +02:00
zimbatm
8f5184beab Merge pull request #16500 from carlsverre/add/sift
sift: init at 0.8.0
2016-06-26 12:08:17 +01:00
Profpatsch
93bbe13f98 debug.nix: deprecate strict
Replace the implementation by seq and add a deprecation warning.
The semantics seems a little bit off, but the function should only be
used for debugging.
2016-06-26 02:05:45 +02:00
Profpatsch
6889f53397 debug.nix: add traceSeq & traceValSeq
Debugging functions that strictly deep-evaluate the argument that should
be traced.
2016-06-26 02:04:58 +02:00
Carl Sverre
a12ec263fa sift: init at 0.8.0
sift is a fast and powerful alternative to grep.

https://sift-tool.org
2016-06-25 14:10:34 -07:00
Christine Koppelt
117fb73965 git-ant-tools.git-extras: 3.0.0 -> 4.1.0 2016-06-25 14:21:16 +02:00
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