* Build RPMs, Debs, coverage analysis.
This commit is contained in:
parent
909fbb9de1
commit
9850262a72
1 changed files with 156 additions and 52 deletions
194
release.nix
194
release.nix
|
@ -1,57 +1,125 @@
|
||||||
let jobs = rec {
|
let
|
||||||
|
|
||||||
|
jobs = rec {
|
||||||
|
|
||||||
|
|
||||||
tarball =
|
tarball =
|
||||||
{ nix ? {path = ./.; rev = 1234;}
|
{ nix ? {path = ./.; rev = 1234;}
|
||||||
, nixpkgs ? {path = ../nixpkgs;}
|
, nixpkgs ? {path = ../nixpkgs;}
|
||||||
, officialRelease ? false
|
, officialRelease ? false
|
||||||
}:
|
}:
|
||||||
|
|
||||||
with import nixpkgs.path {};
|
with import nixpkgs.path {};
|
||||||
|
|
||||||
releaseTools.makeSourceTarball {
|
releaseTools.makeSourceTarball {
|
||||||
name = "nix-tarball";
|
name = "nix-tarball";
|
||||||
src = nix;
|
src = nix;
|
||||||
inherit officialRelease;
|
inherit officialRelease;
|
||||||
|
|
||||||
buildInputs = [curl bison flex2533 perl libxml2 libxslt w3m bzip2 jing_tools];
|
buildInputs = [curl bison flex2533 perl libxml2 libxslt w3m bzip2 jing_tools];
|
||||||
|
|
||||||
configureFlags = ''
|
configureFlags = ''
|
||||||
--with-docbook-rng=${docbook5}/xml/rng/docbook
|
--with-docbook-rng=${docbook5}/xml/rng/docbook
|
||||||
--with-docbook-xsl=${docbook5_xsl}/xml/xsl/docbook
|
--with-docbook-xsl=${docbook5_xsl}/xml/xsl/docbook
|
||||||
--with-xml-flags=--nonet
|
--with-xml-flags=--nonet
|
||||||
'';
|
'';
|
||||||
|
|
||||||
# Include the BDB, ATerm and Bzip2 tarballs in the distribution.
|
# Include the BDB, ATerm and Bzip2 tarballs in the distribution.
|
||||||
preConfigure = ''
|
preConfigure = ''
|
||||||
stripHash ${db45.src}
|
stripHash ${db45.src}
|
||||||
# Remove unnecessary stuff from the Berkeley DB tarball.
|
# Remove unnecessary stuff from the Berkeley DB tarball.
|
||||||
( mkdir bdb-temp
|
( mkdir bdb-temp
|
||||||
cd bdb-temp
|
cd bdb-temp
|
||||||
tar xfz ${db45.src}
|
tar xfz ${db45.src}
|
||||||
cd *
|
cd *
|
||||||
rm -rf docs test tcl perl libdb_java java rpc_server build_vxworks \
|
rm -rf docs test tcl perl libdb_java java rpc_server build_vxworks \
|
||||||
examples_java examples_c examples_cxx dist/tags
|
examples_java examples_c examples_cxx dist/tags
|
||||||
mkdir test
|
mkdir test
|
||||||
touch test/include.tcl
|
touch test/include.tcl
|
||||||
cd ..
|
cd ..
|
||||||
tar cvfz ../externals/$strippedName *
|
tar cvfz ../externals/$strippedName *
|
||||||
)
|
)
|
||||||
|
|
||||||
stripHash ${aterm242fixes.src}
|
stripHash ${aterm242fixes.src}
|
||||||
cp -pv ${aterm242fixes.src} externals/$strippedName
|
cp -pv ${aterm242fixes.src} externals/$strippedName
|
||||||
|
|
||||||
stripHash ${bzip2.src}
|
stripHash ${bzip2.src}
|
||||||
cp -pv ${bzip2.src} externals/$strippedName
|
cp -pv ${bzip2.src} externals/$strippedName
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
build =
|
build =
|
||||||
{ tarball ? {path = jobs.tarball {};}
|
{ tarball ? {path = jobs.tarball {};}
|
||||||
, nixpkgs ? {path = ../nixpkgs;}
|
, nixpkgs ? {path = ../nixpkgs;}
|
||||||
, system ? "i686-linux"
|
, system ? "i686-linux"
|
||||||
}:
|
}:
|
||||||
|
|
||||||
|
with import nixpkgs.path {inherit system;};
|
||||||
|
|
||||||
|
releaseTools.nixBuild {
|
||||||
|
name = "nix-build";
|
||||||
|
src = tarball;
|
||||||
|
|
||||||
|
buildInputs = [curl perl bzip2 openssl];
|
||||||
|
|
||||||
|
configureFlags = ''
|
||||||
|
--disable-init-state
|
||||||
|
--with-bdb=${db45} --with-aterm=${aterm242fixes} --with-bzip2=${bzip2}
|
||||||
|
'';
|
||||||
|
|
||||||
|
postInstall = ''
|
||||||
|
echo "doc manual $out/share/doc/nix/manual" >> $out/nix-support/hydra-build-products
|
||||||
|
echo "doc release-notes $out/share/doc/nix/release-notes" >> $out/nix-support/hydra-build-products
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
coverage =
|
||||||
|
{ tarball ? {path = jobs.tarball {};}
|
||||||
|
, nixpkgs ? {path = ../nixpkgs;}
|
||||||
|
}:
|
||||||
|
|
||||||
|
with import nixpkgs.path {};
|
||||||
|
|
||||||
|
releaseTools.coverageAnalysis {
|
||||||
|
name = "nix-build";
|
||||||
|
src = tarball;
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
curl perl bzip2 openssl
|
||||||
|
# These are for "make check" only:
|
||||||
|
graphviz libxml2 libxslt
|
||||||
|
];
|
||||||
|
|
||||||
|
configureFlags = ''
|
||||||
|
--disable-init-state --disable-shared
|
||||||
|
--with-bdb=${db45} --with-aterm=${aterm242fixes} --with-bzip2=${bzip2}
|
||||||
|
'';
|
||||||
|
|
||||||
|
lcovFilter = ["*/boost/*" "*-tab.*"];
|
||||||
|
|
||||||
|
# We call `dot', and even though we just use it to
|
||||||
|
# syntax-check generated dot files, it still requires some
|
||||||
|
# fonts. So provide those.
|
||||||
|
FONTCONFIG_FILE = texFunctions.fontsConf;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
rpm_fedora9i386 = makeRPM (diskImages: diskImages.fedora9i386) 50;
|
||||||
|
rpm_fedora10i386 = makeRPM (diskImages: diskImages.fedora10i386) 40;
|
||||||
|
rpm_opensuse103i386 = makeRPM (diskImages: diskImages.opensuse103i386) 40;
|
||||||
|
|
||||||
|
|
||||||
|
deb_debian40i386 = makeDeb (diskImages: diskImages.debian40i386) 30;
|
||||||
|
deb_ubuntu804i386 = makeDeb (diskImages: diskImages.ubuntu804i386) 40;
|
||||||
|
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
doBuild =
|
||||||
|
{ tarball, nixpkgs, system, coverageAnalysis }:
|
||||||
|
|
||||||
with import nixpkgs.path {inherit system;};
|
with import nixpkgs.path {inherit system;};
|
||||||
|
|
||||||
|
@ -66,11 +134,47 @@ let jobs = rec {
|
||||||
--with-bdb=${db45} --with-aterm=${aterm242fixes} --with-bzip2=${bzip2}
|
--with-bdb=${db45} --with-aterm=${aterm242fixes} --with-bzip2=${bzip2}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
postInstall = ''
|
postInstall = if coverageAnalysis then "" else ''
|
||||||
echo "doc manual $out/share/doc/nix/manual" >> $out/nix-support/hydra-build-products
|
echo "doc manual $out/share/doc/nix/manual" >> $out/nix-support/hydra-build-products
|
||||||
echo "doc release-notes $out/share/doc/nix/release-notes" >> $out/nix-support/hydra-build-products
|
echo "doc release-notes $out/share/doc/nix/release-notes" >> $out/nix-support/hydra-build-products
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
inherit coverageAnalysis;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
}; in jobs
|
makeRPM =
|
||||||
|
diskImageFun: prio:
|
||||||
|
{ tarball ? {path = jobs.tarball {};}
|
||||||
|
, nixpkgs ? {path = ../nixpkgs;}
|
||||||
|
}:
|
||||||
|
|
||||||
|
with import nixpkgs.path {};
|
||||||
|
|
||||||
|
releaseTools.rpmBuild rec {
|
||||||
|
name = "nix-rpm-${diskImage.name}";
|
||||||
|
src = tarball;
|
||||||
|
diskImage = diskImageFun vmTools.diskImages;
|
||||||
|
memSize = 1024;
|
||||||
|
meta = { schedulingPriority = toString prio; };
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
makeDeb =
|
||||||
|
diskImageFun: prio:
|
||||||
|
{ tarball ? {path = jobs.tarball {};}
|
||||||
|
, nixpkgs ? {path = ../nixpkgs;}
|
||||||
|
}:
|
||||||
|
|
||||||
|
with import nixpkgs.path {};
|
||||||
|
|
||||||
|
releaseTools.debBuild {
|
||||||
|
name = "nix-deb";
|
||||||
|
src = tarball;
|
||||||
|
diskImage = diskImageFun vmTools.diskImages;
|
||||||
|
memSize = 1024;
|
||||||
|
meta = { schedulingPriority = toString prio; };
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
in jobs
|
||||||
|
|
Loading…
Reference in a new issue