From 4075c10a59af455db2012beb313453662f09dad0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Forsman?= Date: Fri, 15 Jul 2016 14:45:23 +0200 Subject: [PATCH] jenkins: move .war file from $out to $out/lib/jenkins.war Fixes #14137, also known as: $ nix-shell -p jenkins bash: source: /nix/store/ln1yw6c2v8bb2cjqfr1z5aqcssw054wa-jenkins-2.3: cannot execute binary file [nix-shell exited with error] The problem is that jenkins.war is not installed inside the directory $out, but rather _as the file_ $out. Fix it by moving the file to $out/lib/jenkins.war. While at it, move buildCommand so that the "meta" section is at the end of the expression (standard style), and quote shell variables. --- .../services/continuous-integration/jenkins/default.nix | 2 +- .../tools/continuous-integration/jenkins/default.nix | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/nixos/modules/services/continuous-integration/jenkins/default.nix b/nixos/modules/services/continuous-integration/jenkins/default.nix index ae3f186c1d0a..7da49fa0aaab 100644 --- a/nixos/modules/services/continuous-integration/jenkins/default.nix +++ b/nixos/modules/services/continuous-integration/jenkins/default.nix @@ -154,7 +154,7 @@ in { ''; script = '' - ${pkgs.jdk}/bin/java -jar ${pkgs.jenkins} --httpListenAddress=${cfg.listenAddress} \ + ${pkgs.jdk}/bin/java -jar ${pkgs.jenkins}/lib/jenkins.war --httpListenAddress=${cfg.listenAddress} \ --httpPort=${toString cfg.port} \ --prefix=${cfg.prefix} \ ${concatStringsSep " " cfg.extraOptions} diff --git a/pkgs/development/tools/continuous-integration/jenkins/default.nix b/pkgs/development/tools/continuous-integration/jenkins/default.nix index 827fb4e05a50..cbc2b76d8acc 100644 --- a/pkgs/development/tools/continuous-integration/jenkins/default.nix +++ b/pkgs/development/tools/continuous-integration/jenkins/default.nix @@ -8,6 +8,12 @@ stdenv.mkDerivation rec { url = "http://mirrors.jenkins-ci.org/war/${version}/jenkins.war"; sha256 = "0x59dbvh6y25ki5jy51djbfbhf8g2j3yd9f3n66f7bkdfw8p78g1"; }; + + buildCommand = '' + mkdir -p "$out/lib" + cp "$src" "$out/lib/jenkins.war" + ''; + meta = with stdenv.lib; { description = "An extendable open source continuous integration server"; homepage = http://jenkins-ci.org; @@ -15,6 +21,4 @@ stdenv.mkDerivation rec { platforms = platforms.all; maintainers = [ maintainers.coconnor ]; }; - - buildCommand = "cp $src $out"; }