Index: gtk/rginstallprogress.cc =================================================================== --- gtk/rginstallprogress.cc (revision 1215) +++ gtk/rginstallprogress.cc (working copy) @@ -28,6 +28,7 @@ #include "rginstallprogress.h" #include +#include #include #include @@ -117,6 +118,20 @@ void RGInstallProgress::finishUpdate() { + char buf[1024]; + bzero(buf, 1024); + int len = read(_childin, buf, 1023); + if (len > 0) { + GtkWidget *dia = gtk_message_dialog_new(GTK_WINDOW(this->window()), + GTK_DIALOG_DESTROY_WITH_PARENT, + GTK_MESSAGE_WARNING, + GTK_BUTTONS_OK, + _("System reports:\n%s"), + utf8(buf)); + gtk_dialog_run(GTK_DIALOG(dia)); + gtk_widget_destroy(dia); + } + if (_startCounting) { gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(_pbar), 1.0); gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(_pbarTotal), 1.0); Index: common/rinstallprogress.cc =================================================================== --- common/rinstallprogress.cc (revision 1215) +++ common/rinstallprogress.cc (working copy) @@ -30,6 +30,7 @@ #include #include #include +#include #ifdef HAVE_RPM #include #endif @@ -76,6 +77,8 @@ close(fd[1]); res = pm->DoInstallPostFork(); + // dump errors into cerr (pass it to the parent process) + _error->DumpErrors(); _exit(res); } // this is where we read stuff from the child