[Bug 274089] New: YaST doesn't allow escape from License Agreement if another package depends on licensed package
https://bugzilla.novell.com/show_bug.cgi?id=274089 Summary: YaST doesn't allow escape from License Agreement if another package depends on licensed package Product: openSUSE 10.3 Version: Alpha 3plus Platform: i686 OS/Version: openSUSE 10.3 Status: NEW Severity: Normal Priority: P5 - None Component: YaST2 AssignedTo: bnc-team-screening@forge.provo.novell.com ReportedBy: HANtwister@comcast.net QAContact: jsrain@novell.com In YaST of OpenSuSE 10.3 Factory, if a package requires accepting a license agreement, and another package depends on the first, when you click 'Accept', and if you click 'Cancel' (implies rejection of License), YaST closes the License Agreement Window, removes the package for installation, checks dependencies, notices that the second package depends on the first with a custom license, and once again asks you to accept the License Agreement. For example, if packages that require Java are marked for installation or upgrade, Sun Java Components will also be marked for installation if they aren't already installed. When you click 'Accept', you are presented with the License Agreements of the Sun Java Components. If you click 'Cancel' on these agreements, YaST will remove the Sun Java Packages, check dependencies, notice that the Sun Java Components are required by another Java Packages, recheck the Sun Java Packages for installation, and will present you with the License Agreements of the Sun Java Components once again. This cycle can only be broken by killing the YaST Process, or unwillingly accepting the License Agreements. When clicking 'Cancel' to a License Agreement, instead of just removing a package for installation, YaST should Taboo the package with the rejected License Agreement, so that, when it checks dependencies, the user could be given a choice to undo the Taboo and Accept the License Agreement, or also remove the packages dependent on the first with the Custom License. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.
https://bugzilla.novell.com/show_bug.cgi?id=274089 mhorvath@novell.com changed: What |Removed |Added ---------------------------------------------------------------------------- AssignedTo|bnc-team- |lslezak@novell.com |screening@forge.provo.novell| |.com | -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.
https://bugzilla.novell.com/show_bug.cgi?id=274089 lslezak@novell.com changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |NEEDINFO Info Provider| |HANtwister@comcast.net ------- Comment #1 from lslezak@novell.com 2007-05-14 04:34 MST ------- Please, attach yast logs (see http://en.opensuse.org/Bugs/YaST) and describe the steps to reproduce the problem. Which packages did you select? -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.
https://bugzilla.novell.com/show_bug.cgi?id=274089 HANtwister@comcast.net changed: What |Removed |Added ---------------------------------------------------------------------------- Summary|YaST doesn't allow escape |YaST doesn't allow escape from License Agreement |from License Agreement if |if another package depends on licensed package |another package depends on |update |licensed package | -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.
https://bugzilla.novell.com/show_bug.cgi?id=274089 HANtwister@comcast.net changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEEDINFO |NEW Info Provider|HANtwister@comcast.net | ------- Comment #2 from HANtwister@comcast.net 2007-05-16 21:25 MST ------- After testing some more, including reinstalling openSuSE 10.3 FACTORY, it seems as if this just applies to licensed packages when they are updated. This above bug is reproducible if you select the Java Environment pattern, install all the packages under the pattern (right click, All in This List, Install [ant-antlr, ant-javamail, java-1_5_0-sun, java-1_5_0-sun-alsa, java-1_5_0-sun-demo, java-1_5_0-sun-devel, java-1_5_0-sun-jdbc, java-1_5_0-sun-plugin, java-1_5_0-sun-src, javamail, javamail-demo, javamail-javadoc, javamail-monolithic, jms, jms-javadoc]), and then, when available, update the packages under the Java Environment pattern (this makes sense, as you can't taboo a package already installed, you can only unmark an update for installation). -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.
https://bugzilla.novell.com/show_bug.cgi?id=274089 ------- Comment #3 from HANtwister@comcast.net 2007-05-16 21:30 MST ------- Created an attachment (id=140659) --> (https://bugzilla.novell.com/attachment.cgi?id=140659&action=view) YaST Logs. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.
https://bugzilla.novell.com/show_bug.cgi?id=274089 ------- Comment #4 from HANtwister@comcast.net 2007-05-18 04:49 MST ------- If a license agreement is not agreed to, then YaST, if the package is not installed, should lock the package status (as not to be installed), or Taboo the package (which it does - sorry about that!). However, if an older version of the package is already installed, and the user does not agree to the license agreement of the newer version of the package, then YaST should STILL lock the package status (as installed with the current installed version), or Protect the package, as that would cause YaST to prompt for user input when it can't resolve dependencies due to the license agreement of the newer package being rejected, and thus, the newer package itself being rejected, instead of YaST and the user being thrown into an endless loop of rejecting (a) license agreement(s). -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.
https://bugzilla.novell.com/show_bug.cgi?id=274089 lslezak@novell.com changed: What |Removed |Added ---------------------------------------------------------------------------- AssignedTo|lslezak@novell.com |sh@novell.com ------- Comment #5 from lslezak@novell.com 2007-05-18 09:28 MST ------- The problem is in yast2-qt package -> Steffan (BTW It works correctly in ncurses UI, the packages are set to "locked" state.) -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.
https://bugzilla.novell.com/show_bug.cgi?id=274089 sh@novell.com changed: What |Removed |Added ---------------------------------------------------------------------------- AssignedTo|sh@novell.com |schubi@novell.com ------- Comment #7 from sh@novell.com 2007-05-21 03:39 MST ------- (In reply to comment #0)
When clicking 'Cancel' to a License Agreement, instead of just removing a package for installation, YaST should Taboo the package with the rejected License Agreement,
That's exactly what happens. From YQPkgObjList.cc: bool YQPkgObjListItem::showLicenseAgreement( ZyppSel sel ) { ... if ( confirmed ) { ... } else { // The user rejected the license agreement - // make sure the package gets unselected. switch ( sel->status() ) { case S_Install: case S_AutoInstall: y2warning( "User rejected license agreement for %s - " "setting to TABOO", sel->name().c_str() ); sel->set_status( S_Taboo ); break; case S_Update: case S_AutoUpdate: y2warning( "User rejected license agreement for %s - " "setting to PROTECTED", sel->name().c_str() ); sel->set_status( S_Protected ); // S_Keep wouldn't be good enough: The next solver run might // set it to S_AutoUpdate again break; default: break; } } return confirmed; } This is called in some indirections from here: void YQPackageSelectorBase::accept() { bool confirmedAllLicenses; do { // Force final dependency resolving if ( resolveDependencies() == QDialog::Rejected ) return; confirmedAllLicenses = showPendingLicenseAgreements(); } while ( ! confirmedAllLicenses ); // Some packages will be set to // S_TABOO - need another solver run if ( _showChangesDialog ) { // Show which packages are installed/deleted automatically QString msg = "<p><b>" // Dialog header + _( "Automatic Changes" ) + "</b></p>" // Detailed explanation ( automatic word wrap! ) + "<p>" + _( "In addition to your manual selections, " "the following packages" " have been changed to resolve dependencies:" ) + "<p>"; if ( YQPkgChangesDialog::showChangesDialog( msg, _( "C&ontinue" ), _( "&Cancel" ) ) == QDialog::Rejected ) return; } // Check disk usage if ( checkDiskUsage() == QDialog::Rejected ) return; y2milestone( "Closing PackageSelector with \"Accept\"" ); YQUI::ui()->sendEvent( new YMenuEvent( YCPSymbol( "accept" ) ) ); }
so that, when it checks dependencies, the user could be given a choice to undo the Taboo and Accept the License Agreement, or also remove the packages dependent on the first with the Custom License.
In principle, this is what should happen. I can only imagine that somewhere in deeper layers (dependency resolver?) the "Taboo" or "Protected" status does not get honored as it should. Schubi? -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.
https://bugzilla.novell.com/show_bug.cgi?id=274089 ------- Comment #8 from sh@novell.com 2007-05-21 03:43 MST ------- (In reply to comment #4)
If a license agreement is not agreed to, then YaST, if the package is not installed, should lock the package status (as not to be installed), or Taboo the package (which it does - sorry about that!).
Ah, OK. You got me confused here for a while.
However, if an older version of the package is already installed, and the user does not agree to the license agreement of the newer version of the package, then YaST should STILL lock the package status (as installed with the current installed version), or Protect the package,
"Protected" is the "Locked" status for a package that is already installed. And this is what the yast2-qt UI tries to do here - see the code in comment #7.
as that would cause YaST to prompt for user input when it can't resolve dependencies due to the license agreement of the newer package being rejected, and thus, the newer package itself being rejected, instead of YaST and the user being thrown into an endless loop of rejecting (a) license agreement(s).
I agree with your assessment what should happen. I don't quite understand why you get in an endless loop here. Schubi, any clue? -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.
https://bugzilla.novell.com/show_bug.cgi?id=274089
schubi@novell.com changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |NEEDINFO
Info Provider| |HANtwister@comcast.net
------- Comment #9 from schubi@novell.com 2007-06-08 07:39 MST -------
Yes you have selected:
YQPkgObjList.cc(showLicenseAgreement):1286 User rejected license agreement for
java-1_5_0-sun-plugin - setting to TABOO
The correct error message has been displayed:
ResolverInfo
https://bugzilla.novell.com/show_bug.cgi?id=274089#c10
Gerald Pfeifer
https://bugzilla.novell.com/show_bug.cgi?id=274089
Stefan Schubert
https://bugzilla.novell.com/show_bug.cgi?id=274089#c11
Stefan Schubert
https://bugzilla.novell.com/show_bug.cgi?id=274089#c12
Robin Knapp
https://bugzilla.novell.com/show_bug.cgi?id=274089#c13
--- Comment #13 from Robin Knapp
https://bugzilla.novell.com/show_bug.cgi?id=274089#c14
--- Comment #14 from Robin Knapp
https://bugzilla.novell.com/show_bug.cgi?id=274089#c15
--- Comment #15 from Robin Knapp
https://bugzilla.novell.com/show_bug.cgi?id=274089#c16
Robin Knapp
participants (1)
-
bugzilla_noreply@novell.com