diff --git a/pkgs/development/compilers/qcmm/builder.sh b/pkgs/development/compilers/qcmm/builder.sh new file mode 100644 index 00000000000..c1850306cc2 --- /dev/null +++ b/pkgs/development/compilers/qcmm/builder.sh @@ -0,0 +1,22 @@ +source $stdenv/setup + +configureFlags="--with-lua=$lua" + +MKFLAGS="-w$lua/include/lauxlib.h,$lua/include/luadebug.h,$lua/include/lua.h,$lua/include/lualib.h" + +buildPhase() { + mk timestamps + mk $MKFLAGS all all.opt +} + +installPhase() { +mk $MKFLAGS install install.opt +find $out -name \*.a -exec echo stripping {} \; \ + -exec strip -S {} \; || fail +patchELF $out +} + +buildPhase=buildPhase +installPhase=installPhase + +genericBuild diff --git a/pkgs/development/compilers/qcmm/default.nix b/pkgs/development/compilers/qcmm/default.nix new file mode 100644 index 00000000000..09807f22a97 --- /dev/null +++ b/pkgs/development/compilers/qcmm/default.nix @@ -0,0 +1,12 @@ +{stdenv, fetchurl, mk, ocaml, noweb, lua, groff }: +stdenv.mkDerivation { + name = "qcmm-2006-01-31"; + src = fetchurl { + url = http://losser.st-lab.cs.uu.nl/~cddouma/dist/qc--20060131.tar.gz; + md5 = "9097830775bcf22c9bad54f389f5db23"; + }; + buildInputs = [ mk ocaml noweb groff ]; + patches = [ ./qcmm.patch ]; + builder = ./builder.sh; + inherit lua; +} diff --git a/pkgs/development/compilers/qcmm/qcmm.patch b/pkgs/development/compilers/qcmm/qcmm.patch new file mode 100644 index 00000000000..570d87d5fee --- /dev/null +++ b/pkgs/development/compilers/qcmm/qcmm.patch @@ -0,0 +1,109 @@ +diff -ur qc--20060131.orig/configure qc--20060131/configure +--- qc--20060131.orig/configure 2005-11-05 22:15:24.000000000 +0100 ++++ qc--20060131/configure 2006-02-02 14:29:07.000000000 +0100 +@@ -93,7 +93,22 @@ + # for file in dirs and return, full path, if found, and "" otherwise. + # + +-sub search { search_with( sub($) { return (-f shift) }, @_) } ++sub combine { ++ my $base = shift; ++ my $file = shift; ++ return ("$base/$file") ++}; ++ ++sub search { search_with( sub($) { return (-f shift) }, \&combine, @_) } ++ ++sub search_suffix { ++ my $f = sub($) { ++ my $suffix = shift; ++ my $base = shift; ++ return ($base . $suffix); ++ }; ++ search_with(sub($) { return (-f shift) }, $f, @_) ++} + + sub searchx { + my $f = sub($) { +@@ -105,16 +120,17 @@ + } + return (1==2); # how do you write false in perl? + }; +- search_with($f, @_) ++ search_with($f, \&combine, @_) + } + + sub search_with { + my $p = shift; ++ my $com = shift; + my $file = shift; + +- printf(LOG "searching for %-20s", $file); ++ printf(LOG "searching for %-20s ", $file); + while ($f = shift (@_)) { +- my $x = "$f/$file"; ++ my $x = &$com($f, $file); + if (&$p($x)) { + print LOG "found $x\n"; + return $x +@@ -124,6 +140,20 @@ + return ""; + } + ++#configure lua based on some known installation prefix ++sub config_lua { ++ my $base = shift; ++ @libsuffix = ( ".so", "40.so", ".a", "40.a" ); ++ ++ $x{lua_h} = "$base/include/lua.h"; ++ $x{lualib_h} = "$base/include/lualib.h"; ++ $x{liblua} = search_suffix("$base/lib/liblua", @libsuffix); ++ $x{liblualib} = search_suffix("$base/lib/liblualib", @libsuffix); ++ $x{lua_inc} = "-I$base/include"; ++ $x{lua_lib} = "-L$base/lib/"; ++ $x{lua_libs} = "-llua -llualib"; ++} ++ + + # + # compile and run a small C program to find out about architecture +@@ -183,6 +213,8 @@ + + ./configure [options] + ++ --with-lua=/lua/path lua is installed in /lua/path the default ++ is to search for standard locations + --prefix=/usr/local install into the /usr/local hierarchy which + is also the default + -h, --help this summary +@@ -224,15 +256,15 @@ + # We start from here with reading the command line + # ------------------------------------------------------------------ + ++open (LOG, ">$configure_log") || die "cannot write configure.log: $!"; ++ + foreach (@ARGV) { + if (/^--?prefix=(.*)$/) { $x{prefix}=$1 } + elsif (/^--?h(elp?)$/) { usage(); exit 0 } ++ elsif (/^--?with-lua=(.*)$/) { config_lua($1) } + else { usage(); exit 1 } + } + +- +-open (LOG, ">$configure_log") || die "cannot write configure.log: $!"; +- + # check for various executables and versions. Only update variable if + # it is not already set. + # +diff -ur qc--20060131.orig/doc/mkfile qc--20060131/doc/mkfile +--- qc--20060131.orig/doc/mkfile 2005-11-07 01:41:21.000000000 +0100 ++++ qc--20060131/doc/mkfile 2006-02-02 00:38:00.000000000 +0100 +@@ -92,7 +92,7 @@ + # and accessible from Lua as This.manual. + + qc--.man:D: qc--.1 +- GROFF_NO_SGR=1 nroff -man -Tascii qc--.1 | ul -t dump > $target ++ GROFF_NO_SGR=1 nroff -man -Tascii qc--.1 > $target + + release.tex:D: release.nw + noweave -delay $prereq > $target diff --git a/pkgs/development/interpreters/lua-4/builder.sh b/pkgs/development/interpreters/lua-4/builder.sh new file mode 100644 index 00000000000..0c19827aea6 --- /dev/null +++ b/pkgs/development/interpreters/lua-4/builder.sh @@ -0,0 +1,6 @@ +source $stdenv/setup + +makeFlags="all so sobin" +installFlags="INSTALL_ROOT=$out" + +genericBuild diff --git a/pkgs/development/interpreters/lua-4/default.nix b/pkgs/development/interpreters/lua-4/default.nix new file mode 100644 index 00000000000..9502a9a0860 --- /dev/null +++ b/pkgs/development/interpreters/lua-4/default.nix @@ -0,0 +1,10 @@ +{stdenv, fetchurl}: + +stdenv.mkDerivation { + name = "lua-4.0.1"; + src = fetchurl { + url = http://www.lua.org/ftp/lua-4.0.1.tar.gz; + md5 = "a31d963dbdf727f9b34eee1e0d29132c"; + }; + builder= ./builder.sh; +} diff --git a/pkgs/development/interpreters/lua-5/builder.sh b/pkgs/development/interpreters/lua-5/builder.sh new file mode 100644 index 00000000000..6d1d918d4ce --- /dev/null +++ b/pkgs/development/interpreters/lua-5/builder.sh @@ -0,0 +1,6 @@ +source $stdenv/setup + +makeFlags="all so sobin" +installFlags="soinstall INSTALL_ROOT=$out" + +genericBuild diff --git a/pkgs/development/interpreters/lua-5/default.nix b/pkgs/development/interpreters/lua-5/default.nix new file mode 100644 index 00000000000..73270637eed --- /dev/null +++ b/pkgs/development/interpreters/lua-5/default.nix @@ -0,0 +1,10 @@ +{stdenv, fetchurl}: + +stdenv.mkDerivation { + name = "lua-5.0.2"; + src = fetchurl { + url = http://www.lua.org/ftp/lua-5.0.2.tar.gz; + md5 = "dea74646b7e5c621fef7174df83c34b1"; + }; + builder= ./builder.sh; +} diff --git a/pkgs/development/tools/build-managers/mk/builder.sh b/pkgs/development/tools/build-managers/mk/builder.sh new file mode 100644 index 00000000000..73678ae9f5c --- /dev/null +++ b/pkgs/development/tools/build-managers/mk/builder.sh @@ -0,0 +1,4 @@ +source $stdenv/setup +installFlags="PREFIX=$out" +preInstall="mkdir -p $out/man/man1 $out/bin" +genericBuild diff --git a/pkgs/development/tools/build-managers/mk/default.nix b/pkgs/development/tools/build-managers/mk/default.nix new file mode 100644 index 00000000000..65c934ec332 --- /dev/null +++ b/pkgs/development/tools/build-managers/mk/default.nix @@ -0,0 +1,10 @@ +{stdenv, fetchurl}: + +stdenv.mkDerivation { + name = "mk-2006-01-31"; + src = fetchurl { + url = http://losser.st-lab.cs.uu.nl/~cddouma/dist/mk-20060131.tar.gz; + md5 = "167fd4e0eea4f49def01984ec203289b"; + }; + builder = ./builder.sh; +} diff --git a/pkgs/development/tools/haskell/uuagc/default.nix b/pkgs/development/tools/haskell/uuagc/default.nix index 3a6354bddc8..c3c77a36790 100644 --- a/pkgs/development/tools/haskell/uuagc/default.nix +++ b/pkgs/development/tools/haskell/uuagc/default.nix @@ -9,7 +9,7 @@ let { }; body = stdenv.mkDerivation { - name = "uuagc"; + name = "uuagc-0.9.1"; src = fetchurl { url = http://nix.cs.uu.nl/dist/tarballs/uuagc-0.9.1-src.tar.gz; md5 = "0f29cad75bd759696edc61c24d1a5db9"; diff --git a/pkgs/development/tools/literate-programming/noweb/builder.sh b/pkgs/development/tools/literate-programming/noweb/builder.sh new file mode 100644 index 00000000000..0b5e5c6f634 --- /dev/null +++ b/pkgs/development/tools/literate-programming/noweb/builder.sh @@ -0,0 +1,11 @@ +source $stdenv/setup +export BIN=$out/bin +export LIB=$out/lib +export MAN=$out/man +# What location for texinputs (tex macro's used by noweb)? +export TEXINPUTS=$out/share/texmf/tex/latex +export SHELL +makeFlags="-e" +installFlags="-e" +preInstall="mkdir -p $TEXINPUTS" +genericBuild diff --git a/pkgs/development/tools/literate-programming/noweb/default.nix b/pkgs/development/tools/literate-programming/noweb/default.nix new file mode 100644 index 00000000000..5a6fd0c6f10 --- /dev/null +++ b/pkgs/development/tools/literate-programming/noweb/default.nix @@ -0,0 +1,10 @@ +{stdenv, fetchurl}: + +stdenv.mkDerivation { + name = "noweb-2.10c"; + src = fetchurl { + url = http://losser.st-lab.cs.uu.nl/~cddouma/dist/noweb-20060201.tar.gz; + md5 = "b4813c6bc0bab9004e57edc1d7e57638"; + }; + builder = ./builder.sh; +} diff --git a/pkgs/system/all-packages-generic.nix b/pkgs/system/all-packages-generic.nix index 77a2464e040..fe11dd3d10b 100644 --- a/pkgs/system/all-packages-generic.nix +++ b/pkgs/system/all-packages-generic.nix @@ -439,6 +439,14 @@ rec { inherit fetchurl stdenv; }; + mk = (import ../development/tools/build-managers/mk) { + inherit fetchurl stdenv; + }; + + noweb = (import ../development/tools/literate-programming/noweb) { + inherit fetchurl stdenv; + }; + scons = (import ../development/tools/build-managers/scons) { inherit fetchurl stdenv python; }; @@ -644,6 +652,11 @@ rec { inherit fetchurl stdenv x11; }; + qcmm = (import ../development/compilers/qcmm) { + lua = lua4; + inherit fetchurl stdenv mk ocaml noweb groff; + }; + mono = (import ../development/compilers/mono) { inherit fetchurl stdenv bison pkgconfig; inherit (gtkLibs) glib; @@ -747,6 +760,14 @@ rec { inherit fetchurl stdenv; }; + lua4 = (import ../development/interpreters/lua-4) { + inherit fetchurl stdenv; + }; + + lua5 = (import ../development/interpreters/lua-5) { + inherit fetchurl stdenv; + }; + tcl = (import ../development/interpreters/tcl) { inherit fetchurl stdenv; }; diff --git a/pkgs/system/populate-cache.nix b/pkgs/system/populate-cache.nix index 155b0d8d157..9cc9e76919e 100644 --- a/pkgs/system/populate-cache.nix +++ b/pkgs/system/populate-cache.nix @@ -67,6 +67,7 @@ let { libxml2 libxslt lynx + mk mktemp mono mysql @@ -82,6 +83,7 @@ let { postgresql postgresql_jdbc python + qcmm qt3 qtparted quake3demo