Hello community, here is the log from the commit of package yast2-packager checked in at Fri Dec 7 20:24:20 CET 2007. -------- --- yast2-packager/yast2-packager.changes 2007-11-27 14:08:12.000000000 +0100 +++ /mounts/work_src_done/STABLE/yast2-packager/yast2-packager.changes 2007-12-07 14:29:49.542733000 +0100 @@ -1,0 +2,22 @@ +Fri Dec 7 13:50:55 CET 2007 - lslezak@suse.cz + +- added Process callbacks (fullscreen progress with stages) +- package manager initialization runs in the main window instead + of popups +- use generic string "Disc" for both CD and DVD repositories + (#336881) +- 2.16.11 + +------------------------------------------------------------------- +Tue Dec 4 14:58:07 CET 2007 - locilka@suse.cz + +- Speeding up Community Repositories (No need to refresh cache). +- New Progress with Icons used in Community Repositories. + +------------------------------------------------------------------- +Mon Dec 3 13:48:25 CET 2007 - locilka@suse.cz + +- Removed "If you like to print this license..." (#327542). +- Using new YCP module Icon in PackageCallbacks. + +------------------------------------------------------------------- Old: ---- yast2-packager-2.16.10.tar.bz2 New: ---- yast2-packager-2.16.11.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ yast2-packager.spec ++++++ --- /var/tmp/diff_new_pack.y30343/_old 2007-12-07 20:23:52.000000000 +0100 +++ /var/tmp/diff_new_pack.y30343/_new 2007-12-07 20:23:52.000000000 +0100 @@ -1,5 +1,5 @@ # -# spec file for package yast2-packager (Version 2.16.10) +# spec file for package yast2-packager (Version 2.16.11) # # Copyright (c) 2007 SUSE LINUX Products GmbH, Nuernberg, Germany. # This file and all modifications and additions to the pristine @@ -11,28 +11,24 @@ # norootforbuild Name: yast2-packager -Version: 2.16.10 +Version: 2.16.11 Release: 1 License: GPL v2 or later Group: System/YaST BuildRoot: %{_tmppath}/%{name}-%{version}-build -Source0: yast2-packager-2.16.10.tar.bz2 +Source0: yast2-packager-2.16.11.tar.bz2 Prefix: /usr BuildRequires: gcc-c++ libxcrypt-devel perl-XML-Writer update-desktop-files yast2-country yast2-devtools yast2-slp yast2-testsuite yast2-xml -# Installation::installedVersion && Installation::updateVersion -# Update::* moved to Installation::update_* -# AutoinstData -BuildRequires: yast2 >= 2.16.8 +# Progress::Subprogress*() +BuildRequires: yast2 >= 2.16.17 # Module: OneClickInstallStandard Requires: perl-XML-Bare yast2-perl-bindings Requires: yast2-country Requires: yast2-installation >= 2.15.12 # New function: Pkg::SourceProvideDirectory Requires: yast2-pkg-bindings >= 2.15.38 -# FileUtils::MD5sum -# AutoinstData -# ag_anyxml moved there -Requires: yast2 >= 2.16.11 +# Progress::Subprogress*() +Requires: yast2 >= 2.16.17 # unzipping license file Requires: unzip # HTTP, FTP, HTTPS modules (inst_productsources.ycp) @@ -66,7 +62,7 @@ Arvin Schnell <arvin@suse.de> %prep -%setup -n yast2-packager-2.16.10 +%setup -n yast2-packager-2.16.11 %build %{prefix}/bin/y2tool y2autoconf @@ -102,6 +98,19 @@ %{prefix}/lib/YaST2/servers_non_y2/ag_* %doc %{prefix}/share/doc/packages/yast2-packager %changelog +* Fri Dec 07 2007 - lslezak@suse.cz +- added Process callbacks (fullscreen progress with stages) +- package manager initialization runs in the main window instead + of popups +- use generic string "Disc" for both CD and DVD repositories + (#336881) +- 2.16.11 +* Tue Dec 04 2007 - locilka@suse.cz +- Speeding up Community Repositories (No need to refresh cache). +- New Progress with Icons used in Community Repositories. +* Mon Dec 03 2007 - locilka@suse.cz +- Removed "If you like to print this license..." (#327542). +- Using new YCP module Icon in PackageCallbacks. * Tue Nov 27 2007 - locilka@suse.cz - Module 'Community Repositories' merged into 'Repositories'. It's still possible to call 'Community Repositories' separately. ++++++ yast2-packager-2.16.10.tar.bz2 -> yast2-packager-2.16.11.tar.bz2 ++++++ ++++ 4056 lines of diff (skipped) ++++ retrying with extended exclude list diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/yast2-packager-2.16.10/configure.in new/yast2-packager-2.16.11/configure.in --- old/yast2-packager-2.16.10/configure.in 2007-11-16 11:16:06.000000000 +0100 +++ new/yast2-packager-2.16.11/configure.in 2007-11-20 13:36:41.000000000 +0100 @@ -1,9 +1,9 @@ dnl configure.in for yast2-packager dnl -dnl -- This file is generated by y2autoconf 2.16.2 - DO NOT EDIT! -- +dnl -- This file is generated by y2autoconf 2.15.9 - DO NOT EDIT! -- dnl (edit configure.in.in instead) -AC_INIT(yast2-packager, 2.16.5, http://bugs.opensuse.org/, yast2-packager) +AC_INIT(yast2-packager, 2.16.9, http://bugs.opensuse.org/, yast2-packager) dnl Check for presence of file 'RPMNAME' AC_CONFIG_SRCDIR([RPMNAME]) @@ -14,11 +14,10 @@ AC_PREFIX_DEFAULT(/usr) -dnl long filenames; we use GNU Make extensions and that's ok -AM_INIT_AUTOMAKE(tar-ustar -Wno-portability) +AM_INIT_AUTOMAKE(tar-ustar) dnl searches for some needed programs dnl Important YaST2 variables -VERSION="2.16.5" +VERSION="2.16.9" RPMNAME="yast2-packager" MAINTAINER="Ladislav Slezak <lslezak@suse.cz>" diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/yast2-packager-2.16.10/COPYRIGHT.english new/yast2-packager-2.16.11/COPYRIGHT.english --- old/yast2-packager-2.16.10/COPYRIGHT.english 1970-01-01 01:00:00.000000000 +0100 +++ new/yast2-packager-2.16.11/COPYRIGHT.english 2007-12-07 14:29:41.000000000 +0100 @@ -0,0 +1,340 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + <one line to give the program's name and a brief idea of what it does.> + Copyright (C) <year> <name of author> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + <signature of Ty Coon>, 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/yast2-packager-2.16.10/Makefile.am new/yast2-packager-2.16.11/Makefile.am --- old/yast2-packager-2.16.10/Makefile.am 2007-11-16 11:16:06.000000000 +0100 +++ new/yast2-packager-2.16.11/Makefile.am 2007-11-20 13:36:41.000000000 +0100 @@ -23,14 +23,13 @@ ALL_PACKAGES = $(DEVTOOLS_DIR)/admin/all-packages LEGALESE_DIR = $(if $(HAS_YAST_LICENSE),$(DEVTOOLS_DIR)/admin/copyright/yast,$(DEVTOOLS_DIR)/admin/copyright/gpl) -COPYRIGHT_files_gpl = README COPYING +COPYRIGHT_files_gpl = README COPYING COPYRIGHT.english COPYRIGHT_files_yast = YAST_LICENSE README COPYING COPYRIGHT.english \ COPYRIGHT.french COPYRIGHT.german COPYRIGHT.spanish extra_COPYRIGHT_files = $(if $(HAS_YAST_LICENSE), $(COPYRIGHT_files_yast), $(COPYRIGHT_files_gpl)) -# less strict; prefer bzip2 AUTOMAKE_OPTIONS = foreign dist-bzip2 no-dist-gzip # where devtools instal m4 snippets # argh, executed literally diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/yast2-packager-2.16.10/README new/yast2-packager-2.16.11/README --- old/yast2-packager-2.16.10/README 2007-11-27 14:09:35.000000000 +0100 +++ new/yast2-packager-2.16.11/README 2007-12-07 14:29:41.000000000 +0100 @@ -1,2 +1,2 @@ This program/library is part of YaST2 -See the file COPYING for license terms +See the file COPYRIGHT.english for license terms diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/yast2-packager-2.16.10/src/clients/inst_productsources.ycp new/yast2-packager-2.16.11/src/clients/inst_productsources.ycp --- old/yast2-packager-2.16.10/src/clients/inst_productsources.ycp 2007-11-27 13:30:42.000000000 +0100 +++ new/yast2-packager-2.16.11/src/clients/inst_productsources.ycp 2007-12-07 14:12:12.000000000 +0100 @@ -340,9 +340,8 @@ if (!PackageLock::Check()) return false; Pkg::TargetInitialize (Installation::destdir); - // not necessary - // Pkg::TargetLoad(); - Pkg::SourceStartManager (true); + // the fastest way + Pkg::SourceRestore(); if (! Mode::installation()) { // repos_already_used @@ -571,14 +570,20 @@ _("Downloading list of online repositories..."), ]; + list <string> icons_for_progress = [ + "yast-network.png", + "yast-restore.png", + ]; + if (! Stage::initial()) { // TRANSLATORS: progress step actions_todo = add (actions_todo, _("Initialize the repository manager")); // TRANSLATORS: progress step actions_doing = add (actions_doing, _("Initializing the repository manager...")); + icons_for_progress = add (icons_for_progress, "yast-sw_source.png"); } - Progress::New ( + Progress::NewProgressIcons ( // TRANSLATORS: dialog caption _("Reading List of Online Repositories"), " ", @@ -588,7 +593,8 @@ // TRANSLATORS: dialog help _("<p>Please wait while the packager is being initialized and the list of servers dowloaded from Web.</p> -") +"), + [icons_for_progress] ); Wizard::SetTitleIcon ("yast-network"); diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/yast2-packager-2.16.10/src/modules/PackageCallbacks.ycp new/yast2-packager-2.16.11/src/modules/PackageCallbacks.ycp --- old/yast2-packager-2.16.10/src/modules/PackageCallbacks.ycp 2007-11-05 13:33:36.000000000 +0100 +++ new/yast2-packager-2.16.11/src/modules/PackageCallbacks.ycp 2007-12-07 14:28:33.000000000 +0100 @@ -7,7 +7,7 @@ * * Purpose: provides the default Callbacks for Pkg:: * - * $Id: PackageCallbacks.ycp 40852 2007-09-11 13:43:32Z lslezak $ + * $Id: PackageCallbacks.ycp 42802 2007-12-07 13:28:33Z lslezak $ * */ @@ -26,6 +26,9 @@ import "CommandLine"; import "String"; import "Report"; + import "Icon"; + import "Wizard"; + import "Progress"; global boolean _provide_popup = false; global boolean _source_popup = false; @@ -87,6 +90,13 @@ return progressbox; } + boolean FullScreen() + { + boolean ret = UI::WidgetExists(`subprogress_replace_point); + y2debug("Running in fullscreen mode: %1", ret); + return ret; + } + /** at start of file providal * */ @@ -105,10 +115,19 @@ UI::CloseDialog(); } - // popup heading - term providebox = ProgressBox (_("Downloading Package"), name, sz); - UI::OpenDialog(providebox); - _provide_popup = true; + if (FullScreen()) + { + //FIXME + Progress::SubprogressType(`progress, archivesize); + Progress::SubprogressTitle(""); + } + else + { + // popup heading + term providebox = ProgressBox (_("Downloading Package"), name, sz); + UI::OpenDialog(providebox); + _provide_popup = true; + } } } return true; @@ -143,7 +162,12 @@ term dialog_layout = `VBox( `HSpacing(50), // enforce width `VSpacing(0.1), - `Left(`Label( message)), + `HBox ( + // maybe more icon types could be used + // "info, "warning", "error" + Icon::Image ("warning", $["margin_right":2]), + `Left(`Label( message)) + ), `VSpacing(0.1), `Left(`CheckBox(`id(`show), `opt(`notify), // check box @@ -577,40 +601,33 @@ { // use only product name for network repository // there is no medium 1, 2, ... - if (url_scheme != "cd" && url_scheme != "dvd") + if (double_sided) { - // label for a network repository - %1 product name (e.g. openSUSE 10.2), %2 medium number (e.g. 2) - wanted_label = sformat(_("%1 (Medium Number %2)"), product, wanted); + // media is double sided, we want the user to insert the 'Side A' of the media + // the complete string will be "<product> <media> <number>, <side>" + // e.g. "'SuSE Linux 9.0' DVD 1, Side A" + string side = _("Side A"); + if ((wanted & 1) == 0) + { + // media is double sided, we want the user to insert the 'Side B' of the media + side = _("Side B"); + } + wanted = (wanted + 1) >> 1; + wanted_label = (tolower(url_scheme) == "cd" || tolower(url_scheme) == "dvd") ? + // label for a repository - %1 product name (e.g. "openSUSE 10.2"), %2 medium number (e.g. 2) + // %3 side (e.g. "Side A") + sformat("%1 (Disc %2, %3)", product, wanted, side) + // label for a repository - %1 product name (e.g. "openSUSE 10.2"), %2 medium number (e.g. 2) + // %3 side (e.g. "Side A") + : sformat("%1 (Medium %2, %3)", product, wanted, side); } else { - // will be used in conjunction with other text below - // prompt for user to insert the correct CD/DVD - string medianame = "DVD "; - - if (url_scheme == "cd") - { - medianame = "CD "; - } - - string mediaside = sformat ("%1", (medianame + wanted)); - - if (double_sided) - { - // media is double sided, we want the user to insert the 'Side A' of the media - // the complete string will be "<product> <media> <number>, <side>" - // e.g. "'SuSE Linux 9.0' DVD 1, Side A" - string side = _("Side A"); - if ((wanted & 1) == 0) - { - // media is double sided, we want the user to insert the 'Side B' of the media - side = _("Side B"); - } - wanted = (wanted + 1) >> 1; - mediaside = sformat ("%1", (medianame + wanted)) + ", " + side; - } - - wanted_label = sformat ("%1 %2", product, mediaside); + wanted_label = (tolower(url_scheme) == "cd" || tolower(url_scheme) == "dvd") ? + // label for a repository - %1 product name (e.g. openSUSE 10.2), %2 medium number (e.g. 2) + sformat(_("%1 (Disc %2)"), product, wanted) + // label for a repository - %1 product name (e.g. openSUSE 10.2), %2 medium number (e.g. 2) + : sformat(_("%1 (Medium %2)"), product, wanted); } } @@ -1532,7 +1549,11 @@ { if (!Mode::commandline()) { - if (!IsDownloadProgressPopup()) + if (FullScreen()) + { + Progress::SubprogressTitle(task); + } + else if (!IsDownloadProgressPopup()) { // heading of popup string heading = _("Downloading"); @@ -1557,15 +1578,17 @@ ) ) ); + UI::ChangeWidget (`id(`progress), `Value, 0); } - - UI::ChangeWidget (`id(`progress), `Value, 0); } } global void DestDownload() { - CloseDownloadProgressPopup(); + if (!FullScreen()) + { + CloseDownloadProgressPopup(); + } } global void StartDownload (string url, string localfile) @@ -1592,6 +1615,12 @@ UI::ChangeWidget(`id(`progress), `Label, message); UI::ChangeWidget (`id(`progress), `Value, 0); } + else if (FullScreen()) + { + Progress::SubprogressType(`progress, 100); + Progress::SubprogressTitle(message); + Progress::SubprogressValue(0); + } } } @@ -1610,7 +1639,15 @@ } } else { - UI::ChangeWidget (`id(`progress), `Value, percent); + if (FullScreen()) + { + Progress::SubprogressValue(percent); + } + else + { + UI::ChangeWidget (`id(`progress), `Value, percent); + } + return UI::PollInput () != `abort; } } @@ -1646,9 +1683,11 @@ global void ClearDownloadCallbacks () { + Pkg::CallbackInitDownload (""); Pkg::CallbackStartDownload (""); Pkg::CallbackProgressDownload (""); Pkg::CallbackDoneDownload (""); + Pkg::CallbackDestDownload (""); } @@ -1823,27 +1862,34 @@ } else { - UI::OpenDialog( - `VBox( - `HSpacing(60), - // popup heading - `Heading(`id(`label_scanDB_popup), `opt(`hstretch), _("Reading Installed Packages")), - `HBox( - // progress bar label - `ProgressBar (`id (`progress), _("Scanning RPM Database..."), 100, 0), - `HSpacing(1) -/* TODO: allow Abort - , - `VBox( - `Label(""), - `PushButton(`id(`abort), Label::AbortButton()) + if (!FullScreen()) + { + UI::OpenDialog( + `VBox( + `HSpacing(60), + // popup heading + `Heading(`id(`label_scanDB_popup), `opt(`hstretch), _("Reading Installed Packages")), + `HBox( + // progress bar label + `ProgressBar (`id (`progress), _("Scanning RPM Database..."), 100, 0), + `HSpacing(1) + /* TODO: allow Abort + , + `VBox( + `Label(""), + `PushButton(`id(`abort), Label::AbortButton()) + ) + */ ) -*/ ) - ) - ); + ); - _scan_popup = true; + _scan_popup = true; + } + else + { + Progress::Title(_("Scanning RPM Database...")); + } } } @@ -1870,6 +1916,10 @@ return cont; } + else if (FullScreen()) + { + Progress::Step(value); + } } // continue @@ -1989,7 +2039,7 @@ UI::CloseDialog(); _scan_popup = false; } - else + else if (!FullScreen()) { y2error("The toplevel dialog is not a scan DB popup!"); } @@ -2068,6 +2118,9 @@ UI::WidgetExists(`id(`callback_progress_popup)); } +// ProgressStart/End events may be nested, remember the types of progresses +list<map> progress_stack = []; + global void ProgressStart(integer id, string task, boolean in_percent, boolean is_alive, integer min, integer max, integer val_raw, integer val_percent) { y2milestone ("ProgressStart: %1", id); @@ -2083,41 +2136,53 @@ } else { - if (IsProgressPopup()) + symbol subprogress_type = (tick_progress) ? `tick : `progress; + progress_stack = add(progress_stack, $[ "type" : subprogress_type, "task" : task ]); + + if (IsProgressPopup() && size(progress_stack) <= 1) { // huh, the popup is already there? + y2warning("Progress popup already opened..."); UI::CloseDialog(); } - term progressw = `Empty(); - if ( UI::GetDisplayInfo()["HasAnimationSupport"]:false ) - { - progressw = `HVCenter(`MinSize( _tick_movie_x, _tick_movie_y, `ReplacePoint(`id(`rp_progress), `Image(`id (`progress_widget), `opt(`animated), _tick_movie, "progress_widget" )))); - } - else - { - string label = (tick_progress) ? tick_labels[current_tick]:"/" : sformat("%1: %2", progress_task, val_raw); - progressw = `ReplacePoint(`id(`rp_progress), `Label(`id(`progress_widget), label)); - } + if (FullScreen()) + { + Progress::SubprogressType(subprogress_type, 100); + Progress::SubprogressTitle(task); + } + else + { + term progressw = `Empty(); + if ( UI::GetDisplayInfo()["HasAnimationSupport"]:false ) + { + progressw = `HVCenter(`MinSize( _tick_movie_x, _tick_movie_y, `ReplacePoint(`id(`rp_progress), `Image(`id (`progress_widget), `opt(`animated), _tick_movie, "progress_widget" )))); + } + else + { + string label = (tick_progress) ? tick_labels[current_tick]:"/" : sformat("%1: %2", progress_task, val_raw); + progressw = `ReplacePoint(`id(`rp_progress), `Label(`id(`progress_widget), label)); + } - UI::OpenDialog( - `HBox( - `HSpacing(1), - `VBox( - `VSpacing(0.5), - `HSpacing(`id(`callback_progress_popup), max_size), - (in_percent) ? `ProgressBar (`id (`progress_widget), task, 100, val_percent) - : `VBox( - `Label(task), - progressw - ), - `VSpacing(0.2), - `PushButton (`id (`abort), Label::AbortButton ()), - `VSpacing(0.5) - ), - `HSpacing(1) - ) - ); + UI::OpenDialog( + `HBox( + `HSpacing(1), + `VBox( + `VSpacing(0.5), + `HSpacing(`id(`callback_progress_popup), max_size), + (in_percent) ? `ProgressBar (`id (`progress_widget), task, 100, val_percent) + : `VBox( + `Label(task), + progressw + ), + `VSpacing(0.2), + `PushButton (`id (`abort), Label::AbortButton ()), + `VSpacing(0.5) + ), + `HSpacing(1) + ) + ); + } tick_time = 0; } @@ -2127,9 +2192,31 @@ { y2milestone("ProgressFinish: %1", id); + // remove the last element from the progress stack + progress_stack = remove(progress_stack, size(progress_stack) - 1); + if (!Mode::commandline() && IsProgressPopup()) { - UI::CloseDialog(); + if (size(progress_stack) == 0) + { + UI::CloseDialog(); + } + } + else if (FullScreen()) + { + symbol progress_type = `none; + if (size(progress_stack) > 0) + { + progress_type = progress_stack[size(progress_stack) - 1, "type"]:`none; + } + + Progress::SubprogressType(progress_type, 100); + + if (size(progress_stack) > 0) + { + string task = progress_stack[size(progress_stack) - 1, "task"]:""; + Progress::SubprogressTitle(task); + } } } @@ -2200,10 +2287,80 @@ return false; } } + else if (FullScreen()) + { + // fullscreen callbacks + Progress::SubprogressValue(val_percent); + } } return true; } + +integer last_percent = 0; + +/** + * Hanler for ProcessStart callback - handle start of a package manager process + * @param task Decription of the task + * @param stages Descriptions of the stages + * @param help Help text describing the process + */ +global void ProcessStart(string task, list<string> stages, string help) +{ + y2milestone("Process: Start: task: %1, stages: %2, help: %3", task, stages, help); + + if (Progress::status()) + { + Wizard::CreateDialog(); + Wizard::SetDesktopIcon("sw_single"); + + // set 100% as max value + Progress::New(task, "", 100, stages, [], help); + Progress::Title(task); + last_percent = 0; + } +} + +/** + * Hander for ProcessProgress callback - report total progress + * @param percent Total progress in percent + */ +global boolean ProcessProgress(integer percent) +{ + y2debug("Process: %1%%", percent); + Progress::Step(percent); + last_percent = percent; + + return true; +} + +/** + * Hander for ProcessNextStage callback - the current stage has been finished + */ +global void ProcessNextStage() +{ + y2milestone("Process: NextStage"); + // NextStage() increases also progress (+1 step) which is not desired, + // reset to the last percent reported + Progress::NextStageStep(last_percent); +} + +/** + * Hander for ProcessDone callback - the process has been finished + */ +global void ProcessDone() +{ + y2milestone("Process: Finished"); + + // set 100% if it hasn't been reached + if (last_percent < 100) + { + Progress::Finish(); + } + + Wizard::CloseDialog(); +} + // EOF } diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/yast2-packager-2.16.10/src/modules/PackagesUI.ycp new/yast2-packager-2.16.11/src/modules/PackagesUI.ycp --- old/yast2-packager-2.16.10/src/modules/PackagesUI.ycp 2007-11-22 12:53:26.000000000 +0100 +++ new/yast2-packager-2.16.11/src/modules/PackagesUI.ycp 2007-12-07 14:12:12.000000000 +0100 @@ -6,7 +6,7 @@ * Purpose: Provides a number of common popups * for the package installation. * - * $Id: PackagesUI.ycp 40474 2007-08-24 14:23:32Z locilka $ + * $Id: PackagesUI.ycp 42595 2007-12-03 12:50:49Z locilka $ */ { @@ -88,11 +88,6 @@ `VSpacing (size_y), `RichText (`id (`lic), license) ), - // FATE #302018 - // TRANSLATORS: Licenses to confirm can be found here. - // do not use more than 76 characters per line, keep it as short as possible - `Left(`Label (_("If you like to print this license, -check the EULA.txt file on the first media."))), `VSpacing(1), `HBox ( `PushButton (`id (`help), Label::HelpButton ()), diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/yast2-packager-2.16.10/VERSION new/yast2-packager-2.16.11/VERSION --- old/yast2-packager-2.16.10/VERSION 2007-11-27 14:08:23.000000000 +0100 +++ new/yast2-packager-2.16.11/VERSION 2007-12-07 13:53:49.000000000 +0100 @@ -1 +1 @@ -2.16.10 +2.16.11 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org