Hello community, here is the log from the commit of package yast2-qt checked in at Sat Apr 1 00:07:29 CEST 2006. -------- --- yast2-qt/yast2-qt.changes 2006-03-29 12:09:09.000000000 +0200 +++ yast2-qt/yast2-qt.changes 2006-03-31 22:04:04.000000000 +0200 @@ -1,0 +2,17 @@ +Fri Mar 31 22:02:38 CEST 2006 - sh@suse.de + +- V 2.13.44 +- Fixed bug #161860: Pattern selector layout out of proportion + +------------------------------------------------------------------- +Fri Mar 31 18:34:56 CEST 2006 - sh@suse.de + +- Fixed bug #152700: Automatic changes dialog displays garbage + +------------------------------------------------------------------- +Wed Mar 29 21:20:47 CEST 2006 - sh@suse.de + +- V 2.13.43 +- Fixed bug #121872: segfault at program end if no Qt style defined + +------------------------------------------------------------------- Old: ---- yast2-qt-2.13.42.tar.bz2 New: ---- yast2-qt-2.13.44.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ yast2-qt.spec ++++++ --- /var/tmp/diff_new_pack.7KhX8W/_old 2006-04-01 00:06:58.000000000 +0200 +++ /var/tmp/diff_new_pack.7KhX8W/_new 2006-04-01 00:06:58.000000000 +0200 @@ -1,5 +1,5 @@ # -# spec file for package yast2-qt (Version 2.13.42) +# spec file for package yast2-qt (Version 2.13.44) # # 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-qt -Version: 2.13.42 +Version: 2.13.44 Release: 1 License: GPL Group: System/YaST BuildRoot: %{_tmppath}/%{name}-%{version}-build -Source0: yast2-qt-2.13.42.tar.bz2 +Source0: yast2-qt-2.13.44.tar.bz2 prefix: /usr BuildRequires: boost-devel curl-devel dbus-1-devel docbook-xsl-stylesheets doxygen hal-devel libdrm-devel libjpeg-devel libxcrypt-devel libxslt libzypp-devel perl-XML-Writer qt3-devel rpm-devel sgml-skel update-desktop-files yast2-core-devel yast2-devtools Summary: YaST2 - Graphical User Interface @@ -42,7 +42,7 @@ Stefan Hundhammer <sh@suse.de> %prep -%setup -n yast2-qt-2.13.42 +%setup -n yast2-qt-2.13.44 %build %{prefix}/bin/y2tool y2autoconf @@ -80,6 +80,14 @@ %doc %{prefix}/share/doc/packages/yast2-qt %changelog -n yast2-qt +* Fri Mar 31 2006 - sh@suse.de +- V 2.13.44 +- Fixed bug #161860: Pattern selector layout out of proportion +* Fri Mar 31 2006 - sh@suse.de +- Fixed bug #152700: Automatic changes dialog displays garbage +* Wed Mar 29 2006 - sh@suse.de +- V 2.13.43 +- Fixed bug #121872: segfault at program end if no Qt style defined * Wed Mar 29 2006 - sh@suse.de - V 2.13.42 - Fixed broken umlaut characters in pattern categories ++++++ yast2-qt-2.13.42.tar.bz2 -> yast2-qt-2.13.44.tar.bz2 ++++++ diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-qt-2.13.42/VERSION new/yast2-qt-2.13.44/VERSION --- old/yast2-qt-2.13.42/VERSION 2006-03-29 12:07:59.000000000 +0200 +++ new/yast2-qt-2.13.44/VERSION 2006-03-31 18:34:53.000000000 +0200 @@ -1 +1 @@ -2.13.42 +2.13.44 diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-qt-2.13.42/src/Makefile.am new/yast2-qt-2.13.44/src/Makefile.am --- old/yast2-qt-2.13.42/src/Makefile.am 2006-03-10 18:33:32.000000000 +0100 +++ new/yast2-qt-2.13.44/src/Makefile.am 2006-03-29 20:34:53.000000000 +0200 @@ -12,6 +12,7 @@ -DTHEMEDIR=\"${themedir}/current\" \ -DHELPIMAGEDIR=\"${imagedir}\" \ -DLANG_FONTS_FILE=\"${lang_fontsdir}/lang_fonts\" \ + -DQTLIBDIR=\"$(QTLIBDIR)\" \ -fmessage-length=0 diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-qt-2.13.42/src/Makefile.in new/yast2-qt-2.13.44/src/Makefile.in --- old/yast2-qt-2.13.42/src/Makefile.in 2006-03-27 17:07:24.000000000 +0200 +++ new/yast2-qt-2.13.44/src/Makefile.in 2006-03-29 20:35:09.000000000 +0200 @@ -303,6 +303,7 @@ -DTHEMEDIR=\"${themedir}/current\" \ -DHELPIMAGEDIR=\"${imagedir}\" \ -DLANG_FONTS_FILE=\"${lang_fontsdir}/lang_fonts\" \ + -DQTLIBDIR=\"$(QTLIBDIR)\" \ -fmessage-length=0 MOC = $(QTDIR)/bin/moc diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-qt-2.13.42/src/YQPackageSelector.cc new/yast2-qt-2.13.44/src/YQPackageSelector.cc --- old/yast2-qt-2.13.42/src/YQPackageSelector.cc 2006-03-27 15:34:02.000000000 +0200 +++ new/yast2-qt-2.13.44/src/YQPackageSelector.cc 2006-03-31 21:16:36.000000000 +0200 @@ -228,16 +228,19 @@ CHECK_PTR( splitter ); splitter->setMargin( MARGIN ); - QVBox * vbox = new QVBox( splitter ); - CHECK_PTR( vbox ); - layoutFilters( vbox ); - addVSpacing( vbox, MARGIN ); - - vbox = new QVBox( splitter ); - addVSpacing( vbox, MARGIN ); - _diskUsageList = new YQPkgDiskUsageList( vbox ); + QVBox * upper_vbox = new QVBox( splitter ); + CHECK_PTR( upper_vbox ); + layoutFilters( upper_vbox ); + addVSpacing( upper_vbox, MARGIN ); + + QVBox * lower_vbox = new QVBox( splitter ); + addVSpacing( lower_vbox, MARGIN ); + _diskUsageList = new YQPkgDiskUsageList( lower_vbox ); CHECK_PTR( _diskUsageList ); + splitter->setResizeMode( upper_vbox, QSplitter::Stretch ); + splitter->setResizeMode( lower_vbox, QSplitter::FollowSizeHint ); + return splitter; } @@ -340,7 +343,9 @@ _langList = new YQPkgLangList( parent ); CHECK_PTR( _langList ); + _filters->addPage( _( "Languages" ), _langList ); + _langList->setSizePolicy( QSizePolicy( QSizePolicy::Ignored, QSizePolicy::Ignored ) ); // hor/vert connect( _langList, SIGNAL( statusChanged() ), this, SLOT ( autoResolveDependencies() ) ); diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-qt-2.13.42/src/YQPatternSelector.cc new/yast2-qt-2.13.44/src/YQPatternSelector.cc --- old/yast2-qt-2.13.42/src/YQPatternSelector.cc 2006-03-17 18:26:17.000000000 +0100 +++ new/yast2-qt-2.13.44/src/YQPatternSelector.cc 2006-03-31 21:57:43.000000000 +0200 @@ -52,7 +52,6 @@ #define MARGIN 6 - YQPatternSelector::YQPatternSelector( QWidget * parent, const YWidgetOpt & opt ) : YQPackageSelectorBase( parent, opt ) @@ -113,8 +112,11 @@ QWidget * left_pane = layoutLeftPane ( outer_splitter ); QWidget * right_pane = layoutRightPane( outer_splitter ); - outer_splitter->setResizeMode( left_pane, QSplitter::Stretch ); - outer_splitter->setResizeMode( right_pane, QSplitter::FollowSizeHint ); + int left_pane_width = (int) ( 0.3 * YQUI::ui()->defaultSize( YD_HORIZ ) ); + left_pane->resize( QSize( left_pane_width, left_pane->height() ) ); + + outer_splitter->setResizeMode( left_pane, QSplitter::KeepSize ); + outer_splitter->setResizeMode( right_pane, QSplitter::Stretch ); if ( ! _wizard ) layoutButtons( this ); @@ -182,7 +184,6 @@ addHStretch( hbox ); } - return vbox; } diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-qt-2.13.42/src/YQPkgChangesDialog.cc new/yast2-qt-2.13.44/src/YQPkgChangesDialog.cc --- old/yast2-qt-2.13.42/src/YQPkgChangesDialog.cc 2006-03-09 14:38:36.000000000 +0100 +++ new/yast2-qt-2.13.44/src/YQPkgChangesDialog.cc 2006-03-31 18:18:59.000000000 +0200 @@ -31,6 +31,7 @@ #include "YQZypp.h" #include <zypp/ResStatus.h> +#include <zypp/ui/UserWantedPackages.h> #include "YQPkgChangesDialog.h" #include "YQPkgList.h" @@ -38,6 +39,9 @@ #include "YQi18n.h" #include "YQUI.h" +using std::set; +using std::string; + #define SPACING 2 // between subwidgets #define MARGIN 4 // around the widget @@ -131,8 +135,6 @@ addHStretch( hbox ); } - - filter(); } @@ -149,6 +151,11 @@ YQUI::ui()->busyCursor(); _pkgList->clear(); + set<string> ignoredNames; + + if ( ! byUser || ! byApp ) + ignoredNames = zypp::ui::userWantedPackageNames(); + for ( ZyppPoolIterator it = zyppPkgBegin(); it != zyppPkgEnd(); ++it ) @@ -165,7 +172,10 @@ ( modifiedBy == zypp::ResStatus::USER ) && byUser ) { if ( regexp.isEmpty() || regexp.search( selectable->name().c_str() ) >= 0 ) - _pkgList->addPkgItem( selectable, tryCastToZyppPkg( selectable->theObj() ) ); + { + if ( ! contains( ignoredNames, selectable->name() ) ) + _pkgList->addPkgItem( selectable, tryCastToZyppPkg( selectable->theObj() ) ); + } } } } diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-qt-2.13.42/src/YQPkgDiskUsageList.cc new/yast2-qt-2.13.44/src/YQPkgDiskUsageList.cc --- old/yast2-qt-2.13.42/src/YQPkgDiskUsageList.cc 2006-03-17 18:13:18.000000000 +0100 +++ new/yast2-qt-2.13.44/src/YQPkgDiskUsageList.cc 2006-03-31 21:14:57.000000000 +0200 @@ -111,6 +111,7 @@ y2error( "No entry for mount point %s", partitionDu.dir.c_str() ); } + sort(); postPendingWarnings(); } @@ -148,7 +149,7 @@ int width = header()->headerWidth() + style().pixelMetric( QStyle::PM_ScrollBarExtent, verticalScrollBar() ); - return QSize( width, 120 ); + return QSize( width, 100 ); } diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-qt-2.13.42/src/YQPkgPatchList.cc new/yast2-qt-2.13.44/src/YQPkgPatchList.cc --- old/yast2-qt-2.13.42/src/YQPkgPatchList.cc 2006-03-23 17:52:45.000000000 +0100 +++ new/yast2-qt-2.13.44/src/YQPkgPatchList.cc 2006-03-29 12:41:32.000000000 +0200 @@ -141,9 +141,6 @@ { ZyppPatchContents patchContents( patch ); - zypp::Patch::AtomList atomList = patch->atoms(); - y2debug( "Filtering for patch %s: %d atoms", patch->name().c_str(), atomList.size() ); - for ( ZyppPatchContentsIterator it = patchContents.begin(); it != patchContents.end(); ++it ) @@ -177,12 +174,21 @@ else // No ZyppPkg - some other kind of object (script, message) { if ( zypp::isKind<zypp::Script> ( *it ) ) + { + y2debug( "Found patch script %s", (*it)->name().c_str() ); emit filterMatch( _( "Script" ), fromUTF8( (*it)->name() ), -1 ); + } + else if ( zypp::isKind<zypp::Message> ( *it ) ) + { + y2debug( "Found patch message %s (ignoring)", (*it)->name().c_str() ); + } else { - y2debug( "Found unknown atom of kind %s: %s", + y2error( "Found unknown object of kind %s in patch: %s-%s arch: %s", (*it)->kind().asString().c_str(), - (*it)->name().c_str() ); + (*it)->name().c_str(), + (*it)->edition().asString().c_str(), + (*it)->arch().asString().c_str() ); } } } diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-qt-2.13.42/src/YQPkgPatternList.cc new/yast2-qt-2.13.44/src/YQPkgPatternList.cc --- old/yast2-qt-2.13.42/src/YQPkgPatternList.cc 2006-03-29 12:06:26.000000000 +0200 +++ new/yast2-qt-2.13.44/src/YQPkgPatternList.cc 2006-03-31 21:39:19.000000000 +0200 @@ -25,6 +25,7 @@ #include <zypp/ZYppFactory.h> #include <zypp/Resolver.h> #include <qpainter.h> +#include <qheader.h> #include "YQi18n.h" #include "utf8.h" @@ -51,6 +52,10 @@ // is only of little relevance, though. addColumn( _( "Pattern" ) ); _summaryCol = numCol++; + + header()->setStretchEnabled( _statusCol , false ); + header()->setStretchEnabled( _summaryCol, true ); + setAllColumnsShowFocus( true ); setTreeStepSize( 0 ); setAutoApplyChanges( true ); diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-qt-2.13.42/src/YQUI_core.cc new/yast2-qt-2.13.44/src/YQUI_core.cc --- old/yast2-qt-2.13.42/src/YQUI_core.cc 2006-03-09 14:38:36.000000000 +0100 +++ new/yast2-qt-2.13.44/src/YQUI_core.cc 2006-03-29 21:18:14.000000000 +0200 @@ -20,6 +20,7 @@ /-*/ #include <rpc/types.h> // MAXHOSTNAMELEN +#include <dlfcn.h> #include <qcursor.h> #include <qmessagebox.h> @@ -94,7 +95,6 @@ if ( ! runningEmbedded() ) #endif new QApplication( argc, argv ); - loadPredefinedQtTranslations(); _normalPalette = qApp->palette(); @@ -186,6 +186,30 @@ } + // Ugly hack as a workaround of bug #121872 (Segfault at program exit + // if no Qt style defined): + // + // Qt does not seem to be designed for use in plugin libs. It loads some + // add-on libs dynamically with dlopen() and unloads them at program exit + // (QGPluginManager). Unfortunately, since they all depend on the Qt master + // lib (libqt-mt) themselves, when they are unloading the last call to + // dlclose() for them causes the last reference to libqt-mt to vanish as + // well. Since libqt-mt is already in the process of destruction there is + // no more reference from the caller of libqt-mt, and the GLIBC decides + // that libqt-mt is not needed any more (zero references) and unmaps + // libqt-mt. When the static destructor of libqt-mt that triggered the + // cleanup in QGPluginManager returns, the code it is to return to is + // already unmapped, causing a segfault. + // + // Workaround: Keep one more reference to libqt-mt open - dlopen() it here + // and make sure there is no corresponding dlclose(). + + QString qt_lib_name = QString( QTLIBDIR "/libqt-mt.so.%1" ).arg( QT_VERSION >> 16 );; + void * qt_lib = dlopen( (const char *) qt_lib_name, RTLD_GLOBAL ); + y2milestone( "Forcing %s open %s", (const char *) qt_lib_name, + qt_lib ? "successful" : "failed" ); + + // Init other stuff qApp->setFont( currentFont() ); @@ -266,10 +290,8 @@ if ( _lang_fonts ) delete _lang_fonts; -#if 0 - if ( ! runningEmbedded() && qApp ) - delete qApp; -#endif + // Intentionally NOT calling dlclose() to libqt-mt + // (see constructor for explanation) } ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun...