Hello community, here is the log from the commit of package libyui-qt-pkg for openSUSE:Factory checked in at 2017-07-04 13:33:32 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libyui-qt-pkg (Old) and /work/SRC/openSUSE:Factory/.libyui-qt-pkg.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "libyui-qt-pkg" Tue Jul 4 13:33:32 2017 rev:31 rq:506279 version:2.45.13 Changes: -------- --- /work/SRC/openSUSE:Factory/libyui-qt-pkg/libyui-qt-pkg.changes 2016-12-03 18:23:34.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.libyui-qt-pkg.new/libyui-qt-pkg.changes 2017-07-04 13:33:35.584766911 +0200 @@ -1,0 +2,8 @@ +Fri Jun 23 12:05:27 UTC 2017 - lslezak@suse.cz + +- Limit the number of displayed changes (the last 512 entries), + rendering a huge change log might cause a freeze for long time + (bsc#1044777) +- 2.45.13 + +------------------------------------------------------------------- Old: ---- libyui-qt-pkg-2.45.12.tar.bz2 New: ---- libyui-qt-pkg-2.45.13.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libyui-qt-pkg-doc.spec ++++++ --- /var/tmp/diff_new_pack.gTZ90n/_old 2017-07-04 13:33:36.216677928 +0200 +++ /var/tmp/diff_new_pack.gTZ90n/_new 2017-07-04 13:33:36.216677928 +0200 @@ -1,7 +1,7 @@ # # spec file for package libyui-qt-pkg-doc # -# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -20,7 +20,7 @@ %define so_version 7 Name: %{parent}-doc -Version: 2.45.12 +Version: 2.45.13 Release: 0 Source: %{parent}-%{version}.tar.bz2 ++++++ libyui-qt-pkg.spec ++++++ --- /var/tmp/diff_new_pack.gTZ90n/_old 2017-07-04 13:33:36.244673986 +0200 +++ /var/tmp/diff_new_pack.gTZ90n/_new 2017-07-04 13:33:36.244673986 +0200 @@ -1,7 +1,7 @@ # # spec file for package libyui-qt-pkg # -# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,7 +17,7 @@ Name: libyui-qt-pkg -Version: 2.45.12 +Version: 2.45.13 Release: 0 Source: %{name}-%{version}.tar.bz2 ++++++ libyui-qt-pkg-2.45.12.tar.bz2 -> libyui-qt-pkg-2.45.13.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-qt-pkg-2.45.12/.travis.yml new/libyui-qt-pkg-2.45.13/.travis.yml --- old/libyui-qt-pkg-2.45.12/.travis.yml 1970-01-01 01:00:00.000000000 +0100 +++ new/libyui-qt-pkg-2.45.13/.travis.yml 2017-06-26 15:54:13.145855321 +0200 @@ -0,0 +1,11 @@ +sudo: required +language: bash +services: + - docker + +before_install: + - docker build -t libyui-qt-pkg-image . +script: + # the "libyui-travis" script is included in the base libyui/devel image + # see https://github.com/libyui/docker-devel/blob/master/libyui-travis + - docker run -it libyui-qt-pkg-image libyui-travis diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-qt-pkg-2.45.12/Dockerfile new/libyui-qt-pkg-2.45.13/Dockerfile --- old/libyui-qt-pkg-2.45.12/Dockerfile 1970-01-01 01:00:00.000000000 +0100 +++ new/libyui-qt-pkg-2.45.13/Dockerfile 2017-06-26 15:54:13.145855321 +0200 @@ -0,0 +1,4 @@ +# Use the libyui/devel image as the base +FROM libyui/devel + +COPY . /usr/src/app diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-qt-pkg-2.45.12/README.md new/libyui-qt-pkg-2.45.13/README.md --- old/libyui-qt-pkg-2.45.12/README.md 2016-11-29 17:44:10.992371607 +0100 +++ new/libyui-qt-pkg-2.45.13/README.md 2017-06-26 15:54:13.145855321 +0200 @@ -1,11 +1,43 @@ -# YaST - Qt Software Management +# LibYUI - The Qt Package Management Widget -This module provides the graphical (Qt) version of the YaST Package Selector which is used to update, install or delete individual packages. +[![Build Status](https://travis-ci.org/libyui/libyui-qt-pkg.svg?branch=master +)](https://travis-ci.org/libyui/libyui-qt-pkg) -An overview about package handling in general is available on the [libyui-ncurses-pkg wiki page](https://github.com/libyui/libyui-ncurses-pkg/wiki). -The wiki page also describes common use cases and how to solve the task in YaST Software Management (for Qt as well as ncurses). -Also included is the information about related configuration files. -For details about reported bugs and issues see the wiki page [background](https://github.com/libyui/libyui-ncurses-pkg/wiki/background). +Libyui is a widget abstraction library providing Qt, GTK and ncurses +frontends. Originally it was developed for [YaST](https://yast.github.io/) +but it can be used in any independent project. +This module provides the graphical (Qt) version of the YaST Package Selector +which is used to update, install or delete individual packages. + +An overview about package handling in general is available on the +[libyui-ncurses-pkg wiki page](https://github.com/libyui/libyui-ncurses-pkg/wiki). +The wiki page also describes common use cases and how to solve the task in YaST +Software Management (for Qt as well as ncurses). Also included is the +information about related configuration files. + +For details about reported bugs and issues see the wiki page +[background](https://github.com/libyui/libyui-ncurses-pkg/wiki/background). + +### Building + +Libyui uses CMake, driven by a slightly complex set of +[CMakefiles](https://github.com/libyui/libyui/tree/master/buildtools). For +reproducible builds it is best to use the [libyui-rake]( +https://github.com/libyui/libyui-rake) Ruby gem like the [Jenkins CI]( +https://ci.opensuse.org/view/libyui/) jobs do. + +It can be installed from [rubygems.org](https://rubygems.org/gems/libyui-rake/) +using this command (Ruby needs to be installed in the system): + +``` +gem install libyui-rake +``` + +Then to build the package run: + +``` +rake osc:build +``` diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-qt-pkg-2.45.12/VERSION.cmake new/libyui-qt-pkg-2.45.13/VERSION.cmake --- old/libyui-qt-pkg-2.45.12/VERSION.cmake 2016-11-29 17:44:10.992371607 +0100 +++ new/libyui-qt-pkg-2.45.13/VERSION.cmake 2017-06-26 15:54:13.145855321 +0200 @@ -1,6 +1,6 @@ SET( VERSION_MAJOR "2" ) SET( VERSION_MINOR "45" ) -SET( VERSION_PATCH "12" ) +SET( VERSION_PATCH "13" ) SET( VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}" ) ##### This is need for the libyui core, ONLY. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-qt-pkg-2.45.12/package/libyui-qt-pkg-doc.spec new/libyui-qt-pkg-2.45.13/package/libyui-qt-pkg-doc.spec --- old/libyui-qt-pkg-2.45.12/package/libyui-qt-pkg-doc.spec 2016-11-29 17:44:10.992371607 +0100 +++ new/libyui-qt-pkg-2.45.13/package/libyui-qt-pkg-doc.spec 2017-06-26 15:54:13.149855321 +0200 @@ -20,7 +20,7 @@ %define so_version 7 Name: %{parent}-doc -Version: 2.45.12 +Version: 2.45.13 Release: 0 Source: %{parent}-%{version}.tar.bz2 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-qt-pkg-2.45.12/package/libyui-qt-pkg.changes new/libyui-qt-pkg-2.45.13/package/libyui-qt-pkg.changes --- old/libyui-qt-pkg-2.45.12/package/libyui-qt-pkg.changes 2016-11-29 17:44:10.996371607 +0100 +++ new/libyui-qt-pkg-2.45.13/package/libyui-qt-pkg.changes 2017-06-26 15:54:13.149855321 +0200 @@ -1,4 +1,12 @@ ------------------------------------------------------------------- +Fri Jun 23 12:05:27 UTC 2017 - lslezak@suse.cz + +- Limit the number of displayed changes (the last 512 entries), + rendering a huge change log might cause a freeze for long time + (bsc#1044777) +- 2.45.13 + +------------------------------------------------------------------- Tue Nov 29 17:33:04 CET 2016 - shundhammer@suse.de - Sort pkg list case-insensitively (bsc#1012294) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-qt-pkg-2.45.12/package/libyui-qt-pkg.spec new/libyui-qt-pkg-2.45.13/package/libyui-qt-pkg.spec --- old/libyui-qt-pkg-2.45.12/package/libyui-qt-pkg.spec 2016-11-29 17:44:10.996371607 +0100 +++ new/libyui-qt-pkg-2.45.13/package/libyui-qt-pkg.spec 2017-06-26 15:54:13.149855321 +0200 @@ -17,7 +17,7 @@ Name: libyui-qt-pkg -Version: 2.45.12 +Version: 2.45.13 Release: 0 Source: %{name}-%{version}.tar.bz2 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-qt-pkg-2.45.12/src/YQPkgChangeLogView.cc new/libyui-qt-pkg-2.45.13/src/YQPkgChangeLogView.cc --- old/libyui-qt-pkg-2.45.12/src/YQPkgChangeLogView.cc 2016-11-29 17:44:10.996371607 +0100 +++ new/libyui-qt-pkg-2.45.13/src/YQPkgChangeLogView.cc 2017-06-26 15:54:13.197855321 +0200 @@ -48,7 +48,9 @@ #include "YQi18n.h" #include "utf8.h" - +// how many change log entries should be displayed at most, +// displaying huge changes takes too much time (bsc#1044777) +static const int MAX_DISPLAYED_CHANGES = 512; YQPkgChangeLogView::YQPkgChangeLogView( QWidget * parent ) : YQPkgGenericDetailsView( parent ) @@ -73,6 +75,8 @@ return; } + yuiDebug() << "Generating changelog..." << std::endl; + QString html = htmlStart(); html += htmlHeading( selectable, false ); @@ -80,7 +84,17 @@ if ( installed ) { - html += changeLogTable( installed->changelog() ); + html += changeLogTable( installed->changelog() ); + + int not_displayed = installed->changelog().size() - MAX_DISPLAYED_CHANGES; + if (not_displayed > 0) + { + yuiWarning() << "Changelog size limit reached, ignoring last " + << not_displayed << " items" << std::endl; + html.append("<p class='note'>" + + notDisplayedChanges(not_displayed, installed->name() + "-" + installed->edition().asString()) + + "</p>"); + } } else { @@ -88,15 +102,19 @@ } html += htmlEnd(); + yuiDebug() << "Changelog HTML size: " << html.size() << std::endl; setHtml( html ); + yuiDebug() << "Changes displayed" << std::endl; } QString YQPkgChangeLogView::changeLogTable( const zypp::Changelog & changeLog ) const { + yuiDebug() << "Changelog size: " << changeLog.size() << " entries" << std::endl; QString html; + int index = 0; for ( zypp::Changelog::const_iterator it = changeLog.begin(); it != changeLog.end(); ++it ) @@ -110,10 +128,24 @@ cell( (*it).author() ) + "<td valign='top'>" + changes + "</td>" // cell() calls htmlEscape() ! ); + + if (++index == MAX_DISPLAYED_CHANGES) + break; } return html.isEmpty() ? "" : table( html ); } +QString YQPkgChangeLogView::notDisplayedChanges(int missing, const std::string &pkg) +{ + // TRANSLATORS: The package change log is too long to display, only the latest + // changes are displayed. %1 is the number of the items which are not displayed, + // %2 contains a command for getting the full changes manually. + QString msg = _("(%1 more change entries are not displayed. Run \"" + "%2\" to see the complete change log.)"); + + QString cmd = QString("rpm -q --changelog %1").arg(pkg.c_str()); + return msg.arg(QString::number(missing), cmd); +} #include "YQPkgChangeLogView.moc" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-qt-pkg-2.45.12/src/YQPkgChangeLogView.h new/libyui-qt-pkg-2.45.13/src/YQPkgChangeLogView.h --- old/libyui-qt-pkg-2.45.12/src/YQPkgChangeLogView.h 2016-11-29 17:44:10.996371607 +0100 +++ new/libyui-qt-pkg-2.45.13/src/YQPkgChangeLogView.h 2017-06-26 15:54:13.197855321 +0200 @@ -81,6 +81,14 @@ * Format a change log list in HTML **/ QString changeLogTable( const zypp::Changelog & changeLog ) const; + + /** + * Format an info message about not displayed changes. + * @param missing Number of missing entris + * @param pkg Package name (with version) + * @return Translated message + */ + QString notDisplayedChanges(int missing, const std::string &pkg); }; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-qt-pkg-2.45.12/src/YQPkgGenericDetailsView.cc new/libyui-qt-pkg-2.45.13/src/YQPkgGenericDetailsView.cc --- old/libyui-qt-pkg-2.45.12/src/YQPkgGenericDetailsView.cc 2016-11-29 17:44:11.000371607 +0100 +++ new/libyui-qt-pkg-2.45.13/src/YQPkgGenericDetailsView.cc 2017-06-26 15:54:13.201855321 +0200 @@ -87,7 +87,10 @@ "text-align: left;" "border-bottom: 2px; solid;" "font-size: small;" - "font-weight: bold;} "; + "font-weight: bold;} " + "p.note" + "{color: grey;" + "font-style: italic;}"; document()->addResource( QTextDocument::StyleSheetResource, QUrl( "format.css" ), css ); }