about summary refs log tree commit diff
path: root/pkgs/os-specific/linux
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2009-01-29 15:44:37 +0000
committerEelco Dolstra <eelco.dolstra@logicblox.com>2009-01-29 15:44:37 +0000
commitb48cc44ebf28032d2a932ffc93e23d74b9561791 (patch)
treeeead55f8c57ce03d603c7835cdefd3a596523d06 /pkgs/os-specific/linux
parent858cf3cdcb6c9d0572698189f59d3638df7908ca (diff)
downloadnixlib-b48cc44ebf28032d2a932ffc93e23d74b9561791.tar
nixlib-b48cc44ebf28032d2a932ffc93e23d74b9561791.tar.gz
nixlib-b48cc44ebf28032d2a932ffc93e23d74b9561791.tar.bz2
nixlib-b48cc44ebf28032d2a932ffc93e23d74b9561791.tar.lz
nixlib-b48cc44ebf28032d2a932ffc93e23d74b9561791.tar.xz
nixlib-b48cc44ebf28032d2a932ffc93e23d74b9561791.tar.zst
nixlib-b48cc44ebf28032d2a932ffc93e23d74b9561791.zip
* klibc: install statically linked binaries as well.
* klibc: build against the regular kernel headers instead of depending
  on a kernel build.  This way we don't have to rebuild klibc every
  time the kernel changes.
* splashutils 1.3: compile properly with a klibc that uses unpatched
  kernel headers.

svn path=/nixpkgs/trunk/; revision=13900
Diffstat (limited to 'pkgs/os-specific/linux')
-rw-r--r--pkgs/os-specific/linux/klibc/default.nix40
-rw-r--r--pkgs/os-specific/linux/splashutils/1.3.nix2
-rw-r--r--pkgs/os-specific/linux/splashutils/no-fbsplash.patch88
3 files changed, 91 insertions, 39 deletions
diff --git a/pkgs/os-specific/linux/klibc/default.nix b/pkgs/os-specific/linux/klibc/default.nix
index 024b1ffe9fa3..3a92c2f4d297 100644
--- a/pkgs/os-specific/linux/klibc/default.nix
+++ b/pkgs/os-specific/linux/klibc/default.nix
@@ -1,30 +1,34 @@
-{stdenv, fetchurl, perl, bison, mktemp, kernel
-  , version ? "1.5"
-  , sha256 ?  "1izhf8kscjymsvsvhcqw9awnmp94vwv70zdj09srg9bkpjj0n017"
-  , subdir ? ""
-  , addPreBuild ? ""
-}:
+{stdenv, fetchurl, perl, bison, mktemp, kernelHeaders}:
 
 assert stdenv.isLinux;
 
+let version = "1.5"; in
+
 stdenv.mkDerivation {
   name = "klibc-${version}";
-  #builder = ./builder.sh;
+
+  src = fetchurl {
+    url = "mirror://kernel/linux/libs/klibc/klibc-${version}.tar.bz2";
+    sha256 = "1izhf8kscjymsvsvhcqw9awnmp94vwv70zdj09srg9bkpjj0n017";
+  };
+  
   makeFlags = ["V=1" "prefix=$out" "SHLIBDIR=$out/lib"];
+  
   preBuild = ''
     makeFlags=$(eval "echo $makeFlags")
 
-    mkdir -p linux/include
-    cp -prd $kernel/lib/modules/*/build/include/* linux/include/
+    mkdir linux
+    cp -prsd ${kernelHeaders}/include linux/
     chmod -R u+w linux/include/
-  '' + addPreBuild;
-  src = fetchurl {
-    url = "mirror://kernel/linux/libs/klibc/${subdir}klibc-${version}.tar.bz2";
-    inherit sha256;
-#    url = mirror://kernel/linux/libs/klibc/Testing/klibc-1.5.14.tar.bz2;
-#    sha256 = "1cmrqpgamnv2ns7dlxjm61zc88dxm4ff0aya413ij1lmhp2h2sfc";
-  };
-  inherit kernel;
+  ''; # */
+  
+  # Install static binaries as well.
+  postInstall = ''
+    dir=$out/lib/klibc/bin.static
+    mkdir $dir
+    cp $(find $(find . -name static) -type f ! -name "*.g" -a ! -name ".*") $dir/
+    cp usr/dash/sh $dir/
+  '';
+  
   buildInputs = [perl bison mktemp];
-  #patches = [./install.patch];
 }
diff --git a/pkgs/os-specific/linux/splashutils/1.3.nix b/pkgs/os-specific/linux/splashutils/1.3.nix
index 9775f66a1b79..51c53dd2a799 100644
--- a/pkgs/os-specific/linux/splashutils/1.3.nix
+++ b/pkgs/os-specific/linux/splashutils/1.3.nix
@@ -2,10 +2,12 @@
 
 stdenv.mkDerivation {
   name = "splashutils-1.3";
+  
   src = fetchurl {
     url = http://dev.gentoo.org/~spock/projects/splashutils/archive/splashutils-1.3.tar.bz2;
     md5 = "c7c92b98e34b860511aa57bd29d62f76";
   };
+  
   patches = [
     ./purity.patch
     ./no-fbsplash.patch
diff --git a/pkgs/os-specific/linux/splashutils/no-fbsplash.patch b/pkgs/os-specific/linux/splashutils/no-fbsplash.patch
index a39fda6591c3..f83275ea84a1 100644
--- a/pkgs/os-specific/linux/splashutils/no-fbsplash.patch
+++ b/pkgs/os-specific/linux/splashutils/no-fbsplash.patch
@@ -1,21 +1,67 @@
-diff --git a/splash.h b/splash.h
-index 5dccfe0..eae2939 100644
---- a/splash.h
-+++ b/splash.h
-@@ -30,10 +30,14 @@ #endif
-  */
- #ifdef TARGET_KERNEL
- 	#include <linux/fb.h>
--	#include <linux/console_splash.h>
-+	#ifdef CONFIG_FBSPLASH
-+		#include <linux/console_splash.h>
-+	#endif
- #else
- 	#include <fb.h>
--	#include <console_splash.h>
-+	#ifdef CONFIG_FBSPLASH
-+		#include <console_splash.h>
-+	#endif
- #endif
- 
- /*
+diff -rc splashutils-1.3-orig/splash.h splashutils-1.3/splash.h
+*** splashutils-1.3-orig/splash.h	2006-07-15 00:02:23.000000000 +0200
+--- splashutils-1.3/splash.h	2009-01-29 16:41:00.000000000 +0100
+***************
+*** 21,40 ****
+   */
+  #ifdef TARGET_KERNEL
+  	#include <linux/fb.h>
+- 	#include <linux/console_splash.h>
+  #else
+  	#include <fb.h>
+- 	#include <console_splash.h>
+  #endif
+  
+  /*
+   * Necessary to avoid compilation errors when fbsplash support is
+   * disabled.
+   */
+- #if !defined(CONFIG_FBSPLASH)
+  	#define FB_SPLASH_IO_ORIG_USER		0
+  	#define FB_SPLASH_IO_ORIG_KERNEL	1
+! #endif
+  
+  /*
+   * Adjustable settings
+--- 21,60 ----
+   */
+  #ifdef TARGET_KERNEL
+  	#include <linux/fb.h>
+  #else
+  	#include <fb.h>
+  #endif
+  
+  /*
+   * Necessary to avoid compilation errors when fbsplash support is
+   * disabled.
+   */
+  	#define FB_SPLASH_IO_ORIG_USER		0
+  	#define FB_SPLASH_IO_ORIG_KERNEL	1
+! 
+! #define FBIOSPLASH_SETCFG      _IOWR('F', 0x19, struct fb_splash_iowrapper)
+! #define FBIOSPLASH_GETCFG      _IOR('F', 0x1A, struct fb_splash_iowrapper)
+! #define FBIOSPLASH_SETSTATE    _IOWR('F', 0x1B, struct fb_splash_iowrapper)
+! #define FBIOSPLASH_GETSTATE    _IOR('F', 0x1C, struct fb_splash_iowrapper)
+! #define FBIOSPLASH_SETPIC      _IOWR('F', 0x1D, struct fb_splash_iowrapper)
+! 
+! #define FB_SPLASH_THEME_LEN            128     /* Maximum lenght of a theme name */
+! 
+! struct fb_splash_iowrapper
+! {
+!        unsigned short vc;              /* Virtual console */
+!        unsigned char origin;           /* Point of origin of the request */
+!        void *data;
+! };
+! 
+! /* A structure used by the framebuffer splash code (drivers/video/fbsplash.c) */
+! struct vc_splash {
+!        __u8 bg_color;                          /* The color that is to be treated as transparent */
+!        __u8 state;                             /* Current splash state: 0 = off, 1 = on */
+!        __u16 tx, ty;                           /* Top left corner coordinates of the text field */
+!        __u16 twidth, theight;                  /* Width and height of the text field */
+!        char* theme;
+! };
+  
+  /*
+   * Adjustable settings
+Only in splashutils-1.3/: splash.h~