* 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
This commit is contained in:
parent
858cf3cdcb
commit
b48cc44ebf
@ -1,30 +1,34 @@
|
|||||||
{stdenv, fetchurl, perl, bison, mktemp, kernel
|
{stdenv, fetchurl, perl, bison, mktemp, kernelHeaders}:
|
||||||
, version ? "1.5"
|
|
||||||
, sha256 ? "1izhf8kscjymsvsvhcqw9awnmp94vwv70zdj09srg9bkpjj0n017"
|
|
||||||
, subdir ? ""
|
|
||||||
, addPreBuild ? ""
|
|
||||||
}:
|
|
||||||
|
|
||||||
assert stdenv.isLinux;
|
assert stdenv.isLinux;
|
||||||
|
|
||||||
|
let version = "1.5"; in
|
||||||
|
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
name = "klibc-${version}";
|
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"];
|
makeFlags = ["V=1" "prefix=$out" "SHLIBDIR=$out/lib"];
|
||||||
|
|
||||||
preBuild = ''
|
preBuild = ''
|
||||||
makeFlags=$(eval "echo $makeFlags")
|
makeFlags=$(eval "echo $makeFlags")
|
||||||
|
|
||||||
mkdir -p linux/include
|
mkdir linux
|
||||||
cp -prd $kernel/lib/modules/*/build/include/* linux/include/
|
cp -prsd ${kernelHeaders}/include linux/
|
||||||
chmod -R u+w linux/include/
|
chmod -R u+w linux/include/
|
||||||
'' + addPreBuild;
|
''; # */
|
||||||
src = fetchurl {
|
|
||||||
url = "mirror://kernel/linux/libs/klibc/${subdir}klibc-${version}.tar.bz2";
|
# Install static binaries as well.
|
||||||
inherit sha256;
|
postInstall = ''
|
||||||
# url = mirror://kernel/linux/libs/klibc/Testing/klibc-1.5.14.tar.bz2;
|
dir=$out/lib/klibc/bin.static
|
||||||
# sha256 = "1cmrqpgamnv2ns7dlxjm61zc88dxm4ff0aya413ij1lmhp2h2sfc";
|
mkdir $dir
|
||||||
};
|
cp $(find $(find . -name static) -type f ! -name "*.g" -a ! -name ".*") $dir/
|
||||||
inherit kernel;
|
cp usr/dash/sh $dir/
|
||||||
|
'';
|
||||||
|
|
||||||
buildInputs = [perl bison mktemp];
|
buildInputs = [perl bison mktemp];
|
||||||
#patches = [./install.patch];
|
|
||||||
}
|
}
|
||||||
|
@ -2,10 +2,12 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
name = "splashutils-1.3";
|
name = "splashutils-1.3";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = http://dev.gentoo.org/~spock/projects/splashutils/archive/splashutils-1.3.tar.bz2;
|
url = http://dev.gentoo.org/~spock/projects/splashutils/archive/splashutils-1.3.tar.bz2;
|
||||||
md5 = "c7c92b98e34b860511aa57bd29d62f76";
|
md5 = "c7c92b98e34b860511aa57bd29d62f76";
|
||||||
};
|
};
|
||||||
|
|
||||||
patches = [
|
patches = [
|
||||||
./purity.patch
|
./purity.patch
|
||||||
./no-fbsplash.patch
|
./no-fbsplash.patch
|
||||||
|
@ -1,21 +1,67 @@
|
|||||||
diff --git a/splash.h b/splash.h
|
diff -rc splashutils-1.3-orig/splash.h splashutils-1.3/splash.h
|
||||||
index 5dccfe0..eae2939 100644
|
*** splashutils-1.3-orig/splash.h 2006-07-15 00:02:23.000000000 +0200
|
||||||
--- a/splash.h
|
--- splashutils-1.3/splash.h 2009-01-29 16:41:00.000000000 +0100
|
||||||
+++ b/splash.h
|
***************
|
||||||
@@ -30,10 +30,14 @@ #endif
|
*** 21,40 ****
|
||||||
*/
|
*/
|
||||||
#ifdef TARGET_KERNEL
|
#ifdef TARGET_KERNEL
|
||||||
#include <linux/fb.h>
|
#include <linux/fb.h>
|
||||||
- #include <linux/console_splash.h>
|
- #include <linux/console_splash.h>
|
||||||
+ #ifdef CONFIG_FBSPLASH
|
|
||||||
+ #include <linux/console_splash.h>
|
|
||||||
+ #endif
|
|
||||||
#else
|
#else
|
||||||
#include <fb.h>
|
#include <fb.h>
|
||||||
- #include <console_splash.h>
|
- #include <console_splash.h>
|
||||||
+ #ifdef CONFIG_FBSPLASH
|
|
||||||
+ #include <console_splash.h>
|
|
||||||
+ #endif
|
|
||||||
#endif
|
#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~
|
||||||
|
@ -6213,7 +6213,7 @@ let
|
|||||||
"# CONFIG_PROC_MM_DUMPABLE is not set\n";
|
"# CONFIG_PROC_MM_DUMPABLE is not set\n";
|
||||||
}
|
}
|
||||||
{ name = "fbsplash-0.9.2-r5-2.6.21";
|
{ 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;
|
url = http://dev.gentoo.org/~dsd/genpatches/trunk/2.6.21/4200_fbsplash-0.9.2-r5.patch;
|
||||||
sha256 = "00s8074fzsly2zpir885zqkvq267qyzg6vhsn7n1z2v1z78avxd8";
|
sha256 = "00s8074fzsly2zpir885zqkvq267qyzg6vhsn7n1z2v1z78avxd8";
|
||||||
};
|
};
|
||||||
@ -6227,7 +6227,7 @@ let
|
|||||||
kernelPatches = [
|
kernelPatches = [
|
||||||
{ name = "fbsplash-0.9.2-r5-2.6.21";
|
{ name = "fbsplash-0.9.2-r5-2.6.21";
|
||||||
patch = fetchurl {
|
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";
|
sha256 = "0822wwlf2dqsap5qslnnp0yl1nbvvvb76l73w2dd8zsyn0bqg3px";
|
||||||
};
|
};
|
||||||
extraConfig = "CONFIG_FB_SPLASH=y";
|
extraConfig = "CONFIG_FB_SPLASH=y";
|
||||||
@ -6261,7 +6261,7 @@ let
|
|||||||
*/
|
*/
|
||||||
{ name = "fbsplash-0.9.2-r5-2.6.21";
|
{ name = "fbsplash-0.9.2-r5-2.6.21";
|
||||||
patch = fetchurl {
|
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";
|
sha256 = "0822wwlf2dqsap5qslnnp0yl1nbvvvb76l73w2dd8zsyn0bqg3px";
|
||||||
};
|
};
|
||||||
extraConfig = "CONFIG_FB_SPLASH=y";
|
extraConfig = "CONFIG_FB_SPLASH=y";
|
||||||
@ -6415,16 +6415,6 @@ let
|
|||||||
inherit kernel;
|
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 =
|
splashutils =
|
||||||
if kernel.features ? fbSplash then splashutils_13 else
|
if kernel.features ? fbSplash then splashutils_13 else
|
||||||
if kernel.features ? fbConDecor && system != "x86_64-linux" then splashutils_15 else
|
if kernel.features ? fbConDecor && system != "x86_64-linux" then splashutils_15 else
|
||||||
@ -6530,6 +6520,15 @@ let
|
|||||||
inherit fetchurl stdenv bison flex perl;
|
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;
|
kvm = kvm76;
|
||||||
|
|
||||||
kvm57 = import ../os-specific/linux/kvm/57.nix {
|
kvm57 = import ../os-specific/linux/kvm/57.nix {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user