diff options
19 files changed, 145 insertions, 97 deletions
diff --git a/nixos/modules/services/networking/wireguard.nix b/nixos/modules/services/networking/wireguard.nix index 564632a85ae..41aff1480a0 100644 --- a/nixos/modules/services/networking/wireguard.nix +++ b/nixos/modules/services/networking/wireguard.nix @@ -202,7 +202,7 @@ let }; script = '' - modprobe wireguard + ${optionalString (!config.boot.isContainer) "modprobe wireguard"} ${values.preSetup} diff --git a/nixos/tests/docker-tools.nix b/nixos/tests/docker-tools.nix index 360b32faae7..ecd14b274eb 100644 --- a/nixos/tests/docker-tools.nix +++ b/nixos/tests/docker-tools.nix @@ -62,5 +62,9 @@ import ./make-test.nix ({ pkgs, ... }: { # Ensure Layered Docker images work $docker->succeed("docker load --input='${pkgs.dockerTools.examples.layered-image}'"); $docker->succeed("docker run --rm ${pkgs.dockerTools.examples.layered-image.imageName}"); + + # Ensure building an image on top of a layered Docker images work + $docker->succeed("docker load --input='${pkgs.dockerTools.examples.layered-on-top}'"); + $docker->succeed("docker run --rm ${pkgs.dockerTools.examples.layered-on-top.imageName}"); ''; }) diff --git a/nixos/tests/run-in-machine.nix b/nixos/tests/run-in-machine.nix index 116f5dc28a6..339a4b9a740 100644 --- a/nixos/tests/run-in-machine.nix +++ b/nixos/tests/run-in-machine.nix @@ -10,11 +10,14 @@ let drv = pkgs.hello; machine = { ... }: { /* services.sshd.enable = true; */ }; }; -in pkgs.runCommand "verify-output" { inherit output; } '' - if [ ! -e "$output/bin/hello" ]; then - echo "Derivation built using runInMachine produced incorrect output:" >&2 - ls -laR "$output" >&2 - exit 1 - fi - "$output/bin/hello" > "$out" -'' + + test = pkgs.runCommand "verify-output" { inherit output; } '' + if [ ! -e "$output/bin/hello" ]; then + echo "Derivation built using runInMachine produced incorrect output:" >&2 + ls -laR "$output" >&2 + exit 1 + fi + "$output/bin/hello" > "$out" + ''; + +in test // { inherit test; } # To emulate behaviour of makeTest diff --git a/pkgs/applications/backup/crashplan/crashplan-small-business.nix b/pkgs/applications/backup/crashplan/crashplan-small-business.nix index 529b0dbd42b..2016d21c592 100644 --- a/pkgs/applications/backup/crashplan/crashplan-small-business.nix +++ b/pkgs/applications/backup/crashplan/crashplan-small-business.nix @@ -98,6 +98,6 @@ stdenv.mkDerivation rec { license = licenses.unfree; platforms = [ "x86_64-linux" ]; maintainers = with maintainers; [ xvapx ]; + broken = true; # 2018-12-06 }; - } diff --git a/pkgs/applications/graphics/yed/default.nix b/pkgs/applications/graphics/yed/default.nix index 9100efc8639..7267e9bc485 100644 --- a/pkgs/applications/graphics/yed/default.nix +++ b/pkgs/applications/graphics/yed/default.nix @@ -1,16 +1,15 @@ -{ stdenv, requireFile, makeWrapper, unzip, jre }: +{ stdenv, fetchzip, makeWrapper, unzip, jre }: stdenv.mkDerivation rec { name = "yEd-${version}"; - version = "3.18.1.1"; + version = "3.18.2"; - src = requireFile { - name = "${name}.zip"; - url = "https://www.yworks.com/en/products/yfiles/yed/"; - sha256 = "0jl0c18jkmy21ka5xgki8dqq2v8cy63qvmx3x01wrhiplmczn97y"; + src = fetchzip { + url = "https://www.yworks.com/resources/yed/demo/${name}.zip"; + sha256 = "1csj19j9mfx4jfc949sz672h8lnfj217nn32d54cxj8llks82ycy"; }; - nativeBuildInputs = [ unzip makeWrapper ]; + nativeBuildInputs = [ makeWrapper unzip ]; installPhase = '' mkdir -p $out/yed diff --git a/pkgs/applications/networking/browsers/chromium/plugins.nix b/pkgs/applications/networking/browsers/chromium/plugins.nix index 1acbf4fa57b..54e7216544e 100644 --- a/pkgs/applications/networking/browsers/chromium/plugins.nix +++ b/pkgs/applications/networking/browsers/chromium/plugins.nix @@ -100,11 +100,11 @@ let flash = stdenv.mkDerivation rec { name = "flashplayer-ppapi-${version}"; - version = "31.0.0.153"; + version = "32.0.0.101"; src = fetchzip { url = "https://fpdownload.adobe.com/pub/flashplayer/pdc/${version}/flash_player_ppapi_linux.x86_64.tar.gz"; - sha256 = "0c7vh1h9lzx09njf7w1acvj2v91girlzflqxzli8nxza7pd1zb2v"; + sha256 = "1bmmjraqzdz03jzbgs1l932gka1zhiyiis06r4yi4f93mdy31w72"; stripRoot = false; }; diff --git a/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/default.nix b/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/default.nix index 9aee9ef8c00..96db22ecaba 100644 --- a/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/default.nix +++ b/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/default.nix @@ -74,25 +74,25 @@ let in stdenv.mkDerivation rec { name = "flashplayer-${version}"; - version = "31.0.0.153"; + version = "32.0.0.101"; src = fetchurl { url = if debug then - "https://fpdownload.macromedia.com/pub/flashplayer/updaters/31/flash_player_npapi_linux_debug.${arch}.tar.gz" + "https://fpdownload.macromedia.com/pub/flashplayer/updaters/32/flash_player_npapi_linux_debug.${arch}.tar.gz" else "https://fpdownload.adobe.com/get/flashplayer/pdc/${version}/flash_player_npapi_linux.${arch}.tar.gz"; sha256 = if debug then if arch == "x86_64" then - "0d3ch1ksxra8hvbqnzj5fmbvlz6hq42b3rncx4vpjlwrcjd9ggy9" + "0383r5pl1jrspy06mpxq50kkip5q5v052kz9aymk4qylgy1dwpn2" else - "1qldcashv1x64cvpbx1741hz32rmc0dp7i3ayhpbi15rvf95qx8f" + "1vx2map0wlj6bj8dqyxxaymmz9awjjfhi6097knpmqp6j8dj7l5g" else if arch == "x86_64" then - "114n3kvdyfmn2w6w6zbijx29fz10x3cbjyy3ci05n0y07lhq1grc" + "003mr9mqkg0agj3zlmci5a1m3lnhj27mnvqswjaffdg5rlihvxyi" else - "0sxvjf3xylm4bmhianyfy54gzbm4gkq1i9q8gg4fn3nb3c0z7327"; + "1smmdsnnlsssakzqas5268svyv3rk717zr7kwpkj4rd5d1pqwcps"; }; nativeBuildInputs = [ unzip ]; diff --git a/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/standalone.nix b/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/standalone.nix index b1a22673d01..9713f7d6971 100644 --- a/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/standalone.nix +++ b/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/standalone.nix @@ -50,19 +50,19 @@ stdenv.mkDerivation rec { name = "flashplayer-standalone-${version}"; - version = "31.0.0.153"; + version = "32.0.0.101"; src = fetchurl { url = if debug then - "https://fpdownload.macromedia.com/pub/flashplayer/updaters/31/flash_player_sa_linux_debug.x86_64.tar.gz" + "https://fpdownload.macromedia.com/pub/flashplayer/updaters/32/flash_player_sa_linux_debug.x86_64.tar.gz" else - "https://fpdownload.macromedia.com/pub/flashplayer/updaters/31/flash_player_sa_linux.x86_64.tar.gz"; + "https://fpdownload.macromedia.com/pub/flashplayer/updaters/32/flash_player_sa_linux.x86_64.tar.gz"; sha256 = if debug then - "1k78nwrz5zbsj5jvn340n2y4dz1zxrcb7f7955d8dra15w0zax1k" + "1i59vfhxrlksxwmr3kj3dfbasfjgnx9aimmv400z07fw3zmdrbpw" else - "0ajg3p4c36xzvvjl2hpbzn2g3xwjgf2xy6x4478aq7fxfgb0vf6s"; + "0fz9zhp0qn9xda5pg37dfnvx04n8d7156h1qayf2l3la94apsacq"; }; nativeBuildInputs = [ unzip ]; diff --git a/pkgs/applications/networking/browsers/vivaldi/default.nix b/pkgs/applications/networking/browsers/vivaldi/default.nix index 89dd6775719..e3269f15ac6 100644 --- a/pkgs/applications/networking/browsers/vivaldi/default.nix +++ b/pkgs/applications/networking/browsers/vivaldi/default.nix @@ -17,7 +17,7 @@ stdenv.mkDerivation rec { src = fetchurl { url = "https://downloads.vivaldi.com/stable/${product}-stable_${version}_amd64.deb"; - sha256 = "08x6abyz65vx4ycj8ys8sib9z1adb8ybmnrqjck69b30kbz78rj2"; + sha256 = "00rxp6rardxjg17g2b28y2rj8szqlainp4ga6c58z981zkxvdlls"; }; unpackPhase = '' diff --git a/pkgs/build-support/docker/default.nix b/pkgs/build-support/docker/default.nix index 890f64a9d3b..f16cb7cec13 100644 --- a/pkgs/build-support/docker/default.nix +++ b/pkgs/build-support/docker/default.nix @@ -188,22 +188,27 @@ rec { # Use the name and tag to get the parent ID field. parentID=$(jshon -e $fromImageName -e $fromImageTag -u \ < image/repositories) + + cat ./image/manifest.json | jq -r '.[0].Layers | .[]' > layer-list + else + touch layer-list fi # Unpack all of the parent layers into the image. lowerdir="" - while [[ -n "$parentID" ]]; do - echo "Unpacking layer $parentID" - mkdir -p image/$parentID/layer - tar -C image/$parentID/layer -xpf image/$parentID/layer.tar - rm image/$parentID/layer.tar + extractionID=0 + for layerTar in $(cat layer-list); do + echo "Unpacking layer $layerTar" + extractionID=$((extractionID + 1)) + + mkdir -p image/$extractionID/layer + tar -C image/$extractionID/layer -xpf $layerTar + rm $layerTar - find image/$parentID/layer -name ".wh.*" -exec bash -c 'name="$(basename {}|sed "s/^.wh.//")"; mknod "$(dirname {})/$name" c 0 0; rm {}' \; + find image/$extractionID/layer -name ".wh.*" -exec bash -c 'name="$(basename {}|sed "s/^.wh.//")"; mknod "$(dirname {})/$name" c 0 0; rm {}' \; # Get the next lower directory and continue the loop. - lowerdir=$lowerdir''${lowerdir:+:}image/$parentID/layer - parentID=$(cat image/$parentID/json \ - | (jshon -e parent -u 2>/dev/null || true)) + lowerdir=$lowerdir''${lowerdir:+:}image/$extractionID/layer done mkdir work @@ -673,6 +678,9 @@ rec { if [[ -n "$fromImage" ]]; then echo "Unpacking base image..." tar -C image -xpf "$fromImage" + + cat ./image/manifest.json | jq -r '.[0].Layers | .[]' > layer-list + # Do not import the base image configuration and manifest chmod a+w image image/*.json rm -f image/*.json @@ -690,6 +698,8 @@ rec { for l in image/*/layer.tar; do ls_tar $l >> baseFiles done + else + touch layer-list fi chmod -R ug+rw image @@ -742,17 +752,23 @@ rec { # Use the temp folder we've been working on to create a new image. mv temp image/$layerID + # Add the new layer ID to the beginning of the layer list + ( + # originally this used `sed -i "1i$layerID" layer-list`, but + # would fail if layer-list was completely empty. + echo "$layerID/layer.tar" + cat layer-list + ) | ${pkgs.moreutils}/bin/sponge layer-list + # Create image json and image manifest imageJson=$(cat ${baseJson} | jq ". + {\"rootfs\": {\"diff_ids\": [], \"type\": \"layers\"}}") manifestJson=$(jq -n "[{\"RepoTags\":[\"$imageName:$imageTag\"]}]") - currentID=$layerID - while [[ -n "$currentID" ]]; do - layerChecksum=$(sha256sum image/$currentID/layer.tar | cut -d ' ' -f1) + + for layerTar in $(cat ./layer-list); do + layerChecksum=$(sha256sum image/$layerTar | cut -d ' ' -f1) imageJson=$(echo "$imageJson" | jq ".history |= [{\"created\": \"$(jq -r .created ${baseJson})\"}] + .") imageJson=$(echo "$imageJson" | jq ".rootfs.diff_ids |= [\"sha256:$layerChecksum\"] + .") - manifestJson=$(echo "$manifestJson" | jq ".[0].Layers |= [\"$currentID/layer.tar\"] + .") - - currentID=$(cat image/$currentID/json | (jshon -e parent -u 2>/dev/null || true)) + manifestJson=$(echo "$manifestJson" | jq ".[0].Layers |= [\"$layerTar\"] + .") done imageJsonChecksum=$(echo "$imageJson" | sha256sum | cut -d ' ' -f1) diff --git a/pkgs/build-support/docker/examples.nix b/pkgs/build-support/docker/examples.nix index 003e7429a81..090bfafa085 100644 --- a/pkgs/build-support/docker/examples.nix +++ b/pkgs/build-support/docker/examples.nix @@ -156,5 +156,24 @@ rec { name = "layered-image"; tag = "latest"; config.Cmd = [ "${pkgs.hello}/bin/hello" ]; + contents = [ pkgs.hello pkgs.bash pkgs.coreutils ]; + }; + + # 11. Create an image on top of a layered image + layered-on-top = pkgs.dockerTools.buildImage { + name = "layered-on-top"; + tag = "latest"; + fromImage = layered-image; + extraCommands = '' + mkdir ./example-output + chmod 777 ./example-output + ''; + config = { + Env = [ "PATH=${pkgs.coreutils}/bin/" ]; + WorkingDir = "/example-output"; + Cmd = [ + "${pkgs.bash}/bin/bash" "-c" "echo hello > foo; cat foo" + ]; + }; }; } diff --git a/pkgs/development/python-modules/astroid/default.nix b/pkgs/development/python-modules/astroid/default.nix index d773c08e189..4cef66a5c2e 100644 --- a/pkgs/development/python-modules/astroid/default.nix +++ b/pkgs/development/python-modules/astroid/default.nix @@ -5,13 +5,13 @@ buildPythonPackage rec { pname = "astroid"; - version = "2.0.4"; + version = "2.1.0"; disabled = pythonOlder "3.4"; src = fetchPypi { inherit pname version; - sha256 = "c7013d119ec95eb626f7a2011f0b63d0c9a095df9ad06d8507b37084eada1a8d"; + sha256 = "08hz675knh4294bancdapql392fmbjyimhbyrmfkz1ka7l035c1m"; }; # From astroid/__pkginfo__.py diff --git a/pkgs/development/python-modules/pylint/default.nix b/pkgs/development/python-modules/pylint/default.nix index 4f4eb3cfc73..d5eec0f73bd 100644 --- a/pkgs/development/python-modules/pylint/default.nix +++ b/pkgs/development/python-modules/pylint/default.nix @@ -3,13 +3,13 @@ buildPythonPackage rec { pname = "pylint"; - version = "2.1.1"; + version = "2.2.2"; disabled = pythonOlder "3.4"; src = fetchPypi { inherit pname version; - sha256 = "31142f764d2a7cd41df5196f9933b12b7ee55e73ef12204b648ad7e556c119fb"; + sha256 = "14klyan9lqanyi8qhrbn65k7bgv9p7i7ply662r2lr27wydf57b8"; }; checkInputs = [ pytest pytestrunner pyenchant ]; diff --git a/pkgs/development/r-modules/wrapper-rstudio.nix b/pkgs/development/r-modules/wrapper-rstudio.nix index 8ad3a103c93..5cbedf403d2 100644 --- a/pkgs/development/r-modules/wrapper-rstudio.nix +++ b/pkgs/development/r-modules/wrapper-rstudio.nix @@ -1,15 +1,15 @@ -{ stdenv, R, rstudio, makeWrapper, recommendedPackages, packages, qtbase }: +{ lib, runCommand, R, rstudio, makeWrapper, recommendedPackages, packages, qtbase }: let - qtVersion = with stdenv.lib.versions; "${major qtbase.version}.${minor qtbase.version}"; + qtVersion = with lib.versions; "${major qtbase.version}.${minor qtbase.version}"; in -stdenv.mkDerivation rec { +runCommand (rstudio.name + "-wrapper") { + preferLocalBuild = true; + allowSubstitutes = false; - name = rstudio.name + "-wrapper"; + nativeBuildInputs = [makeWrapper]; - buildInputs = [makeWrapper R rstudio] ++ recommendedPackages ++ packages; - - unpackPhase = ":"; + buildInputs = [R rstudio] ++ recommendedPackages ++ packages; # rWrapper points R to a specific set of packages by using a wrapper # (as in https://nixos.org/nixpkgs/manual/#r-packages) which sets @@ -20,18 +20,14 @@ stdenv.mkDerivation rec { # into an R file (fixLibsR) which achieves the same effect, then # uses R_PROFILE_USER to load this code at startup in RStudio. fixLibsR = "fix_libs.R"; - installPhase = '' - mkdir $out - echo "# Autogenerated by wrapper-rstudio.nix from R_LIBS_SITE" > $out/${fixLibsR} - echo -n ".libPaths(c(.libPaths(), \"" >> $out/${fixLibsR} - echo -n $R_LIBS_SITE | sed -e 's/:/", "/g' >> $out/${fixLibsR} - echo -n "\"))" >> $out/${fixLibsR} - echo >> $out/${fixLibsR} - makeWrapper ${rstudio}/bin/rstudio $out/bin/rstudio --set R_PROFILE_USER $out/${fixLibsR} \ - --prefix QT_PLUGIN_PATH : ${qtbase}/lib/qt-${qtVersion}/plugins - ''; - - meta = { - platforms = stdenv.lib.platforms.unix; - }; } +'' +mkdir $out +echo "# Autogenerated by wrapper-rstudio.nix from R_LIBS_SITE" > $out/$fixLibsR +echo -n ".libPaths(c(.libPaths(), \"" >> $out/$fixLibsR +echo -n $R_LIBS_SITE | sed -e 's/:/", "/g' >> $out/$fixLibsR +echo -n "\"))" >> $out/$fixLibsR +echo >> $out/$fixLibsR +makeWrapper ${rstudio}/bin/rstudio $out/bin/rstudio --set R_PROFILE_USER $out/$fixLibsR \ + --prefix QT_PLUGIN_PATH : ${qtbase}/lib/qt-${qtVersion}/plugins +'' diff --git a/pkgs/development/r-modules/wrapper.nix b/pkgs/development/r-modules/wrapper.nix index d77c24e913d..76e819501a5 100644 --- a/pkgs/development/r-modules/wrapper.nix +++ b/pkgs/development/r-modules/wrapper.nix @@ -1,25 +1,21 @@ -{ stdenv, R, makeWrapper, recommendedPackages, packages }: +{ runCommand, R, makeWrapper, recommendedPackages, packages }: -stdenv.mkDerivation { - name = R.name + "-wrapper"; +runCommand (R.name + "-wrapper") { + preferLocalBuild = true; + allowSubstitutes = false; - buildInputs = [makeWrapper R] ++ recommendedPackages ++ packages; + buildInputs = [R] ++ recommendedPackages ++ packages; - # Make the list of recommended R packages accessible to other packages such as rpy2 - passthru.recommendedPackages = recommendedPackages; - - unpackPhase = ":"; + nativeBuildInputs = [makeWrapper]; - installPhase = '' - mkdir -p $out/bin - cd ${R}/bin - for exe in *; do - makeWrapper ${R}/bin/$exe $out/bin/$exe \ - --prefix "R_LIBS_SITE" ":" "$R_LIBS_SITE" - done - ''; - - meta = { - platforms = stdenv.lib.platforms.unix; - }; + # Make the list of recommended R packages accessible to other packages such as rpy2 + passthru = { inherit recommendedPackages; }; } +'' +mkdir -p $out/bin +cd ${R}/bin +for exe in *; do + makeWrapper ${R}/bin/$exe $out/bin/$exe \ + --prefix "R_LIBS_SITE" ":" "$R_LIBS_SITE" +done +'' diff --git a/pkgs/development/tools/continuous-integration/jenkins/default.nix b/pkgs/development/tools/continuous-integration/jenkins/default.nix index 7a401f88be3..ecfdc1b027c 100644 --- a/pkgs/development/tools/continuous-integration/jenkins/default.nix +++ b/pkgs/development/tools/continuous-integration/jenkins/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { name = "jenkins-${version}"; - version = "2.138.3"; + version = "2.150.1"; src = fetchurl { url = "http://mirrors.jenkins.io/war-stable/${version}/jenkins.war"; - sha256 = "0z8yfnqg43vqhhnp27wb28686zq9kqkyicqn0162hr9h5pd4sglm"; + sha256 = "0sb6mzynw1vg6s43mpd7b0dz1clbf8akga09i14q66isb9nmhf3s"; }; buildCommand = '' diff --git a/pkgs/development/tools/tradcpp/aarch64.patch b/pkgs/development/tools/tradcpp/aarch64.patch new file mode 100644 index 00000000000..ef7ad9828ac --- /dev/null +++ b/pkgs/development/tools/tradcpp/aarch64.patch @@ -0,0 +1,12 @@ +diff a/config.h b/config.h +--- a/config.h ++++ b/config.h +@@ -124,6 +124,8 @@ + #define CONFIG_CPU "__ppc64__" + #elif defined(__ARM__) + #define CONFIG_CPU "__ARM__" ++#elif defined(__aarch64__) ++#define CONFIG_CPU "__aarch64__" + #else + /* let it go */ + #endif diff --git a/pkgs/development/tools/tradcpp/default.nix b/pkgs/development/tools/tradcpp/default.nix index 64a97ad0087..7f395174bb4 100644 --- a/pkgs/development/tools/tradcpp/default.nix +++ b/pkgs/development/tools/tradcpp/default.nix @@ -11,7 +11,10 @@ stdenv.mkDerivation { # tradcpp only comes with BSD-make Makefile; the patch adds configure support buildInputs = [ autoconf ]; preConfigure = "autoconf"; - patches = [ ./tradcpp-configure.patch ]; + patches = [ + ./tradcpp-configure.patch + ./aarch64.patch + ]; meta = with stdenv.lib; { description = "A traditional (K&R-style) C macro preprocessor"; diff --git a/pkgs/tools/typesetting/tectonic/default.nix b/pkgs/tools/typesetting/tectonic/default.nix index bcc69c7b223..e49707256c3 100644 --- a/pkgs/tools/typesetting/tectonic/default.nix +++ b/pkgs/tools/typesetting/tectonic/default.nix @@ -3,16 +3,16 @@ rustPlatform.buildRustPackage rec { name = "tectonic-${version}"; - version = "0.1.9"; + version = "0.1.11"; src = fetchFromGitHub { owner = "tectonic-typesetting"; repo = "tectonic"; rev = "v${version}"; - sha256 = "1prrw1npmmqjx966dxrr4jll16scf0cv24nnc70zlbwwb15zhgiq"; + sha256 = "1j98qxlq74vs8nf2jsn2xw9iyrf8kih4v0hrvznkhcab6bpibp2x"; }; - cargoSha256 = "00hcs9k9x23xy1pgf8skgb6i5kjwgipy8c0d27nniaxa3dpy5daq"; + cargoSha256 = "1zgav5zxfvdnrr7himykj5ha20cb5ldxpcpl8y6d19dirxvcmpc6"; nativeBuildInputs = [ pkgconfig ]; |