Merge pull request #85772 from blitz/open-watcom
Use Open Watcom to build VirtualBox BIOS
This commit is contained in:
commit
05328a49f6
3 changed files with 73 additions and 0 deletions
|
@ -3,6 +3,9 @@
|
|||
, libpng, glib, lvm2, libXrandr, libXinerama, libopus, qtbase, qtx11extras
|
||||
, qttools, qtsvg, qtwayland, pkgconfig, which, docbook_xsl, docbook_xml_dtd_43
|
||||
, alsaLib, curl, libvpx, nettools, dbus, substituteAll, fetchpatch
|
||||
# If open-watcom-bin is not passed, VirtualBox will fall back to use
|
||||
# the shipped alternative sources (assembly).
|
||||
, open-watcom-bin ? null
|
||||
, makeself, perl
|
||||
, javaBindings ? true, jdk ? null # Almost doesn't affect closure size
|
||||
, pythonBindings ? false, python3 ? null
|
||||
|
@ -148,6 +151,7 @@ in stdenv.mkDerivation {
|
|||
${optionalString (!pulseSupport) "--disable-pulse"} \
|
||||
${optionalString (!enableHardening) "--disable-hardening"} \
|
||||
${optionalString (!enable32bitGuests) "--disable-vmmraw"} \
|
||||
${optionalString (open-watcom-bin != null) "--with-ow-dir=${open-watcom-bin}"} \
|
||||
--disable-kmods
|
||||
sed -e 's@PKG_CONFIG_PATH=.*@PKG_CONFIG_PATH=${libIDL}/lib/pkgconfig:${glib.dev}/lib/pkgconfig ${libIDL}/bin/libIDL-config-2@' \
|
||||
-i AutoConfig.kmk
|
||||
|
|
67
pkgs/development/compilers/open-watcom-bin/default.nix
Normal file
67
pkgs/development/compilers/open-watcom-bin/default.nix
Normal file
|
@ -0,0 +1,67 @@
|
|||
{ stdenvNoCC, fetchurl, qemu, expect, writeScript, ncurses }:
|
||||
|
||||
let
|
||||
|
||||
# We execute the installer in qemu-user, because otherwise the
|
||||
# installer fails to open itself due to a failed stat() call. This
|
||||
# seems like an incompatibility of new Linux kernels to run this
|
||||
# ancient binary.
|
||||
performInstall = writeScript "perform-ow-install" ''
|
||||
#!${expect}/bin/expect -f
|
||||
|
||||
spawn env TERMINFO=${ncurses}/share/terminfo TERM=vt100 ${qemu}/bin/qemu-i386 [lindex $argv 0]
|
||||
|
||||
# Wait for button saying "I agree" with escape sequences.
|
||||
expect "gree"
|
||||
|
||||
# Navigate to "I Agree!" and hit enter.
|
||||
send "\t\t\n"
|
||||
|
||||
expect "Install Open Watcom"
|
||||
|
||||
# Where do we want to install to.
|
||||
send "$env(out)\n"
|
||||
|
||||
expect "will be installed"
|
||||
|
||||
# Select Full Installation, Next
|
||||
send "fn"
|
||||
|
||||
expect "Setup will now copy"
|
||||
|
||||
# Next
|
||||
send "n"
|
||||
|
||||
expect "completed successfully"
|
||||
send "\n"
|
||||
'';
|
||||
|
||||
in
|
||||
stdenvNoCC.mkDerivation rec {
|
||||
pname = "open-watcom-bin";
|
||||
version = "1.9";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://ftp.openwatcom.org/install/open-watcom-c-linux-${version}";
|
||||
sha256 = "1wzkvc6ija0cjj5mcyjng5b7hnnc5axidz030c0jh05pgvi4nj7p";
|
||||
};
|
||||
|
||||
dontUnpack = true;
|
||||
dontBuild = true;
|
||||
dontConfigure = true;
|
||||
|
||||
installPhase = ''
|
||||
cp ${src} install-bin
|
||||
chmod +x install-bin
|
||||
|
||||
${performInstall} install-bin
|
||||
'';
|
||||
|
||||
meta = with stdenvNoCC.lib; {
|
||||
description = "A C/C++ Compiler (binary distribution)";
|
||||
homepage = "http://www.openwatcom.org/";
|
||||
license = licenses.watcom;
|
||||
platforms = [ "x86_64-linux" "i686-linux" ];
|
||||
maintainers = [ maintainers.blitz ];
|
||||
};
|
||||
}
|
|
@ -8982,6 +8982,8 @@ in
|
|||
inherit (ocaml-ng.ocamlPackages_4_05) ocaml;
|
||||
};
|
||||
|
||||
open-watcom-bin = callPackage ../development/compilers/open-watcom-bin { };
|
||||
|
||||
pforth = callPackage ../development/compilers/pforth {};
|
||||
|
||||
picat = callPackage ../development/compilers/picat { };
|
||||
|
|
Loading…
Reference in a new issue