* Sync with the trunk.

svn path=/nixpkgs/branches/stdenv-updates/; revision=25308
This commit is contained in:
Eelco Dolstra
2010-12-28 16:42:00 +00:00
115 changed files with 2957 additions and 20 deletions

View File

@@ -0,0 +1,17 @@
The clean command line compiler clm checks modules for freshness by comparing timestamps.
However, in chroot builds all files installed have the same timestamp. This leads to clm
trying to rebuild the library modules distributed with the Clean install every time a user
compiles any file. This patch changes the freshness check to use less than instead of less
than or equal to in order to avoid this.
--- clean-upstream/src/tools/clm/clm.c 2010-12-10 06:12:17.000000000 -0430
+++ clean/src/tools/clm/clm.c 2010-12-25 10:29:09.840675925 -0430
@@ -250,7 +250,7 @@
|| (t1.dwHighDateTime==t2.dwHighDateTime && (unsigned)(t1.dwLowDateTime)<=(unsigned)(t2.dwLowDateTime)))
#else
typedef unsigned long FileTime;
-# define FILE_TIME_LE(t1,t2) (t1<=t2)
+# define FILE_TIME_LE(t1,t2) (t1<t2)
#endif
typedef struct project_node {

View File

@@ -0,0 +1,50 @@
{ stdenv, fetchurl }:
stdenv.mkDerivation rec {
name = "clean-2.3";
src =
if stdenv.system == "i686-linux" then (fetchurl {
url = "http://clean.cs.ru.nl/download/Clean23/linux/clean2.3_boot.tar.gz";
sha256 = "0rrjpqdbqwbx7n8v35wi3wpm6lpv9zd1n5q50byb2h0ljqw31j9h";
})
else if stdenv.system == "x86_64-linux" then (fetchurl {
url = "http://clean.cs.ru.nl/download/Clean23/linux/clean2.3_64_boot.tar.gz";
sha256 = "0bvkaiwcaa1p6h1bl4bgnia1yd0j8nq6sb1yiwar74y2m1wwmjqj";
})
else throw "Architecture not supported";
# clm uses timestamps of dcl, icl, abc and o files to decide what must be rebuild
# and for chroot builds all of the library files will have equal timestamps. This
# makes clm try to rebuild the library modules (and fail due to absence of write permission
# on the Nix store) every time any file is compiled.
patches = [ ./chroot-build-support-do-not-rebuild-equal-timestamps.patch ];
preBuild = ''
substituteInPlace Makefile --replace 'INSTALL_DIR = $(CURRENTDIR)' 'INSTALL_DIR = '$out
substituteInPlace src/tools/clm/clm.c --replace '/usr/bin/gcc' $(type -p gcc)
substituteInPlace src/tools/clm/clm.c --replace '/usr/bin/as' $(type -p as)
cd src
'';
postBuild = ''
cd ..
'';
meta = {
description = "Clean is a general purpose, state-of-the-art, pure and lazy functional programming language.";
longDescription = ''
Clean is a general purpose, state-of-the-art, pure and lazy functional
programming language designed for making real-world applications. Some
of its most notable language features are uniqueness typing, dynamic typing,
and generic functions.
'';
homepage = http://wiki.clean.cs.ru.nl/Clean;
license = stdenv.lib.licenses.lgpl21;
maintainers = [ stdenv.lib.maintainers.kkallio ];
platforms = [ "i686-linux" "x86_64-linux" ];
};
}