Merge pull request #85772 from blitz/open-watcom

Use Open Watcom to build VirtualBox BIOS
This commit is contained in:
Florian Klink 2020-04-29 00:29:06 +02:00 committed by GitHub
commit 05328a49f6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 73 additions and 0 deletions

View file

@ -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

View 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 ];
};
}

View file

@ -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 { };