about summary refs log tree commit diff
path: root/pkgs/build-support/build-sandbox/src/Makefile
Commit message (Collapse)AuthorAgeFilesLines
* build-support/build-sandbox: add support for mounting /nixProfpatsch2019-04-181-6/+11
| | | | | | Enables us to run nix *inside* of a sandbox. We have to mount the whole store, because otherwise realized store paths built inside of the sandbox are not accessible.
* sandbox: Add an option to set up /bin/shaszlig2019-03-231-0/+3
| | | | | | | | | | | | | | | | So far I mostly used this implementation for the games we have packaged, where we pretty much patch out all commands that execute external programs. However in order to be useful in a more generic way, it makes sense to provide a /bin/sh implementation, especially when you have to deal with scripting languages. I'm using dash here, because it's a more minimal implementation rather than the default shell (bash) we use in nixpkgs and it practically only needs to be able to run constructs like "/bin/sh -c foo". Signed-off-by: aszlig <aszlig@nix.build>
* sandbox: Fix linking against libnixmainaszlig2019-01-131-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since add_DT_NEEDED_for_dynamic is no longer the default for ld[1], we'll get a linking error like this: nix-query.o: undefined reference to symbol '_ZNK3nix5Store22followLinksToStorePathERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE' Unfortunately, the only way to work around this without re-enabling the same flag is directly specify dependencies we really *should* not need to specify because they're a transient dependency of libnixmain. So for now I'm reverting back to the previous behaviour with --copy-dt-needed-entries until I got time to look into it in detail. From the ld(1) manual page: --copy-dt-needed-entries --no-copy-dt-needed-entries This option affects the treatment of dynamic libraries referred to by DT_NEEDED tags inside ELF dynamic libraries mentioned on the command line. Normally the linker will add a DT_NEEDED tag to the output binary for each library mentioned in a DT_NEEDED tag in an input dynamic library. With --no-copy-dt-needed-entries specified on the command line however any dynamic libraries that follow it will have their DT_NEEDED entries ignored. The default behaviour can be restored with --copy-dt-needed-entries. This option also has an effect on the resolution of symbols in dynamic libraries. With the default setting dynamic libraries mentioned on the command line will be recursively searched, following their DT_NEEDED tags to other libraries, in order to resolve symbols required by the output binary. With --no-copy-dt-needed-entries specified however the searching of dynamic libraries that follow it will stop with the dynamic library itself. No DT_NEEDED links will be traversed to resolve symbols. [1]: https://github.com/NixOS/nixpkgs/commit/bcfe7af84b3628a31bfcc43dde30fc553a73adac Signed-off-by: aszlig <aszlig@nix.build>
* pkgs/build-sandbox: Zero-pad minor Nix versionaszlig2018-02-021-1/+2
| | | | | | | | | | | In order to do integer comparisons on the Nix version, we need to zero-pad the minor version, so that we always have two digits. Since the change of Nix version 1.12 to 2.0 the minor version no longer has two digits, so we get 20 instead of 112 and when compared the former is smaller than the latter but it has to be the opposite. Signed-off-by: aszlig <aszlig@nix.build>
* build-sandbox: Move to top-level build-supportaszlig2017-11-301-0/+23
This is not only useful for packaging games, so let's make it available from the vuizvui scope, so we can use it from other packages as well. Signed-off-by: aszlig <aszlig@nix.build>