openSUSE Commits
Threads by month
- ----- 2025 -----
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- 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
March 2021
- 1 participants
- 2434 discussions
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package nano for openSUSE:Factory checked in at 2021-03-02 12:25:39
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/nano (Old)
and /work/SRC/openSUSE:Factory/.nano.new.2378 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "nano"
Tue Mar 2 12:25:39 2021 rev:94 rq:874968 version:5.6
Changes:
--------
--- /work/SRC/openSUSE:Factory/nano/nano.changes 2021-01-19 15:58:56.763085373 +0100
+++ /work/SRC/openSUSE:Factory/.nano.new.2378/nano.changes 2021-03-02 12:25:53.547340657 +0100
@@ -1,0 +2,17 @@
+Wed Feb 24 21:55:30 UTC 2021 - Andreas Stieger <andreas.stieger(a)gmx.de>
+
+- GNU nano 5.6:
+ * A search match gets highlighted (in black on yellow by
+ default), in addition to placing the cursor at the start of
+ the matchA. The color combination can be changed with
+ 'set highlightcolor'. By default the cursor is hidden until the
+ next keystroke, but it can be forced on with --showcursor /
+ 'set showcursor'.
+ * Option --markmatch / 'set markmatch' has been removed
+ * Cursor position and character code are displayed in the
+ minibar only when option --constantshow / 'set constantshow'
+ is used, and their display can be toggled with M-C
+ * The state flags are displayed in the minibar only when option
+ --stateflags / 'set stateflags' is used
+
+-------------------------------------------------------------------
Old:
----
nano-5.5.tar.xz
nano-5.5.tar.xz.asc
New:
----
nano-5.6.tar.xz
nano-5.6.tar.xz.asc
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ nano.spec ++++++
--- /var/tmp/diff_new_pack.GqhFcc/_old 2021-03-02 12:25:54.147341194 +0100
+++ /var/tmp/diff_new_pack.GqhFcc/_new 2021-03-02 12:25:54.151341197 +0100
@@ -18,7 +18,7 @@
%define _version 5
Name: nano
-Version: 5.5
+Version: 5.6
Release: 0
Summary: Pico editor clone with enhancements
License: GPL-3.0-or-later
@@ -56,7 +56,7 @@
# - set hunspell as the default spell-checker
# - enable syntax highlighting by default
sed -e 's/^#.*set speller.*$/set speller "hunspell"/' \
- -e 's|^# \(include "/usr/share/nano/\*.nanorc"\)|\1|' \
+ -e 's|^# \(include "%{_datadir}/nano/\*.nanorc"\)|\1|' \
%{SOURCE3} doc/sample.nanorc > ./nanorc
%install
++++++ nano-5.5.tar.xz -> nano-5.6.tar.xz ++++++
++++ 36888 lines of diff (skipped)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package xscreensaver for openSUSE:Factory checked in at 2021-03-02 12:25:36
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/xscreensaver (Old)
and /work/SRC/openSUSE:Factory/.xscreensaver.new.2378 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xscreensaver"
Tue Mar 2 12:25:36 2021 rev:63 rq:874967 version:5.45
Changes:
--------
--- /work/SRC/openSUSE:Factory/xscreensaver/xscreensaver.changes 2020-05-04 18:39:07.832879432 +0200
+++ /work/SRC/openSUSE:Factory/.xscreensaver.new.2378/xscreensaver.changes 2021-03-02 12:25:49.875337314 +0100
@@ -1,0 +2,15 @@
+Wed Feb 24 00:47:32 UTC 2021 - Stanislav Brabec <sbrabec(a)suse.com>
+
+- Update to version 5.45:
+ * New hacks, covid19, headroom, sphereeversion and beats.
+ * Shader updates to hypertorus.
+ * No more image-loading pause in glslideshow.
+ * BSOD supports GNOME.
+ * Image loaders support SVG.
+ * xscreensaver-systemd now allows video players to request that
+ the screen not blank.
+ * -log implies -verbose -no-capture-stderr.
+ * Glade -> GtkBuilder.
+ * Various bug fixes.
+
+-------------------------------------------------------------------
Old:
----
xscreensaver-5.44.tar.gz
New:
----
xscreensaver-5.45.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ xscreensaver.spec ++++++
--- /var/tmp/diff_new_pack.gSNgZ5/_old 2021-03-02 12:25:51.235338590 +0100
+++ /var/tmp/diff_new_pack.gSNgZ5/_new 2021-03-02 12:25:51.239338593 +0100
@@ -1,7 +1,7 @@
#
# spec file for package xscreensaver
#
-# Copyright (c) 2020 SUSE LLC
+# Copyright (c) 2021 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
Name: xscreensaver
-Version: 5.44
+Version: 5.45
Release: 0
Summary: A screen saver and locker for the X Window System
License: BSD-3-Clause AND GPL-2.0-or-later
@@ -66,6 +66,7 @@
BuildRequires: pkgconfig(gobject-2.0)
BuildRequires: pkgconfig(gtk+-x11-2.0)
BuildRequires: pkgconfig(libglade-2.0)
+BuildRequires: pkgconfig(libsystemd)
BuildRequires: pkgconfig(libxml-2.0)
BuildRequires: pkgconfig(pango)
BuildRequires: pkgconfig(x11)
@@ -250,17 +251,18 @@
%{_bindir}/xscreensaver-command
%{_bindir}/xscreensaver-demo
%{_bindir}/xscreensaver-gl-helper
+%{_bindir}/xscreensaver-systemd
%{_datadir}/applications/xscreensaver-properties.desktop
%{_datadir}/pixmaps/xscreensaver.xpm
-%dir %{_datadir}/xscreensaver/
-%{_datadir}/xscreensaver/glade/
+%dir %{_datadir}/xscreensaver
+%{_datadir}/xscreensaver/ui
+%dir %{_prefix}/lib/X11/app-defaults
+%{_prefix}/lib/X11/app-defaults/XScreenSaver
%{_mandir}/man1/xscreensaver.*
%{_mandir}/man1/xscreensaver-command.*
%{_mandir}/man1/xscreensaver-demo.*
%{_mandir}/man6/xscreensaver-gl-helper.*
%{_mandir}/man1/xscreensaver-systemd.*
-%dir %{_datadir}/X11/app-defaults/
-%{_datadir}/X11/app-defaults/XScreenSaver
%config %{_sysconfdir}/pam.d/xscreensaver
%dir %{_sysconfdir}/xscreensaver/
%config %{_sysconfdir}/xscreensaver/README
++++++ xscreensaver-5.44.tar.gz -> xscreensaver-5.45.tar.gz ++++++
/work/SRC/openSUSE:Factory/xscreensaver/xscreensaver-5.44.tar.gz /work/SRC/openSUSE:Factory/.xscreensaver.new.2378/xscreensaver-5.45.tar.gz differ: char 5, line 1
++++++ xscreensaver-data-extra.list ++++++
--- /var/tmp/diff_new_pack.gSNgZ5/_old 2021-03-02 12:25:51.287338636 +0100
+++ /var/tmp/diff_new_pack.gSNgZ5/_new 2021-03-02 12:25:51.287338636 +0100
@@ -11,6 +11,7 @@
attraction
atunnel
barcode
+beats
binaryring
blaster
blinkbox
@@ -35,6 +36,7 @@
companioncube
compass
coral
+covid19
crackberg
crumbler
crystal
@@ -100,6 +102,7 @@
halftone
halo
handsy
+headroom
helix
hexadrop
hexstrut
@@ -185,6 +188,7 @@
slip
sonar
speedmine
+sphereeversion
spheremonics
splitflap
splodesic
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-breathe for openSUSE:Factory checked in at 2021-03-02 12:25:34
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-breathe (Old)
and /work/SRC/openSUSE:Factory/.python-breathe.new.2378 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-breathe"
Tue Mar 2 12:25:34 2021 rev:12 rq:874949 version:4.27.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-breathe/python-breathe.changes 2020-12-12 20:32:09.513839157 +0100
+++ /work/SRC/openSUSE:Factory/.python-breathe.new.2378/python-breathe.changes 2021-03-02 12:25:36.151324396 +0100
@@ -1,0 +2,19 @@
+Thu Feb 25 03:13:38 UTC 2021 - Steve Kowalik <steven.kowalik(a)suse.com>
+
+- Update to 4.27.0:
+ * Add various specifiers to functions and variables. #628
+ * Add multiply inherited class for PHP objects. #630
+ * Initial support for table rendering. #632
+ * Add rendering of \section, \subsection and \subsubsection. #635
+ * Sphinx 3.5 compatibility. #640
+ * Fix linking to sections. #639
+ * Add table examples to documentation. #638
+ * Fix doxygenfile causing duplicate IDs for unspecified sections. #622
+ * Fixes for doxygenfunction (friend keyword, friend class, arg checks). #623
+ * Add test for ellipsis ('...') in args. #610
+ * Sphinx 3.4.x compatibility. #617
+ * Adapt friendclass to Doxygen 1.9. #618
+ * Add support for \parblock parsing and rendering. #603
+ * Allow lookup in doxygenfunction without writing param names. #606
+
+-------------------------------------------------------------------
Old:
----
v4.24.1.tar.gz
New:
----
v4.27.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-breathe.spec ++++++
--- /var/tmp/diff_new_pack.sTBIjm/_old 2021-03-02 12:25:36.823325028 +0100
+++ /var/tmp/diff_new_pack.sTBIjm/_new 2021-03-02 12:25:36.827325032 +0100
@@ -1,7 +1,7 @@
#
# spec file for package python-breathe
#
-# Copyright (c) 2020 SUSE LLC
+# Copyright (c) 2021 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -18,7 +18,7 @@
%define skip_python2 1
Name: python-breathe
-Version: 4.24.1
+Version: 4.27.0
Release: 0
Summary: Sphinx Doxygen renderer
License: BSD-3-Clause
++++++ v4.24.1.tar.gz -> v4.27.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/breathe-4.24.1/.github/workflows/unit_tests.yml new/breathe-4.27.0/.github/workflows/unit_tests.yml
--- old/breathe-4.24.1/.github/workflows/unit_tests.yml 2020-12-01 22:19:50.000000000 +0100
+++ new/breathe-4.27.0/.github/workflows/unit_tests.yml 2021-02-16 16:26:15.000000000 +0100
@@ -6,12 +6,15 @@
runs-on: ubuntu-latest
strategy:
matrix:
- python-version: [3.5, 3.6, 3.7, 3.8]
+ python-version: [3.5, 3.6, 3.7, 3.8, 3.9]
sphinx-version:
- 3.0.4
- 3.1.2
- - 3.2.0
- - git+https://github.com/sphinx-doc/sphinx.git@3.3.x
+ - 3.2.1
+ - 3.3.1
+ - 3.4.3
+ - 3.5.0
+ - git+https://github.com/sphinx-doc/sphinx.git@3.5.x
- git+https://github.com/sphinx-doc/sphinx.git@3.x
# master (Sphinx 4) will require at least Python 3.6, so disable it for now
#- git+https://github.com/sphinx-doc/sphinx.git@master
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/breathe-4.24.1/README.rst new/breathe-4.27.0/README.rst
--- old/breathe-4.24.1/README.rst 2020-12-01 22:19:50.000000000 +0100
+++ new/breathe-4.27.0/README.rst 2021-02-16 16:26:15.000000000 +0100
@@ -172,6 +172,36 @@
Inspired by `Keepachangelog.com <http://keepachangelog.com/>`__.
+- 2021-02-16 - Breathe v4.27.0
+
+ - Add various specifiers to functions and variables. #628
+ - Add multiply inherited class for PHP objects. #630
+ - Initial support for table rendering. #632
+ - Add rendering of \section, \subsection and \subsubsection. #635
+ - Sphinx 3.5 compatibility. #640
+ - Fix linking to sections. #639
+ - Add table examples to documentation. #638
+
+- 2021-01-21 - Breathe v4.26.1
+
+ - Fix doxygenfile causing duplicate IDs for unspecified sections. #622
+ - Fixes for doxygenfunction (friend keyword, friend class, arg checks). #623
+
+- 2021-01-08 - Breathe v4.26.0
+
+ - Add test for ellipsis ('...') in args. #610
+ - Sphinx 3.4.x compatibility. #617
+ - Adapt friendclass to Doxygen 1.9. #618
+
+- 2020-12-16 - Breathe v4.25.1
+
+ - Addendum to #606, for functions with '...'. #609
+
+- 2020-12-15 - Breathe v4.25.0
+
+ - Add support for \parblock parsing and rendering. #603
+ - Allow lookup in doxygenfunction without writing param names. #606
+
- 2020-12-01 - Breathe v4.24.1
- Fix anchors on pages generated by Doxygen >= 1.8.17. #602
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/breathe-4.24.1/breathe/__init__.py new/breathe-4.27.0/breathe/__init__.py
--- old/breathe-4.24.1/breathe/__init__.py 2020-12-01 22:19:50.000000000 +0100
+++ new/breathe-4.27.0/breathe/__init__.py 2021-02-16 16:26:15.000000000 +0100
@@ -4,7 +4,7 @@
from sphinx.application import Sphinx
-__version__ = '4.24.1'
+__version__ = '4.27.0'
def setup(app: Sphinx):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/breathe-4.24.1/breathe/directives.py new/breathe-4.27.0/breathe/directives.py
--- old/breathe-4.24.1/breathe/directives.py 2020-12-01 22:19:50.000000000 +0100
+++ new/breathe-4.27.0/breathe/directives.py 2021-02-16 16:26:15.000000000 +0100
@@ -28,7 +28,7 @@
import re
import subprocess
-from typing import Any, List, Type # noqa
+from typing import Any, List, Optional, Type # noqa
class NoMatchingFunctionError(BreatheError):
@@ -76,13 +76,22 @@
return warning.warn('doxygenfunction: %s' % e)
# Extract arguments from the function name.
- args = self.parse_args(args)
+ args = self._parse_args(args)
- finder_filter = self.filter_factory.create_function_finder_filter(namespace, function_name)
+ finder_filter = self.filter_factory.create_function_and_all_friend_finder_filter(
+ namespace, function_name)
# TODO: find a more specific type for the Doxygen nodes
- matches = [] # type: List[Any]
- finder.filter_(finder_filter, matches)
+ matchesAll = [] # type: List[Any]
+ finder.filter_(finder_filter, matchesAll)
+ matches = []
+ for m in matchesAll:
+ # only take functions and friend functions
+ # ignore friend classes
+ node = m[0]
+ if node.kind == 'friend' and not node.argsstring:
+ continue
+ matches.append(m)
# Create it ahead of time as it is cheap and it is ugly to declare it for both exception
# clauses below
@@ -92,43 +101,30 @@
self.lineno,
namespace='%s::' % namespace if namespace else '',
function=function_name,
- args=', '.join(args)
+ args=str(args)
)
try:
- node_stack = self.resolve_function(matches, args, project_info)
+ node_stack = self._resolve_function(matches, args, project_info)
except NoMatchingFunctionError:
return warning.warn('doxygenfunction: Cannot find function "{namespace}{function}" '
'{tail}')
except UnableToResolveFunctionError as error:
- message = 'doxygenfunction: Unable to resolve multiple matches for function ' \
- '"{namespace}{function}" with arguments ({args}) {tail}.\n' \
+ message = 'doxygenfunction: Unable to resolve function ' \
+ '"{namespace}{function}" with arguments {args} {tail}.\n' \
'Potential matches:\n'
- # We want to create a string for the console output and a set of docutils nodes
- # for rendering into the final output. We handle the final output as a literal string
- # with a txt based list of the options.
- literal_text = ''
-
- # TODO: We're cheating here with the set() as signatures has repeating entries for some
- # reason (failures in the matcher_stack code) so we consolidate them by shoving them in
- # a set to remove duplicates. Should be fixed!
- signatures = ''
- for i, entry in enumerate(sorted(set(error.signatures))):
- if i:
- literal_text += '\n'
- # Replace new lines with a new line & enough spacing to reach the appropriate
- # alignment for our simple plain text list
- literal_text += '- %s' % entry.replace('\n', '\n ')
- signatures += ' - %s\n' % entry.replace('\n', '\n ')
- block = nodes.literal_block('', '', nodes.Text(literal_text))
+ text = ''
+ for i, entry in enumerate(sorted(error.signatures)):
+ text += '- %s\n' % entry
+ block = nodes.literal_block('', '', nodes.Text(text))
formatted_message = warning.format(message)
warning_nodes = [
nodes.paragraph("", "", nodes.Text(formatted_message)),
block
]
result = warning.warn(message, rendered_nodes=warning_nodes,
- unformatted_suffix=signatures)
+ unformatted_suffix=text)
return result
target_handler = create_target_handler(self.options, project_info, self.state.document)
@@ -137,44 +133,29 @@
return self.render(node_stack, project_info, filter_, target_handler, NullMaskFactory(),
self.directive_args)
- def parse_args(self, function_description):
- # Strip off trailing qualifiers
- pattern = re.compile(r'''(?<= \)) \s*
- (?: = \s* 0)? \s* $ ''',
- re.VERBOSE)
-
- function_description = re.sub(pattern,
- '',
- function_description)
-
- paren_index = function_description.find('(')
- if paren_index == -1:
- return []
- # If it is empty parenthesis, then return empty list as we want empty parenthesis coming
- # from the xml file to match the user's function when the user doesn't provide parenthesis
- # ie. when there are no args anyway
- elif function_description == '()':
- return []
- else:
- # Parse the function name string, eg. f(int, float) to
- # extract the types so we can use them for matching
- args = []
- num_open_brackets = -1
- start = paren_index + 1
- for i in range(paren_index, len(function_description)):
- c = function_description[i]
- if c == '(' or c == '<':
- num_open_brackets += 1
- elif c == ')' or c == '>':
- num_open_brackets -= 1
- elif c == ',' and num_open_brackets == 0:
- args.append(function_description[start:i].strip())
- start = i + 1
- args.append(function_description[start:-1].strip())
- return args
+ def _parse_args(self, function_description: str) -> Optional[cpp.ASTParametersQualifiers]:
+ if function_description == '':
+ return None
+
+ parser = cpp.DefinitionParser(function_description,
+ location=self.get_source_info(),
+ config=self.config)
+ paramQual = parser._parse_parameters_and_qualifiers(paramMode='function')
+ # now erase the parameter names
+ for p in paramQual.args:
+ if p.arg is None:
+ assert p.ellipsis
+ continue
+ declarator = p.arg.type.decl
+ while hasattr(declarator, 'next'):
+ declarator = declarator.next # type: ignore
+ assert hasattr(declarator, 'declId')
+ declarator.declId = None # type: ignore
+ p.arg.init = None # type: ignore
+ return paramQual
- def create_function_signature(self, node_stack, project_info, filter_, target_handler,
- mask_factory, directive_args):
+ def _create_function_signature(self, node_stack, project_info, filter_, target_handler,
+ mask_factory, directive_args) -> str:
"Standard render process used by subclasses"
try:
@@ -192,7 +173,8 @@
return format_parser_error("doxygenclass", e.error, e.filename, self.state,
self.lineno, True)
except FileIOError as e:
- return format_parser_error("doxygenclass", e.error, e.filename, self.state, self.lineno)
+ return format_parser_error("doxygenclass", e.error, e.filename, self.state,
+ self.lineno, False)
context = RenderContext(node_stack, mask_factory, directive_args)
node = node_stack[0]
@@ -212,16 +194,12 @@
ast = parser.parse_declaration('function', 'function')
return str(ast)
- def resolve_function(self, matches, args, project_info):
+ def _resolve_function(self, matches, args: Optional[cpp.ASTParametersQualifiers], project_info):
if not matches:
raise NoMatchingFunctionError()
- if len(matches) == 1:
- return matches[0]
-
- signatures = []
-
- # Iterate over the potential matches
+ res = []
+ candSignatures = []
for entry in matches:
text_options = {'no-link': u'', 'outline': u''}
@@ -235,20 +213,29 @@
directive_args = self.directive_args[:]
directive_args[2] = text_options
- signature = self.create_function_signature(entry, project_info, filter_, target_handler,
- mask_factory, directive_args)
- signatures.append(signature)
-
- match = re.match(r"([^(]*)(.*)", signature)
- match_args = match.group(2)
-
- # Parse the text to find the arguments
- match_args = self.parse_args(match_args)
-
- # Match them against the arg spec
- if args == match_args:
- return entry
- raise UnableToResolveFunctionError(signatures)
+ signature = self._create_function_signature(entry, project_info, filter_,
+ target_handler,
+ mask_factory, directive_args)
+ candSignatures.append(signature)
+
+ if args is not None:
+ match = re.match(r"([^(]*)(.*)", signature)
+ assert match
+ _match_args = match.group(2)
+
+ # Parse the text to find the arguments
+ match_args = self._parse_args(_match_args)
+
+ # Match them against the arg spec
+ if args != match_args:
+ continue
+
+ res.append((entry, signature))
+
+ if len(res) == 1:
+ return res[0][0]
+ else:
+ raise UnableToResolveFunctionError(candSignatures)
class _DoxygenClassLikeDirective(BaseDirective):
@@ -603,7 +590,7 @@
app.add_config_value("breathe_separate_member_pages", False, 'env')
breathe_css = "breathe.css"
- if (os.path.exists(os.path.join(app.confdir, "_static", breathe_css))):
+ if (os.path.exists(os.path.join(app.confdir, "_static", breathe_css))): # type: ignore
app.add_stylesheet(breathe_css)
def write_file(directory, filename, content):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/breathe-4.24.1/breathe/parser/compound.py new/breathe-4.27.0/breathe/parser/compound.py
--- old/breathe-4.24.1/breathe/parser/compound.py 2020-12-01 22:19:50.000000000 +0100
+++ new/breathe-4.27.0/breathe/parser/compound.py 2021-02-16 16:26:15.000000000 +0100
@@ -1050,12 +1050,35 @@
obj_ = supermod.docAnchorType.factory()
obj_.build(child_)
self.content.append(obj_)
+ elif child_.nodeType == Node.ELEMENT_NODE and nodeName_ == "parblock":
+ obj_ = supermod.docParBlockType.factory()
+ obj_.build(child_)
+ self.content.append(obj_)
+ elif child_.nodeType == Node.ELEMENT_NODE and nodeName_ == "table":
+ obj_ = supermod.docTableType.factory()
+ obj_.build(child_)
+ self.content.append(obj_)
supermod.docParaType.subclass = docParaTypeSub
# end class docParaTypeSub
+class docParBlockTypeSub(supermod.docParBlockType):
+
+ node_type = "docparblock"
+
+ def __init__(self, para=None):
+ supermod.docParBlockType.__init__(self, para)
+
+ def buildChildren(self, child_, nodeName_):
+ supermod.docParBlockType.buildChildren(self, child_, nodeName_)
+
+
+supermod.docParBlockType.subclass = docParBlockTypeSub
+# end class docParBlockTypeSub
+
+
class docMarkupTypeSub(supermod.docMarkupType):
node_type = "docmarkup"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/breathe-4.24.1/breathe/parser/compoundsuper.py new/breathe-4.27.0/breathe/parser/compoundsuper.py
--- old/breathe-4.24.1/breathe/parser/compoundsuper.py 2020-12-01 22:19:50.000000000 +0100
+++ new/breathe-4.27.0/breathe/parser/compoundsuper.py 2021-02-16 16:26:15.000000000 +0100
@@ -2888,6 +2888,10 @@
self.content_ = []
else:
self.content_ = content_
+ if title is None:
+ self.title = ""
+ else:
+ self.title = title
def factory(*args_, **kwargs_):
if docSect1Type.subclass:
return docSect1Type.subclass(*args_, **kwargs_)
@@ -2943,11 +2947,7 @@
def buildChildren(self, child_, nodeName_):
if child_.nodeType == Node.ELEMENT_NODE and \
nodeName_ == 'title':
- childobj_ = docTitleType.factory()
- childobj_.build(child_)
- obj_ = self.mixedclass_(MixedContainer.CategoryComplex,
- MixedContainer.TypeNone, 'title', childobj_)
- self.content_.append(obj_)
+ self.title = child_.childNodes[0].nodeValue
elif child_.nodeType == Node.ELEMENT_NODE and \
nodeName_ == 'para':
childobj_ = docParaType.factory()
@@ -2989,6 +2989,10 @@
self.content_ = []
else:
self.content_ = content_
+ if title is None:
+ title = ""
+ else:
+ title = title
def factory(*args_, **kwargs_):
if docSect2Type.subclass:
return docSect2Type.subclass(*args_, **kwargs_)
@@ -3044,11 +3048,7 @@
def buildChildren(self, child_, nodeName_):
if child_.nodeType == Node.ELEMENT_NODE and \
nodeName_ == 'title':
- childobj_ = docTitleType.factory()
- childobj_.build(child_)
- obj_ = self.mixedclass_(MixedContainer.CategoryComplex,
- MixedContainer.TypeNone, 'title', childobj_)
- self.content_.append(obj_)
+ self.title = child_.childNodes[0].nodeValue
elif child_.nodeType == Node.ELEMENT_NODE and \
nodeName_ == 'para':
childobj_ = docParaType.factory()
@@ -3090,6 +3090,10 @@
self.content_ = []
else:
self.content_ = content_
+ if title is None:
+ self.title = ""
+ else:
+ self.title = title
def factory(*args_, **kwargs_):
if docSect3Type.subclass:
return docSect3Type.subclass(*args_, **kwargs_)
@@ -3145,11 +3149,7 @@
def buildChildren(self, child_, nodeName_):
if child_.nodeType == Node.ELEMENT_NODE and \
nodeName_ == 'title':
- childobj_ = docTitleType.factory()
- childobj_.build(child_)
- obj_ = self.mixedclass_(MixedContainer.CategoryComplex,
- MixedContainer.TypeNone, 'title', childobj_)
- self.content_.append(obj_)
+ self.title = child_.childNodes[0].nodeValue
elif child_.nodeType == Node.ELEMENT_NODE and \
nodeName_ == 'para':
childobj_ = docParaType.factory()
@@ -5682,6 +5682,72 @@
# end class docCharType
+class docParBlockType(GeneratedsSuper):
+ subclass = None
+ superclass = None
+ def __init__(self, mixedclass_=None, para=None):
+ if mixedclass_ is None:
+ self.mixedclass_ = MixedContainer
+ else:
+ self.mixedclass_ = mixedclass_
+ if para is None:
+ self.para = []
+ else:
+ self.para = para
+ def factory(*args_, **kwargs_):
+ if docParBlockType.subclass:
+ return docParBlockType.subclass(*args_, **kwargs_)
+ else:
+ return docParBlockType(*args_, **kwargs_)
+ factory = staticmethod(factory)
+ def get_para(self): return self.para
+ def set_para(self, para): self.para = para
+ def add_para(self, value): self.para.append(value)
+ def insert_para(self, index, value): self.para[index] = value
+ def export(self, outfile, level, namespace_='', name_='docParBlockType', namespacedef_=''):
+ showIndent(outfile, level)
+ outfile.write('<%s%s%s' % (namespace_, name_, namespacedef_ and ' ' + namespacedef_ or '', ))
+ self.exportAttributes(outfile, level, namespace_, name_='docParBlockType')
+ if self.hasContent_():
+ outfile.write('>\n')
+ self.exportChildren(outfile, level + 1, namespace_, name_)
+ showIndent(outfile, level)
+ outfile.write('</%s%s>\n' % (namespace_, name_))
+ else:
+ outfile.write('/>\n')
+ def exportAttributes(self, outfile, level, namespace_='', name_='docParBlockType'):
+ pass
+ def exportChildren(self, outfile, level, namespace_='', name_='docParBlockType'):
+ for para_ in self.para:
+ para_.export(outfile, level, namespace_, name_='para')
+ def hasContent_(self):
+ if (
+ self.para
+ ):
+ return True
+ else:
+ return False
+ def build(self, node_):
+ attrs = node_.attributes
+ self.buildAttributes(attrs)
+ self.valueOf_ = ''
+ for child_ in node_.childNodes:
+ nodeName_ = child_.nodeName.split(':')[-1]
+ self.buildChildren(child_, nodeName_)
+ def buildAttributes(self, attrs):
+ pass
+ def buildChildren(self, child_, nodeName_):
+ if child_.nodeType == Node.ELEMENT_NODE and \
+ nodeName_ == 'para':
+ obj_ = docParaType.factory()
+ obj_.build(child_)
+ obj_ = self.mixedclass_(MixedContainer.CategoryComplex,
+ MixedContainer.TypeNone, 'para', obj_)
+ self.para.append(obj_)
+
+# end class docParBlockType
+
+
class docEmptyType(GeneratedsSuper):
subclass = None
superclass = None
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/breathe-4.24.1/breathe/path_handler.py new/breathe-4.27.0/breathe/path_handler.py
--- old/breathe-4.24.1/breathe/path_handler.py 2020-12-01 22:19:50.000000000 +0100
+++ new/breathe-4.27.0/breathe/path_handler.py 2021-02-16 16:26:15.000000000 +0100
@@ -15,4 +15,4 @@
"""
# os.path.join does the appropriate handling if _project_path is an absolute path
- return os.path.join(app.confdir, directory, filename)
+ return os.path.join(app.confdir, directory, filename) # type: ignore
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/breathe-4.24.1/breathe/renderer/filter.py new/breathe-4.27.0/breathe/renderer/filter.py
--- old/breathe-4.24.1/breathe/renderer/filter.py 2020-12-01 22:19:50.000000000 +0100
+++ new/breathe-4.27.0/breathe/renderer/filter.py 2021-02-16 16:26:15.000000000 +0100
@@ -1026,16 +1026,17 @@
return (parent_is_compound & parent_is_file & node_matches) \
| (parent_is_compound & parent_is_not_file & node_matches)
- def create_function_finder_filter(self, namespace: str, name: str) -> Filter:
+ def create_function_and_all_friend_finder_filter(self, namespace: str, name: str) -> Filter:
parent = Parent()
parent_is_compound = parent.node_type == 'compound'
parent_is_group = parent.kind == 'group'
function_filter = self.create_member_finder_filter(namespace, name, 'function')
+ friend_filter = self.create_member_finder_filter(namespace, name, 'friend')
# Get matching functions but only ones where the parent is not a group. We want to skip
# function entries in groups as we'll find the same functions in a file's xml output
# elsewhere and having more than one match is confusing for our logic later on.
- return function_filter & ~(parent_is_compound & parent_is_group)
+ return (function_filter | friend_filter) & ~(parent_is_compound & parent_is_group)
def create_enumvalue_finder_filter(self, name: str) -> Filter:
"""Returns a filter which looks for an enumvalue with the specified name."""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/breathe-4.24.1/breathe/renderer/sphinxrenderer.py new/breathe-4.27.0/breathe/renderer/sphinxrenderer.py
--- old/breathe-4.24.1/breathe/renderer/sphinxrenderer.py 2020-12-01 22:19:50.000000000 +0100
+++ new/breathe-4.27.0/breathe/renderer/sphinxrenderer.py 2021-02-16 16:26:15.000000000 +0100
@@ -148,6 +148,26 @@
# ----------------------------------------------------------------------------
+# Create multi-inheritance classes to merge BaseObject from Breathe with
+# classes from phpdomain.
+# We use capitalization (and the namespace) to differentiate between the two
+
+if php is not None:
+ class PHPNamespaceLevel(BaseObject, php.PhpNamespacelevel):
+ """Description of a PHP item *in* a namespace (not the space itself)."""
+ pass
+
+ class PHPClassLike(BaseObject, php.PhpClasslike):
+ pass
+
+ class PHPClassMember(BaseObject, php.PhpClassmember):
+ pass
+
+ class PHPGlobalLevel(BaseObject, php.PhpGloballevel):
+ pass
+
+# ----------------------------------------------------------------------------
+
if cs is not None:
class CSharpCurrentNamespace(BaseObject, cs.CSharpCurrentNamespace):
pass
@@ -239,12 +259,13 @@
if php is not None:
php_classes = {
- 'function': (php.PhpNamespacelevel, 'function'),
- 'class': (php.PhpClasslike, 'class'),
- 'attr': (php.PhpClassmember, 'attr'),
- 'method': (php.PhpClassmember, 'method'),
- 'global': (php.PhpGloballevel, 'global'),
+ 'function': (PHPNamespaceLevel, 'function'),
+ 'class': (PHPClassLike, 'class'),
+ 'attr': (PHPClassMember, 'attr'),
+ 'method': (PHPClassMember, 'method'),
+ 'global': (PHPGlobalLevel, 'global'),
}
+ php_classes_default = php_classes['class'] # Directive when no matching ones were found
if cs is not None:
cs_classes = {
@@ -291,8 +312,12 @@
else:
if arg_0 in ['variable']:
arg_0 = 'global'
- cls, name = DomainDirectiveFactory.php_classes.get(
- arg_0, (php.PhpClasslike, 'class'))
+
+ if arg_0 in DomainDirectiveFactory.php_classes:
+ cls, name = DomainDirectiveFactory.php_classes[arg_0] # type: ignore
+ else:
+ cls, name = DomainDirectiveFactory.php_classes_default # type: ignore
+
elif cs is not None and domain == 'cs':
cls, name = DomainDirectiveFactory.cs_classes[args[0]] # type: ignore
else:
@@ -1165,13 +1190,13 @@
# Get all sub sections
for sectiondef in node.sectiondef:
+ kind = sectiondef.kind
+ if section_order is not None and kind not in section_order:
+ continue
child_nodes = self.render(sectiondef)
if not child_nodes:
# Skip empty section
continue
- kind = sectiondef.kind
- if section_order is not None and kind not in section_order:
- continue
rst_node = nodes.container(classes=['breathe-sectiondef'])
rst_node.document = self.state.document
rst_node['objtype'] = kind
@@ -1284,6 +1309,9 @@
return [nodes.paragraph("", "", *nodelist)]
+ def visit_docparblock(self, node) -> List[Node]:
+ return self.render_iterable(node.para)
+
def visit_docimage(self, node) -> List[Node]:
"""Output docutils image node using name attribute from xml as the uri"""
@@ -1316,8 +1344,20 @@
print("Warning: does not currently handle 'small' text display")
return [creator("", "", *nodelist)]
- def visit_docsect1(self, node) -> List[Node]:
- return []
+ def visit_docsectN(self, node) -> List[Node]:
+ '''
+ Docutils titles are defined by their level inside the document so
+ the proper structure is only guaranteed by the Doxygen XML.
+
+ Doxygen command mapping to XML element name:
+ @section == sect1, @subsection == sect2, @subsubsection == sect3
+ '''
+ section = nodes.section()
+ section['ids'].append(self.get_refid(node.id))
+ section += self.create_doxygen_target(node)
+ section += nodes.title(node.title, node.title)
+ section += self.render_iterable(node.content_)
+ return [section]
def visit_docsimplesect(self, node) -> List[Node]:
"""Other Type documentation such as Warning, Note, Returns, etc"""
@@ -1582,9 +1622,39 @@
content = node.term.content_
return self.render_iterable(content)
- def visit_docanchor(self, node) -> List[None]:
+ def visit_docanchor(self, node) -> List[Node]:
return self.create_doxygen_target(node)
+ def visit_docentry(self, node) -> List[Node]:
+ col = nodes.entry()
+ col += self.render_iterable(node.para)
+ if node.thead == 'yes':
+ col['heading'] = True
+ return [col]
+
+ def visit_docrow(self, node) -> List[Node]:
+ row = nodes.row()
+ cols = self.render_iterable(node.entry)
+ if all(col.get('heading', False) for col in cols):
+ elem = nodes.thead()
+ else:
+ elem = nodes.tbody()
+ row += cols
+ elem += row
+ return [elem]
+
+ def visit_doctable(self, node) -> List[Node]:
+ table = nodes.table()
+ table['classes'] += ['colwidths-auto']
+ tgroup = nodes.tgroup(cols=node.cols)
+ for _ in range(node.cols):
+ colspec = nodes.colspec()
+ colspec.attributes['colwidth'] = 'auto'
+ tgroup += colspec
+ table += tgroup
+ tgroup += self.render_iterable(node.row)
+ return [table]
+
def visit_mixedcontainer(self, node) -> List[Node]:
return self.render_optional(node.getValue())
@@ -1603,12 +1673,25 @@
if dom == 'py':
declaration = name + node.get_argsstring()
else:
- declaration = ' '.join([
- self.create_template_prefix(node),
- ''.join(n.astext() for n in self.render(node.get_type())), # type: ignore
- name,
- node.get_argsstring()
- ])
+ elements = [self.create_template_prefix(node)]
+ if node.static == 'yes':
+ elements.append('static')
+ if node.inline == 'yes':
+ elements.append('inline')
+ if node.kind == 'friend':
+ elements.append('friend')
+ if node.virt in ('virtual', 'pure-virtual'):
+ elements.append('virtual')
+ if node.explicit == 'yes':
+ elements.append('explicit')
+ if 'constexpr' in dir(node):
+ assert node.constexpr == 'yes'
+ elements.append('constexpr')
+ elements.append(''.join(n.astext()
+ for n in self.render(node.get_type()))) # type: ignore
+ elements.append(name)
+ elements.append(node.get_argsstring())
+ declaration = ' '.join(elements)
nodes = self.handle_declaration(node, declaration)
return nodes
else:
@@ -1753,16 +1836,19 @@
if len(initializer) != 0:
options['value'] = initializer
else:
+ elements = [self.create_template_prefix(node)]
+ if node.static == 'yes':
+ elements.append('static')
+ if node.mutable == 'yes':
+ elements.append('mutable')
typename = ''.join(n.astext() for n in self.render(node.get_type()))
if dom == 'c' and '::' in typename:
typename = typename.replace('::', '.')
- declaration = ' '.join([
- self.create_template_prefix(node),
- typename,
- name,
- node.get_argsstring(),
- self.make_initializer(node)
- ])
+ elements.append(typename)
+ elements.append(name)
+ elements.append(node.get_argsstring())
+ elements.append(self.make_initializer(node))
+ declaration = ' '.join(elements)
if not dom or dom in ('c', 'cpp', 'py', 'cs'):
return self.handle_declaration(node, declaration, options=options)
else:
@@ -1778,7 +1864,11 @@
desc += signode
typ = ''.join(n.astext() for n in self.render(node.get_type())) # type: ignore
- assert typ in ("friend class", "friend struct")
+ # in Doxygen < 1.9 the 'friend' part is there, but afterwards not
+ # https://github.com/michaeljones/breathe/issues/616
+ assert typ in ("friend class", "friend struct", "class", "struct")
+ if not typ.startswith('friend '):
+ typ = 'friend ' + typ
signode += addnodes.desc_annotation(typ, typ)
signode += nodes.Text(' ')
# expr = cpp.CPPExprRole(asCode=False)
@@ -1934,10 +2024,13 @@
"docreftext": visit_docreftext,
"docheading": visit_docheading,
"docpara": visit_docpara,
+ "docparblock": visit_docparblock,
"docimage": visit_docimage,
"docurllink": visit_docurllink,
"docmarkup": visit_docmarkup,
- "docsect1": visit_docsect1,
+ "docsect1": visit_docsectN,
+ "docsect2": visit_docsectN,
+ "docsect3": visit_docsectN,
"docsimplesect": visit_docsimplesect,
"doctitle": visit_doctitle,
"docformula": visit_docformula,
@@ -1964,6 +2057,9 @@
"docvariablelist": visit_docvariablelist,
"docvarlistentry": visit_docvarlistentry,
"docanchor": visit_docanchor,
+ "doctable": visit_doctable,
+ "docrow": visit_docrow,
+ "docentry": visit_docentry,
}
def render(self, node, context: Optional[RenderContext] = None) -> List[Node]:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/breathe-4.24.1/documentation/source/conf.py new/breathe-4.27.0/documentation/source/conf.py
--- old/breathe-4.24.1/documentation/source/conf.py 2020-12-01 22:19:50.000000000 +0100
+++ new/breathe-4.27.0/documentation/source/conf.py 2021-02-16 16:26:15.000000000 +0100
@@ -204,6 +204,7 @@
"programlisting":"../../examples/specific/programlisting/xml/",
"image":"../../examples/specific/image/xml/",
"lists":"../../examples/specific/lists/xml/",
+ "tables":"../../examples/specific/tables/xml/",
"group":"../../examples/specific/group/xml/",
"union":"../../examples/specific/union/xml/",
"qtsignalsandslots":"../../examples/specific/qtsignalsandslots/xml/",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/breathe-4.24.1/documentation/source/directives.rst new/breathe-4.27.0/documentation/source/directives.rst
--- old/breathe-4.24.1/documentation/source/directives.rst 2020-12-01 22:19:50.000000000 +0100
+++ new/breathe-4.27.0/documentation/source/directives.rst 2021-02-16 16:26:15.000000000 +0100
@@ -438,6 +438,12 @@
"h" : "cpp",
}
+ You can also use this to enable support for Doxygen XML generated from PHP code::
+
+ breathe_domain_by_extension = {
+ "php" : "php",
+ }
+
.. confval:: breathe_domain_by_file_pattern
Allows you to specify domains for particular files by wildcard syntax. This
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/breathe-4.24.1/documentation/source/doxygen.rst new/breathe-4.27.0/documentation/source/doxygen.rst
--- old/breathe-4.24.1/documentation/source/doxygen.rst 2020-12-01 22:19:50.000000000 +0100
+++ new/breathe-4.27.0/documentation/source/doxygen.rst 2021-02-16 16:26:15.000000000 +0100
@@ -84,6 +84,14 @@
.. doxygenindex::
:path: ../../examples/doxygen/par/xml
+Parblock
+--------
+
+.. cpp:namespace:: @ex_doxygen_parblock
+
+.. doxygenindex::
+ :path: ../../examples/doxygen/parblock/xml
+
Overload
--------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/breathe-4.24.1/documentation/source/index.rst new/breathe-4.27.0/documentation/source/index.rst
--- old/breathe-4.24.1/documentation/source/index.rst 2020-12-01 22:19:50.000000000 +0100
+++ new/breathe-4.27.0/documentation/source/index.rst 2021-02-16 16:26:15.000000000 +0100
@@ -69,6 +69,7 @@
customcss
groups
lists
+ tables
template
Contributing
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/breathe-4.24.1/documentation/source/tables.rst new/breathe-4.27.0/documentation/source/tables.rst
--- old/breathe-4.24.1/documentation/source/tables.rst 1970-01-01 01:00:00.000000000 +0100
+++ new/breathe-4.27.0/documentation/source/tables.rst 2021-02-16 16:26:15.000000000 +0100
@@ -0,0 +1,89 @@
+Tables
+======
+
+Breathe has support for tables in the doxygen documentation. They are output as
+follows.
+
+.. cpp:namespace:: @ex_tables_simple
+
+A simple Markdown syntax table ::
+
+ .. doxygenclass:: Table_1
+ :project: tables
+
+It renders as:
+
+----
+
+.. doxygenclass:: Table_1
+ :project: tables
+
+----
+
+.. cpp:namespace:: @ex_tables_aligned
+
+A Markdown syntax table with alignment ::
+
+ .. doxygenclass:: Table_2
+ :project: tables
+
+It renders as:
+
+----
+
+.. doxygenclass:: Table_2
+ :project: tables
+
+----
+
+.. cpp:namespace:: @ex_tables_rowspan
+
+A Markdown syntax table with rowspan (and alignment) ::
+
+ .. doxygenclass:: Table_3
+ :project: tables
+
+It renders as:
+
+----
+
+.. only:: html
+
+ .. doxygenclass:: Table_3
+ :project: tables
+
+----
+
+.. cpp:namespace:: @ex_tables_colspan
+
+A Markdown syntax table with colspan (and alignment) ::
+
+ .. doxygenclass:: Table_4
+ :project: tables
+
+It renders as:
+
+----
+
+.. only:: html
+
+ .. doxygenclass:: Table_4
+ :project: tables
+
+----
+
+.. cpp:namespace:: @ex_tables_doxygen
+
+A Doxygen syntax table ::
+
+ .. doxygenclass:: Table_5
+ :project: tables
+
+It renders as:
+
+----
+
+.. only:: html
+
+ .. doxygenclass:: Table_5
+ :project: tables
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/breathe-4.24.1/examples/doxygen/.gitignore new/breathe-4.27.0/examples/doxygen/.gitignore
--- old/breathe-4.24.1/examples/doxygen/.gitignore 2020-12-01 22:19:50.000000000 +0100
+++ new/breathe-4.27.0/examples/doxygen/.gitignore 2021-02-16 16:26:15.000000000 +0100
@@ -18,6 +18,7 @@
overload
page
par
+parblock
pyexample
qtstyle
relates
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/breathe-4.24.1/examples/doxygen/Makefile new/breathe-4.27.0/examples/doxygen/Makefile
--- old/breathe-4.24.1/examples/doxygen/Makefile 2020-12-01 22:19:50.000000000 +0100
+++ new/breathe-4.27.0/examples/doxygen/Makefile 2021-02-16 16:26:15.000000000 +0100
@@ -27,6 +27,7 @@
relates/xml/index.xml \
author/xml/index.xml \
par/xml/index.xml \
+ parblock/xml/index.xml \
overload/xml/index.xml \
example/xml/index.xml \
include/xml/index.xml \
@@ -49,7 +50,7 @@
clean:
rm -rf class define enum file func page relates author \
- par overload example include qtstyle jdstyle structcmd \
+ par parblock overload example include qtstyle jdstyle structcmd \
autolink tag restypedef afterdoc template tag group diagrams \
memgrp docstring pyexample mux manual interface
@@ -80,6 +81,9 @@
par/xml/index.xml: par.cpp par.cfg
$(DOXYGEN) par.cfg
+parblock/xml/index.xml: parblock.cpp parblock.cfg
+ $(DOXYGEN) parblock.cfg
+
overload/xml/index.xml: overload.cpp overload.cfg
$(DOXYGEN) overload.cfg
@@ -140,4 +144,3 @@
ifneq ($(HAVE_DOT),)
$(DOXYGEN) diagrams.cfg
endif
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/breathe-4.24.1/examples/doxygen/parblock.cfg new/breathe-4.27.0/examples/doxygen/parblock.cfg
--- old/breathe-4.24.1/examples/doxygen/parblock.cfg 1970-01-01 01:00:00.000000000 +0100
+++ new/breathe-4.27.0/examples/doxygen/parblock.cfg 2021-02-16 16:26:15.000000000 +0100
@@ -0,0 +1,11 @@
+PROJECT_NAME = "Parblock Command"
+OUTPUT_DIRECTORY = parblock
+GENERATE_LATEX = NO
+GENERATE_MAN = NO
+GENERATE_RTF = NO
+CASE_SENSE_NAMES = NO
+INPUT = parblock.cpp
+QUIET = YES
+JAVADOC_AUTOBRIEF = YES
+GENERATE_HTML = NO
+GENERATE_XML = YES
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/breathe-4.24.1/examples/doxygen/parblock.cpp new/breathe-4.27.0/examples/doxygen/parblock.cpp
--- old/breathe-4.24.1/examples/doxygen/parblock.cpp 1970-01-01 01:00:00.000000000 +0100
+++ new/breathe-4.27.0/examples/doxygen/parblock.cpp 2021-02-16 16:26:15.000000000 +0100
@@ -0,0 +1,24 @@
+/*! \class Test15
+ * Normal text.
+ *
+ * \par A paragraph followed by a paragraph block:
+ * \parblock
+ * Contents of the first paragraph in the block.
+ *
+ * New paragraph under the same heading.
+ * \endparblock
+ *
+ * \note
+ * This note consists of three paragraphs in a block.
+ * \parblock
+ * This is the first paragraph in the block.
+ *
+ * And this is the second paragraph in the block.
+ *
+ * And still a third paragraph in the block.
+ * \endparblock
+ *
+ * More normal text.
+ */
+
+class Test15 {};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/breathe-4.24.1/examples/specific/Makefile new/breathe-4.27.0/examples/specific/Makefile
--- old/breathe-4.24.1/examples/specific/Makefile 2020-12-01 22:19:50.000000000 +0100
+++ new/breathe-4.27.0/examples/specific/Makefile 2021-02-16 16:26:15.000000000 +0100
@@ -23,7 +23,7 @@
image name union group struct struct_function qtsignalsandslots lists \
headings links parameters template_class template_class_non_type \
template_function template_type_alias template_specialisation \
- enum define interface xrefsect \
+ enum define interface xrefsect tables \
cpp_anon cpp_enum cpp_union cpp_function cpp_friendclass \
cpp_inherited_members cpp_trailing_return_type \
c_file c_struct c_enum c_typedef c_macro c_union
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/breathe-4.24.1/examples/specific/tables.cfg new/breathe-4.27.0/examples/specific/tables.cfg
--- old/breathe-4.24.1/examples/specific/tables.cfg 1970-01-01 01:00:00.000000000 +0100
+++ new/breathe-4.27.0/examples/specific/tables.cfg 2021-02-16 16:26:15.000000000 +0100
@@ -0,0 +1,11 @@
+PROJECT_NAME = "Tables Option"
+OUTPUT_DIRECTORY = tables
+GENERATE_LATEX = NO
+GENERATE_MAN = NO
+GENERATE_RTF = NO
+CASE_SENSE_NAMES = NO
+INPUT = tables.h
+QUIET = YES
+JAVADOC_AUTOBRIEF = YES
+GENERATE_HTML = NO
+GENERATE_XML = YES
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/breathe-4.24.1/examples/specific/tables.h new/breathe-4.27.0/examples/specific/tables.h
--- old/breathe-4.24.1/examples/specific/tables.h 1970-01-01 01:00:00.000000000 +0100
+++ new/breathe-4.27.0/examples/specific/tables.h 2021-02-16 16:26:15.000000000 +0100
@@ -0,0 +1,96 @@
+/**
+ * \brief This is a simple Markdown table example.
+ *
+ * Following is a simple table using Markdown syntax.
+ *
+ * First Header | Second Header
+ * ------------- | -------------
+ * Content Cell | Content Cell
+ * Content Cell | Content Cell
+ *
+ * And this is some more text.
+ */
+class Table_1
+{
+};
+
+/**
+ * \brief This is a Markdown table with alignment.
+ *
+ * Following is a table with alignment using Markdown syntax.
+ *
+ * | Right | Center | Left |
+ * | ----: | :----: | :---- |
+ * | 10 | 10 | 10 |
+ * | 1000 | 1000 | 1000 |
+ *
+ * And this is some more text.
+ */
+class Table_2
+{
+};
+
+/**
+ * \brief This is a Markdown table with rowspan and alignment.
+ *
+ * Following is a table with rowspan and alignment using Markdown syntax.
+ *
+ * | Right | Center | Left |
+ * | ----: | :----: | :---- |
+ * | 10 | 10 | 10 |
+ * | ^ | 1000 | 1000 |
+ *
+ * And this is some more text.
+ */
+class Table_3
+{
+};
+
+/**
+ * \brief This is a Markdown table with colspan and alignment.
+ *
+ * Following is a table with colspan and alignment using Markdown syntax.
+ *
+ * | Right | Center | Left |
+ * | ----: | :----: | :---- |
+ * | 10 | 10 | 10 |
+ * | 1000 |||
+ *
+ * And this is some more text.
+ */
+class Table_4
+{
+};
+
+/**
+ * \brief This is a Doxygen table.
+ *
+ * Following is a table using Doxygen syntax (and all supported features).
+ *
+ * <table>
+ * <caption id="multi_row">Complex table</caption>
+ * <tr><th>Column 1 <th>Column 2 <th>Column 3
+ * <tr><td rowspan="2">cell row=1+2,col=1<td>cell row=1,col=2<td>cell row=1,col=3
+ * <tr><td rowspan="2">cell row=2+3,col=2 <td>cell row=2,col=3
+ * <tr><td>cell row=3,col=1 <td rowspan="2">cell row=3+4,col=3
+ * <tr><td colspan="2">cell row=4,col=1+2
+ * <tr><td>cell row=5,col=1 <td colspan="2">cell row=5,col=2+3
+ * <tr><td colspan="2" rowspan="2">cell row=6+7,col=1+2 <td>cell row=6,col=3
+ * <tr> <td>cell row=7,col=3
+ * <tr><td>cell row=8,col=1 <td>cell row=8,col=2\n
+ * <table>
+ * <tr><td>Inner cell row=1,col=1<td>Inner cell row=1,col=2
+ * <tr><td>Inner cell row=2,col=1<td>Inner cell row=2,col=2
+ * </table>
+ * <td>cell row=8,col=3
+ * <ul>
+ * <li>Item 1
+ * <li>Item 2
+ * </ul>
+ * </table>
+ *
+ * And this is some more text.
+ */
+class Table_5
+{
+};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/breathe-4.24.1/requirements/production.txt new/breathe-4.27.0/requirements/production.txt
--- old/breathe-4.24.1/requirements/production.txt 2020-12-01 22:19:50.000000000 +0100
+++ new/breathe-4.27.0/requirements/production.txt 2021-02-16 16:26:15.000000000 +0100
@@ -2,5 +2,5 @@
Jinja2>=2.7.3
MarkupSafe>=0.23
Pygments>=1.6
-Sphinx>=3.0,<3.4
+Sphinx>=3.0,<3.6
six>=1.9.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/breathe-4.24.1/setup.py new/breathe-4.27.0/setup.py
--- old/breathe-4.24.1/setup.py 2020-12-01 22:19:50.000000000 +0100
+++ new/breathe-4.27.0/setup.py 2021-02-16 16:26:15.000000000 +0100
@@ -14,7 +14,7 @@
render `Doxygen <http://www.doxygen.org>`__ xml output.
'''
-requires = ['Sphinx>=3.0,<3.4', 'docutils>=0.12', 'six>=1.9']
+requires = ['Sphinx>=3.0,<3.6', 'docutils>=0.12', 'six>=1.9']
if sys.version_info < (3, 5):
print('ERROR: Sphinx requires at least Python 3.5 to run.')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/breathe-4.24.1/tests/data/arange.xml new/breathe-4.27.0/tests/data/arange.xml
--- old/breathe-4.24.1/tests/data/arange.xml 1970-01-01 01:00:00.000000000 +0100
+++ new/breathe-4.27.0/tests/data/arange.xml 2021-02-16 16:26:15.000000000 +0100
@@ -0,0 +1,149 @@
+<sectiondef kind="typedef">
+<memberdef kind="function" id="1" prot="public" static="no" const="yes" explicit="no" inline="no" virt="non-virtual">
+ <type><ref refid="classat_1_1_tensor" kindref="compound">Tensor</ref></type>
+ <definition>Tensor at::arange</definition>
+ <argsstring>(Scalar end, const TensorOptions &options={})</argsstring>
+ <name>arange</name>
+ <param>
+ <type>Scalar</type>
+ <declname>end</declname>
+ </param>
+ <param>
+ <type>const TensorOptions &</type>
+ <declname>options</declname>
+ <defval>{}</defval>
+ </param>
+</memberdef>
+<memberdef kind="function" id="2" prot="public" static="no" const="yes" explicit="no" inline="no" virt="non-virtual">
+ <type><ref refid="classat_1_1_tensor" kindref="compound">Tensor</ref></type>
+ <definition>Tensor at::arange</definition>
+ <argsstring>(Scalar end, c10::optional< ScalarType > dtype, c10::optional< Layout > layout, c10::optional< Device > device, c10::optional< bool > pin_memory)</argsstring>
+ <name>arange</name>
+ <param>
+ <type>Scalar</type>
+ <declname>end</declname>
+ </param>
+ <param>
+ <type><ref refid="classc10_1_1optional" kindref="compound">c10::optional</ref>< ScalarType ></type>
+ <declname>dtype</declname>
+ </param>
+ <param>
+ <type><ref refid="classc10_1_1optional" kindref="compound">c10::optional</ref>< Layout ></type>
+ <declname>layout</declname>
+ </param>
+ <param>
+ <type><ref refid="classc10_1_1optional" kindref="compound">c10::optional</ref>< Device ></type>
+ <declname>device</declname>
+ </param>
+ <param>
+ <type><ref refid="classc10_1_1optional" kindref="compound">c10::optional</ref>< bool ></type>
+ <declname>pin_memory</declname>
+ </param>
+</memberdef>
+<memberdef kind="function" id="3" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
+ <type><ref refid="classat_1_1_tensor" kindref="compound">Tensor</ref></type>
+ <definition>Tensor at::arange</definition>
+ <argsstring>(Scalar start, Scalar end, const TensorOptions &options={})</argsstring>
+ <name>arange</name>
+ <param>
+ <type>Scalar</type>
+ <declname>start</declname>
+ </param>
+ <param>
+ <type>Scalar</type>
+ <declname>end</declname>
+ </param>
+ <param>
+ <type>const TensorOptions &</type>
+ <declname>options</declname>
+ <defval>{}</defval>
+ </param>
+</memberdef>
+<memberdef kind="function" id="4" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
+ <type><ref refid="classat_1_1_tensor" kindref="compound">Tensor</ref></type>
+ <definition>Tensor at::arange</definition>
+ <argsstring>(Scalar start, Scalar end, c10::optional< ScalarType > dtype, c10::optional< Layout > layout, c10::optional< Device > device, c10::optional< bool > pin_memory)</argsstring>
+ <name>arange</name>
+ <param>
+ <type>Scalar</type>
+ <declname>start</declname>
+ </param>
+ <param>
+ <type>Scalar</type>
+ <declname>end</declname>
+ </param>
+ <param>
+ <type><ref refid="classc10_1_1optional" kindref="compound">c10::optional</ref>< ScalarType ></type>
+ <declname>dtype</declname>
+ </param>
+ <param>
+ <type><ref refid="classc10_1_1optional" kindref="compound">c10::optional</ref>< Layout ></type>
+ <declname>layout</declname>
+ </param>
+ <param>
+ <type><ref refid="classc10_1_1optional" kindref="compound">c10::optional</ref>< Device ></type>
+ <declname>device</declname>
+ </param>
+ <param>
+ <type><ref refid="classc10_1_1optional" kindref="compound">c10::optional</ref>< bool ></type>
+ <declname>pin_memory</declname>
+ </param>
+</memberdef>
+<memberdef kind="function" id="5" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
+ <type><ref refid="classat_1_1_tensor" kindref="compound">Tensor</ref></type>
+ <definition>Tensor at::arange</definition>
+ <argsstring>(Scalar start, Scalar end, Scalar step, const TensorOptions &options={})</argsstring>
+ <name>range</name>
+ <param>
+ <type>Scalar</type>
+ <declname>start</declname>
+ </param>
+ <param>
+ <type>Scalar</type>
+ <declname>end</declname>
+ </param>
+ <param>
+ <type>Scalar</type>
+ <declname>step</declname>
+ </param>
+ <param>
+ <type>const TensorOptions &</type>
+ <declname>options</declname>
+ <defval>{}</defval>
+ </param>
+</memberdef>
+<memberdef kind="function" id="6" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
+ <type><ref refid="classat_1_1_tensor" kindref="compound">Tensor</ref></type>
+ <definition>Tensor at::arange</definition>
+ <argsstring>(Scalar start, Scalar end, Scalar step, c10::optional< ScalarType > dtype, c10::optional< Layout > layout, c10::optional< Device > device, c10::optional< bool > pin_memory)</argsstring>
+ <name>range</name>
+ <param>
+ <type>Scalar</type>
+ <declname>start</declname>
+ </param>
+ <param>
+ <type>Scalar</type>
+ <declname>end</declname>
+ </param>
+ <param>
+ <type>Scalar</type>
+ <declname>step</declname>
+ </param>
+ <param>
+ <type><ref refid="classc10_1_1optional" kindref="compound">c10::optional</ref>< ScalarType ></type>
+ <declname>dtype</declname>
+ </param>
+ <param>
+ <type><ref refid="classc10_1_1optional" kindref="compound">c10::optional</ref>< Layout ></type>
+ <declname>layout</declname>
+ </param>
+ <param>
+ <type><ref refid="classc10_1_1optional" kindref="compound">c10::optional</ref>< Device ></type>
+ <declname>device</declname>
+ </param>
+ <param>
+ <type><ref refid="classc10_1_1optional" kindref="compound">c10::optional</ref>< bool ></type>
+ <declname>pin_memory</declname>
+ </param>
+</memberdef>
+</sectiondef>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/breathe-4.24.1/tests/data/ellipsis.xml new/breathe-4.27.0/tests/data/ellipsis.xml
--- old/breathe-4.24.1/tests/data/ellipsis.xml 1970-01-01 01:00:00.000000000 +0100
+++ new/breathe-4.27.0/tests/data/ellipsis.xml 2021-02-16 16:26:15.000000000 +0100
@@ -0,0 +1,20 @@
+<sectiondef kind="typedef">
+<memberdef kind="function" id="0" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
+ <type>double</type>
+ <definition>double amici::spline_pos</definition>
+ <argsstring>(double t, int num,...)</argsstring>
+ <name>spline_pos</name>
+ <param>
+ <type>double</type>
+ <declname>t</declname>
+ </param>
+ <param>
+ <type>int</type>
+ <declname>num</declname>
+ </param>
+ <param>
+ <type>...</type>
+ </param>
+</memberdef>
+</sectiondef>
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/breathe-4.24.1/tests/test_renderer.py new/breathe-4.27.0/tests/test_renderer.py
--- old/breathe-4.24.1/tests/test_renderer.py 2020-12-01 22:19:50.000000000 +0100
+++ new/breathe-4.27.0/tests/test_renderer.py 2021-02-16 16:26:15.000000000 +0100
@@ -1,3 +1,4 @@
+import os
import pytest # type: ignore
import sphinx.addnodes
@@ -403,3 +404,67 @@
for el in render(app, compound_def,
compound_parser=mock_compound_parser,
options=['inner']))
+
+def get_directive(app):
+ from breathe.directives import DoxygenFunctionDirective
+ from breathe.project import ProjectInfoFactory
+ from breathe.parser import DoxygenParserFactory
+ from breathe.finder.factory import FinderFactory
+ from docutils.statemachine import StringList
+ app.config.breathe_separate_member_pages = False
+ app.config.breathe_default_project = 'test_project'
+ app.config.breathe_domain_by_extension = {}
+ app.config.breathe_domain_by_file_pattern = {}
+ app.config.breathe_use_project_refids = False
+ project_info_factory = ProjectInfoFactory(app)
+ parser_factory = DoxygenParserFactory(app)
+ finder_factory = FinderFactory(app, parser_factory)
+ cls_args = ('doxygenclass', ['at::Tensor'],
+ {'members': '', 'protected-members': None, 'undoc-members': None},
+ StringList([], items=[]),
+ 20, 24,
+ ('.. doxygenclass:: at::Tensor\n :members:\n'
+ ' :protected-members:\n :undoc-members:'),
+ MockState(app),
+ MockStateMachine(),
+ )
+ return DoxygenFunctionDirective(finder_factory, project_info_factory, parser_factory, *cls_args)
+
+
+def get_matches(datafile):
+ from breathe.parser.compoundsuper import sectiondefType
+ from xml.dom import minidom
+
+ argsstrings = []
+ with open(os.path.join(os.path.dirname(__file__), 'data', datafile)) as fid:
+ xml = fid.read()
+ doc = minidom.parseString(xml)
+
+ sectiondef = sectiondefType.factory()
+ for child in doc.documentElement.childNodes:
+ sectiondef.buildChildren(child, 'memberdef')
+ if getattr(child, 'tagName', None) == 'memberdef':
+ # Get the argsstring function declaration
+ argsstrings.append(child.getElementsByTagName('argsstring')[0].childNodes[0].data)
+ matches = [[m, sectiondef] for m in sectiondef.memberdef]
+ return argsstrings, matches
+
+
+def test_resolve_overrides(app):
+ # Test that multiple function overrides works
+ argsstrings, matches = get_matches('arange.xml')
+ cls = get_directive(app)
+
+ # Verify that the exact arguments returns one override
+ for args in argsstrings:
+ ast_param = cls._parse_args(args)
+ ret = cls._resolve_function(matches, ast_param, None)
+
+def test_ellipsis(app):
+ argsstrings, matches = get_matches('ellipsis.xml')
+ cls = get_directive(app)
+
+ # Verify that parsing an ellipsis works
+ ast_param = cls._parse_args(argsstrings[0])
+ ret = cls._resolve_function(matches, ast_param, None)
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/breathe-4.24.1/tests/warnings/source/conf.py new/breathe-4.27.0/tests/warnings/source/conf.py
--- old/breathe-4.24.1/tests/warnings/source/conf.py 2020-12-01 22:19:50.000000000 +0100
+++ new/breathe-4.27.0/tests/warnings/source/conf.py 2021-02-16 16:26:15.000000000 +0100
@@ -11,6 +11,8 @@
#
# All configuration values have a default; values that are commented out
# serve to show the default.
+#
+# mypy: ignore-errors
import sys
import os
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package bluez for openSUSE:Factory checked in at 2021-03-02 12:25:31
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/bluez (Old)
and /work/SRC/openSUSE:Factory/.bluez.new.2378 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "bluez"
Tue Mar 2 12:25:31 2021 rev:174 rq:874931 version:5.56
Changes:
--------
--- /work/SRC/openSUSE:Factory/bluez/bluez.changes 2021-01-29 14:57:02.397504348 +0100
+++ /work/SRC/openSUSE:Factory/.bluez.new.2378/bluez.changes 2021-03-02 12:25:33.699322087 +0100
@@ -1,0 +2,16 @@
+Wed Feb 24 20:25:23 UTC 2021 - Stefan Seyfried <seife+obs(a)b1-systems.com>
+
+- update to 5.56:
+ * Fix issue with setting AVDTP disconnect timer.
+ * Fix issue with AVDTP not sending GetCapabilities.
+ * Fix issue with AVDTP connecting using streaming mode.
+ * Fix issue with handling A2DP and remote SEP disappearing.
+ * Fix issue with handling session of A2DP channels.
+ * Fix issue with GATT and handling device removal.
+ * Fix issue with GATT not accepting multiple requests.
+ * Fix issue with HID report value callback registration.
+ * Add support for new advertising management command.
+ * Add support for battery D-Bus interface.
+ * removed obsolete bccmd
+
+-------------------------------------------------------------------
Old:
----
bluez-5.55.tar.xz
New:
----
bluez-5.56.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ bluez.spec ++++++
--- /var/tmp/diff_new_pack.R1grV8/_old 2021-03-02 12:25:34.455322799 +0100
+++ /var/tmp/diff_new_pack.R1grV8/_new 2021-03-02 12:25:34.459322803 +0100
@@ -27,7 +27,7 @@
# contributions via pull requests are welcome!
#
Name: bluez
-Version: 5.55
+Version: 5.56
Release: 0
Summary: Bluetooth Stack for Linux
License: GPL-2.0-or-later
@@ -346,11 +346,9 @@
%{_bindir}/meshctl
%{_bindir}/mesh-cfgclient
%endif
-%{_bindir}/bccmd
%{_prefix}/lib/udev/
%{_mandir}/man1/btattach.1%{?ext_man}
%{_mandir}/man8/bluetoothd.8%{?ext_man}
-%{_mandir}/man1/bccmd.1%{?ext_man}
%{_mandir}/man1/hid2hci.1%{?ext_man}
%{_mandir}/man1/l2ping.1%{?ext_man}
%{_mandir}/man1/rctest.1%{?ext_man}
++++++ bluez-5.55.tar.xz -> bluez-5.56.tar.xz ++++++
++++ 60329 lines of diff (skipped)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package openucx for openSUSE:Factory checked in at 2021-03-02 12:25:29
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/openucx (Old)
and /work/SRC/openSUSE:Factory/.openucx.new.2378 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "openucx"
Tue Mar 2 12:25:29 2021 rev:19 rq:874910 version:1.9.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/openucx/openucx.changes 2020-10-11 20:15:15.484382682 +0200
+++ /work/SRC/openSUSE:Factory/.openucx.new.2378/openucx.changes 2021-03-02 12:25:29.643318270 +0100
@@ -1,0 +2,5 @@
+Wed Feb 24 16:34:54 UTC 2021 - Nicolas Morey-Chaisemartin <nmoreychaisemartin(a)suse.com>
+
+- Update openucx-s390x-support.patch to fix mmap syscall on s390x (bsc#1182691)
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ openucx.spec ++++++
--- /var/tmp/diff_new_pack.WHArr8/_old 2021-03-02 12:25:30.135318733 +0100
+++ /var/tmp/diff_new_pack.WHArr8/_new 2021-03-02 12:25:30.135318733 +0100
@@ -1,7 +1,7 @@
#
# spec file for package openucx
#
-# Copyright (c) 2020 SUSE LLC
+# Copyright (c) 2021 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
++++++ openucx-s390x-support.patch ++++++
--- /var/tmp/diff_new_pack.WHArr8/_old 2021-03-02 12:25:30.159318755 +0100
+++ /var/tmp/diff_new_pack.WHArr8/_new 2021-03-02 12:25:30.159318755 +0100
@@ -1,4 +1,4 @@
-commit a8b24a8cd4124e3ffb7b682b94b3a1192e48c9c7
+commit b47dad27703f0b59072f5a8d8fba99c1d173f8f0
Author: Nicolas Morey-Chaisemartin <nmoreychaisemartin(a)suse.com>
Date: Thu Aug 9 07:41:24 2018 +0200
@@ -407,3 +407,27 @@
+
+#endif
+
+diff --git src/ucs/sys/sys.c src/ucs/sys/sys.c
+index 62e555b409d1..8adc26241781 100644
+--- src/ucs/sys/sys.c
++++ src/ucs/sys/sys.c
+@@ -1134,8 +1134,19 @@ void *ucs_sys_realloc(void *old_ptr, size_t old_length, size_t new_length)
+ if (old_ptr == NULL) {
+ /* Note: Must pass the 0 offset as "long", otherwise it will be
+ * partially undefined when converted to syscall arguments */
++#if defined(__s390x__)
++ long int _args[6] = {
++ (long int) NULL,
++ (long int) new_length,
++ (long int) PROT_READ|PROT_WRITE,
++ (long int) MAP_PRIVATE|MAP_ANONYMOUS,
++ (long int) -1,
++ (long int) 0ul};
++ ptr = (void*)syscall(__NR_mmap, _args);
++#else
+ ptr = (void*)syscall(__NR_mmap, NULL, new_length, PROT_READ|PROT_WRITE,
+ MAP_PRIVATE|MAP_ANONYMOUS, -1, 0ul);
++#endif
+ if (ptr == MAP_FAILED) {
+ ucs_log_fatal_error("mmap(NULL, %zu, READ|WRITE, PRIVATE|ANON) failed: %m",
+ new_length);
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package libxml2 for openSUSE:Factory checked in at 2021-03-02 12:25:26
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libxml2 (Old)
and /work/SRC/openSUSE:Factory/.libxml2.new.2378 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libxml2"
Tue Mar 2 12:25:26 2021 rev:103 rq:874905 version:2.9.10
Changes:
--------
--- /work/SRC/openSUSE:Factory/libxml2/libxml2.changes 2020-12-23 14:19:58.249650657 +0100
+++ /work/SRC/openSUSE:Factory/.libxml2.new.2378/libxml2.changes 2021-03-02 12:25:28.327317030 +0100
@@ -1,0 +2,8 @@
+Thu Feb 23 11:00:00 UTC 2021 - Teemu Mannermaa <wicked(a)iki.fi>
+
+- Fails to build against Python 3.9:
+ * Add upstream commit that fixes the issue
+ https://github.com/GNOME/libxml2/commit/e4fb36841800038c289997432ca547c9bfe…
+- Add patch libxml2-python39.patch
+
+-------------------------------------------------------------------
New:
----
libxml2-python39.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libxml2.spec ++++++
--- /var/tmp/diff_new_pack.e0iRxY/_old 2021-03-02 12:25:29.179317833 +0100
+++ /var/tmp/diff_new_pack.e0iRxY/_new 2021-03-02 12:25:29.179317833 +0100
@@ -64,6 +64,8 @@
Patch8: libxml2-Avoid-quadratic-checking-of-identity-constraints.patch
# PATCH-FIX-UPSTREAM bsc#1161521 CVE-2019-20388 Memory leak in xmlSchemaPreRun
Patch9: libxml2-CVE-2019-20388.patch
+# PATCH-FIX-UPSTREAM Fix building against Python 3.9
+Patch10: libxml2-python39.patch
BuildRequires: fdupes
BuildRequires: pkgconfig
BuildRequires: python-rpm-macros
@@ -169,6 +171,7 @@
%patch7 -p1
%patch8 -p1
%patch9 -p1
+%patch10 -p1
%build
%if !%{with python}
++++++ libxml2-python39.patch ++++++
From e4fb36841800038c289997432ca547c9bfef9db1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= <miro(a)hroncok.cz>
Date: Fri, 28 Feb 2020 12:48:14 +0100
Subject: [PATCH] Parenthesize Py<type>_Check() in ifs
In C, if expressions should be parenthesized.
PyLong_Check, PyUnicode_Check etc. happened to expand to a parenthesized
expression before, but that's not API to rely on.
Since Python 3.9.0a4 it needs to be parenthesized explicitly.
Fixes https://gitlab.gnome.org/GNOME/libxml2/issues/149
---
python/libxml.c | 4 ++--
python/types.c | 12 ++++++------
2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/python/libxml.c b/python/libxml.c
index bc676c4e..81e709f3 100644
--- a/python/libxml.c
+++ b/python/libxml.c
@@ -294,7 +294,7 @@ xmlPythonFileReadRaw (void * context, char * buffer, int len) {
lenread = PyBytes_Size(ret);
data = PyBytes_AsString(ret);
#ifdef PyUnicode_Check
- } else if PyUnicode_Check (ret) {
+ } else if (PyUnicode_Check (ret)) {
#if PY_VERSION_HEX >= 0x03030000
Py_ssize_t size;
const char *tmp;
@@ -359,7 +359,7 @@ xmlPythonFileRead (void * context, char * buffer, int len) {
lenread = PyBytes_Size(ret);
data = PyBytes_AsString(ret);
#ifdef PyUnicode_Check
- } else if PyUnicode_Check (ret) {
+ } else if (PyUnicode_Check (ret)) {
#if PY_VERSION_HEX >= 0x03030000
Py_ssize_t size;
const char *tmp;
diff --git a/python/types.c b/python/types.c
index c2bafeb1..ed284ec7 100644
--- a/python/types.c
+++ b/python/types.c
@@ -602,16 +602,16 @@ libxml_xmlXPathObjectPtrConvert(PyObject *obj)
if (obj == NULL) {
return (NULL);
}
- if PyFloat_Check (obj) {
+ if (PyFloat_Check (obj)) {
ret = xmlXPathNewFloat((double) PyFloat_AS_DOUBLE(obj));
- } else if PyLong_Check(obj) {
+ } else if (PyLong_Check(obj)) {
#ifdef PyLong_AS_LONG
ret = xmlXPathNewFloat((double) PyLong_AS_LONG(obj));
#else
ret = xmlXPathNewFloat((double) PyInt_AS_LONG(obj));
#endif
#ifdef PyBool_Check
- } else if PyBool_Check (obj) {
+ } else if (PyBool_Check (obj)) {
if (obj == Py_True) {
ret = xmlXPathNewBoolean(1);
@@ -620,14 +620,14 @@ libxml_xmlXPathObjectPtrConvert(PyObject *obj)
ret = xmlXPathNewBoolean(0);
}
#endif
- } else if PyBytes_Check (obj) {
+ } else if (PyBytes_Check (obj)) {
xmlChar *str;
str = xmlStrndup((const xmlChar *) PyBytes_AS_STRING(obj),
PyBytes_GET_SIZE(obj));
ret = xmlXPathWrapString(str);
#ifdef PyUnicode_Check
- } else if PyUnicode_Check (obj) {
+ } else if (PyUnicode_Check (obj)) {
#if PY_VERSION_HEX >= 0x03030000
xmlChar *str;
const char *tmp;
@@ -650,7 +650,7 @@ libxml_xmlXPathObjectPtrConvert(PyObject *obj)
ret = xmlXPathWrapString(str);
#endif
#endif
- } else if PyList_Check (obj) {
+ } else if (PyList_Check (obj)) {
int i;
PyObject *node;
xmlNodePtr cur;
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package automake for openSUSE:Factory checked in at 2021-03-02 12:25:23
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/automake (Old)
and /work/SRC/openSUSE:Factory/.automake.new.2378 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "automake"
Tue Mar 2 12:25:23 2021 rev:55 rq:874730 version:1.16.3
Changes:
--------
--- /work/SRC/openSUSE:Factory/automake/automake.changes 2021-01-26 14:43:51.931173105 +0100
+++ /work/SRC/openSUSE:Factory/.automake.new.2378/automake.changes 2021-03-02 12:25:25.751314607 +0100
@@ -1,0 +2,6 @@
+Tue Feb 23 20:56:39 UTC 2021 - Dirk M��ller <dmueller(a)suse.com>
+
+- make generated autoconf makefiles reproducible (bsc#1182604):
+ add automake-reproducible.patch
+
+-------------------------------------------------------------------
New:
----
automake-reproducible.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ automake.spec ++++++
--- /var/tmp/diff_new_pack.5F7JgN/_old 2021-03-02 12:25:26.927315713 +0100
+++ /var/tmp/diff_new_pack.5F7JgN/_new 2021-03-02 12:25:26.931315717 +0100
@@ -42,8 +42,8 @@
Patch1: https://git.savannah.gnu.org/cgit/automake.git/patch/?id=ccb57553e3433df3e5…
Patch2: automake-require_file.patch
Patch3: automake-1.13.4-fix-primary-prefix-invalid-couples-test.patch
+Patch4: automake-reproducible.patch
Patch5: 0001-correct-parameter-parsing-in-test-driver-script.patch
-
Patch100: automake-suse-vendor.patch
BuildRequires: autoconf >= 2.69
BuildRequires: bison
@@ -88,11 +88,7 @@
%prep
%setup -q -n automake-%{version}
-%patch1 -p1
-%patch2 -p1
-%patch3 -p1
-%patch5 -p1
-%patch100 -p1
+%autopatch -p1
%build
sh bootstrap
++++++ automake-reproducible.patch ++++++
--- automake-1.16.3/bin/automake.in
+++ automake-1.16.3/bin/automake.in
@@ -2388,7 +2388,7 @@
$var->requires_variables ("\@${lt}LIBOBJS\@ used", $lt . 'LIBOBJS')
if ! keys %libsources;
- foreach my $iter (keys %libsources)
+ foreach my $iter (sort keys %libsources)
{
my $dir = '';
if ($iter =~ /^(.*)(\.[cly])$/)
@@ -4692,7 +4692,7 @@
DIST_CLEAN, [],
MAINTAINER_CLEAN, []);
- foreach my $file (keys %clean_files)
+ foreach my $file (sort keys %clean_files)
{
my $when = $clean_files{$file};
prog_error 'invalid entry in %clean_files'
@@ -4762,7 +4762,7 @@
. "not 'install-hook'");
# Install the -local hooks.
- foreach (keys %dependencies)
+ foreach (sort keys %dependencies)
{
# Hooks are installed on the -am targets.
s/-am$// or next;
@@ -4784,7 +4784,7 @@
}
# All the required targets are phony.
- depend ('.PHONY', keys %required_targets);
+ depend ('.PHONY', sort keys %required_targets);
# Actually output gathered targets.
foreach (sort target_cmp keys %dependencies)
@@ -5260,7 +5260,7 @@
# has a precise meaning for AC_CONFIG_FILES and so on.
$traces .= join (' ',
map { "--trace=$_" . ':\$f:\$l::\$d::\$n::\${::}%' }
- (keys %traced));
+ (sort keys %traced));
verb "running WARNINGS=$ENV{WARNINGS} $traces";
my $tracefh = new Automake::XFile ("$traces $filename |");
@@ -5831,7 +5831,7 @@
{
my ($self) = @_;
- foreach my $prog (keys %known_programs)
+ foreach my $prog (sort keys %known_programs)
{
lang_vala_finish_target ($self, $prog);
}
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package 00Meta for openSUSE:Leap:15.2:ARM:Images checked in at 2021-03-01 22:02:58
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Leap:15.2:ARM:Images/00Meta (Old)
and /work/SRC/openSUSE:Leap:15.2:ARM:Images/.00Meta.new.2378 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "00Meta"
Mon Mar 1 22:02:58 2021 rev:166 rq: version:unknown
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ version_totest ++++++
--- /var/tmp/diff_new_pack.AVmjrM/_old 2021-03-01 22:02:58.858212066 +0100
+++ /var/tmp/diff_new_pack.AVmjrM/_new 2021-03-01 22:02:58.858212066 +0100
@@ -1 +1 @@
-1.158
\ No newline at end of file
+1.160
\ No newline at end of file
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package patchinfo.15860 for openSUSE:Leap:15.2:Update checked in at 2021-03-01 16:04:47
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Leap:15.2:Update/patchinfo.15860 (Old)
and /work/SRC/openSUSE:Leap:15.2:Update/.patchinfo.15860.new.2378 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "patchinfo.15860"
Mon Mar 1 16:04:47 2021 rev:1 rq:875409 version:unknown
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
New:
----
_patchinfo
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ _patchinfo ++++++
<patchinfo incident="15860">
<packager>atopt</packager>
<rating>moderate</rating>
<category>recommended</category>
<summary>Recommended update for keepassxc</summary>
<description>This update for keepassxc fixes the following issues:
- keepassxc was updated to 2.6.4
- Added
- Automatically adapt to light/dark system theme changes
(Windows/macOS only) [#6034]
- Changed
- Show window title as tooltip on system tray [#5948]
- Compress Snap release as LZO for faster initial startup
[#5877]
- Password generator: Set maximum selectable password length to
999 [#5937]
- Fixed
- Fix crash on app close when using SSH agent [#5935]
- Fix KDF selection showing wrong item when using Argon2id
[#5923]
- Automatically close About dialog on database lock if it is
still open [#5947]
- Linux: Fix automatic launch at system startup with AppImages
[#5901]
- Linux: Fix click-to-move on empty area activating when using
menus [#5971]
- Linux: Try multiple times to show tray icon if tray is not
ready yet [#5948]
- macOS: Fix KeePassXC blocking clean shutdown [#6002]
- from version 2.6.3
- Added
- Support Argon2id KDF [#5778]
- Support XMLv2 key files [#5798]
- Changed
- Improve CSV Import/Export, include time fields and TOTP
[#5346]
- Support empty area dragging of the application window [#5860]
- Display default Auto-Type sequence in preview pane [#5654]
- Remove strict length limit on generated passwords [#5748]
- Hide key file path by default when unlocking database [#5779]
- Document browser extension use with Edge in managed mode
[#5692]
- Windows: Prevent clipboard history and cloud sync [#5853]
- macOS: Update the application icon to Big Sur styling [#5851]
- Fixed
- Re-select previously selected entry on database unlock
[#5559]
- Properly save special character choice in password generator
[#5610]
- Fix crash in browser integration with multiple similar
entries [#5653]
- Remove offset on username field in classic theme [#5788]
- Ensure entry history is copied when drag/dropping entries and
groups [#5817]
- Close modal dialogs when database is locked [#5820]
- Prevent crash when KeeShare modifies an entry that is
currently being edited [#5827]
- Improve preview of entry attributes [#5834]
- Always activate/focus database open dialog preventing mistype
[#5878]
- Reports: fix calculation of average password length [#5862]
- Linux: Delay startup on login to correct tray icon issues
[#5724]
</description>
</patchinfo>
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package keepassxc for openSUSE:Leap:15.2:Update checked in at 2021-03-01 16:04:45
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Leap:15.2:Update/keepassxc (Old)
and /work/SRC/openSUSE:Leap:15.2:Update/.keepassxc.new.2378 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "keepassxc"
Mon Mar 1 16:04:45 2021 rev:4 rq:875409 version:unknown
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ _link ++++++
--- /var/tmp/diff_new_pack.j9aQ90/_old 2021-03-01 16:04:46.882637813 +0100
+++ /var/tmp/diff_new_pack.j9aQ90/_new 2021-03-01 16:04:46.882637813 +0100
@@ -1 +1 @@
-<link package='keepassxc.14755' cicount='copy' />
+<link package='keepassxc.15860' cicount='copy' />
1
0