Commit Graph

581 Commits

Author SHA1 Message Date
aszlig
1cba74dfc1
setup-hooks: Add autoPatchelfHook
I originally wrote this for packaging proprietary games in Vuizvui[1]
but I thought it would be generally useful as we have a fair amount of
proprietary software lurking around in nixpkgs, which are a bit tedious
to maintain, especially when the library dependencies change after an
update.

So this setup hook searches for all ELF executables and libraries in the
resulting output paths after install phase and uses patchelf to set the
RPATH and interpreter according to what dependencies are available
inside the builder.

For example consider something like this:

stdenv.mkDerivation {
  ...
  nativeBuildInputs = [ autoPatchelfHook ];
  buildInputs = [ mesa zlib ];
  ...
}

Whenever for example an executable requires mesa or zlib, the RPATH will
automatically be set to the lib dir of the corresponding dependency.

If the library dependency is required at runtime, an attribute called
runtimeDependencies can be used to list dependencies that are added to
all executables that are discovered unconditionally.

Beside this, it also makes initial packaging of proprietary software
easier, because one no longer has to manually figure out the
dependencies in the first place.

[1]: https://github.com/openlab-aux/vuizvui

Signed-off-by: aszlig <aszlig@nix.build>
Closes: #34506
2018-02-10 00:27:24 +05:30
Michael Raskin
718de7c2e4
Merge pull request #33306 from bgamari/patch-2
haskell: Recommend use of hoogle --local
2018-02-06 21:34:10 +00:00
Michael Raskin
8eba2a5be8
Merge pull request #31312 from binarin/emacs-package-set-overrides
emacs-packages: Cleanup and document for overrides
2018-02-06 21:22:23 +00:00
pe@pijul.org
8f20e7ce3a carnix: 0.6.0 -> 0.6.5 2018-02-03 22:31:54 +00:00
John Ericson
94a2af91eb doc: Cross chapter: Add note on why use example platforms 2018-01-26 12:38:34 -05:00
John Ericson
e316ba1fc4 doc: chap cross: Make example command stick out more
It should be in a <programlisting>, not <command>, tag.
2018-01-26 12:33:14 -05:00
Frederik Rietdijk
2ea3db2830 Python docs: remove name attribute
The `name` attribute is filled in when `pname` and `version` are specified.
See https://github.com/NixOS/nixpkgs/pull/31173
2018-01-16 18:01:06 +01:00
Jörg Thalheim
bb9bcfa295 doc/cross-compilation: fixes typos 2018-01-11 16:26:30 +00:00
John Ericson
4e907dbca1 stdenv: Force doCheck and doInstallCheck to be false when we are cross compiling
I hope this will be a temporary measure. If there is consensus around
issue #33599, then we can follow an explicit `dontCheck`, but default to
not checking during cross builds when none is given.
2018-01-09 12:37:12 -05:00
Ben Gamari
fa085fc07b
haskell: Recommend use of hoogle --local
This works around the browser security restriction of 
disallowing links from http:// to file://.
2018-01-01 19:16:23 -05:00
John Ericson
4d2b763817
Merge pull request #26805 from obsidiansystems/cross-elegant
Make cross compilation elegant
2017-12-30 22:58:02 -05:00
John Ericson
8a434b625d doc: Add cross cookbook
An excellent suggestion from @bgamari
2017-12-30 22:42:15 -05:00
John Ericson
edfe42f3ba doc: More information in the setup hook section of the stdenv chapter 2017-12-30 22:42:14 -05:00
John Ericson
b55999b28f doc: Document dontStripHost and dontStripTarget 2017-12-30 22:41:44 -05:00
John Ericson
7ffc4e1b2f doc: Add "Specifying Dependencies" section to the stdenv chapter
This accounts for all the new dependencies and propagation logic changes
I'm about to add.

Fixes #1915---with this change I think the distinction is finally clear
enough.
2017-12-30 22:35:59 -05:00
Piotr Bogdan
7f91eb94be haskell docs: change wording in the "Miscellaneous Topics" section 2017-12-26 12:19:46 +00:00
zimbatm
a9ae16c2b9 doc: fix typo 2017-12-24 00:40:01 +00:00
Yegor Timoshenko
108f76c927
Merge pull request #31668 from rycee/doc/naming
docs: clarify package and module option naming
2017-12-23 17:12:29 +03:00
zimbatm
adc5c9b83d
mkShell: add builder (#30975) 2017-12-20 23:42:07 +00:00
Leonid Onokhov
574528024d nixpkgs/manual: fix build with new pandoc 2017-12-20 14:22:05 +00:00
Yegor Timoshenko
a0aeb2381e doc: system.environmentPackages -> environment.systemPackages 2017-12-20 02:19:43 +00:00
Vladimír Čunát
1bc288591e
coqPackages docs: fix typo (and thus manual build) 2017-12-19 11:34:54 +01:00
Vladimír Čunát
4a2340ff6b
Merge branch 'staging' 2017-12-19 10:27:13 +01:00
Vincent Laporte
5642f4ac6f
coqPackages: update documentation 2017-12-18 15:30:37 +00:00
Vladimír Čunát
24d81d6332
Merge branch 'master' into staging 2017-12-15 21:40:23 +01:00
Vaibhav Sagar
4bbb9fca51 Update haskell.md
Unindent prose that was incorrectly being displayed as code.
2017-12-14 11:21:18 +08:00
John Ericson
a0b1ebeee9 Merge remote-tracking branch 'upstream/staging' into binutils-wrapper 2017-12-13 16:14:47 -05:00
John Ericson
91ca46f693 doc: Document Bintools Wrapper
Shrunk the CC Wrapper documentation so as not to be repetative.
2017-12-13 16:08:18 -05:00
Pierre-Étienne Meunier
5a0d954156 add buildRustCrate function to build rust crates 2017-12-12 04:58:45 -06:00
Vladimír Čunát
2309acf723
Merge branch 'master' into staging 2017-12-09 21:00:07 +01:00
Frederik Rietdijk
41ff561b75 Python docs: fix nix-shell example 2017-12-08 17:06:56 +01:00
Frederik Rietdijk
19be72f880 Revert "Python docs: fix nix-shell example"
This reverts commit aa2326682c7210027747a2b5ee7f33311dc8fe10.

Forgot parentheses...
2017-12-08 17:06:03 +01:00
Frederik Rietdijk
aa2326682c Python docs: fix nix-shell example 2017-12-08 17:05:19 +01:00
Orivej Desh
683047f8ab doc: document enableParallelBuilding being unset 2017-12-07 08:52:42 +00:00
Jörg Thalheim
4657fc893a
Merge pull request #32174 from lheckemann/weechat-all-default
weechat: default to enabling all plugins
2017-11-29 23:02:32 +00:00
Linus Heckemann
566a16b742 weechat: default to enabling all plugins
Plain weechat is still accessible as `weechat.unwrapped`
or `weechat.override {configure = null;}`.

Also update documentation to reflect this change.
2017-11-29 15:30:56 +00:00
Vladimír Čunát
addd20e6f9
Merge branch 'master' into staging 2017-11-28 18:19:34 +01:00
Benjamin Hipple
05c00a8345 haskell docs: fix typo 2017-11-27 22:24:32 -05:00
Orivej Desh
29b2984b0c
Merge pull request #31987 from jtojnar/devhelp-devdoc
stdenv: Move devhelp books to outputDevdoc
2017-11-25 23:14:47 +00:00
Vaibhav Sagar
1349174b1b doc: rust is an attribute set, not a package
Using `rust` instead of `rustc cargo` doesn't work in either `systemPackages` or `nix-shell -p`
2017-11-24 15:26:37 +08:00
Jan Tojnar
70a0580e38
stdenv: Move devhelp books to outputDevdoc 2017-11-24 02:09:44 +01:00
Vladimír Čunát
c1ac1256f3
documentation: python 2.6 is no more 2017-11-19 08:18:55 +01:00
Samuel Dionne-Riel
f8d232e233
documentation: python3Packages is python36Packages
Close #31810.
2017-11-19 08:18:43 +01:00
Chris Martin
b43c5e0160 nixpkgs manual: how to make a patch file with git
This addresses #31684.
2017-11-17 17:46:07 -05:00
Orivej Desh
5b4adc3126 doc: improve rustPlatform example 2017-11-17 07:26:51 +00:00
Vladimír Čunát
f609512d01
Merge #31614: doc/manual/stdenv: fix a typo 2017-11-14 20:37:15 +01:00
Robert Helgesson
91154416b6
docs: clarify package and module option naming
This attempts to briefly clarify the current naming conventions of
attribute names in `all-packages.nix` and module option names.
2017-11-14 19:17:35 +01:00
John Ericson
350a5e31fc
Merge pull request #29418 from vanschelven/small-documentation-improvements
documentation: cross-compilation - partial rewrite
2017-11-13 16:21:58 -05:00
Bruno Bieth
0e05dfcfa2 Typo in manual#stdenv - propagatedNativeBuildInputs 2017-11-13 17:55:18 +01:00
Orivej Desh
467d22c15b documentation: fix typos 2017-11-09 12:57:21 +00:00