openSUSE Commits
Threads by month
- ----- 2024 -----
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
April 2016
- 1 participants
- 1255 discussions
Hello community,
here is the log from the commit of package crmsh for openSUSE:Factory checked in at 2016-04-28 16:55:33
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/crmsh (Old)
and /work/SRC/openSUSE:Factory/.crmsh.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "crmsh"
Changes:
--------
--- /work/SRC/openSUSE:Factory/crmsh/crmsh.changes 2016-04-01 13:03:11.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.crmsh.new/crmsh.changes 2016-04-28 16:59:01.000000000 +0200
@@ -1,0 +2,35 @@
+Thu Apr 21 13:46:53 UTC 2016 - kgronlund(a)suse.com
+
+- Update to version 2.2.0+git.1461246131.bf3c265:
+ + medium: scripts: Add vmware to data manifest (fate#318320)
+ + medium: ui_node: Fix crash in node fence command (bsc#974902)
+ + low: scripts: Preserve formatting in description for vmware wizard
+ + low: scripts: Better description for sbd
+
+-------------------------------------------------------------------
+Tue Apr 19 16:46:59 UTC 2016 - kgronlund(a)suse.com
+
+- Update to version 2.2.0+git.1461083981.dab79a4:
+ + high: scripts: VMware fencing using vCenter (fate#318320)
+
+-------------------------------------------------------------------
+Tue Apr 19 07:53:28 UTC 2016 - kgronlund(a)suse.com
+
+- Update to version 2.2.0+git.1461051741.724349d:
+ + low: cibconfig: Don't mix up CLI name with XML tag
+ + low: constants: Add missing reload operation to parser
+ + low: corosync: Recycle node IDs when possible
+ + low: parse: Don't validate operation name in parser (bsc#975357)
+ + low: scripts: Only print debug output locally unless there were remote actions
+ + low: scripts: Fix watchdog test in sbd-device (fate#318320)
+ + low: scripts: Shouldn't set -e here (fate#318320)
+
+- Remove bug-974902_crm-node-fence.patch
+
+-------------------------------------------------------------------
+Fri Apr 15 13:22:44 UTC 2016 - ygao(a)suse.com
+
+- medium: ui_node: Fix "crm node fence" (bsc#974902)
+ - bug-974902_crm-node-fence.patch
+
+-------------------------------------------------------------------
Old:
----
crmsh-2.2.0+git.1459359704.8d9b910.tar.bz2
New:
----
crmsh-2.2.0+git.1461246131.bf3c265.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ crmsh.spec ++++++
--- /var/tmp/diff_new_pack.6Qf33r/_old 2016-04-28 16:59:03.000000000 +0200
+++ /var/tmp/diff_new_pack.6Qf33r/_new 2016-04-28 16:59:03.000000000 +0200
@@ -32,13 +32,13 @@
%{!?python_sitelib: %define python_sitelib %(python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")}
-%define version_unconverted 2.2.0+git.1459359704.8d9b910
+%define version_unconverted 2.2.0+git.1461246131.bf3c265
Name: crmsh
Summary: High Availability cluster command-line interface
License: GPL-2.0+
Group: %{pkg_group}
-Version: 2.2.0+git.1459359704.8d9b910
+Version: 2.2.0+git.1461246131.bf3c265
Release: 0
Url: http://crmsh.github.io
Source0: %{name}-%{version}.tar.bz2
++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.6Qf33r/_old 2016-04-28 16:59:03.000000000 +0200
+++ /var/tmp/diff_new_pack.6Qf33r/_new 2016-04-28 16:59:03.000000000 +0200
@@ -1,4 +1,4 @@
<servicedata>
<service name="tar_scm">
<param name="url">git://github.com/ClusterLabs/crmsh.git</param>
- <param name="changesrevision">8d9b910e4a11cf8f8148b5f97e35602bc71bde03</param></service></servicedata>
\ No newline at end of file
+ <param name="changesrevision">bf3c265508ce63bf1eb9c873534c29cfa488420d</param></service></servicedata>
\ No newline at end of file
++++++ crmsh-2.2.0+git.1459359704.8d9b910.tar.bz2 -> crmsh-2.2.0+git.1461246131.bf3c265.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh-2.2.0+git.1459359704.8d9b910/contrib/git-hook-pre-commit new/crmsh-2.2.0+git.1461246131.bf3c265/contrib/git-hook-pre-commit
--- old/crmsh-2.2.0+git.1459359704.8d9b910/contrib/git-hook-pre-commit 1970-01-01 01:00:00.000000000 +0100
+++ new/crmsh-2.2.0+git.1461246131.bf3c265/contrib/git-hook-pre-commit 2016-04-21 15:46:53.000000000 +0200
@@ -0,0 +1,14 @@
+#!/bin/sh
+#
+# An example hook script to verify what is about to be committed.
+# Called by "git commit" with no arguments. The hook should
+# exit with non-zero status after issuing an appropriate message if
+# it wants to stop the commit.
+#
+# To enable this hook, rename this file to "pre-commit".
+
+root="$(git rev-parse --show-toplevel)"
+[ -d "$root" ] || exit 1
+
+./update-data-manifest.sh
+git add ./data-manifest
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh-2.2.0+git.1459359704.8d9b910/crmsh/cibconfig.py new/crmsh-2.2.0+git.1461246131.bf3c265/crmsh/cibconfig.py
--- old/crmsh-2.2.0+git.1459359704.8d9b910/crmsh/cibconfig.py 2016-03-31 08:00:48.000000000 +0200
+++ new/crmsh-2.2.0+git.1461246131.bf3c265/crmsh/cibconfig.py 2016-04-21 15:46:53.000000000 +0200
@@ -437,7 +437,7 @@
'''
pass
- def __check_unique_clash(self, set_obj_all):
+ def _check_unique_clash(self, set_obj_all):
'Check whether resource parameters with attribute "unique" clash'
def process_primitive(prim, clash_dict):
'''
@@ -492,7 +492,7 @@
'''
Test objects for sanity. This is about semantics.
'''
- rc = self.__check_unique_clash(set_obj_all)
+ rc = self._check_unique_clash(set_obj_all)
for obj in sorted(self.obj_set, key=lambda x: x.obj_id):
rc |= obj.check_sanity()
return rc
@@ -1148,7 +1148,7 @@
def find_child_in_node(self, child):
for c in self.node.iterchildren():
- if c.tag == child.obj_type and \
+ if c.tag == child.node.tag and \
c.get("id") == child.obj_id:
return c
return None
@@ -3144,7 +3144,7 @@
if child.parent and child.parent.obj_id != obj_id:
common_err("%s already in use at %s" % (child_id, child.parent.obj_id))
return False
- if child.obj_type not in constants.children_tags:
+ if child.node.tag not in constants.children_tags:
common_err("%s may contain a primitive or a group; %s is %s" %
(parent_tag, child_id, child.obj_type))
return False
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh-2.2.0+git.1459359704.8d9b910/crmsh/constants.py new/crmsh-2.2.0+git.1461246131.bf3c265/crmsh/constants.py
--- old/crmsh-2.2.0+git.1459359704.8d9b910/crmsh/constants.py 2016-03-31 08:00:48.000000000 +0200
+++ new/crmsh-2.2.0+git.1461246131.bf3c265/crmsh/constants.py 2016-04-21 15:46:53.000000000 +0200
@@ -114,9 +114,10 @@
"migrate_from",
"promote",
"demote",
- "notify")
-ra_operations = ("probe", "monitor", "start", "stop",
- "promote", "demote", "notify", "migrate_to", "migrate_from")
+ "notify",
+ "reload")
+ra_operations = tuple(["probe"] + list(op_cli_names))
+
subpfx_list = {
"instance_attributes": "instance_attributes",
"meta_attributes": "meta_attributes",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh-2.2.0+git.1459359704.8d9b910/crmsh/corosync.py new/crmsh-2.2.0+git.1461246131.bf3c265/crmsh/corosync.py
--- old/crmsh-2.2.0+git.1459359704.8d9b910/crmsh/corosync.py 2016-03-31 08:00:48.000000000 +0200
+++ new/crmsh-2.2.0+git.1461246131.bf3c265/crmsh/corosync.py 2016-04-21 15:46:53.000000000 +0200
@@ -327,11 +327,16 @@
utils.remote_diff(local_path, nodes)
-def next_nodeid(parser):
+def get_free_nodeid(parser):
ids = parser.get_all('nodelist.node.nodeid')
if not ids:
return 1
- return max([int(i) for i in ids]) + 1
+ ids = [int(i) for i in ids]
+ max_id = max(ids) + 1
+ for i in xrange(1, max_id):
+ if i not in ids:
+ return i
+ return max_id
def get_ip(node):
@@ -399,7 +404,7 @@
p = Parser(f)
node_addr = addr
- node_id = next_nodeid(p)
+ node_id = get_free_nodeid(p)
node_name = name
node_value = (make_value('nodelist.node.ring0_addr', node_addr) +
make_value('nodelist.node.nodeid', str(node_id)))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh-2.2.0+git.1459359704.8d9b910/crmsh/logparser.py new/crmsh-2.2.0+git.1461246131.bf3c265/crmsh/logparser.py
--- old/crmsh-2.2.0+git.1459359704.8d9b910/crmsh/logparser.py 2016-03-31 08:00:48.000000000 +0200
+++ new/crmsh-2.2.0+git.1461246131.bf3c265/crmsh/logparser.py 2016-04-21 15:46:53.000000000 +0200
@@ -167,18 +167,18 @@
"""
old_pe_l_file = prev.path()
new_pe_l_file = self.path()
+ no_actions = self.actions_count() == 0
if not os.path.isfile(old_pe_l_file) or not os.path.isfile(new_pe_l_file):
- return self.actions_count() == 0
- num_actions = self.actions_count()
+ return no_actions
old_cib = xmlutil.compressed_file_to_cib(old_pe_l_file)
new_cib = xmlutil.compressed_file_to_cib(new_pe_l_file)
if old_cib is None or new_cib is None:
- return num_actions == 0
+ return no_actions
prev_epoch = old_cib.attrib.get("epoch", "0")
epoch = new_cib.attrib.get("epoch", "0")
prev_admin_epoch = old_cib.attrib.get("admin_epoch", "0")
admin_epoch = new_cib.attrib.get("admin_epoch", "0")
- return num_actions == 0 and epoch == prev_epoch and admin_epoch == prev_admin_epoch
+ return no_actions and epoch == prev_epoch and admin_epoch == prev_admin_epoch
def transition_info(self):
print "Transition %s (%s -" % (self, utils.shorttime(self.start_ts)),
@@ -196,8 +196,8 @@
Serialize to dict (for cache)
"""
o = {"tags": list(self.tags)}
- for k in dir(self):
- if k.startswith('__') or k in ("loc", "tags") or hasattr(getattr(self, k), '__call__'):
+ for k in self.__slots__:
+ if k in ("loc", "tags"):
continue
o[k] = getattr(self, k)
return o
@@ -206,10 +206,7 @@
def from_dict(cls, loc, obj):
t = Transition(loc, None, None, None, None, None)
for k, v in obj.iteritems():
- if k == "tags":
- setattr(t, k, set(v))
- else:
- setattr(t, k, v)
+ setattr(t, k, set(v) if k == "tags" else v)
return t
@@ -280,7 +277,6 @@
self.events = {}
self.transitions = []
- self.transitions_map = {}
self.from_ts = None
self.to_ts = None
@@ -329,8 +325,9 @@
self.events = collections.defaultdict(list)
self.transitions = []
+
# trans_num:pe_num -> Transition()
- self.transitions_map = {}
+ transitions_map = {}
startre = _transition_start_re()
endre = _transition_end_re()
@@ -367,11 +364,11 @@
if ts is None or dc is None:
continue
id_ = trans_str(dc, pe_file)
- transition = self.transitions_map.get(id_)
+ transition = transitions_map.get(id_)
if transition is None:
transition = Transition(self.loc, dc, ts, trans_num, pe_file, pe_num)
self.transitions.append(transition)
- self.transitions_map[id_] = transition
+ transitions_map[id_] = transition
crmlog.common_debug("{Transition: %s" % (transition))
if not os.path.isfile(transition.path()):
@@ -389,7 +386,7 @@
ts, dc = logtime.syslog_ts_node(line)
if ts is None or dc is None:
continue
- transition = self.transitions_map.get(trans_str(dc, pe_file))
+ transition = transitions_map.get(trans_str(dc, pe_file))
if transition is None:
# transition end without previous begin...
crmlog.common_debug("Found transition end without start: %s: %s - %s:%s" % (ts, filename, trans_num, pe_file))
@@ -429,8 +426,6 @@
if t.empty(self.transitions[i - 1]):
empties.append(t)
self.transitions = [t for t in self.transitions if t not in empties]
- for e in empties:
- del self.transitions_map[trans_str(e.dc, e.pe_file)]
self._save_cache()
if missing_pefiles:
rdict = collections.defaultdict(list)
@@ -595,9 +590,6 @@
return False
self.events = obj["events"]
self.transitions = [Transition.from_dict(self.loc, t) for t in obj["transitions"]]
- self.transitions_map = {}
- for t in self.transitions:
- self.transitions_map[trans_str(t.dc, t.pe_file)] = t
return True
def _metafile(self):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh-2.2.0+git.1459359704.8d9b910/crmsh/orderedset.py new/crmsh-2.2.0+git.1461246131.bf3c265/crmsh/orderedset.py
--- old/crmsh-2.2.0+git.1459359704.8d9b910/crmsh/orderedset.py 2016-03-31 08:00:48.000000000 +0200
+++ new/crmsh-2.2.0+git.1461246131.bf3c265/crmsh/orderedset.py 2016-04-21 15:46:53.000000000 +0200
@@ -67,8 +67,8 @@
yield curr[KEY]
curr = curr[PREV]
- def pop(self, last=True):
- # changed default to last=False - by default, treat as queue.
+ def pop(self):
+ last = True
if not self:
raise KeyError('set is empty')
key = next(reversed(self)) if last else next(iter(self))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh-2.2.0+git.1459359704.8d9b910/crmsh/parse.py new/crmsh-2.2.0+git.1461246131.bf3c265/crmsh/parse.py
--- old/crmsh-2.2.0+git.1459359704.8d9b910/crmsh/parse.py 2016-03-31 08:00:48.000000000 +0200
+++ new/crmsh-2.2.0+git.1461246131.bf3c265/crmsh/parse.py 2016-04-21 15:46:53.000000000 +0200
@@ -37,7 +37,6 @@
_UNAME_RE = re.compile(r'([^:]+)(:(normal|member|ping|remote))?$', re.IGNORECASE)
_TEMPLATE_RE = re.compile(r'@(.+)$')
_RA_TYPE_RE = re.compile(r'[a-z0-9_:-]+$', re.IGNORECASE)
-_OPTYPE_RE = re.compile(r'(%s)$' % ('|'.join(constants.op_cli_names)), re.IGNORECASE)
_TAG_RE = re.compile(r"([a-zA-Z_][^\s:]*):?$")
_ROLE2_RE = re.compile(r"role=(.+)$", re.IGNORECASE)
_TARGET_RE = re.compile(r'([\w=-]+):$')
@@ -138,12 +137,13 @@
"Called by do_parse(). Raises ParseError if parsing fails."
raise NotImplementedError
- def err(self, errmsg):
+ def err(self, msg, context=None, token=None):
"Report a parse error and abort."
- token = None
- if self.has_tokens():
+ if token is None and self.has_tokens():
token = self._cmd[self._currtok]
- syntax_err(self._cmd, context=self._cmd[0], token=token, msg=errmsg)
+ if context is None:
+ context = self._cmd[0]
+ syntax_err(self._cmd, context=context, token=token, msg=msg)
raise ParseError
def begin(self, cmd, min_args=-1):
@@ -694,7 +694,7 @@
</op>
"""
self.match('op')
- op_type = self.match(_OPTYPE_RE, errmsg="Expected operation type")
+ op_type = self.match_identifier()
all_attrs = self.match_nvpairs(minpairs=0)
node = xmlutil.new('op', name=op_type)
if not any(nvp.get('name') == 'interval' for nvp in all_attrs):
@@ -1452,11 +1452,7 @@
return l
def err(self, errmsg, token=''):
- syntax_err(self.parent._cmd,
- context=self.q_attr,
- token=token,
- msg=errmsg)
- raise ParseError
+ self.parent.err(msg=errmsg, context=self.q_attr, token=token)
def update_attrs(self, bracket, tokpos):
if bracket in ('(', '['):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh-2.2.0+git.1459359704.8d9b910/crmsh/scripts.py new/crmsh-2.2.0+git.1461246131.bf3c265/crmsh/scripts.py
--- old/crmsh-2.2.0+git.1459359704.8d9b910/crmsh/scripts.py 2016-03-31 08:00:48.000000000 +0200
+++ new/crmsh-2.2.0+git.1461246131.bf3c265/crmsh/scripts.py 2016-04-21 15:46:53.000000000 +0200
@@ -1117,13 +1117,14 @@
def _print_debug(printer, local_node, hosts, workdir, opts):
"Print debug output (if any)"
dbglog = os.path.join(workdir, 'crm_script.debug')
- for host, result in _parallax_call(printer, hosts,
- "if [ -f '%s' ]; then cat '%s'; fi" % (dbglog, dbglog),
- opts).iteritems():
- if isinstance(result, parallax.Error):
- printer.error(host, result)
- else:
- printer.output(host, *result)
+ if hosts:
+ for host, result in _parallax_call(printer, hosts,
+ "if [ -f '%s' ]; then cat '%s'; fi" % (dbglog, dbglog),
+ opts).iteritems():
+ if isinstance(result, parallax.Error):
+ printer.error(host, result)
+ else:
+ printer.output(host, *result)
if os.path.isfile(dbglog):
f = open(dbglog).read()
printer.output(local_node, 0, f, '')
@@ -2082,8 +2083,10 @@
if not dry_run:
if not config.core.debug:
_run_cleanup(printer, has_remote_actions, local_node, hosts, workdir, opts)
- else:
+ elif has_remote_actions:
_print_debug(printer, local_node, hosts, workdir, opts)
+ else:
+ _print_debug(printer, local_node, None, workdir, opts)
def _remove_empty_lines(txt):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh-2.2.0+git.1459359704.8d9b910/crmsh/ui_node.py new/crmsh-2.2.0+git.1461246131.bf3c265/crmsh/ui_node.py
--- old/crmsh-2.2.0+git.1459359704.8d9b910/crmsh/ui_node.py 2016-03-31 08:00:48.000000000 +0200
+++ new/crmsh-2.2.0+git.1461246131.bf3c265/crmsh/ui_node.py 2016-04-21 15:46:53.000000000 +0200
@@ -213,9 +213,9 @@
if not utils.is_name_sane(node):
return False
if not config.core.force and \
- not utils.ask("Fencing %s will shut down the node and migrate any resources that are running on it! Do you want to fence %s?" % node):
+ not utils.ask("Fencing %s will shut down the node and migrate any resources that are running on it! Do you want to fence %s?" % (node, node)):
return False
- if utils.is_remote_node(node):
+ if xmlutil.is_remote_node(node):
return utils.ext_cmd("stonith_admin -F '%s'" % (node)) == 0
else:
return utils.ext_cmd(self.node_fence % (node)) == 0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh-2.2.0+git.1459359704.8d9b910/data-manifest new/crmsh-2.2.0+git.1461246131.bf3c265/data-manifest
--- old/crmsh-2.2.0+git.1459359704.8d9b910/data-manifest 2016-03-31 08:00:48.000000000 +0200
+++ new/crmsh-2.2.0+git.1461246131.bf3c265/data-manifest 2016-04-21 15:46:53.000000000 +0200
@@ -50,6 +50,7 @@
scripts/sbd-device/main.yml
scripts/sbd/main.yml
scripts/virtual-ip/main.yml
+scripts/vmware/main.yml
templates/apache
templates/clvm
templates/filesystem
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh-2.2.0+git.1459359704.8d9b910/scripts/sbd/main.yml new/crmsh-2.2.0+git.1461246131.bf3c265/scripts/sbd/main.yml
--- old/crmsh-2.2.0+git.1459359704.8d9b910/scripts/sbd/main.yml 2016-03-31 08:00:48.000000000 +0200
+++ new/crmsh-2.2.0+git.1461246131.bf3c265/scripts/sbd/main.yml 2016-04-21 15:46:53.000000000 +0200
@@ -9,9 +9,11 @@
Create a SBD STONITH resource. SBD must be configured to use
a particular shared storage device using /etc/sysconfig/sbd.
- There is quite a bit more to do to make this SBD operational.
- See http://www.linux-ha.org/wiki/SBD_Fencing for information, or
- the sbd(8) manual page.
+ This wizard can optionally create and configure a SBD device.
+ A shared device must be available and visible on all nodes.
+
+ For more information, see http://www.linux-ha.org/wiki/SBD_Fencing
+ or the sbd(8) manual page.
parameters:
- name: id
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh-2.2.0+git.1459359704.8d9b910/scripts/sbd-device/main.yml new/crmsh-2.2.0+git.1461246131.bf3c265/scripts/sbd-device/main.yml
--- old/crmsh-2.2.0+git.1459359704.8d9b910/scripts/sbd-device/main.yml 2016-03-31 08:00:48.000000000 +0200
+++ new/crmsh-2.2.0+git.1461246131.bf3c265/scripts/sbd-device/main.yml 2016-04-21 15:46:53.000000000 +0200
@@ -32,15 +32,15 @@
systemctl is-active --quiet sbd && { echo "ERROR: SBD daemon is already running"; exit 1; } || true
test -b "{{device}}" || { echo "ERROR: Not a device: {{device}"; exit 1; }
lsmod | egrep "(wd|dog)" || { echo "ERROR: No watchdog kernel module loaded"; exit 1; }
- test -b "{{watchdog}}" || { echo "ERROR: Not a device: {{watchdog}}"; exit 1; }
+ test -c "{{watchdog}}" || { echo "ERROR: Not a device: {{watchdog}}"; exit 1; }
- shortdesc: Initialize the SBD device
sudo: true
nodes: local
call: |
#!/bin/sh
- set -e
- sbd -d "{{device}}" create
+ sbd dump &> /dev/null || sbd -d "{{device}}" create
+ # sbd allocate "$(uname -n)" # FIXME
- shortdesc: Verify SBD Device
call: |
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh-2.2.0+git.1459359704.8d9b910/scripts/vmware/main.yml new/crmsh-2.2.0+git.1461246131.bf3c265/scripts/vmware/main.yml
--- old/crmsh-2.2.0+git.1459359704.8d9b910/scripts/vmware/main.yml 1970-01-01 01:00:00.000000000 +0100
+++ new/crmsh-2.2.0+git.1461246131.bf3c265/scripts/vmware/main.yml 2016-04-21 15:46:53.000000000 +0200
@@ -0,0 +1,56 @@
+# Copyright (C) 2016 Kristoffer Gronlund
+#
+# License: GNU General Public License (GPL)
+version: 2.2
+category: Stonith
+shortdesc: VMWare vCenter / ESX Server Fencing
+longdesc: |
+ Fencing for VMware virtualized hosts using ESX Server or vCenter.
+
+ This wizard configures a fencing resource for a single node.
+ You will need to run the wizard for each node to fence.
+
+ Prerequisites
+
+ 1. Install the vSphere Web Services SDK on all nodes.
+
+ 2. Generate vCenter credentials using credstore_admin.pl
+
+ 3. Copy credentials to the same location on all nodes.
+
+parameters:
+ - name: id
+ type: resource
+ shortdesc: Base Resource ID
+ value: vcenter-fencing
+ required: true
+ - name: node_name
+ type: string
+ shortdesc: Name of node to fence
+ required: true
+ - name: machine_name
+ type: string
+ shortdesc: Name of machine in vCenter inventory
+ required: true
+ - name: server
+ type: string
+ shortdesc: VCenter server URL
+ required: true
+ example: vcenter.example.com
+ - name: credstore
+ type: string
+ shortdesc: Credentials file name
+ required: true
+
+actions:
+ - cib: |
+ primitive {{id}}-{{node_name}} stonith:external/vcenter
+ VI_SERVER="{{server}}"
+ VI_CREDSTORE="{{credstore}}"
+ HOSTLIST="{{node_name}}={{machine_name}}"
+ RESETPOWERON="0"
+ pcmk_host_check="static-list"
+ pcmk_host_list="{{node_name}}"
+ op monitor interval="60s"
+ location loc-{{id}}-{{node_name}} {{id}}-{{node_name}} -inf: {{node_name}}
+ property stonith-enabled=true
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/crmsh-2.2.0+git.1459359704.8d9b910/test/unittests/test_corosync.py new/crmsh-2.2.0+git.1461246131.bf3c265/test/unittests/test_corosync.py
--- old/crmsh-2.2.0+git.1459359704.8d9b910/test/unittests/test_corosync.py 2016-03-31 08:00:48.000000000 +0200
+++ new/crmsh-2.2.0+git.1461246131.bf3c265/test/unittests/test_corosync.py 2016-04-21 15:46:53.000000000 +0200
@@ -67,7 +67,7 @@
p.add('nodelist',
make_section('nodelist.node',
make_value('nodelist.node.ring0_addr', '10.10.10.10') +
- make_value('nodelist.node.nodeid', str(corosync.next_nodeid(p)))))
+ make_value('nodelist.node.nodeid', str(corosync.get_free_nodeid(p)))))
_valid(p)
self.assertEqual(p.count('nodelist.node'), 6)
self.assertEqual(p.get_all('nodelist.node.nodeid'),
@@ -75,11 +75,11 @@
def test_add_node_no_nodelist(self):
"test checks that if there is no nodelist, no node is added"
- from crmsh.corosync import make_section, make_value, next_nodeid
+ from crmsh.corosync import make_section, make_value, get_free_nodeid
p = Parser(F1)
_valid(p)
- nid = next_nodeid(p)
+ nid = get_free_nodeid(p)
self.assertEqual(p.count('nodelist.node'), nid - 1)
p.add('nodelist',
make_section('nodelist.node',
@@ -89,11 +89,11 @@
self.assertEqual(p.count('nodelist.node'), nid - 1)
def test_add_node_nodelist(self):
- from crmsh.corosync import make_section, make_value, next_nodeid
+ from crmsh.corosync import make_section, make_value, get_free_nodeid
p = Parser(F2)
_valid(p)
- nid = next_nodeid(p)
+ nid = get_free_nodeid(p)
c = p.count('nodelist.node')
p.add('nodelist',
make_section('nodelist.node',
@@ -101,7 +101,7 @@
make_value('nodelist.node.nodeid', str(nid))))
_valid(p)
self.assertEqual(p.count('nodelist.node'), c + 1)
- self.assertEqual(next_nodeid(p), nid + 1)
+ self.assertEqual(get_free_nodeid(p), nid + 1)
def test_remove_node(self):
p = Parser(F2)
@@ -118,5 +118,15 @@
_valid(p)
self.assertEqual(p.count('service.ver'), 1)
+ def test_get_free_nodeid(self):
+ def ids(*lst):
+ class Ids(object):
+ def get_all(self, _arg):
+ return lst
+ return Ids()
+ self.assertEqual(1, corosync.get_free_nodeid(ids('2', '5')))
+ self.assertEqual(3, corosync.get_free_nodeid(ids('1', '2', '5')))
+ self.assertEqual(4, corosync.get_free_nodeid(ids('1', '2', '3')))
+
if __name__ == '__main__':
unittest.main()
1
0
Hello community,
here is the log from the commit of package python-stevedore for openSUSE:Factory checked in at 2016-04-28 16:55:29
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-stevedore (Old)
and /work/SRC/openSUSE:Factory/.python-stevedore.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-stevedore"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-stevedore/python-stevedore.changes 2016-03-16 10:35:30.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.python-stevedore.new/python-stevedore.changes 2016-04-28 16:58:55.000000000 +0200
@@ -1,0 +2,25 @@
+Thu Apr 21 07:07:35 UTC 2016 - tbechtold(a)suse.com
+
+- update to 1.12.0:
+ * Add a reference to entry_point_inspector
+ * Updated from global requirements
+ * Trival:Remove unused logging import
+ * Remove work around for NullHandler
+ * remove unnecessary dependency on argparse
+ * Use Stevedore exceptions for finding extensions
+ * Clean up Python 2.6 related stuff
+ * Updated from global requirements
+ * Remove Python 2.6 classifier
+ * cleanup tox.ini
+ * Updated from global requirements
+ * docs - Set pbr 'warnerrors' option for doc build
+ * Add clarifying language to description of scanning for plugins
+ * clean up default tox environment list
+ * Show how to add a plugin in a separate package
+ * replace the hard-coded history list with an auto-generated one
+ * Fix spelling typo for maunal
+ * Updated from global requirements
+ * Examples typo fix
+- Enable tests during build
+
+-------------------------------------------------------------------
Old:
----
stevedore-1.8.0.tar.gz
New:
----
stevedore-1.12.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-stevedore.spec ++++++
--- /var/tmp/diff_new_pack.ISkVdJ/_old 2016-04-28 16:58:58.000000000 +0200
+++ /var/tmp/diff_new_pack.ISkVdJ/_new 2016-04-28 16:58:58.000000000 +0200
@@ -17,7 +17,7 @@
Name: python-stevedore
-Version: 1.8.0
+Version: 1.12.0
Release: 0
Summary: Manage dynamic plugins for Python applications
License: Apache-2.0
@@ -32,8 +32,10 @@
BuildRequires: python-Sphinx
BuildRequires: python-oslosphinx
# Test requirements:
-#BuildRequires: python-mock
-#BuildRequires: python-nose
+BuildRequires: python-Pillow
+BuildRequires: python-mock
+BuildRequires: python-oslotest
+BuildRequires: python-testrepository
Requires: python-argparse
Requires: python-six >= 1.9.0
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@@ -60,8 +62,8 @@
%install
python setup.py install --prefix=%{_prefix} --root=%{buildroot}
-#%%check
-#nosetests
+%check
+python setup.py testr
%files
%defattr(-,root,root,-)
++++++ stevedore-1.8.0.tar.gz -> stevedore-1.12.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stevedore-1.8.0/.travis.yml new/stevedore-1.12.0/.travis.yml
--- old/stevedore-1.8.0/.travis.yml 2015-09-08 18:02:37.000000000 +0200
+++ new/stevedore-1.12.0/.travis.yml 2016-02-25 07:07:57.000000000 +0100
@@ -1,6 +1,5 @@
language: python
python:
- - "2.6"
- "2.7"
- "3.2"
- "3.3"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stevedore-1.8.0/AUTHORS new/stevedore-1.12.0/AUTHORS
--- old/stevedore-1.8.0/AUTHORS 2015-09-08 18:03:12.000000000 +0200
+++ new/stevedore-1.12.0/AUTHORS 2016-02-25 07:08:18.000000000 +0100
@@ -1,20 +1,27 @@
Abhishek Chanda <abhishek(a)cloudscaling.com>
+ChangBo Guo(gcb) <eric.guo(a)easystack.cn>
Chris Yeoh <cyeoh(a)au1.ibm.com>
+Cleber Rosa <cleber.gnu(a)gmail.com>
Daniel Rocco <drocco(a)thebrightlink.com>
Davanum Srinivas <davanum(a)gmail.com>
Dirk Mueller <dirk(a)dmllr.de>
Doug Hellmann <doug.hellmann(a)dreamhost.com>
Doug Hellmann <doug.hellmann(a)gmail.com>
Doug Hellmann <doug(a)doughellmann.com>
+Jamie Lennox <jamielennox(a)gmail.com>
Jeremy Stanley <fungi(a)yuggoth.org>
Joshua Harlow <harlowja(a)gmail.com>
Joshua Harlow <harlowja(a)yahoo-inc.com>
Julien Danjou <julien(a)danjou.info>
Louis Taylor <louis(a)kragniz.eu>
+Marc Koderer <marc(a)koderer.com>
Philip Tzou <philip.npc(a)gmail.com>
+Ricardo Kirkner <ricardo(a)kirkner.com.ar>
Ryan Petrello <lists(a)ryanpetrello.com>
Thomas Goirand <zigo(a)debian.org>
Wes Turner <wes.turner(a)gmail.com>
+Zhao Lei <zhaolei(a)cn.fujitsu.com>
+caoyue <yue.cao(a)easystack.cn>
markmcclain <mark(a)four-m.org>
shuangtai <shuangtai.tian(a)intel.com>
Łukasz Jernaś <lukasz.jernas(a)allegrogroup.com>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stevedore-1.8.0/ChangeLog new/stevedore-1.12.0/ChangeLog
--- old/stevedore-1.8.0/ChangeLog 2015-09-08 18:03:12.000000000 +0200
+++ new/stevedore-1.12.0/ChangeLog 2016-02-25 07:08:18.000000000 +0100
@@ -1,6 +1,41 @@
CHANGES
=======
+1.12.0
+------
+
+* Add a reference to entry_point_inspector
+
+1.11.0
+------
+
+* Updated from global requirements
+* Trival:Remove unused logging import
+* Remove work around for NullHandler
+* remove unnecessary dependency on argparse
+
+1.10.0
+------
+
+* Use Stevedore exceptions for finding extensions
+* Clean up Python 2.6 related stuff
+* Updated from global requirements
+* Remove Python 2.6 classifier
+* cleanup tox.ini
+
+1.9.0
+-----
+
+* Updated from global requirements
+* docs - Set pbr 'warnerrors' option for doc build
+* Add clarifying language to description of scanning for plugins
+* clean up default tox environment list
+* Show how to add a plugin in a separate package
+* replace the hard-coded history list with an auto-generated one
+* Fix spelling typo for maunal
+* Updated from global requirements
+* Examples typo fix
+
1.8.0
-----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stevedore-1.8.0/PKG-INFO new/stevedore-1.12.0/PKG-INFO
--- old/stevedore-1.8.0/PKG-INFO 2015-09-08 18:03:12.000000000 +0200
+++ new/stevedore-1.12.0/PKG-INFO 2016-02-25 07:08:18.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: stevedore
-Version: 1.8.0
+Version: 1.12.0
Summary: Manage dynamic plugins for Python applications
Home-page: http://docs.openstack.org/developer/stevedore/
Author: OpenStack
@@ -41,7 +41,6 @@
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
-Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.4
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stevedore-1.8.0/doc/source/history.rst new/stevedore-1.12.0/doc/source/history.rst
--- old/stevedore-1.8.0/doc/source/history.rst 2015-09-08 18:02:37.000000000 +0200
+++ new/stevedore-1.12.0/doc/source/history.rst 2016-02-25 07:07:57.000000000 +0100
@@ -1,116 +1 @@
-=========
- History
-=========
-
-0.14
-
-- Provide an option to control requirements checking when loading
- plugins, and disable it by default. This removes protection against
- loading the wrong version of a plugin, or that plugin's
- dependencies.
-
-0.13
-
-- Deprecate ``TestExtensionManager`` and replace with
- ``make_test_instance()`` class method to provide test classes that
- behave more like the production class, while still allowing the
- extensions to be injected for testing. (contributed by drocco-007)
-- Include a work-around to avoid a cpython bug with atexit
- (#15881). (contributed by philiptzou)
-- Update documentation to refer to setuptools instead of
- distribute. (contributed by westurner)
-- Add pypy to the list of default test configurations.
-
-0.12
-
-- Fixes an exception when reporting on an error where multiple drivers
- have the same name (:issue:`25`, solution provided by clayg).
-- Switch packaging to use pbr_.
-- Add ``map_method()`` API to controllers.
-
-.. _pbr: https://github.com/openstack-dev/pbr
-
-0.11
-
-- Fixes logging configuration under Python 2.6 with a NullHandler.
- (:issue:`2`)
-
-0.10
-
-- Adds ``propagate_map_exceptions`` parameter to all of the extension
- managers which specifies whether exceptions are propagated up
- through the map call or logged and then ignored. The default is to
- preserve the current behavior of logging and ignoring exceptions.
- Christopher Yeoh <cyeoh(a)au1.ibm.com>
-
-0.9
-
-- Add ``name_order`` parameter to
- :class:`~stevedore.named.NamedExtensionManager` to coerce
- :func:`map` into processing the extensions in the order they are
- named when the manager is created, instead of the random order
- they may have been loaded. Contributed by Daniel Rocco.
-- Change the
- :class:`~stevedore.dispatch.NamedDispatchExtensionManager` to ignore
- missing extensions (:issue:`14`).
-- Add ``__getitem__`` to
- :class:`~stevedore.extension.ExtensionManager` for looking up
- individual plugins by name (:issue:`15`).
-- Start working on the tutorial, :doc:`tutorial/index`.
-- Remove dependency on distribute, now that it is merged back into
- setuptools 0.7 (:issue:`19`).
-
-0.8
-
- - Ignore AssertionError exceptions generated when plugins are
- loaded.
- - Update :class:`~stevedore.named.NamedExtensionManager` to check
- the name of a plugin before loading its code to avoid importing
- anything we are not going to use.
-
-0.7.2
-
- - Fix logging support for Python 2.6.
-
-0.7.1
-
- - Fix an issue with logging configuration.
-
-0.7
-
- - Add memoization to the entrypoint scanning code in
- :class:`~stevedore.extension.ExtensionManager` to avoid
- performance issues in situations where lots of managers are
- instantiated with the same namespace argument.
-
-0.6
-
- - Change the :class:`~stevedore.enabled.EnabledExtensionManager` to
- load the extension before calling the check function so the plugin
- can be asked if it should be enabled.
-
-0.5
-
- - Add :class:`~stevedore.tests.manager.TestExtensionManager` for
- writing tests for classes that use extension managers.
-
-0.4
-
- - Removed the ``name`` argument to plugin constructors.
- - Added ``driver`` property to :class:`~stevedore.driver.DriverManager`.
-
-0.3
-
- - Added dispatch managers for selecting among a set of plugins at
- runtime instead of load time.
- - Added ``__call__`` method to
- :class:`~stevedore.driver.DriverManager` so it can be invoked in a
- more natural fashion for a single plugin.
-
-0.2
-
- - Added documentation
-
-0.1
-
- - First public release
+.. include:: ../../ChangeLog
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stevedore-1.8.0/doc/source/index.rst new/stevedore-1.12.0/doc/source/index.rst
--- old/stevedore-1.8.0/doc/source/index.rst 2015-09-08 18:02:37.000000000 +0200
+++ new/stevedore-1.12.0/doc/source/index.rst 2016-02-25 07:07:57.000000000 +0100
@@ -16,6 +16,7 @@
.. toctree::
:glob:
+ :maxdepth: 2
patterns_loading
patterns_enabling
@@ -24,6 +25,10 @@
sphinxext
install
essays/*
+
+.. toctree::
+ :maxdepth: 1
+
history
.. _setuptools entry points: http://packages.python.org/setuptools/pkg_resources.html#convenience-api
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stevedore-1.8.0/doc/source/install.rst new/stevedore-1.12.0/doc/source/install.rst
--- old/stevedore-1.8.0/doc/source/install.rst 2015-09-08 18:02:37.000000000 +0200
+++ new/stevedore-1.12.0/doc/source/install.rst 2016-02-25 07:07:57.000000000 +0100
@@ -5,7 +5,7 @@
Python Versions
===============
-stevedore is tested under Python 2.6, 2.7 and 3.4.
+stevedore is tested under Python 2.7 and 3.4.
.. _install-basic:
@@ -36,6 +36,12 @@
The source is hosted on the OpenStack infrastructure: https://git.openstack.org/cgit/openstack/stevedore/
+Entry point inspector
+=====================
+
+To list entrypoints and registered plugins this tool can be also very useful:
+https://pypi.python.org/pypi/entry_point_inspector
+
Reporting Bugs
==============
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stevedore-1.8.0/doc/source/patterns_loading.rst new/stevedore-1.12.0/doc/source/patterns_loading.rst
--- old/stevedore-1.8.0/doc/source/patterns_loading.rst 2015-09-08 18:02:37.000000000 +0200
+++ new/stevedore-1.12.0/doc/source/patterns_loading.rst 2016-02-25 07:07:57.000000000 +0100
@@ -53,7 +53,7 @@
=======================================
*Hooks*, *signals*, or *callbacks* are invoked based on an event
-occuring within an application. All of the hooks for an application
+occurring within an application. All of the hooks for an application
may share a single namespace (e.g., ``my.application.hooks``) and use
a different name for the triggered event (e.g., ``startup`` and
``precommit``). Multiple entry points can share the same name within
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stevedore-1.8.0/doc/source/tutorial/creating_plugins.rst new/stevedore-1.12.0/doc/source/tutorial/creating_plugins.rst
--- old/stevedore-1.8.0/doc/source/tutorial/creating_plugins.rst 2015-09-08 18:02:37.000000000 +0200
+++ new/stevedore-1.12.0/doc/source/tutorial/creating_plugins.rst 2016-02-25 07:07:57.000000000 +0100
@@ -54,15 +54,9 @@
:language: python
:prepend: # stevedore/example/simple.py
-An alternate implementation produces a reStructuredText `field list`_.
-
-.. literalinclude:: ../../../stevedore/example/fields.py
- :language: python
- :prepend: # stevedore/example/fields.py
-
-There are plenty of other formatting options, but these two examples
-will give us enough to work with to demonstrate registering and using
-pluins.
+There are plenty of other formatting options, but this example will
+give us enough to work with to demonstrate registering and using
+plugins.
Registering the Plugins
=======================
@@ -70,7 +64,7 @@
To use setuptools entry points, you must package your application or
library using setuptools. The build and packaging process generates
metadata which is available after installation to find the plugins
-provided by each python distribution.
+provided by each python distribution.
The entry points must be declared as belonging to a specific
namespace, so we need to pick one before going any further. These
@@ -94,9 +88,9 @@
:language: python
:lines: 37-43
-In this case, there are three plugins registered. The "simple" and
-"field" plugins defined above, and a "plain" plugin, which is just an
-alias for the simple plugin.
+In this case, there are two plugins registered. The "simple" plugin
+defined above, and a "plain" plugin, which is just an alias for the
+simple plugin.
setuptools Metadata
===================
@@ -123,3 +117,45 @@
.. _abc module: http://docs.python.org/2/library/abc.html
.. _field list: http://docutils.sourceforge.net/docs/ref/rst/restructuredtext.html#field-li…
+
+Adding Plugins in Other Packages
+================================
+
+Part of the appeal of using entry points for plugins is that they can
+be distributed independently of an application. The namespace
+setuptools uses to find the plugins is different from the Python
+source code namespace. It is common to use a plugin namespace prefixed
+with the name of the application or library that loads the plugins, to
+ensure it is unique, but that name has no bearing on what Python
+package the code for the plugin should live in.
+
+For example, we can add an alternate implementation of a formatter
+plugin that produces a reStructuredText `field list`_.
+
+.. literalinclude:: ../../../stevedore/example2/fields.py
+ :language: python
+ :prepend: # stevedore/example2/fields.py
+
+The new plugin can then be packaged using a ``setup.py`` containing
+
+.. literalinclude:: ../../../stevedore/example2/setup.py
+ :language: python
+ :prepend: # stevedore/example2/setup.py
+
+The new plugin is in a separate ``stevedore-examples2`` package.
+
+.. literalinclude:: ../../../stevedore/example2/setup.py
+ :language: python
+ :lines: 3-4
+
+However, the plugin is registered as part of the
+``stevedore.example.formatter`` namespace.
+
+.. literalinclude:: ../../../stevedore/example2/setup.py
+ :language: python
+ :lines: 36-40
+
+When the plugin namespace is scanned, all packages on the current
+``PYTHONPATH`` are examined and the entry point from the second
+package is found and can be loaded without the application having to
+know where the plugin is actually installed.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stevedore-1.8.0/requirements.txt new/stevedore-1.12.0/requirements.txt
--- old/stevedore-1.8.0/requirements.txt 2015-09-08 18:02:37.000000000 +0200
+++ new/stevedore-1.12.0/requirements.txt 2016-02-25 07:07:57.000000000 +0100
@@ -2,6 +2,5 @@
# of appearance. Changing the order has an impact on the overall integration
# process, which may cause wedges in the gate later.
-pbr<2.0,>=1.6
-argparse
-six>=1.9.0
+pbr>=1.6 # Apache-2.0
+six>=1.9.0 # MIT
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stevedore-1.8.0/setup.cfg new/stevedore-1.12.0/setup.cfg
--- old/stevedore-1.8.0/setup.cfg 2015-09-08 18:03:12.000000000 +0200
+++ new/stevedore-1.12.0/setup.cfg 2016-02-25 07:08:18.000000000 +0100
@@ -10,7 +10,6 @@
License :: OSI Approved :: Apache Software License
Programming Language :: Python
Programming Language :: Python :: 2
- Programming Language :: Python :: 2.6
Programming Language :: Python :: 2.7
Programming Language :: Python :: 3
Programming Language :: Python :: 3.4
@@ -41,11 +40,14 @@
build-dir = doc/build
source-dir = doc/source
+[pbr]
+warnerrors = True
+
[wheel]
universal = true
[egg_info]
-tag_svn_revision = 0
-tag_date = 0
tag_build =
+tag_date = 0
+tag_svn_revision = 0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stevedore-1.8.0/setup.py new/stevedore-1.12.0/setup.py
--- old/stevedore-1.8.0/setup.py 2015-09-08 18:02:37.000000000 +0200
+++ new/stevedore-1.12.0/setup.py 2016-02-25 07:07:57.000000000 +0100
@@ -25,5 +25,5 @@
pass
setuptools.setup(
- setup_requires=['pbr>=1.3'],
+ setup_requires=['pbr>=1.8'],
pbr=True)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stevedore-1.8.0/stevedore/__init__.py new/stevedore-1.12.0/stevedore/__init__.py
--- old/stevedore-1.8.0/stevedore/__init__.py 2015-09-08 18:02:37.000000000 +0200
+++ new/stevedore-1.12.0/stevedore/__init__.py 2016-02-25 07:07:57.000000000 +0100
@@ -20,17 +20,5 @@
# the app we're used from does not set up logging.
LOG = logging.getLogger('stevedore')
-if hasattr(logging, 'NullHandler'):
- LOG.addHandler(logging.NullHandler())
-else:
- class NullHandler(logging.Handler):
- def handle(self, record):
- pass
+LOG.addHandler(logging.NullHandler())
- def emit(self, record):
- pass
-
- def createLock(self):
- self.lock = None
-
- LOG.addHandler(NullHandler())
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stevedore-1.8.0/stevedore/dispatch.py new/stevedore-1.12.0/stevedore/dispatch.py
--- old/stevedore-1.8.0/stevedore/dispatch.py 2015-09-08 18:02:37.000000000 +0200
+++ new/stevedore-1.12.0/stevedore/dispatch.py 2016-02-25 07:07:57.000000000 +0100
@@ -1,6 +1,7 @@
import logging
from .enabled import EnabledExtensionManager
+from .exception import NoMatches
LOG = logging.getLogger(__name__)
@@ -66,7 +67,7 @@
"""
if not self.extensions:
# FIXME: Use a more specific exception class here.
- raise RuntimeError('No %s extensions found' % self.namespace)
+ raise NoMatches('No %s extensions found' % self.namespace)
response = []
for e in self.extensions:
if filter_func(e, *args, **kwds):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stevedore-1.8.0/stevedore/driver.py new/stevedore-1.12.0/stevedore/driver.py
--- old/stevedore-1.8.0/stevedore/driver.py 2015-09-08 18:02:37.000000000 +0200
+++ new/stevedore-1.12.0/stevedore/driver.py 2016-02-25 07:07:57.000000000 +0100
@@ -1,3 +1,4 @@
+from .exception import NoMatches, MultipleMatches
from .named import NamedExtensionManager
@@ -93,14 +94,14 @@
if not self.extensions:
name = self._names[0]
- raise RuntimeError('No %r driver found, looking for %r' %
- (self.namespace, name))
+ raise NoMatches('No %r driver found, looking for %r' %
+ (self.namespace, name))
if len(self.extensions) > 1:
discovered_drivers = ','.join(e.entry_point_target
for e in self.extensions)
- raise RuntimeError('Multiple %r drivers found: %s' %
- (self.namespace, discovered_drivers))
+ raise MultipleMatches('Multiple %r drivers found: %s' %
+ (self.namespace, discovered_drivers))
def __call__(self, func, *args, **kwds):
"""Invokes func() for the single loaded extension.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stevedore-1.8.0/stevedore/example/base.py new/stevedore-1.12.0/stevedore/example/base.py
--- old/stevedore-1.8.0/stevedore/example/base.py 2015-09-08 18:02:37.000000000 +0200
+++ new/stevedore-1.12.0/stevedore/example/base.py 2016-02-25 07:07:57.000000000 +0100
@@ -5,7 +5,7 @@
@six.add_metaclass(abc.ABCMeta)
class FormatterBase(object):
- """Base class for example plugin used in the tutoral.
+ """Base class for example plugin used in the tutorial.
"""
def __init__(self, max_width=60):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stevedore-1.8.0/stevedore/example/fields.py new/stevedore-1.12.0/stevedore/example/fields.py
--- old/stevedore-1.8.0/stevedore/example/fields.py 2015-09-08 18:02:37.000000000 +0200
+++ new/stevedore-1.12.0/stevedore/example/fields.py 1970-01-01 01:00:00.000000000 +0100
@@ -1,36 +0,0 @@
-import textwrap
-
-from stevedore.example import base
-
-
-class FieldList(base.FormatterBase):
- """Format values as a reStructuredText field list.
-
- For example::
-
- : name1 : value
- : name2 : value
- : name3 : a long value
- will be wrapped with
- a hanging indent
- """
-
- def format(self, data):
- """Format the data and return unicode text.
-
- :param data: A dictionary with string keys and simple types as
- values.
- :type data: dict(str:?)
- """
- for name, value in sorted(data.items()):
- full_text = ': {name} : {value}'.format(
- name=name,
- value=value,
- )
- wrapped_text = textwrap.fill(
- full_text,
- initial_indent='',
- subsequent_indent=' ',
- width=self.max_width,
- )
- yield wrapped_text + '\n'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stevedore-1.8.0/stevedore/example/setup.py new/stevedore-1.12.0/stevedore/example/setup.py
--- old/stevedore-1.8.0/stevedore/example/setup.py 2015-09-08 18:02:37.000000000 +0200
+++ new/stevedore-1.12.0/stevedore/example/setup.py 2016-02-25 07:07:57.000000000 +0100
@@ -7,16 +7,14 @@
description='Demonstration package for stevedore',
author='Doug Hellmann',
- author_email='doug.hellmann(a)dreamhost.com',
+ author_email='doug(a)doughellmann.com',
- url='https://github.com/dreamhost/stevedore',
- download_url='https://github.com/dreamhost/stevedore/tarball/master',
+ url='http://git.openstack.org/cgit/openstack/stevedore',
classifiers=['Development Status :: 3 - Alpha',
'License :: OSI Approved :: Apache Software License',
'Programming Language :: Python',
'Programming Language :: Python :: 2',
- 'Programming Language :: Python :: 2.6',
'Programming Language :: Python :: 2.7',
'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.4',
@@ -37,7 +35,6 @@
entry_points={
'stevedore.example.formatter': [
'simple = stevedore.example.simple:Simple',
- 'field = stevedore.example.fields:FieldList',
'plain = stevedore.example.simple:Simple',
],
},
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stevedore-1.8.0/stevedore/example2/fields.py new/stevedore-1.12.0/stevedore/example2/fields.py
--- old/stevedore-1.8.0/stevedore/example2/fields.py 1970-01-01 01:00:00.000000000 +0100
+++ new/stevedore-1.12.0/stevedore/example2/fields.py 2016-02-25 07:07:57.000000000 +0100
@@ -0,0 +1,36 @@
+import textwrap
+
+from stevedore.example import base
+
+
+class FieldList(base.FormatterBase):
+ """Format values as a reStructuredText field list.
+
+ For example::
+
+ : name1 : value
+ : name2 : value
+ : name3 : a long value
+ will be wrapped with
+ a hanging indent
+ """
+
+ def format(self, data):
+ """Format the data and return unicode text.
+
+ :param data: A dictionary with string keys and simple types as
+ values.
+ :type data: dict(str:?)
+ """
+ for name, value in sorted(data.items()):
+ full_text = ': {name} : {value}'.format(
+ name=name,
+ value=value,
+ )
+ wrapped_text = textwrap.fill(
+ full_text,
+ initial_indent='',
+ subsequent_indent=' ',
+ width=self.max_width,
+ )
+ yield wrapped_text + '\n'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stevedore-1.8.0/stevedore/example2/setup.py new/stevedore-1.12.0/stevedore/example2/setup.py
--- old/stevedore-1.8.0/stevedore/example2/setup.py 1970-01-01 01:00:00.000000000 +0100
+++ new/stevedore-1.12.0/stevedore/example2/setup.py 2016-02-25 07:07:57.000000000 +0100
@@ -0,0 +1,42 @@
+from setuptools import setup, find_packages
+
+setup(
+ name='stevedore-examples2',
+ version='1.0',
+
+ description='Demonstration package for stevedore',
+
+ author='Doug Hellmann',
+ author_email='doug(a)doughellmann.com',
+
+ url='http://git.openstack.org/cgit/openstack/stevedore',
+
+ classifiers=['Development Status :: 3 - Alpha',
+ 'License :: OSI Approved :: Apache Software License',
+ 'Programming Language :: Python',
+ 'Programming Language :: Python :: 2',
+ 'Programming Language :: Python :: 2.7',
+ 'Programming Language :: Python :: 3',
+ 'Programming Language :: Python :: 3.4',
+ 'Intended Audience :: Developers',
+ 'Environment :: Console',
+ ],
+
+ platforms=['Any'],
+
+ scripts=[],
+
+ provides=['stevedore.examples2',
+ ],
+
+ packages=find_packages(),
+ include_package_data=True,
+
+ entry_points={
+ 'stevedore.example.formatter': [
+ 'field = stevedore.example2.fields:FieldList',
+ ],
+ },
+
+ zip_safe=False,
+)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stevedore-1.8.0/stevedore/exception.py new/stevedore-1.12.0/stevedore/exception.py
--- old/stevedore-1.8.0/stevedore/exception.py 1970-01-01 01:00:00.000000000 +0100
+++ new/stevedore-1.12.0/stevedore/exception.py 2016-02-25 07:07:57.000000000 +0100
@@ -0,0 +1,10 @@
+class NoUniqueMatch(RuntimeError):
+ """There was more that one on no extensions matching the query."""
+
+
+class NoMatches(NoUniqueMatch):
+ """There were no extensions with the diver name found."""
+
+
+class MultipleMatches(NoUniqueMatch):
+ """There were multiple matches for the given name."""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stevedore-1.8.0/stevedore/extension.py new/stevedore-1.12.0/stevedore/extension.py
--- old/stevedore-1.8.0/stevedore/extension.py 2015-09-08 18:02:37.000000000 +0200
+++ new/stevedore-1.12.0/stevedore/extension.py 2016-02-25 07:07:57.000000000 +0100
@@ -5,6 +5,7 @@
import logging
+from .exception import NoMatches
LOG = logging.getLogger(__name__)
@@ -218,7 +219,7 @@
"""
if not self.extensions:
# FIXME: Use a more specific exception class here.
- raise RuntimeError('No %s extensions found' % self.namespace)
+ raise NoMatches('No %s extensions found' % self.namespace)
response = []
for e in self.extensions:
self._invoke_one_plugin(response.append, func, e, args, kwds)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stevedore-1.8.0/stevedore/tests/manager.py new/stevedore-1.12.0/stevedore/tests/manager.py
--- old/stevedore-1.8.0/stevedore/tests/manager.py 2015-09-08 18:02:37.000000000 +0200
+++ new/stevedore-1.12.0/stevedore/tests/manager.py 2016-02-25 07:07:57.000000000 +0100
@@ -3,15 +3,11 @@
Extension manager used only for testing.
"""
-import logging
import warnings
from stevedore import extension
-LOG = logging.getLogger(__name__)
-
-
class TestExtensionManager(extension.ExtensionManager):
"""ExtensionManager that is explicitly initialized for tests.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stevedore-1.8.0/stevedore/tests/test_driver.py new/stevedore-1.12.0/stevedore/tests/test_driver.py
--- old/stevedore-1.8.0/stevedore/tests/test_driver.py 2015-09-08 18:02:37.000000000 +0200
+++ new/stevedore-1.12.0/stevedore/tests/test_driver.py 2016-02-25 07:07:57.000000000 +0100
@@ -4,6 +4,7 @@
import pkg_resources
from stevedore import driver
+from stevedore import exception
from stevedore import extension
from stevedore.tests import test_extension
from stevedore.tests import utils
@@ -37,7 +38,7 @@
def test_no_drivers(self):
try:
driver.DriverManager('stevedore.test.extension.none', 't1')
- except RuntimeError as err:
+ except exception.NoMatches as err:
self.assertIn("No 'stevedore.test.extension.none' driver found",
str(err))
@@ -70,7 +71,7 @@
dm = driver.DriverManager.make_test_instance(extensions[0])
# Call the initialization code that verifies the extension
dm._init_plugins(extensions)
- except RuntimeError as err:
+ except exception.MultipleMatches as err:
self.assertIn("Multiple", str(err))
else:
self.fail('Should have had an error')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stevedore-1.8.0/stevedore/tests/test_example_fields.py new/stevedore-1.12.0/stevedore/tests/test_example_fields.py
--- old/stevedore-1.8.0/stevedore/tests/test_example_fields.py 2015-09-08 18:02:37.000000000 +0200
+++ new/stevedore-1.12.0/stevedore/tests/test_example_fields.py 2016-02-25 07:07:57.000000000 +0100
@@ -1,7 +1,7 @@
-"""Tests for stevedore.exmaple.fields
+"""Tests for stevedore.example2.fields
"""
-from stevedore.example import fields
+from stevedore.example2 import fields
from stevedore.tests import utils
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stevedore-1.8.0/stevedore/tests/test_example_simple.py new/stevedore-1.12.0/stevedore/tests/test_example_simple.py
--- old/stevedore-1.8.0/stevedore/tests/test_example_simple.py 2015-09-08 18:02:37.000000000 +0200
+++ new/stevedore-1.12.0/stevedore/tests/test_example_simple.py 2016-02-25 07:07:57.000000000 +0100
@@ -1,4 +1,4 @@
-"""Tests for stevedore.exmaple.simple
+"""Tests for stevedore.example.simple
"""
from stevedore.example import simple
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stevedore-1.8.0/stevedore/tests/test_extension.py new/stevedore-1.12.0/stevedore/tests/test_extension.py
--- old/stevedore-1.8.0/stevedore/tests/test_extension.py 2015-09-08 18:02:37.000000000 +0200
+++ new/stevedore-1.12.0/stevedore/tests/test_extension.py 2016-02-25 07:07:57.000000000 +0100
@@ -3,6 +3,7 @@
import mock
+from stevedore import exception
from stevedore import extension
from stevedore.tests import utils
@@ -159,7 +160,7 @@
)
try:
em.map(mapped, 1, 2, a='A', b='B')
- except RuntimeError as err:
+ except exception.NoMatches as err:
self.assertEqual(expected_str, str(err))
def test_map_method(self):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stevedore-1.8.0/stevedore.egg-info/PKG-INFO new/stevedore-1.12.0/stevedore.egg-info/PKG-INFO
--- old/stevedore-1.8.0/stevedore.egg-info/PKG-INFO 2015-09-08 18:03:12.000000000 +0200
+++ new/stevedore-1.12.0/stevedore.egg-info/PKG-INFO 2016-02-25 07:08:18.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: stevedore
-Version: 1.8.0
+Version: 1.12.0
Summary: Manage dynamic plugins for Python applications
Home-page: http://docs.openstack.org/developer/stevedore/
Author: OpenStack
@@ -41,7 +41,6 @@
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
-Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.4
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stevedore-1.8.0/stevedore.egg-info/SOURCES.txt new/stevedore-1.12.0/stevedore.egg-info/SOURCES.txt
--- old/stevedore-1.8.0/stevedore.egg-info/SOURCES.txt 2015-09-08 18:03:12.000000000 +0200
+++ new/stevedore-1.12.0/stevedore.egg-info/SOURCES.txt 2016-02-25 07:08:18.000000000 +0100
@@ -42,6 +42,7 @@
stevedore/dispatch.py
stevedore/driver.py
stevedore/enabled.py
+stevedore/exception.py
stevedore/extension.py
stevedore/hook.py
stevedore/named.py
@@ -56,11 +57,13 @@
stevedore.egg-info/top_level.txt
stevedore/example/__init__.py
stevedore/example/base.py
-stevedore/example/fields.py
stevedore/example/load_as_driver.py
stevedore/example/load_as_extension.py
stevedore/example/setup.py
stevedore/example/simple.py
+stevedore/example2/__init__.py
+stevedore/example2/fields.py
+stevedore/example2/setup.py
stevedore/tests/__init__.py
stevedore/tests/extension_unimportable.py
stevedore/tests/manager.py
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stevedore-1.8.0/stevedore.egg-info/pbr.json new/stevedore-1.12.0/stevedore.egg-info/pbr.json
--- old/stevedore-1.8.0/stevedore.egg-info/pbr.json 2015-09-08 18:03:12.000000000 +0200
+++ new/stevedore-1.12.0/stevedore.egg-info/pbr.json 2016-02-25 07:08:18.000000000 +0100
@@ -1 +1 @@
-{"git_version": "d229c84", "is_release": true}
\ No newline at end of file
+{"git_version": "8a19d5f", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stevedore-1.8.0/stevedore.egg-info/requires.txt new/stevedore-1.12.0/stevedore.egg-info/requires.txt
--- old/stevedore-1.8.0/stevedore.egg-info/requires.txt 2015-09-08 18:03:12.000000000 +0200
+++ new/stevedore-1.12.0/stevedore.egg-info/requires.txt 2016-02-25 07:08:18.000000000 +0100
@@ -1,3 +1,2 @@
-pbr<2.0,>=1.6
-argparse
+pbr>=1.6
six>=1.9.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stevedore-1.8.0/test-requirements.txt new/stevedore-1.12.0/test-requirements.txt
--- old/stevedore-1.8.0/test-requirements.txt 2015-09-08 18:02:37.000000000 +0200
+++ new/stevedore-1.12.0/test-requirements.txt 2016-02-25 07:07:57.000000000 +0100
@@ -2,11 +2,11 @@
# of appearance. Changing the order has an impact on the overall integration
# process, which may cause wedges in the gate later.
-Pillow>=2.4.0 # MIT
-sphinx!=1.2.0,!=1.3b1,<1.3,>=1.1.2
-mock>=1.2
-coverage>=3.6
-testrepository>=0.0.18
-discover
+Pillow>=2.4.0 # PIL License
+sphinx!=1.2.0,!=1.3b1,<1.3,>=1.1.2 # BSD
+mock>=1.2 # BSD
+coverage>=3.6 # Apache-2.0
+testrepository>=0.0.18 # Apache-2.0/BSD
+discover # BSD
oslotest>=1.10.0 # Apache-2.0
-oslosphinx>=2.5.0 # Apache-2.0
+oslosphinx!=3.4.0,>=2.5.0 # Apache-2.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stevedore-1.8.0/tox.ini new/stevedore-1.12.0/tox.ini
--- old/stevedore-1.8.0/tox.ini 2015-09-08 18:02:37.000000000 +0200
+++ new/stevedore-1.12.0/tox.ini 2016-02-25 07:07:57.000000000 +0100
@@ -1,12 +1,9 @@
[tox]
-envlist = py34,py26,py27,pypy,pep8,docs
+envlist = py34,py27,pep8,docs
[testenv]
deps =
- -r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
-# tox passes --pre to pip by default, but we don't want that
-install_command = pip install {opts} {packages}
distribute = False
commands = python setup.py testr --testr-args='{posargs}'
1
0
Hello community,
here is the log from the commit of package python-rtslib-fb for openSUSE:Factory checked in at 2016-04-28 16:55:27
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-rtslib-fb (Old)
and /work/SRC/openSUSE:Factory/.python-rtslib-fb.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-rtslib-fb"
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-rtslib-fb/python-rtslib-fb.changes 2015-05-16 19:02:05.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.python-rtslib-fb.new/python-rtslib-fb.changes 2016-04-28 16:58:52.000000000 +0200
@@ -1,0 +2,7 @@
+Wed Apr 20 16:17:30 UTC 2016 - lduncan(a)suse.com
+
+- Update to version 2.1.fb60
+ * no changelog available, but git log shows 59 changes,
+ some trivial
+
+-------------------------------------------------------------------
Old:
----
rtslib-fb-2.1.51.tar.gz
New:
----
rtslib-fb-2.1.fb60.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-rtslib-fb.spec ++++++
--- /var/tmp/diff_new_pack.GSvKip/_old 2016-04-28 16:58:55.000000000 +0200
+++ /var/tmp/diff_new_pack.GSvKip/_new 2016-04-28 16:58:55.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-rtslib-fb
#
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 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
@@ -16,42 +16,78 @@
#
-Name: python-rtslib-fb
-Version: 2.1.51
-Release: 0
+%define oname rtslib-fb
+%define realver 2.1.fb60
+
+Name: python-%{oname}
+Version: 2.1.60
+Release: 1%{?dist}
+Url: http://github.com/agrover/rtslib-fb
Summary: API for Linux kernel SCSI target (aka LIO)
License: Apache-2.0
Group: Development/Languages/Python
-Url: http://github.com/agrover/rtslib-fb
-Source: https://pypi.python.org/packages/source/r/rtslib-fb/rtslib-fb-%{version}.ta…
+Source: %{oname}-%{realver}.tar.gz
+Provides: python-rtslib = %{version}
+Obsoletes: python-rtslib < %{version}
+BuildRequires: fdupes
BuildRequires: python-devel
BuildRequires: python-setuptools
BuildRoot: %{_tmppath}/%{name}-%{version}-build
-%if 0%{?suse_version} && 0%{?suse_version} <= 1110
-%{!?python_sitelib: %global python_sitelib %(python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")}
-%else
BuildArch: noarch
-%endif
-# This is the "free branch" of rtslib, they share modules but have differnt code...
-Conflicts: python-rtslib
%description
rtslib-fb is an object-based Python library for configuring the LIO generic
SCSI target, present in 3.x Linux kernel versions. rtslib-fb is licensed under
the Apache 2.0 license. Contributions are welcome
+%package doc
+Summary: Documentatoin for Python rtslib-fb
+Group: Documentation/HTML
+BuildArch: noarch
+BuildRequires: epydoc
+BuildRequires: pyudev
+
+%description doc
+rtslib-fb is an object-based Python library for configuring the LIO generic
+SCSI target, present in 3.x Linux kernel versions. rtslib-fb is licensed under
+the Apache 2.0 license. Contributions are welcome
+
%prep
-%setup -q -n rtslib-fb-%{version}
+%setup -q -n %{oname}-%{realver}
%build
-python setup.py build
+%__python setup.py build
+%__mkdir_p doc/
+epydoc --no-sourcecode --html -n %{oname} --exclude configobj rtslib_fb/*.py
+%__mv html doc/
%install
-python setup.py install --prefix=%{_prefix} --root=%{buildroot}
+[ "%{buildroot}" != "/" ] && %__rm -rf %{buildroot}
+%__python setup.py install --skip-build --prefix=%{_prefix} --root=%{buildroot}
+%fdupes %{buildroot}%{python_sitelib}
+%__install -d -m755 %{buildroot}%{_defaultdocdir}/python-rtslib-doc-%{version}
+%__cp -r doc/* %{buildroot}%{_defaultdocdir}/python-rtslib-doc-%{version}/
+%fdupes %{buildroot}%{_defaultdocdir}
+%__install -d -m755 %{buildroot}%{_sysconfdir}/target
+%__install -d -m755 %{buildroot}%{_mandir}/man5
+%__install -m644 doc/saveconfig.json.5 %{buildroot}%{_mandir}/man5
+%__install -d -m755 %{buildroot}%{_mandir}/man8
+%__install -m644 doc/targetctl.8 %{buildroot}%{_mandir}/man8
+
+%clean
+[ "%{buildroot}" != "/" ] && %__rm -rf %{buildroot}
%files
%defattr(-,root,root,-)
-/usr/bin/targetctl
+%{_bindir}/targetctl
%{python_sitelib}/*
+%doc COPYING README.md
+%dir %{_sysconfdir}/target
+%doc %{_mandir}/man5/saveconfig.json.5.gz
+%doc %{_mandir}/man8/targetctl.8.gz
+
+%files doc
+%defattr(-,root,root,-)
+%{_defaultdocdir}/python-rtslib-doc-%{version}
%changelog
++++++ rtslib-fb-2.1.51.tar.gz -> rtslib-fb-2.1.fb60.tar.gz ++++++
++++ 2406 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package redis for openSUSE:Factory checked in at 2016-04-28 16:55:21
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/redis (Old)
and /work/SRC/openSUSE:Factory/.redis.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "redis"
Changes:
--------
--- /work/SRC/openSUSE:Factory/redis/redis.changes 2016-02-18 12:36:47.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.redis.new/redis.changes 2016-04-28 16:58:43.000000000 +0200
@@ -1,0 +2,5 @@
+Wed Apr 20 16:53:03 UTC 2016 - mamorales(a)suse.com
+
+- Fix installation example in README.SUSE
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ README.SUSE ++++++
--- /var/tmp/diff_new_pack.EzHI0T/_old 2016-04-28 16:58:47.000000000 +0200
+++ /var/tmp/diff_new_pack.EzHI0T/_new 2016-04-28 16:58:47.000000000 +0200
@@ -18,7 +18,7 @@
should be set to "no".
3. create the database dir:
-$ install -d -m redis -g redis -m 0750 /var/lib/redis/otherapp/
+$ install -d -o redis -g redis -m 0750 /var/lib/redis/otherapp/
4. systemctl start redis@otherapp
5. systemctl enable redis@otherapp
1
0
Hello community,
here is the log from the commit of package cppi for openSUSE:Factory checked in at 2016-04-28 16:55:20
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/cppi (Old)
and /work/SRC/openSUSE:Factory/.cppi.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "cppi"
Changes:
--------
--- /work/SRC/openSUSE:Factory/cppi/cppi.changes 2015-01-30 15:08:50.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.cppi.new/cppi.changes 2016-04-28 16:58:40.000000000 +0200
@@ -1,0 +2,6 @@
+Mon Mar 28 10:45:39 UTC 2016 - mpluskal(a)suse.com
+
+- Add gpg signature
+- Cleanup spec file with spec-cleaner
+
+-------------------------------------------------------------------
New:
----
cppi-1.18.tar.xz.sig
cppi.keyring
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ cppi.spec ++++++
--- /var/tmp/diff_new_pack.9aDfEV/_old 2016-04-28 16:58:43.000000000 +0200
+++ /var/tmp/diff_new_pack.9aDfEV/_new 2016-04-28 16:58:43.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package cppi
#
-# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 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
@@ -22,8 +22,11 @@
Summary: C preprocessor directive indenter
License: GPL-3.0+
Group: Development/Languages/C and C++
-Url: http://savannah.gnu.org/projects/cppi/
-Source0: http://ftp.gnu.org/gnu/cppi/cppi-%{version}.tar.xz
+Url: https://savannah.gnu.org/projects/cppi
+Source0: https://ftp.gnu.org/gnu/cppi/cppi-%{version}.tar.xz
+Source1: https://ftp.gnu.org/gnu/cppi/cppi-%{version}.tar.xz.sig
+Source2: %{name}.keyring
+BuildRequires: flex
Recommends: %{name}-lang
%description
@@ -38,21 +41,22 @@
%build
%configure --disable-silent-rules
-make %{?_smp_mflags}
+%make_build
%install
-make install DESTDIR=$RPM_BUILD_ROOT
+%make_install
%find_lang %{name}
%check
-make check
+make %{?_smp_mflags} check
%files
%defattr(-,root,root,-)
%doc AUTHORS ChangeLog COPYING NEWS THANKS TODO
%{_bindir}/cppi
-%{_mandir}/man1/cppi.1*
+%{_mandir}/man1/cppi.1%{ext_man}
%files lang -f %{name}.lang
+%defattr(-,root,root)
%changelog
1
0
Hello community,
here is the log from the commit of package shunit2 for openSUSE:Factory checked in at 2016-04-28 16:55:18
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/shunit2 (Old)
and /work/SRC/openSUSE:Factory/.shunit2.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "shunit2"
Changes:
--------
--- /work/SRC/openSUSE:Factory/shunit2/shunit2.changes 2013-05-27 10:01:57.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.shunit2.new/shunit2.changes 2016-04-28 16:58:38.000000000 +0200
@@ -1,0 +2,11 @@
+Wed Apr 20 15:29:17 UTC 2016 - mpluskal(a)suse.com
+
+- Cleanup spec file with spec-cleaner
+- Update project url
+
+-------------------------------------------------------------------
+Wed Apr 20 13:34:37 UTC 2016 - carlospecter(a)gmail.com
+
+- spec update: installed shunit2 binary to bindir
+
+-------------------------------------------------------------------
@@ -11 +21,0 @@
-
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ shunit2.spec ++++++
--- /var/tmp/diff_new_pack.aZOKuB/_old 2016-04-28 16:58:40.000000000 +0200
+++ /var/tmp/diff_new_pack.aZOKuB/_new 2016-04-28 16:58:40.000000000 +0200
@@ -1,31 +1,36 @@
#
# spec file for package shunit2
#
-# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany.
-# This file and all modifications and additions to the pristine
-# package are under the same license as the package itself.
+# Copyright (c) 2016 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
+# upon. The license for this file, and modifications and additions to the
+# file, is the same license as for the pristine package itself (unless the
+# license for the pristine package is not an Open Source License, in which
+# case the license is the MIT License). An "Open Source License" is a
+# license that conforms to the Open Source Definition (Version 1.9)
+# published by the Open Source Initiative.
+
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
-%define SHUNIT_HOME /usr/share/shunit2
+%define SHUNIT_HOME %{_datadir}/shunit2
Name: shunit2
-Summary: Test Framework for Bourne Based Shell Scripts
Version: 2.1.6
Release: 0
+Summary: Test Framework for Bourne Based Shell Scripts
+License: LGPL-2.1
+Group: Development/Languages/Other
+Url: https://github.com/kward/shunit2
Source0: %{name}-%{version}.tgz
Source1: lgpl-2.1.txt
Patch0: %{name}-gen_test_results.sh.diff
Patch1: %{name}-examples.diff
-License: LGPL-2.1
-Group: Development/Languages/Other
-BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot
-BuildArch: noarch
-# Vendor:
-URL: http://code.google.com/p/shunit2
BuildRequires: bash
-
+BuildRoot: %{_tmppath}/%{name}-%{version}-build
+BuildArch: noarch
%description
shUnit2 is a xUnit unit test framework for Bourne based shell scripts,
@@ -33,11 +38,10 @@
If you have ever had the desire to write a unit test for a shell
script, shUnit2 can do the job.
-
%prep
-%setup -n %{name}-%{version}
+%setup -q
# Use the correct version and overwrite it:
-cp %{S:1} doc/LGPL-2.1
+cp %{SOURCE1} doc/LGPL-2.1
%patch0
%patch1
@@ -49,14 +53,11 @@
sed -i 's#@SHUNIT_HOME@#%{SHUNIT_HOME}#g' $i
done
-
%install
-mkdir -p $RPM_BUILD_ROOT%{_bindir} $RPM_BUILD_ROOT%{SHUNIT_HOME}
-
-install -m 755 bin/gen_test_results.sh $RPM_BUILD_ROOT%{_bindir}
-cp -a lib src $RPM_BUILD_ROOT%{SHUNIT_HOME}
-
+mkdir -p %{buildroot}%{_bindir} %{buildroot}%{SHUNIT_HOME}
+install -m 755 src/shunit2 %{buildroot}%{_bindir}
+cp -a lib src %{buildroot}%{SHUNIT_HOME}
%files
%defattr(-,root,root)
@@ -68,5 +69,4 @@
%{SHUNIT_HOME}/src/*
%{SHUNIT_HOME}/lib/*
-
%changelog
1
0
Hello community,
here is the log from the commit of package darktable for openSUSE:Factory checked in at 2016-04-28 16:55:16
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/darktable (Old)
and /work/SRC/openSUSE:Factory/.darktable.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "darktable"
Changes:
--------
--- /work/SRC/openSUSE:Factory/darktable/darktable.changes 2016-04-06 11:51:59.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.darktable.new/darktable.changes 2016-04-28 16:58:34.000000000 +0200
@@ -1,0 +2,10 @@
+Wed Apr 13 13:38:30 UTC 2016 - mrueckert(a)suse.de
+
+- fix version string in darktable ui
+
+-------------------------------------------------------------------
+Fri Apr 8 15:24:44 UTC 2016 - mrueckert(a)suse.de
+
+- fix conditional for sle12 and leap
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ darktable.spec ++++++
--- /var/tmp/diff_new_pack.qoLLMD/_old 2016-04-28 16:58:38.000000000 +0200
+++ /var/tmp/diff_new_pack.qoLLMD/_new 2016-04-28 16:58:38.000000000 +0200
@@ -41,7 +41,7 @@
%bcond_with system_opencl
%endif
-%define cmake_options -DCMAKE_SKIP_RPATH:BOOL=OFF -DCMAKE_BUILD_TYPE=RelWithDebInfo -DBINARY_PACKAGE_BUILD=1 -DPROJECT_VERSION:STRING="%{name}-%{version}-%{release}"
+%define cmake_options -DCMAKE_SKIP_RPATH:BOOL=OFF -DCMAKE_BUILD_TYPE=RelWithDebInfo -DBINARY_PACKAGE_BUILD=1 -DPROJECT_VERSION:STRING="%{version}-%{release}"
Name: darktable
Version: 2.0.3
@@ -89,7 +89,7 @@
BuildRequires: pugixml-devel
#
BuildRequires: pkgconfig
-%if 0%{?suse_version} != 1315
+%if 0%{?suse_version} != 1315 || ( 0%{?suse_version} == 1315 && 0%{?is_opensuse} )
BuildRequires: pkgconfig(GraphicsMagick)
%if 0%{?suse_version} && 0%{?suse_version} < 1315
BuildRequires: libGraphicsMagick3
1
0
Hello community,
here is the log from the commit of package clementine for openSUSE:Factory checked in at 2016-04-28 16:55:14
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/clementine (Old)
and /work/SRC/openSUSE:Factory/.clementine.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "clementine"
Changes:
--------
--- /work/SRC/openSUSE:Factory/clementine/clementine.changes 2016-03-07 13:29:49.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.clementine.new/clementine.changes 2016-04-28 16:58:31.000000000 +0200
@@ -1,0 +2,206 @@
+Wed Apr 20 10:37:39 UTC 2016 - sor.alexei(a)meowr.ru
+
+- Update to version 1.3.1:
+ * Fix ratings being deleted when upgrading from older versions.
+
+-------------------------------------------------------------------
+Sun Apr 17 21:43:20 UTC 2016 - olaf(a)aepfle.de
+
+- Remove unused ffmpeg-devel
+
+-------------------------------------------------------------------
+Sun Apr 17 13:34:42 UTC 2016 - sor.alexei(a)meowr.ru
+
+- Add clementine-fix-sqlite.patch (fix startup with default
+ SQLite 3.12+) from
+ https://github.com/clementine-player/Clementine/issues/5297#issuecomment-19…
+- Add -fno-strict-aliasing to CXXFLAGS (strict-aliasing-punning).
+
+-------------------------------------------------------------------
+Sat Apr 16 12:08:32 UTC 2016 - sor.alexei(a)meowr.ru
+
+- Update to version 1.3.0:
+ * VK.com support.
+ * Seafile support (server >= 4.4.1).
+ * Add Ampache compatibility (through Subsonic service).
+ * Add new analyser "Rainbow Dash".
+ * Answer to the ultimate question of life, the universe and
+ everything.
+ * Add "Psychedelic Colour" mode to all analysers.
+ * Add left click to fullsize cover on playing widget.
+ * Add m4b support for non-drm files.
+ * Ignore English articles for library sorting.
+ * Improve the organise dialog.
+ * Add an option to warn before closing a playlist tab.
+ * Add an option to disable the pause notification.
+ * Add options to hide some internet services.
+ * Add an option to disable inline song metadata editing.
+ * Add "details below" and "no details" now playing widget
+ options.
+ * Add "no song details" now playing widget option.
+ * Add icons to the extras menu.
+ * Add a source icon for CD tracks.
+ * Allow user to remove directories in the Files tab.
+ * Add ability to remove unavailable items from playlist.
+ * Add a button to the transcode dialog to add all files in a
+ directory.
+ * Make it impossible to collapse either side of the MainWindow
+ splitter.
+ * Add menu items for updating and doing a full rescan of
+ Google Drive.
+ * Increase Soundcloud cover image size.
+ * Add the ability to pause Spotify tracks.
+ * Add the ability to add or remove a Spotify track to a Spotify
+ playlist through context menu.
+ * Add Spotify tracks to Spotify playlists by drag and drop.
+ * Add ability to get a link to share Spotify playlists and songs.
+ * Improve handling of Spotify Top Tracks and compilations.
+ * Add playlist actions to Spotify songs.
+ * Add ability to automatically set podcast as listened after
+ successfully sending it to a device.
+ * Add ability to order podcasts by age.
+ * Allow user to download multiple podcasts at the same time.
+ * Add ability to cancel podcast downloads in progress.
+ * Allow user to hide listened podcast episodes.
+ * Huge improvement of the speed at startup.
+ * Improve performance of mass rating changes.
+ * Improve ripping performance.
+ * Persistent cache for pixmaps. Huge improvement of the
+ performance when scrolling the library for example.
+ * Add AppData file for Clementine (for GNOME and KDE Software
+ Centres).
+ * Add iPod-like behaviour to previous button.
+ * Add HipHop and Kuduro equalisers.
+ * Remember current playlist between restarts.
+ * IDv3 tag lyrics support.
+ * Scroll to last played track when switching playlists.
+ * Add stop after each song repeat mode.
+ * Sort discs numerically when using Group by disc.
+ * Add ability for sort by group and performer in the library view.
+ * Parse the year of a disc from musicbrainz.
+ * Add track intro mode.
+ * Add ability to add a search term with tab and space in the
+ smart playlist window.
+ * Add love/ban (Last.fm) global shortcuts.
+ * Add support for "original year" tags.
+ * Send album artist to Last.fm with liblastfm >= 1.0.0.
+ * Add sample rate selection.
+ * Add option to change the time step when seeking using the
+ keyboard.
+ * Playlist sort by album considers disc and track numbers.
+ * Add options for double clicking song in the playlist.
+ * Volume slider handles glow effect using system theme.
+ * Library view sort line themable.
+ * Show track durations in the CD ripper dialog.
+ * Add ability to read REM DISC tag from Cue sheet.
+ * Add ability to lock/unlock rating edit status.
+ * Add the support of trackNum elements in XSPF.
+ * Add "Smart Playlists" for Subsonic.
+ * Add lyrics from AZLyrics.
+ * Add lyrics from bollywoodlyrics.com.
+ * Add lyrics from hindilyrics.net.
+ * Add lyrics from lololyrics.com.
+ * Add lyrics from Musixmatch.
+ * Add lyrics from Tekstowo.pl.
+ * Fix crash when click on a SoundCloud entry in internet tab.
+ * Fix crash when marking podcast as listened.
+ * Fix crash after pressing OK in the device properties window.
+ * Fix stop after track which doesn't remove now playing.
+ * Fix play bleeding into next track after auto stop.
+ * Fix analyser framerate when mouseover play scrubber.
+ * Fix issues with buffers sent to analyser.
+ * Fix block analyser framerate.
+ * Fix divide-by-zero possibility with small buffers at end of
+ track.
+ * Fix divide-by-zero possibility in moodbar.
+ * Fix oversized album cover art.
+ * Clean cover art from /tmp.
+ * Fix the rendering of the little numbers in the boxes on queued
+ items in the playlist.
+ * Fix parsing of MusicBrainz data for discid.
+ * Fix random artifacting on nyanalyser on startup.
+ * Fix podcasts length issues (which caused issues with seeking
+ for example).
+ * Fix too small equaliser window size.
+ * Fix labels which don't inherit system text colours in the edit
+ tag dialog.
+ * Fix the mess of the queue manager after playlist re-sort.
+ * Fix for queue ordering issue in the playlist view when using
+ Ctrl+D to dequeue a track.
+ * Fix detection of parent-relative paths in playlist saving.
+ * Fix path seperators issue when reading playlists.
+ * Fix m3u parser issue when an artist's name has a hyphen.
+ * Fix bug with percents when fetch the Jamendo catalogue.
+ * Fix a little dropout when transition to next track.
+ * Fix broken RockRadio.com for premium users.
+ * Fix Subsonic login with + characters in the password.
+ * Fix accents issue in when save playlist in xspf format.
+ * Fix issues with some songs length thanks to Taglib. People with
+ Taglib installed on their system will have to wait a new
+ release of Taglib.
+ * Fix moodbars not generating correctly.
+ * Fix socket leak in moodbar.
+ * Fix memory leak in tagreader.
+ * Fix crash when trying to fingerprint but missing a plugin.
+ * Fix infinite scan with Subsonic when the library is empty.
+ * Fix performer tag for mpeg.
+ * Fix parsing issues with "innovative" datetime formats.
+ * Fix playback breaks in Spotify.
+ * Fix memory leaks.
+ * Fix crash when stopping song that is fading after pausing.
+ * Fix crash when trying to download a track but there is no
+ current one playing.
+ * Fix default spinner gif image which shows white pixels around
+ the image.
+ * Fix setting album artist tag for FLAC files if it already
+ exists.
+ * Fix crash when Clementine lists the albums on Ampache.
+ * Fix Last.fm scrobbling after seek.
+ * Fix metadata not processed properly for some streams (Akamai).
+ * Fix save state when the song was paused.
+ * Fix some issues in Boom and Turbine analysers.
+ * Fix song continuously rewinding when seeking using keyboard
+ arrow keys.
+ * Fix OSD re-posistioning which doesn't work on multiple monitors.
+ * Fix Sonogram state while paused.
+ * Fix crash when changing 'group by' while album covers are still
+ loading.
+ * Fix loss of valid data from an mp3 file when using the metadata
+ editor.
+ * Fix track slider twitching.
+ * Fix Di.fm stations stuck when try to play them without Internet.
+ * Make mood files hidden in NTFS.
+ * Fix time labels blinking when playing streams without known
+ duration.
+ * Fix tag fetcher which applies incorrect tags for songs without
+ any results.
+ * Fix Clementine getting stuck when transitioning from a local
+ track to a Spotify track with crossfade disabled.
+ * Fix previous track when playing a dynamic random mix.
+ * Fix fullscreen album covers for monitors in portrait mode.
+ * Don't scale down star icons by 1 pixel.
+ * Remove Ubuntu One support.
+ * Remove Discogs support.
+ * Remove GrooveShark support.
+ * Remove Radio GFM support.
+ * Update to GStreamer 1.x.
+ * Don't compile vreen with link-time optimisations.
+ * Use the system's sha2 library if it's available.
+ * Remove libindicate-qt.
+ * Remove internal copy of libechonest and add it as dependency.
+ * Use libcrypto++ instead of QCA.
+ * Update TagLib to 1.10.0.
+ * Follow freedesktop.org specifications for icons.
+ * Add a 128x128 version of the Clementine icon.
+ * Remove internal copy of chromaprint and add it as
+ dependency.
+ * Don't depend on libplist or usbmuxd.
++++ 9 more lines (skipped)
++++ between /work/SRC/openSUSE:Factory/clementine/clementine.changes
++++ and /work/SRC/openSUSE:Factory/.clementine.new/clementine.changes
Old:
----
1.2.3.tar.gz
clementine-1.2.2-dont-use-hacks-but-proper-sintax-for-non-wrapping-in-namespace.patch
New:
----
clementine-1.3.1.tar.xz
clementine-fix-sqlite.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ clementine.spec ++++++
--- /var/tmp/diff_new_pack.q8VNKa/_old 2016-04-28 16:58:34.000000000 +0200
+++ /var/tmp/diff_new_pack.q8VNKa/_new 2016-04-28 16:58:34.000000000 +0200
@@ -17,19 +17,19 @@
Name: clementine
-Version: 1.2.3
+Version: 1.3.1
Release: 0
-Summary: A cross-platform Music Player based on Amarok 1
+Summary: A cross-platform Music Player derived from Amarok 1.4
License: GPL-3.0+
Group: Productivity/Multimedia/Sound/Players
-Url: http://www.clementine-player.org/
-Source: https://github.com/clementine-player/Clementine/archive/%{version}.tar.gz
-
-Patch0: clementine-1.2.2-dont-use-hacks-but-proper-sintax-for-non-wrapping-in-namespace.patch
+Url: https://clementine-player.org/
+Source: https://github.com/clementine-player/Clementine/releases/download/%{version…
+# PATCH-FIX-OPENSUSE clementine-fix-sqlite.patch -- Fix startup with default SQLite 3.12+.
+Patch0: clementine-fix-sqlite.patch
BuildRequires: boost-devel
BuildRequires: cmake
BuildRequires: fdupes
-BuildRequires: ffmpeg-devel
+# pkgconfig(freeglut) isn't available in openSUSE Leap 42.1 and older.
BuildRequires: freeglut-devel
BuildRequires: gcc-c++
BuildRequires: gettext-tools
@@ -43,12 +43,16 @@
BuildRequires: pkgconfig(QtGui)
BuildRequires: pkgconfig(QtSql)
BuildRequires: pkgconfig(QtWebKit)
+BuildRequires: pkgconfig(cryptopp)
BuildRequires: pkgconfig(fftw3)
BuildRequires: pkgconfig(gio-2.0)
BuildRequires: pkgconfig(glew)
BuildRequires: pkgconfig(glib-2.0)
-BuildRequires: pkgconfig(gstreamer-0.10)
-BuildRequires: pkgconfig(gstreamer-plugins-base-0.10)
+BuildRequires: pkgconfig(gstreamer-1.0)
+BuildRequires: pkgconfig(gstreamer-app-1.0)
+BuildRequires: pkgconfig(gstreamer-audio-1.0)
+BuildRequires: pkgconfig(gstreamer-base-1.0)
+BuildRequires: pkgconfig(gstreamer-tag-1.0)
BuildRequires: pkgconfig(libcdio)
BuildRequires: pkgconfig(libchromaprint)
BuildRequires: pkgconfig(libechonest)
@@ -56,97 +60,66 @@
BuildRequires: pkgconfig(libmtp)
BuildRequires: pkgconfig(libnotify)
BuildRequires: pkgconfig(libprojectM)
+BuildRequires: pkgconfig(libpulse)
+BuildRequires: pkgconfig(libsparsehash)
BuildRequires: pkgconfig(libxml-2.0)
BuildRequires: pkgconfig(protobuf)
-BuildRequires: pkgconfig(qca2)
BuildRequires: pkgconfig(sqlite3)
BuildRequires: pkgconfig(taglib) >= 1.8
Requires: libtag1 >= 1.8
-# plasma_runner dropped in clementine 1.1.0
+Recommends: gstreamer-fluendo-mp3
+Recommends: sni-qt
+# clementine-kde was last used in openSUSE 12.2.
+# plasma_runner was dropped in Clementine 1.1.0.
Provides: %{name}-kde = %{version}
Obsoletes: %{name}-kde < %{version}
-Recommends: gstreamer-0_10-plugins-fluendo_mp3
-# gnome indicator - while we don't have it in OSS we don't build it
-# BuildRequires: libindicator-devel
-BuildRoot: %{_tmppath}/%{name}-%{version}-build
-%if 0%{?suse_version} >= 1310
-BuildRequires: pkgconfig(libmygpo-qt) >= 1.0.7
-%endif
-%if 0%{?suse_version} >= 1230
-BuildRequires: pkgconfig(libsparsehash)
-%endif
%description
-Clementine is a modern music player and library organiser. Clementine is a
-port of Amarok 1.4, with some features rewritten to take advantage of Qt4.
+Clementine is a modern music player and library organiser.
-Features:
+Clementine is a fork of Amarok 1.4, with some features rewritten to
+take advantage of Qt4.
-* Search and play your local music library
-* Listen to internet radio from Last.fm and SomaFM
-* Edit tags on MP3 and OGG files, organise your music
-* Cross-platform - works on Windows, Mac OS X and Linux
-* Native desktop notifications on Linux (libnotify) and Mac OS X (Growl)
+Features:
+ * Search and play your local music library.
+ * Listen to internet radio from Last.FM and SomaFM.
+ * Edit tags on MP3 and OGG files, organise your music.
+ * Cross-platform - works on GNU/Linux, Windows, and OS X.
+ * Native desktop notifications.
%prep
-%setup -q -n Clementine-%{version}
+%setup -q
%patch0 -p1
-
-### NOTE built against system version of libraries
-rm -rvf 3rdparty/chromaprint
-rm -rvf 3rdparty/libechonest
+# NOTE: Build using system versions of libraries.
rm -rvf 3rdparty/taglib
-%if 0%{?suse_version} >= 1310
-rm -rvf 3rdparty/libmygpo-qt
-%endif
+#rm -rvf 3rdparty/libmygpo-qt
+#rm -rvf 3rdparty/sha2
%build
-
-%if 0%{?suse_version} == 1230
-cmake \
+export CFLAGS="%{optflags} -fno-strict-aliasing"
+export CXXFLAGS="$CFLAGS"
+%cmake \
-DBUILD_WERROR=OFF \
- -DCMAKE_INSTALL_PREFIX=%{_prefix} \
- -DUSE_SYSTEM_PROJECTM=ON \
- -DBUNDLE_PROJECTM_PRESETS=OFF \
-DUSE_SYSTEM_QXT=ON \
-DUSE_BUILTIN_TAGLIB=OFF \
- -DENABLE_GOOGLE_DRIVE=ON \
- -DENABLE_MOODBAR=ON \
- -DENABLE_DBUS=ON
-make %{?_smp_mflags}
-
-%install
-%make_install
-
-%else
-%cmake \
- -DBUILD_WERROR=OFF \
-DUSE_SYSTEM_PROJECTM=ON \
-DBUNDLE_PROJECTM_PRESETS=OFF \
- -DUSE_SYSTEM_QXT=ON \
- -DUSE_BUILTIN_TAGLIB=OFF \
-%if 0%{?suse_version} >= 1230
- -DENABLE_GOOGLE_DRIVE=ON \
-%endif
-DENABLE_MOODBAR=ON \
-DENABLE_DBUS=ON
make %{?_smp_mflags}
%install
%cmake_install
-%endif
-
-%suse_update_desktop_file clementine Qt KDE AudioVideo Audio Player
-# Generate man page with help2man
-mkdir -p %{buildroot}%{_mandir}/man1
-pushd %{buildroot}%{_mandir}/man1
-cp -v %{buildroot}%{_bindir}/%{name} ./
+# Generate a man page with help2man.
+mkdir -p %{buildroot}%{_mandir}/man1/
+pushd %{buildroot}%{_mandir}/man1/
+cp -f %{buildroot}%{_bindir}/%{name} ./
help2man --version-string="%{version}" -N -o %{name}.1 ./%{name}
-rm %{name}
+rm -f %{name}
popd
-%fdupes -s %{buildroot}
+%suse_update_desktop_file clementine Qt AudioVideo Audio Player
%post
%desktop_database_post
@@ -158,18 +131,15 @@
%files
%defattr(-,root,root)
-%doc Changelog COPYING
-%{_bindir}/clementine
-%{_bindir}/clementine-tagreader
+%doc Changelog COPYING README.md
+%{_bindir}/clementine*
%{_datadir}/applications/clementine.desktop
-%{_datadir}/icons/hicolor/64x64/apps/application-x-clementine.png
-%{_datadir}/icons/hicolor/scalable/apps/application-x-clementine.svg
+%{_datadir}/icons/hicolor/*/apps/clementine.*
+%dir %{_datadir}/appdata/
+%{_datadir}/appdata/clementine.appdata.xml
+%{_mandir}/man1/%{name}.1%{?ext_man}
%dir %{_datadir}/kde4/
%dir %{_datadir}/kde4/services/
-%{_datadir}/kde4/services/clementine-feed.protocol
-%{_datadir}/kde4/services/clementine-itms.protocol
-%{_datadir}/kde4/services/clementine-itpc.protocol
-%{_datadir}/kde4/services/clementine-zune.protocol
-%{_mandir}/man1/%{name}.1.gz
+%{_datadir}/kde4/services/clementine-*.protocol
%changelog
++++++ clementine-fix-sqlite.patch ++++++
--- a/src/core/database.cpp
+++ b/src/core/database.cpp
@@ -265,6 +265,17 @@ QSqlDatabase Database::Connect() {
StaticInit();
{
+
+#ifdef SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER
+ QVariant v = db.driver()->handle();
+ if (v.isValid() && qstrcmp(v.typeName(), "sqlite3*") == 0) {
+ sqlite3* handle = *static_cast<sqlite3**>(v.data());
+ if (handle) {
+ sqlite3_db_config(handle, SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER, 1, NULL);
+ }
+ }
+#endif
+
QSqlQuery set_fts_tokenizer("SELECT fts3_tokenizer(:name, :pointer)", db);
set_fts_tokenizer.bindValue(":name", "unicode");
set_fts_tokenizer.bindValue(
1
0
Hello community,
here is the log from the commit of package cpupower for openSUSE:Factory checked in at 2016-04-28 16:55:13
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/cpupower (Old)
and /work/SRC/openSUSE:Factory/.cpupower.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "cpupower"
Changes:
--------
--- /work/SRC/openSUSE:Factory/cpupower/cpupower.changes 2016-02-22 08:57:40.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.cpupower.new/cpupower.changes 2016-04-28 16:58:28.000000000 +0200
@@ -1,0 +2,6 @@
+Wed Apr 20 13:16:43 UTC 2016 - trenn(a)suse.de
+
+- Add cpuidle functions to public libcpupower
+*Add library_cleanup.patch
+
+-------------------------------------------------------------------
Old:
----
cpupower-3.19.tar.bz2
New:
----
cpupower-4.6.tar.bz2
library_cleanup.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ cpupower.spec ++++++
--- /var/tmp/diff_new_pack.6J2ZqV/_old 2016-04-28 16:58:31.000000000 +0200
+++ /var/tmp/diff_new_pack.6J2ZqV/_new 2016-04-28 16:58:31.000000000 +0200
@@ -20,16 +20,19 @@
Name: cpupower
# Use this as version when things are in mainline kernel
%define version %(rpm -q --qf '%{VERSION}' kernel-source)
-Version: 3.19
+Version: 4.6
Release: 0
%define tsversion 4.8
Summary: Tools to determine and set CPU Power related Settings
License: GPL-2.0
Group: System/Base
+Url: https://git.kernel.org/cgit/linux/kernel/git/rafael/linux-pm.git
Source: %{name}-%{version}.tar.bz2
Source1: turbostat-%{tsversion}.tar.bz2
Source2: cpupower_export_tarball_from_git.sh
Source3: msr-index.h
+
+Patch1: library_cleanup.patch
Patch20: turbostat_fix_man_perm.patch
Patch21: make_header_file_passable_from_outside.patch
Patch22: turbostat_set_asm_header_fixed.patch
@@ -80,6 +83,7 @@
%prep
%setup -D -b 1
+%patch1 -p1
cd ../turbostat-%{tsversion}
%patch20 -p1
%patch21 -p1
@@ -148,6 +152,7 @@
%files devel
%defattr(-,root,root)
/usr/include/cpufreq.h
+/usr/include/cpuidle.h
%{_libdir}/libcpu*.so
%changelog
++++++ cpupower-3.19.tar.bz2 -> cpupower-4.6.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cpupower-3.19/debug/i386/dump_psb.c new/cpupower-4.6/debug/i386/dump_psb.c
--- old/cpupower-3.19/debug/i386/dump_psb.c 2015-01-28 04:12:38.000000000 +0100
+++ new/cpupower-4.6/debug/i386/dump_psb.c 2015-12-07 16:45:21.000000000 +0100
@@ -134,7 +134,7 @@
}
static struct option info_opts[] = {
- {.name = "numpst", .has_arg=no_argument, .flag=NULL, .val='n'},
+ {"numpst", no_argument, NULL, 'n'},
};
void print_help(void)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cpupower-3.19/debug/kernel/cpufreq-test_tsc.c new/cpupower-4.6/debug/kernel/cpufreq-test_tsc.c
--- old/cpupower-3.19/debug/kernel/cpufreq-test_tsc.c 2015-01-28 04:12:38.000000000 +0100
+++ new/cpupower-4.6/debug/kernel/cpufreq-test_tsc.c 2015-12-07 16:45:21.000000000 +0100
@@ -81,11 +81,11 @@
printk(KERN_DEBUG "start--> \n");
then = read_pmtmr();
- rdtscll(then_tsc);
+ then_tsc = rdtsc();
for (i=0;i<20;i++) {
mdelay(100);
now = read_pmtmr();
- rdtscll(now_tsc);
+ now_tsc = rdtsc();
diff = (now - then) & 0xFFFFFF;
diff_tsc = now_tsc - then_tsc;
printk(KERN_DEBUG "t1: %08u t2: %08u diff_pmtmr: %08u diff_tsc: %016llu\n", then, now, diff, diff_tsc);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cpupower-3.19/man/cpupower-idle-set.1 new/cpupower-4.6/man/cpupower-idle-set.1
--- old/cpupower-3.19/man/cpupower-idle-set.1 2015-01-28 04:12:38.000000000 +0100
+++ new/cpupower-4.6/man/cpupower-idle-set.1 2015-12-07 16:45:21.000000000 +0100
@@ -20,7 +20,9 @@
Enable a specific processor sleep state.
.TP
\fB\-D\fR \fB\-\-disable-by-latency\fR <LATENCY>
-Disable all idle states with a equal or higher latency than <LATENCY>
+Disable all idle states with a equal or higher latency than <LATENCY>.
+
+Enable all idle states with a latency lower than <LATENCY>.
.TP
\fB\-E\fR \fB\-\-enable-all\fR
Enable all idle states if not enabled already.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cpupower-3.19/utils/cpufreq-info.c new/cpupower-4.6/utils/cpufreq-info.c
--- old/cpupower-3.19/utils/cpufreq-info.c 2015-01-28 04:12:38.000000000 +0100
+++ new/cpupower-4.6/utils/cpufreq-info.c 2015-12-07 16:45:21.000000000 +0100
@@ -536,21 +536,21 @@
}
static struct option info_opts[] = {
- { .name = "debug", .has_arg = no_argument, .flag = NULL, .val = 'e'},
- { .name = "boost", .has_arg = no_argument, .flag = NULL, .val = 'b'},
- { .name = "freq", .has_arg = no_argument, .flag = NULL, .val = 'f'},
- { .name = "hwfreq", .has_arg = no_argument, .flag = NULL, .val = 'w'},
- { .name = "hwlimits", .has_arg = no_argument, .flag = NULL, .val = 'l'},
- { .name = "driver", .has_arg = no_argument, .flag = NULL, .val = 'd'},
- { .name = "policy", .has_arg = no_argument, .flag = NULL, .val = 'p'},
- { .name = "governors", .has_arg = no_argument, .flag = NULL, .val = 'g'},
- { .name = "related-cpus", .has_arg = no_argument, .flag = NULL, .val = 'r'},
- { .name = "affected-cpus",.has_arg = no_argument, .flag = NULL, .val = 'a'},
- { .name = "stats", .has_arg = no_argument, .flag = NULL, .val = 's'},
- { .name = "latency", .has_arg = no_argument, .flag = NULL, .val = 'y'},
- { .name = "proc", .has_arg = no_argument, .flag = NULL, .val = 'o'},
- { .name = "human", .has_arg = no_argument, .flag = NULL, .val = 'm'},
- { .name = "no-rounding", .has_arg = no_argument, .flag = NULL, .val = 'n'},
+ {"debug", no_argument, NULL, 'e'},
+ {"boost", no_argument, NULL, 'b'},
+ {"freq", no_argument, NULL, 'f'},
+ {"hwfreq", no_argument, NULL, 'w'},
+ {"hwlimits", no_argument, NULL, 'l'},
+ {"driver", no_argument, NULL, 'd'},
+ {"policy", no_argument, NULL, 'p'},
+ {"governors", no_argument, NULL, 'g'},
+ {"related-cpus", no_argument, NULL, 'r'},
+ {"affected-cpus", no_argument, NULL, 'a'},
+ {"stats", no_argument, NULL, 's'},
+ {"latency", no_argument, NULL, 'y'},
+ {"proc", no_argument, NULL, 'o'},
+ {"human", no_argument, NULL, 'm'},
+ {"no-rounding", no_argument, NULL, 'n'},
{ },
};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cpupower-3.19/utils/cpufreq-set.c new/cpupower-4.6/utils/cpufreq-set.c
--- old/cpupower-3.19/utils/cpufreq-set.c 2015-01-28 04:12:38.000000000 +0100
+++ new/cpupower-4.6/utils/cpufreq-set.c 2015-12-07 16:45:21.000000000 +0100
@@ -17,15 +17,16 @@
#include "cpufreq.h"
#include "helpers/helpers.h"
+#include "helpers/sysfs.h"
#define NORM_FREQ_LEN 32
static struct option set_opts[] = {
- { .name = "min", .has_arg = required_argument, .flag = NULL, .val = 'd'},
- { .name = "max", .has_arg = required_argument, .flag = NULL, .val = 'u'},
- { .name = "governor", .has_arg = required_argument, .flag = NULL, .val = 'g'},
- { .name = "freq", .has_arg = required_argument, .flag = NULL, .val = 'f'},
- { .name = "related", .has_arg = no_argument, .flag = NULL, .val='r'},
+ {"min", required_argument, NULL, 'd'},
+ {"max", required_argument, NULL, 'u'},
+ {"governor", required_argument, NULL, 'g'},
+ {"freq", required_argument, NULL, 'f'},
+ {"related", no_argument, NULL, 'r'},
{ },
};
@@ -318,6 +319,9 @@
cpufreq_cpu_exists(cpu))
continue;
+ if (sysfs_is_cpu_online(cpu) != 1)
+ continue;
+
printf(_("Setting cpu: %d\n"), cpu);
ret = do_one_cpu(cpu, &new_pol, freq, policychange);
if (ret) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cpupower-3.19/utils/cpuidle-info.c new/cpupower-4.6/utils/cpuidle-info.c
--- old/cpupower-3.19/utils/cpuidle-info.c 2015-01-28 04:12:38.000000000 +0100
+++ new/cpupower-4.6/utils/cpuidle-info.c 2015-12-07 16:45:21.000000000 +0100
@@ -126,8 +126,8 @@
}
static struct option info_opts[] = {
- { .name = "silent", .has_arg = no_argument, .flag = NULL, .val = 's'},
- { .name = "proc", .has_arg = no_argument, .flag = NULL, .val = 'o'},
+ {"silent", no_argument, NULL, 's'},
+ {"proc", no_argument, NULL, 'o'},
{ },
};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cpupower-3.19/utils/cpuidle-set.c new/cpupower-4.6/utils/cpuidle-set.c
--- old/cpupower-3.19/utils/cpuidle-set.c 2015-01-28 04:12:38.000000000 +0100
+++ new/cpupower-4.6/utils/cpuidle-set.c 2015-12-07 16:45:21.000000000 +0100
@@ -13,15 +13,11 @@
#include "helpers/sysfs.h"
static struct option info_opts[] = {
- { .name = "disable",
- .has_arg = required_argument, .flag = NULL, .val = 'd'},
- { .name = "enable",
- .has_arg = required_argument, .flag = NULL, .val = 'e'},
- { .name = "disable-by-latency",
- .has_arg = required_argument, .flag = NULL, .val = 'D'},
- { .name = "enable-all",
- .has_arg = no_argument, .flag = NULL, .val = 'E'},
- { },
+ {"disable", required_argument, NULL, 'd'},
+ {"enable", required_argument, NULL, 'e'},
+ {"disable-by-latency", required_argument, NULL, 'D'},
+ {"enable-all", no_argument, NULL, 'E'},
+ { },
};
@@ -148,14 +144,21 @@
(cpu, idlestate);
state_latency = sysfs_get_idlestate_latency
(cpu, idlestate);
- printf("CPU: %u - idlestate %u - state_latency: %llu - latency: %llu\n",
- cpu, idlestate, state_latency, latency);
- if (disabled == 1 || latency > state_latency)
+ if (disabled == 1) {
+ if (latency > state_latency){
+ ret = sysfs_idlestate_disable
+ (cpu, idlestate, 0);
+ if (ret == 0)
+ printf(_("Idlestate %u enabled on CPU %u\n"), idlestate, cpu);
+ }
continue;
- ret = sysfs_idlestate_disable
- (cpu, idlestate, 1);
- if (ret == 0)
+ }
+ if (latency <= state_latency){
+ ret = sysfs_idlestate_disable
+ (cpu, idlestate, 1);
+ if (ret == 0)
printf(_("Idlestate %u disabled on CPU %u\n"), idlestate, cpu);
+ }
}
break;
case 'E':
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cpupower-3.19/utils/cpupower-info.c new/cpupower-4.6/utils/cpupower-info.c
--- old/cpupower-3.19/utils/cpupower-info.c 2015-01-28 04:12:38.000000000 +0100
+++ new/cpupower-4.6/utils/cpupower-info.c 2015-12-07 16:45:21.000000000 +0100
@@ -17,8 +17,8 @@
#include "helpers/sysfs.h"
static struct option set_opts[] = {
- { .name = "perf-bias", .has_arg = optional_argument, .flag = NULL, .val = 'b'},
- { },
+ {"perf-bias", optional_argument, NULL, 'b'},
+ { },
};
static void print_wrong_arg_exit(void)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cpupower-3.19/utils/cpupower-set.c new/cpupower-4.6/utils/cpupower-set.c
--- old/cpupower-3.19/utils/cpupower-set.c 2015-01-28 04:12:38.000000000 +0100
+++ new/cpupower-4.6/utils/cpupower-set.c 2015-12-07 16:45:21.000000000 +0100
@@ -18,7 +18,7 @@
#include "helpers/bitmask.h"
static struct option set_opts[] = {
- { .name = "perf-bias", .has_arg = required_argument, .flag = NULL, .val = 'b'},
+ {"perf-bias", required_argument, NULL, 'b'},
{ },
};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cpupower-3.19/utils/helpers/pci.c new/cpupower-4.6/utils/helpers/pci.c
--- old/cpupower-3.19/utils/helpers/pci.c 2015-01-28 04:12:38.000000000 +0100
+++ new/cpupower-4.6/utils/helpers/pci.c 2015-12-07 16:45:21.000000000 +0100
@@ -25,14 +25,21 @@
struct pci_dev *pci_acc_init(struct pci_access **pacc, int domain, int bus,
int slot, int func, int vendor, int dev)
{
- struct pci_filter filter_nb_link = { domain, bus, slot, func,
- vendor, dev };
+ struct pci_filter filter_nb_link;
struct pci_dev *device;
*pacc = pci_alloc();
if (*pacc == NULL)
return NULL;
+ pci_filter_init(*pacc, &filter_nb_link);
+ filter_nb_link.domain = domain;
+ filter_nb_link.bus = bus;
+ filter_nb_link.slot = slot;
+ filter_nb_link.func = func;
+ filter_nb_link.vendor = vendor;
+ filter_nb_link.device = dev;
+
pci_init(*pacc);
pci_scan_bus(*pacc);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cpupower-3.19/utils/helpers/topology.c new/cpupower-4.6/utils/helpers/topology.c
--- old/cpupower-3.19/utils/helpers/topology.c 2015-01-28 04:12:38.000000000 +0100
+++ new/cpupower-4.6/utils/helpers/topology.c 2015-12-07 16:45:21.000000000 +0100
@@ -76,13 +76,19 @@
if(sysfs_topology_read_file(
cpu,
"physical_package_id",
- &(cpu_top->core_info[cpu].pkg)) < 0)
- return -1;
+ &(cpu_top->core_info[cpu].pkg)) < 0) {
+ cpu_top->core_info[cpu].pkg = -1;
+ cpu_top->core_info[cpu].core = -1;
+ continue;
+ }
if(sysfs_topology_read_file(
cpu,
"core_id",
- &(cpu_top->core_info[cpu].core)) < 0)
- return -1;
+ &(cpu_top->core_info[cpu].core)) < 0) {
+ cpu_top->core_info[cpu].pkg = -1;
+ cpu_top->core_info[cpu].core = -1;
+ continue;
+ }
}
qsort(cpu_top->core_info, cpus, sizeof(struct cpuid_core_info),
@@ -93,12 +99,15 @@
done by pkg value. */
last_pkg = cpu_top->core_info[0].pkg;
for(cpu = 1; cpu < cpus; cpu++) {
- if(cpu_top->core_info[cpu].pkg != last_pkg) {
+ if (cpu_top->core_info[cpu].pkg != last_pkg &&
+ cpu_top->core_info[cpu].pkg != -1) {
+
last_pkg = cpu_top->core_info[cpu].pkg;
cpu_top->pkgs++;
}
}
- cpu_top->pkgs++;
+ if (!(cpu_top->core_info[0].pkg == -1))
+ cpu_top->pkgs++;
/* Intel's cores count is not consecutively numbered, there may
* be a core_id of 3, but none of 2. Assume there always is 0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cpupower-3.19/utils/idle_monitor/cpupower-monitor.c new/cpupower-4.6/utils/idle_monitor/cpupower-monitor.c
--- old/cpupower-3.19/utils/idle_monitor/cpupower-monitor.c 2015-01-28 04:12:38.000000000 +0100
+++ new/cpupower-4.6/utils/idle_monitor/cpupower-monitor.c 2015-12-07 16:45:21.000000000 +0100
@@ -143,6 +143,9 @@
/* Be careful CPUs may got resorted for pkg value do not just use cpu */
if (!bitmask_isbitset(cpus_chosen, cpu_top.core_info[cpu].cpu))
return;
+ if (!cpu_top.core_info[cpu].is_online &&
+ cpu_top.core_info[cpu].pkg == -1)
+ return;
if (topology_depth > 2)
printf("%4d|", cpu_top.core_info[cpu].pkg);
@@ -191,7 +194,8 @@
* It's up to the monitor plug-in to check .is_online, this one
* is just for additional info.
*/
- if (!cpu_top.core_info[cpu].is_online) {
+ if (!cpu_top.core_info[cpu].is_online &&
+ cpu_top.core_info[cpu].pkg != -1) {
printf(_(" *is offline\n"));
return;
} else
@@ -388,6 +392,9 @@
return EXIT_FAILURE;
}
+ if (!cpu_top.core_info[0].is_online)
+ printf("WARNING: at least one cpu is offline\n");
+
/* Default is: monitor all CPUs */
if (bitmask_isallclear(cpus_chosen))
bitmask_setall(cpus_chosen);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cpupower-3.19/utils/idle_monitor/mperf_monitor.c new/cpupower-4.6/utils/idle_monitor/mperf_monitor.c
--- old/cpupower-3.19/utils/idle_monitor/mperf_monitor.c 2015-01-28 04:12:38.000000000 +0100
+++ new/cpupower-4.6/utils/idle_monitor/mperf_monitor.c 2015-12-07 16:45:21.000000000 +0100
@@ -135,7 +135,7 @@
dprint("%s: TSC Ref - mperf_diff: %llu, tsc_diff: %llu\n",
mperf_cstates[id].name, mperf_diff, tsc_diff);
} else if (max_freq_mode == MAX_FREQ_SYSFS) {
- timediff = timespec_diff_us(time_start, time_end);
+ timediff = max_frequency * timespec_diff_us(time_start, time_end);
*percent = 100.0 * mperf_diff / timediff;
dprint("%s: MAXFREQ - mperf_diff: %llu, time_diff: %llu\n",
mperf_cstates[id].name, mperf_diff, timediff);
@@ -176,7 +176,7 @@
dprint("%s: Average freq based on %s maximum frequency:\n",
mperf_cstates[id].name,
(max_freq_mode == MAX_FREQ_TSC_REF) ? "TSC calculated" : "sysfs read");
- dprint("%max_frequency: %lu", max_frequency);
+ dprint("max_frequency: %lu\n", max_frequency);
dprint("aperf_diff: %llu\n", aperf_diff);
dprint("mperf_diff: %llu\n", mperf_diff);
dprint("avg freq: %llu\n", *count);
@@ -279,6 +279,7 @@
return -1;
}
max_freq_mode = MAX_FREQ_SYSFS;
+ max_frequency /= 1000; /* Default automatically to MHz value */
return 0;
}
++++++ cpupower_export_tarball_from_git.sh ++++++
--- /var/tmp/diff_new_pack.6J2ZqV/_old 2016-04-28 16:58:31.000000000 +0200
+++ /var/tmp/diff_new_pack.6J2ZqV/_new 2016-04-28 16:58:31.000000000 +0200
@@ -60,7 +60,7 @@
git archive --format=tar $GIT_TAG tools/power/x86/turbostat |tar -x
mv tools/power/x86/turbostat turbostat${VERSION}
mkdir turbostat${VERSION}/asm
-[ ! -e "$GIT_DIR"/../arch/x86/include/uapi/asm/msr-index.h ] && echo "msr-index.h does not exist" && exit 1
+[ ! -e "$GIT_DIR"/../arch/x86/include/asm/msr-index.h ] && echo "msr-index.h does not exist" && exit 1
cp "$GIT_DIR"/../arch/x86/include/uapi/asm/msr-index.h turbostat${VERSION}/asm
tar -cvjf turbostat${VERSION}.tar.bz2 turbostat${VERSION}
popd
++++++ library_cleanup.patch ++++++
++++ 2871 lines (skipped)
++++++ msr-index.h ++++++
--- /var/tmp/diff_new_pack.6J2ZqV/_old 2016-04-28 16:58:31.000000000 +0200
+++ /var/tmp/diff_new_pack.6J2ZqV/_new 2016-04-28 16:58:31.000000000 +0200
@@ -35,7 +35,7 @@
#define MSR_IA32_PERFCTR0 0x000000c1
#define MSR_IA32_PERFCTR1 0x000000c2
#define MSR_FSB_FREQ 0x000000cd
-#define MSR_NHM_PLATFORM_INFO 0x000000ce
+#define MSR_PLATFORM_INFO 0x000000ce
#define MSR_NHM_SNB_PKG_CST_CFG_CTL 0x000000e2
#define NHM_C3_AUTO_DEMOTE (1UL << 25)
@@ -44,7 +44,6 @@
#define SNB_C1_AUTO_UNDEMOTE (1UL << 27)
#define SNB_C3_AUTO_UNDEMOTE (1UL << 28)
-#define MSR_PLATFORM_INFO 0x000000ce
#define MSR_MTRRcap 0x000000fe
#define MSR_IA32_BBL_CR_CTL 0x00000119
#define MSR_IA32_BBL_CR_CTL3 0x0000011e
@@ -56,11 +55,15 @@
#define MSR_IA32_MCG_CAP 0x00000179
#define MSR_IA32_MCG_STATUS 0x0000017a
#define MSR_IA32_MCG_CTL 0x0000017b
+#define MSR_IA32_MCG_EXT_CTL 0x000004d0
#define MSR_OFFCORE_RSP_0 0x000001a6
#define MSR_OFFCORE_RSP_1 0x000001a7
#define MSR_NHM_TURBO_RATIO_LIMIT 0x000001ad
#define MSR_IVT_TURBO_RATIO_LIMIT 0x000001ae
+#define MSR_TURBO_RATIO_LIMIT 0x000001ad
+#define MSR_TURBO_RATIO_LIMIT1 0x000001ae
+#define MSR_TURBO_RATIO_LIMIT2 0x000001af
#define MSR_LBR_SELECT 0x000001c8
#define MSR_LBR_TOS 0x000001c9
@@ -69,11 +72,43 @@
#define MSR_LBR_CORE_FROM 0x00000040
#define MSR_LBR_CORE_TO 0x00000060
+#define MSR_LBR_INFO_0 0x00000dc0 /* ... 0xddf for _31 */
+#define LBR_INFO_MISPRED BIT_ULL(63)
+#define LBR_INFO_IN_TX BIT_ULL(62)
+#define LBR_INFO_ABORT BIT_ULL(61)
+#define LBR_INFO_CYCLES 0xffff
+
#define MSR_IA32_PEBS_ENABLE 0x000003f1
#define MSR_IA32_DS_AREA 0x00000600
#define MSR_IA32_PERF_CAPABILITIES 0x00000345
#define MSR_PEBS_LD_LAT_THRESHOLD 0x000003f6
+#define MSR_IA32_RTIT_CTL 0x00000570
+#define RTIT_CTL_TRACEEN BIT(0)
+#define RTIT_CTL_CYCLEACC BIT(1)
+#define RTIT_CTL_OS BIT(2)
+#define RTIT_CTL_USR BIT(3)
+#define RTIT_CTL_CR3EN BIT(7)
+#define RTIT_CTL_TOPA BIT(8)
+#define RTIT_CTL_MTC_EN BIT(9)
+#define RTIT_CTL_TSC_EN BIT(10)
+#define RTIT_CTL_DISRETC BIT(11)
+#define RTIT_CTL_BRANCH_EN BIT(13)
+#define RTIT_CTL_MTC_RANGE_OFFSET 14
+#define RTIT_CTL_MTC_RANGE (0x0full << RTIT_CTL_MTC_RANGE_OFFSET)
+#define RTIT_CTL_CYC_THRESH_OFFSET 19
+#define RTIT_CTL_CYC_THRESH (0x0full << RTIT_CTL_CYC_THRESH_OFFSET)
+#define RTIT_CTL_PSB_FREQ_OFFSET 24
+#define RTIT_CTL_PSB_FREQ (0x0full << RTIT_CTL_PSB_FREQ_OFFSET)
+#define MSR_IA32_RTIT_STATUS 0x00000571
+#define RTIT_STATUS_CONTEXTEN BIT(1)
+#define RTIT_STATUS_TRIGGEREN BIT(2)
+#define RTIT_STATUS_ERROR BIT(4)
+#define RTIT_STATUS_STOPPED BIT(5)
+#define MSR_IA32_RTIT_CR3_MATCH 0x00000572
+#define MSR_IA32_RTIT_OUTPUT_BASE 0x00000560
+#define MSR_IA32_RTIT_OUTPUT_MASK 0x00000561
+
#define MSR_MTRRfix64K_00000 0x00000250
#define MSR_MTRRfix16K_80000 0x00000258
#define MSR_MTRRfix16K_A0000 0x00000259
@@ -105,6 +140,8 @@
#define DEBUGCTLMSR_BTS_OFF_USR (1UL << 10)
#define DEBUGCTLMSR_FREEZE_LBRS_ON_PMI (1UL << 11)
+#define MSR_PEBS_FRONTEND 0x000003f7
+
#define MSR_IA32_POWER_CTL 0x000001fc
#define MSR_IA32_MC0_CTL 0x00000400
@@ -119,6 +156,7 @@
#define MSR_CORE_C3_RESIDENCY 0x000003fc
#define MSR_CORE_C6_RESIDENCY 0x000003fd
#define MSR_CORE_C7_RESIDENCY 0x000003fe
+#define MSR_KNL_CORE_C6_RESIDENCY 0x000003ff
#define MSR_PKG_C2_RESIDENCY 0x0000060d
#define MSR_PKG_C8_RESIDENCY 0x00000630
#define MSR_PKG_C9_RESIDENCY 0x00000631
@@ -147,11 +185,33 @@
#define MSR_PP1_ENERGY_STATUS 0x00000641
#define MSR_PP1_POLICY 0x00000642
+#define MSR_CONFIG_TDP_NOMINAL 0x00000648
+#define MSR_CONFIG_TDP_LEVEL_1 0x00000649
+#define MSR_CONFIG_TDP_LEVEL_2 0x0000064A
+#define MSR_CONFIG_TDP_CONTROL 0x0000064B
+#define MSR_TURBO_ACTIVATION_RATIO 0x0000064C
+
+#define MSR_PKG_WEIGHTED_CORE_C0_RES 0x00000658
+#define MSR_PKG_ANY_CORE_C0_RES 0x00000659
+#define MSR_PKG_ANY_GFXE_C0_RES 0x0000065A
+#define MSR_PKG_BOTH_CORE_GFXE_C0_RES 0x0000065B
+
#define MSR_CORE_C1_RES 0x00000660
#define MSR_CC6_DEMOTION_POLICY_CONFIG 0x00000668
#define MSR_MC6_DEMOTION_POLICY_CONFIG 0x00000669
+#define MSR_CORE_PERF_LIMIT_REASONS 0x00000690
+#define MSR_GFX_PERF_LIMIT_REASONS 0x000006B0
+#define MSR_RING_PERF_LIMIT_REASONS 0x000006B1
+
+/* Config TDP MSRs */
+#define MSR_CONFIG_TDP_NOMINAL 0x00000648
+#define MSR_CONFIG_TDP_LEVEL1 0x00000649
+#define MSR_CONFIG_TDP_LEVEL2 0x0000064A
+#define MSR_CONFIG_TDP_CONTROL 0x0000064B
+#define MSR_TURBO_ACTIVATION_RATIO 0x0000064C
+
/* Hardware P state interface */
#define MSR_PPERF 0x0000064e
#define MSR_PERF_LIMIT_REASONS 0x0000064f
@@ -251,6 +311,10 @@
/* Fam 16h MSRs */
#define MSR_F16H_L2I_PERF_CTL 0xc0010230
#define MSR_F16H_L2I_PERF_CTR 0xc0010231
+#define MSR_F16H_DR1_ADDR_MASK 0xc0011019
+#define MSR_F16H_DR2_ADDR_MASK 0xc001101a
+#define MSR_F16H_DR3_ADDR_MASK 0xc001101b
+#define MSR_F16H_DR0_ADDR_MASK 0xc0011027
/* Fam 15h MSRs */
#define MSR_F15H_PERF_CTL 0xc0010200
@@ -275,6 +339,7 @@
/* C1E active bits in int pending message */
#define K8_INTP_C1E_ACTIVE_MASK 0x18000000
#define MSR_K8_TSEG_ADDR 0xc0010112
+#define MSR_K8_TSEG_MASK 0xc0010113
#define K8_MTRRFIXRANGE_DRAM_ENABLE 0x00040000 /* MtrrFixDramEn bit */
#define K8_MTRRFIXRANGE_DRAM_MODIFY 0x00080000 /* MtrrFixDramModEn bit */
#define K8_MTRR_RDMEM_WRMEM_MASK 0x18181818 /* Mask: RdMem|WrMem */
@@ -345,6 +410,7 @@
#define FEATURE_CONTROL_LOCKED (1<<0)
#define FEATURE_CONTROL_VMXON_ENABLED_INSIDE_SMX (1<<1)
#define FEATURE_CONTROL_VMXON_ENABLED_OUTSIDE_SMX (1<<2)
+#define FEATURE_CONTROL_LMCE (1<<20)
#define MSR_IA32_APICBASE 0x0000001b
#define MSR_IA32_APICBASE_BSP (1<<8)
@@ -356,8 +422,12 @@
#define MSR_IA32_UCODE_WRITE 0x00000079
#define MSR_IA32_UCODE_REV 0x0000008b
+#define MSR_IA32_SMM_MONITOR_CTL 0x0000009b
+#define MSR_IA32_SMBASE 0x0000009e
+
#define MSR_IA32_PERF_STATUS 0x00000198
#define MSR_IA32_PERF_CTL 0x00000199
+#define INTEL_PERF_CTL_MASK 0xffff
#define MSR_AMD_PSTATE_DEF_BASE 0xc0010064
#define MSR_AMD_PERF_STATUS 0xc0010063
#define MSR_AMD_PERF_CTL 0xc0010062
1
0
Hello community,
here is the log from the commit of package laptop-mode-tools for openSUSE:Factory checked in at 2016-04-28 16:55:11
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/laptop-mode-tools (Old)
and /work/SRC/openSUSE:Factory/.laptop-mode-tools.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "laptop-mode-tools"
Changes:
--------
--- /work/SRC/openSUSE:Factory/laptop-mode-tools/laptop-mode-tools.changes 2016-03-26 17:29:23.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.laptop-mode-tools.new/laptop-mode-tools.changes 2016-04-28 16:58:25.000000000 +0200
@@ -1,0 +2,6 @@
+Wed Apr 20 13:21:46 UTC 2016 - robert(a)linux-source.org
+
+- Update to version 1.69.2:
+ Minor Bug fix release.
+
+-------------------------------------------------------------------
Old:
----
laptop-mode-tools_1.69.1.tar.gz
New:
----
laptop-mode-tools_1.69.2.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ laptop-mode-tools.spec ++++++
--- /var/tmp/diff_new_pack.Dpy9Yi/_old 2016-04-28 16:58:28.000000000 +0200
+++ /var/tmp/diff_new_pack.Dpy9Yi/_new 2016-04-28 16:58:28.000000000 +0200
@@ -20,7 +20,7 @@
%{!?_udevdir:%global _udevdir %{_libexecdir}/udev}
Name: laptop-mode-tools
-Version: 1.69.1
+Version: 1.69.2
Release: 0
Summary: The Laptop Mode Tools
License: GPL-2.0+
@@ -66,7 +66,14 @@
%build
%install
-DESTDIR=%{buildroot} MAN_D=%{_mandir} INSTALL=install INIT_D=%{_initddir} LIB_D=%{_libdir} UDEV_D=%{_udevdir} SYSTEMD_UNIT_D=%{_unitdir} ACPI=DISABLED PMU=disabled APM=disabled ./install.sh
+DESTDIR=%{buildroot} \
+MAN_D=%{_mandir} \
+INIT_D=%{_initddir} \
+LIB_D=%{_libdir} \
+UDEV_D=%{_udevdir} \
+SYSTEMD_UNIT_D=%{_unitdir} \
+ACPI=disabled PMU=disabled APM=disabled INSTALL=install ./install.sh
+
%if 0%{?suse_version} < 1315
install -D -m 0755 %{SOURCE1} %{buildroot}%{_libexecdir}/pm-utils/power.d/laptop-mode-tools
%endif
++++++ laptop-mode-tools_1.69.1.tar.gz -> laptop-mode-tools_1.69.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/laptop-mode-tools_1.69.1/etc/systemd/laptop-mode.service new/laptop-mode-tools_1.69.2/etc/systemd/laptop-mode.service
--- old/laptop-mode-tools_1.69.1/etc/systemd/laptop-mode.service 2016-03-15 11:35:20.000000000 +0100
+++ new/laptop-mode-tools_1.69.2/etc/systemd/laptop-mode.service 2016-03-27 17:57:58.000000000 +0200
@@ -12,6 +12,7 @@
ExecReload=/usr/sbin/laptop_mode auto
StandardOutput=journal
StandardError=journal
+TasksMax=infinity
[Install]
WantedBy=multi-user.target
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/laptop-mode-tools_1.69.1/laptop-mode-tools.spec new/laptop-mode-tools_1.69.2/laptop-mode-tools.spec
--- old/laptop-mode-tools_1.69.1/laptop-mode-tools.spec 2016-03-15 11:35:20.000000000 +0100
+++ new/laptop-mode-tools_1.69.2/laptop-mode-tools.spec 2016-03-27 17:57:58.000000000 +0200
@@ -3,7 +3,7 @@
Summary: Tools for power savings based on battery/AC status
Name: laptop-mode-tools
-Version: 1.69.1
+Version: 1.69.2
Release: 1
License: GPL
Group: System Environment/Base
@@ -102,6 +102,9 @@
%changelog
+* Sun Mar 27 2016 Ritesh Raj Sarraf <rrs(a)researchut.com> - 1.69.2-1
+- Updated to release 1.69.2
+
* Tue Mar 15 2016 Ritesh Raj Sarraf <rrs(a)researchut.com> - 1.69.1-1
- Updated to release 1.69.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/laptop-mode-tools_1.69.1/usr/sbin/laptop_mode new/laptop-mode-tools_1.69.2/usr/sbin/laptop_mode
--- old/laptop-mode-tools_1.69.1/usr/sbin/laptop_mode 2016-03-15 11:35:20.000000000 +0100
+++ new/laptop-mode-tools_1.69.2/usr/sbin/laptop_mode 2016-03-27 17:57:58.000000000 +0200
@@ -35,7 +35,7 @@
# The laptop mode tools version number. Extracted by the installer makefile
# as well, so don't change the format!
-LMTVERSION=1.69.1
+LMTVERSION=1.69.2
# This script is loaded from multiple scripts to set the config defaults
# and to read the configuration on top of those. Only when the command is
1
0