summary refs log tree commit diff
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
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
-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
-rw-r--r--pkgs/top-level/all-packages.nix25
4 files changed, 103 insertions, 52 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~
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 8df2807e02d3..412c201a522b 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -6213,7 +6213,7 @@ let
           "# CONFIG_PROC_MM_DUMPABLE is not set\n";
       }
       { name = "fbsplash-0.9.2-r5-2.6.21";
-        patch = fetchurl {
+        patch = fetchurl { # !!! missing!
           url = http://dev.gentoo.org/~dsd/genpatches/trunk/2.6.21/4200_fbsplash-0.9.2-r5.patch;
           sha256 = "00s8074fzsly2zpir885zqkvq267qyzg6vhsn7n1z2v1z78avxd8";
         };
@@ -6227,7 +6227,7 @@ let
     kernelPatches = [
       { name = "fbsplash-0.9.2-r5-2.6.21";
         patch = fetchurl {
-          url = http://dev.gentoo.org/~dsd/genpatches/trunk/2.6.22/4200_fbsplash-0.9.2-r5.patch;
+          url = http://nixos.org/tarballs/4200_fbsplash-0.9.2-r5.patch;
           sha256 = "0822wwlf2dqsap5qslnnp0yl1nbvvvb76l73w2dd8zsyn0bqg3px";
         };
         extraConfig = "CONFIG_FB_SPLASH=y";
@@ -6261,7 +6261,7 @@ let
       */
       { name = "fbsplash-0.9.2-r5-2.6.21";
         patch = fetchurl {
-          url = http://dev.gentoo.org/~dsd/genpatches/trunk/2.6.22/4200_fbsplash-0.9.2-r5.patch;
+          url = http://nixos.org/tarballs/4200_fbsplash-0.9.2-r5.patch;
           sha256 = "0822wwlf2dqsap5qslnnp0yl1nbvvvb76l73w2dd8zsyn0bqg3px";
         };
         extraConfig = "CONFIG_FB_SPLASH=y";
@@ -6415,16 +6415,6 @@ let
       inherit kernel;
     };
 
-    # Actually, klibc builds fine with the static kernelHeaders, but
-    # splashutils expects a klibc with patched headers...
-    klibc = composedArgsAndFun (import ../os-specific/linux/klibc) {
-      inherit fetchurl stdenv perl bison mktemp kernel;
-    };
-
-    klibcShrunk = composedArgsAndFun (import ../os-specific/linux/klibc/shrunk.nix) {
-      inherit stdenv klibc;
-    };
-
     splashutils =
       if kernel.features ? fbSplash then splashutils_13 else
       if kernel.features ? fbConDecor && system != "x86_64-linux" then splashutils_15 else
@@ -6530,6 +6520,15 @@ let
     inherit fetchurl stdenv bison flex perl;
   };
 
+  klibc = composedArgsAndFun (import ../os-specific/linux/klibc) {
+    inherit fetchurl stdenv perl bison mktemp;
+    kernelHeaders = glibc.kernelHeaders;
+  };
+
+  klibcShrunk = composedArgsAndFun (import ../os-specific/linux/klibc/shrunk.nix) {
+    inherit stdenv klibc;
+  };
+
   kvm = kvm76;
 
   kvm57 = import ../os-specific/linux/kvm/57.nix {