Hello community,
here is the log from the commit of package zypper
checked in at Fri Sep 12 02:02:12 CEST 2008.
--------
--- zypper/zypper.changes 2008-09-10 13:43:34.000000000 +0200
+++ /mounts/work_src_done/STABLE/zypper/zypper.changes 2008-09-10 18:35:03.083504000 +0200
@@ -1,0 +2,6 @@
+Wed Sep 10 17:57:09 CEST 2008 - jkupec@suse.cz
+
+- services --with-repos added (also XML)
+- r11006
+
+-------------------------------------------------------------------
Old:
----
zypper-0.12.3.tar.bz2
New:
----
zypper-0.12.4.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ zypper.spec ++++++
--- /var/tmp/diff_new_pack.x25763/_old 2008-09-12 02:02:07.000000000 +0200
+++ /var/tmp/diff_new_pack.x25763/_new 2008-09-12 02:02:07.000000000 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package zypper (Version 0.12.3)
+# spec file for package zypper (Version 0.12.4)
#
# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
@@ -19,7 +19,7 @@
Name: zypper
-BuildRequires: boost-devel >= 1.33.1 gettext-devel >= 0.15 libzypp-devel >= 5.8.0 readline-devel >= 5.1
+BuildRequires: boost-devel >= 1.33.1 gettext-devel >= 0.15 libzypp-devel >= 5.9.0 readline-devel >= 5.1
BuildRequires: cmake >= 2.4.6 gcc-c++ >= 4.1
Requires: procps
Recommends: logrotate cron
@@ -29,9 +29,9 @@
AutoReqProv: on
PreReq: permissions
Summary: Command Line Package Management Using Libzypp
-Version: 0.12.3
+Version: 0.12.4
Release: 1
-Source: zypper-0.12.3.tar.bz2
+Source: zypper-0.12.4.tar.bz2
Prefix: /usr
Url: http://en.opensuse.org/Zypper
Provides: y2pmsh
@@ -113,6 +113,9 @@
# it from being erased by rpm -e
%ghost %config(noreplace) %{_var}/log/zypper.log
%changelog
+* Wed Sep 10 2008 jkupec@suse.cz
+- services --with-repos added (also XML)
+- r11006
* Tue Sep 09 2008 jkupec@suse.cz
- adapted to new installed status handling of products
- r10974
++++++ zypper-0.12.3.tar.bz2 -> zypper-0.12.4.tar.bz2 ++++++
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/zypper-0.12.3/package/zypper.changes new/zypper-0.12.4/package/zypper.changes
--- old/zypper-0.12.3/package/zypper.changes 2008-09-10 13:43:33.000000000 +0200
+++ new/zypper-0.12.4/package/zypper.changes 2008-09-10 18:21:14.000000000 +0200
@@ -1,4 +1,10 @@
-------------------------------------------------------------------
+Wed Sep 10 17:57:09 CEST 2008 - jkupec@suse.cz
+
+- services --with-repos added (also XML)
+- r11006
+
+-------------------------------------------------------------------
Tue Sep 9 16:29:03 CEST 2008 - jkupec@suse.cz
- adapted to new installed status handling of products
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/zypper-0.12.3/src/repos.cc new/zypper-0.12.4/src/repos.cc
--- old/zypper-0.12.3/src/repos.cc 2008-09-10 13:43:33.000000000 +0200
+++ new/zypper-0.12.4/src/repos.cc 2008-09-10 18:21:14.000000000 +0200
@@ -17,6 +17,7 @@
#include "zypp/base/Logger.h"
#include "zypp/base/IOStream.h"
#include "zypp/base/String.h"
+#include "zypp/base/Flags.h"
#include "zypp/RepoManager.h"
#include "zypp/repo/RepoException.h"
@@ -1907,17 +1908,121 @@
}
}
+// ---------------------------------------------------------------------------
+
+struct RepoCollector
+{
+ bool collect( const RepoInfo &repo )
+ {
+ repos.push_back(repo);
+ return true;
+ }
+
+ RepoInfoList repos;
+};
+
+// ---------------------------------------------------------------------------
+
+enum ServiceListFlagsBits
+{
+ SF_SHOW_ALL = 7,
+ SF_SHOW_URI = 1,
+ SF_SHOW_PRIO = 1 << 1,
+ SF_SHOW_WITH_REPOS = 1 << 2,
+ SF_SERVICE_REPO = 1 << 15
+};
+
+ZYPP_DECLARE_FLAGS(ServiceListFlags,ServiceListFlagsBits);
+ZYPP_DECLARE_OPERATORS_FOR_FLAGS(ServiceListFlags);
+
+static void service_list_tr(
+ Zypper & zypper,
+ Table & tbl,
+ const RepoInfoBase_Ptr & srv,
+ unsigned int reponumber,
+ const ServiceListFlags & flags)
+{
+ ServiceInfo_Ptr service;
+ RepoInfo_Ptr repo;
+
+ TableRow tr(8);
+
+ // number
+ if (flags & SF_SERVICE_REPO)
+ tr << "";
+ else
+ tr << str::numstring (reponumber);
+
+ // alias
+ tr << srv->alias();
+ // name
+ tr << srv->name();
+ // enabled?
+ tr << (srv->enabled() ? _("Yes") : _("No"));
+ // autorefresh?
+ tr << (srv->autorefresh() ? _("Yes") : _("No"));
+
+ service = dynamic_pointer_cast<ServiceInfo>(srv);
+ if (!service)
+ repo = dynamic_pointer_cast<RepoInfo>(srv);
+
+ // priority
+ if (flags & SF_SHOW_PRIO)
+ {
+ if (service)
+ tr << "";
+ else
+ tr << str::numstring (repo->priority());
+ }
+
+ // type
+ if (service)
+ tr << "ris";
+ else
+ tr << repo->type().asString();
+
+ // url
+ if (flags & SF_SHOW_URI)
+ {
+ if (service)
+ tr << service->url().asString();
+ else
+ tr << repo->baseUrlsBegin()->asString();
+ }
+
+ tbl << tr;
+}
+
+// ---------------------------------------------------------------------------
+
static void print_service_list(Zypper & zypper,
const list & services)
{
Table tbl;
- bool all = zypper.cOpts().count("details");
- bool showuri = zypper.cOpts().count("uri") || zypper.cOpts().count("url") || zypper.cOpts().count("sort-by-uri");
- bool showprio = zypper.cOpts().count("priority") || zypper.cOpts().count("sort-by-priority");
+
+ // flags
+
+ ServiceListFlags flags(0);
+ if (zypper.cOpts().count("details"))
+ flags |= SF_SHOW_ALL;
+ else
+ {
+ if (zypper.cOpts().count("uri")
+ || zypper.cOpts().count("url")
+ || zypper.cOpts().count("sort-by-uri"))
+ flags |= SF_SHOW_URI;
+ if (zypper.cOpts().count("priority")
+ || zypper.cOpts().count("sort-by-priority"))
+ flags |= SF_SHOW_PRIO;
+ }
+
+ bool with_repos = zypper.cOpts().count("with-repos");
+ //! \todo string type = zypper.cOpts().count("type");
// header
TableHeader th;
- // fixed 'zypper repos' columns
+
+ // fixed 'zypper services' columns
th << "#"
<< _("Alias")
<< _("Name")
@@ -1925,68 +2030,43 @@
// translators: 'zypper repos' column - whether autorefresh is enabled for the repository
<< _("Refresh");
// optional columns
- if (all || showprio)
+ if (flags & SF_SHOW_PRIO)
// translators: repository priority (in zypper repos -p or -d)
th << _("Priority");
- if (all)
- th << _("Type");
- if (all || showuri)
+ th << _("Type");
+ if (flags & SF_SHOW_URI)
th << _("URI");
tbl << th;
int i = 1;
- ServiceInfo_Ptr service;
- RepoInfo_Ptr repo;
for (list::const_iterator it = services.begin();
it != services.end(); ++it)
{
- RepoInfoBase_Ptr base = *it;
+ service_list_tr(zypper, tbl, *it, i, flags);
- TableRow tr(all ? 8 : showprio || showuri ? 7 : 6);
+ // print also repos belonging to the service
+ if (with_repos && dynamic_pointer_cast<ServiceInfo>(*it))
+ {
+ // indicate we repos of the current service
+ flags |= SF_SERVICE_REPO;
- // number
- tr << str::numstring (i);
- // alias
- tr << base->alias();
- // name
- tr << base->name();
- // enabled?
- tr << (base->enabled() ? _("Yes") : _("No"));
- // autorefresh?
- tr << (base->autorefresh() ? _("Yes") : _("No"));
+ RepoCollector collector;
+ RepoManager rm(zypper.globalOpts().rm_options);
- service = dynamic_pointer_cast<ServiceInfo>(base);
- if (!service)
- repo = dynamic_pointer_cast<RepoInfo>(base);
+ rm.getRepositoriesInService((*it)->alias(),
+ boost::make_function_output_iterator(
+ bind(&RepoCollector::collect, &collector, _1)));
- // priority
- if (all || showprio)
- {
- if (service)
- tr << "";
- else
- tr << str::numstring (repo->priority());
- }
- // type
- if (all)
- {
- if (service)
- tr << "NU"; //! \todo check
- else
- tr << repo->type().asString();
- }
- // url
- if (all || showuri)
- {
- if (service)
- tr << service->url().asString();
- else
- tr << repo->baseUrlsBegin()->asString();
+ for_(repoit, collector.repos.begin(), collector.repos.end())
+ {
+ RepoInfoBase_Ptr ptr(new RepoInfo(*repoit));
+ service_list_tr(zypper, tbl, ptr, i, flags);
+ }
+ flags &= ~SF_SERVICE_REPO;
}
- tbl << tr;
- i++;
+ ++i;
}
if (tbl.empty())
@@ -1998,23 +2078,12 @@
// sort
if (zypper.cOpts().count("sort-by-uri"))
{
- cout << "will sort by uri: ";
- if (all)
- {
+ if ((flags & SF_SHOW_ALL) == SF_SHOW_ALL)
+ tbl.sort(7);
+ else if (flags & SF_SHOW_PRIO)
tbl.sort(7);
- cout << 7;
- }
- else if (showprio)
- {
- tbl.sort(6);
- cout << 6;
- }
else
- {
- tbl.sort(5);
- cout << 5;
- }
- cout << endl;
+ tbl.sort(6);
}
else if (zypper.cOpts().count("sort-by-alias"))
tbl.sort(1);
@@ -2033,11 +2102,33 @@
static void print_xml_service_list(Zypper & zypper,
const list & services)
{
+ //string type =
+
cout << "<service-list>" << endl;
+
+ ServiceInfo_Ptr s_ptr;
for (list::const_iterator it = services.begin();
it != services.end(); ++it)
+ {
+ s_ptr = dynamic_pointer_cast<ServiceInfo>(*it);
+ // print also service's repos
+ if (s_ptr)
+ {
+ RepoCollector collector;
+ RepoManager rm(zypper.globalOpts().rm_options);
+ rm.getRepositoriesInService((*it)->alias(),
+ boost::make_function_output_iterator(
+ bind(&RepoCollector::collect, &collector, _1)));
+ ostringstream sout;
+ for_(repoit, collector.repos.begin(), collector.repos.end())
+ repoit->dumpAsXMLOn(sout);
+ (*it)->dumpAsXMLOn(cout, sout.str());
+ continue;
+ }
+
(*it)->dumpAsXMLOn(cout);
+ }
cout << "</service-list>" << endl;
}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/zypper-0.12.3/src/Zypper.cc new/zypper-0.12.4/src/Zypper.cc
--- old/zypper-0.12.3/src/Zypper.cc 2008-09-10 13:43:33.000000000 +0200
+++ new/zypper-0.12.4/src/Zypper.cc 2008-09-10 18:21:14.000000000 +0200
@@ -1031,13 +1031,18 @@
case ZypperCommand::LIST_SERVICES_e:
{
- static struct option options[] = {
+ static struct option options[] =
+ {
{"help", no_argument, 0, 'h'},
{"uri", no_argument, 0, 'u'},
{"url", no_argument, 0, 'u'},
+ {"priority", no_argument, 0, 'p'},
{"details", no_argument, 0, 'd'},
+// {"type", required_argument, 0, 't'},
+ {"with-repos", no_argument, 0, 'r'},
{"sort-by-uri", no_argument, 0, 'U'},
{"sort-by-name", no_argument, 0, 'N'},
+ {"sort-by-priority", no_argument, 0, 'P'},
{0, 0, 0, 0}
};
specific_options = options;
@@ -1048,7 +1053,11 @@
"\n"
" Command options:\n"
"-u, --uri Show also base URI of repositories.\n"
+ "-p, --priority Show also repository priority.\n"
"-d, --details Show more information like URI, priority, type.\n"
+// "-t, --type List only services of specified type.\n"
+ "-r, --with-repos Show also repositories belonging to the services.\n"
+ "-P, --sort-by-priority Sort the list by repository priority.\n"
"-U, --sort-by-uri Sort the list by URI.\n"
"-N, --sort-by-name Sort the list by name.\n"
);
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/zypper-0.12.3/test/test-cases/refresh-services new/zypper-0.12.4/test/test-cases/refresh-services
--- old/zypper-0.12.3/test/test-cases/refresh-services 2008-09-10 13:43:33.000000000 +0200
+++ new/zypper-0.12.4/test/test-cases/refresh-services 1970-01-01 01:00:00.000000000 +0100
@@ -1,8 +0,0 @@
-- when refreshing a service
- - if url is empty
- -
-
-- zypper refs
- Refresh all services (meaning also repos which don't belong to any service),
- don't refresh services' repos.
-
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/zypper-0.12.3/VERSION.cmake new/zypper-0.12.4/VERSION.cmake
--- old/zypper-0.12.3/VERSION.cmake 2008-09-10 13:43:33.000000000 +0200
+++ new/zypper-0.12.4/VERSION.cmake 2008-09-10 18:21:14.000000000 +0200
@@ -31,7 +31,7 @@
#
SET(VERSION_MAJOR "0")
SET(VERSION_MINOR "12")
-SET(VERSION_PATCH "3")
+SET(VERSION_PATCH "4")
# LAST RELEASED: 0.12.3
#=======
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/zypper-0.12.3/zypper.spec.cmake new/zypper-0.12.4/zypper.spec.cmake
--- old/zypper-0.12.3/zypper.spec.cmake 2008-09-10 13:43:33.000000000 +0200
+++ new/zypper-0.12.4/zypper.spec.cmake 2008-09-10 18:21:14.000000000 +0200
@@ -11,7 +11,7 @@
# norootforbuild
Name: @PACKAGE@
-BuildRequires: libzypp-devel >= 5.8.0 boost-devel >= 1.33.1 gettext-devel >= 0.15 readline-devel >= 5.1
+BuildRequires: libzypp-devel >= 5.9.0 boost-devel >= 1.33.1 gettext-devel >= 0.15 readline-devel >= 5.1
BuildRequires: gcc-c++ >= 4.1 cmake >= 2.4.6
Requires: procps
Recommends: logrotate cron
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
---------------------------------------------------------------------
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org