Hello community, here is the log from the commit of package yast2-ncurses checked in at Tue Apr 11 16:57:47 CEST 2006. -------- --- yast2-ncurses/yast2-ncurses.changes 2006-04-10 16:47:21.000000000 +0200 +++ STABLE/yast2-ncurses/yast2-ncurses.changes 2006-04-11 16:57:25.000000000 +0200 @@ -1,0 +2,6 @@ +Tue Apr 11 14:31:55 CEST 2006 - gs@suse.de + +- check for pending licenses (bug #163827) +- 2.13.19 + +------------------------------------------------------------------- Old: ---- yast2-ncurses-2.13.18.tar.bz2 New: ---- yast2-ncurses-2.13.19.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ yast2-ncurses.spec ++++++ --- /var/tmp/diff_new_pack.rTF83a/_old 2006-04-11 16:57:33.000000000 +0200 +++ /var/tmp/diff_new_pack.rTF83a/_new 2006-04-11 16:57:33.000000000 +0200 @@ -1,5 +1,5 @@ # -# spec file for package yast2-ncurses (Version 2.13.18) +# spec file for package yast2-ncurses (Version 2.13.19) # # Copyright (c) 2006 SUSE LINUX Products GmbH, Nuernberg, Germany. # This file and all modifications and additions to the pristine @@ -11,12 +11,12 @@ # norootforbuild Name: yast2-ncurses -Version: 2.13.18 +Version: 2.13.19 Release: 1 License: GPL Group: System/YaST BuildRoot: %{_tmppath}/%{name}-%{version}-build -Source0: yast2-ncurses-2.13.18.tar.bz2 +Source0: yast2-ncurses-2.13.19.tar.bz2 prefix: /usr BuildRequires: doxygen gcc-c++ libzypp-devel yast2-core-devel yast2-devtools BuildRequires: blocxx-devel libxcrypt-devel @@ -40,7 +40,7 @@ %prep -%setup -n yast2-ncurses-2.13.18 +%setup -n yast2-ncurses-2.13.19 %build %{prefix}/bin/y2tool y2autoconf @@ -73,6 +73,9 @@ %doc %{prefix}/share/doc/packages/yast2-ncurses %changelog -n yast2-ncurses +* Tue Apr 11 2006 - gs@suse.de +- check for pending licenses (bug #163827) +- 2.13.19 * Mon Apr 10 2006 - gs@suse.de - Fixed inconsistent propagation of installation status of packages that belong to selections, patterns, languages etc. ++++++ yast2-ncurses-2.13.18.tar.bz2 -> yast2-ncurses-2.13.19.tar.bz2 ++++++ diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-ncurses-2.13.18/VERSION new/yast2-ncurses-2.13.19/VERSION --- old/yast2-ncurses-2.13.18/VERSION 2006-04-10 14:59:12.000000000 +0200 +++ new/yast2-ncurses-2.13.19/VERSION 2006-04-11 13:33:07.000000000 +0200 @@ -1 +1 @@ -2.13.18 +2.13.19 diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-ncurses-2.13.18/src/NCPkgTable.cc new/yast2-ncurses-2.13.19/src/NCPkgTable.cc --- old/yast2-ncurses-2.13.18/src/NCPkgTable.cc 2006-04-06 21:18:58.000000000 +0200 +++ new/yast2-ncurses-2.13.19/src/NCPkgTable.cc 2006-04-11 14:03:08.000000000 +0200 @@ -228,6 +228,7 @@ if ( objPtr ) { notify = objPtr->delnotify(); + NCMIL << "DELETE message: " << notify << endl; header = YCPString(PkgNames::WarningLabel()); } break; @@ -236,6 +237,7 @@ if ( objPtr ) { notify = objPtr->insnotify(); + NCMIL << "NOTIFY message: " << notify << endl; header = YCPString(PkgNames::NotifyLabel()); // get license (available for packages only) @@ -247,6 +249,19 @@ } } break; + case S_AutoInstall: + case S_AutoUpdate: + if ( objPtr ) + { + // check license in case of S_AutoInstall/Update, too + pkgPtr = tryCastToZyppPkg (objPtr); + if ( pkgPtr ) + { + license = pkgPtr->licenseToConfirm(); + license_confirmed = slbPtr->hasLicenceConfirmed(); + } + } + break; default: break; } @@ -337,6 +352,49 @@ return ok; } +bool NCPkgTable::showLicenseAgreement( ZyppSel & slbPtr , string licenseText ) +{ + if ( !packager || !slbPtr ) + return false; + + bool license_confirmed = true; + bool ok = true; + string pkgName = slbPtr->name(); + + NCPopupInfo info( wpos( 1, 1), + YCPString(_("End User License Agreement") ), + YCPString( "<i>" + pkgName + "</i><br><br>" + packager->createDescrText( licenseText ) ), + PkgNames::AcceptLabel(), + PkgNames::CancelLabel() ); + license_confirmed = info.showInfoPopup( ) != NCursesEvent::cancel; + + + if ( !license_confirmed ) + { + // make sure the package won't be installed + switch ( slbPtr->status() ) + { + case S_Install: + slbPtr->set_status( S_Taboo ); + break; + + case S_Update: + slbPtr->set_status( S_Protected ); + break; + + default: + break; + } + + ok = false; + } else { + slbPtr->setLicenceConfirmed (true); + ok = true; + } + + return ok; +} + /////////////////////////////////////////////////////////////////// // // diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-ncurses-2.13.18/src/NCPkgTable.h new/yast2-ncurses-2.13.19/src/NCPkgTable.h --- old/yast2-ncurses-2.13.18/src/NCPkgTable.h 2006-03-21 14:39:50.000000000 +0100 +++ new/yast2-ncurses-2.13.19/src/NCPkgTable.h 2006-04-11 12:00:24.000000000 +0200 @@ -323,6 +323,12 @@ * @return bool */ bool showInformation ( ); + + /** + * Show popup with license. + * @return bool + */ + bool showLicenseAgreement( ZyppSel & slbPtr , string licenseText ); }; /////////////////////////////////////////////////////////////////// diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-ncurses-2.13.18/src/PackageSelector.cc new/yast2-ncurses-2.13.19/src/PackageSelector.cc --- old/yast2-ncurses-2.13.18/src/PackageSelector.cc 2006-04-10 14:49:13.000000000 +0200 +++ new/yast2-ncurses-2.13.19/src/PackageSelector.cc 2006-04-11 12:00:51.000000000 +0200 @@ -1812,17 +1812,23 @@ bool PackageSelector::OkButtonHandler( const NCursesEvent& event ) { bool closeDialog = true; - + bool confirmedAllLicenses = false; // check/show dependencies and automatic changes also if youMode == true - - // show the dependency popup - if ( showPackageDependencies( true ) ) + do { - // don't leave the package installation if the user has clicked on Cancel - // in dependency popup because maybe he wants to change his choices - closeDialog = false; - } + // show the dependency popup + if ( showPackageDependencies( true ) ) + { + // don't leave the package installation if the user has clicked on Cancel + // in dependency popup because maybe he wants to change his choices + closeDialog = false; + } + + confirmedAllLicenses = showPendingLicenseAgreements(); + + } while ( !confirmedAllLicenses && closeDialog ); + // show the automatic changes list NCPopupPkgTable autoChangePopup( wpos( 1, 1), this ); NCursesEvent input = autoChangePopup.showInfoPopup(); @@ -1882,6 +1888,64 @@ } +bool PackageSelector::showPendingLicenseAgreements() +{ + y2milestone( "Showing all pending license agreements" ); + + bool allConfirmed = true; + + NCPkgTable * packageList = getPackageList(); + if ( !packageList ) + return false; + + for ( ZyppPoolIterator it = zyppPkgBegin(); + it != zyppPkgEnd(); + ++it ) + { + ZyppSel sel = (*it); + + switch ( sel->status() ) + { + case S_Install: + case S_AutoInstall: + case S_Update: + case S_AutoUpdate: + + if ( sel->candidateObj() ) + { + ZyppPkg pkg = tryCastToZyppPkg( sel->candidateObj() ); + + if ( pkg ) + { + string licenseText = pkg->licenseToConfirm(); + + if ( ! licenseText.empty() ) + { + y2milestone( "Pkg %s has a license agreement", sel->name().c_str() ); + + if( ! sel->hasLicenceConfirmed() ) + { + y2debug( "Showing license agreement for pkg %s", sel->name().c_str() ); + allConfirmed = packageList->showLicenseAgreement( sel, licenseText ) && allConfirmed; + } + else + { + y2milestone( "Pkg %s's license is already confirmed", sel->name().c_str() ); + } + } + } + } + break; + + default: + break; + } + } + + return allConfirmed; +} + + /////////////////////////////////////////////////////////////////// // diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-ncurses-2.13.18/src/PackageSelector.h new/yast2-ncurses-2.13.19/src/PackageSelector.h --- old/yast2-ncurses-2.13.18/src/PackageSelector.h 2006-03-28 12:06:28.000000000 +0200 +++ new/yast2-ncurses-2.13.19/src/PackageSelector.h 2006-04-11 12:00:58.000000000 +0200 @@ -400,6 +400,11 @@ void saveState(); void restoreState(); bool diffState(); + + /** + * Check for license + */ + bool showPendingLicenseAgreements(); }; /////////////////////////////////////////////////////////////////// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun...