diff --git a/pkgs/development/libraries/libx86/constants.patch b/pkgs/development/libraries/libx86/constants.patch new file mode 100644 index 000000000000..10fc829d6743 --- /dev/null +++ b/pkgs/development/libraries/libx86/constants.patch @@ -0,0 +1,20 @@ +--- libx86/lrmi.c 2008-09-06 12:24:36.070136428 +0200 ++++ libx86/lrmi.c 2008-09-06 12:28:10.584287458 +0200 +@@ -56,5 +56,17 @@ + + #if defined(__linux__) ++#ifndef TF_MASK ++#define TF_MASK X86_EFLAGS_TF ++#endif ++#ifndef IF_MASK ++#define IF_MASK X86_EFLAGS_IF ++#endif ++#ifndef IOPL_MASK ++#define IOPL_MASK X86_EFLAGS_IOPL ++#endif ++#ifndef VIF_MASK ++#define VIF_MASK X86_EFLAGS_VIF ++#endif + #define DEFAULT_VM86_FLAGS (IF_MASK | IOPL_MASK) + #elif defined(__NetBSD__) || defined(__FreeBSD__) + #define DEFAULT_VM86_FLAGS (PSL_I | PSL_IOPL) diff --git a/pkgs/development/libraries/libx86/default.nix b/pkgs/development/libraries/libx86/default.nix new file mode 100644 index 000000000000..05251d2ebfe9 --- /dev/null +++ b/pkgs/development/libraries/libx86/default.nix @@ -0,0 +1,31 @@ +a : +let + s = import ./src-for-default.nix; + buildInputs = with a; [ + + ]; +in +rec { + src = a.fetchUrlFromSrcInfo s; + + inherit (s) name; + inherit buildInputs; + + phaseNames = ["doPatch" "killUsr" "doMakeInstall"]; + patches = [./constants.patch]; + makeFlags = [ + "DESTDIR=$out" + ]; + killUsr = a.fullDepEntry ('' + sed -e s@/usr@@ -i Makefile + '') ["doUnpack" "minInit"]; + + meta = { + description = "Real-mode x86 code emulator"; + maintainers = [ + a.lib.maintainers.raskin + ]; + platforms = with a.lib.platforms; + linux ++ freebsd ++ netbsd; + }; +} diff --git a/pkgs/development/libraries/libx86/src-for-default.nix b/pkgs/development/libraries/libx86/src-for-default.nix new file mode 100644 index 000000000000..30be467f9fd2 --- /dev/null +++ b/pkgs/development/libraries/libx86/src-for-default.nix @@ -0,0 +1,9 @@ +rec { + version="1.1"; + name="libx86-1.1"; + hash="0j6h6bc02c6qi0q7c1ncraz4d1hkm5936r35rfsp4x1jrc233wav"; + url="http://www.codon.org.uk/~mjg59/libx86/downloads/libx86-${version}.tar.gz"; + advertisedUrl="http://www.codon.org.uk/~mjg59/libx86/downloads/libx86-1.1.tar.gz"; + + +} diff --git a/pkgs/development/libraries/libx86/src-info-for-default.nix b/pkgs/development/libraries/libx86/src-info-for-default.nix new file mode 100644 index 000000000000..9861e21f6559 --- /dev/null +++ b/pkgs/development/libraries/libx86/src-info-for-default.nix @@ -0,0 +1,4 @@ +{ + downloadPage = "http://www.codon.org.uk/~mjg59/libx86/downloads/?C=M;O=D"; + baseName = "libx86"; +} diff --git a/pkgs/tools/system/vbetool/default.nix b/pkgs/tools/system/vbetool/default.nix new file mode 100644 index 000000000000..c625f1b7813a --- /dev/null +++ b/pkgs/tools/system/vbetool/default.nix @@ -0,0 +1,31 @@ +a : +let + s = import ./src-for-default.nix; + buildInputs = with a; [ + libx86 pciutils zlib + ]; +in +rec { + src = a.fetchUrlFromSrcInfo s; + + inherit (s) name; + inherit buildInputs; + configureFlags = []; + + /* doConfigure should be removed if not needed */ + phaseNames = ["fixPCIref" "doConfigure" "doMakeInstall"]; + + fixPCIref = a.fullDepEntry ('' + sed -e 's@$(libdir)/libpci.a@${a.pciutils}/lib/libpci.so@' -i Makefile.in + export NIX_LDFLAGS="$NIX_LDFLAGS -lpci" + '') ["doUnpack" "minInit"]; + + meta = { + description = "Video BIOS execution tool"; + maintainers = [ + a.lib.maintainers.raskin + ]; + platforms = with a.lib.platforms; + linux; + }; +} diff --git a/pkgs/tools/system/vbetool/src-for-default.nix b/pkgs/tools/system/vbetool/src-for-default.nix new file mode 100644 index 000000000000..97621fd516b4 --- /dev/null +++ b/pkgs/tools/system/vbetool/src-for-default.nix @@ -0,0 +1,9 @@ +rec { + version="1.1"; + name="vbetool-1.1"; + hash="0m7rc9v8nz6w9x4x96maza139kin6lg4hscy6i13fna4672ds9jd"; + url="http://www.codon.org.uk/~mjg59/vbetool/download/vbetool-${version}.tar.gz"; + advertisedUrl="http://www.codon.org.uk/~mjg59/vbetool/download/vbetool-1.1.tar.gz"; + + +} diff --git a/pkgs/tools/system/vbetool/src-info-for-default.nix b/pkgs/tools/system/vbetool/src-info-for-default.nix new file mode 100644 index 000000000000..40c721bc4908 --- /dev/null +++ b/pkgs/tools/system/vbetool/src-info-for-default.nix @@ -0,0 +1,4 @@ +{ + downloadPage = "http://www.codon.org.uk/~mjg59/vbetool/download/?C=M;O=D"; + baseName = "vbetool"; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 18a5a82785ea..c3c95bcac49c 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1565,6 +1565,10 @@ let inherit fetchurl stdenv ucl zlib; }; + vbetool = builderDefsPackage ../tools/system/vbetool { + inherit pciutils libx86 zlib; + }; + viking = import ../applications/misc/viking { inherit fetchurl stdenv pkgconfig intltool gettext expat curl gpsd bc file; @@ -4083,6 +4087,8 @@ let inherit (gnome) glib; }; + libx86 = builderDefsPackage ../development/libraries/libx86 {}; + libxcrypt = import ../development/libraries/libxcrypt { inherit fetchurl stdenv; };