Hello community, here is the log from the commit of package zypper for openSUSE:Factory checked in at Wed Feb 24 02:35:56 CET 2010. -------- --- zypper/zypper.changes 2010-02-08 20:43:53.000000000 +0100 +++ /mounts/work_src_done/STABLE/zypper/zypper.changes 2010-02-22 17:24:23.000000000 +0100 @@ -1,0 +2,25 @@ +Mon Feb 22 17:22:14 CET 2010 - jkupec@suse.cz + +- Avoiding confirmation of unchanged license on upgrade + (bnc #394396) + +------------------------------------------------------------------- +Sun Feb 21 14:17:39 CET 2010 - jkupec@suse.cz + +- clean --all: clean also garbage and zypper cache (bnc #467693) +- 1.2.18 + +------------------------------------------------------------------- +Fri Feb 19 12:01:39 CET 2010 - jkupec@suse.cz + +- Fixed broken --type (bnc #580571) + +------------------------------------------------------------------- +Wed Feb 10 16:01:15 CET 2010 - ma@suse.de + +- Fix 'zypper products' failing to list installed products under + certain conditions (bnc #578721) +- Fix SEGV if $HOME or $PWD are unset in the environment (bnc #578684) +- 1.2.17 + +------------------------------------------------------------------- calling whatdependson for head-i586 Old: ---- zypper-1.2.16.tar.bz2 New: ---- zypper-1.2.19.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ zypper.spec ++++++ --- /var/tmp/diff_new_pack.AMrcMN/_old 2010-02-24 02:35:51.000000000 +0100 +++ /var/tmp/diff_new_pack.AMrcMN/_new 2010-02-24 02:35:51.000000000 +0100 @@ -1,5 +1,5 @@ # -# spec file for package zypper (Version 1.2.16) +# spec file for package zypper (Version 1.2.19) # # Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany. # @@ -19,7 +19,7 @@ Name: zypper -BuildRequires: boost-devel >= 1.33.1 gettext-devel >= 0.15 libzypp-devel >= 6.28.0 +BuildRequires: boost-devel >= 1.33.1 gettext-devel >= 0.15 libzypp-devel >= 6.30.0 BuildRequires: augeas-devel >= 0.5.0 readline-devel >= 5.1 BuildRequires: cmake >= 2.4.6 gcc-c++ >= 4.1 Requires: procps @@ -31,7 +31,7 @@ AutoReqProv: on PreReq: permissions Summary: Command line software manager using libzypp -Version: 1.2.16 +Version: 1.2.19 Release: 1 Source: %{name}-%{version}.tar.bz2 Source1: %{name}-rpmlintrc @@ -61,6 +61,7 @@ %build mkdir build cd build + # Use different translation set for SUSE Linux Enterprise 10 SP1 # # The code base is the same, but SLES11-SP1 (suse_version == 1110) @@ -68,6 +69,7 @@ %if 0%{?suse_version} == 1110 %define use_translation_set sle-zypper %endif + cmake -DCMAKE_INSTALL_PREFIX=%{prefix} \ -DSYSCONFDIR=%{_sysconfdir} \ -DMANDIR=%{_mandir} \ @@ -77,6 +79,7 @@ -DCMAKE_BUILD_TYPE=Release \ %{?use_translation_set:-DUSE_TRANSLATION_SET=%use_translation_set} \ .. + #gettextize -f make %{?jobs:-j %jobs} make -C po %{?jobs:-j %jobs} translations @@ -85,6 +88,7 @@ cd build make install DESTDIR=$RPM_BUILD_ROOT make -C po install DESTDIR=$RPM_BUILD_ROOT + # Create filelist with translations cd .. %{find_lang} zypper @@ -94,6 +98,7 @@ %post /sbin/ldconfig %run_permissions + %verifyscript %verify_permissions -e %{_sbindir}/zypp-refresh-wrapper ++++++ zypper-1.2.16.tar.bz2 -> zypper-1.2.19.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zypper-1.2.16/.gitignore new/zypper-1.2.19/.gitignore --- old/zypper-1.2.16/.gitignore 1970-01-01 01:00:00.000000000 +0100 +++ new/zypper-1.2.19/.gitignore 2010-02-22 17:23:33.000000000 +0100 @@ -0,0 +1,2 @@ +.* +build diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zypper-1.2.16/VERSION.cmake new/zypper-1.2.19/VERSION.cmake --- old/zypper-1.2.16/VERSION.cmake 2010-02-08 21:26:37.000000000 +0100 +++ new/zypper-1.2.19/VERSION.cmake 2010-02-22 17:23:33.000000000 +0100 @@ -31,7 +31,7 @@ # SET(VERSION_MAJOR "1") SET(VERSION_MINOR "2") -SET(VERSION_PATCH "16") +SET(VERSION_PATCH "19") -# LAST RELEASED: 1.2.16 +# LAST RELEASED: 1.2.19 #======= diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zypper-1.2.16/doc/zypper.8 new/zypper-1.2.19/doc/zypper.8 --- old/zypper-1.2.16/doc/zypper.8 2010-02-08 21:26:37.000000000 +0100 +++ new/zypper-1.2.19/doc/zypper.8 2010-02-22 17:23:33.000000000 +0100 @@ -1,4 +1,4 @@ -.TH "zypper" "8" "1.2.16" "zypper" "System Tools" +.TH "zypper" "8" "1.2.19" "zypper" "System Tools" .SH "SYNTAX" .LP zypper [\fI\-\-global\-opts\fR] <\fBcommand\fR> [\fI\-\-command\-opts\fR] [\fBcommand-arguments\fR] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zypper-1.2.16/package/zypper.changes new/zypper-1.2.19/package/zypper.changes --- old/zypper-1.2.16/package/zypper.changes 2010-02-08 21:26:37.000000000 +0100 +++ new/zypper-1.2.19/package/zypper.changes 2010-02-22 17:23:33.000000000 +0100 @@ -1,4 +1,29 @@ ------------------------------------------------------------------- +Mon Feb 22 17:22:14 CET 2010 - jkupec@suse.cz + +- Avoiding confirmation of unchanged license on upgrade + (bnc #394396) + +------------------------------------------------------------------- +Sun Feb 21 14:17:39 CET 2010 - jkupec@suse.cz + +- clean --all: clean also garbage and zypper cache (bnc #467693) +- 1.2.18 + +------------------------------------------------------------------- +Fri Feb 19 12:01:39 CET 2010 - jkupec@suse.cz + +- Fixed broken --type (bnc #580571) + +------------------------------------------------------------------- +Wed Feb 10 16:01:15 CET 2010 - ma@suse.de + +- Fix 'zypper products' failing to list installed products under + certain conditions (bnc #578721) +- Fix SEGV if $HOME or $PWD are unset in the environment (bnc #578684) +- 1.2.17 + +------------------------------------------------------------------- Mon Feb 8 20:30:08 CET 2010 - jkupec@suse.cz - Replaced .po files in source tree by tarballs. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zypper-1.2.16/src/Zypper.cc new/zypper-1.2.19/src/Zypper.cc --- old/zypper-1.2.16/src/Zypper.cc 2010-02-08 21:26:37.000000000 +0100 +++ new/zypper-1.2.19/src/Zypper.cc 2010-02-22 17:23:33.000000000 +0100 @@ -698,9 +698,13 @@ string histfile; try { - Pathname p (getenv ("HOME")); - p /= ".zypper_history"; - histfile = p.asString (); + const char * env = getenv ("HOME"); + if ( env ) + { + Pathname p( env ); + p /= ".zypper_history"; + histfile = p.asString (); + } } catch (...) { // no history } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zypper-1.2.16/src/install.cc new/zypper-1.2.19/src/install.cc --- old/zypper-1.2.16/src/install.cc 2010-02-08 21:26:37.000000000 +0100 +++ new/zypper-1.2.19/src/install.cc 2010-02-22 17:23:33.000000000 +0100 @@ -637,6 +637,28 @@ // parse the rest of the string as standard zypp package specifier Capability parsedcap = Capability::guessPackageSpec(str); Capability namecap("", str, "", "", kind); + sat::Solvable::SplitIdent splid(parsedcap.detail().name()); + + // set the right kind (bnc #580571) + // prefer those specified in args + // if not in args, use the one from --type + if (zypper.cOpts().count("type") && splid.kind() != kind) + { + // kind specified in arg, too - just warn and let it be + if (parsedcap.detail().name().asString().find(':') != string::npos) + zypper.out().warning(str::form( + _("Different package type specified in '%s' option and '%s' argument. Will use the latter."), + "--type", str.c_str())); + // no kind specified in arg, use --type + else + parsedcap = Capability( + Arch(parsedcap.detail().arch()), + splid.name().asString(), + parsedcap.detail().op(), + parsedcap.detail().ed(), + kind); + } + MIL << "got '" << parsedcap << "'" << endl; // mark by name by force diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zypper-1.2.16/src/misc.cc new/zypper-1.2.19/src/misc.cc --- old/zypper-1.2.16/src/misc.cc 2010-02-08 21:26:37.000000000 +0100 +++ new/zypper-1.2.19/src/misc.cc 2010-02-22 17:23:33.000000000 +0100 @@ -132,6 +132,28 @@ if (it->status().isToBeInstalled() && !it->resolvable()->licenseToConfirm().empty()) { + ui::Selectable::Ptr selectable = + God->pool().proxy().lookup(it->resolvable()->kind(), it->resolvable()->name()); + + // this is an upgrade, check whether the license changed + // for now we only do dumb string comparison (bnc #394396) + if (selectable->hasInstalledObj()) + { + bool differ = false; + for_(inst, selectable->installedBegin(), selectable->installedEnd()) + if (inst->resolvable()->licenseToConfirm() != it->resolvable()->licenseToConfirm()) + { differ = true; break; } + + if (!differ) + { + DBG << "old and new license does not differ for " + << it->resolvable()->name() << endl; + continue; + } + DBG << "new license for " << it->resolvable()->name() + << " is different, needs confirmation " << endl; + } + if (license_auto_agree) { zypper.out().info(boost::str( diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zypper-1.2.16/src/repos.cc new/zypper-1.2.19/src/repos.cc --- old/zypper-1.2.16/src/repos.cc 2010-02-08 21:26:37.000000000 +0100 +++ new/zypper-1.2.19/src/repos.cc 2010-02-22 17:23:33.000000000 +0100 @@ -1309,6 +1309,19 @@ } } + if (zypper.arguments().empty() && copts.find("all") != copts.end()) + { + // clean up garbage + // this could also be done with a special option or on each 'clean' + // regardless of the options used ... + manager.cleanCacheDirGarbage(); + + // clean zypper's cache + // this could also be done with a special option + filesystem::recursive_rmdir( + Pathname(zypper.globalOpts().root_dir) / ZYPPER_RPM_CACHE_DIR); + } + if (error_count >= enabled_repo_count) { zypper.out().error(_("Could not clean the repositories because of errors.")); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zypper-1.2.16/src/search.cc new/zypper-1.2.19/src/search.cc --- old/zypper-1.2.16/src/search.cc 2010-02-08 21:26:37.000000000 +0100 +++ new/zypper-1.2.19/src/search.cc 2010-02-22 17:23:33.000000000 +0100 @@ -551,6 +551,26 @@ cout << "</product-list>" << endl; } +// common product_table_row data +static void add_product_table_row( Zypper & zypper, TableRow & tr, const Product::constPtr & product ) +{ + // repository + if (!zypper.globalOpts().is_rug_compatible) + tr << product->repoInfo().name(); + // name + tr << product->name () << product->edition().asString(); + if (zypper.globalOpts().is_rug_compatible) + // rug 'Category' + tr << (product->isTargetDistribution() ? "base" : ""); + else + { + // architecture + tr << product->arch().asString(); + // is base + tr << (product->isTargetDistribution() ? _("Yes") : _("No")); + } +} + static void list_product_table(Zypper & zypper) { MIL << "Going to list packages." << std::endl; @@ -589,27 +609,33 @@ if (!s->installedEmpty()) installed = s->installedObj(); + bool missedInstalled = installed; // if no available hits, we need to print it + // show available objects for_(it, s->availableBegin(), s->availableEnd()) { Product::constPtr product = asKind<Product>(it->resolvable()); TableRow tr; zypp::PoolItem pi = *it; - string repo = product->repoInfo().name(); if (installed) { - if (notinst_only) - continue; if (equalNVRA(*installed.resolvable(), *pi.resolvable())) { + if (notinst_only) + continue; tr << "i"; // this is needed, other isTargetDistribution would not return // true for the installed base product product = asKind<Product>(installed); + missedInstalled = false; } else + { + if (installed_only) + continue; tr << "v"; + } } else { @@ -617,21 +643,19 @@ continue; tr << ""; } - // repository - if (!zypper.globalOpts().is_rug_compatible) - tr << repo; - // name - tr << product->name () << product->edition().asString(); - if (zypper.globalOpts().is_rug_compatible) - // rug 'Category' - tr << (product->isTargetDistribution() ? "base" : ""); - else - { - // architecture - tr << product->arch().asString(); - // is base - tr << (product->isTargetDistribution() ? _("Yes") : _("No")); - } + add_product_table_row( zypper, tr, product ); + tbl << tr; + } + + if ( missedInstalled ) // no available hit, we need to print it + { + // show installed product in ablence of an available one: + if (notinst_only) + continue; + + TableRow tr; + tr << "i"; + add_product_table_row( zypper, tr, installed->asKind<Product>() ); tbl << tr; } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zypper-1.2.16/src/utils/Augeas.cc new/zypper-1.2.19/src/utils/Augeas.cc --- old/zypper-1.2.16/src/utils/Augeas.cc 2010-02-08 21:26:37.000000000 +0100 +++ new/zypper-1.2.19/src/utils/Augeas.cc 2010-02-22 17:23:33.000000000 +0100 @@ -35,7 +35,8 @@ want_custom = true; if (filepath.relative()) { - string wd = ::getenv("PWD"); + const char * env = ::getenv("PWD"); + string wd = env ? env : "."; filepath = wd / filepath; } @@ -44,7 +45,9 @@ } else { - _homedir = ::getenv("HOME"); + const char * env = ::getenv("HOME"); + if ( env ) + _homedir = env; if (_homedir.empty()) WAR << "Cannot figure out user's home directory. Skipping user's config." << endl; else diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zypper-1.2.16/zypper.spec.cmake new/zypper-1.2.19/zypper.spec.cmake --- old/zypper-1.2.16/zypper.spec.cmake 2010-02-08 21:26:37.000000000 +0100 +++ new/zypper-1.2.19/zypper.spec.cmake 2010-02-22 17:23:33.000000000 +0100 @@ -11,7 +11,7 @@ # norootforbuild Name: @PACKAGE@ -BuildRequires: libzypp-devel >= 6.28.0 boost-devel >= 1.33.1 gettext-devel >= 0.15 +BuildRequires: libzypp-devel >= 6.30.0 boost-devel >= 1.33.1 gettext-devel >= 0.15 BuildRequires: readline-devel >= 5.1 augeas-devel >= 0.5.0 BuildRequires: gcc-c++ >= 4.1 cmake >= 2.4.6 Requires: procps ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org