open-watcom-bin: init at 1.9

This is a derivation for the binary distribution of the Open Watcom
C/C++ compiler.
This commit is contained in:
Julian Stecklina 2020-04-22 12:43:20 +02:00 committed by Julian Stecklina
parent dea7a90ccc
commit c26e7f9aac
2 changed files with 69 additions and 0 deletions

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

@ -8996,6 +8996,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 { };