about summary refs log tree commit diff
path: root/pkgs/build-support
Commit message (Collapse)AuthorAge
* Merge staging-next into stagingFrederik Rietdijk2018-12-08
|\
| * Merge master into staging-nextFrederik Rietdijk2018-12-08
| |\
| | * Merge pull request #49918 from cocreature/agda-envDmitry Kalinkin2018-12-07
| | |\ | | | | | | | | agda: use writeShellScriptbin instead of writeScriptBin
| | | * agda: use exec in agdaWrapperDmitry Kalinkin2018-12-07
| | | |
| | | * agda: use writeShellScriptbin instead of writeScriptBinMoritz Kiefer2018-11-08
| | | | | | | | | | | | | | | | | | | | | | | | This adds the shell shebang to the wrapper script. Without this, emacs and in particular agda2-mode (but probably other applications as well) return a format error when trying to execute agda.
* | | | Merge staging-next into stagingFrederik Rietdijk2018-12-07
|\| | |
| * | | Merge master into staging-nextFrederik Rietdijk2018-12-07
| |\| |
| | * | Merge pull request #51528 from grahamc/buildImage-on-layered-imagelewo2018-12-07
| | |\ \ | | | | | | | | | | dockertools buildImage: support new-style image specs
| | | * | dockerTools.buildImage: support using a layered image in fromImageGraham Christensen2018-12-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Docker images used to be, essentially, a linked list of layers. Each layer would have a tarball and a json document pointing to its parent, and the image pointed to the top layer: imageA ----> layerA | v layerB | v layerC The current image spec changed this format to where the Image defined the order and set of layers: imageA ---> layerA |--> layerB `--> layerC For backwards compatibility, docker produces images which follow both specs: layers point to parents, and images also point to the entire list: imageA ---> layerA | | | v |--> layerB | | | v `--> layerC This is nice for tooling which supported the older version and never updated to support the newer format. Our `buildImage` code only supported the old version, so in order for `buildImage` to properly generate an image based on another image with `fromImage`, the parent image's layers must fully support the old mechanism. This is not a problem in general, but is a problem with `buildLayeredImage`. `buildLayeredImage` creates images with newer image spec, because individual store paths don't have a guaranteed parent layer. Including a specific parent ID in the layer's json makes the output less likely to cache hit when published or pulled. This means until now, `buildLayeredImage` could not be the input to `buildImage`. The changes in this PR change `buildImage` to only use the layer's manifest when locating parent IDs. This does break buildImage on extremely old Docker images, though I do wonder how many of these exist. This work has been sponsored by Target.
| | * | | buildRustCreate: export RUSTDOC during cargo configAustin Seipp2018-12-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | See https://github.com/NixOS/nixpkgs/pull/50452#issuecomment-443455411 Signed-off-by: Austin Seipp <aseipp@pobox.com>
| | * | | Merge pull request #51353 from krebs/nix-writersJörg Thalheim2018-12-04
| | |\ \ \ | | | |/ / | | |/| | build-support writers: content can be string or file
| | | * | build-support writers: content can be string or filelassulus2018-12-04
| | | | |
| | * | | Merge pull request #50452 from P-E-Meunier/carnix-fixGraham Christensen2018-12-03
| | |\ \ \ | | | |/ / | | |/| | Rust build-support: fixing a compilation error in some crates
| | | * | Carnix 0.9.2Pierre-Étienne Meunier2018-11-27
| | | | |
| | | * | Fixing "include"Pierre-Étienne Meunier2018-11-22
| | | | |
| | | * | Rust build-support: fixing a compilation error in some crates (such as ↵Pierre-Étienne Meunier2018-11-16
| | | | | | | | | | | | | | | | | | | | proc-macro2)
* | | | | audit-tmpdir hook: clean up whitespaceBjørn Forsman2018-12-02
| | | | |
* | | | | audit-tmpdir hook: use abspath matching on RPATH entriesBjørn Forsman2018-12-02
|/ / / / | | | | | | | | | | | | | | | | | | | | This ensures that RPATH entries like "/foo/build/bar" doesn't trigger a match when TMPDIR is "/build/bar". (I've had this problem with a prebuilt package.)
* | | | Merge remote-tracking branch 'upstream/master' into stagingJan Tojnar2018-11-30
|\| | |
| * | | Merge master into staging-nextFrederik Rietdijk2018-11-30
| |\ \ \
| | * | | ocamlPackages.buildDunePackage: fix meta.platformsVincent Laporte2018-11-30
| | | | |
| | * | | buildMaven: Support metadata-only dependenciesCharles Duffy2018-11-29
| | | | | | | | | | | | | | | | | | | | The circumstances which can make this necessary are discussed in NixOS/mvn2nix-maven-plugin#17
* | | | | Merge pull request #51217 from mayflower/source-date-epoch-fix-warningJohn Ericson2018-11-29
|\ \ \ \ \ | | | | | | | | | | | | set-source-date-epoch-to-latest: fix warning
| * | | | | set-source-date-epoch-to-latest: fix warningRobin Gloster2018-11-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If there was no older file than $NIX_BUILD_TOP this would result in a warning, e.g. with nix-info. ``` /nix/store/15kgcm8hnd99p7plqzx7p4lcr2jni4df-set-source-date-epoch-to-latest.sh: line 13: [: : integer expression expected ```
* | | | | | Merge staging-next into stagingFrederik Rietdijk2018-11-29
|\ \ \ \ \ \ | |/ / / / / |/| / / / / | |/ / / /
| * | | | Merge master into staging-nextFrederik Rietdijk2018-11-29
| |\| | |
| | * | | Merge pull request #50235 from illegalprime/more-fhsuserenv-blacklistsMatthew Bauer2018-11-28
| | |\ \ \ | | | | | | | | | | | | fix FHSUserEnv blacklists
| | | * | | fix FHSUserEnv blacklistsMichael Eden2018-11-11
| | | | | |
| | * | | | melpaBuild: Get package-build from melpa/package-buildThomas Tuegel2018-11-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit causes melpaBuild to use package-build from melpa/package-build instead of melpa/melpa. Development of package-build happens in the former repository whereas the latter is much larger, containing also the MELPA recipes. We do not need to fetch the MELPA recipes from melpa/melpa, as we fetch them one-by-one for Nixpkgs.
| | * | | | Merge pull request #51095 from bhipple/fix/emacs-buildersThomas Tuegel2018-11-27
| | |\ \ \ \ | | | | | | | | | | | | | | emacsPackagesNg.trivialBuild: cleanup and standardize function
| | | * | | | emacsPackagesNg.trivialBuild: cleanup and standardize functionBenjamin Hipple2018-11-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | No real function change here, but this updates the trivial and melpa builders to be formatted more consistently with the rest of the builders, and swaps `eval "$preBuild"` for the more standard `runHook preBuild`.
| | * | | | | Merge pull request #50802 from aszlig/autopatchelf-improvementsJörg Thalheim2018-11-27
| | |\ \ \ \ \ | | | | | | | | | | | | | | | | autoPatchelfHook: Fixes/improvements for Android SDK emulator
| | | * | | | | autoPatchelfHook: Skip on missing segment headersaszlig2018-11-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the file in question is not a shared object file but an ELF, we really want to skip the file, because we won't have anything to patch there. For example if the file is created via "gcc -c -o foo.o foo.c", we don't get a segment header and so far autoPatchelf was trying to patch such a file. By checking for missing segment headers, we're now no longer going to attempt patching such a file. Signed-off-by: aszlig <aszlig@nix.build> Reported-by: Sander van der Burg <svanderburg@gmail.com>
| | | * | | | | autoPatchelfHook: Fix type of norecurse variableaszlig2018-11-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | While declaring it as an array doesn't do any harm in our usage, it might be a bit confusing when reading the code. Signed-off-by: aszlig <aszlig@nix.build>
| | | * | | | | autoPatchelfHook: Add addAutoPatchelfSearchPathaszlig2018-11-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This function is useful if autoPatchelf is invoked during some of the phases of a build and allows to add arbitrary shared objects to the search path. So far the same functionality was in autoPatchelf itself, but not available as a separate function, so when adding shared objects to the dependency cache one would have to do so manually. The function also has the --no-recurse flag, which prevents recursing into subdirectories. Signed-off-by: aszlig <aszlig@nix.build>
| | | * | | | | autoPatchelfHook: Add --no-recurse flagaszlig2018-11-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is to be used with the autoPatchelf command and allows to only patch a specific file or directory without recursing into subdirectories. Apart from being able to run the command in a standalone way, as detailled in the previous commit this is also needed for the Android SDK emulator, because according to @svanderburg there are subdirectories we don't want to patch. The reason why I didn't use GNU getopt is that it might not be available on all operating systems and the getopts bash builtin doesn't support long arguments. Apart from that, the implementation for recognizing the flag is pretty trivial and it's also using bash builtins only, so if we want to do something really fancy someday, we can still change it. Signed-off-by: aszlig <aszlig@nix.build>
| | | * | | | | autoPatchelfHook: Allow to prevent automatic runaszlig2018-11-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If you want to only run autoPatchelf on a specific path and leave everything else alone, we now have a $dontAutoPatchelf environment variable, which causes the postFixup hook to not run at all. The name "dontAutoPatchelf" probably is a bit weird in conjunction with putting "autoPatchelfHook" in nativeBuildInputs, but unless someone comes up with a better name I keep it that way because it's consistent with all the other dontStrip, dontPatchShebangs, dontPatchELF and whatnot. A specific example where this is needed is when building the Android SDK emulator, which contains a few ARM binaries in subdirectories that should not be patched. If we were to run autoPatchelf on all outputs unconditionally we'd run into errors because some ARM libraries couldn't be found. Signed-off-by: aszlig <aszlig@nix.build>
| | | * | | | | autoPatchelfHook: Make easier to run autoPatchelfaszlig2018-11-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The autoPatchelf main function which is run against all of the outputs was pretty much tailored towards this specific setup-hook and was relying on $prefix to be set globally. So if you wanted to run autoPatchelf manually - let's say during buildPhase - you would have needed to run it like this: prefix=/some/directory autoPatchelf This is now more intuitive and all you need to do is run the following: autoPatchelf /some/directory Signed-off-by: aszlig <aszlig@nix.build>
| | * | | | | | Merge pull request #49290 from krebs/nix-writersJörg Thalheim2018-11-27
| | |\ \ \ \ \ \ | | | |_|/ / / / | | |/| | | | | get nix-writers into nixpkgs
| | | * | | | | build-support writers: add testslassulus2018-11-27
| | | | | | | |
| | | * | | | | build-support: add writers from krebs/writerslassulus2018-11-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reference https://github.com/krebs/nix-writers revision 40fde9e
* | | | | | | | Merge pull request #51028 from clefru/tmp-cargo-configJörg Thalheim2018-11-26
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | buildRustPackage: write cargo config to temporary file instead of source dir
| * | | | | | | | Write cargo config to temporary file instead of source dir.Clemens Fruhwirth2018-11-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ... as this fails if the source dir contains a "config" directory.
* | | | | | | | | Merge staging-next into stagingFrederik Rietdijk2018-11-24
|\ \ \ \ \ \ \ \ \ | | |/ / / / / / / | |/| | | | | | |
| * | | | | | | | Merge master into staging-nextFrederik Rietdijk2018-11-24
| |\ \ \ \ \ \ \ \ | | | |/ / / / / / | | |/| | | | | |
| | * | | | | | | Merge pull request #50560 from oxij/pkgs/fetchurl-mirrorsJörg Thalheim2018-11-23
| | |\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | fetchurl: mirrors: http -> https, https before http, http before ftp
| | | * | | | | | | fetchurl: mirrors: http -> https, https before http, http before ftpJan Malakhovski2018-11-22
| | | | |_|_|_|/ / | | | |/| | | | | | | | | | | | | | | | | | | | | | | Because HTTP has a higher probability of working behind proxies.
* | | | | | | | | Merge staging-next into stagingFrederik Rietdijk2018-11-22
|\| | | | | | | |
| * | | | | | | | Merge master into staging-nextFrederik Rietdijk2018-11-22
| |\| | | | | | |
| | * | | | | | | bintools: use i386 on all 32 bit x86 systemsMatthew Bauer2018-11-21
| | | | | | | | |