openSUSE Commits
Threads by month
- ----- 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
April 2023
- 1 participants
- 3149 discussions
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-cligj for openSUSE:Factory checked in at 2022-04-28 23:07:52
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-cligj (Old)
and /work/SRC/openSUSE:Factory/.python-cligj.new.1538 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-cligj"
Thu Apr 28 23:07:52 2022 rev:2 rq:973538 version:0.7.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-cligj/python-cligj.changes 2019-03-10 09:36:21.436162133 +0100
+++ /work/SRC/openSUSE:Factory/.python-cligj.new.1538/python-cligj.changes 2022-04-28 23:07:56.736686031 +0200
@@ -1,0 +2,17 @@
+Mon Apr 25 13:47:41 UTC 2022 - Stefan Br��ns <stefan.bruens(a)rwth-aachen.de>
+
+- Update to 0.7.2:
+ * Permit use with click versions 8 and higher.
+- Update to 0.7.1:
+ * Future deprecation warning added in 0.7.0 has been changed.
+ Cligj version 1.0.0 will support Python versions >= 3.6.
+- Update to 0.7.0:
+ * Warn about deprecation of support for Python versions < 3.7
+ in 1.0.0 (#33).
+ * Warn about future change in --sequence default when the option
+ is used (#31).
+- Update to 0.6.0:
+ * Always use `encoding='utf-8'` when opening input GeoJSON (#27).
+ * Improve docstrings (#22).
+
+-------------------------------------------------------------------
Old:
----
cligj-0.5.0.tar.gz
New:
----
cligj-0.7.2.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-cligj.spec ++++++
--- /var/tmp/diff_new_pack.nCHSqc/_old 2022-04-28 23:07:57.216686554 +0200
+++ /var/tmp/diff_new_pack.nCHSqc/_new 2022-04-28 23:07:57.220686558 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-cligj
#
-# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2022 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -13,15 +13,16 @@
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
+#
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name: python-cligj
-Version: 0.5.0
+Version: 0.7.2
Release: 0
License: BSD-3-Clause
Summary: Click params for commmand line interfaces to GeoJSON
-Url: https://github.com/mapbox/cligj
+URL: https://github.com/mapbox/cligj
Group: Development/Languages/Python
# pypi source lack license and tests
Source: https://github.com/mapbox/cligj/archive/%{version}.tar.gz#/cligj-%{version}…
@@ -35,7 +36,6 @@
Requires: python-click
BuildArch: noarch
-
%python_subpackages
%description
++++++ cligj-0.5.0.tar.gz -> cligj-0.7.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cligj-0.5.0/.travis.yml new/cligj-0.7.2/.travis.yml
--- old/cligj-0.5.0/.travis.yml 2018-09-26 17:58:55.000000000 +0200
+++ new/cligj-0.7.2/.travis.yml 2021-05-28 23:21:08.000000000 +0200
@@ -1,10 +1,9 @@
sudo: false
language: python
python:
- - "2.7"
- - "3.3"
- - "3.4"
- - "3.5"
+ - "3.6"
+ - "3.7"
+ - "3.8"
install:
- "pip install coveralls"
- "pip install -e .[test]"
@@ -17,4 +16,4 @@
tags: true
provider: pypi
distributions: "sdist bdist_wheel"
- user: mapboxci
+ user: __token__
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cligj-0.5.0/CHANGES.txt new/cligj-0.7.2/CHANGES.txt
--- old/cligj-0.5.0/CHANGES.txt 2018-09-26 17:58:55.000000000 +0200
+++ new/cligj-0.7.2/CHANGES.txt 2021-05-28 23:21:08.000000000 +0200
@@ -1,6 +1,36 @@
Changes
=======
+0.7.1 (2010-11-20)
+------------------
+
+- Future deprecation warning added in 0.7.0 has been changed. Cligj version
+ 1.0.0 will support Python versions >= 3.6.
+
+0.7.0 (2010-10-21)
+------------------
+
+- Warn about deprecation of support for Python versions < 3.7 in 1.0.0 (#33).
+- Warn about future change in --sequence default when the option is used (#31).
+
+0.6.0 (2020-10-19)
+------------------
+
+No changes since 0.6b1.
+
+0.6b1 (2020-10-14)
+------------------
+
+Future changes:
+
+- Feature sequences, not collections, will be the default form of output in
+ version 1.0 (#20).
+
+Bug fixes:
+
+- Always use `encoding='utf-8'` when opening input GeoJSON (#27).
+- Improve docstrings (#22).
+
0.5.0 (2018-09-26)
------------------
@@ -20,7 +50,7 @@
0.3.0 (2015-08-12)
------------------
-- Deprecation of the cligj.plugins module (#6). Please switch to the
+- Deprecation of the cligj.plugins module (#6). Please switch to the
click-plugins module: https://github.com/click-contrib/click-plugins. The
cligj.plugins module will be removed from cligj at version 1.0.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cligj-0.5.0/MANIFEST.in new/cligj-0.7.2/MANIFEST.in
--- old/cligj-0.5.0/MANIFEST.in 1970-01-01 01:00:00.000000000 +0100
+++ new/cligj-0.7.2/MANIFEST.in 2021-05-28 23:21:08.000000000 +0200
@@ -0,0 +1,4 @@
+include CHANGES.txt
+include LICENSE
+
+graft tests
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cligj-0.5.0/README.rst new/cligj-0.7.2/README.rst
--- old/cligj-0.5.0/README.rst 2018-09-26 17:58:55.000000000 +0200
+++ new/cligj-0.7.2/README.rst 2021-05-28 23:21:08.000000000 +0200
@@ -1,8 +1,8 @@
cligj
======
-.. image:: https://travis-ci.org/mapbox/cligj.svg
- :target: https://travis-ci.org/mapbox/cligj
+.. image:: https://travis-ci.com/mapbox/cligj.svg
+ :target: https://travis-ci.com/mapbox/cligj
.. image:: https://coveralls.io/repos/mapbox/cligj/badge.png?branch=master
:target: https://coveralls.io/r/mapbox/cligj?branch=master
@@ -10,7 +10,7 @@
Common arguments and options for GeoJSON processing commands, using Click.
`cligj` is for Python developers who create command line interfaces for geospatial data.
-`cligj` allows you to quickly build consistent, well-tested and interoperable CLIs for handling GeoJSON.
+`cligj` allows you to quickly build consistent, well-tested and interoperable CLIs for handling GeoJSON.
Arguments
@@ -76,11 +76,15 @@
reads and writes GeoJSON expects a text containing a single feature collection,
that's the default, and a LF-delimited sequence of texts containing one GeoJSON
feature each is a feature that is turned on using the ``--sequence`` option.
-To write sequences of feature texts that conform to the `JSON Text Sequences
-proposed standard
-<http://tools.ietf.org/html/draft-ietf-json-text-sequence-13>`__ (and might
-contain pretty-printed JSON) with the ASCII Record Separator (0x1e) as
-a delimiter, use the ``--rs`` option
+To write sequences of feature texts that conform to the `GeoJSON Text Sequences
+standard <https://tools.ietf.org/html/rfc8142>`__ (and might contain
+pretty-printed JSON) with the ASCII Record Separator (0x1e) as a delimiter, use
+the ``--rs`` option
+
+.. warning:: Future change warning
+ GeoJSON sequences (`--sequence`), not collections (`--no-sequence`), will be
+ the default in version 1.0.0.
+
.. code-block:: python
@@ -125,7 +129,6 @@
False).
--help Show this message and exit.
-
And can be used like this
.. code-block:: console
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cligj-0.5.0/cligj/__init__.py new/cligj-0.7.2/cligj/__init__.py
--- old/cligj-0.5.0/cligj/__init__.py 2018-09-26 17:58:55.000000000 +0200
+++ new/cligj-0.7.2/cligj/__init__.py 2021-05-28 23:21:08.000000000 +0200
@@ -1,12 +1,21 @@
-# cligj
+"""cligj
-# Shared arguments and options.
+A package of arguments, options, and parsers for the Python GeoJSON
+ecosystem.
+"""
+
+import sys
+from warnings import warn
import click
from .features import normalize_feature_inputs
-# Arguments.
+__version__ = "0.7.2"
+
+if sys.version_info < (3, 6):
+ warn("cligj 1.0.0 will require Python >= 3.6", FutureWarning)
+
# Multiple input files.
files_in_arg = click.argument(
@@ -97,8 +106,14 @@
'--sequence/--no-sequence',
default=False,
help="Write a LF-delimited sequence of texts containing individual "
- "objects or write a single JSON text containing a feature "
- "collection object (the default).")
+ "objects or write a single JSON text containing a feature "
+ "collection object (the default).",
+ callback=lambda ctx, param, value: warn(
+ "Sequences of Features, not FeatureCollections, will be the default in version 1.0.0",
+ FutureWarning,
+ )
+ or value,
+)
use_rs_opt = click.option(
'--rs/--no-rs',
@@ -109,8 +124,8 @@
"(default is False).")
-# GeoJSON output mode option.
def geojson_type_collection_opt(default=False):
+ """GeoJSON FeatureCollection output mode"""
return click.option(
'--collection',
'geojson_type',
@@ -120,6 +135,7 @@
def geojson_type_feature_opt(default=False):
+ """GeoJSON Feature or Feature sequence output mode"""
return click.option(
'--feature',
'geojson_type',
@@ -129,6 +145,7 @@
def geojson_type_bbox_opt(default=False):
+ """GeoJSON bbox output mode"""
return click.option(
'--bbox',
'geojson_type',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cligj-0.5.0/cligj/features.py new/cligj-0.7.2/cligj/features.py
--- old/cligj-0.5.0/cligj/features.py 2018-09-26 17:58:55.000000000 +0200
+++ new/cligj-0.7.2/cligj/features.py 2021-05-28 23:21:08.000000000 +0200
@@ -1,3 +1,5 @@
+"""Feature parsing and normalization"""
+
from itertools import chain
import json
import re
@@ -23,10 +25,16 @@
"[lng, lat]", or "lng, lat", or "lng lat".
If no value is provided, features will be read from stdin.
+
+ Yields
+ ------
+ Mapping
+ A GeoJSON Feature represented by a Python mapping
+
"""
for feature_like in value or ('-',):
try:
- with click.open_file(feature_like) as src:
+ with click.open_file(feature_like, encoding="utf-8") as src:
for feature in iter_features(iter(src)):
yield feature
except IOError:
@@ -55,6 +63,12 @@
A function that will be applied to each extracted feature. It
takes a feature object and may return a replacement feature or
None -- in which case iter_features does not yield.
+
+ Yields
+ ------
+ Mapping
+ A GeoJSON Feature represented by a Python mapping
+
"""
func = func or (lambda x: x)
first_line = next(geojsonfile)
@@ -136,9 +150,20 @@
def to_feature(obj):
- """Takes a feature or a geometry
- returns feature verbatim or
- wraps geom in a feature with empty properties
+ """Converts an object to a GeoJSON Feature
+
+ Returns feature verbatim or wraps geom in a feature with empty
+ properties.
+
+ Raises
+ ------
+ ValueError
+
+ Returns
+ -------
+ Mapping
+ A GeoJSON Feature represented by a Python mapping
+
"""
if obj['type'] == 'Feature':
return obj
@@ -177,13 +202,13 @@
an iterable of objects with a geo interface and
normalizes it to the former."""
for obj in feature_objs:
- if hasattr(obj, "__geo_interface__") and \
- 'type' in obj.__geo_interface__.keys() and \
- obj.__geo_interface__['type'] == 'Feature':
+ if (
+ hasattr(obj, "__geo_interface__")
+ and "type" in obj.__geo_interface__.keys()
+ and obj.__geo_interface__["type"] == "Feature"
+ ):
yield obj.__geo_interface__
- elif isinstance(obj, dict) and 'type' in obj and \
- obj['type'] == 'Feature':
+ elif isinstance(obj, dict) and "type" in obj and obj["type"] == "Feature":
yield obj
else:
- raise ValueError("Did not recognize object {0}"
- "as GeoJSON Feature".format(obj))
+ raise ValueError("Did not recognize object as GeoJSON Feature")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cligj-0.5.0/setup.cfg new/cligj-0.7.2/setup.cfg
--- old/cligj-0.5.0/setup.cfg 1970-01-01 01:00:00.000000000 +0100
+++ new/cligj-0.7.2/setup.cfg 2021-05-28 23:21:08.000000000 +0200
@@ -0,0 +1,2 @@
+[metadata]
+license_file = LICENSE
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cligj-0.5.0/setup.py new/cligj-0.7.2/setup.py
--- old/cligj-0.5.0/setup.py 2018-09-26 17:58:55.000000000 +0200
+++ new/cligj-0.7.2/setup.py 2021-05-28 23:21:08.000000000 +0200
@@ -1,28 +1,32 @@
from codecs import open as codecs_open
+
from setuptools import setup, find_packages
+with open("cligj/__init__.py") as f:
+ for line in f:
+ if "__version__" in line:
+ version = line.split("=")[1].strip().strip('"').strip("'")
+ continue
-# Get the long description from the relevant file
with codecs_open('README.rst', encoding='utf-8') as f:
long_description = f.read()
-setup(name='cligj',
- version='0.5.0',
- description=u"Click params for commmand line interfaces to GeoJSON",
- long_description=long_description,
- classifiers=[],
- keywords='',
- author=u"Sean Gillies",
- author_email='sean(a)mapbox.com',
- url='https://github.com/mapbox/cligj',
- license='BSD',
- packages=find_packages(exclude=['ez_setup', 'examples', 'tests']),
- include_package_data=True,
- zip_safe=False,
- install_requires=[
- 'click >= 4.0, < 8'
- ],
- extras_require={
- 'test': ['pytest-cov'],
- })
+setup(
+ name="cligj",
+ version=version,
+ description=u"Click params for commmand line interfaces to GeoJSON",
+ long_description=long_description,
+ classifiers=[],
+ keywords="",
+ author=u"Sean Gillies",
+ author_email="sean(a)mapbox.com",
+ url="https://github.com/mapbox/cligj",
+ license="BSD",
+ packages=find_packages(exclude=["ez_setup", "examples", "tests"]),
+ include_package_data=True,
+ zip_safe=False,
+ python_requires=">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, <4",
+ install_requires=["click >= 4.0"],
+ extras_require={"test": ["pytest-cov"],},
+)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cligj-0.5.0/tests/test_cli.py new/cligj-0.7.2/tests/test_cli.py
--- old/cligj-0.5.0/tests/test_cli.py 2018-09-26 17:58:55.000000000 +0200
+++ new/cligj-0.7.2/tests/test_cli.py 2021-05-28 23:21:08.000000000 +0200
@@ -1,7 +1,9 @@
import os
import os.path
+import sys
import click
+import pytest
import cligj
@@ -155,62 +157,67 @@
assert result.output.splitlines() == ['geographic']
-def test_sequence(runner):
+(a)pytest.mark.filterwarnings("ignore")
+(a)pytest.mark.parametrize(
+ ("opt", "val"),
+ [
+ ("--sequence", True),
+ ("--no-sequence", False),
+ (None, cligj.__version__.startswith("1.0")),
+ ],
+)
+def test_sequence(runner, opt, val):
+ """True becomes the default in 1.0"""
@click.command()
@cligj.sequence_opt
def cmd(sequence):
- click.echo("%s" % sequence)
+ click.echo(str(sequence))
- result = runner.invoke(cmd)
+ result = runner.invoke(cmd, [opt] if opt is not None else [])
assert not result.exception
- assert result.output.splitlines() == ['False']
+ assert result.output.splitlines() == [str(val)]
- result = runner.invoke(cmd, ['--sequence'])
- assert not result.exception
- assert result.output.splitlines() == ['True']
- result = runner.invoke(cmd, ['--no-sequence'])
- assert not result.exception
- assert result.output.splitlines() == ['False']
+(a)pytest.mark.skipif(sys.version_info < (3,), reason="Requires Python 3")
+(a)pytest.mark.xfail(cligj.__version__.startswith("1.0"), reason="No warning in 1.0")
+def test_sequence_warns(runner):
+ """Warn about --sequence until 1.0"""
+ @click.command()
+ @cligj.sequence_opt
+ def cmd(sequence):
+ click.echo(str(sequence))
+
+ with pytest.warns(FutureWarning):
+ result = runner.invoke(cmd, ["--sequence"])
-def test_sequence_rs(runner):
+(a)pytest.mark.filterwarnings("ignore")
+(a)pytest.mark.parametrize(("opt", "val"), [("--rs", True), (None, False)])
+def test_sequence_rs(runner, opt, val):
@click.command()
@cligj.sequence_opt
@cligj.use_rs_opt
def cmd(sequence, use_rs):
- click.echo("%s" % sequence)
- click.echo("%s" % use_rs)
+ click.echo(str(sequence))
+ click.echo(str(use_rs))
- result = runner.invoke(cmd, ['--sequence', '--rs'])
+ result = runner.invoke(cmd, ["--sequence"] + ([opt] if opt is not None else []))
assert not result.exception
- assert result.output.splitlines() == ['True', 'True']
-
- result = runner.invoke(cmd, ['--sequence'])
- assert not result.exception
- assert result.output.splitlines() == ['True', 'False']
+ assert result.output.splitlines() == ["True", str(val)]
-def test_geojson_type(runner):
+(a)pytest.mark.parametrize(
+ ("opt", "val"),
+ [("--collection", "collection"), ("--feature", "feature"), ("--bbox", "bbox")],
+)
+def test_geojson_type(runner, opt, val):
@click.command()
@cligj.geojson_type_collection_opt(True)
@cligj.geojson_type_feature_opt(False)
@cligj.geojson_type_bbox_opt(False)
def cmd(geojson_type):
- click.echo("%s" % geojson_type)
-
- result = runner.invoke(cmd)
- assert not result.exception
- assert result.output.splitlines() == ['collection']
-
- result = runner.invoke(cmd, ['--collection'])
- assert not result.exception
- assert result.output.splitlines() == ['collection']
-
- result = runner.invoke(cmd, ['--feature'])
- assert not result.exception
- assert result.output.splitlines() == ['feature']
+ click.echo(str(geojson_type))
- result = runner.invoke(cmd, ['--bbox'])
+ result = runner.invoke(cmd, [opt])
assert not result.exception
- assert result.output.splitlines() == ['bbox']
+ assert result.output.splitlines() == [val]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cligj-0.5.0/tests/twopoints.geojson new/cligj-0.7.2/tests/twopoints.geojson
--- old/cligj-0.5.0/tests/twopoints.geojson 2018-09-26 17:58:55.000000000 +0200
+++ new/cligj-0.7.2/tests/twopoints.geojson 2021-05-28 23:21:08.000000000 +0200
@@ -1 +1 @@
-{"features": [{"bbox": [-122.9292140099711, 45.37948199034149, -122.44106199104115, 45.858097009742835], "center": [-122.7282, 45.5801], "context": [{"id": "postcode.2503633822", "text": "97203"}, {"id": "region.3470299826", "text": "Oregon"}, {"id": "country.4150104525", "short_code": "us", "text": "United States"}], "geometry": {"coordinates": [-122.7282, 45.5801], "type": "Point"}, "id": "place.42767", "place_name": "Portland, Oregon, United States", "properties": {}, "relevance": 0.999, "text": "Portland", "type": "Feature"}, {"bbox": [-121.9779540096568, 43.74737999114854, -120.74788099000016, 44.32812500969035], "center": [-121.3153, 44.0582], "context": [{"id": "postcode.3332732485", "text": "97701"}, {"id": "region.3470299826", "text": "Oregon"}, {"id": "country.4150104525", "short_code": "us", "text": "United States"}], "geometry": {"coordinates": [-121.3153, 44.0582], "type": "Point"}, "id": "place.3965", "place_name": "Bend, Oregon, United States", "properties": {}, "rele
vance": 0.999, "text": "Bend", "type": "Feature"}], "type": "FeatureCollection"}
+{"features": [{"bbox": [-122.9292140099711, 45.37948199034149, -122.44106199104115, 45.858097009742835], "center": [-122.7282, 45.5801], "context": [{"id": "postcode.2503633822", "text": "97203"}, {"id": "region.3470299826", "text": "Oregon"}, {"id": "country.4150104525", "short_code": "us", "text": "United States"}], "geometry": {"coordinates": [-122.7282, 45.5801], "type": "Point"}, "id": "place.42767", "place_name": "Portland, Oregon, United States", "properties": {}, "relevance": 0.999, "text": "Portland", "type": "Feature"}, {"bbox": [-121.9779540096568, 43.74737999114854, -120.74788099000016, 44.32812500969035], "center": [-121.3153, 44.0582], "context": [{"id": "postcode.3332732485", "text": "97701"}, {"id": "region.3470299826", "text": "Oregon"}, {"id": "country.4150104525", "short_code": "us", "text": "United States"}], "geometry": {"coordinates": [-121.3153, 44.0582], "type": "Point"}, "id": "place.3965", "place_name": "Bend, ����regon, United States", "properties": {}, "r
elevance": 0.999, "text": "Bend", "type": "Feature"}], "type": "FeatureCollection"}
2
1
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package 000product for openSUSE:Factory checked in at 2023-04-30 21:19:34
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/000product (Old)
and /work/SRC/openSUSE:Factory/.000product.new.1533 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "000product"
Sun Apr 30 21:19:34 2023 rev:3605 rq: version:unknown
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ MicroOS-dvd5-dvd-x86_64.kiwi ++++++
--- /var/tmp/diff_new_pack.GdD77J/_old 2023-04-30 21:19:39.614951807 +0200
+++ /var/tmp/diff_new_pack.GdD77J/_new 2023-04-30 21:19:39.654952042 +0200
@@ -1,4 +1,4 @@
-<image name="OBS__MicroOS___20230429" schemaversion="4.1">
+<image name="OBS__MicroOS___20230430" schemaversion="4.1">
<description type="system">
<author>The SUSE Team</author>
<contact>build(a)opensuse.org</contact>
@@ -35,11 +35,11 @@
<productvar name="SEPARATE_MEDIA">true</productvar>
<productvar name="SHA1OPT">-x -2</productvar>
<productvar name="VENDOR">openSUSE</productvar>
- <productvar name="VERSION">20230429</productvar>
+ <productvar name="VERSION">20230430</productvar>
<productinfo name="CONTENTSTYLE">11</productinfo>
- <productinfo name="DISTRO">cpe:/o:opensuse:microos:20230429,openSUSE MicroOS</productinfo>
+ <productinfo name="DISTRO">cpe:/o:opensuse:microos:20230430,openSUSE MicroOS</productinfo>
<productinfo name="LINGUAS">en_US </productinfo>
- <productinfo name="REPOID">obsproduct://build.opensuse.org/openSUSE:Factory/MicroOS/20230429/x86_64</productinfo>
+ <productinfo name="REPOID">obsproduct://build.opensuse.org/openSUSE:Factory/MicroOS/20230430/x86_64</productinfo>
<productinfo name="VENDOR">openSUSE</productinfo>
<productoption name="INI_DIR">/usr/share/kiwi/modules/plugins/tumbleweed</productoption>
<productoption name="PLUGIN_DIR">/usr/share/kiwi/modules/plugins/tumbleweed</productoption>
++++++ openSUSE-Addon-NonOss-ftp-ftp-x86_64.kiwi ++++++
--- /var/tmp/diff_new_pack.GdD77J/_old 2023-04-30 21:19:39.962953851 +0200
+++ /var/tmp/diff_new_pack.GdD77J/_new 2023-04-30 21:19:39.966953875 +0200
@@ -1,4 +1,4 @@
-<image name="OBS__openSUSE-Addon-NonOss___20230429" schemaversion="4.1">
+<image name="OBS__openSUSE-Addon-NonOss___20230430" schemaversion="4.1">
<description type="system">
<author>The SUSE Team</author>
<contact>build(a)opensuse.org</contact>
@@ -35,11 +35,11 @@
<productvar name="SEPARATE_MEDIA">true</productvar>
<productvar name="SHA1OPT">-x -2</productvar>
<productvar name="VENDOR">openSUSE</productvar>
- <productvar name="VERSION">20230429</productvar>
+ <productvar name="VERSION">20230430</productvar>
<productinfo name="CONTENTSTYLE">11</productinfo>
- <productinfo name="DISTRO">cpe:/o:opensuse:opensuse-addon-nonoss:20230429,openSUSE NonOSS Addon</productinfo>
+ <productinfo name="DISTRO">cpe:/o:opensuse:opensuse-addon-nonoss:20230430,openSUSE NonOSS Addon</productinfo>
<productinfo name="LINGUAS">af ar be_BY bg br ca cy el et ga gl gu_IN he hi_IN hr ka km ko lt mk nn pa_IN rw sk sl sr_CS ss st tg th tr uk ve vi xh zu </productinfo>
- <productinfo name="REPOID">obsproduct://build.opensuse.org/openSUSE:Factory/openSUSE-Addon-NonOss/2023…</productinfo>
+ <productinfo name="REPOID">obsproduct://build.opensuse.org/openSUSE:Factory/openSUSE-Addon-NonOss/2023…</productinfo>
<productinfo name="VENDOR">openSUSE</productinfo>
<productoption name="INI_DIR">/usr/share/kiwi/modules/plugins/tumbleweed</productoption>
<productoption name="PLUGIN_DIR">/usr/share/kiwi/modules/plugins/tumbleweed</productoption>
++++++ openSUSE-cd-mini-x86_64.kiwi ++++++
--- /var/tmp/diff_new_pack.GdD77J/_old 2023-04-30 21:19:39.986953992 +0200
+++ /var/tmp/diff_new_pack.GdD77J/_new 2023-04-30 21:19:39.990954016 +0200
@@ -1,4 +1,4 @@
-<image name="OBS__openSUSE___20230429" schemaversion="4.1">
+<image name="OBS__openSUSE___20230430" schemaversion="4.1">
<description type="system">
<author>The SUSE Team</author>
<contact>build(a)opensuse.org</contact>
@@ -35,11 +35,11 @@
<productvar name="SEPARATE_MEDIA">true</productvar>
<productvar name="SHA1OPT">-x -2</productvar>
<productvar name="VENDOR">openSUSE</productvar>
- <productvar name="VERSION">20230429</productvar>
+ <productvar name="VERSION">20230430</productvar>
<productinfo name="CONTENTSTYLE">11</productinfo>
- <productinfo name="DISTRO">cpe:/o:opensuse:opensuse:20230429,openSUSE Tumbleweed</productinfo>
+ <productinfo name="DISTRO">cpe:/o:opensuse:opensuse:20230430,openSUSE Tumbleweed</productinfo>
<productinfo name="LINGUAS">cs da de el en en_GB en_US es fr hu it ja pl pt pt_BR ru zh zh_CN zh_TW </productinfo>
- <productinfo name="REPOID">obsproduct://build.opensuse.org/openSUSE:Factory/openSUSE/20230429/x86_64</productinfo>
+ <productinfo name="REPOID">obsproduct://build.opensuse.org/openSUSE:Factory/openSUSE/20230430/x86_64</productinfo>
<productinfo name="VENDOR">openSUSE</productinfo>
<productoption name="INI_DIR">/usr/share/kiwi/modules/plugins/tumbleweed</productoption>
<productoption name="PLUGIN_DIR">/usr/share/kiwi/modules/plugins/tumbleweed</productoption>
openSUSE-dvd5-dvd-x86_64.kiwi: same change
++++++ openSUSE-ftp-ftp-x86_64.kiwi ++++++
--- /var/tmp/diff_new_pack.GdD77J/_old 2023-04-30 21:19:40.046954345 +0200
+++ /var/tmp/diff_new_pack.GdD77J/_new 2023-04-30 21:19:40.070954485 +0200
@@ -1,4 +1,4 @@
-<image name="OBS__openSUSE___20230429" schemaversion="4.1">
+<image name="OBS__openSUSE___20230430" schemaversion="4.1">
<description type="system">
<author>The SUSE Team</author>
<contact>build(a)opensuse.org</contact>
@@ -23,7 +23,7 @@
<productvar name="DISTNAME">openSUSE</productvar>
<productvar name="FLAVOR">ftp</productvar>
<productvar name="MAKE_LISTINGS">true</productvar>
- <productvar name="MEDIUM_NAME">openSUSE-20230429-x86_64</productvar>
+ <productvar name="MEDIUM_NAME">openSUSE-20230430-x86_64</productvar>
<productvar name="MULTIPLE_MEDIA">true</productvar>
<productvar name="PRODUCT_DIR">/</productvar>
<productvar name="PRODUCT_NAME">$DISTNAME-$FLAVOR</productvar>
@@ -35,11 +35,11 @@
<productvar name="SEPARATE_MEDIA">true</productvar>
<productvar name="SHA1OPT">-x -2</productvar>
<productvar name="VENDOR">openSUSE</productvar>
- <productvar name="VERSION">20230429</productvar>
+ <productvar name="VERSION">20230430</productvar>
<productinfo name="CONTENTSTYLE">11</productinfo>
- <productinfo name="DISTRO">cpe:/o:opensuse:opensuse:20230429,openSUSE Tumbleweed</productinfo>
+ <productinfo name="DISTRO">cpe:/o:opensuse:opensuse:20230430,openSUSE Tumbleweed</productinfo>
<productinfo name="LINGUAS">cs da de el en en_GB en_US es fr hu it ja pl pt pt_BR ru zh zh_CN zh_TW </productinfo>
- <productinfo name="REPOID">obsproduct://build.opensuse.org/openSUSE:Factory/openSUSE/20230429/x86_64</productinfo>
+ <productinfo name="REPOID">obsproduct://build.opensuse.org/openSUSE:Factory/openSUSE/20230430/x86_64</productinfo>
<productinfo name="VENDOR">openSUSE</productinfo>
<productoption name="DEBUGMEDIUM">2</productoption>
<productoption name="INI_DIR">/usr/share/kiwi/modules/plugins/tumbleweed</productoption>
++++++ MicroOS.product ++++++
--- /var/tmp/diff_new_pack.GdD77J/_old 2023-04-30 21:19:40.458956765 +0200
+++ /var/tmp/diff_new_pack.GdD77J/_new 2023-04-30 21:19:40.462956788 +0200
@@ -6,7 +6,7 @@
<name>MicroOS</name>
<releasepkgname>MicroOS-release</releasepkgname>
<endoflife/>
- <version>20230429</version>
+ <version>20230430</version>
<!-- release is no longer optional -->
<release>0</release>
<productline>MicroOS</productline>
++++++ openSUSE-Addon-NonOss.product ++++++
--- /var/tmp/diff_new_pack.GdD77J/_old 2023-04-30 21:19:40.918959466 +0200
+++ /var/tmp/diff_new_pack.GdD77J/_new 2023-04-30 21:19:40.958959702 +0200
@@ -4,7 +4,7 @@
<product>
<vendor>openSUSE</vendor>
<name>openSUSE-Addon-NonOss</name>
- <version>20230429</version>
+ <version>20230430</version>
<release>0</release>
<summary>openSUSE NonOSS Addon</summary>
<shortsummary>non oss addon</shortsummary>
++++++ openSUSE.product ++++++
--- /var/tmp/diff_new_pack.GdD77J/_old 2023-04-30 21:19:41.154960853 +0200
+++ /var/tmp/diff_new_pack.GdD77J/_new 2023-04-30 21:19:41.186961041 +0200
@@ -4,7 +4,7 @@
<product>
<vendor>openSUSE</vendor>
<name>openSUSE</name>
- <version>20230429</version>
+ <version>20230430</version>
<release>0</release>
<productline>openSUSE</productline>
++++++ unsorted.yml ++++++
--- /var/tmp/diff_new_pack.GdD77J/_old 2023-04-30 21:19:41.514962967 +0200
+++ /var/tmp/diff_new_pack.GdD77J/_new 2023-04-30 21:19:41.558963225 +0200
@@ -4251,6 +4251,7 @@
- ftwnn
- ftxui-devel
- fuc
+ - funcube-udev
- fuse-devel
- fuse-devel-static
- fuse-doc
@@ -7095,6 +7096,8 @@
- gpuvis
- gpxsee
- gq
+ - gr-funcube
+ - gr-funcube-doc
- gr-iqbal-devel-doc
- gr-iqbal-grc
- grabpng
@@ -12185,6 +12188,8 @@
- libgnt0
- libgnuastro17
- libgnuradio-3_10_6
+ - libgnuradio-funcube-devel
+ - libgnuradio-funcube3_10_0
- libgnuradio-iqbalance-devel
- libgnuradio-iqbalance3_9_0
- libgnutls-dane-devel
@@ -18215,7 +18220,6 @@
- nautilus-file-roller
- nautilus-image-converter
- nautilus-image-converter-lang
- - nautilus-terminal
- nauty
- nauty-devel
- nbd
@@ -22725,6 +22729,7 @@
- python3-gom
- python3-gpiod
- python3-gpsd
+ - python3-gr-funcube
- python3-gr-iqbal
- python3-gv
- python3-hawkey
@@ -25250,6 +25255,7 @@
- python310-pynamodb
- python310-pynetbox
- python310-pyngus
+ - python310-pynput
- python310-pynxos
- python310-pyo
- python310-pyocr
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package 000release-packages for openSUSE:Factory checked in at 2023-04-30 21:19:32
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/000release-packages (Old)
and /work/SRC/openSUSE:Factory/.000release-packages.new.1533 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "000release-packages"
Sun Apr 30 21:19:32 2023 rev:2264 rq: version:unknown
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
openSUSE-Addon-NonOss-release.spec: same change
openSUSE-release.spec: same change
stub.spec: same change
++++++ weakremovers.inc ++++++
--- /var/tmp/diff_new_pack.qec9RD/_old 2023-04-30 21:19:35.650928523 +0200
+++ /var/tmp/diff_new_pack.qec9RD/_new 2023-04-30 21:19:35.658928571 +0200
@@ -2314,7 +2314,6 @@
Provides: weakremover(f2fs-tools-compat)
Provides: weakremover(fakeroot-32bit)
Provides: weakremover(fate)
-Provides: weakremover(fcdproplus-udev)
Provides: weakremover(fcitx-qt4)
Provides: weakremover(fcitx-qt4-32bit)
Provides: weakremover(fcitx-qt5-32bit)
@@ -11913,7 +11912,6 @@
Provides: weakremover(libgnuradio-3_9_5)
Provides: weakremover(libgnuradio-fcdproplus-3_7_2_0-0_0_0)
Provides: weakremover(libgnuradio-fcdproplus-devel)
-Provides: weakremover(libgnuradio-fcdproplus3_8_0)
Provides: weakremover(libgnuradio-iqbalance)
Provides: weakremover(libgnuradio-iqbalance0_37_2git)
Provides: weakremover(libgnuradio-iqbalance3_8_0)
@@ -16968,6 +16966,7 @@
Provides: weakremover(nautilus-plugin-easytag)
Provides: weakremover(nautilus-search-tool)
Provides: weakremover(nautilus-search-tool-lang)
+Provides: weakremover(nautilus-terminal)
Provides: weakremover(ndiff)
Provides: weakremover(ndpmon)
Provides: weakremover(nemo-extension-actions)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package 000update-repos for openSUSE:Factory checked in at 2023-04-30 21:06:58
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/000update-repos (Old)
and /work/SRC/openSUSE:Factory/.000update-repos.new.1533 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "000update-repos"
Sun Apr 30 21:06:58 2023 rev:2244 rq: version:unknown
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
New:
----
factory:non-oss_3604.2.packages.zst
factory_20230429.packages.zst
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package 000release-packages for openSUSE:Factory checked in at 2023-04-30 17:41:38
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/000release-packages (Old)
and /work/SRC/openSUSE:Factory/.000release-packages.new.1533 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "000release-packages"
Sun Apr 30 17:41:38 2023 rev:2263 rq: version:unknown
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ MicroOS-release.spec ++++++
--- /var/tmp/diff_new_pack.p5iOin/_old 2023-04-30 17:41:40.978235432 +0200
+++ /var/tmp/diff_new_pack.p5iOin/_new 2023-04-30 17:41:40.982235456 +0200
@@ -17,7 +17,7 @@
Name: MicroOS-release
-Version: 20230429
+Version: 20230430
Release: 0
Summary: openSUSE MicroOS
License: GPL-2.0-or-later
@@ -176,9 +176,9 @@
%include %{SOURCE100}
Provides: %name-%version
Provides: product() = MicroOS
-Provides: product(MicroOS) = 20230429-0
+Provides: product(MicroOS) = 20230430-0
Provides: product-label() = openSUSE%20MicroOS
-Provides: product-cpeid() = cpe%3A%2Fo%3Aopensuse%3Amicroos%3A20230429
+Provides: product-cpeid() = cpe%3A%2Fo%3Aopensuse%3Amicroos%3A20230430
Provides: product-url(releasenotes) = http%3A%2F%2Fdoc.opensuse.org%2Frelease%2Dnotes%2Fx86_64%2FopenSUSE%2FTumbleweed%2Frelease%2Dnotes%2DopenSUSE.rpm
Provides: product-endoflife()
Requires: product_flavor(MicroOS)
@@ -194,7 +194,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(dvd)
-Provides: product_flavor(MicroOS) = 20230429-0
+Provides: product_flavor(MicroOS) = 20230430-0
Summary: openSUSE MicroOS%{?betaversion: %{betaversion}}
%description dvd
@@ -210,7 +210,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(appliance)
-Provides: product_flavor(MicroOS) = 20230429-0
+Provides: product_flavor(MicroOS) = 20230430-0
Summary: openSUSE MicroOS%{?betaversion: %{betaversion}}
%description appliance
@@ -275,11 +275,11 @@
<product schemeversion="0">
<vendor>openSUSE</vendor>
<name>MicroOS</name>
- <version>20230429</version>
+ <version>20230430</version>
<release>0</release>
<endoflife></endoflife>
<arch>%{_target_cpu}</arch>
- <cpeid>cpe:/o:opensuse:microos:20230429</cpeid>
+ <cpeid>cpe:/o:opensuse:microos:20230430</cpeid>
<productline>MicroOS</productline>
<register>
<pool>
++++++ openSUSE-Addon-NonOss-release.spec ++++++
--- /var/tmp/diff_new_pack.p5iOin/_old 2023-04-30 17:41:41.006235598 +0200
+++ /var/tmp/diff_new_pack.p5iOin/_new 2023-04-30 17:41:41.010235621 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package openSUSE-Addon-NonOss-release (Version 20230429)
+# spec file for package openSUSE-Addon-NonOss-release (Version 20230430)
#
# Copyright (c) 2023 openSUSE.
#
@@ -16,7 +16,7 @@
Name: openSUSE-Addon-NonOss-release
%define product openSUSE-Addon-NonOss
Summary: openSUSE NonOSS Addon%{?betaversion: %{betaversion}}
-Version: 20230429
+Version: 20230430
Release: 0
License: BSD-3-Clause
Group: System/Fhs
@@ -24,9 +24,9 @@
Provides: %name-%version
Provides: product() = openSUSE%2DAddon%2DNonOss
-Provides: product(openSUSE-Addon-NonOss) = 20230429-0
+Provides: product(openSUSE-Addon-NonOss) = 20230430-0
Provides: product-label() = non%20oss%20addon
-Provides: product-cpeid() = cpe%3A%2Fo%3Aopensuse%3Aopensuse%2Daddon%2Dnonoss%3A20230429
+Provides: product-cpeid() = cpe%3A%2Fo%3Aopensuse%3Aopensuse%2Daddon%2Dnonoss%3A20230430
AutoReqProv: on
@@ -49,10 +49,10 @@
<product schemeversion="0">
<vendor>openSUSE</vendor>
<name>openSUSE-Addon-NonOss</name>
- <version>20230429</version>
+ <version>20230430</version>
<release>0</release>
<arch>%{_target_cpu}</arch>
- <cpeid>cpe:/o:opensuse:opensuse-addon-nonoss:20230429</cpeid>
+ <cpeid>cpe:/o:opensuse:opensuse-addon-nonoss:20230430</cpeid>
<register>
<pool>
</pool>
++++++ openSUSE-release.spec ++++++
--- /var/tmp/diff_new_pack.p5iOin/_old 2023-04-30 17:41:41.038235787 +0200
+++ /var/tmp/diff_new_pack.p5iOin/_new 2023-04-30 17:41:41.038235787 +0200
@@ -20,7 +20,7 @@
#define betaversion %{nil}
%define codename Tumbleweed
Name: openSUSE-release
-Version: 20230429
+Version: 20230430
Release: 0
# 0 is the product release, not the build release of this package
Summary: openSUSE Tumbleweed
@@ -180,7 +180,7 @@
%include %{SOURCE100}
Provides: %name-%version
Provides: product() = openSUSE
-Provides: product(openSUSE) = 20230429-0
+Provides: product(openSUSE) = 20230430-0
%ifarch x86_64
Provides: product-register-target() = openSUSE%2DTumbleweed%2Dx86_64
%endif
@@ -194,7 +194,7 @@
Provides: product-register-target() = openSUSE%2DTumbleweed%2Daarch64
%endif
Provides: product-label() = openSUSE
-Provides: product-cpeid() = cpe%3A%2Fo%3Aopensuse%3Aopensuse%3A20230429
+Provides: product-cpeid() = cpe%3A%2Fo%3Aopensuse%3Aopensuse%3A20230430
Provides: product-url(releasenotes) = http%3A%2F%2Fdoc.opensuse.org%2Frelease%2Dnotes%2Fx86_64%2FopenSUSE%2FTumbleweed%2Frelease%2Dnotes%2DopenSUSE.rpm
Provides: product-url(repository) = http%3A%2F%2Fdownload.opensuse.org%2Ftumbleweed%2Frepo%2Foss%2F
Requires: product_flavor(openSUSE)
@@ -208,7 +208,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(ftp)
-Provides: product_flavor(openSUSE) = 20230429-0
+Provides: product_flavor(openSUSE) = 20230430-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description ftp
@@ -223,7 +223,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(mini)
-Provides: product_flavor(openSUSE) = 20230429-0
+Provides: product_flavor(openSUSE) = 20230430-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description mini
@@ -238,7 +238,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(dvd)
-Provides: product_flavor(openSUSE) = 20230429-0
+Provides: product_flavor(openSUSE) = 20230430-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description dvd
@@ -253,7 +253,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(livecd-kde)
-Provides: product_flavor(openSUSE) = 20230429-0
+Provides: product_flavor(openSUSE) = 20230430-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description livecd-kde
@@ -268,7 +268,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(livecd-x11)
-Provides: product_flavor(openSUSE) = 20230429-0
+Provides: product_flavor(openSUSE) = 20230430-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description livecd-x11
@@ -283,7 +283,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(livecd-gnome)
-Provides: product_flavor(openSUSE) = 20230429-0
+Provides: product_flavor(openSUSE) = 20230430-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description livecd-gnome
@@ -298,7 +298,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(livecd-xfce)
-Provides: product_flavor(openSUSE) = 20230429-0
+Provides: product_flavor(openSUSE) = 20230430-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description livecd-xfce
@@ -313,7 +313,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(usb-kde)
-Provides: product_flavor(openSUSE) = 20230429-0
+Provides: product_flavor(openSUSE) = 20230430-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description usb-kde
@@ -328,7 +328,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(usb-gnome)
-Provides: product_flavor(openSUSE) = 20230429-0
+Provides: product_flavor(openSUSE) = 20230430-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description usb-gnome
@@ -343,7 +343,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(usb-x11)
-Provides: product_flavor(openSUSE) = 20230429-0
+Provides: product_flavor(openSUSE) = 20230430-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description usb-x11
@@ -358,7 +358,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(appliance)
-Provides: product_flavor(openSUSE) = 20230429-0
+Provides: product_flavor(openSUSE) = 20230430-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description appliance
@@ -373,7 +373,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(appliance-docker)
-Provides: product_flavor(openSUSE) = 20230429-0
+Provides: product_flavor(openSUSE) = 20230430-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description appliance-docker
@@ -388,7 +388,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(appliance-kvm)
-Provides: product_flavor(openSUSE) = 20230429-0
+Provides: product_flavor(openSUSE) = 20230430-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description appliance-kvm
@@ -403,7 +403,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(appliance-vmware)
-Provides: product_flavor(openSUSE) = 20230429-0
+Provides: product_flavor(openSUSE) = 20230430-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description appliance-vmware
@@ -418,7 +418,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(appliance-openstack)
-Provides: product_flavor(openSUSE) = 20230429-0
+Provides: product_flavor(openSUSE) = 20230430-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description appliance-openstack
@@ -433,7 +433,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(appliance-hyperv)
-Provides: product_flavor(openSUSE) = 20230429-0
+Provides: product_flavor(openSUSE) = 20230430-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description appliance-hyperv
@@ -448,7 +448,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(appliance-vagrant)
-Provides: product_flavor(openSUSE) = 20230429-0
+Provides: product_flavor(openSUSE) = 20230430-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description appliance-vagrant
@@ -463,7 +463,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(appliance-wsl)
-Provides: product_flavor(openSUSE) = 20230429-0
+Provides: product_flavor(openSUSE) = 20230430-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description appliance-wsl
@@ -478,7 +478,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(appliance-custom)
-Provides: product_flavor(openSUSE) = 20230429-0
+Provides: product_flavor(openSUSE) = 20230430-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description appliance-custom
@@ -558,10 +558,10 @@
<product schemeversion="0">
<vendor>openSUSE</vendor>
<name>openSUSE</name>
- <version>20230429</version>
+ <version>20230430</version>
<release>0</release>
<arch>%{_target_cpu}</arch>
- <cpeid>cpe:/o:opensuse:opensuse:20230429</cpeid>
+ <cpeid>cpe:/o:opensuse:opensuse:20230430</cpeid>
<productline>openSUSE</productline>
<register>
<pool>
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package mkvtoolnix for openSUSE:Factory checked in at 2023-04-30 16:08:05
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/mkvtoolnix (Old)
and /work/SRC/openSUSE:Factory/.mkvtoolnix.new.1533 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "mkvtoolnix"
Sun Apr 30 16:08:05 2023 rev:156 rq:1083744 version:76.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/mkvtoolnix/mkvtoolnix.changes 2023-03-27 18:16:26.103155613 +0200
+++ /work/SRC/openSUSE:Factory/.mkvtoolnix.new.1533/mkvtoolnix.changes 2023-04-30 16:08:16.988338263 +0200
@@ -1,0 +2,68 @@
+Sun Apr 30 11:22:10 UTC 2023 - Luigi Baldoni <aloisio(a)gmx.com>
+
+- Update to version 76.0
+ Important notes:
+ * mkvmerge: removed the option `--blockadd`. Removing block
+ additional data is not possible anymore, as it is often
+ required for proper decoding.
+ New features and enhancements:
+ * mkvmerge: JSON file identification: added a child element
+ called `num_index_entries` to the `properties` track element
+ containing the number of index entries found for a track.
+ Currently only implemented for Matroska files where it
+ contains the number of cue points.
+ * mkvmerge: the maximum block addition ID track header value
+ is now calculated automatically from both the existing
+ mappings & the actually used block additions in the block
+ groups.
+ * mkvmerge: Matroska reader: when reading WebM files that use
+ block additions with ID 4 (HDR for VP9) an appropriate block
+ addition mapping will be created automatically.
+ * mkvmerge: MP4 reader: the title/movie name meta data
+ (content of the `udta.meta.ilst.��nam` atom) will now be
+ copied over as the segment title track header attribute.
+ * mkvmerge: MP4 reader: the comment & encoder meta data
+ (content of the `udta.meta.ilst.��cmt` & `���.��too` atoms) will
+ now be copied over as global tags `COMMENT` & `ENCODER`
+ respectively.
+ * mkvmerge, MKVToolNix GUI's multiplexer: added an option to
+ stop processing after the primary video track ends called
+ `--stop-after-video-ends`. This discards any remaining
+ packets of other tracks.
+ * MKVToolNix GUI: multiplexer: automatically setting the
+ destination file name: added an option in the preferences
+ for using the first source file's directory name instead of
+ its file name as the basis for the destination
+ file name.
+ * MKVToolNix GUI: multiplexer: double-clicking on certain
+ columns in the "tracks" view will now toggle them directly
+ (columns "Default track" & "Forced track") or activate the
+ corresponding control (columns "Language", "Name" &
+ "Delay"). Double-clicks on other columns will do what
+ they've done before, too: toggling the "Copy item" state.
+ * MKVToolNix GUI: the dialog for editing language tags is now
+ created only the first time the user wants to edit a
+ language tag & cached afterwards instead of creating a new
+ instance each time. This makes subsequent uses instant.
+ Bug fixes:
+ * mkvmerge: mkvmerge will now only try to probe for VobSubs if
+ the name of the file to identify ends in either `.idx` or
+ `.sub`, preventing mis-identification of other file types if
+ VobSubs with the same base name exist in the same directory.
+ * mkvmerge: AC-3: mkvmerge will now skip certain types of
+ garbage data (16 bytes starting with 0x01 0x10) that can
+ occur before each sync frame, fixing the file not being
+ identified as AC-3.
+ * mkvmerge: Matroska reader: when reading files that use block
+ additions with IDs other than 1 (e.g. 4 for HDR for VP9) the
+ IDs will now be kept & written to the output file. Before no
+ ID would be written, effectively using 1 as that's the
+ default value for the corresponding element.
+ * mkvmerge: mkvmerge will no longer write block addition
+ mappings or the max block addition ID track header elements
+ when creating a WebM file as those elements aren't supported
+ there.
+ * mkvpropedit: fixed replacing chapters & tags in files that
+ don't contain tracks.
+
+-------------------------------------------------------------------
Old:
----
mkvtoolnix-75.0.0.tar.xz
mkvtoolnix-75.0.0.tar.xz.sig
New:
----
mkvtoolnix-76.0.tar.xz
mkvtoolnix-76.0.tar.xz.sig
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ mkvtoolnix.spec ++++++
--- /var/tmp/diff_new_pack.OHBprf/_old 2023-04-30 16:08:17.680342484 +0200
+++ /var/tmp/diff_new_pack.OHBprf/_new 2023-04-30 16:08:17.684342508 +0200
@@ -17,7 +17,7 @@
Name: mkvtoolnix
-Version: 75.0.0
+Version: 76.0
Release: 0
Summary: Tools to Create, Alter, and Inspect Matroska Files
License: GPL-2.0-or-later
++++++ mkvtoolnix-75.0.0.tar.xz -> mkvtoolnix-76.0.tar.xz ++++++
/work/SRC/openSUSE:Factory/mkvtoolnix/mkvtoolnix-75.0.0.tar.xz /work/SRC/openSUSE:Factory/.mkvtoolnix.new.1533/mkvtoolnix-76.0.tar.xz differ: char 26, line 1
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package kcov for openSUSE:Factory checked in at 2023-04-30 16:08:04
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kcov (Old)
and /work/SRC/openSUSE:Factory/.kcov.new.1533 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kcov"
Sun Apr 30 16:08:04 2023 rev:6 rq:1083736 version:41
Changes:
--------
--- /work/SRC/openSUSE:Factory/kcov/kcov.changes 2022-09-30 17:58:46.865375158 +0200
+++ /work/SRC/openSUSE:Factory/.kcov.new.1533/kcov.changes 2023-04-30 16:08:16.092332797 +0200
@@ -1,0 +2,16 @@
+Mon Apr 24 12:39:15 UTC 2023 - Antoine Belvire <antoine.belvire(a)opensuse.org>
+
+- Update to 41:
+ * Output the codecov file format.
+ * Fix handling of symlinks.
+ * Add support for RISC-V.
+ * Fix gcc-13 build.
+ * Correct the license for Debian.
+ * Add --cobertura-only output option.
+ * Fix build with binutils >= 2.39.
+ * Clear BFD state between files to avoid breakpoint trashing atomic
+ instructions.
+- Remove kcov-40-binutils-2.39.patch: Fixed upstream.
+- Add -lsframe, -lzstd to build flags: Fix linking.
+
+-------------------------------------------------------------------
Old:
----
kcov-40-binutils-2.39.patch
v40.tar.gz
New:
----
v41.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kcov.spec ++++++
--- /var/tmp/diff_new_pack.4VZLWv/_old 2023-04-30 16:08:16.476335140 +0200
+++ /var/tmp/diff_new_pack.4VZLWv/_new 2023-04-30 16:08:16.480335164 +0200
@@ -1,7 +1,7 @@
#
# spec file for package kcov
#
-# Copyright (c) 2022 SUSE LLC
+# Copyright (c) 2023 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: kcov
-Version: 40
+Version: 41
Release: 0
Summary: Code coverage tool without special compilation options
License: GPL-2.0-only
@@ -25,8 +25,6 @@
URL: https://github.com/SimonKagstrom/kcov
Source0: https://github.com/SimonKagstrom/kcov/archive/v%{version}.tar.gz
Patch0: link_order.patch
-# PATCH-FIX-UPSTREAM kcov-40-binutils-2.39.patch -- Fix build with binutils 2.39 (gh#SimonKagstrom#381, gh#SimonKagstrom!383)
-Patch1: kcov-40-binutils-2.39.patch
BuildRequires: binutils-devel
BuildRequires: c++_compiler
BuildRequires: cmake
@@ -50,6 +48,9 @@
rm -frv external/
%build
+%if 0%{?suse_version} > 1500
+export CFLAGS="%{optflags} -lsframe -lzstd"
+%endif
%cmake
%cmake_build
++++++ v40.tar.gz -> v41.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcov-40/.github/workflows/ci.yml new/kcov-41/.github/workflows/ci.yml
--- old/kcov-40/.github/workflows/ci.yml 2021-12-18 09:25:42.000000000 +0100
+++ new/kcov-41/.github/workflows/ci.yml 2023-02-23 13:55:55.000000000 +0100
@@ -61,13 +61,13 @@
sudo .github/workflows/ci-run-tests.sh
build-freebsd:
- runs-on: macos-10.15
+ runs-on: macos-12
name: Build and test FreeBSD executable
steps:
- uses: actions/checkout@v2
- name: FreeBSD
id: test
- uses: vmactions/freebsd-vm(a)v0.1.5
+ uses: vmactions/freebsd-vm@v0
with:
usesh: true
sync: rsync
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcov-40/.github/workflows/generic-build.sh new/kcov-41/.github/workflows/generic-build.sh
--- old/kcov-40/.github/workflows/generic-build.sh 2021-12-18 09:25:42.000000000 +0100
+++ new/kcov-41/.github/workflows/generic-build.sh 2023-02-23 13:55:55.000000000 +0100
@@ -18,7 +18,7 @@
apt-get update
apt-mark hold php* google* libobjc* libpq* libidn* postgresql* python3-httplib2 samba* >/dev/null
apt-get upgrade -y
- apt-get install -y binutils-dev libcurl4-openssl-dev libdw-dev libiberty-dev gcc g++ make cmake libssl-dev git python python3 $EXTRA_PACKAGES
+ apt-get install -y binutils-dev libcurl4-openssl-dev libdw-dev libiberty-dev gcc g++ make cmake libssl-dev git python3 $EXTRA_PACKAGES
export PATH="${PATH}:${HOME}/kcov/bin"
mkdir build build-tests
cd build
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcov-40/ChangeLog new/kcov-41/ChangeLog
--- old/kcov-40/ChangeLog 2021-12-18 09:25:42.000000000 +0100
+++ new/kcov-41/ChangeLog 2023-02-23 13:55:55.000000000 +0100
@@ -1,4 +1,21 @@
+Kcov (41):
+ * Add support for RISC-V (rvalue)
+
+ * Fix gcc-13 build (Sergei Trofimovich)
+
+ * Correct the license for Debian (Rui Chen)
+
+ * Add --cobertura-only output option
+
+ * Fix build with binutils >= 2.39 (oreo639)
+
+ * Clear BFD state between files to avoid breakpoint trashing atomic
+ instructions (Andy Caldwell)
+
+ -- Simon Kagstrom <simon.kagstrom(a)gmail.com>, Thu Feb 23 13:52:46 CET 2023
+
Kcov (40):
+
* Make libbfd non-required to avoid GPLv3
-- Simon Kagstrom <simon.kagstrom(a)gmail.com>, Sat Dec 18 09:25:21 CET 2021
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcov-40/INSTALL.md new/kcov-41/INSTALL.md
--- old/kcov-40/INSTALL.md 2021-12-18 09:25:42.000000000 +0100
+++ new/kcov-41/INSTALL.md 2023-02-23 13:55:55.000000000 +0100
@@ -14,8 +14,11 @@
Ubuntu
------
-Install binutils-dev libcurl4-openssl-dev zlib1g-dev libdw-dev libiberty-dev
+Install
+```
+ apt-get install binutils-dev libssl-dev libcurl4-openssl-dev zlib1g-dev libdw-dev libiberty-dev
+```
Fedora / Centos / RHEL
----------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcov-40/README.md new/kcov-41/README.md
--- old/kcov-40/README.md 2021-12-18 09:25:42.000000000 +0100
+++ new/kcov-41/README.md 2023-02-23 13:55:55.000000000 +0100
@@ -101,4 +101,4 @@
More information
----------------
kcov is written by Simon Kagstrom <simon.kagstrom(a)gmail.com> and more
-information can be found at [the web page](http://simonkagstrom.github.com/kcov/index.html)
+information can be found at [the web page](http://simonkagstrom.github.io/kcov/index.html)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcov-40/debian/copyright new/kcov-41/debian/copyright
--- old/kcov-40/debian/copyright 2021-12-18 09:25:42.000000000 +0100
+++ new/kcov-41/debian/copyright 2023-02-23 13:55:55.000000000 +0100
@@ -5,16 +5,16 @@
Files: *
Copyright: <years> <put author's name and email here>
<years> <likewise for another author>
-License: GPL-3.0+
+License: GPL-2.0+
Files: debian/*
Copyright: 2018 Paul Dreik <github(a)pauldreik.se>
-License: GPL-3.0+
+License: GPL-2.0+
-License: GPL-3.0+
+License: GPL-2.0+
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
+ the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
.
This package is distributed in the hope that it will be useful,
@@ -26,7 +26,7 @@
along with this program. If not, see <https://www.gnu.org/licenses/>.
.
On Debian systems, the complete text of the GNU General
- Public License version 3 can be found in "/usr/share/common-licenses/GPL-3".
+ Public License version 2 can be found in "/usr/share/common-licenses/GPL-2".
# Please also look if there are files or directories which have a
# different copyright/license attached and list them here.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcov-40/doc/kcov.1 new/kcov-41/doc/kcov.1
--- old/kcov-40/doc/kcov.1 2021-12-18 09:25:42.000000000 +0100
+++ new/kcov-41/doc/kcov.1 2023-02-23 13:55:55.000000000 +0100
@@ -88,6 +88,11 @@
exit when the first process exits, i.e., honor the behavior of daemons. The default behavior
is to return to the console when the last process exits.
.TP
+\fB\-\-cobertura\-only
+Generate only cobertura output, as cov.xml, in the output directory. The intended usage is for e.g.,
+vscode coverage gutters, where the output directory can then be pointed to somewhere in the project
+directory to get coverage with little droppings.
+.TP
\fB\-\-python\-parser\fP=\fIPARSER\fP
Set the python parser to use for Python programs (the default is python). Can be used to
run with Python 3 on systems where Python 2 is the default.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcov-40/src/CMakeLists.txt new/kcov-41/src/CMakeLists.txt
--- old/kcov-40/src/CMakeLists.txt 2021-12-18 09:25:42.000000000 +0100
+++ new/kcov-41/src/CMakeLists.txt 2023-02-23 13:55:55.000000000 +0100
@@ -39,6 +39,8 @@
message (FATAL_ERROR "Could NOT find M")
endif (M_LIBRARY)
+set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
+
set (KCOV kcov)
@@ -94,6 +96,7 @@
)
set (HAS_LIBBFD "0")
+set (HAS_LIBBFD_DISASM_STYLED "0")
if (CMAKE_TARGET_ARCHITECTURES STREQUAL "i386" OR CMAKE_TARGET_ARCHITECTURES STREQUAL "x86_64")
if (LIBBFD_FOUND)
@@ -106,6 +109,23 @@
${LIBBFD_BFD_LIBRARY}
${LIBBFD_IBERTY_LIBRARY}
)
+ include(CheckCSourceCompiles)
+ set(CMAKE_REQUIRED_LIBRARIES ${DISASSEMBLER_LIBRARIES})
+ check_c_source_compiles("
+ #define PACKAGE
+ #define PACKAGE_VERSION
+ #include <stdio.h>
+ #include <dis-asm.h>
+
+ int main(int argc, char **argv){
+ struct disassemble_info info;
+ init_disassemble_info(&info, stdout, NULL, NULL);
+ return 0;
+ }
+ " TEST_LIBBFD_DISASM_STYLED)
+ if (TEST_LIBBFD_DISASM_STYLED)
+ set (HAS_LIBBFD_DISASM_STYLED "1")
+ endif (TEST_LIBBFD_DISASM_STYLED)
endif (LIBBFD_FOUND)
endif (CMAKE_TARGET_ARCHITECTURES STREQUAL "i386" OR CMAKE_TARGET_ARCHITECTURES STREQUAL "x86_64")
@@ -221,6 +241,7 @@
source-file-cache.cc
utils.cc
writers/cobertura-writer.cc
+ writers/codecov-writer.cc
writers/json-writer.cc
${coveralls_SRCS}
writers/html-writer.cc
@@ -283,7 +304,7 @@
set (KCOV_LIBRARY_PREFIX "/tmp")
-set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x -g -Wall -D_GLIBCXX_USE_NANOSLEEP -DKCOV_LIBRARY_PREFIX=${KCOV_LIBRARY_PREFIX} -DKCOV_HAS_LIBBFD=${HAS_LIBBFD}")
+set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x -g -Wall -D_GLIBCXX_USE_NANOSLEEP -DKCOV_LIBRARY_PREFIX=${KCOV_LIBRARY_PREFIX} -DKCOV_HAS_LIBBFD=${HAS_LIBBFD} -DKCOV_LIBFD_DISASM_STYLED=${HAS_LIBBFD_DISASM_STYLED}")
include_directories(
include/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcov-40/src/configuration.cc new/kcov-41/src/configuration.cc
--- old/kcov-40/src/configuration.cc 2021-12-18 09:25:42.000000000 +0100
+++ new/kcov-41/src/configuration.cc 2023-02-23 13:55:55.000000000 +0100
@@ -127,6 +127,7 @@
{ "clang", no_argument, 0, 'c' },
{ "configure", required_argument, 0, 'M' },
{ "clean", no_argument, 0, 'E' },
+ { "cobertura-only", no_argument, 0, 'o' },
{ "exclude-pattern", required_argument, 0, 'x' },
{ "include-pattern", required_argument, 0, 'i' },
{ "exclude-path", required_argument, 0, 'X' },
@@ -177,7 +178,7 @@
*/
for (lastArg = 1; lastArg < argc; lastArg++)
{
- if (IParserManager::getInstance().matchParser(argv[lastArg]))
+ if (IParserManager::getInstance().matchParser(get_real_path(argv[lastArg])))
break;
bool found = false;
@@ -288,6 +289,9 @@
setKey("output-interval", stoul(std::string(optarg)));
break;
+ case 'o':
+ setKey("cobertura-only", 1);
+ break;
case 'S':
{
if (!isInteger(std::string(optarg)))
@@ -526,10 +530,17 @@
setKey("binary-path", tmp.first);
binaryName = tmp.second;
- setKey("target-directory",
- fmt("%s/%s.%08zx", outDirectory.c_str(), binaryName.c_str(),
- (size_t)hash_file(path)));
-
+ if (!keyAsInt("cobertura-only"))
+ {
+ setKey("target-directory",
+ fmt("%s/%s.%08zx", outDirectory.c_str(), binaryName.c_str(),
+ (size_t)hash_file(path)));
+ }
+ else
+ {
+ // No directory structure if only cobertura is used
+ setKey("target-directory", outDirectory);
+ }
if (keyAsInt("running-mode") == IConfiguration::MODE_REPORT_ONLY &&
!file_exists(keyAsString("target-directory")))
{
@@ -626,6 +637,8 @@
setKey("patchelf-command", "patchelf");
setKey("coveralls-service-name", "travis-ci");
setKey("cobertura-full-paths", 0);
+ setKey("codecov-full-paths", 0);
+ setKey("cobertura-only", 0);
}
void setKey(const std::string &key, const std::string &val)
@@ -664,7 +677,8 @@
{
if (key == "low-limit" || key == "high-limit"
|| key == "bash-use-basic-parser"
- || key == "cobertura-full-paths")
+ || key == "cobertura-full-paths"
+ || key == "codecov-full-paths")
{
if (!isInteger(value))
panic("Value for %s must be integer\n", key.c_str());
@@ -692,6 +706,8 @@
setKey(key, std::string(value));
else if (key == "cobertura-full-paths")
setKey(key, stoul(std::string(value)));
+ else if (key == "codecov-full-paths")
+ setKey(key, stoul(std::string(value)));
else
panic("Unknown key %s\n", key.c_str());
}
@@ -717,6 +733,7 @@
" found after the :\n"
" --path-strip-level=num path levels to show for common paths (default: %d)\n"
"\n"
+ " --cobertura-only Only produce cobertura output in the output dir\n"
" --gcov use gcov parser instead of DWARF debugging info\n"
" --clang use Clang Sanitizer-coverage parser\n"
" --system-record perform full-system instrumentation\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcov-40/src/engines/ptrace.cc new/kcov-41/src/engines/ptrace.cc
--- old/kcov-40/src/engines/ptrace.cc 2021-12-18 09:25:42.000000000 +0100
+++ new/kcov-41/src/engines/ptrace.cc 2023-02-23 13:55:55.000000000 +0100
@@ -50,6 +50,8 @@
unsigned long shift = 8 * offs;
val = (old_data & ~(0xffffffffUL << shift)) | (0xd4200000UL << shift);
+#elif defined(__riscv)
+ val = 0x00100073; /* ebreak */ // No width problem, prefer ebreak than c.ebreak for ISA w/o C extension.
#else
# error Unsupported architecture
#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcov-40/src/engines/ptrace_linux.cc new/kcov-41/src/engines/ptrace_linux.cc
--- old/kcov-40/src/engines/ptrace_linux.cc 2021-12-18 09:25:42.000000000 +0100
+++ new/kcov-41/src/engines/ptrace_linux.cc 2023-02-23 13:55:55.000000000 +0100
@@ -20,6 +20,7 @@
enum
{
i386_EIP = 12, x86_64_RIP = 16, ppc_NIP = 32, arm_PC = 15, aarch64_PC = 32, // See Linux arch/arm64/include/asm/ptrace.h
+ riscv_EPC = 0
};
static void arch_adjustPcAfterBreakpoint(unsigned long *regs);
@@ -40,7 +41,7 @@
regs[i386_EIP]--;
#elif defined(__x86_64__)
regs[x86_64_RIP]--;
-#elif defined(__powerpc__) || defined(__arm__) || defined(__aarch64__)
+#elif defined(__powerpc__) || defined(__arm__) || defined(__aarch64__) || defined(__riscv)
// Do nothing
#else
# error Unsupported architecture
@@ -61,6 +62,8 @@
out = regs[aarch64_PC];
#elif defined(__powerpc__)
out = regs[ppc_NIP];
+#elif defined(__riscv)
+ out = regs[riscv_EPC];
#else
# error Unsupported architecture
#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcov-40/src/include/collector.hh new/kcov-41/src/include/collector.hh
--- old/kcov-40/src/include/collector.hh 2021-12-18 09:25:42.000000000 +0100
+++ new/kcov-41/src/include/collector.hh 2023-02-23 13:55:55.000000000 +0100
@@ -2,6 +2,8 @@
#include <string>
+#include <stdint.h>
+
namespace kcov
{
class IFileParser;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcov-40/src/include/reporter.hh new/kcov-41/src/include/reporter.hh
--- old/kcov-40/src/include/reporter.hh 2021-12-18 09:25:42.000000000 +0100
+++ new/kcov-41/src/include/reporter.hh 2023-02-23 13:55:55.000000000 +0100
@@ -3,6 +3,7 @@
#include <string>
#include <stddef.h>
+#include <stdint.h>
namespace kcov
{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcov-40/src/include/source-file-cache.hh new/kcov-41/src/include/source-file-cache.hh
--- old/kcov-40/src/include/source-file-cache.hh 2021-12-18 09:25:42.000000000 +0100
+++ new/kcov-41/src/include/source-file-cache.hh 2023-02-23 13:55:55.000000000 +0100
@@ -3,6 +3,8 @@
#include <vector>
#include <string>
+#include <stdint.h>
+
namespace kcov
{
/**
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcov-40/src/main.cc new/kcov-41/src/main.cc
--- old/kcov-40/src/main.cc 2021-12-18 09:25:42.000000000 +0100
+++ new/kcov-41/src/main.cc 2023-02-23 13:55:55.000000000 +0100
@@ -20,6 +20,7 @@
#include "merge-parser.hh"
#include "engines/system-mode-file-format.hh"
+#include "writers/codecov-writer.hh"
#include "writers/html-writer.hh"
#include "writers/json-writer.hh"
#include "writers/coveralls-writer.hh"
@@ -189,6 +190,8 @@
mergeReporter, base + "kcov-merged/sonarqube.xml");
IWriter &mergeCoverallsWriter = createCoverallsWriter(mergeParser,
mergeReporter);
+ IWriter &mergeCodecovWriter = createCodecovWriter(mergeParser, mergeReporter,
+ base + "kcov-merged/codecov.json");
(void) mkdir(fmt("%s/kcov-merged", base.c_str()).c_str(), 0755);
output.registerWriter(mergeParser);
@@ -197,6 +200,7 @@
output.registerWriter(mergeCoberturaWriter);
output.registerWriter(mergeSonarqubeWriter);
output.registerWriter(mergeCoverallsWriter);
+ output.registerWriter(mergeCodecovWriter);
output.start();
output.stop();
@@ -220,8 +224,9 @@
return 1;
}
- if (parser->getParserType() == "bash" ||
- parser->getParserType() == "python")
+ if ((parser->getParserType() == "bash" ||
+ parser->getParserType() == "python") &&
+ !conf.keyAsInt("cobertura-only"))
{
// Use the path as the hash for non-compiled languages
conf.setKey("target-directory",
@@ -256,7 +261,10 @@
filter);
IReporter &mergeReporter = IReporter::create(mergeParser, mergeParser,
basicFilter);
- (void) mkdir(fmt("%s/kcov-merged", base.c_str()).c_str(), 0755);
+ if (!conf.keyAsInt("cobertura-only"))
+ {
+ (void) mkdir(fmt("%s/kcov-merged", base.c_str()).c_str(), 0755);
+ }
// Register writers
if (runningMode != IConfiguration::MODE_COLLECT_ONLY)
@@ -269,6 +277,8 @@
out);
IWriter &sonarqubeWriter = createSonarqubeWriter(*parser, reporter,
out + "/sonarqube.xml");
+ IWriter &codecovWriter = createCodecovWriter(*parser, reporter,
+ out + "/codecov.json");
IWriter &mergeHtmlWriter = createHtmlWriter(mergeParser, mergeReporter,
base, base + "/kcov-merged", conf.keyAsString("merged-name"),
@@ -279,30 +289,45 @@
mergeReporter, base + "kcov-merged");
IWriter &mergeSonarqubeWriter = createSonarqubeWriter(mergeParser,
mergeReporter, base + "kcov-merged/sonarqube.xml");
+ IWriter &mergeCodecovWriter = createCodecovWriter(mergeParser,
+ mergeReporter, base + "kcov-merged/codecov.json");
- // Multiple binaries? Register the merged mode stuff
- if (countMetadata() > 0)
+ if (!conf.keyAsInt("cobertura-only"))
{
- output.registerWriter(mergeHtmlWriter);
- output.registerWriter(mergeJsonWriter);
- output.registerWriter(mergeCoberturaWriter);
- output.registerWriter(mergeSonarqubeWriter);
- output.registerWriter(
- createCoverallsWriter(mergeParser, mergeReporter));
+ // Multiple binaries? Register the merged mode stuff
+ if (countMetadata() > 0)
+ {
+ output.registerWriter(mergeHtmlWriter);
+ output.registerWriter(mergeJsonWriter);
+ output.registerWriter(mergeCoberturaWriter);
+ output.registerWriter(mergeSonarqubeWriter);
+ output.registerWriter(
+ createCoverallsWriter(mergeParser, mergeReporter));
+ output.registerWriter(mergeCodecovWriter);
+ }
+ else
+ {
+ output.registerWriter(createCoverallsWriter(*parser, reporter));
+ }
+
+ output.registerWriter(coberturaWriter);
+ output.registerWriter(htmlWriter);
+ output.registerWriter(jsonWriter);
+ output.registerWriter(sonarqubeWriter);
+ output.registerWriter(codecovWriter);
}
else
{
- output.registerWriter(createCoverallsWriter(*parser, reporter));
+ // Nothing else, if only cobertura is requested
+ output.registerWriter(coberturaWriter);
}
-
- output.registerWriter(htmlWriter);
- output.registerWriter(jsonWriter);
- output.registerWriter(coberturaWriter);
- output.registerWriter(sonarqubeWriter);
}
reporter.registerListener(mergeParser);
- output.registerWriter(mergeParser);
+ if (!conf.keyAsInt("cobertura-only"))
+ {
+ output.registerWriter(mergeParser);
+ }
g_engine = engine;
g_output = &output;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcov-40/src/output-handler.cc new/kcov-41/src/output-handler.cc
--- old/kcov-40/src/output-handler.cc 2021-12-18 09:25:42.000000000 +0100
+++ new/kcov-41/src/output-handler.cc 2023-02-23 13:55:55.000000000 +0100
@@ -37,10 +37,13 @@
(void)mkdir(m_baseDirectory.c_str(), 0755);
(void)mkdir(m_outDirectory.c_str(), 0755);
- (void)unlink(readableName.c_str());
- if (symlink(m_outDirectory.c_str(), readableName.c_str()) < 0)
+ if (!conf.keyAsInt("cobertura-only"))
{
- kcov_debug(INFO_MSG, "Can't symlink readable name\n");
+ (void)unlink(readableName.c_str());
+ if (symlink(m_outDirectory.c_str(), readableName.c_str()) < 0)
+ {
+ kcov_debug(INFO_MSG, "Can't symlink readable name\n");
+ }
}
if (collector)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcov-40/src/parsers/bfd-disassembler.cc new/kcov-41/src/parsers/bfd-disassembler.cc
--- old/kcov-40/src/parsers/bfd-disassembler.cc 2021-12-18 09:25:42.000000000 +0100
+++ new/kcov-41/src/parsers/bfd-disassembler.cc 2023-02-23 13:55:55.000000000 +0100
@@ -5,6 +5,7 @@
#include <set>
#include <map>
#include <algorithm>
+#include <stdexcept>
#ifndef ATTRIBUTE_FPTR_PRINTF_2
# define ATTRIBUTE_FPTR_PRINTF_2
@@ -50,15 +51,11 @@
"jpo",
"js",
"jz",
- "jczx"
- "jezx"
-
+ "jczx",
+ "jezx",
"loop",
-
"jmp",
-
"call",
-
"ret",
};
@@ -75,7 +72,11 @@
BfdDisassembler()
{
memset(&m_info, 0, sizeof(m_info));
+#if KCOV_LIBFD_DISASM_STYLED
+ init_disassemble_info(&m_info, (void *)this, BfdDisassembler::opcodesFprintFuncStatic, BfdDisassembler::opcodesFprintStyledFuncStatic);
+#else
init_disassemble_info(&m_info, (void *)this, BfdDisassembler::opcodesFprintFuncStatic);
+#endif
m_disassembler = print_insn_i386;
m_info.arch = bfd_arch_i386;
@@ -86,6 +87,12 @@
virtual void setup(const void *header, size_t headerSize)
{
+ // New ELF file, clear any state from the previous instance
+ m_cache.clear();
+ m_instructions.clear();
+ m_orderedInstructions.clear();
+ m_bbs.clear();
+
const uint8_t *data = (const uint8_t *)header;
panic_if(headerSize <= EI_CLASS,
@@ -293,24 +300,35 @@
Section *lookupSection(uint64_t address)
{
+ // Iterator to the lowest-addressed section that starts at or above
+ // `address`
SectionCache_t::iterator it = m_cache.lower_bound(address);
- if (it == m_cache.end())
- return NULL;
+ // Rare case, the searched for address might be exactly the base address of
+ // this section
+ if (it != m_cache.end() && it->first == address) {
+ return it->second;
+ }
+
+ // Go back one section (this might be too far, but we'll check later)
--it;
- // Above the last symbol
+ // If there was no previous section, the address isn't in a section (it's
+ // before the lowest section's baseAddress)
if (it == m_cache.end())
return NULL;
+ // We've found the highest-starting section that's lower than the target
+ // address, check it actually contains the address
Section *cur = it->second;
uint64_t end = cur->getBase() + cur->getSize() - 1;
- // Below nearest (possible?)
+ // Address is below the section's baseAddress (impossible from the above
+ // logic)
if (address < cur->getBase())
- return NULL;
+ throw std::logic_error("Section search invariant broken");
- // Above section
+ // Address is above section's end
if (address > end)
return NULL;
@@ -373,7 +391,6 @@
}
}
-
Instruction *getInstruction(uint64_t address)
{
if (m_instructions.find(address) == m_instructions.end())
@@ -382,8 +399,6 @@
return &m_instructions[address];
}
-
-
void opcodesFprintFunc(const char *str)
{
std::string stdStr(str);
@@ -407,6 +422,25 @@
return out;
}
+#if KCOV_LIBFD_DISASM_STYLED
+ static int opcodesFprintStyledFuncStatic(void *info, enum disassembler_style style, const char *fmt, ...)
+ {
+ (void)style;
+ BfdDisassembler *pThis = (BfdDisassembler *)info;
+ char str[64];
+ int out;
+
+ va_list args;
+ va_start (args, fmt);
+ out = vsnprintf( str, sizeof(str) - 1, fmt, args );
+ va_end (args);
+
+ pThis->opcodesFprintFunc(str);
+
+ return out;
+ }
+#endif
+
typedef std::map<uint64_t, Section *> SectionCache_t;
typedef std::unordered_map<uint64_t, Instruction> InstructionAddressMap_t;
typedef std::map<uint64_t, Instruction *> InstructionOrderedMap_t;
@@ -414,7 +448,6 @@
struct disassemble_info m_info;
disassembler_ftype m_disassembler;
-
std::vector<std::string> m_instructionVector;
SectionCache_t m_cache;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcov-40/src/solib-parser/lib.c new/kcov-41/src/solib-parser/lib.c
--- old/kcov-40/src/solib-parser/lib.c 2021-12-18 09:25:42.000000000 +0100
+++ new/kcov-41/src/solib-parser/lib.c 2023-02-23 13:55:55.000000000 +0100
@@ -95,6 +95,8 @@
".long 0xfedeffe7\n" /* undefined insn */
#elif defined(__aarch64__)
".long 0xd4200000\n" /* From https://github.com/scottt/debugbreak */
+#elif defined(__riscv)
+ "ebreak\n"
#else
# error Unsupported architecture
#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcov-40/src/writers/cobertura-writer.cc new/kcov-41/src/writers/cobertura-writer.cc
--- old/kcov-40/src/writers/cobertura-writer.cc 2021-12-18 09:25:42.000000000 +0100
+++ new/kcov-41/src/writers/cobertura-writer.cc 2023-02-23 13:55:55.000000000 +0100
@@ -27,7 +27,11 @@
CoberturaWriter(IFileParser &parser, IReporter &reporter, const std::string &outDir) :
WriterBase(parser, reporter), m_maxPossibleHits(parser.maxPossibleHits())
{
- m_outFiles.push_back(outDir + "/cobertura.xml");
+ if (!IConfiguration::getInstance().keyAsInt("cobertura-only"))
+ {
+ // cobertura-only is used for vscode, normally
+ m_outFiles.push_back(outDir + "/cobertura.xml");
+ }
m_outFiles.push_back(outDir + "/cov.xml"); // For vscode coverage gutters
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcov-40/src/writers/codecov-writer.cc new/kcov-41/src/writers/codecov-writer.cc
--- old/kcov-40/src/writers/codecov-writer.cc 1970-01-01 01:00:00.000000000 +0100
+++ new/kcov-41/src/writers/codecov-writer.cc 2023-02-23 13:55:55.000000000 +0100
@@ -0,0 +1,200 @@
+namespace std
+{
+class type_info;
+}
+
+#include <reporter.hh>
+#include <file-parser.hh>
+#include <configuration.hh>
+#include <writer.hh>
+#include <utils.hh>
+
+#include <string>
+#include <list>
+#include <vector>
+#include <unordered_map>
+#include <iostream>
+#include <fstream>
+#include <sstream>
+
+#include "writer-base.hh"
+
+namespace kcov
+{
+
+namespace
+{
+
+// Outputs a coverage file that conforms to the Codecov Custom Coverage Format
+// as described here: https://docs.codecov.com/docs/codecov-custom-coverage-format
+//
+// Noteably, while this file format can be consumed by Codecov, it is most
+// useful for interoperating with other services that expect this format, as
+// Codecov intentionally can consume multiple formats.
+class CodecovWriter : public WriterBase
+{
+public:
+ CodecovWriter(IFileParser &parser, IReporter &reporter, const std::string &outFile) :
+ WriterBase(parser, reporter), m_outFile(outFile), m_maxPossibleHits(parser.maxPossibleHits())
+ {
+ }
+
+ void onStartup()
+ {
+ }
+
+ void onStop()
+ {
+ }
+
+ void write()
+ {
+ std::stringstream out;
+
+ setupCommonPaths();
+
+ for (FileMap_t::const_iterator it = m_files.begin(); it != m_files.end(); ++it)
+ {
+ File *file = it->second;
+
+ // Fixup file->m_codeLines etc
+ sumOne(file);
+ }
+ out << getHeader();
+
+ bool first_time = true;
+ for (FileMap_t::const_iterator it = m_files.begin(); it != m_files.end(); ++it)
+ {
+ if (!first_time) {
+ out << ",\n";
+ }
+ File *file = it->second;
+ out << writeOne(file);
+ first_time = false;
+ }
+ out << "\n";
+
+ out << getFooter();
+
+ std::ofstream cur(m_outFile);
+ cur << out.str();
+ }
+
+private:
+ void sumOne(File *file)
+ {
+ unsigned int nExecutedLines = 0;
+ unsigned int nCodeLines = 0;
+
+ for (unsigned int n = 1; n < file->m_lastLineNr; n++)
+ {
+ if (!m_reporter.lineIsCode(file->m_name, n))
+ continue;
+
+ IReporter::LineExecutionCount cnt = m_reporter.getLineExecutionCount(file->m_name, n);
+
+ nExecutedLines += !!cnt.m_hits;
+ nCodeLines++;
+
+ // Update the execution count
+ file->m_executedLines = nExecutedLines;
+ file->m_codeLines = nCodeLines;
+ }
+ }
+
+ std::string writeOne(File *file)
+ {
+ unsigned int nExecutedLines = 0;
+ unsigned int nCodeLines = 0;
+ IConfiguration& conf = IConfiguration::getInstance();
+
+ // Compute filename, stripping paths
+ std::string filename = file->m_name;
+
+ if (conf.keyAsInt("codecov-full-paths") == 0)
+ {
+ std::string stripPath = conf.keyAsString("strip-path");
+ if (stripPath.size() == 0)
+ {
+ stripPath = m_commonPath;
+ }
+ size_t pos = filename.find(stripPath);
+ if (pos != std::string::npos && filename.size() > stripPath.size())
+ {
+ filename = filename.substr(stripPath.size() + 1);
+ }
+ }
+
+ // Produce each line score.
+ std::vector<std::string> lineEntries;
+ for (unsigned int n = 1; n < file->m_lastLineNr; n++)
+ {
+ if (m_reporter.lineIsCode(file->m_name, n))
+ {
+ IReporter::LineExecutionCount cnt = m_reporter.getLineExecutionCount(file->m_name, n);
+ std::string hitScore = "0";
+
+ if (m_maxPossibleHits == IFileParser::HITS_UNLIMITED || m_maxPossibleHits == IFileParser::HITS_SINGLE)
+ {
+ if (cnt.m_hits) {
+ hitScore = fmt("%u", cnt.m_hits);
+ }
+ }
+ else
+ { // One or multiple for a line
+ hitScore = fmt("\"%u/%u\"", cnt.m_hits, cnt.m_possibleHits);
+ }
+ lineEntries.push_back(fmt(" \"%u\": %s", n, hitScore.c_str()));
+
+ nExecutedLines += !!cnt.m_hits;
+ nCodeLines++;
+ } else {
+ // We could emit '"linenum": null,' though that seems wasteful in storage.
+ }
+
+ // Update the execution count.
+ file->m_executedLines = nExecutedLines;
+ file->m_codeLines = nCodeLines;
+ }
+
+ std::string linesBlock;
+ for (std::vector<std::string>::const_iterator lineEntry = lineEntries.begin(); lineEntry != lineEntries.end(); ++lineEntry) {
+ if (!linesBlock.empty()) {
+ linesBlock += ",\n";
+ }
+ linesBlock += *lineEntry;
+ }
+ linesBlock += "\n";
+
+
+ std::string out =
+ " \"" + filename + "\": {\n" +
+ linesBlock +
+ " }";
+
+ return out;
+ }
+
+ std::string getHeader()
+ {
+ return "{\n"
+ " \"coverage\": {\n";
+ }
+
+ const std::string getFooter()
+ {
+ return " }\n"
+ "}\n";
+ }
+
+ std::string m_outFile;
+ IFileParser::PossibleHits m_maxPossibleHits;
+};
+
+} // namespace anonymous
+
+IWriter &createCodecovWriter(IFileParser &parser, IReporter &reporter, const std::string &outFile)
+{
+ return *new CodecovWriter(parser, reporter, outFile);
+}
+} // namespace kcov
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcov-40/src/writers/codecov-writer.hh new/kcov-41/src/writers/codecov-writer.hh
--- old/kcov-40/src/writers/codecov-writer.hh 1970-01-01 01:00:00.000000000 +0100
+++ new/kcov-41/src/writers/codecov-writer.hh 2023-02-23 13:55:55.000000000 +0100
@@ -0,0 +1,13 @@
+#pragma once
+
+#include <string>
+
+namespace kcov
+{
+ class IFileParser;
+ class IReporter;
+ class IOutputHandler;
+
+ IWriter &createCodecovWriter(IFileParser &elf, IReporter &reporter,
+ const std::string &outFile);
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcov-40/tests/python/link_main new/kcov-41/tests/python/link_main
--- old/kcov-40/tests/python/link_main 1970-01-01 01:00:00.000000000 +0100
+++ new/kcov-41/tests/python/link_main 2023-04-30 16:08:16.592335847 +0200
@@ -0,0 +1 @@
+symbolic link to main
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kcov-40/tests/tools/python.py new/kcov-41/tests/tools/python.py
--- old/kcov-40/tests/tools/python.py 2021-12-18 09:25:42.000000000 +0100
+++ new/kcov-41/tests/tools/python.py 2023-02-23 13:55:55.000000000 +0100
@@ -24,6 +24,13 @@
assert b"Cannot find Python parser 'python3'" not in o
+class python_issue_368_can_handle_symlink_target(testbase.KcovTestCase):
+ def runTest(self):
+ self.setUp()
+ rv,o = self.do(testbase.kcov + " --python-parser=python3 " + testbase.outbase + "/kcov " + testbase.sources + "/tests/python/link_main 5 --foo")
+
+ assert b"unrecognized option '--foo'" not in o
+
class python_unittest(testbase.KcovTestCase):
def runTest(self):
self.setUp()
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package terragrunt for openSUSE:Factory checked in at 2023-04-30 16:08:00
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/terragrunt (Old)
and /work/SRC/openSUSE:Factory/.terragrunt.new.1533 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "terragrunt"
Sun Apr 30 16:08:00 2023 rev:40 rq:1083713 version:0.45.6
Changes:
--------
--- /work/SRC/openSUSE:Factory/terragrunt/terragrunt.changes 2023-04-28 16:24:45.366496247 +0200
+++ /work/SRC/openSUSE:Factory/.terragrunt.new.1533/terragrunt.changes 2023-04-30 16:08:12.408310324 +0200
@@ -1,0 +2,6 @@
+Sun Apr 30 07:02:03 UTC 2023 - kastl(a)b1-systems.de
+
+- Update to version 0.45.6:
+ * JSON output prefix update (#2548)
+
+-------------------------------------------------------------------
Old:
----
terragrunt-0.45.4.obscpio
terragrunt-0.45.5.obscpio
New:
----
terragrunt-0.45.6.obscpio
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ terragrunt.spec ++++++
--- /var/tmp/diff_new_pack.eIwGeN/_old 2023-04-30 16:08:13.356316105 +0200
+++ /var/tmp/diff_new_pack.eIwGeN/_new 2023-04-30 16:08:13.360316130 +0200
@@ -19,7 +19,7 @@
%define __arch_install_post export NO_BRP_STRIP_DEBUG=true
Name: terragrunt
-Version: 0.45.5
+Version: 0.45.6
Release: 0
Summary: Thin wrapper for Terraform for working with multiple Terraform modules
License: MIT
++++++ _service ++++++
--- /var/tmp/diff_new_pack.eIwGeN/_old 2023-04-30 16:08:13.404316399 +0200
+++ /var/tmp/diff_new_pack.eIwGeN/_new 2023-04-30 16:08:13.408316423 +0200
@@ -3,7 +3,7 @@
<param name="url">https://github.com/gruntwork-io/terragrunt</param>
<param name="scm">git</param>
<param name="exclude">.git</param>
- <param name="revision">v0.45.5</param>
+ <param name="revision">v0.45.6</param>
<param name="versionformat">@PARENT_TAG@</param>
<param name="changesgenerate">enable</param>
<param name="versionrewrite-pattern">v(.*)</param>
++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.eIwGeN/_old 2023-04-30 16:08:13.432316569 +0200
+++ /var/tmp/diff_new_pack.eIwGeN/_new 2023-04-30 16:08:13.436316594 +0200
@@ -1,6 +1,6 @@
<servicedata>
<service name="tar_scm">
<param name="url">https://github.com/gruntwork-io/terragrunt</param>
- <param name="changesrevision">208e6b23a8d77c1f745cc8c07b600c8b15e57803</param></service></servicedata>
+ <param name="changesrevision">d185ed96d24ff59c906c28a019a9b2cdf29f760e</param></service></servicedata>
(No newline at EOF)
++++++ terragrunt-0.45.4.obscpio -> terragrunt-0.45.6.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/terragrunt-0.45.4/cli/args.go new/terragrunt-0.45.6/cli/args.go
--- old/terragrunt-0.45.4/cli/args.go 2023-04-19 21:45:14.000000000 +0200
+++ new/terragrunt-0.45.6/cli/args.go 2023-04-28 23:35:22.000000000 +0200
@@ -156,8 +156,16 @@
opts.Debug = true
}
+ jsonOutput := false
+ for _, arg := range args {
+ if strings.EqualFold(arg, "-json") {
+ jsonOutput = true
+ break
+ }
+ }
+
includeModulePrefix := parseBooleanArg(args, optTerragruntIncludeModulePrefix, os.Getenv("TERRAGRUNT_INCLUDE_MODULE_PREFIX") == "true" || os.Getenv("TERRAGRUNT_INCLUDE_MODULE_PREFIX") == "1")
- if includeModulePrefix {
+ if includeModulePrefix && !jsonOutput {
opts.IncludeModulePrefix = true
opts.OutputPrefix = fmt.Sprintf("[%s] ", opts.WorkingDir)
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/terragrunt-0.45.4/main.go new/terragrunt-0.45.6/main.go
--- old/terragrunt-0.45.4/main.go 2023-04-19 21:45:14.000000000 +0200
+++ new/terragrunt-0.45.6/main.go 2023-04-28 23:35:22.000000000 +0200
@@ -41,6 +41,9 @@
exitCode = 1
util.GlobalFallbackLogEntry.Errorf("Unable to determine underlying exit code, so Terragrunt will exit with error code 1")
}
+ if explain := shell.ExplainError(err); len(explain) > 0 {
+ util.GlobalFallbackLogEntry.Errorf("Suggested fixes: \n%s", explain)
+ }
os.Exit(exitCode)
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/terragrunt-0.45.4/shell/error_explainer.go new/terragrunt-0.45.6/shell/error_explainer.go
--- old/terragrunt-0.45.4/shell/error_explainer.go 1970-01-01 01:00:00.000000000 +0100
+++ new/terragrunt-0.45.6/shell/error_explainer.go 2023-04-28 23:35:22.000000000 +0200
@@ -0,0 +1,47 @@
+package shell
+
+import (
+ "regexp"
+ "strings"
+
+ "github.com/gruntwork-io/gruntwork-cli/collections"
+
+ "github.com/gruntwork-io/terragrunt/errors"
+ "github.com/hashicorp/go-multierror"
+)
+
+// terraformErrorsMatcher List of errors that we know how to explain to the user. The key is a regex that matches the error message, and the value is the explanation.
+var terraformErrorsMatcher = map[string]string{
+ "(?s).*Error refreshing state: AccessDenied: Access Denied(?s).*": "You don't have access to the S3 bucket where the state is stored. Check your credentials and permissions.",
+ "(?s).*Error: Initialization required(?s).*": "You need to run terragrunt (run-all) init to initialize working directory.",
+ "(?s).*Module source has changed(?s).*": "You need to run terragrunt (run-all) init install all required modules.",
+}
+
+// ExplainError will try to explain the error to the user, if we know how to do so.
+func ExplainError(err error) string {
+ multiErrors, ok := err.(*multierror.Error)
+ if !ok {
+ return ""
+ }
+ explanations := map[string]string{}
+
+ // iterate over each error, unwrap it, and check for error output
+ for _, errorItem := range multiErrors.Errors {
+ originalError := errors.Unwrap(errorItem)
+ if originalError == nil {
+ continue
+ }
+ processError, ok := originalError.(ProcessExecutionError)
+ if !ok {
+ continue
+ }
+ errorOutput := processError.Stderr
+ for regex, explanation := range terraformErrorsMatcher {
+ if match, _ := regexp.MatchString(regex, errorOutput); match {
+ // collect matched explanations
+ explanations[explanation] = "1"
+ }
+ }
+ }
+ return strings.Join(collections.Keys(explanations), "\n")
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/terragrunt-0.45.4/shell/error_explainer_test.go new/terragrunt-0.45.6/shell/error_explainer_test.go
--- old/terragrunt-0.45.4/shell/error_explainer_test.go 1970-01-01 01:00:00.000000000 +0100
+++ new/terragrunt-0.45.6/shell/error_explainer_test.go 2023-04-28 23:35:22.000000000 +0200
@@ -0,0 +1,45 @@
+package shell
+
+import (
+ "testing"
+
+ "github.com/hashicorp/go-multierror"
+ "github.com/stretchr/testify/assert"
+)
+
+func TestExplainError(t *testing.T) {
+ t.Parallel()
+
+ var testCases = []struct {
+ errorOutput string
+ explanation string
+ }{
+ {
+ errorOutput: "Error refreshing state: AccessDenied: Access Denied",
+ explanation: "Check your credentials and permissions",
+ },
+ {
+ errorOutput: "Error: Initialization required",
+ explanation: "You need to run terragrunt (run-all) init to initialize working directory",
+ },
+ {
+ errorOutput: "Module source has changed",
+ explanation: "You need to run terragrunt (run-all) init install all required modules",
+ },
+ }
+
+ for _, tt := range testCases {
+
+ t.Run(tt.errorOutput, func(t *testing.T) {
+ err := multierror.Append(&multierror.Error{}, ProcessExecutionError{
+ Err: nil,
+ StdOut: "",
+ Stderr: tt.errorOutput,
+ })
+ explanation := ExplainError(err)
+ assert.Contains(t, explanation, tt.explanation)
+
+ })
+ }
+
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/terragrunt-0.45.4/test/integration_test.go new/terragrunt-0.45.6/test/integration_test.go
--- old/terragrunt-0.45.4/test/integration_test.go 2023-04-19 21:45:14.000000000 +0200
+++ new/terragrunt-0.45.6/test/integration_test.go 2023-04-28 23:35:22.000000000 +0200
@@ -5285,7 +5285,25 @@
t,
runTerragruntCommand(t, fmt.Sprintf("terragrunt output -no-color -json --terragrunt-include-module-prefix --terragrunt-non-interactive --terragrunt-working-dir %s", app3Path), &stdout, &stderr),
)
- assert.Contains(t, stdout.String(), "\"value\": 42")
+ // validate that output is valid json
+ outputs := map[string]TerraformOutput{}
+ require.NoError(t, json.Unmarshal([]byte(stdout.String()), &outputs))
+ assert.Equal(t, int(outputs["z"].Value.(float64)), 42)
+}
+
+func TestErrorExplaining(t *testing.T) {
+ t.Parallel()
+
+ initTestCase := TEST_FIXTURE_INIT_ERROR
+ cleanupTerraformFolder(t, initTestCase)
+ cleanupTerragruntFolder(t, initTestCase)
+
+ stdout := bytes.Buffer{}
+ stderr := bytes.Buffer{}
+
+ err := runTerragruntCommand(t, fmt.Sprintf("terragrunt init -no-color --terragrunt-include-module-prefix --terragrunt-non-interactive --terragrunt-working-dir %s", initTestCase), &stdout, &stderr)
+ explanation := shell.ExplainError(err)
+ assert.Contains(t, explanation, "Check your credentials and permissions")
}
func validateBoolOutput(t *testing.T, outputs map[string]TerraformOutput, key string, value bool) {
++++++ terragrunt.obsinfo ++++++
--- /var/tmp/diff_new_pack.eIwGeN/_old 2023-04-30 16:08:14.144320913 +0200
+++ /var/tmp/diff_new_pack.eIwGeN/_new 2023-04-30 16:08:14.148320937 +0200
@@ -1,5 +1,5 @@
name: terragrunt
-version: 0.45.5
-mtime: 1682624285
-commit: 208e6b23a8d77c1f745cc8c07b600c8b15e57803
+version: 0.45.6
+mtime: 1682717722
+commit: d185ed96d24ff59c906c28a019a9b2cdf29f760e
++++++ vendor.tar.gz ++++++
/work/SRC/openSUSE:Factory/terragrunt/vendor.tar.gz /work/SRC/openSUSE:Factory/.terragrunt.new.1533/vendor.tar.gz differ: char 5, line 1
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package ansilove-term for openSUSE:Factory checked in at 2023-04-30 16:08:02
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ansilove-term (Old)
and /work/SRC/openSUSE:Factory/.ansilove-term.new.1533 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ansilove-term"
Sun Apr 30 16:08:02 2023 rev:2 rq:1083726 version:0.0.0+git.20190908
Changes:
--------
--- /work/SRC/openSUSE:Factory/ansilove-term/ansilove-term.changes 2019-12-04 14:19:18.154383636 +0100
+++ /work/SRC/openSUSE:Factory/.ansilove-term.new.1533/ansilove-term.changes 2023-04-30 16:08:14.304321889 +0200
@@ -1,0 +2,5 @@
+Wed Apr 12 09:38:34 UTC 2023 - Dominique Leuenberger <dimstar(a)opensuse.org>
+
+- Add ansilove-term-gcc13.patch: fix build using GCC 13.
+
+-------------------------------------------------------------------
New:
----
ansilove-term-gcc13.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ansilove-term.spec ++++++
--- /var/tmp/diff_new_pack.mj3NHc/_old 2023-04-30 16:08:14.728324476 +0200
+++ /var/tmp/diff_new_pack.mj3NHc/_new 2023-04-30 16:08:14.736324524 +0200
@@ -1,6 +1,7 @@
#
# spec file for package ansilove-term
#
+# Copyright (c) 2023 SUSE LLC
# Copyright (c) 2019, Martin Hauke <mardnh(a)gmx.de>
#
# All modifications and additions to the file contributed by third parties
@@ -26,6 +27,7 @@
#Git-Clone: https://github.com/ansilove/ansilove-term.git
Source: %{name}-%{version}.tar.xz
Patch0: ansilove-term-use-gcc.patch
+Patch1: ansilove-term-gcc13.patch
BuildRequires: gcc-c++
%description
@@ -33,8 +35,7 @@
PNG files, as well as displaying in several different mediums.
%prep
-%setup -q
-%patch0 -p1
+%autosetup -p1
%build
export CXXFLAGS="%{optflags} -Wno-return-type"
++++++ ansilove-term-gcc13.patch ++++++
Index: ansilove-term-0.0.0+git.20190908/src/libtextmode/utf8.h
===================================================================
--- ansilove-term-0.0.0+git.20190908.orig/src/libtextmode/utf8.h
+++ ansilove-term-0.0.0+git.20190908/src/libtextmode/utf8.h
@@ -3,6 +3,7 @@
#include <vector>
#include <string>
+#include <cstdint>
std::string cp_437_code_to_string(const uint8_t& cp_437);
std::string cp_437_to_utf8_string(std::vector<uint8_t>& vector);
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package gnuradio for openSUSE:Factory checked in at 2023-04-30 16:07:59
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gnuradio (Old)
and /work/SRC/openSUSE:Factory/.gnuradio.new.1533 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gnuradio"
Sun Apr 30 16:07:59 2023 rev:64 rq:1083720 version:3.10.6.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/gnuradio/gnuradio.changes 2023-04-25 21:54:43.355645972 +0200
+++ /work/SRC/openSUSE:Factory/.gnuradio.new.1533/gnuradio.changes 2023-04-30 16:08:11.440304417 +0200
@@ -1,0 +2,5 @@
+Sun Apr 30 07:55:28 UTC 2023 - Martin Pluskal <mpluskal(a)suse.com>
+
+- Enable lto for arm
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gnuradio.spec ++++++
--- /var/tmp/diff_new_pack.3Ioj3r/_old 2023-04-30 16:08:12.044308102 +0200
+++ /var/tmp/diff_new_pack.3Ioj3r/_new 2023-04-30 16:08:12.048308127 +0200
@@ -17,10 +17,6 @@
%define sover 3_10_6
-%ifarch %{arm}
-# boo#1182440
-%define _lto_cflags %{nil}
-%endif
%bcond_without docs
Name: gnuradio
Version: 3.10.6.0
@@ -81,31 +77,31 @@
BuildRequires: soapy-sdr-devel
BuildRequires: spdlog-devel
BuildRequires: thrift
-BuildRequires: uhd-devel
-BuildRequires: update-desktop-files
-BuildRequires: volk-devel >= 2.4.1
BuildRequires: typelib(Gtk) = 3.0
BuildRequires: typelib(PangoCairo) = 1.0
BuildRequires: typelib(cairo) = 1.0
+BuildRequires: uhd-devel
+BuildRequires: update-desktop-files
+BuildRequires: volk-devel >= 2.4.1
+# gr_soapy dependencies
+Requires: python3-SoapySDR
# gnuradio-companion dependencies
Requires: python3-cairo
-Requires: python3-gobject-Gdk
-Requires: python3-jsonschema
-Requires: typelib(Gtk) = 3.0
# gr_modtool dependencies
Requires: python3-click
Requires: python3-click-plugins
+Requires: python3-gobject-Gdk
+Requires: python3-jsonschema
Requires: python3-mako >= 1.1.0
Requires: python3-numpy >= 1.17.4
Requires: python3-pyaml >= 3.11
-Requires: python3-qt5
-# gr_filter dependencies
-Requires: python3-scipy
Requires: python3-pyqtgraph
# gr_network dependencies
Requires: python3-pyzmq
-# gr_soapy dependencies
-Requires: python3-SoapySDR
+Requires: python3-qt5
+# gr_filter dependencies
+Requires: python3-scipy
+Requires: typelib(Gtk) = 3.0
%if %{with docs}
BuildRequires: doxygen
BuildRequires: mathjax
1
0