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.
This commit is contained in:
Bjørn Forsman 2016-07-15 14:45:23 +02:00
parent 2e986016d0
commit 4075c10a59
2 changed files with 7 additions and 3 deletions

View file

@ -154,7 +154,7 @@ in {
''; '';
script = '' 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} \ --httpPort=${toString cfg.port} \
--prefix=${cfg.prefix} \ --prefix=${cfg.prefix} \
${concatStringsSep " " cfg.extraOptions} ${concatStringsSep " " cfg.extraOptions}

View file

@ -8,6 +8,12 @@ stdenv.mkDerivation rec {
url = "http://mirrors.jenkins-ci.org/war/${version}/jenkins.war"; url = "http://mirrors.jenkins-ci.org/war/${version}/jenkins.war";
sha256 = "0x59dbvh6y25ki5jy51djbfbhf8g2j3yd9f3n66f7bkdfw8p78g1"; sha256 = "0x59dbvh6y25ki5jy51djbfbhf8g2j3yd9f3n66f7bkdfw8p78g1";
}; };
buildCommand = ''
mkdir -p "$out/lib"
cp "$src" "$out/lib/jenkins.war"
'';
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "An extendable open source continuous integration server"; description = "An extendable open source continuous integration server";
homepage = http://jenkins-ci.org; homepage = http://jenkins-ci.org;
@ -15,6 +21,4 @@ stdenv.mkDerivation rec {
platforms = platforms.all; platforms = platforms.all;
maintainers = [ maintainers.coconnor ]; maintainers = [ maintainers.coconnor ];
}; };
buildCommand = "cp $src $out";
} }