diff options
-rw-r--r-- | release/sysinstall/install.c | 7 | ||||
-rw-r--r-- | release/sysinstall/package.c | 8 | ||||
-rw-r--r-- | usr.sbin/sade/install.c | 7 | ||||
-rw-r--r-- | usr.sbin/sysinstall/install.c | 7 | ||||
-rw-r--r-- | usr.sbin/sysinstall/package.c | 8 |
5 files changed, 33 insertions, 4 deletions
diff --git a/release/sysinstall/install.c b/release/sysinstall/install.c index 42e8fcb..67f1bb8 100644 --- a/release/sysinstall/install.c +++ b/release/sysinstall/install.c @@ -52,6 +52,11 @@ #include <unistd.h> #include <termios.h> +/* Hack for rsaref package add, which displays interactive license. + * Used by package.c + */ +int _interactiveHack; + static void create_termcap(void); static void fixit_common(void); @@ -572,6 +577,7 @@ nodisks: "load the rsaref package from the current media? Some restrictions on\n" "usage may apply, so be sure to read the package installation output!")) { dialog_clear(); + _interactiveHack = 1; if (DITEM_STATUS(package_add("rsaref")) != DITEM_SUCCESS) { msgConfirm("Unable to find an rsaref package on the current intallation media.\n" "This is probably because you are installing from a CDROM which\n" @@ -581,6 +587,7 @@ nodisks: "the rsaref package manually through the Packages menu."); } dialog_clear(); + _interactiveHack = 0; } } else { diff --git a/release/sysinstall/package.c b/release/sysinstall/package.c index 8901d08..732f643 100644 --- a/release/sysinstall/package.c +++ b/release/sysinstall/package.c @@ -166,9 +166,13 @@ package_extract(Device *dev, char *name, Boolean depended) pipe(pfd); pid = fork(); if (!pid) { + extern int _interactiveHack; + dup2(pfd[0], 0); close(pfd[0]); - dup2(DebugFD, 1); - close(2); + if (!_interactiveHack) { + dup2(DebugFD, 1); + close(2); + } close(pfd[1]); if (isDebug()) i = execl("/usr/sbin/pkg_add", "/usr/sbin/pkg_add", "-v", "-", 0); diff --git a/usr.sbin/sade/install.c b/usr.sbin/sade/install.c index 42e8fcb..67f1bb8 100644 --- a/usr.sbin/sade/install.c +++ b/usr.sbin/sade/install.c @@ -52,6 +52,11 @@ #include <unistd.h> #include <termios.h> +/* Hack for rsaref package add, which displays interactive license. + * Used by package.c + */ +int _interactiveHack; + static void create_termcap(void); static void fixit_common(void); @@ -572,6 +577,7 @@ nodisks: "load the rsaref package from the current media? Some restrictions on\n" "usage may apply, so be sure to read the package installation output!")) { dialog_clear(); + _interactiveHack = 1; if (DITEM_STATUS(package_add("rsaref")) != DITEM_SUCCESS) { msgConfirm("Unable to find an rsaref package on the current intallation media.\n" "This is probably because you are installing from a CDROM which\n" @@ -581,6 +587,7 @@ nodisks: "the rsaref package manually through the Packages menu."); } dialog_clear(); + _interactiveHack = 0; } } else { diff --git a/usr.sbin/sysinstall/install.c b/usr.sbin/sysinstall/install.c index 42e8fcb..67f1bb8 100644 --- a/usr.sbin/sysinstall/install.c +++ b/usr.sbin/sysinstall/install.c @@ -52,6 +52,11 @@ #include <unistd.h> #include <termios.h> +/* Hack for rsaref package add, which displays interactive license. + * Used by package.c + */ +int _interactiveHack; + static void create_termcap(void); static void fixit_common(void); @@ -572,6 +577,7 @@ nodisks: "load the rsaref package from the current media? Some restrictions on\n" "usage may apply, so be sure to read the package installation output!")) { dialog_clear(); + _interactiveHack = 1; if (DITEM_STATUS(package_add("rsaref")) != DITEM_SUCCESS) { msgConfirm("Unable to find an rsaref package on the current intallation media.\n" "This is probably because you are installing from a CDROM which\n" @@ -581,6 +587,7 @@ nodisks: "the rsaref package manually through the Packages menu."); } dialog_clear(); + _interactiveHack = 0; } } else { diff --git a/usr.sbin/sysinstall/package.c b/usr.sbin/sysinstall/package.c index 8901d08..732f643 100644 --- a/usr.sbin/sysinstall/package.c +++ b/usr.sbin/sysinstall/package.c @@ -166,9 +166,13 @@ package_extract(Device *dev, char *name, Boolean depended) pipe(pfd); pid = fork(); if (!pid) { + extern int _interactiveHack; + dup2(pfd[0], 0); close(pfd[0]); - dup2(DebugFD, 1); - close(2); + if (!_interactiveHack) { + dup2(DebugFD, 1); + close(2); + } close(pfd[1]); if (isDebug()) i = execl("/usr/sbin/pkg_add", "/usr/sbin/pkg_add", "-v", "-", 0); |