summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--release/sysinstall/install.c7
-rw-r--r--release/sysinstall/package.c8
-rw-r--r--usr.sbin/sade/install.c7
-rw-r--r--usr.sbin/sysinstall/install.c7
-rw-r--r--usr.sbin/sysinstall/package.c8
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);
OpenPOWER on IntegriCloud