open-watcom-bin: do an unattended instead of a scripted install

This commit is contained in:
Steven Keuchel 2024-10-31 14:55:12 +01:00
parent fb6cb137b6
commit 1117016a45
No known key found for this signature in database
GPG Key ID: 5877DEE97428557F

View File

@ -1,4 +1,4 @@
{ lib, stdenvNoCC, fetchurl, qemu, expect, writeScript, writeScriptBin, ncurses, bash, coreutils }:
{ lib, stdenvNoCC, fetchurl, qemu, writeScript, writeScriptBin, ncurses, bash, coreutils, unixtools }:
let
@ -48,41 +48,6 @@ let
exec ${wrapLegacyBinary} "$TARGET-unwrapped" "$TARGET"
'';
# Do a scripted installation of OpenWatcom with its original installer.
#
# If maintaining this expect script turns out to be too much of a
# hassle, we can switch to just using `unzip' on the installer and
# the correct file permissions manually.
performInstall = writeScriptBin "performInstall" ''
#!${expect}/bin/expect -f
spawn [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 = "${passthru.prettyName}-unwrapped";
@ -93,7 +58,7 @@ stdenvNoCC.mkDerivation rec {
sha256 = "1wzkvc6ija0cjj5mcyjng5b7hnnc5axidz030c0jh05pgvi4nj7p";
};
nativeBuildInputs = [ wrapInPlace performInstall ];
nativeBuildInputs = [ wrapInPlace unixtools.script ];
dontUnpack = true;
dontConfigure = true;
@ -104,7 +69,9 @@ stdenvNoCC.mkDerivation rec {
'';
installPhase = ''
performInstall ./install-bin-unwrapped
# Command line options to do an unattended install are documented in
# https://github.com/open-watcom/open-watcom-v2/blob/master/bld/setupgui/setup.txt
script -c "./install-bin-unwrapped -dDstDir=$out -dFullInstall=1 -i"
for e in $(find $out/binl -type f -executable); do
echo "Wrapping $e"