Merge remote-tracking branch 'refs/remotes/origin/master' into chicken-eggs

This commit is contained in:
Moritz Ulrich
2014-10-27 01:14:13 +01:00
605 changed files with 9168 additions and 4205 deletions

View File

@@ -30,5 +30,6 @@ cabal.mkDerivation (self: {
description = "A dependently typed functional programming language and proof assistant";
license = self.stdenv.lib.licenses.mit;
platforms = self.ghc.meta.platforms;
maintainers = with self.stdenv.lib.maintainers; [ fuuzetsu ];
};
})

View File

@@ -21,6 +21,6 @@ agda.mkDerivation (self: rec {
description = "A standard library for use with the Agda compiler.";
license = stdenv.lib.licenses.mit;
platforms = stdenv.lib.platforms.unix;
maintainers = with maintainers; [ jwiegley ];
maintainers = with maintainers; [ jwiegley fuuzetsu ];
};
})

View File

@@ -1,14 +1,16 @@
{ fetchurl, stdenv }:
{ fetchurl, stdenv, gmp }:
stdenv.mkDerivation rec {
name = "bigloo-${version}";
version = "3.7a";
version = "4.1a-2";
src = fetchurl {
url = "ftp://ftp-sop.inria.fr/indes/fp/Bigloo/bigloo${version}.tar.gz";
sha256 = "0y8i87c2bpqzap8rhzgpyfgdzq21py5xq6mgp0w6xv4rjcj9d0v1";
sha256 = "09yrz8r0jpj7bda39fdxzrrdyhi851nlfajsyf0b6jxanz6ygcjx";
};
buildInputs = [ gmp ];
preConfigure =
# Help libgc's configure.
'' export CXXCPP="g++ -E"
@@ -32,6 +34,10 @@ stdenv.mkDerivation rec {
meta = {
description = "Efficient Scheme compiler";
homepage = http://www-sop.inria.fr/indes/fp/Bigloo/;
license = stdenv.lib.licenses.gpl2Plus;
platforms = stdenv.lib.platforms.unix;
maintainers = with stdenv.lib.maintainers; [ ludo thoughtpolice ];
longDescription = ''
Bigloo is a Scheme implementation devoted to one goal: enabling
@@ -44,11 +50,5 @@ stdenv.mkDerivation rec {
Scheme and C programs, between Scheme and Java programs, and
between Scheme and C# programs.
'';
homepage = http://www-sop.inria.fr/indes/fp/Bigloo/;
license = stdenv.lib.licenses.gpl2Plus;
maintainers = [ stdenv.lib.maintainers.ludo ];
platforms = stdenv.lib.platforms.gnu; # arbitrary choice
};
}

View File

@@ -1,27 +1,30 @@
# This file was auto-generated by cabal2nix. Please do NOT edit manually!
{ cabal, aeson, aesonPretty, binary, blazeHtml, blazeMarkup
, cmdargs, filemanip, filepath, HUnit, indents, languageEcmascript
, languageGlsl, mtl, pandoc, parsec, QuickCheck, scientific
, testFramework, testFrameworkHunit, testFrameworkQuickcheck2, text
, transformers, unionFind, unorderedContainers, yaml
, cheapskate, cmdargs, filemanip, filepath, highlightingKate, HUnit
, indents, languageEcmascript, languageGlsl, mtl, parsec
, QuickCheck, testFramework, testFrameworkHunit
, testFrameworkQuickcheck2, text, transformers, unionFind
, unorderedContainers
}:
cabal.mkDerivation (self: {
pname = "Elm";
version = "0.12.3";
sha256 = "1v6h9qbbz27ikh19xwjbyfw0zi5ag9x1gp0khh9v4af1g0j86320";
version = "0.13";
sha256 = "1l6p00h0717blwvia0gvqpsakq8jy44fxc6brr4qxs5g4yjcjnmh";
isLibrary = true;
isExecutable = true;
buildDepends = [
aeson aesonPretty binary blazeHtml blazeMarkup cmdargs filepath
indents languageEcmascript languageGlsl mtl pandoc parsec
scientific text transformers unionFind unorderedContainers yaml
aeson aesonPretty binary blazeHtml blazeMarkup cheapskate cmdargs
filepath highlightingKate indents languageEcmascript languageGlsl
mtl parsec text transformers unionFind unorderedContainers
];
testDepends = [
aeson aesonPretty binary blazeHtml blazeMarkup cmdargs filemanip
filepath HUnit indents languageEcmascript languageGlsl mtl pandoc
parsec QuickCheck scientific testFramework testFrameworkHunit
testFrameworkQuickcheck2 text transformers unionFind
unorderedContainers yaml
aeson aesonPretty binary blazeHtml blazeMarkup cheapskate cmdargs
filemanip filepath highlightingKate HUnit indents
languageEcmascript languageGlsl mtl parsec QuickCheck testFramework
testFrameworkHunit testFrameworkQuickcheck2 text transformers
unionFind unorderedContainers
];
doCheck = false;
preConfigure = ''

View File

@@ -1,28 +1,22 @@
x@{stdenv, fetchurl, builderDefsPackage, ...}:
builderDefsPackage
(a :
let
s = import ./src-for-default.nix;
helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ [];
buildInputs = map (n: builtins.getAttr n x)
(builtins.attrNames (builtins.removeAttrs x helperArgNames));
in
rec {
src = a.fetchUrlFromSrcInfo s;
{ stdenv, fetchurl }:
inherit (s) name;
inherit buildInputs;
configureFlags = ["--enable-shared"];
stdenv.mkDerivation rec {
name = "gambit-${version}";
version = "4.7.3";
devver = "4_7_3";
/* doConfigure should be removed if not needed */
phaseNames = ["doConfigure" "doMakeInstall"];
meta = {
description = "Scheme to C compiler";
maintainers = [
a.lib.maintainers.raskin
];
platforms = with a.lib.platforms;
linux ++ freebsd;
src = fetchurl {
url = "http://www.iro.umontreal.ca/~gambit/download/gambit/v4.7/source/gambc-v${devver}-devel.tgz";
sha256 = "12jbr6bc0zmc7vw07a9pliadbvqgwkpmw6cj8awz73clv1j7pxha";
};
}) x
configureFlags = [ "--enable-shared" "--enable-single-host" ];
meta = {
description = "Optimizing Scheme to C compiler";
homepage = "http://gambitscheme.org";
license = stdenv.lib.licenses.lgpl2;
platforms = stdenv.lib.platforms.linux;
maintainers = with stdenv.lib.maintainers; [ thoughtpolice raskin ];
};
}

View File

@@ -1,9 +0,0 @@
rec {
version="v4_6_1";
name="gambit-v4_6_1";
hash="0ad6c63dg5ggaamixxinvlf3128mra8xzss5chh66lkii4dc3m7g";
url="http://www.iro.umontreal.ca/~gambit/download/gambit/v4.6/source/gambc-${version}-devel.tgz";
advertisedUrl="http://www.iro.umontreal.ca/~gambit/download/gambit/v4.6/source/gambc-v4_6_1-devel.tgz";
}

View File

@@ -1,7 +0,0 @@
{
downloadPage = "http://dynamo.iro.umontreal.ca/~gambit/wiki/index.php/Main_Page";
baseName = "gambit";
sourceRegexp = "[.]tgz";
versionExtractorSedScript = ''s/.*-(v[_0-9]+)-devel[.].*/\1/'';
versionReferenceCreator = ''$(replaceAllVersionOccurences)'';
}

View File

@@ -1,4 +1,4 @@
{ stdenv, bzip2, patchelf, glibc, gcc, fetchurl, version, releaseType, sha256 }:
{ stdenv, bzip2, patchelf, glibc, gcc, fetchurl, version, releaseType, sha256, ncurses }:
with stdenv.lib;
let
versionParts = splitString "-" version; # 4.7 2013q3 20130916
@@ -31,7 +31,7 @@ stdenv.mkDerivation {
for f in $(find $out); do
if [ -f "$f" ] && patchelf "$f" 2> /dev/null; then
patchelf --set-interpreter ${glibc}/lib/ld-linux.so.2 \
--set-rpath $out/lib:${gcc}/lib \
--set-rpath $out/lib:${gcc}/lib:${ncurses}/lib \
"$f" || true
fi
done

View File

@@ -32,15 +32,15 @@ stdenv.mkDerivation rec {
# that in turn causes GHCi to abort
stripDebugFlags = [ "-S" "--keep-file-symbols" ];
meta = {
meta = with stdenv.lib; {
homepage = "http://haskell.org/ghc";
description = "The Glasgow Haskell Compiler";
maintainers = [
stdenv.lib.maintainers.marcweber
stdenv.lib.maintainers.andres
stdenv.lib.maintainers.simons
];
inherit (ghc.meta) license platforms;
maintainers = [ maintainers.marcweber maintainers.andres maintainers.simons ];
inherit (ghc.meta) license;
# Filter old "i686-darwin" platform which is unsupported these days.
platforms = filter (x: elem x platforms.all) ghc.meta.platforms;
# Disable Darwin builds: <https://github.com/NixOS/nixpkgs/issues/2689>.
hydraPlatforms = filter (x: !elem x platforms.darwin) meta.platforms;
};
}

View File

@@ -31,5 +31,6 @@ cabal.mkDerivation (self: {
description = "Functional Programming Language with Dependent Types";
license = self.stdenv.lib.licenses.bsd3;
platforms = self.ghc.meta.platforms;
maintainers = with self.stdenv.lib.maintainers; [ aycanirican ];
};
})

View File

@@ -0,0 +1,157 @@
{ stdenv, fetchgit, gfortran, perl, m4, llvm, gmp, pcre, zlib
, readline, fftwSinglePrec, fftw, libunwind, suitesparse, glpk, fetchurl
, ncurses, libunistring, lighttpd, patchelf, openblas, liblapack
, tcl, tk, xproto, libX11, git, mpfr, which
} :
assert stdenv.isLinux;
let
realGcc = stdenv.gcc.gcc;
in
stdenv.mkDerivation rec {
pname = "julia";
version = "0.3.1";
name = "${pname}-${version}";
dsfmt_ver = "2.2";
grisu_ver = "1.1.1";
openblas_ver = "v0.2.10";
lapack_ver = "3.5.0";
arpack_ver = "3.1.5";
lighttpd_ver = "1.4.29";
patchelf_ver = "0.6";
pcre_ver = "8.31";
utf8proc_ver = "1.1.6";
dsfmt_src = fetchurl {
url = "http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/dSFMT-src-${dsfmt_ver}.tar.gz";
name = "dsfmt-${dsfmt_ver}.tar.gz";
sha256 = "bc3947a9b2253a869fcbab8ff395416cb12958be9dba10793db2cd7e37b26899";
};
grisu_src = fetchurl {
url = "http://double-conversion.googlecode.com/files/double-conversion-${grisu_ver}.tar.gz";
sha256 = "e1cabb73fd69e74f145aea91100cde483aef8b79dc730fcda0a34466730d4d1d";
};
openblas_src = fetchurl {
url = "https://github.com/xianyi/OpenBLAS/tarball/${openblas_ver}";
name = "openblas-${openblas_ver}.tar.gz";
sha256 = "06i0q4qnd5q5xljzrgvda0gjsczc6l2pl9hw6dn2qjpw38al73za";
};
arpack_src = fetchurl rec {
url = "http://forge.scilab.org/index.php/p/arpack-ng/downloads/get/arpack-ng_${arpack_ver}.tar.gz";
sha256 = "05fmg4m0yri47rzgsl2mnr1qbzrs7qyd557p3v9wwxxw0rwcwsd2";
};
lapack_src = fetchurl {
url = "http://www.netlib.org/lapack/lapack-${lapack_ver}.tgz";
name = "lapack-${lapack_ver}.tgz";
sha256 = "0lk3f97i9imqascnlf6wr5mjpyxqcdj73pgj97dj2mgvyg9z1n4s";
};
lighttpd_src = fetchurl {
url = "http://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-${lighttpd_ver}.tar.gz";
sha256 = "ff9f4de3901d03bb285634c5b149191223d17f1c269a16c863bac44238119c85";
};
patchelf_src = fetchurl {
url = "http://hydra.nixos.org/build/1524660/download/2/patchelf-${patchelf_ver}.tar.bz2";
sha256 = "00bw29vdsscsili65wcb5ay0gvg1w0ljd00sb5xc6br8bylpyzpw";
};
pcre_src = fetchurl {
url = "ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-${pcre_ver}.tar.bz2";
sha256 = "0g4c0z4h30v8g8qg02zcbv7n67j5kz0ri9cfhgkpwg276ljs0y2p";
};
utf8proc_src = fetchurl {
url = "http://www.public-software-group.org/pub/projects/utf8proc/v${utf8proc_ver}/utf8proc-v${utf8proc_ver}.tar.gz";
sha256 = "1rwr84pw92ajjlbcxq0da7yxgg3ijngmrj7vhh2qzsr2h2kqzp7y";
};
src = fetchgit {
url = "git://github.com/JuliaLang/julia.git";
rev = "refs/tags/v0.3.1";
sha256 = "1m6jyh7dn03q00gpwb64pq6dypglj4yqac7rkw21z2jknb5x33vb";
};
buildInputs = [ gfortran perl m4 gmp pcre llvm readline zlib
fftw fftwSinglePrec libunwind suitesparse glpk ncurses libunistring patchelf
openblas liblapack tcl tk xproto libX11 git mpfr which
];
configurePhase = ''
for i in GMP LLVM PCRE READLINE FFTW LIBUNWIND SUITESPARSE GLPK LIGHTTPD ZLIB MPFR;
do
makeFlags="$makeFlags USE_SYSTEM_$i=1 "
done
copy_kill_hash(){
cp "$1" "$2/$(basename "$1" | sed -e 's/^[a-z0-9]*-//')"
}
for i in "${grisu_src}" "${dsfmt_src}" "${arpack_src}" "${patchelf_src}" \
"${pcre_src}" "${utf8proc_src}" "${lapack_src}" "${openblas_src}"; do
copy_kill_hash "$i" deps
done
${if realGcc ==null then "" else
''export NIX_LDFLAGS="$NIX_LDFLAGS -L${realGcc}/lib -L${realGcc}/lib64 -lpcre -llapack -lm -lfftw3f -lfftw3 -lglpk -lunistring -lz -lgmp -lmpfr -lblas -lopenblas -L$out/lib"''}
export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -fPIC "
export LDFLAGS="-L${suitesparse}/lib -L$out/lib/julia -Wl,-rpath,$out/lib/julia"
export GLPK_PREFIX="${glpk}/include"
mkdir -p "$out/lib"
sed -e "s@/usr/local/lib@$out/lib@g" -i deps/Makefile
sed -e "s@/usr/lib@$out/lib@g" -i deps/Makefile
export makeFlags="$makeFlags PREFIX=$out SHELL=${stdenv.shell} prefix=$out"
export dontPatchELF=1
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$PWD/usr/lib:$PWD/usr/lib/julia"
patchShebangs . contrib
export PATH="$PATH:${stdenv.gcc.libc}/sbin"
# ldconfig doesn't seem to ever work on NixOS; system-wide ldconfig cache
# is probably not what we want anyway on non-NixOS
sed -e "s@/sbin/ldconfig@true@" -i src/ccall.*
ln -s "${openblas}/lib/libopenblas.so" "$out/lib/libblas.so"
'';
preBuild = ''
mkdir -p usr/lib
echo "$out"
mkdir -p "$out/lib"
(
cd "$(mktemp -d)"
for i in "${suitesparse}"/lib/lib*.a; do
ar -x $i
done
gcc *.o --shared -o "$out/lib/libsuitesparse.so"
)
cp "$out/lib/libsuitesparse.so" usr/lib
for i in umfpack cholmod amd camd colamd spqr; do
ln -s libsuitesparse.so "$out"/lib/lib$i.so;
ln -s libsuitesparse.so "usr"/lib/lib$i.so;
done
'';
dontStrip = true;
enableParallelBuilding = true;
postInstall = ''
rm -f "$out"/lib/julia/sys.{so,dylib,dll}
'';
meta = {
description = "High-level performance-oriented dynamical language for technical computing";
homepage = "http://julialang.org/";
license = stdenv.lib.licenses.mit;
maintainers = [ stdenv.lib.maintainers.raskin ];
platforms = with stdenv.lib.platforms; linux;
broken = false;
};
}

View File

@@ -2,12 +2,12 @@
stdenv.mkDerivation rec {
name = "lessc-${version}";
version = "1.4.2";
version = "1.7.5";
src = fetchgit {
url = https://github.com/less/less.js.git;
rev = "refs/tags/v${version}";
sha256 = "1v3b4f1np3mxkj0irh1pk52r26nzpf4k2ax14cbn7mxx16mqjp50";
sha256 = "0r8bcad247v5fyh543a7dppmfbf49ai4my3vcizk42fsbnjs8q2x";
};
phases = [ "installPhase" ];

View File

@@ -1,9 +1,9 @@
import ./jdk-linux-base.nix {
productVersion = "7";
patchVersion = "67";
patchVersion = "72";
downloadUrl = http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html;
sha256_i686 = "0p58pag1x85r911lxhmr4blk687ivjqigflx175vp7rcmmj108xn";
sha256_x86_64 = "0db36jg08qy8712qy6lgyifdqlqb468rrnjm3aa6937ixl9ixpal";
sha256_i686 = "01zl82hnb9pynxw04zaq4745av42cga97cbckcwb8lh752hchxh3";
sha256_x86_64 = "13nyx8p27crnnybkzdaiv9l1azap7c8g4na6xasrnjvx3f7467fx";
jceName = "UnlimitedJCEPolicyJDK7.zip";
jceDownloadUrl = http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html;
sha256JCE = "7a8d790e7bd9c2f82a83baddfae765797a4a56ea603c9150c87b7cdb7800194d";

View File

@@ -16,19 +16,19 @@ assert stdenv.gcc.gcc != null;
*/
with ((import ./common.nix) {inherit stdenv; version = "0.11.0"; });
with ((import ./common.nix) {inherit stdenv; version = "0.12.0"; });
let snapshot = if stdenv.system == "i686-linux"
then "84339ea0f796ae468ef86797ef4587274bec19ea"
then "555aca74f9a268f80cab2df1147dc6406403e9e4"
else if stdenv.system == "x86_64-linux"
then "bd8a6bc1f28845b7f4b768f6bfa06e7fbdcfcaae"
then "6a43c2f6c8ba2cbbcb9da1f7b58f748aef99f431"
else if stdenv.system == "i686-darwin"
then "3f25b2680efbab16ad074477a19d49dcce475977"
then "331bd7ef519cbb424188c546273e8c7d738f0894"
else if stdenv.system == "x86_64-darwin"
then "4a8c2e1b7634d73406bac32a1a97893ec3ed818d"
then "2c83a79a9febfe1d326acb17c3af76ba053c6ca9"
else abort "no-snapshot for platform ${stdenv.system}";
snapshotDate = "2014-06-21";
snapshotRev = "db9af1d";
snapshotDate = "2014-10-04";
snapshotRev = "749ff5e";
snapshotName = "rust-stage0-${snapshotDate}-${snapshotRev}-${platform}-${snapshot}.tar.bz2";
in stdenv.mkDerivation {
@@ -37,8 +37,8 @@ in stdenv.mkDerivation {
inherit meta;
src = fetchurl {
url = http://static.rust-lang.org/dist/rust-0.11.0.tar.gz;
sha256 = "1fhi8iiyyj5j48fpnp93sfv781z1dm0xy94h534vh4mz91jf7cyi";
url = http://static.rust-lang.org/dist/rust-0.12.0.tar.gz;
sha256 = "1dv9wxh41230zknbwj34zgjnh1kgvvy6k12kbiy9bnch9nr6cgl8";
};
# We need rust to build rust. If we don't provide it, configure will try to download it.
@@ -65,7 +65,8 @@ in stdenv.mkDerivation {
patches = [ ./hardcode_paths.patch ./local_stage0.patch ];
postPatch = ''
substituteInPlace src/librustc/back/link.rs \
--subst-var-by "ccPath" "${stdenv.gcc}/bin/cc" \
--subst-var-by "ccPath" "${stdenv.gcc}/bin/cc"
substituteInPlace src/librustc_back/archive.rs \
--subst-var-by "arPath" "${stdenv.gcc.binutils}/bin/ar"
'';

View File

@@ -1,8 +1,8 @@
diff --git a/src/librustc/back/link.rs b/src/librustc/back/link.rs
index 7a3e912..ced75fa 100644
index 1cc60fc..2e94b99 100644
--- a/src/librustc/back/link.rs
+++ b/src/librustc/back/link.rs
@@ -766,24 +766,15 @@ pub fn output_lib_filename(id: &CrateId) -> String {
@@ -383,18 +383,9 @@ pub fn mangle_internal_name_by_path_and_seq(path: PathElems, flav: &str) -> Stri
pub fn get_cc_prog(sess: &Session) -> String {
match sess.opts.cg.linker {
@@ -15,18 +15,23 @@ index 7a3e912..ced75fa 100644
- // In the future, FreeBSD will use clang as default compiler.
- // It would be flexible to use cc (system's default C compiler)
- // instead of hard-coded gcc.
- // For win32, there is no cc command, so we add a condition to make it use gcc.
- // For Windows, there is no cc command, so we add a condition to make it use gcc.
- match sess.targ_cfg.os {
- abi::OsWin32 => "gcc",
- abi::OsWindows => "gcc",
- _ => "cc",
- }.to_string()
}
pub fn get_ar_prog(sess: &Session) -> String {
match sess.opts.cg.ar {
Some(ref ar) => (*ar).clone(),
- None => "ar".to_string()
+ None => "@arPath@".to_string()
}
}
pub fn remove(sess: &Session, path: &Path) {
diff --git a/src/librustc_back/archive.rs b/src/librustc_back/archive.rs
index 060dda5..fecf76b 100644
--- a/src/librustc_back/archive.rs
+++ b/src/librustc_back/archive.rs
@@ -53,7 +53,7 @@ fn run_ar(handler: &ErrorHandler, maybe_ar_prog: &Option<String>,
paths: &[&Path]) -> ProcessOutput {
let ar = match *maybe_ar_prog {
Some(ref ar) => ar.as_slice(),
- None => "ar"
+ None => "@arPath@"
};
let mut cmd = Command::new(ar);

View File

@@ -2,12 +2,15 @@ diff --git a/src/etc/local_stage0.sh b/src/etc/local_stage0.sh
index e78f231..6b6773b 100755
--- a/src/etc/local_stage0.sh
+++ b/src/etc/local_stage0.sh
@@ -53,8 +53,3 @@ if [ -z $TARG_DIR ]; then
@@ -53,11 +53,6 @@
fi
cp ${PREFIX}/bin/rustc${BIN_SUF} ${TARG_DIR}/stage0/bin/
-cp ${PREFIX}/${LIB_DIR}/${RUSTLIBDIR}/${TARG_DIR}/${LIB_DIR}/* ${TARG_DIR}/stage0/${LIB_DIR}/
-cp ${PREFIX}/${LIB_DIR}/${LIB_PREFIX}extra*${LIB_SUF} ${TARG_DIR}/stage0/${LIB_DIR}/
-cp ${PREFIX}/${LIB_DIR}/${LIB_PREFIX}rust*${LIB_SUF} ${TARG_DIR}/stage0/${LIB_DIR}/
-cp ${PREFIX}/${LIB_DIR}/${LIB_PREFIX}std*${LIB_SUF} ${TARG_DIR}/stage0/${LIB_DIR}/
-cp ${PREFIX}/${LIB_DIR}/${LIB_PREFIX}syntax*${LIB_SUF} ${TARG_DIR}/stage0/${LIB_DIR}/
# do not fail if one of the above fails, as all we need is a working rustc!
exit 0

View File

@@ -1,11 +1,11 @@
{ stdenv, fetchurl, makeWrapper, jre }:
stdenv.mkDerivation rec {
name = "scala-2.11.1";
name = "scala-2.11.2";
src = fetchurl {
url = "http://www.scala-lang.org/files/archive/${name}.tgz";
sha256 = "1vjsmqjwpxavyj29wrbvvx7799fsa65d4iha5mj63cgs8qp605gk";
sha256 = "0mnjhjiixjphr9v101v408815hkl6hlghx9h7lmmylv5z7gk3p8k";
};
buildInputs = [ jre makeWrapper ] ;