we use Nix to do it anyway. svn path=/nixpkgs/trunk/; revision=610wip/yesman
parent
35fa436449
commit
91aafbcae4
@ -0,0 +1,16 @@ |
||||
{stdenv, getopt, src}: |
||||
|
||||
derivation { |
||||
name = "nix-rpm-build"; |
||||
system = stdenv.system; |
||||
|
||||
builder = ./nix-rpm-build.sh; |
||||
src = src; |
||||
|
||||
stdenv = stdenv; |
||||
getopt = getopt; # required by sdf2table |
||||
|
||||
# Perhaps it's possible to build RPMs in a pure way? Probably not, |
||||
# since RPM needs its database to determine dependencies. |
||||
rpm = "/bin/rpm"; |
||||
} |
@ -0,0 +1,29 @@ |
||||
#! /bin/sh |
||||
|
||||
buildinputs="$getopt" |
||||
. $stdenv/setup || exit 1 |
||||
|
||||
# Set up a RPM macros file. We have to use ~/.rpmmacros (`--rcfile' |
||||
# doesn't seem to work properly), so point HOME at the current |
||||
# directory. |
||||
export HOME=`pwd` |
||||
rpmmacros=$HOME/.rpmmacros |
||||
|
||||
rpmdir=`pwd`/rpm |
||||
|
||||
# Set up the directory structure expected by RPM. |
||||
mkdir $rpmdir || exit 1 |
||||
mkdir $rpmdir/BUILD || exit 1 |
||||
mkdir $rpmdir/SOURCE || exit 1 |
||||
mkdir $rpmdir/SPECS || exit 1 |
||||
mkdir $rpmdir/RPMS || exit 1 |
||||
mkdir $rpmdir/SRPMS || exit 1 |
||||
|
||||
echo "%_topdir $rpmdir" > $rpmmacros |
||||
|
||||
# Do the build. |
||||
$rpm -ta $src/*.tar.gz || exit 1 |
||||
|
||||
# Copy the resulting RPMs. |
||||
mkdir $out || exit 1 |
||||
cp -p $rpmdir/RPMS/*/* $out || exit 1 |
Loading…
Reference in new issue