openSUSE Commits
Threads by month
- ----- 2025 -----
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
August 2022
- 1 participants
- 2549 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 000release-packages for openSUSE:Factory checked in at 2022-08-31 18:42:53
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/000release-packages (Old)
and /work/SRC/openSUSE:Factory/.000release-packages.new.2083 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "000release-packages"
Wed Aug 31 18:42:53 2022 rev:1799 rq: version:unknown
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ MicroOS-release.spec ++++++
--- /var/tmp/diff_new_pack.JhdLmX/_old 2022-08-31 18:42:56.068324677 +0200
+++ /var/tmp/diff_new_pack.JhdLmX/_new 2022-08-31 18:42:56.076324694 +0200
@@ -17,7 +17,7 @@
Name: MicroOS-release
-Version: 20220830
+Version: 20220831
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) = 20220830-0
+Provides: product(MicroOS) = 20220831-0
Provides: product-label() = openSUSE%20MicroOS
-Provides: product-cpeid() = cpe%3A%2Fo%3Aopensuse%3Amicroos%3A20220830
+Provides: product-cpeid() = cpe%3A%2Fo%3Aopensuse%3Amicroos%3A20220831
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) = 20220830-0
+Provides: product_flavor(MicroOS) = 20220831-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) = 20220830-0
+Provides: product_flavor(MicroOS) = 20220831-0
Summary: openSUSE MicroOS%{?betaversion: %{betaversion}}
%description appliance
@@ -267,11 +267,11 @@
<product schemeversion="0">
<vendor>openSUSE</vendor>
<name>MicroOS</name>
- <version>20220830</version>
+ <version>20220831</version>
<release>0</release>
<endoflife></endoflife>
<arch>%{_target_cpu}</arch>
- <cpeid>cpe:/o:opensuse:microos:20220830</cpeid>
+ <cpeid>cpe:/o:opensuse:microos:20220831</cpeid>
<productline>MicroOS</productline>
<register>
<pool>
++++++ openSUSE-Addon-NonOss-release.spec ++++++
--- /var/tmp/diff_new_pack.JhdLmX/_old 2022-08-31 18:42:56.104324754 +0200
+++ /var/tmp/diff_new_pack.JhdLmX/_new 2022-08-31 18:42:56.108324762 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package openSUSE-Addon-NonOss-release (Version 20220830)
+# spec file for package openSUSE-Addon-NonOss-release (Version 20220831)
#
# Copyright (c) 2022 openSUSE.
#
@@ -16,16 +16,16 @@
Name: openSUSE-Addon-NonOss-release
%define product openSUSE-Addon-NonOss
Summary: openSUSE NonOSS Addon%{?betaversion: %{betaversion}}
-Version: 20220830
+Version: 20220831
Release: 0
License: BSD-3-Clause
Group: System/Fhs
Provides: %name-%version
Provides: product() = openSUSE-Addon-NonOss
-Provides: product(openSUSE-Addon-NonOss) = 20220830-0
+Provides: product(openSUSE-Addon-NonOss) = 20220831-0
Provides: product-label() = non%20oss%20addon
-Provides: product-cpeid() = cpe%3A%2Fo%3Aopensuse%3Aopensuse%2Daddon%2Dnonoss%3A20220830
+Provides: product-cpeid() = cpe%3A%2Fo%3Aopensuse%3Aopensuse%2Daddon%2Dnonoss%3A20220831
AutoReqProv: on
@@ -48,10 +48,10 @@
<product schemeversion="0">
<vendor>openSUSE</vendor>
<name>openSUSE-Addon-NonOss</name>
- <version>20220830</version>
+ <version>20220831</version>
<release>0</release>
<arch>%{_target_cpu}</arch>
- <cpeid>cpe:/o:opensuse:opensuse-addon-nonoss:20220830</cpeid>
+ <cpeid>cpe:/o:opensuse:opensuse-addon-nonoss:20220831</cpeid>
<register>
<pool>
</pool>
++++++ openSUSE-release.spec ++++++
--- /var/tmp/diff_new_pack.JhdLmX/_old 2022-08-31 18:42:56.132324814 +0200
+++ /var/tmp/diff_new_pack.JhdLmX/_new 2022-08-31 18:42:56.140324831 +0200
@@ -20,7 +20,7 @@
#define betaversion %{nil}
%define codename Tumbleweed
Name: openSUSE-release
-Version: 20220830
+Version: 20220831
Release: 0
# 0 is the product release, not the build release of this package
Summary: openSUSE Tumbleweed
@@ -178,7 +178,7 @@
%include %{SOURCE100}
Provides: %name-%version
Provides: product() = openSUSE
-Provides: product(openSUSE) = 20220830-0
+Provides: product(openSUSE) = 20220831-0
%ifarch x86_64
Provides: product-register-target() = openSUSE%2DTumbleweed%2Dx86_64
%endif
@@ -192,7 +192,7 @@
Provides: product-register-target() = openSUSE%2DTumbleweed%2Daarch64
%endif
Provides: product-label() = openSUSE
-Provides: product-cpeid() = cpe%3A%2Fo%3Aopensuse%3Aopensuse%3A20220830
+Provides: product-cpeid() = cpe%3A%2Fo%3Aopensuse%3Aopensuse%3A20220831
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)
@@ -206,7 +206,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(ftp)
-Provides: product_flavor(openSUSE) = 20220830-0
+Provides: product_flavor(openSUSE) = 20220831-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description ftp
@@ -221,7 +221,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(mini)
-Provides: product_flavor(openSUSE) = 20220830-0
+Provides: product_flavor(openSUSE) = 20220831-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description mini
@@ -236,7 +236,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(dvd)
-Provides: product_flavor(openSUSE) = 20220830-0
+Provides: product_flavor(openSUSE) = 20220831-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description dvd
@@ -251,7 +251,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(livecd-kde)
-Provides: product_flavor(openSUSE) = 20220830-0
+Provides: product_flavor(openSUSE) = 20220831-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description livecd-kde
@@ -266,7 +266,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(livecd-x11)
-Provides: product_flavor(openSUSE) = 20220830-0
+Provides: product_flavor(openSUSE) = 20220831-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description livecd-x11
@@ -281,7 +281,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(livecd-gnome)
-Provides: product_flavor(openSUSE) = 20220830-0
+Provides: product_flavor(openSUSE) = 20220831-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description livecd-gnome
@@ -296,7 +296,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(livecd-xfce)
-Provides: product_flavor(openSUSE) = 20220830-0
+Provides: product_flavor(openSUSE) = 20220831-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description livecd-xfce
@@ -311,7 +311,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(usb-kde)
-Provides: product_flavor(openSUSE) = 20220830-0
+Provides: product_flavor(openSUSE) = 20220831-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description usb-kde
@@ -326,7 +326,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(usb-gnome)
-Provides: product_flavor(openSUSE) = 20220830-0
+Provides: product_flavor(openSUSE) = 20220831-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description usb-gnome
@@ -341,7 +341,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(usb-x11)
-Provides: product_flavor(openSUSE) = 20220830-0
+Provides: product_flavor(openSUSE) = 20220831-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description usb-x11
@@ -356,7 +356,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(appliance)
-Provides: product_flavor(openSUSE) = 20220830-0
+Provides: product_flavor(openSUSE) = 20220831-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description appliance
@@ -371,7 +371,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(appliance-docker)
-Provides: product_flavor(openSUSE) = 20220830-0
+Provides: product_flavor(openSUSE) = 20220831-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description appliance-docker
@@ -386,7 +386,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(appliance-kvm)
-Provides: product_flavor(openSUSE) = 20220830-0
+Provides: product_flavor(openSUSE) = 20220831-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description appliance-kvm
@@ -401,7 +401,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(appliance-vmware)
-Provides: product_flavor(openSUSE) = 20220830-0
+Provides: product_flavor(openSUSE) = 20220831-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description appliance-vmware
@@ -416,7 +416,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(appliance-openstack)
-Provides: product_flavor(openSUSE) = 20220830-0
+Provides: product_flavor(openSUSE) = 20220831-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description appliance-openstack
@@ -431,7 +431,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(appliance-hyperv)
-Provides: product_flavor(openSUSE) = 20220830-0
+Provides: product_flavor(openSUSE) = 20220831-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description appliance-hyperv
@@ -446,7 +446,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(appliance-vagrant)
-Provides: product_flavor(openSUSE) = 20220830-0
+Provides: product_flavor(openSUSE) = 20220831-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description appliance-vagrant
@@ -461,7 +461,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(appliance-wsl)
-Provides: product_flavor(openSUSE) = 20220830-0
+Provides: product_flavor(openSUSE) = 20220831-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description appliance-wsl
@@ -476,7 +476,7 @@
Group: System/Fhs
Provides: product_flavor()
Provides: flavor(appliance-custom)
-Provides: product_flavor(openSUSE) = 20220830-0
+Provides: product_flavor(openSUSE) = 20220831-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description appliance-custom
@@ -557,10 +557,10 @@
<product schemeversion="0">
<vendor>openSUSE</vendor>
<name>openSUSE</name>
- <version>20220830</version>
+ <version>20220831</version>
<release>0</release>
<arch>%{_target_cpu}</arch>
- <cpeid>cpe:/o:opensuse:opensuse:20220830</cpeid>
+ <cpeid>cpe:/o:opensuse:opensuse:20220831</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 doxywizard for openSUSE:Factory checked in at 2022-08-31 18:09:32
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/doxywizard (Old)
and /work/SRC/openSUSE:Factory/.doxywizard.new.2083 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "doxywizard"
Wed Aug 31 18:09:32 2022 rev:26 rq: version:unknown
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ _link ++++++
--- /var/tmp/diff_new_pack.BSLIDr/_old 2022-08-31 18:09:33.899467044 +0200
+++ /var/tmp/diff_new_pack.BSLIDr/_new 2022-08-31 18:09:33.903467054 +0200
@@ -1,2 +1,3 @@
-<link package="doxygen" cicount="copy" />
+<link package='doxygen' cicount='copy' />
+(No newline at EOF)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-PyPrind for openSUSE:Factory checked in at 2022-08-31 18:09:16
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-PyPrind (Old)
and /work/SRC/openSUSE:Factory/.python-PyPrind.new.2083 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-PyPrind"
Wed Aug 31 18:09:16 2022 rev:4 rq:1000419 version:2.11.3
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-PyPrind/python-PyPrind.changes 2019-10-16 09:14:19.959614883 +0200
+++ /work/SRC/openSUSE:Factory/.python-PyPrind.new.2083/python-PyPrind.changes 2022-08-31 18:09:21.639434608 +0200
@@ -1,0 +2,11 @@
+Wed Aug 31 09:55:14 UTC 2022 - Matej Cepl <mcepl(a)suse.com>
+
+- Remove unnecessary tarball PyPrind-2.11.2.tar.gz
+
+-------------------------------------------------------------------
+Mon Aug 29 00:47:05 UTC 2022 - Yogalakshmi Arunachalam <yarunachalam(a)suse.com>
+
+- Update to 2.11.3:
+ * Fixes and issue where newlines appeared everywhere on certain machines
+
+-------------------------------------------------------------------
Old:
----
PyPrind-2.11.2.tar.gz
New:
----
PyPrind-2.11.3.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-PyPrind.spec ++++++
--- /var/tmp/diff_new_pack.6stJUO/_old 2022-08-31 18:09:22.079435773 +0200
+++ /var/tmp/diff_new_pack.6stJUO/_new 2022-08-31 18:09:22.079435773 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-PyPrind
#
-# 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
@@ -18,7 +18,7 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name: python-PyPrind
-Version: 2.11.2
+Version: 2.11.3
Release: 0
Summary: Python progress bar and percent indicator utility
License: BSD-3-Clause
++++++ PyPrind-2.11.2.tar.gz -> PyPrind-2.11.3.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/PyPrind-2.11.2/CHANGELOG.md new/PyPrind-2.11.3/CHANGELOG.md
--- old/PyPrind-2.11.2/CHANGELOG.md 2018-01-31 21:12:08.000000000 +0100
+++ new/PyPrind-2.11.3/CHANGELOG.md 2021-04-18 20:09:19.000000000 +0200
@@ -1,6 +1,11 @@
+Version 2.11.3
+================
+
+- Fixes and issue where newlines appeared everywhere on certain machines.
Version 2.11.2
================
+
- Fixes issue where new lines are printed upon iterating over a completed progress bar object.
Version 2.11.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/PyPrind-2.11.2/PKG-INFO new/PyPrind-2.11.3/PKG-INFO
--- old/PyPrind-2.11.2/PKG-INFO 2018-01-31 21:15:29.000000000 +0100
+++ new/PyPrind-2.11.3/PKG-INFO 2021-04-18 20:09:40.218625300 +0200
@@ -1,12 +1,11 @@
Metadata-Version: 1.1
Name: PyPrind
-Version: 2.11.2
+Version: 2.11.3
Summary: Python Progress Bar and Percent Indicator Utility
Home-page: https://github.com/rasbt/pyprind
Author: Sebastian Raschka
Author-email: mail(a)sebastianraschka.com
License: BSD 3-Clause
-Description-Content-Type: UNKNOWN
Description:
The PyPrind (Python Progress Indicator) module provides a progress
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/PyPrind-2.11.2/PyPrind.egg-info/PKG-INFO new/PyPrind-2.11.3/PyPrind.egg-info/PKG-INFO
--- old/PyPrind-2.11.2/PyPrind.egg-info/PKG-INFO 2018-01-31 21:15:29.000000000 +0100
+++ new/PyPrind-2.11.3/PyPrind.egg-info/PKG-INFO 2021-04-18 20:09:40.000000000 +0200
@@ -1,12 +1,11 @@
Metadata-Version: 1.1
Name: PyPrind
-Version: 2.11.2
+Version: 2.11.3
Summary: Python Progress Bar and Percent Indicator Utility
Home-page: https://github.com/rasbt/pyprind
Author: Sebastian Raschka
Author-email: mail(a)sebastianraschka.com
License: BSD 3-Clause
-Description-Content-Type: UNKNOWN
Description:
The PyPrind (Python Progress Indicator) module provides a progress
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/PyPrind-2.11.2/README.md new/PyPrind-2.11.3/README.md
--- old/PyPrind-2.11.2/README.md 2017-03-01 07:20:03.000000000 +0100
+++ new/PyPrind-2.11.3/README.md 2021-04-18 20:09:19.000000000 +0200
@@ -1,9 +1,7 @@
[](https://tra…
-[](https://landscape.io/github/rasbt/pyprind/master)
[](https://coveralls.io/github/rasbt/pyprind?branch=master)

-
-[](http://badge.fury.io/py/pyprind)
+
[](https://github.com/rasbt/pyprind/blob/master/LICENSE.txt)
@@ -315,14 +313,3 @@
-
-# Contact
-
-[[back to top](#sections)]
-
-If you have any questions or comments about `PyPrind`, please feel free to contact me via
-eMail: [mail@sebastianraschka.com](mailto:mail@sebastianraschka.com)
-or Twitter: [@rasbt](https://twitter.com/rasbt)
-
-
-The `pyprind` module is available on GitHub at [https://github.com/rasbt/pyprind](https://github.com/rasbt/pyprind).
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/PyPrind-2.11.2/pyprind/__init__.py new/PyPrind-2.11.3/pyprind/__init__.py
--- old/PyPrind-2.11.2/pyprind/__init__.py 2018-01-31 21:11:12.000000000 +0100
+++ new/PyPrind-2.11.3/pyprind/__init__.py 2021-04-18 20:09:19.000000000 +0200
@@ -1,5 +1,5 @@
"""
-Sebastian Raschka 2014-2017
+Sebastian Raschka 2014-2021
Python Progress Indicator Utility
Author: Sebastian Raschka <sebastianraschka.com>
@@ -17,4 +17,4 @@
from .generator_factory import prog_bar
-__version__ = '2.11.2'
+__version__ = '2.11.3'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/PyPrind-2.11.2/pyprind/progbar.py new/PyPrind-2.11.3/pyprind/progbar.py
--- old/PyPrind-2.11.2/pyprind/progbar.py 2018-01-31 21:06:39.000000000 +0100
+++ new/PyPrind-2.11.3/pyprind/progbar.py 2021-04-18 20:09:19.000000000 +0200
@@ -72,7 +72,7 @@
def _cache_progress_bar(self, progress):
remaining = self.bar_width - progress
- self._cached_output += '0% [{}{}] 100%'.format(self.bar_char * int(progress),
+ self._cached_output += '\r0% [{}{}] 100%'.format(self.bar_char * int(progress),
' ' * int(remaining))
def _print(self, force_flush=False):
@@ -91,7 +91,7 @@
self._cache_eta()
if self.item_id:
self._cache_item_id()
- self._stream_out('\r%s' % self._cached_output)
+ self._stream_out('%s' % self._cached_output)
self._stream_flush()
self._cached_output = ''
self.last_progress = progress
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package iosevka-fonts for openSUSE:Factory checked in at 2022-08-31 18:09:01
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/iosevka-fonts (Old)
and /work/SRC/openSUSE:Factory/.iosevka-fonts.new.2083 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "iosevka-fonts"
Wed Aug 31 18:09:01 2022 rev:43 rq:1000404 version:16.0.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/iosevka-fonts/iosevka-fonts.changes 2022-08-13 22:36:42.446650894 +0200
+++ /work/SRC/openSUSE:Factory/.iosevka-fonts.new.2083/iosevka-fonts.changes 2022-08-31 18:09:05.623392236 +0200
@@ -1,0 +2,29 @@
+Wed Aug 31 07:35:23 UTC 2022 - Anton Shvetz <shvetz.anton(a)gmail.com>
+
+- Update to v16.0.2
+ * Changes of version 16.0.0
+ = [Breaking] Change the mechanism of variants of not-equal
+ ligation (#1400):
+ ~ The "dotted" ligation groups (exeqeq-dotted, eqexeq-dotted,
+ eqexeq-dl-dotted, exeq-dotted) are removed.
+ ~ A character variant, "lig-neq" (feature tag VXAF), is added
+ to control the shape instead.
+ = Ensure that the middle point between Typo Ascender and
+ Descender lies on the middle of symbols/operators (#1398).
+ * Changes of version 16.0.1
+ = Fix cv99 application on ASCII single quotes and graves
+ (#1404).
+ = Fix cv44 application on certain t-derived letters (U+01AB,
+ U+0236, U+0288, U+1DB5, and U+20A7) (#1405).
+ = Fix shape of BLANK SYMBOL (U+2422, #1406).
+ * Changes of version 16.0.2
+ = Fix mapping of MODIFIER LETTER VERTICAL LINE (U+02C8) and
+ MODIFIER LETTER LOW VERTICAL LINE (U+02CC) (#1407).
+ = Fix shape of LATIN SMALL LETTER T WITH CURL (U+0236) (#1408).
+ = Fix cv99 application on ELEMENT OF WITH DOT ABOVE (U+22F5)
+ (#1409).
+ = Fix cv33 application on Hwair (U+0195) (#1410).
+ = Fix letterform of Cyrillic Small Letter Ghe With Upturn under
+ Italic.
+
+-------------------------------------------------------------------
Old:
----
super-ttc-iosevka-15.6.3.zip
super-ttc-iosevka-aile-15.6.3.zip
super-ttc-iosevka-curly-15.6.3.zip
super-ttc-iosevka-curly-slab-15.6.3.zip
super-ttc-iosevka-etoile-15.6.3.zip
super-ttc-iosevka-slab-15.6.3.zip
super-ttc-iosevka-ss01-15.6.3.zip
super-ttc-iosevka-ss02-15.6.3.zip
super-ttc-iosevka-ss03-15.6.3.zip
super-ttc-iosevka-ss04-15.6.3.zip
super-ttc-iosevka-ss05-15.6.3.zip
super-ttc-iosevka-ss06-15.6.3.zip
super-ttc-iosevka-ss07-15.6.3.zip
super-ttc-iosevka-ss08-15.6.3.zip
super-ttc-iosevka-ss09-15.6.3.zip
super-ttc-iosevka-ss10-15.6.3.zip
super-ttc-iosevka-ss11-15.6.3.zip
super-ttc-iosevka-ss12-15.6.3.zip
super-ttc-iosevka-ss13-15.6.3.zip
super-ttc-iosevka-ss14-15.6.3.zip
super-ttc-iosevka-ss15-15.6.3.zip
super-ttc-iosevka-ss16-15.6.3.zip
super-ttc-iosevka-ss17-15.6.3.zip
super-ttc-iosevka-ss18-15.6.3.zip
New:
----
super-ttc-iosevka-16.0.2.zip
super-ttc-iosevka-aile-16.0.2.zip
super-ttc-iosevka-curly-16.0.2.zip
super-ttc-iosevka-curly-slab-16.0.2.zip
super-ttc-iosevka-etoile-16.0.2.zip
super-ttc-iosevka-slab-16.0.2.zip
super-ttc-iosevka-ss01-16.0.2.zip
super-ttc-iosevka-ss02-16.0.2.zip
super-ttc-iosevka-ss03-16.0.2.zip
super-ttc-iosevka-ss04-16.0.2.zip
super-ttc-iosevka-ss05-16.0.2.zip
super-ttc-iosevka-ss06-16.0.2.zip
super-ttc-iosevka-ss07-16.0.2.zip
super-ttc-iosevka-ss08-16.0.2.zip
super-ttc-iosevka-ss09-16.0.2.zip
super-ttc-iosevka-ss10-16.0.2.zip
super-ttc-iosevka-ss11-16.0.2.zip
super-ttc-iosevka-ss12-16.0.2.zip
super-ttc-iosevka-ss13-16.0.2.zip
super-ttc-iosevka-ss14-16.0.2.zip
super-ttc-iosevka-ss15-16.0.2.zip
super-ttc-iosevka-ss16-16.0.2.zip
super-ttc-iosevka-ss17-16.0.2.zip
super-ttc-iosevka-ss18-16.0.2.zip
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ iosevka-fonts.spec ++++++
--- /var/tmp/diff_new_pack.K6kK2X/_old 2022-08-31 18:09:21.111433212 +0200
+++ /var/tmp/diff_new_pack.K6kK2X/_new 2022-08-31 18:09:21.119433233 +0200
@@ -20,7 +20,7 @@
typeface family, designed for writing code, using in terminals, and\
preparing technical documents.
Name: iosevka-fonts
-Version: 15.6.3
+Version: 16.0.2
Release: 0
Summary: Slender typeface for source code
License: OFL-1.1
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package perl-Time-Moment for openSUSE:Factory checked in at 2022-08-31 18:09:00
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Time-Moment (Old)
and /work/SRC/openSUSE:Factory/.perl-Time-Moment.new.2083 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Time-Moment"
Wed Aug 31 18:09:00 2022 rev:2 rq:1000392 version:0.44
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Time-Moment/perl-Time-Moment.changes 2018-12-12 17:28:47.434853626 +0100
+++ /work/SRC/openSUSE:Factory/.perl-Time-Moment.new.2083/perl-Time-Moment.changes 2022-08-31 18:09:04.579389475 +0200
@@ -1,0 +2,5 @@
+Wed Aug 31 03:36:13 UTC 2022 - Bernhard Wiedemann <bwiedemann(a)suse.com>
+
+- Add fix2038.patch to fix a year 2038 problem
+
+-------------------------------------------------------------------
New:
----
fix2038.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-Time-Moment.spec ++++++
--- /var/tmp/diff_new_pack.z5GtpM/_old 2022-08-31 18:09:05.051390723 +0200
+++ /var/tmp/diff_new_pack.z5GtpM/_new 2022-08-31 18:09:05.055390734 +0200
@@ -26,6 +26,7 @@
Url: http://search.cpan.org/dist/Time-Moment/
Source0: https://cpan.metacpan.org/authors/id/C/CH/CHANSEN/%{cpan_name}-%{version}.t…
Source1: cpanspec.yml
+Patch0: fix2038.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: perl
BuildRequires: perl-macros
@@ -49,6 +50,7 @@
%prep
%setup -q -n %{cpan_name}-%{version}
+%patch0 -p1
find . -type f ! -name \*.pl -print0 | xargs -0 chmod 644
%build
++++++ fix2038.patch ++++++
https://github.com/chansen/p5-time-moment/pull/48
commit c702dce560ed255e98384861e29297134fb60c65
Author: Bernhard M. Wiedemann <bwiedemann(a)suse.de>
Date: Wed Aug 31 05:29:27 2022 +0200
Fix year 2038 bug
Calculate seconds with 64-bit integers
Fixes #47
This PR was done while working on reproducible builds for openSUSE.
diff --git a/Moment.xs b/Moment.xs
index f8f5593..5ca561e 100644
--- a/Moment.xs
+++ b/Moment.xs
@@ -356,7 +356,7 @@ THX_moment_now(pTHX_ bool utc) {
if (tm == NULL)
croak("localtime() failed: %s", Strerror(errno));
- sec = ((1461 * (tm->tm_year - 1) >> 2) + tm->tm_yday - 25202) * 86400
+ sec = ((1461 * (tm->tm_year - 1) >> 2) + tm->tm_yday - 25202) * 86400LL
+ tm->tm_hour * 3600 + tm->tm_min * 60 + tm->tm_sec;
off = (sec - tv.tv_sec) / 60;
}
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package sshguard for openSUSE:Factory checked in at 2022-08-31 18:08:58
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/sshguard (Old)
and /work/SRC/openSUSE:Factory/.sshguard.new.2083 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "sshguard"
Wed Aug 31 18:08:58 2022 rev:17 rq:1000390 version:2.4.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/sshguard/sshguard.changes 2022-01-24 23:11:13.438253584 +0100
+++ /work/SRC/openSUSE:Factory/.sshguard.new.2083/sshguard.changes 2022-08-31 18:09:03.815387453 +0200
@@ -1,0 +2,6 @@
+Tue Aug 30 15:19:17 UTC 2022 - Marcus Meissner <meissner(a)suse.com>
+
+- sshguard-overflow.patch: fixed 1 byte 0x00 overwrite in a memset
+ (bsc#1202944)
+
+-------------------------------------------------------------------
New:
----
sshguard-overflow.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ sshguard.spec ++++++
--- /var/tmp/diff_new_pack.1vrhhT/_old 2022-08-31 18:09:04.351388871 +0200
+++ /var/tmp/diff_new_pack.1vrhhT/_new 2022-08-31 18:09:04.355388882 +0200
@@ -42,6 +42,7 @@
# PATCH-FIX-UPSTREAM sshguard-gcc5.patch
Patch0: sshguard-gcc5.patch
Patch1: harden_sshguard.service.patch
+Patch2: sshguard-overflow.patch
Requires: openssh
Requires(pre): %fillup_prereq
@@ -55,6 +56,7 @@
%patch0 -p1
find . -type f -iname "*.swp" -print -exec rm {} \;
%patch1 -p1
+%patch2 -p1
%build
%configure \
++++++ sshguard-overflow.patch ++++++
Index: sshguard-2.4.2/src/blocker/sshguard_whitelist.c
===================================================================
--- sshguard-2.4.2.orig/src/blocker/sshguard_whitelist.c
+++ sshguard-2.4.2/src/blocker/sshguard_whitelist.c
@@ -276,7 +276,7 @@ int whitelist_add_block6(const char *res
bitlen = masklen % 8;
bitmask = 0xFF << (8 - bitlen);
ab.address.ip6.mask.s6_addr[bytelen] = bitmask;
- memset(& ab.address.ip6.mask.s6_addr[bytelen+1], 0x00, sizeof(ab.address.ip6.mask.s6_addr) - bytelen);
+ memset(& ab.address.ip6.mask.s6_addr[bytelen+1], 0x00, sizeof(ab.address.ip6.mask.s6_addr) - bytelen - 1);
if (! list_contains(& whitelist, &ab)) {
list_append(& whitelist, &ab);
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package xonsh for openSUSE:Factory checked in at 2022-08-31 18:08:56
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/xonsh (Old)
and /work/SRC/openSUSE:Factory/.xonsh.new.2083 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xonsh"
Wed Aug 31 18:08:56 2022 rev:35 rq:1000346 version:0.13.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/xonsh/xonsh.changes 2022-05-31 07:39:54.945749120 +0200
+++ /work/SRC/openSUSE:Factory/.xonsh.new.2083/xonsh.changes 2022-08-31 18:09:02.935385125 +0200
@@ -1,0 +2,67 @@
+Tue Aug 23 18:56:19 UTC 2022 - Sebastian Wagner <sebix+novell.com(a)sebix.at>
+
+- update to version 0.13.1:
+ - Added:
+ - The ujson (faster version of json) added to xonsh[full] package.
+ - Changed:
+ - Bumped Python version in `xonsh.AppImage` to 3.10
+ - The terminal's title is updated with the current command's name even if the command is a captured command or a callable alias
+ - Fixed:
+ - Warn and continue if a user without ``pygments`` tries to load an unknown style
+ - Fixed a bash completion bug when prefixing a file path with '<' or '>' (for redirecting stdin/stdout/stderr)
+ - Fixed a bash completion bug when completing a git branch name when deleting a remote branch (e.g. `git push origin :dev-branch`)
+ - A callable alias containing subprocess commands no longer freezes when piped to another command
+ - ``less`` no longer stops when a callable alias containing subprocess commands is piped into it
+ - ``gitstatus`` Prompt-field would be empty on paths without git setup.
+ - When using the sway window manager, ``swaymsg -t get_inputs`` no longer fails with the error "Unable to receive IPC response"
+ - The ``current_job`` variable now works as expected when used in ``$TITLE``
+ - Security:
+ - ``xpip`` will never add ``sudo`` under any circumstances and will instead append ``--user`` as needed
+- update to version 0.13.0:
+ - Removed:
+ - The ``xonsh`` code-base is no longer amalgamated, so tracebacks should be
+ human-readable without intervention. This may have (minor) impacts on startup
+ speed.
+ - Fixed:
+ - Fix xontrib loading for `free_cwd`
+ - Fixed `whole_word_jumping` xontrib failing on Linux, conditional import of ``ptk_win32`` ��� Windows only
+ - Fixed error caused by unintialized Xonsh session env when using Xonsh as a library just for its Pygments lexer plugin.
+- update to version 0.12.6:
+ - Fixed:
+ - String literal concatenation now works with f-strings and path literals
+ - A SyntaxError is raised when string literal concatenation is attempted with literals of different types (e.g. str and bytes)
+- update to version 0.12.5:
+ - Added:
+ - Support for f-glob strings (e.g. ``fg`{prefix}*```)
+ - Now xontribs support `loading and unloading <https://github.com/xonsh/xonsh/issues/4541>`_
+ with functions ``_load_xontrib_(xsh: XonshSession, **kwargs) -> dict``,
+ ``_unload_xontrib_(xsh: XonshSession, **kwargs) -> None`` defined in their module.
+ `Updated doc <https://xon.sh/tutorial_xontrib.html>`_
+ - Added a special '$LAST_RETURN_CODE' environment variable to access the return code of the last issued command. (Only set during interactive use).
+ - New prompt-customization fields: 'last_return_code_if_nonzero', 'last_return_code'.
+ - Documented the HISTCONTROL ignorespace option
+ - Changed:
+ - ![] now returns a HiddenCommandPipeline when run with a background command (e.g. `![sleep 10 &]`)
+ - Extended `whole_word_jumping` xontrib with matching bindings for
+ `delete` and `backspace`. The `XONSH_WHOLE_WORD_CTRL_BKSP` environment
+ variable can be set to `False` to avoid binding `control+backspace` in
+ incompatible terminals.
+ - The default prompt (on unix-systems) now includes a red [<errorcode>] field in case a command failed.
+ - New docs theme ``furo``
+ - completions from fish are now filter based on the current prefix.
+ - Removed:
+ - xontrib ``prompt_ret_code`` is now removed.
+ Now the default prompt already shows the last-return-code when the previous command fails.
+ Please use the new prompt fields ``last_return_code``, ``last_return_code_if_nonzero`` from
+ the `PR <https://github.com/xonsh/xonsh/pull/4798>`_
+ - Fixed:
+ - Using `fg` for commands started in the background (e.g. `![sleep 10 &]`) now works
+ - SIGHUP (instead of SIGKILL) is sent to unfinished jobs when exiting the shell. This allows the `nohup` command to work properly.
+ - `bg` now properly resumes jobs in the background
+ - ExecAlias now sets the returncode of a command correctly
+ - Empty/comment-only commands no longer get added to the history
+ - On prompt-toolkit, when there is a job like `sleep 500 &` running in the background, pressing Ctrl+D twice to force quit now works properly
+ - Environment Variables are now completed correctly when in quotes
+ - Silence spurious errors on exit due to out-of-order cleanup
+
+-------------------------------------------------------------------
Old:
----
xonsh-0.12.4.tar.gz
New:
----
xonsh-0.13.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ xonsh.spec ++++++
--- /var/tmp/diff_new_pack.kLhruq/_old 2022-08-31 18:09:03.551386755 +0200
+++ /var/tmp/diff_new_pack.kLhruq/_new 2022-08-31 18:09:03.555386765 +0200
@@ -1,7 +1,7 @@
#
# spec file for package xonsh
#
-# Copyright (c) 2020 SUSE LLC
+# 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
@@ -18,24 +18,17 @@
%define pythons python3
Name: xonsh
-Version: 0.12.4
+Version: 0.13.1
Release: 0
Summary: A general purpose, Python-powered shell
-License: BSD-3-Clause AND BSD-2-Clause
+License: BSD-2-Clause AND BSD-3-Clause
Group: Development/Languages/Python
URL: https://xon.sh/
Source0: https://github.com/xonsh/xonsh/archive/%{version}.tar.gz#/%{name}-%{version…
-# SECTION docs
-BuildRequires: python3-Sphinx
-BuildRequires: python3-cloud-sptheme
-BuildRequires: python3-numpydoc
-BuildRequires: python3-myst-parser
-BuildRequires: python3-runthis-sphinxext
-BuildRequires: python3-markdown-it-py
-# /SECTION
BuildRequires: fdupes
BuildRequires: python3-base >= 3.5
BuildRequires: python3-setuptools
+BuildRequires: python3-wheel
Recommends: python3-Pygments >= 2.2
Recommends: python3-distro
Recommends: python3-ply
@@ -59,17 +52,12 @@
%prep
%setup -q -n xonsh-%{version}
-sed -i '1s/^#!.*//' xonsh/xoreutils/_which.py xonsh/webconfig/main.py
+sed -i '1s/^#!.*//' xonsh/xoreutils/_which.py xonsh/webconfig/main.py xonsh/xoreutils/uname.py
+rm docs/api/.gitignore
%build
%python_build
-pushd docs
-LANG=C.UTF-8 PYTHONPATH=.. setarch -R make html
-# work around a rpmlint error file-contains-buildroot
-find _build -name '*.doctree' -exec sed -i 's#/home/abuild/rpmbuild/BUILD#_WORKDIR_#g' {} \+
-rm _build/html/.buildinfo
-rm -r _build/doctrees
-popd
+# docs require unavailable theme 'furo'
%install
%python_install
@@ -78,17 +66,19 @@
%fdupes -s docs/_build/html/
%files
-%{python3_sitelib}/*
+%{python3_sitelib}/xonsh/
+%{python3_sitelib}/xontrib/
+%{python3_sitelib}/xompletions/
+%{python3_sitelib}/xonsh-%{version}*-info
%{_bindir}/xonsh
%{_bindir}/xonsh-cat
-%{_bindir}/xon.sh
%{_bindir}/xonsh-uptime
%{_bindir}/xonsh-uname
%doc README.rst logo.txt CHANGELOG.rst
%doc xontrib
%license license
-%files -n %{name}-doc
-%doc docs/_build/html
+%files doc
+%doc docs
%changelog
++++++ xonsh-0.12.4.tar.gz -> xonsh-0.13.1.tar.gz ++++++
/work/SRC/openSUSE:Factory/xonsh/xonsh-0.12.4.tar.gz /work/SRC/openSUSE:Factory/.xonsh.new.2083/xonsh-0.13.1.tar.gz differ: char 14, line 1
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-azure-mgmt-rdbms for openSUSE:Factory checked in at 2022-08-31 18:08:55
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-azure-mgmt-rdbms (Old)
and /work/SRC/openSUSE:Factory/.python-azure-mgmt-rdbms.new.2083 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-azure-mgmt-rdbms"
Wed Aug 31 18:08:55 2022 rev:22 rq:1000311 version:10.2.0b3
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-azure-mgmt-rdbms/python-azure-mgmt-rdbms.changes 2022-08-05 19:51:41.093561620 +0200
+++ /work/SRC/openSUSE:Factory/.python-azure-mgmt-rdbms.new.2083/python-azure-mgmt-rdbms.changes 2022-08-31 18:09:01.715381898 +0200
@@ -1,0 +2,8 @@
+Tue Aug 9 08:46:34 UTC 2022 - John Paul Adrian Glaubitz <adrian.glaubitz(a)suse.com>
+
+- New upstream release
+ + Version 10.2.0b3
+ + For detailed information about changes see the
+ CHANGELOG.md file provided with this package
+
+-------------------------------------------------------------------
Old:
----
azure-mgmt-rdbms-10.2.0b2.zip
New:
----
azure-mgmt-rdbms-10.2.0b3.zip
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-azure-mgmt-rdbms.spec ++++++
--- /var/tmp/diff_new_pack.exYYPY/_old 2022-08-31 18:09:02.499383971 +0200
+++ /var/tmp/diff_new_pack.exYYPY/_new 2022-08-31 18:09:02.503383982 +0200
@@ -21,7 +21,7 @@
%define skip_python2 1
%endif
Name: python-azure-mgmt-rdbms
-Version: 10.2.0b2
+Version: 10.2.0b3
Release: 0
Summary: Microsoft Azure RDBMS Management Client Library
License: MIT
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package libfsext for openSUSE:Factory checked in at 2022-08-31 18:08:53
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libfsext (Old)
and /work/SRC/openSUSE:Factory/.libfsext.new.2083 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libfsext"
Wed Aug 31 18:08:53 2022 rev:8 rq:1000307 version:20220829
Changes:
--------
--- /work/SRC/openSUSE:Factory/libfsext/libfsext.changes 2022-08-30 14:49:58.160195340 +0200
+++ /work/SRC/openSUSE:Factory/.libfsext.new.2083/libfsext.changes 2022-08-31 18:09:00.463378585 +0200
@@ -1,0 +2,6 @@
+Tue Aug 30 14:59:26 UTC 2022 - Jan Engelhardt <jengelh(a)inai.de>
+
+- Update to release 20220829
+ * Unspecified updates to the API
+
+-------------------------------------------------------------------
Old:
----
libfsext-experimental-20220822.tar.gz
libfsext-experimental-20220822.tar.gz.asc
New:
----
libfsext-experimental-20220829.tar.gz
libfsext-experimental-20220829.tar.gz.asc
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libfsext.spec ++++++
--- /var/tmp/diff_new_pack.Lgxgtb/_old 2022-08-31 18:09:00.975379940 +0200
+++ /var/tmp/diff_new_pack.Lgxgtb/_new 2022-08-31 18:09:00.979379950 +0200
@@ -18,7 +18,7 @@
%define lname libfsext1
Name: libfsext
-Version: 20220822
+Version: 20220829
Release: 0
Summary: Library and tools to access the Extended File System
License: GFDL-1.3-or-later AND LGPL-3.0-or-later
++++++ libfsext-experimental-20220822.tar.gz -> libfsext-experimental-20220829.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfsext-20220822/common/config.h new/libfsext-20220829/common/config.h
--- old/libfsext-20220822/common/config.h 2022-08-22 07:04:44.000000000 +0200
+++ new/libfsext-20220829/common/config.h 2022-08-30 16:12:51.000000000 +0200
@@ -593,7 +593,7 @@
#define PACKAGE_NAME "libfsext"
/* Define to the full name and version of this package. */
-#define PACKAGE_STRING "libfsext 20220822"
+#define PACKAGE_STRING "libfsext 20220829"
/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "libfsext"
@@ -602,7 +602,7 @@
#define PACKAGE_URL ""
/* Define to the version of this package. */
-#define PACKAGE_VERSION "20220822"
+#define PACKAGE_VERSION "20220829"
/* The size of `int', as computed by sizeof. */
#define SIZEOF_INT 4
@@ -635,7 +635,7 @@
/* #undef TM_IN_SYS_TIME */
/* Version number of package */
-#define VERSION "20220822"
+#define VERSION "20220829"
/* Number of bits in a file offset, on hosts where this is settable. */
/* #undef _FILE_OFFSET_BITS */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfsext-20220822/configure new/libfsext-20220829/configure
--- old/libfsext-20220822/configure 2022-08-22 07:04:27.000000000 +0200
+++ new/libfsext-20220829/configure 2022-08-30 16:12:34.000000000 +0200
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.71 for libfsext 20220822.
+# Generated by GNU Autoconf 2.71 for libfsext 20220829.
#
# Report bugs to <joachim.metz(a)gmail.com>.
#
@@ -621,8 +621,8 @@
# Identity of this package.
PACKAGE_NAME='libfsext'
PACKAGE_TARNAME='libfsext'
-PACKAGE_VERSION='20220822'
-PACKAGE_STRING='libfsext 20220822'
+PACKAGE_VERSION='20220829'
+PACKAGE_STRING='libfsext 20220829'
PACKAGE_BUGREPORT='joachim.metz(a)gmail.com'
PACKAGE_URL=''
@@ -1715,7 +1715,7 @@
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures libfsext 20220822 to adapt to many kinds of systems.
+\`configure' configures libfsext 20220829 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1786,7 +1786,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of libfsext 20220822:";;
+ short | recursive ) echo "Configuration of libfsext 20220829:";;
esac
cat <<\_ACEOF
@@ -2061,7 +2061,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-libfsext configure 20220822
+libfsext configure 20220829
generated by GNU Autoconf 2.71
Copyright (C) 2021 Free Software Foundation, Inc.
@@ -2782,7 +2782,7 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by libfsext $as_me 20220822, which was
+It was created by libfsext $as_me 20220829, which was
generated by GNU Autoconf 2.71. Invocation command line was
$ $0$ac_configure_args_raw
@@ -4272,7 +4272,7 @@
# Define the identity of the package.
PACKAGE='libfsext'
- VERSION='20220822'
+ VERSION='20220829'
printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
@@ -60283,7 +60283,7 @@
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by libfsext $as_me 20220822, which was
+This file was extended by libfsext $as_me 20220829, which was
generated by GNU Autoconf 2.71. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -60351,7 +60351,7 @@
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config='$ac_cs_config_escaped'
ac_cs_version="\\
-libfsext config.status 20220822
+libfsext config.status 20220829
configured by $0, generated by GNU Autoconf 2.71,
with options \\"\$ac_cs_config\\"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfsext-20220822/configure.ac new/libfsext-20220829/configure.ac
--- old/libfsext-20220822/configure.ac 2022-08-22 06:35:24.000000000 +0200
+++ new/libfsext-20220829/configure.ac 2022-08-29 07:00:03.000000000 +0200
@@ -2,7 +2,7 @@
AC_INIT(
[libfsext],
- [20220822],
+ [20220829],
[joachim.metz(a)gmail.com]
AC_CONFIG_SRCDIR(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfsext-20220822/dpkg/changelog new/libfsext-20220829/dpkg/changelog
--- old/libfsext-20220822/dpkg/changelog 2022-08-22 07:04:44.000000000 +0200
+++ new/libfsext-20220829/dpkg/changelog 2022-08-30 16:12:51.000000000 +0200
@@ -1,5 +1,5 @@
-libfsext (20220822-1) unstable; urgency=low
+libfsext (20220829-1) unstable; urgency=low
* Auto-generated
- -- Joachim Metz <joachim.metz(a)gmail.com> Mon, 22 Aug 2022 07:04:43 +0200
+ -- Joachim Metz <joachim.metz(a)gmail.com> Tue, 30 Aug 2022 16:12:49 +0200
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfsext-20220822/include/libfsext/definitions.h new/libfsext-20220829/include/libfsext/definitions.h
--- old/libfsext-20220822/include/libfsext/definitions.h 2022-08-22 07:04:44.000000000 +0200
+++ new/libfsext-20220829/include/libfsext/definitions.h 2022-08-30 16:12:50.000000000 +0200
@@ -24,11 +24,11 @@
#include <libfsext/types.h>
-#define LIBFSEXT_VERSION 20220822
+#define LIBFSEXT_VERSION 20220829
/* The version string
*/
-#define LIBFSEXT_VERSION_STRING "20220822"
+#define LIBFSEXT_VERSION_STRING "20220829"
/* The file access
* bit 1 set to 1 for read access
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfsext-20220822/include/libfsext.h new/libfsext-20220829/include/libfsext.h
--- old/libfsext-20220822/include/libfsext.h 2022-08-22 07:04:44.000000000 +0200
+++ new/libfsext-20220829/include/libfsext.h 2022-08-30 16:12:50.000000000 +0200
@@ -953,6 +953,27 @@
size64_t *size,
libfsext_error_t **error );
+/* Retrieves the number of extents
+ * Returns 1 if successful or -1 on error
+ */
+LIBFSEXT_EXTERN \
+int libfsext_extended_attribute_get_number_of_extents(
+ libfsext_extended_attribute_t *extended_attribute,
+ int *number_of_extents,
+ libfsext_error_t **error );
+
+/* Retrieves a specific extent
+ * Returns 1 if successful or -1 on error
+ */
+LIBFSEXT_EXTERN \
+int libfsext_extended_attribute_get_extent_by_index(
+ libfsext_extended_attribute_t *extended_attribute,
+ int extent_index,
+ off64_t *extent_offset,
+ size64_t *extent_size,
+ uint32_t *extent_flags,
+ libfsext_error_t **error );
+
#if defined( __cplusplus )
}
#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfsext-20220822/include/libfsext.h.in new/libfsext-20220829/include/libfsext.h.in
--- old/libfsext-20220822/include/libfsext.h.in 2022-08-22 06:35:33.000000000 +0200
+++ new/libfsext-20220829/include/libfsext.h.in 2022-08-28 21:53:16.000000000 +0200
@@ -953,6 +953,27 @@
size64_t *size,
libfsext_error_t **error );
+/* Retrieves the number of extents
+ * Returns 1 if successful or -1 on error
+ */
+LIBFSEXT_EXTERN \
+int libfsext_extended_attribute_get_number_of_extents(
+ libfsext_extended_attribute_t *extended_attribute,
+ int *number_of_extents,
+ libfsext_error_t **error );
+
+/* Retrieves a specific extent
+ * Returns 1 if successful or -1 on error
+ */
+LIBFSEXT_EXTERN \
+int libfsext_extended_attribute_get_extent_by_index(
+ libfsext_extended_attribute_t *extended_attribute,
+ int extent_index,
+ off64_t *extent_offset,
+ size64_t *extent_size,
+ uint32_t *extent_flags,
+ libfsext_error_t **error );
+
#if defined( __cplusplus )
}
#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfsext-20220822/libfsext/libfsext.rc new/libfsext-20220829/libfsext/libfsext.rc
--- old/libfsext-20220822/libfsext/libfsext.rc 2022-08-22 07:04:44.000000000 +0200
+++ new/libfsext-20220829/libfsext/libfsext.rc 2022-08-30 16:12:51.000000000 +0200
@@ -22,12 +22,12 @@
BLOCK "040904E4"
BEGIN
VALUE "FileDescription", "Library to support the Extended File System (ext) format\0"
- VALUE "FileVersion", "20220822" "\0"
+ VALUE "FileVersion", "20220829" "\0"
VALUE "InternalName", "libfsext.dll\0"
VALUE "LegalCopyright", "(C) 2010-2022, Joachim Metz <joachim.metz(a)gmail.com>\0"
VALUE "OriginalFilename", "libfsext.dll\0"
VALUE "ProductName", "libfsext\0"
- VALUE "ProductVersion", "20220822" "\0"
+ VALUE "ProductVersion", "20220829" "\0"
VALUE "Comments", "For more information visit https://github.com/libyal/libfsext/\0"
END
END
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfsext-20220822/libfsext/libfsext_attribute_values.c new/libfsext-20220829/libfsext/libfsext_attribute_values.c
--- old/libfsext-20220822/libfsext/libfsext_attribute_values.c 2022-08-22 06:35:33.000000000 +0200
+++ new/libfsext-20220829/libfsext/libfsext_attribute_values.c 2022-08-28 22:09:48.000000000 +0200
@@ -128,15 +128,15 @@
}
if( *attribute_values != NULL )
{
- if( ( *attribute_values )->name != NULL )
+ if( ( *attribute_values )->value_data != NULL )
{
memory_free(
- ( *attribute_values )->name );
+ ( *attribute_values )->value_data );
}
- if( ( *attribute_values )->value_data != NULL )
+ if( ( *attribute_values )->name != NULL )
{
memory_free(
- ( *attribute_values )->value_data );
+ ( *attribute_values )->name );
}
memory_free(
*attribute_values );
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfsext-20220822/libfsext/libfsext_definitions.h new/libfsext-20220829/libfsext/libfsext_definitions.h
--- old/libfsext-20220822/libfsext/libfsext_definitions.h 2022-08-22 07:04:44.000000000 +0200
+++ new/libfsext-20220829/libfsext/libfsext_definitions.h 2022-08-30 16:12:50.000000000 +0200
@@ -37,11 +37,11 @@
* for local use of libfsext
*/
#else
-#define LIBFSEXT_VERSION 20220822
+#define LIBFSEXT_VERSION 20220829
/* The version string
*/
-#define LIBFSEXT_VERSION_STRING "20220822"
+#define LIBFSEXT_VERSION_STRING "20220829"
/* The file access
* bit 1 set to 1 for read access
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfsext-20220822/libfsext/libfsext_extended_attribute.c new/libfsext-20220829/libfsext/libfsext_extended_attribute.c
--- old/libfsext-20220822/libfsext/libfsext_extended_attribute.c 2022-08-22 06:35:33.000000000 +0200
+++ new/libfsext-20220829/libfsext/libfsext_extended_attribute.c 2022-08-29 06:59:34.000000000 +0200
@@ -26,6 +26,7 @@
#include "libfsext_attribute_values.h"
#include "libfsext_block_stream.h"
#include "libfsext_extended_attribute.h"
+#include "libfsext_extent.h"
#include "libfsext_inode.h"
#include "libfsext_inode_table.h"
#include "libfsext_io_handle.h"
@@ -179,6 +180,23 @@
result = -1;
}
#endif
+ if( internal_extended_attribute->data_extents_array != NULL )
+ {
+ if( libcdata_array_free(
+ &( internal_extended_attribute->data_extents_array ),
+ (int (*)(intptr_t **, libcerror_error_t **)) &libfsext_extent_free,
+ error ) != 1 )
+ {
+ libcerror_error_set(
+ error,
+ LIBCERROR_ERROR_DOMAIN_RUNTIME,
+ LIBCERROR_RUNTIME_ERROR_FINALIZE_FAILED,
+ "%s: unable to free data extents array.",
+ function );
+
+ result = -1;
+ }
+ }
if( internal_extended_attribute->data_stream != NULL )
{
if( libfdata_stream_free(
@@ -558,7 +576,7 @@
function,
internal_extended_attribute->attribute_values->value_data_inode_number );
- return( -1 );
+ goto on_error;
}
if( inode == NULL )
{
@@ -570,7 +588,23 @@
function,
internal_extended_attribute->attribute_values->value_data_inode_number );
- return( -1 );
+ goto on_error;
+ }
+ if( libcdata_array_clone(
+ &( internal_extended_attribute->data_extents_array ),
+ inode->data_extents_array,
+ (int (*)(intptr_t **, libcerror_error_t **)) &libfsext_extent_free,
+ (int (*)(intptr_t **, intptr_t *, libcerror_error_t **)) &libfsext_extent_clone,
+ error ) != 1 )
+ {
+ libcerror_error_set(
+ error,
+ LIBCERROR_ERROR_DOMAIN_RUNTIME,
+ LIBCERROR_RUNTIME_ERROR_INITIALIZE_FAILED,
+ "%s: unable to create data extents array.",
+ function );
+
+ goto on_error;
}
result = libfsext_block_stream_initialize(
&( internal_extended_attribute->data_stream ),
@@ -581,6 +615,20 @@
}
else
{
+ if( libcdata_array_initialize(
+ &( internal_extended_attribute->data_extents_array ),
+ 0,
+ error ) != 1 )
+ {
+ libcerror_error_set(
+ error,
+ LIBCERROR_ERROR_DOMAIN_RUNTIME,
+ LIBCERROR_RUNTIME_ERROR_INITIALIZE_FAILED,
+ "%s: unable to create data extents array.",
+ function );
+
+ goto on_error;
+ }
result = libfsext_block_stream_initialize_from_data(
&( internal_extended_attribute->data_stream ),
internal_extended_attribute->attribute_values->value_data,
@@ -596,9 +644,19 @@
"%s: unable to create block stream.",
function );
- return( -1 );
+ goto on_error;
}
return( 1 );
+
+on_error:
+ if( internal_extended_attribute->data_extents_array != NULL )
+ {
+ libcdata_array_free(
+ &( internal_extended_attribute->data_extents_array ),
+ (int (*)(intptr_t **, libcerror_error_t **)) &libfsext_extent_free,
+ NULL );
+ }
+ return( -1 );
}
/* Reads data at the current offset into a buffer
@@ -1063,3 +1121,216 @@
return( 1 );
}
+/* Retrieves the number of extents
+ * Returns 1 if successful or -1 on error
+ */
+int libfsext_extended_attribute_get_number_of_extents(
+ libfsext_extended_attribute_t *extended_attribute,
+ int *number_of_extents,
+ libcerror_error_t **error )
+{
+ libfsext_internal_extended_attribute_t *internal_extended_attribute = NULL;
+ static char *function = "libfsext_extended_attribute_get_number_of_extents";
+ int result = 1;
+
+ if( extended_attribute == NULL )
+ {
+ libcerror_error_set(
+ error,
+ LIBCERROR_ERROR_DOMAIN_ARGUMENTS,
+ LIBCERROR_ARGUMENT_ERROR_INVALID_VALUE,
+ "%s: invalid extended attribute.",
+ function );
+
+ return( -1 );
+ }
+ internal_extended_attribute = (libfsext_internal_extended_attribute_t *) extended_attribute;
+
+#if defined( HAVE_LIBFSEXT_MULTI_THREAD_SUPPORT )
+ if( libcthreads_read_write_lock_grab_for_write(
+ internal_extended_attribute->read_write_lock,
+ error ) != 1 )
+ {
+ libcerror_error_set(
+ error,
+ LIBCERROR_ERROR_DOMAIN_RUNTIME,
+ LIBCERROR_RUNTIME_ERROR_SET_FAILED,
+ "%s: unable to grab read/write lock for writing.",
+ function );
+
+ return( -1 );
+ }
+#endif
+ if( internal_extended_attribute->data_stream == NULL )
+ {
+ /* Determining the data stream will initialize the extents array
+ */
+ if( libfsext_internal_extended_attribute_get_data_stream(
+ internal_extended_attribute,
+ error ) != 1 )
+ {
+ libcerror_error_set(
+ error,
+ LIBCERROR_ERROR_DOMAIN_RUNTIME,
+ LIBCERROR_RUNTIME_ERROR_GET_FAILED,
+ "%s: unable to determine data stream.",
+ function );
+
+ result = -1;
+ }
+ }
+ if( result != -1 )
+ {
+ if( libcdata_array_get_number_of_entries(
+ internal_extended_attribute->data_extents_array,
+ number_of_extents,
+ error ) != 1 )
+ {
+ libcerror_error_set(
+ error,
+ LIBCERROR_ERROR_DOMAIN_RUNTIME,
+ LIBCERROR_RUNTIME_ERROR_GET_FAILED,
+ "%s: unable to retrieve number of entries.",
+ function );
+
+ result = -1;
+ }
+ }
+#if defined( HAVE_LIBFSEXT_MULTI_THREAD_SUPPORT )
+ if( libcthreads_read_write_lock_release_for_write(
+ internal_extended_attribute->read_write_lock,
+ error ) != 1 )
+ {
+ libcerror_error_set(
+ error,
+ LIBCERROR_ERROR_DOMAIN_RUNTIME,
+ LIBCERROR_RUNTIME_ERROR_SET_FAILED,
+ "%s: unable to release read/write lock for writing.",
+ function );
+
+ return( -1 );
+ }
+#endif
+ return( result );
+}
+
+/* Retrieves a specific extent
+ * Returns 1 if successful or -1 on error
+ */
+int libfsext_extended_attribute_get_extent_by_index(
+ libfsext_extended_attribute_t *extended_attribute,
+ int extent_index,
+ off64_t *extent_offset,
+ size64_t *extent_size,
+ uint32_t *extent_flags,
+ libcerror_error_t **error )
+{
+ libfsext_extent_t *extent = NULL;
+ libfsext_internal_extended_attribute_t *internal_extended_attribute = NULL;
+ static char *function = "libfsext_extended_attribute_get_extent_by_index";
+ int result = 1;
+
+ if( extended_attribute == NULL )
+ {
+ libcerror_error_set(
+ error,
+ LIBCERROR_ERROR_DOMAIN_ARGUMENTS,
+ LIBCERROR_ARGUMENT_ERROR_INVALID_VALUE,
+ "%s: invalid extended attribute.",
+ function );
+
+ return( -1 );
+ }
+ internal_extended_attribute = (libfsext_internal_extended_attribute_t *) extended_attribute;
+
+#if defined( HAVE_LIBFSEXT_MULTI_THREAD_SUPPORT )
+ if( libcthreads_read_write_lock_grab_for_write(
+ internal_extended_attribute->read_write_lock,
+ error ) != 1 )
+ {
+ libcerror_error_set(
+ error,
+ LIBCERROR_ERROR_DOMAIN_RUNTIME,
+ LIBCERROR_RUNTIME_ERROR_SET_FAILED,
+ "%s: unable to grab read/write lock for writing.",
+ function );
+
+ return( -1 );
+ }
+#endif
+ if( internal_extended_attribute->data_stream == NULL )
+ {
+ /* Determining the data stream will initialize the extents array
+ */
+ if( libfsext_internal_extended_attribute_get_data_stream(
+ internal_extended_attribute,
+ error ) != 1 )
+ {
+ libcerror_error_set(
+ error,
+ LIBCERROR_ERROR_DOMAIN_RUNTIME,
+ LIBCERROR_RUNTIME_ERROR_GET_FAILED,
+ "%s: unable to determine data stream.",
+ function );
+
+ result = -1;
+ }
+ }
+ if( result != -1 )
+ {
+ if( libcdata_array_get_entry_by_index(
+ internal_extended_attribute->data_extents_array,
+ extent_index,
+ (intptr_t **) &extent,
+ error ) != 1 )
+ {
+ libcerror_error_set(
+ error,
+ LIBCERROR_ERROR_DOMAIN_RUNTIME,
+ LIBCERROR_RUNTIME_ERROR_GET_FAILED,
+ "%s: unable to retrieve extent: %d.",
+ function,
+ extent_index );
+
+ result = -1;
+ }
+ if( result == 1 )
+ {
+ if( libfsext_extent_get_values(
+ extent,
+ internal_extended_attribute->io_handle,
+ extent_offset,
+ extent_size,
+ extent_flags,
+ error ) != 1 )
+ {
+ libcerror_error_set(
+ error,
+ LIBCERROR_ERROR_DOMAIN_RUNTIME,
+ LIBCERROR_RUNTIME_ERROR_GET_FAILED,
+ "%s: unable to retrieve extent: %d values.",
+ function,
+ extent_index );
+
+ result = -1;
+ }
+ }
+ }
+#if defined( HAVE_LIBFSEXT_MULTI_THREAD_SUPPORT )
+ if( libcthreads_read_write_lock_release_for_write(
+ internal_extended_attribute->read_write_lock,
+ error ) != 1 )
+ {
+ libcerror_error_set(
+ error,
+ LIBCERROR_ERROR_DOMAIN_RUNTIME,
+ LIBCERROR_RUNTIME_ERROR_SET_FAILED,
+ "%s: unable to release read/write lock for writing.",
+ function );
+
+ return( -1 );
+ }
+#endif
+ return( result );
+}
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfsext-20220822/libfsext/libfsext_extended_attribute.h new/libfsext-20220829/libfsext/libfsext_extended_attribute.h
--- old/libfsext-20220822/libfsext/libfsext_extended_attribute.h 2022-08-22 06:35:33.000000000 +0200
+++ new/libfsext-20220829/libfsext/libfsext_extended_attribute.h 2022-08-28 22:15:14.000000000 +0200
@@ -64,6 +64,10 @@
*/
libfdata_stream_t *data_stream;
+ /* Data extents array
+ */
+ libcdata_array_t *data_extents_array;
+
#if defined( HAVE_LIBFSEXT_MULTI_THREAD_SUPPORT )
/* The read/write lock
*/
@@ -148,6 +152,21 @@
size64_t *size,
libcerror_error_t **error );
+LIBFSEXT_EXTERN \
+int libfsext_extended_attribute_get_number_of_extents(
+ libfsext_extended_attribute_t *extended_attribute,
+ int *number_of_extents,
+ libcerror_error_t **error );
+
+LIBFSEXT_EXTERN \
+int libfsext_extended_attribute_get_extent_by_index(
+ libfsext_extended_attribute_t *extended_attribute,
+ int extent_index,
+ off64_t *extent_offset,
+ size64_t *extent_size,
+ uint32_t *extent_flags,
+ libcerror_error_t **error );
+
#if defined( __cplusplus )
}
#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfsext-20220822/libfsext.spec new/libfsext-20220829/libfsext.spec
--- old/libfsext-20220822/libfsext.spec 2022-08-22 07:04:44.000000000 +0200
+++ new/libfsext-20220829/libfsext.spec 2022-08-30 16:12:51.000000000 +0200
@@ -1,5 +1,5 @@
Name: libfsext
-Version: 20220822
+Version: 20220829
Release: 1
Summary: Library to support the Extended File System (ext) format
Group: System Environment/Libraries
@@ -101,6 +101,6 @@
%{_mandir}/man1/*
%changelog
-* Mon Aug 22 2022 Joachim Metz <joachim.metz(a)gmail.com> 20220822-1
+* Tue Aug 30 2022 Joachim Metz <joachim.metz(a)gmail.com> 20220829-1
- Auto-generated
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfsext-20220822/manuals/libfsext.3 new/libfsext-20220829/manuals/libfsext.3
--- old/libfsext-20220822/manuals/libfsext.3 2022-08-22 06:35:38.000000000 +0200
+++ new/libfsext-20220829/manuals/libfsext.3 2022-08-28 21:53:49.000000000 +0200
@@ -1,4 +1,4 @@
-.Dd July 10, 2022
+.Dd August 28, 2022
.Dt libfsext 3
.Os libfsext
.Sh NAME
@@ -206,6 +206,10 @@
.Fn libfsext_extended_attribute_get_offset "libfsext_extended_attribute_t *extended_attribute" "off64_t *offset" "libfsext_error_t **error"
.Ft int
.Fn libfsext_extended_attribute_get_size "libfsext_extended_attribute_t *extended_attribute" "size64_t *size" "libfsext_error_t **error"
+.Ft int
+.Fn libfsext_extended_attribute_get_number_of_extents "libfsext_extended_attribute_t *extended_attribute" "int *number_of_extents" "libfsext_error_t **error"
+.Ft int
+.Fn libfsext_extended_attribute_get_extent_by_index "libfsext_extended_attribute_t *extended_attribute" "int extent_index" "off64_t *extent_offset" "size64_t *extent_size" "uint32_t *extent_flags" "libfsext_error_t **error"
.Sh DESCRIPTION
The
.Fn libfsext_get_version
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfsext-20220822/pyfsext/pyfsext_extended_attribute.c new/libfsext-20220829/pyfsext/pyfsext_extended_attribute.c
--- old/libfsext-20220822/pyfsext/pyfsext_extended_attribute.c 2022-08-22 06:37:57.000000000 +0200
+++ new/libfsext-20220829/pyfsext/pyfsext_extended_attribute.c 2022-08-29 07:24:44.000000000 +0200
@@ -99,6 +99,20 @@
"\n"
"Retrieves the size of the data stream object." },
+ { "get_number_of_extents",
+ (PyCFunction) pyfsext_extended_attribute_get_number_of_extents,
+ METH_NOARGS,
+ "get_number_of_extents() -> Integer\n"
+ "\n"
+ "Retrieves the number of extents." },
+
+ { "get_extent",
+ (PyCFunction) pyfsext_extended_attribute_get_extent,
+ METH_VARARGS | METH_KEYWORDS,
+ "get_extent(extent_index) -> Tuple(Integer, Integer, Integer)\n"
+ "\n"
+ "Retrieves the extent specified by the index." },
+
/* Sentinel */
{ NULL, NULL, 0, NULL }
};
@@ -1093,3 +1107,193 @@
return( integer_object );
}
+/* Retrieves the number of extents
+ * Returns a Python object if successful or NULL on error
+ */
+PyObject *pyfsext_extended_attribute_get_number_of_extents(
+ pyfsext_extended_attribute_t *pyfsext_extended_attribute,
+ PyObject *arguments PYFSEXT_ATTRIBUTE_UNUSED )
+{
+ PyObject *integer_object = NULL;
+ libcerror_error_t *error = NULL;
+ static char *function = "pyfsext_extended_attribute_get_number_of_extents";
+ int number_of_extents = 0;
+ int result = 0;
+
+ PYFSEXT_UNREFERENCED_PARAMETER( arguments )
+
+ if( pyfsext_extended_attribute == NULL )
+ {
+ PyErr_Format(
+ PyExc_ValueError,
+ "%s: invalid extended attribute.",
+ function );
+
+ return( NULL );
+ }
+ Py_BEGIN_ALLOW_THREADS
+
+ result = libfsext_extended_attribute_get_number_of_extents(
+ pyfsext_extended_attribute->extended_attribute,
+ &number_of_extents,
+ &error );
+
+ Py_END_ALLOW_THREADS
+
+ if( result != 1 )
+ {
+ pyfsext_error_raise(
+ error,
+ PyExc_IOError,
+ "%s: unable to retrieve number of extents.",
+ function );
+
+ libcerror_error_free(
+ &error );
+
+ return( NULL );
+ }
+#if PY_MAJOR_VERSION >= 3
+ integer_object = PyLong_FromLong(
+ (long) number_of_extents );
+#else
+ integer_object = PyInt_FromLong(
+ (long) number_of_extents );
+#endif
+ return( integer_object );
+}
+
+/* Retrieves a specific extent by index
+ * Returns a Python object if successful or NULL on error
+ */
+PyObject *pyfsext_extended_attribute_get_extent_by_index(
+ pyfsext_extended_attribute_t *pyfsext_extended_attribute,
+ int extent_index )
+{
+ libcerror_error_t *error = NULL;
+ PyObject *integer_object = NULL;
+ PyObject *tuple_object = NULL;
+ static char *function = "pyfsext_extended_attribute_get_extent_by_index";
+ off64_t extent_offset = 0;
+ size64_t extent_size = 0;
+ uint32_t extent_flags = 0;
+ int result = 0;
+
+ if( pyfsext_extended_attribute == NULL )
+ {
+ PyErr_Format(
+ PyExc_TypeError,
+ "%s: invalid extended attribute.",
+ function );
+
+ return( NULL );
+ }
+ Py_BEGIN_ALLOW_THREADS
+
+ result = libfsext_extended_attribute_get_extent_by_index(
+ pyfsext_extended_attribute->extended_attribute,
+ extent_index,
+ &extent_offset,
+ &extent_size,
+ &extent_flags,
+ &error );
+
+ Py_END_ALLOW_THREADS
+
+ if( result != 1 )
+ {
+ pyfsext_error_raise(
+ error,
+ PyExc_IOError,
+ "%s: unable to retrieve extent: %d.",
+ function,
+ extent_index );
+
+ libcerror_error_free(
+ &error );
+
+ goto on_error;
+ }
+ tuple_object = PyTuple_New(
+ 3 );
+
+ integer_object = pyfsext_integer_signed_new_from_64bit(
+ (int64_t) extent_offset );
+
+ /* Tuple set item does not increment the reference count of the integer object
+ */
+ if( PyTuple_SetItem(
+ tuple_object,
+ 0,
+ integer_object ) != 0 )
+ {
+ goto on_error;
+ }
+ integer_object = pyfsext_integer_unsigned_new_from_64bit(
+ (uint64_t) extent_size );
+
+ /* Tuple set item does not increment the reference count of the integer object
+ */
+ if( PyTuple_SetItem(
+ tuple_object,
+ 1,
+ integer_object ) != 0 )
+ {
+ goto on_error;
+ }
+ integer_object = pyfsext_integer_unsigned_new_from_64bit(
+ (uint64_t) extent_flags );
+
+ /* Tuple set item does not increment the reference count of the integer object
+ */
+ if( PyTuple_SetItem(
+ tuple_object,
+ 2,
+ integer_object ) != 0 )
+ {
+ goto on_error;
+ }
+ return( tuple_object );
+
+on_error:
+ if( integer_object != NULL )
+ {
+ Py_DecRef(
+ (PyObject *) integer_object );
+ }
+ if( tuple_object != NULL )
+ {
+ Py_DecRef(
+ (PyObject *) tuple_object );
+ }
+ return( NULL );
+}
+
+/* Retrieves a specific extent
+ * Returns a Python object if successful or NULL on error
+ */
+PyObject *pyfsext_extended_attribute_get_extent(
+ pyfsext_extended_attribute_t *pyfsext_extended_attribute,
+ PyObject *arguments,
+ PyObject *keywords )
+{
+ PyObject *sequence_object = NULL;
+ static char *keyword_list[] = { "extent_index", NULL };
+ int extent_index = 0;
+
+ if( PyArg_ParseTupleAndKeywords(
+ arguments,
+ keywords,
+ "i",
+ keyword_list,
+ &extent_index ) == 0 )
+ {
+ return( NULL );
+ }
+ sequence_object = pyfsext_extended_attribute_get_extent_by_index(
+ pyfsext_extended_attribute,
+ extent_index );
+
+ return( sequence_object );
+}
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfsext-20220822/pyfsext/pyfsext_extended_attribute.h new/libfsext-20220829/pyfsext/pyfsext_extended_attribute.h
--- old/libfsext-20220822/pyfsext/pyfsext_extended_attribute.h 2022-08-22 06:35:36.000000000 +0200
+++ new/libfsext-20220829/pyfsext/pyfsext_extended_attribute.h 2022-08-28 22:00:01.000000000 +0200
@@ -89,6 +89,19 @@
pyfsext_extended_attribute_t *pyfsext_extended_attribute,
PyObject *arguments );
+PyObject *pyfsext_extended_attribute_get_number_of_extents(
+ pyfsext_extended_attribute_t *pyfsext_extended_attribute,
+ PyObject *arguments );
+
+PyObject *pyfsext_extended_attribute_get_extent_by_index(
+ pyfsext_extended_attribute_t *pyfsext_extended_attribute,
+ int extent_index );
+
+PyObject *pyfsext_extended_attribute_get_extent(
+ pyfsext_extended_attribute_t *pyfsext_extended_attribute,
+ PyObject *arguments,
+ PyObject *keywords );
+
#if defined( __cplusplus )
}
#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfsext-20220822/pyfsext/pyfsext_file_entry.c new/libfsext-20220829/pyfsext/pyfsext_file_entry.c
--- old/libfsext-20220822/pyfsext/pyfsext_file_entry.c 2022-08-22 06:37:57.000000000 +0200
+++ new/libfsext-20220829/pyfsext/pyfsext_file_entry.c 2022-08-29 07:24:35.000000000 +0200
@@ -289,7 +289,7 @@
{ "get_extent",
(PyCFunction) pyfsext_file_entry_get_extent,
METH_VARARGS | METH_KEYWORDS,
- "get_extent(extent_index) -> Tuple( Integer, Integer, Integer )\n"
+ "get_extent(extent_index) -> Tuple(Integer, Integer, Integer)\n"
"\n"
"Retrieves a specific extent.\t"
"The extent is a tuple of offset, size and flags." },
1
0