about summary refs log tree commit diff
path: root/nixpkgs/pkgs/by-name/bo
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2023-09-14 13:17:39 +0000
committerAlyssa Ross <hi@alyssa.is>2023-09-14 13:17:39 +0000
commit56e87d10ec12e00eab5c4b5710e01ab50eec267f (patch)
treebaff33c3da97619d02441379b3f0f369da8f3d5a /nixpkgs/pkgs/by-name/bo
parentcc14c6e02d8424c1d446d248f71e08243181af8d (diff)
parent3a2786eea085f040a66ecde1bc3ddc7099f6dbeb (diff)
downloadnixlib-56e87d10ec12e00eab5c4b5710e01ab50eec267f.tar
nixlib-56e87d10ec12e00eab5c4b5710e01ab50eec267f.tar.gz
nixlib-56e87d10ec12e00eab5c4b5710e01ab50eec267f.tar.bz2
nixlib-56e87d10ec12e00eab5c4b5710e01ab50eec267f.tar.lz
nixlib-56e87d10ec12e00eab5c4b5710e01ab50eec267f.tar.xz
nixlib-56e87d10ec12e00eab5c4b5710e01ab50eec267f.tar.zst
nixlib-56e87d10ec12e00eab5c4b5710e01ab50eec267f.zip
Merge branch 'nixos-unstable' of https://github.com/NixOS/nixpkgs
Diffstat (limited to 'nixpkgs/pkgs/by-name/bo')
-rw-r--r--nixpkgs/pkgs/by-name/bo/bochs/package.nix151
1 files changed, 151 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/by-name/bo/bochs/package.nix b/nixpkgs/pkgs/by-name/bo/bochs/package.nix
new file mode 100644
index 000000000000..803d6ae2852e
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/bo/bochs/package.nix
@@ -0,0 +1,151 @@
+{ lib
+, stdenv
+, fetchurl
+, SDL2
+, curl
+, darwin
+, docbook_xml_dtd_45
+, docbook_xsl
+, gtk3
+, libGL
+, libGLU
+, libX11
+, libXpm
+, libtool
+, ncurses
+, pkg-config
+, readline
+, wget
+, wxGTK32
+, enableSDL2 ? true
+, enableTerm ? true
+, enableWx ? !stdenv.isDarwin
+, enableX11 ? !stdenv.isDarwin
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "bochs";
+  version = "2.7";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/project/bochs/bochs/${finalAttrs.version}/bochs-${finalAttrs.version}.tar.gz";
+    hash = "sha256-oBCrG/3HKsWgjS4kEs1HHA/r1mrx2TSbwNeWh53lsXo=";
+  };
+
+  nativeBuildInputs = [
+    docbook_xml_dtd_45
+    docbook_xsl
+    libtool
+    pkg-config
+  ];
+
+  buildInputs = [
+    curl
+    readline
+    wget
+  ] ++ lib.optionals enableSDL2 [
+    SDL2
+  ] ++ lib.optionals enableTerm [
+    ncurses
+  ] ++ lib.optionals enableWx [
+    gtk3
+    wxGTK32
+  ] ++ lib.optionals enableX11 [
+    libGL
+    libGLU
+    libX11
+    libXpm
+  ] ++ lib.optionals stdenv.isDarwin [
+    darwin.libobjc
+  ];
+
+  configureFlags = [
+    "--with-rfb=no"
+    "--with-vncsrv=no"
+    "--with-nogui"
+
+    # These will always be "yes" on NixOS
+    "--enable-ltdl-install=yes"
+    "--enable-readline=yes"
+    "--enable-all-optimizations=yes"
+    "--enable-logging=yes"
+    "--enable-xpm=yes"
+
+    # ... whereas these, always "no"!
+    "--enable-cpp=no"
+    "--enable-instrumentation=no"
+
+    "--enable-docbook=no" # Broken - it requires docbook2html
+
+    # Dangerous options - they are marked as "incomplete/experimental" on Bochs documentation
+    "--enable-3dnow=no"
+    "--enable-monitor-mwait=no"
+    "--enable-raw-serial=no"
+
+    # These are completely configurable, and they don't depend of external tools
+    "--enable-a20-pin"
+    "--enable-avx"
+    "--enable-busmouse"
+    "--enable-cdrom"
+    "--enable-clgd54xx"
+    "--enable-configurable-msrs"
+    "--enable-cpu-level=6" # from 3 to 6
+    "--enable-debugger" #conflicts with gdb-stub option
+    "--enable-debugger-gui"
+    "--enable-evex"
+    "--enable-fpu"
+    "--enable-gdb-stub=no" # conflicts with debugger option
+    "--enable-handlers-chaining"
+    "--enable-idle-hack"
+    "--enable-iodebug"
+    "--enable-large-ramfile"
+    "--enable-largefile"
+    "--enable-pci"
+    "--enable-repeat-speedups"
+    "--enable-show-ips"
+    "--enable-smp"
+    "--enable-vmx=2"
+    "--enable-svm"
+    "--enable-trace-linking"
+    "--enable-usb"
+    "--enable-usb-ehci"
+    "--enable-usb-ohci"
+    "--enable-usb-xhci"
+    "--enable-voodoo"
+    "--enable-x86-64"
+    "--enable-x86-debugger"
+  ] ++ lib.optionals enableSDL2 [
+    "--with-sdl2"
+  ] ++ lib.optionals enableTerm [
+    "--with-term"
+  ] ++ lib.optionals enableWx [
+    "--with-wx"
+  ] ++ lib.optionals enableX11 [
+    "--with-x"
+    "--with-x11"
+  ] ++ lib.optionals (!stdenv.isDarwin) [
+    "--enable-e1000"
+    "--enable-es1370"
+    "--enable-ne2000"
+    "--enable-plugins"
+    "--enable-pnic"
+    "--enable-sb16"
+  ];
+
+  enableParallelBuilding = true;
+
+  meta = {
+    homepage = "https://bochs.sourceforge.io/";
+    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.
+    '';
+    license = lib.licenses.lgpl2Plus;
+    maintainers = with lib.maintainers; [ AndersonTorres ];
+    platforms = lib.platforms.unix;
+  };
+})
+# TODO: a better way to organize the options
+# TODO: docbook (docbook-tools from RedHat mirrors should help)