forked from mirrors/nixpkgs
Merge pull request #93 from oxij/master
Support PCI passthrough in Xen. Add enca package. Revert of Xen version from 4.1.2 to 4.0.3.
This commit is contained in:
commit
7ea0160fee
|
@ -6,7 +6,7 @@ with stdenv.lib;
|
||||||
|
|
||||||
let
|
let
|
||||||
|
|
||||||
version = "4.1.2";
|
version = "4.0.3";
|
||||||
|
|
||||||
libDir = if stdenv.is64bit then "lib64" else "lib";
|
libDir = if stdenv.is64bit then "lib64" else "lib";
|
||||||
|
|
||||||
|
@ -30,24 +30,23 @@ let
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
ipxeSrc =
|
in
|
||||||
{ url = http://xenbits.xensource.com/xen-extfiles/ipxe-git-v1.0.0.tar.gz;
|
|
||||||
sha256 = "d3128bfda9a1542049c278755f85bbcbb8441da7bfd702d511ce237fcf86a723";
|
|
||||||
};
|
|
||||||
in
|
|
||||||
|
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
name = "xen-${version}";
|
name = "xen-${version}";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://bits.xensource.com/oss-xen/release/${version}/xen-${version}.tar.gz";
|
url = "http://bits.xensource.com/oss-xen/release/${version}/xen-${version}.tar.gz";
|
||||||
sha256 = "7d9c93057cf480d3f1efa792b19285a84fa3c06060ea5c5c453be00887389b0d";
|
sha256 = "0p4i7mm8cdsr8i9z3dij6nriyvz6la2rhm7jkyk2n8h62nnxi1b5";
|
||||||
};
|
};
|
||||||
|
|
||||||
patches =
|
patches =
|
||||||
[ # Xen looks for headers in /usr/include and for libraries using
|
[ # Xen looks for headers in /usr/include and for libraries using
|
||||||
# ldconfig. Don't do that.
|
# ldconfig. Don't do that.
|
||||||
./has-header.patch
|
./has-header.patch
|
||||||
|
|
||||||
|
# GCC 4.5 compatibility.
|
||||||
|
./gcc-4.5.patch
|
||||||
];
|
];
|
||||||
|
|
||||||
buildInputs =
|
buildInputs =
|
||||||
|
@ -80,6 +79,9 @@ stdenv.mkDerivation {
|
||||||
substituteInPlace tools/xenstat/Makefile \
|
substituteInPlace tools/xenstat/Makefile \
|
||||||
--replace /usr/include/curses.h ${ncurses}/include/curses.h
|
--replace /usr/include/curses.h ${ncurses}/include/curses.h
|
||||||
|
|
||||||
|
substituteInPlace tools/ioemu-qemu-xen/xen-hooks.mak \
|
||||||
|
--replace /usr/include/pci ${pciutils}/include/pci
|
||||||
|
|
||||||
# Work around a bug in our GCC wrapper: `gcc -MF foo -v' doesn't
|
# Work around a bug in our GCC wrapper: `gcc -MF foo -v' doesn't
|
||||||
# print the GCC version number properly.
|
# print the GCC version number properly.
|
||||||
substituteInPlace xen/Makefile \
|
substituteInPlace xen/Makefile \
|
||||||
|
@ -103,18 +105,12 @@ stdenv.mkDerivation {
|
||||||
--replace 'XENDOM_CONFIG=/etc/sysconfig/xendomains' "" \
|
--replace 'XENDOM_CONFIG=/etc/sysconfig/xendomains' "" \
|
||||||
--replace /bin/ls ls
|
--replace /bin/ls ls
|
||||||
|
|
||||||
grep -rl /etc/xen * | xargs sed -i 's|/etc/xen|$out/etc/xen|g'
|
|
||||||
|
|
||||||
# Xen's stubdoms need various sources that it usually fetches at
|
# Xen's stubdoms need various sources that it usually fetches at
|
||||||
# build time using wget. We can't have that.
|
# build time using wget. We can't have that.
|
||||||
${flip concatMapStrings stubdomSrcs (x: let src = fetchurl x; in ''
|
${flip concatMapStrings stubdomSrcs (x: let src = fetchurl x; in ''
|
||||||
cp ${src} stubdom/${src.name}
|
cp ${src} stubdom/${src.name}
|
||||||
'')}
|
'')}
|
||||||
|
|
||||||
${let src = fetchurl ipxeSrc; in ''
|
|
||||||
cp ${src} tools/firmware/etherboot/ipxe.tar.gz
|
|
||||||
''}
|
|
||||||
|
|
||||||
# Hack to get `gcc -m32' to work without having 32-bit Glibc headers.
|
# Hack to get `gcc -m32' to work without having 32-bit Glibc headers.
|
||||||
mkdir -p tools/include/gnu
|
mkdir -p tools/include/gnu
|
||||||
touch tools/include/gnu/stubs-32.h
|
touch tools/include/gnu/stubs-32.h
|
||||||
|
|
39
pkgs/applications/virtualization/xen/gcc-4.5.patch
Normal file
39
pkgs/applications/virtualization/xen/gcc-4.5.patch
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
http://lists.xensource.com/archives/html/xen-devel/2010-07/msg01276.html
|
||||||
|
|
||||||
|
diff -ru -x '*~' xen-4.0.1-orig//extras/mini-os/arch/x86/mm.c xen-4.0.1//extras/mini-os/arch/x86/mm.c
|
||||||
|
--- xen-4.0.1-orig//extras/mini-os/arch/x86/mm.c 2010-08-25 12:22:07.000000000 +0200
|
||||||
|
+++ xen-4.0.1//extras/mini-os/arch/x86/mm.c 2010-12-22 20:10:05.000000000 +0100
|
||||||
|
@@ -281,7 +281,7 @@
|
||||||
|
/*
|
||||||
|
* Mark portion of the address space read only.
|
||||||
|
*/
|
||||||
|
-extern void shared_info;
|
||||||
|
+extern char shared_info[PAGE_SIZE];
|
||||||
|
static void set_readonly(void *text, void *etext)
|
||||||
|
{
|
||||||
|
unsigned long start_address =
|
||||||
|
diff -ru -x '*~' xen-4.0.1-orig//extras/mini-os/minios.mk xen-4.0.1//extras/mini-os/minios.mk
|
||||||
|
--- xen-4.0.1-orig//extras/mini-os/minios.mk 2010-08-25 12:22:07.000000000 +0200
|
||||||
|
+++ xen-4.0.1//extras/mini-os/minios.mk 2010-12-22 20:03:11.000000000 +0100
|
||||||
|
@@ -10,6 +10,7 @@
|
||||||
|
DEF_CFLAGS += $(call cc-option,$(CC),-fno-stack-protector,)
|
||||||
|
DEF_CFLAGS += $(call cc-option,$(CC),-fgnu89-inline)
|
||||||
|
DEF_CFLAGS += -Wstrict-prototypes -Wnested-externs -Wpointer-arith -Winline
|
||||||
|
+DEF_CFLAGS += -Wno-uninitialized
|
||||||
|
DEF_CPPFLAGS += -D__XEN_INTERFACE_VERSION__=$(XEN_INTERFACE_VERSION)
|
||||||
|
|
||||||
|
DEF_ASFLAGS += -D__ASSEMBLY__
|
||||||
|
diff -ru -x '*~' xen-4.0.1-orig//extras/mini-os/netfront.c xen-4.0.1//extras/mini-os/netfront.c
|
||||||
|
--- xen-4.0.1-orig//extras/mini-os/netfront.c 2010-08-25 12:22:07.000000000 +0200
|
||||||
|
+++ xen-4.0.1//extras/mini-os/netfront.c 2010-12-22 19:56:59.000000000 +0100
|
||||||
|
@@ -25,8 +25,8 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-#define NET_TX_RING_SIZE __RING_SIZE((struct netif_tx_sring *)0, PAGE_SIZE)
|
||||||
|
-#define NET_RX_RING_SIZE __RING_SIZE((struct netif_rx_sring *)0, PAGE_SIZE)
|
||||||
|
+#define NET_TX_RING_SIZE __CONST_RING_SIZE(netif_tx, PAGE_SIZE)
|
||||||
|
+#define NET_RX_RING_SIZE __CONST_RING_SIZE(netif_rx, PAGE_SIZE)
|
||||||
|
#define GRANT_INVALID_REF 0
|
||||||
|
|
||||||
|
|
29
pkgs/tools/text/enca/default.nix
Normal file
29
pkgs/tools/text/enca/default.nix
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
{ stdenv, fetchurl, libiconv ? null }:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
name = "enca-1.13";
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = "http://dl.cihar.com/enca/${name}.tar.bz2";
|
||||||
|
sha256 = "6c091455d524b3ddae3533fe9bb375092f60ad6fe252e0777c873bd7869c7432";
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = (stdenv.lib.optional (libiconv != null) libiconv);
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
homepage = http://freecode.com/projects/enca;
|
||||||
|
description = "Detects the encoding of text files and reencodes them";
|
||||||
|
|
||||||
|
longDescription = ''
|
||||||
|
Enca detects the encoding of text files, on the basis of knowledge
|
||||||
|
of their language. It can also convert them to other encodings,
|
||||||
|
allowing you to recode files without knowing their current encoding.
|
||||||
|
It supports most of Central and East European languages, and a few
|
||||||
|
Unicode variants, independently on language.
|
||||||
|
'';
|
||||||
|
|
||||||
|
license = "GPLv2";
|
||||||
|
|
||||||
|
platforms = stdenv.lib.platforms.all;
|
||||||
|
};
|
||||||
|
}
|
|
@ -451,6 +451,8 @@ let
|
||||||
|
|
||||||
eggdrop = callPackage ../tools/networking/eggdrop { };
|
eggdrop = callPackage ../tools/networking/eggdrop { };
|
||||||
|
|
||||||
|
enca = callPackage ../tools/text/enca { };
|
||||||
|
|
||||||
mcrl = callPackage ../tools/misc/mcrl { };
|
mcrl = callPackage ../tools/misc/mcrl { };
|
||||||
|
|
||||||
mcrl2 = callPackage ../tools/misc/mcrl2 { };
|
mcrl2 = callPackage ../tools/misc/mcrl2 { };
|
||||||
|
|
Loading…
Reference in a new issue