mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-12-01 19:33:03 +00:00
bad05cd2b6
is to fully automate the building of distributions and their release for distribution through a web-site, ftp directory, etc. Inspired by nix-dist, but more generic in order to deal with StrategoXT and related packages. The assumptions are the following: - package source is a subversion repository - the package is under autotool configuration (at least it has a configure.in with an AC_INIT) - standard autotools build interface: - bootstrap; configure; make install; make check; make dist - optionally the release status can be indicated by a status="..." definition in configure.in Creation of distributions is a two-step process: urls-to-nix.sh # nix expressions for most recent commits build+upload.sh # instantiate the expressions svn-to-nix.sh Generates nix expression for head revision of the package; revision number, package name, and version are obtained from the source and do not have to be declared. urls-to-nix.sh Contains a list of URLs to which svn-to-nix.sh is applied. build+upload.sh Builds the packages and creates distributions in a www directory. Including the log of the build process (buildfarm) and files such as NEWS and README (for release management). (upload part of the script is currently turned off) do-it.nix Top nix expression; collects pointers to required packages (e.g., stdenv, autotools, aterms, ...) and binds them to the parameters of the source-dist.nix packages. package-source-dist.nix Generic Nix expression for a package parameterized with version info from svn and dependency info from do-it.nix. package-dist.nix Generated; just imports package-version-rev.nix Generated; instantiates package-source-dist.nix with version, name, packagename, rev. build-from-svn.sh Generic build script; obtains configuration flags from with... and enable... attributes of the Nix expression. Creates logs of the various parts of the build process. Creates distribution Generalizations: - Currently some information about a package resides in this directory, e.g., the generic Nix expression for a package, and the composition of the overall do-it.nix This information should also be obtained from the source tree. - Upload facility lacking. svn path=/nixpkgs/trunk/; revision=605
23 lines
653 B
Bash
Executable File
23 lines
653 B
Bash
Executable File
#! /bin/sh -v
|
|
|
|
# Build the distribution
|
|
|
|
echo "building revision $rev of $url"
|
|
|
|
if ! storeexprs=($(nix-instantiate -vvvv do-it.nix)); then exit 1; fi
|
|
|
|
srcexpr=${storeexprs[0]}
|
|
#testexpr=${storeexprs[1]}
|
|
|
|
if ! nix-store -vvvv -r "$srcexpr" > /dev/null; then exit 1; fi
|
|
|
|
if ! outpath=$(nix-store -qn "$srcexpr"); then exit 1; fi
|
|
|
|
#uploader="http://losser.st-lab.cs.uu.nl/~eelco/cgi-bin/upload.pl/"
|
|
|
|
#curl --silent -T "$outpath/manual.html" "$uploader" || exit 1
|
|
#curl --silent -T "$outpath/style.css" "$uploader" || exit 1
|
|
#curl --silent -T "$outpath"/nix-*.tar.bz2 "$uploader" || exit 1
|
|
|
|
#if ! nix-store -vvvv -r "$testexpr" > /dev/null; then exit 1; fi
|