about summary refs log tree commit diff
path: root/pkgs/applications/virtualization/bochs
diff options
context:
space:
mode:
authorAndersonTorres <torres.anderson.85@gmail.com>2017-07-10 07:55:09 -0300
committerAndersonTorres <torres.anderson.85@gmail.com>2017-07-15 08:53:15 -0300
commita3aa0ba18be43165a76d1e1cc301699cb05152b0 (patch)
tree3abc3804f35efb0b00b45eaa9ee1eb29f97b095c /pkgs/applications/virtualization/bochs
parent7383d69514f2ec11f8fab4d7bf04c142a5ab57fd (diff)
downloadnixlib-a3aa0ba18be43165a76d1e1cc301699cb05152b0.tar
nixlib-a3aa0ba18be43165a76d1e1cc301699cb05152b0.tar.gz
nixlib-a3aa0ba18be43165a76d1e1cc301699cb05152b0.tar.bz2
nixlib-a3aa0ba18be43165a76d1e1cc301699cb05152b0.tar.lz
nixlib-a3aa0ba18be43165a76d1e1cc301699cb05152b0.tar.xz
nixlib-a3aa0ba18be43165a76d1e1cc301699cb05152b0.tar.zst
nixlib-a3aa0ba18be43165a76d1e1cc301699cb05152b0.zip
bochs: 2.6.8 -> 2.6.9
Diffstat (limited to 'pkgs/applications/virtualization/bochs')
-rw-r--r--pkgs/applications/virtualization/bochs/default.nix151
1 files changed, 54 insertions, 97 deletions
diff --git a/pkgs/applications/virtualization/bochs/default.nix b/pkgs/applications/virtualization/bochs/default.nix
index dfd926855790..211bd2f39e08 100644
--- a/pkgs/applications/virtualization/bochs/default.nix
+++ b/pkgs/applications/virtualization/bochs/default.nix
@@ -1,11 +1,10 @@
-{ stdenv, fetchurl, config
+{ stdenv, fetchurl
 , pkgconfig, libtool
 , gtk2, mesa, readline, libX11, libXpm
 , docbook_xml_dtd_45, docbook_xsl
 , sdlSupport ? true, SDL2 ? null
-, termSupport ? true , ncurses ? null
+, termSupport ? true, ncurses ? null
 , wxSupport ? true, wxGTK ? null
-# Optional, undocumented dependencies
 , wgetSupport ? false, wget ? null
 , curlSupport ? false, curl ? null
 }:
@@ -16,58 +15,17 @@ assert wxSupport -> (gtk2 != null && wxGTK != null);
 assert wgetSupport -> (wget != null);
 assert curlSupport -> (curl != null);
 
+with stdenv.lib;
 stdenv.mkDerivation rec {
 
   name = "bochs-${version}";
-  version = "2.6.8";
+  version = "2.6.9";
 
   src = fetchurl {
     url = "mirror://sourceforge/project/bochs/bochs/${version}/${name}.tar.gz";
-    sha256 = "1kl5cmbz6qgg33j5vv9898nzdppp1rqgy24r5pv762aaj7q0ww3r";
+    sha256 = "1379cq4cnfprhw8mgh60i0q9j8fz8d7n3d5fnn2g9fdiv5znfnzf";
   };
 
-  # The huge list of configurable options
-  # Blatantly based on ffmpeg expressions
-
-  termSupport = config.bochs.termSupport or true;
-  sdlSupport = config.bochs.sdlSupport or true;
-  wxSupport = config.bochs.wxSupport or false;
-  largefile = config.bochs.largefile or true;
-  idleHack = config.bochs.idleHack or true;
-  plugins = config.bochs.plugins or false; # Warning! Broken
-  a20Pin = config.bochs.a20Pin or true;
-  emulate64Bits = config.bochs.emulate64Bits or false;
-  smp = config.bochs.smp or false;
-  largeRamfile = config.bochs.largeRamfile or true;
-  repeatSpeedups = config.bochs.repeatSpeedups or false;
-  handlersChaining = config.bochs.handlersChaining or false;
-  traceLinking = config.bochs.traceLinking or false;
-  configurableMSRegs = config.bochs.configurableMSRegs or false;
-  showIPS = config.bochs.showIPS or true;
-  debugger = config.bochs.debugger or false;
-  disasm = config.bochs.disasm or false;
-  debuggerGui = config.bochs.debuggerGui or false;
-  gdbStub = config.bochs.gdbStub or false;
-  IODebug = config.Bochs.IODebug or false;
-  fpu = config.bochs.fpu or true;
-  svm = config.bochs.svm or false;
-  avx = config.bochs.avx or false;
-  evex = config.bochs.evex or false;
-  x86Debugger = config.bochs.x86Debugger or false;
-  pci = config.bochs.pci or true;
-  uhci = config.bochs.uhci or false;
-  ohci = config.bochs.ohci or false;
-  ne2k = config.bochs.ne2k or true;
-  pNIC = config.bochs.pNIC or true;
-  e1000 = config.bochs.e1000 or true;
-  clgd54xx = config.bochs.clgd54xx or true;
-  voodoo = config.bochs.voodoo or true;
-  cdrom = config.bochs.cdrom or true;
-  sb16 = config.bochs.sb16 or true;
-  es1370 = config.bochs.es1370 or true;
-  gameport = config.bochs.gameport or true;
-  busMouse = config.bochs.busMouse or false;
-
   buildInputs = with stdenv.lib;
   [ pkgconfig libtool gtk2 mesa readline libX11 libXpm docbook_xml_dtd_45 docbook_xsl ]
   ++ optionals termSupport [ ncurses ]
@@ -83,7 +41,6 @@ stdenv.mkDerivation rec {
     "--with-rfb=no"
     "--with-vncsrv=no"
     "--with-svga=no" # it doesn't compile on NixOS
-    "--with-wx=no"
 
     # These will always be "yes" on NixOS
     "--enable-ltdl-install=yes"
@@ -100,69 +57,69 @@ stdenv.mkDerivation rec {
 
     # Dangerous options - they are marked as "incomplete/experimental" on Bochs documentation
     "--enable-3dnow=no"
-    "--enable-usb-xhci=no"
     "--enable-monitor-mwait=no"
     "--enable-raw-serial=no" ]
     # Boolean flags
-    ++ stdenv.lib.optional termSupport "--with-term"
-    ++ stdenv.lib.optional sdlSupport "--with-sdl2"
-    ++ stdenv.lib.optional wxSupport "--with-wx"
-    ++ stdenv.lib.optional largefile "--enable-largefile"
-    ++ stdenv.lib.optional idleHack "--enable-idle-hack"
-    ++ stdenv.lib.optional plugins "--enable-plugins"
-    ++ stdenv.lib.optional a20Pin "--enable-a20-pin"
-    ++ stdenv.lib.optional emulate64Bits "--enable-x86-64"
-    ++ stdenv.lib.optional smp "--enable-smp"
-    ++ stdenv.lib.optional largeRamfile "--enable-large-ramfile"
-    ++ stdenv.lib.optional repeatSpeedups "--enable-repeat-speedups"
-    ++ stdenv.lib.optional handlersChaining "--enable-handlers-chaining"
-    ++ stdenv.lib.optional traceLinking "--enable-trace-linking"
-    ++ stdenv.lib.optional configurableMSRegs "--enable-configurable-msrs"
-    ++ stdenv.lib.optional showIPS "--enable-show-ips"
-    ++ stdenv.lib.optional debugger "--enable-debugger"
-    ++ stdenv.lib.optional disasm "--enable-disasm"
-    ++ stdenv.lib.optional debuggerGui "--enable-debugger-gui"
-    ++ stdenv.lib.optional gdbStub "--enable-gdb-stub"
-    ++ stdenv.lib.optional IODebug "--enable-iodebug"
-    ++ stdenv.lib.optional fpu "--enable-fpu"
-    ++ stdenv.lib.optional svm "--enable-svm"
-    ++ stdenv.lib.optional avx "--enable-avx"
-    ++ stdenv.lib.optional evex "--enable-evex"
-    ++ stdenv.lib.optional x86Debugger "--enable-x86-debugger"
-    ++ stdenv.lib.optional pci "--enable-pci"
-    ++ stdenv.lib.optional uhci "--enable-usb"
-    ++ stdenv.lib.optional ohci "--enable-usb-ohci"
-    ++ stdenv.lib.optional ne2k "--enable-ne2000"
-    ++ stdenv.lib.optional pNIC "--enable-pnic"
-    ++ stdenv.lib.optional e1000 "--enable-e1000"
-    ++ stdenv.lib.optional clgd54xx "--enable-clgd54xx"
-    ++ stdenv.lib.optional voodoo "--enable-voodoo"
-    ++ stdenv.lib.optional cdrom "--enable-cdrom"
-    ++ stdenv.lib.optional sb16 "--enable-sb16"
-    ++ stdenv.lib.optional es1370 "--enable-es1370"
-    ++ stdenv.lib.optional busMouse "--enable-busmouse"
-    ;
+    ++ optionals termSupport [ "--with-term" ]
+    ++ optionals sdlSupport [ "--with-sdl2" ]
+    ++ optionals wxSupport [ "--with-wx" ]
+    # These are completely configurable, and they don't depend of external tools
+    ++ [ "--enable-cpu-level=6" # from 3 to 6
+         "--enable-largefile"
+         "--enable-idle-hack"
+         "--enable-plugins=no" # Plugins are a bit buggy in Bochs
+         "--enable-a20-pin"
+         "--enable-x86-64"
+         "--enable-smp"
+         "--enable-large-ramfile"
+         "--enable-repeat-speedups"
+         "--enable-handlers-chaining"
+         "--enable-trace-linking"
+         "--enable-configurable-msrs"
+         "--enable-show-ips"
+         "--enable-debugger" #conflicts with gdb-stub option
+         "--enable-disasm"
+         "--enable-debugger-gui"
+         "--enable-gdb-stub=no" # conflicts with debugger option
+         "--enable-iodebug"
+         "--enable-fpu"
+         "--enable-svm"
+         "--enable-avx"
+         "--enable-evex"
+         "--enable-x86-debugger"
+         "--enable-pci"
+         "--enable-usb"
+         "--enable-usb-ohci"
+         "--enable-usb-ehci"
+         "--enable-usb-xhci"
+         "--enable-ne2000"
+         "--enable-pnic"
+         "--enable-e1000"
+         "--enable-clgd54xx"
+         "--enable-voodoo"
+         "--enable-cdrom"
+         "--enable-sb16"
+         "--enable-es1370"
+         "--enable-busmouse" ];
 
   NIX_CFLAGS_COMPILE="-I${gtk2.dev}/include/gtk-2.0/ -I${libtool}/include/";
   NIX_LDFLAGS="-L${libtool.lib}/lib";
 
   hardeningDisable = [ "format" ];
 
-  meta = with stdenv.lib; {
+  meta = {
     description = "An open-source IA-32 (x86) PC emulator";
     longDescription = ''
-    Bochs is an open-source (LGPL), highly portable IA-32 PC emulator,
-    written in C++, that runs on most popular platforms. It includes
-    emulation of the Intel x86 CPU, common I/O devices, and a custom
-    BIOS.
+      Bochs is an open-source (LGPL), highly portable IA-32 PC emulator, written
+      in C++, that runs on most popular platforms. It includes emulation of the
+      Intel x86 CPU, common I/O devices, and a custom BIOS.
     '';
     homepage = http://bochs.sourceforge.net/;
     license = licenses.lgpl2Plus;
     maintainers = [ maintainers.AndersonTorres ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
-
-# TODO: study config.bochs.* implementation (like config.ffmpeg.* options)
-# TODO: investigate the wxWidgets problem (maybe upstream devteam didn't update wxGTK GUI)
-# TODO: investigate svga support - the Bochs sources explicitly cite /usr/include/svga.h
+# TODO: plugins
+# TODO: svga support - the Bochs sources explicitly cite /usr/include/vga.h
+# TODO: a better way to organize the options