GCC 4.4.2; new `update-gcc.sh' script.

svn path=/nixpkgs/trunk/; revision=18153
This commit is contained in:
Ludovic Courtès 2009-11-05 18:46:52 +00:00
parent 05437f62c9
commit 0e02b4ccf9
3 changed files with 86 additions and 22 deletions

View File

@ -22,7 +22,7 @@ assert langJava -> zip != null && unzip != null
with stdenv.lib;
let version = "4.4.1";
let version = "4.4.2";
javaEcj = fetchurl {
# The `$(top_srcdir)/ecj.jar' file is automatically picked up at
# `configure' time.
@ -56,27 +56,10 @@ stdenv.mkDerivation ({
builder = ./builder.sh;
src =
optional /*langC*/ true (fetchurl {
url = "mirror://gcc/releases/gcc-${version}/gcc-core-${version}.tar.bz2";
sha256 = "0jgwa98i964jhnjg6acvvhz0wb51v00kk3gal8qbps8j09g2mgag";
}) ++
optional langCC (fetchurl {
url = "mirror://gcc/releases/gcc-${version}/gcc-g++-${version}.tar.bz2";
sha256 = "1pfgfgpvkq0i4023n4v1cghzmcq8c15xn4n967n29vmdrrwk8754";
}) ++
optional langFortran (fetchurl {
url = "mirror://gcc/releases/gcc-${version}/gcc-fortran-${version}.tar.bz2";
sha256 = "1406r8ndl7pjyas5naw8ygqpfrl72ypyn71llfzf953j736kmi50";
}) ++
optional langJava (fetchurl {
url = "mirror://gcc/releases/gcc-${version}/gcc-java-${version}.tar.bz2";
sha256 = "07lgph5zxskqqkzbq67wma2067dqr5my110l8rgzspqjq5rhgdil";
});
src = (import ./sources.nix) {
inherit fetchurl optional version;
inherit langC langCC langFortran langJava;
};
patches =
[./pass-cxxcpp.patch]

View File

@ -0,0 +1,22 @@
/* Automatically generated by `update-gcc.sh', do not edit.
For GCC 4.4.2. */
{ fetchurl, optional, version, langC, langCC, langFortran, langJava }:
assert version == "4.4.2";
optional /* langC */ true (fetchurl {
url = "mirror://gcc/releases/gcc-${version}/gcc-core-${version}.tar.bz2";
sha256 = "03cgv3b9bqhap4bks5wfg7nyj64l5c3qyn1igpqc6gk60bxm9wym";
}) ++
optional langCC (fetchurl {
url = "mirror://gcc/releases/gcc-${version}/gcc-g++-${version}.tar.bz2";
sha256 = "0al23gnx4v50j1y6xb23by34m2qhavm2xxn3f1v8kis7ajlbm1j1";
}) ++
optional langFortran (fetchurl {
url = "mirror://gcc/releases/gcc-${version}/gcc-fortran-${version}.tar.bz2";
sha256 = "0zk3j5r1cc5ahm0njxba1xfvv2h39d17aqakgg354pig4hpjkidc";
}) ++
optional langJava (fetchurl {
url = "mirror://gcc/releases/gcc-${version}/gcc-java-${version}.tar.bz2";
sha256 = "0ydk0qyhi1fdyz2xvj6m6l7cav4wg3962a1jxpf2j3nppm0p1dvp";
}) ++
[]

View File

@ -0,0 +1,59 @@
#!/bin/sh
if [ $# -ne 1 ]
then
echo "Usage: $(basename $0) VERSION"
echo
echo "Download and GPG-check component tarballs for GCC VERSION."
exit 1
fi
version="$1"
set -e
out="sources.nix"
declare -A options
options["core"]="/* langC */ true"
options["g++"]="langCC"
options["fortran"]="langFortran"
options["java"]="langJava"
cat > "$out"<<EOF
/* Automatically generated by \`$(basename $0)', do not edit.
For GCC ${version}. */
{ fetchurl, optional, version, langC, langCC, langFortran, langJava }:
assert version == "${version}";
EOF
for component in core g++ fortran java
do
dir="ftp.gnu.org/gnu/gcc/gcc-${version}"
file="gcc-${component}-${version}.tar.bz2"
url="${dir}/${file}"
path_and_hash="$(nix-prefetch-url "$url" 2>&1 | grep -E '^(hash|path) is')"
path="$(echo $path_and_hash | sed -e's/^.*path is \([^ ]\+\).*$/\1/g')"
hash="$(echo $path_and_hash | sed -e's/^.*hash is \([^ ]\+\).*$/\1/g')"
rm -f "${url}.sig"
wget "${url}.sig"
gpg --verify "${file}.sig" "${path}"
rm "${file}.sig"
cat >> "$out" <<EOF
optional ${options[$component]} (fetchurl {
url = "mirror://gcc/releases/gcc-\${version}/gcc-${component}-\${version}.tar.bz2";
sha256 = "${hash}";
}) ++
EOF
done
cat >> "$out" <<EOF
[]
EOF
echo "result stored in \`$out'"