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
June 2023
- 1 participants
- 2409 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 000update-repos for openSUSE:Factory checked in at 2023-06-30 21:07:57
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/000update-repos (Old)
and /work/SRC/openSUSE:Factory/.000update-repos.new.13546 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "000update-repos"
Fri Jun 30 21:07:57 2023 rev:2294 rq: version:unknown
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
Old:
----
factory:non-oss_3654.2.packages.zst
factory:non-oss_3654.2_and_before.packages.zst
factory:non-oss_3656.2.packages.zst
factory:non-oss_3657.2.packages.zst
factory:non-oss_3659.1.packages.zst
factory:non-oss_3660.1.packages.zst
factory:non-oss_3661.1.packages.zst
factory:non-oss_3663.2.packages.zst
factory:non-oss_3664.2.packages.zst
factory:non-oss_3666.2.packages.zst
factory:non-oss_3668.1.packages.zst
factory_20230613.packages.zst
factory_20230613_and_before.packages.zst
factory_20230616.packages.zst
factory_20230617.packages.zst
factory_20230619.packages.zst
factory_20230620.packages.zst
factory_20230621.packages.zst
factory_20230623.packages.zst
factory_20230624.packages.zst
factory_20230626.packages.zst
factory_20230628.packages.zst
New:
----
factory:non-oss_3668.1_and_before.packages.zst
factory:non-oss_3669.2.packages.zst
factory_20230628_and_before.packages.zst
factory_20230629.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-06-30 20:41:49
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/000release-packages (Old)
and /work/SRC/openSUSE:Factory/.000release-packages.new.13546 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "000release-packages"
Fri Jun 30 20:41:49 2023 rev:2373 rq: version:unknown
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ MicroOS-release.spec ++++++
--- /var/tmp/diff_new_pack.IwtG1W/_old 2023-06-30 20:41:51.904959730 +0200
+++ /var/tmp/diff_new_pack.IwtG1W/_new 2023-06-30 20:41:51.908959754 +0200
@@ -17,7 +17,7 @@
Name: MicroOS-release
-Version: 20230629
+Version: 20230630
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) = 20230629-0
+Provides: product(MicroOS) = 20230630-0
Provides: product-label() = openSUSE%20MicroOS
-Provides: product-cpeid() = cpe%3A%2Fo%3Aopensuse%3Amicroos%3A20230629
+Provides: product-cpeid() = cpe%3A%2Fo%3Aopensuse%3Amicroos%3A20230630
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) = 20230629-0
+Provides: product_flavor(MicroOS) = 20230630-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) = 20230629-0
+Provides: product_flavor(MicroOS) = 20230630-0
Summary: openSUSE MicroOS%{?betaversion: %{betaversion}}
%description appliance
@@ -275,11 +275,11 @@
<product schemeversion="0">
<vendor>openSUSE</vendor>
<name>MicroOS</name>
- <version>20230629</version>
+ <version>20230630</version>
<release>0</release>
<endoflife></endoflife>
<arch>%{_target_cpu}</arch>
- <cpeid>cpe:/o:opensuse:microos:20230629</cpeid>
+ <cpeid>cpe:/o:opensuse:microos:20230630</cpeid>
<productline>MicroOS</productline>
<register>
<pool>
++++++ openSUSE-Addon-NonOss-release.spec ++++++
--- /var/tmp/diff_new_pack.IwtG1W/_old 2023-06-30 20:41:51.932959896 +0200
+++ /var/tmp/diff_new_pack.IwtG1W/_new 2023-06-30 20:41:51.936959920 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package openSUSE-Addon-NonOss-release (Version 20230629)
+# spec file for package openSUSE-Addon-NonOss-release (Version 20230630)
#
# 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: 20230629
+Version: 20230630
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) = 20230629-0
+Provides: product(openSUSE-Addon-NonOss) = 20230630-0
Provides: product-label() = non%20oss%20addon
-Provides: product-cpeid() = cpe%3A%2Fo%3Aopensuse%3Aopensuse%2Daddon%2Dnonoss%3A20230629
+Provides: product-cpeid() = cpe%3A%2Fo%3Aopensuse%3Aopensuse%2Daddon%2Dnonoss%3A20230630
AutoReqProv: on
@@ -49,10 +49,10 @@
<product schemeversion="0">
<vendor>openSUSE</vendor>
<name>openSUSE-Addon-NonOss</name>
- <version>20230629</version>
+ <version>20230630</version>
<release>0</release>
<arch>%{_target_cpu}</arch>
- <cpeid>cpe:/o:opensuse:opensuse-addon-nonoss:20230629</cpeid>
+ <cpeid>cpe:/o:opensuse:opensuse-addon-nonoss:20230630</cpeid>
<register>
<pool>
</pool>
++++++ openSUSE-release.spec ++++++
--- /var/tmp/diff_new_pack.IwtG1W/_old 2023-06-30 20:41:51.956960039 +0200
+++ /var/tmp/diff_new_pack.IwtG1W/_new 2023-06-30 20:41:51.960960063 +0200
@@ -20,7 +20,7 @@
#define betaversion %{nil}
%define codename Tumbleweed
Name: openSUSE-release
-Version: 20230629
+Version: 20230630
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) = 20230629-0
+Provides: product(openSUSE) = 20230630-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%3A20230629
+Provides: product-cpeid() = cpe%3A%2Fo%3Aopensuse%3Aopensuse%3A20230630
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) = 20230629-0
+Provides: product_flavor(openSUSE) = 20230630-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) = 20230629-0
+Provides: product_flavor(openSUSE) = 20230630-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) = 20230629-0
+Provides: product_flavor(openSUSE) = 20230630-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) = 20230629-0
+Provides: product_flavor(openSUSE) = 20230630-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) = 20230629-0
+Provides: product_flavor(openSUSE) = 20230630-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) = 20230629-0
+Provides: product_flavor(openSUSE) = 20230630-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) = 20230629-0
+Provides: product_flavor(openSUSE) = 20230630-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) = 20230629-0
+Provides: product_flavor(openSUSE) = 20230630-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) = 20230629-0
+Provides: product_flavor(openSUSE) = 20230630-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) = 20230629-0
+Provides: product_flavor(openSUSE) = 20230630-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) = 20230629-0
+Provides: product_flavor(openSUSE) = 20230630-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) = 20230629-0
+Provides: product_flavor(openSUSE) = 20230630-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) = 20230629-0
+Provides: product_flavor(openSUSE) = 20230630-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) = 20230629-0
+Provides: product_flavor(openSUSE) = 20230630-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) = 20230629-0
+Provides: product_flavor(openSUSE) = 20230630-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) = 20230629-0
+Provides: product_flavor(openSUSE) = 20230630-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) = 20230629-0
+Provides: product_flavor(openSUSE) = 20230630-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) = 20230629-0
+Provides: product_flavor(openSUSE) = 20230630-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) = 20230629-0
+Provides: product_flavor(openSUSE) = 20230630-0
Summary: openSUSE Tumbleweed%{?betaversion: %{betaversion}}
%description appliance-custom
@@ -558,10 +558,10 @@
<product schemeversion="0">
<vendor>openSUSE</vendor>
<name>openSUSE</name>
- <version>20230629</version>
+ <version>20230630</version>
<release>0</release>
<arch>%{_target_cpu}</arch>
- <cpeid>cpe:/o:opensuse:opensuse:20230629</cpeid>
+ <cpeid>cpe:/o:opensuse:opensuse:20230630</cpeid>
<productline>openSUSE</productline>
<register>
<target>openSUSE-Tumbleweed-x86_64</target>
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package obs-service-source_validator for openSUSE:Factory checked in at 2023-06-30 20:00:09
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/obs-service-source_validator (Old)
and /work/SRC/openSUSE:Factory/.obs-service-source_validator.new.13546 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "obs-service-source_validator"
Fri Jun 30 20:00:09 2023 rev:67 rq:1096177 version:0.31
Changes:
--------
--- /work/SRC/openSUSE:Factory/obs-service-source_validator/obs-service-source_validator.changes 2023-05-05 15:59:35.808879788 +0200
+++ /work/SRC/openSUSE:Factory/.obs-service-source_validator.new.13546/obs-service-source_validator.changes 2023-06-30 20:00:34.342250193 +0200
@@ -1,0 +2,9 @@
+Fri Jun 30 16:51:18 UTC 2023 - dmueller(a)suse.com
+
+- Update to version 0.31:
+ * Also ignore .gitattributes file
+ * Exempt obs services from the cargo audit requirement
+ * helpers/spec_query: Handle %include
+ * Unify _multibuild handling and do it like OBS
+
+-------------------------------------------------------------------
Old:
----
obs-service-source_validator-0.30.tar.zst
New:
----
obs-service-source_validator-0.31.tar.zst
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ obs-service-source_validator.spec ++++++
--- /var/tmp/diff_new_pack.7aymXz/_old 2023-06-30 20:00:35.214255380 +0200
+++ /var/tmp/diff_new_pack.7aymXz/_new 2023-06-30 20:00:35.218255404 +0200
@@ -17,13 +17,13 @@
Name: obs-service-source_validator
-Version: 0.30
+Version: 0.31
Release: 0
Summary: An OBS source service: running all the osc source-validator checks
License: GPL-2.0-or-later
Group: Development/Tools/Building
URL: https://github.com/openSUSE/obs-service-source_validator
-# use osc service dr to update
+# use osc service mr to update
Source: %{name}-%{version}.tar.zst
BuildRequires: build
BuildRequires: zstd
++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.7aymXz/_old 2023-06-30 20:00:35.274255736 +0200
+++ /var/tmp/diff_new_pack.7aymXz/_new 2023-06-30 20:00:35.278255760 +0200
@@ -3,6 +3,6 @@
<param name="url">git://github.com/openSUSE/obs-service-source_validator.git</param>
<param name="changesrevision">c68d7a28c4ecd88b179359b030098503e75adc0b</param></service><service name="tar_scm">
<param name="url">https://github.com/openSUSE/obs-service-source_validator.git</param>
- <param name="changesrevision">a15bac0345107d3ed73c3bcf05428ea1b98ea353</param></service></servicedata>
+ <param name="changesrevision">eb40f5fac579d35bd0534c310f14fc23a0654994</param></service></servicedata>
(No newline at EOF)
++++++ debian.dsc ++++++
--- /var/tmp/diff_new_pack.7aymXz/_old 2023-06-30 20:00:35.302255903 +0200
+++ /var/tmp/diff_new_pack.7aymXz/_new 2023-06-30 20:00:35.306255928 +0200
@@ -1,6 +1,6 @@
Format: 1.0
Source: obs-service-source-validator
-Version: 0.30-0
+Version: 0.31-0
Binary: obs-service-source-validator
Maintainer: Hib Eris <hib(a)hiberis.nl>
Architecture: all
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-py3status for openSUSE:Factory checked in at 2023-06-30 20:00:08
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-py3status (Old)
and /work/SRC/openSUSE:Factory/.python-py3status.new.13546 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-py3status"
Fri Jun 30 20:00:08 2023 rev:12 rq:1096164 version:3.51
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-py3status/python-py3status.changes 2023-04-19 17:44:12.300621601 +0200
+++ /work/SRC/openSUSE:Factory/.python-py3status.new.13546/python-py3status.changes 2023-06-30 20:00:33.242243650 +0200
@@ -1,0 +2,31 @@
+Fri Jun 30 15:06:00 UTC 2023 - Matej Cepl <mcepl(a)suse.com>
+
+- Clean up SPEC file.
+
+-------------------------------------------------------------------
+Fri Jun 30 14:31:54 UTC 2023 - Dawid Adam <nyslay(a)gmail.com>
+- Update to 3.51:
+ * NEW: thanks to Andreas Grapentin, py3status can now run in lots of other containers (tmux, term, dzen2, lemonbar...)
+ * IMPORTANT: modules are moving away from the obsolete pydbus library
+ * core: implement handling of output_format in py3status for i3bar, dzen2, xmobar, lemonbar, tmux, term, none (#2104), by Andreas Grapentin
+ * core: autodetect output_format (#2202), by lasers
+ * fix(module): report module post_config_hook errors thx to @lasers (#2208)
+ * docs(user): add a section to specify that modules dependencies are up to the users
+ * docs(mkdocs): drop mkdocs-simple-hooks closes #2195
+ * docs: fix two DeprecationWarning (#2191), by lasers
+ * docs(audiosink): fix screenshots (#2194), by lasers
+ * docs(autodoc): remove dead code thx to @lasers, closes #2183 (#2193)
+ * arch_updates module: add support for pikaur (#2182), by vim
+ * arch_updates module: remove cower support (gone) (#2190), by lasers
+ * backlight module: drop pydbus, switch to dbus-python
+ * bluetooth module: report battery percentage if available (#2185), by Alex Tsitsimpis
+ * clock module: added timezone information to times implicitly using local system timezone (#2197), by Andreas Grapentin
+ * clock module: minor patch to get the local timezone. (#2189), by Josh Sixsmith
+ * diskdata module: fix variable init type
+ * diskdata module: make module work on FreeBSD (#2200), by Bj��rn Busse
+ * mpd_status module: fix UnboundLocalError (#2199), by Bj��rn Busse
+ * ns_checker module: replace query() with resolve() (#2207), by Bj��rn Busse
+ * systemd module: drop pydbus, switch to dbus-python
+ * vpn_status module: drop pydbus, switch to dbus-python
+
+-------------------------------------------------------------------
Old:
----
py3status-3.50.tar.gz
New:
----
py3status-3.51.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-py3status.spec ++++++
--- /var/tmp/diff_new_pack.gAOaqe/_old 2023-06-30 20:00:33.922247695 +0200
+++ /var/tmp/diff_new_pack.gAOaqe/_new 2023-06-30 20:00:33.930247743 +0200
@@ -17,24 +17,25 @@
%define skip_python2 1
-%{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name: python-py3status
-Version: 3.50
+Version: 3.51
Release: 0
Summary: Python extensible i3status wrapper
License: BSD-3-Clause
URL: https://github.com/ultrabug/py3status
Source: https://files.pythonhosted.org/packages/source/p/py3status/py3status-%{vers…
BuildRequires: %{python_module gevent >= 1.1}
+BuildRequires: %{python_module pip}
BuildRequires: %{python_module pytest}
BuildRequires: %{python_module pyudev >= 0.21.0}
-BuildRequires: %{python_module setuptools}
+BuildRequires: %{python_module wheel}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
Requires: python-setuptools
Requires(post): update-alternatives
Requires(postun):update-alternatives
Recommends: i3status
+Recommends: python-dbus-python
Recommends: python-gevent >= 1.1
Recommends: python-pyudev >= 0.21.0
Provides: py3status = %{version}
@@ -59,10 +60,10 @@
%setup -q -n py3status-%{version}
%build
-%python_build
+%pyproject_wheel
%install
-%python_install
+%pyproject_install
%python_clone -a %{buildroot}%{_bindir}/py3status
%python_clone -a %{buildroot}%{_bindir}/py3-cmd
%python_expand %fdupes %{buildroot}%{$python_sitelib}
@@ -84,6 +85,7 @@
%doc CHANGELOG README.md
%python_alternative %{_bindir}/py3status
%python_alternative %{_bindir}/py3-cmd
-%{python_sitelib}/py3status*
+%{python_sitelib}/py3status
+%{python_sitelib}/py3status-%{version}*-info
%changelog
++++++ py3status-3.50.tar.gz -> py3status-3.51.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py3status-3.50/CHANGELOG new/py3status-3.51/CHANGELOG
--- old/py3status-3.50/CHANGELOG 2023-04-17 18:42:48.000000000 +0200
+++ new/py3status-3.51/CHANGELOG 2023-06-27 09:27:54.000000000 +0200
@@ -1,3 +1,27 @@
+version 3.51 (2023-06-27)
+* NEW: thanks to Andreas Grapentin, py3status can now run in lots of other containers (tmux, term, dzen2, lemonbar...)
+* IMPORTANT: modules are moving away from the obsolete pydbus library
+* core: implement handling of output_format in py3status for i3bar, dzen2, xmobar, lemonbar, tmux, term, none (#2104), by Andreas Grapentin
+* core: autodetect output_format (#2202), by lasers
+* fix(module): report module post_config_hook errors thx to @lasers (#2208)
+* docs(user): add a section to specify that modules dependencies are up to the users
+* docs(mkdocs): drop mkdocs-simple-hooks closes #2195
+* docs: fix two DeprecationWarning (#2191), by lasers
+* docs(audiosink): fix screenshots (#2194), by lasers
+* docs(autodoc): remove dead code thx to @lasers, closes #2183 (#2193)
+* arch_updates module: add support for pikaur (#2182), by vim
+* arch_updates module: remove cower support (gone) (#2190), by lasers
+* backlight module: drop pydbus, switch to dbus-python
+* bluetooth module: report battery percentage if available (#2185), by Alex Tsitsimpis
+* clock module: added timezone information to times implicitly using local system timezone (#2197), by Andreas Grapentin
+* clock module: minor patch to get the local timezone. (#2189), by Josh Sixsmith
+* diskdata module: fix variable init type
+* diskdata module: make module work on FreeBSD (#2200), by Bj��rn Busse
+* mpd_status module: fix UnboundLocalError (#2199), by Bj��rn Busse
+* ns_checker module: replace query() with resolve() (#2207), by Bj��rn Busse
+* systemd module: drop pydbus, switch to dbus-python
+* vpn_status module: drop pydbus, switch to dbus-python
+
version 3.50 (2023-04-17)
* update alpine install doc (#2176), by raspbeguy
* battery_level module: fix invalid indexing, skip batteries with unavailable info (#2180), by lasers
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py3status-3.50/PKG-INFO new/py3status-3.51/PKG-INFO
--- old/py3status-3.50/PKG-INFO 2023-04-17 18:44:18.737956300 +0200
+++ new/py3status-3.51/PKG-INFO 2023-06-27 10:33:46.732813100 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: py3status
-Version: 3.50
+Version: 3.51
Summary: py3status: an extensible i3status wrapper written in python
Home-page: https://github.com/ultrabug/py3status
Author: Ultrabug
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py3status-3.50/py3status/autodoc.py new/py3status-3.51/py3status/autodoc.py
--- old/py3status-3.50/py3status/autodoc.py 2021-08-30 10:15:50.000000000 +0200
+++ new/py3status-3.51/py3status/autodoc.py 2023-06-18 11:40:47.000000000 +0200
@@ -1,117 +1,9 @@
-import ast
-import inspect
import re
from pathlib import Path
-from docutils import nodes
-from docutils.parsers.rst import Directive
-from pygments.lexer import RegexLexer, bygroups
-import pygments.token as pygments_token
-
from py3status.docstrings import core_module_docstrings
-from py3status.screenshots import create_screenshots, get_samples, process
-from py3status.py3 import Py3
-
-
-# some Py3 methods have constants as defaults we need to identify them here
-CONSTANT_PARAMS = [("log", "level"), ("notify_user", "level")]
-
-
-class Py3statusLexer(RegexLexer):
- """
- A simple lexer for py3status configuration files.
- This helps make the documentation more beautiful
- """
-
- name = "Py3status"
- aliases = ["py3status"]
- filenames = ["*.conf"]
-
- tokens = {
- "root": [
- (r"#.*?$", pygments_token.Comment), # comments
- ( # double quoted strings
- r'"(?:[^"\\]|\\.)*"',
- pygments_token.String.Double,
- ),
- ( # single quoted strings
- r"'(?:[^'\\]|\\.)*'",
- pygments_token.String.Single,
- ),
- (r"([0-9]+)|([0-9]*)\.([0-9]*)", pygments_token.Number), # numbers
- (r"[Tt]rue|[Ff]alse|[Nn]one", pygments_token.Literal), # True, False & None
- (r"(\+=)|=", pygments_token.Operator), # = and +=
- (r"[{}\[\](),:]", pygments_token.Punctuation), # other things like (){}[],:
- ( # config functions eg env(value, type)
- r"(\S+)([(])(([^)\\]|\\.)*)((\s*,\s*)(\w+))?([)])",
- bygroups(
- pygments_token.Name.Function,
- pygments_token.Punctuation,
- pygments_token.Literal,
- None,
- None,
- pygments_token.Punctuation,
- pygments_token.Keyword.Type,
- pygments_token.Punctuation,
- ),
- ),
- ( # module names
- r"(\S+)(\s*)([^=]*)(\s*)(\{)",
- bygroups(
- pygments_token.Keyword.Reserved,
- pygments_token.Whitespace,
- pygments_token.Keyword.Reserved,
- pygments_token.Whitespace,
- pygments_token.Punctuation,
- ),
- ),
- ( # order += ....
- r"^(order)(\s+)(\+=)",
- bygroups(
- pygments_token.Keyword.Reserved,
- pygments_token.Whitespace,
- pygments_token.Punctuation,
- ),
- ),
- (r"on_click\s*\d", pygments_token.Name.Variable), # on_click x
- ( # module parameters
- r"(\w+)((:)(\S+))?",
- bygroups(
- pygments_token.Name.Variable,
- None,
- pygments_token.Punctuation,
- pygments_token.Keyword.Type,
- ),
- ),
- (r"\s+", pygments_token.Whitespace), # whitespace
- ]
- }
-
-
-def markdown_2_rst(lines):
- """
- Convert markdown to restructured text
- """
- out = []
- code = False
- for line in lines:
- # code blocks
- if line.strip() == "```":
- code = not code
- space = " " * (len(line.rstrip()) - 3)
- if code:
- out.append(f"\n\n{space}.. code-block:: none\n\n")
- else:
- out.append("\n")
- else:
- if code and line.strip():
- line = " " + line
- else:
- # escape any backslashes
- line = line.replace("\\", "\\\\")
- out.append(line)
- return out
+from py3status.screenshots import create_screenshots, get_samples
def file_sort(my_list):
@@ -177,184 +69,10 @@
return config
-def get_variable_docstrings(filename):
- """
- Go through the file and find all documented variables.
- That is ones that have a literal expression following them.
-
- Also get a dict of assigned values so that we can substitute constants.
- """
-
- def walk_node(parent, values=None, prefix=""):
- """
- walk the ast searching for docstrings/values
- """
- docstrings = {}
- if values is None:
- values = {}
- key = None
- for node in ast.iter_child_nodes(parent):
- if isinstance(node, ast.ClassDef):
- # We are in a class so walk the class
- docs = walk_node(node, values, prefix + node.name + ".")[0]
- docstrings[node.name] = docs
- elif isinstance(node, ast.Assign):
- key = node.targets[0].id
- if isinstance(node.value, ast.Num):
- values[key] = node.value.n
- if isinstance(node.value, ast.Str):
- values[key] = node.value.s
- if isinstance(node.value, ast.Name):
- if node.value.id in values:
- values[prefix + key] = values[node.value.id]
- elif isinstance(node, ast.Expr) and key:
- docstrings[key] = node.value.s
- else:
- key = None
- return docstrings, values
-
- return walk_node(ast.parse(filename.read_text()))
-
-
-def get_py3_info():
- """
- Inspect Py3 class and get constants, exceptions, methods
- along with their docstrings.
- """
- # get all documented constants and their values
- constants, values = get_variable_docstrings(Path("../py3status/py3.py"))
- # we only care about ones defined in Py3
- constants = constants["Py3"]
- # sort them alphabetically
- constants = sorted(constants.items())
-
- # filter values as we only care about values defined in Py3
- values = {v: k[4:] for k, v in values.items() if k.startswith("Py3.")}
-
- def make_value(attr, arg, default):
- """
- If the methods parameter is defined as a constant then do a
- replacement. Otherwise return the values representation.
- """
- if (attr, arg) in CONSTANT_PARAMS and default in values:
- return values[default]
- return repr(default)
-
- # inspect Py3 to find it's methods etc
- py3 = Py3()
- # no private ones
- attrs = [x for x in dir(py3) if not x.startswith("_")]
- exceptions = []
- methods = []
- for attr in attrs:
- item = getattr(py3, attr)
- if "method" in str(item):
- # a method so we need to get the call parameters
- args, vargs, kw, defaults = inspect.getargspec(item)
- args = args[1:]
- len_defaults = len(defaults) if defaults else 0
- len_args = len(args)
-
- sig = []
- for index, arg in enumerate(args):
- # default values set?
- if len_args - index <= len_defaults:
- default = defaults[len_defaults - len_args + index]
- sig.append("{}={}".format(arg, make_value(attr, arg, default)))
- else:
- sig.append(arg)
-
- definition = "{}({})".format(attr, ", ".join(sig))
- methods.append((definition, item.__doc__))
- continue
- try:
- # find any exceptions
- if isinstance(item(), Exception):
- exceptions.append((attr, item.__doc__))
- continue
- except: # noqa e722
- pass
- return {"methods": methods, "exceptions": exceptions, "constants": constants}
-
-
-def auto_undent(string):
- """
- Unindent a docstring.
- """
- lines = string.splitlines()
- while lines[0].strip() == "":
- lines = lines[1:]
- if not lines:
- return []
- spaces = len(lines[0]) - len(lines[0].lstrip(" "))
- out = []
- for line in lines:
- num_spaces = len(line) - len(line.lstrip(" "))
- out.append(line[min(spaces, num_spaces) :])
- return out
-
-
-def create_py3_docs():
- """
- Create the include files for py3 documentation.
- """
- # we want the correct .rst 'type' for our data
- trans = {"methods": "function", "exceptions": "exception", "constants": "attribute"}
- data = get_py3_info()
- for k, v in data.items():
- output = []
- for name, desc in v:
- output.append("")
- output.append(f".. _{name}:") # reference for linking
- output.append("")
- output.append(f".. py:{trans[k]}:: {name}")
- output.append("")
- output.extend(auto_undent(desc))
- Path(f"../docs/py3-{k}-info.inc").write_text("\n".join(output))
-
-
-def create_auto_documentation(config):
+def on_config(config):
"""
Create any include files needed for sphinx documentation
"""
create_screenshots(config)
create_module_docs(config)
return config
-
-
-class ScreenshotDirective(Directive):
- """
- Adds the ability to add screenshots dynamically in sphinx documentation
-
- .. screenshot::
-
- {'color': '#00FF00', 'full_text': 'Example output'}
-
- """
-
- has_content = True
-
- def run(self):
- env = self.state.document.settings.env
-
- targetid = f"screenshot-{env.new_serialno('screenshot')}"
- targetnode = nodes.target("", "", ids=[targetid])
-
- image_name = f"_{targetid}"
- try:
- content = ast.literal_eval("\n".join(self.content))
- except: # noqa e722
- content = {
- "color": "#990000",
- "background": "#FFFF00",
- "full_text": " IMAGE DATA ERROR ",
- }
-
- process(image_name, content, False)
- image_path = Path("screenshots") / (image_name + ".png")
- screenshot_node = nodes.image(uri=image_path)
- return [targetnode, screenshot_node]
-
-
-if __name__ == "__main__":
- create_auto_documentation()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py3status-3.50/py3status/constants.py new/py3status-3.51/py3status/constants.py
--- old/py3status-3.50/py3status/constants.py 2022-10-02 17:24:36.000000000 +0200
+++ new/py3status-3.51/py3status/constants.py 2023-06-18 14:26:19.000000000 +0200
@@ -7,7 +7,7 @@
"color_separator": "#333333",
"colors": True,
"interval": 5,
- "output_format": "i3bar",
+ "output_format": None,
}
MAX_NESTING_LEVELS = 4
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py3status-3.50/py3status/core.py new/py3status-3.51/py3status/core.py
--- old/py3status-3.50/py3status/core.py 2022-10-27 12:10:18.000000000 +0200
+++ new/py3status-3.51/py3status/core.py 2023-06-18 14:26:19.000000000 +0200
@@ -3,7 +3,6 @@
import time
from collections import deque
-from json import dumps
from pathlib import Path
from pprint import pformat
from signal import signal, Signals, SIGTERM, SIGUSR1, SIGTSTP, SIGCONT
@@ -19,6 +18,7 @@
from py3status.i3status import I3status
from py3status.parse_config import process_config
from py3status.module import Module
+from py3status.output import OutputFormat
from py3status.profiling import profile
from py3status.udev_monitor import UdevMonitor
@@ -613,6 +613,16 @@
self.log("config file: {}".format(self.config["i3status_config_path"]))
self.config["py3_config"] = process_config(config_path, self)
+ # autodetect output_format
+ output_format = self.config["py3_config"]["general"]["output_format"]
+ if output_format is None:
+ if sys.stdout.isatty():
+ print("py3status: trying to auto-detect output_format setting")
+ print('py3status: auto-detected "term"')
+ output_format = "term"
+
+ self.config["py3_config"]["general"]["output_format"] = output_format or "i3bar"
+
# read resources
if "resources" in str(self.config["py3_config"].values()):
from subprocess import check_output
@@ -722,6 +732,20 @@
# load and spawn i3status.conf configured modules threads
self.load_modules(self.py3_modules, user_modules)
+ # determine the target output format
+ self.output_format = OutputFormat.instance_for(
+ self.config["py3_config"]["general"]["output_format"]
+ )
+
+ # determine the output separator, if needed
+ color_separator = None
+ if self.config["py3_config"]["general"]["colors"]:
+ color_separator = self.config["py3_config"]["general"]["color_separator"]
+ self.output_format.format_separator(
+ self.config["py3_config"]["general"].get("separator", None),
+ color_separator,
+ )
+
def notify_user(
self,
msg,
@@ -1015,8 +1039,8 @@
# Color: substitute the config defined color
if "color" not in output:
output["color"] = color
- # Create the json string output.
- return ",".join(dumps(x) for x in outputs)
+ # format output and return
+ return self.output_format.format(outputs)
def i3bar_stop(self, signum, frame):
if (
@@ -1089,17 +1113,13 @@
# items in the bar
output = [None] * len(py3_config["order"])
- write = sys.__stdout__.write
- flush = sys.__stdout__.flush
-
# start our output
header = {
"version": 1,
"click_events": self.config["click_events"],
"stop_signal": self.stop_signal or 0,
}
- write(dumps(header))
- write("\n[[]\n")
+ self.output_format.write_header(header)
update_due = None
# main loop
@@ -1126,8 +1146,5 @@
# store the output as json
output[index] = out
- # build output string
- out = ",".join(x for x in output if x)
- # dump the line to stdout
- write(f",[{out}]\n")
- flush()
+ # build output string and dump to stdout
+ self.output_format.write_line(output)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py3status-3.50/py3status/i3status.py new/py3status-3.51/py3status/i3status.py
--- old/py3status-3.50/py3status/i3status.py 2022-10-02 20:12:35.000000000 +0200
+++ new/py3status-3.51/py3status/i3status.py 2023-06-18 11:22:17.000000000 +0200
@@ -330,6 +330,12 @@
value = TZTIME_FORMAT
if key == "format_time":
continue
+ # Set output_format to i3bar in general section so that we
+ # receive predictable output from i3status, regardless of our
+ # own output_format configuration
+ if section_name == "general":
+ if key == "output_format":
+ value = "i3bar"
if isinstance(value, bool):
value = f"{value}".lower()
self.write_in_tmpfile(f' {key} = "{value}"\n', tmpfile)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py3status-3.50/py3status/module.py new/py3status-3.51/py3status/module.py
--- old/py3status-3.50/py3status/module.py 2023-01-09 18:39:16.000000000 +0100
+++ new/py3status-3.51/py3status/module.py 2023-06-27 09:04:06.000000000 +0200
@@ -150,12 +150,10 @@
self.error_messages = [
self.module_nice_name,
- "{}: {}".format(
- self.module_nice_name, str(e) or e.__class__.__name__
- ),
+ f"{e}",
]
- self.runtime_error(self.error_messages[0], "post_config_hook")
- msg = f"Exception in `{self.module_full_name}` post_config_hook()"
+ self.runtime_error(self.error_messages[1], "post_config_hook")
+ msg = f"Exception in `{self.module_full_name}` post_config_hook() : {self.error_messages}"
self._py3_wrapper.report_exception(msg, notify_user=False)
self._py3_wrapper.log(f"terminating module {self.module_full_name}")
self.enabled = True
@@ -175,7 +173,7 @@
# only show first line of error
msg = msg.splitlines()[0]
- errors = [self.module_nice_name, f"{self.module_nice_name}: {msg}"]
+ errors = [self.module_nice_name, f"{self.module_nice_name}[{method}]: {msg}"]
# if we have shown this error then keep in the same state
if self.error_messages != errors:
@@ -202,7 +200,11 @@
"name": self.module_name,
}
for method in self.methods.values():
- if method_affected and method["method"] != method_affected:
+ if (
+ method_affected
+ and method["method"] != method_affected
+ and method_affected != "post_config_hook"
+ ):
continue
method["last_output"] = [error]
@@ -338,11 +340,17 @@
separator = fn(self.module_full_name, "separator")
if not hasattr(separator, "none_setting"):
- if not isinstance(separator, bool):
- err = "Invalid `separator` attribute, should be a boolean. "
- err += f"Got `{separator}`."
- raise TypeError(err)
- self.i3bar_module_options["separator"] = separator
+ # HACK: separator is a valid setting in the general section
+ # of the configuration. but it's a string, not a boolean.
+ # revisit how i3status and py3status differ in this regard.
+ # if not isinstance(separator, bool):
+
+ # err = "Invalid `separator` attribute, should be a boolean. "
+ # err += f"Got `{separator}`."
+ # raise TypeError(err)
+ # self.i3bar_module_options["separator"] = separator
+ if isinstance(separator, bool):
+ self.i3bar_module_options["separator"] = separator
separator_block_width = fn(self.module_full_name, "separator_block_width")
if not hasattr(separator_block_width, "none_setting"):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py3status-3.50/py3status/modules/arch_updates.py new/py3status-3.51/py3status/modules/arch_updates.py
--- old/py3status-3.50/py3status/modules/arch_updates.py 2022-10-02 16:25:48.000000000 +0200
+++ new/py3status-3.51/py3status/modules/arch_updates.py 2023-06-05 13:45:55.000000000 +0200
@@ -17,6 +17,7 @@
trizen: lightweight pacman wrapper and AUR helper
yay: yet another yogurt. pacman wrapper and aur helper written in go
paru: feature packed AUR helper
+ pikaur: pacman wrapper and AUR helper written in python
@author Iain Tatch <iain.tatch(a)gmail.com>
@license BSD
@@ -46,7 +47,7 @@
helper = {
"pacman": self.py3.check_commands(["checkupdates"]),
"aur": self.py3.check_commands(
- ["auracle", "trizen", "yay", "cower", "paru"]
+ ["auracle", "trizen", "yay", "paru", "pikaur"]
),
}
if self.format:
@@ -88,13 +89,6 @@
except self.py3.CommandError as ce:
return None if ce.error else 0
- def _get_cower_updates(self):
- try:
- self.py3.command_output(["cower", "-u"])
- return None
- except self.py3.CommandError as ce:
- return len(ce.output.splitlines())
-
def _get_trizen_updates(self):
try:
updates = self.py3.command_output(["trizen", "-Suaq"])
@@ -115,6 +109,13 @@
return len(updates.splitlines())
except self.py3.CommandError as ce:
return None if ce.error else 0
+
+ def _get_pikaur_updates(self):
+ try:
+ updates = self.py3.command_output(["pikaur", "-Qua"])
+ return len(updates.splitlines())
+ except self.py3.CommandError as ce:
+ return None if ce.error else 0
def arch_updates(self):
pacman, aur, total, full_text = None, None, None, ""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py3status-3.50/py3status/modules/audiosink.py new/py3status-3.51/py3status/modules/audiosink.py
--- old/py3status-3.50/py3status/modules/audiosink.py 2022-08-25 16:38:50.000000000 +0200
+++ new/py3status-3.51/py3status/modules/audiosink.py 2023-06-18 10:05:11.000000000 +0200
@@ -26,12 +26,14 @@
}
```
+@author Jens Brandt <py3status(a)brandt-george.de>
+@license BSD
+
SAMPLE OUTPUT
{'full_text': 'Dock'}
-{'full_text': 'Int'}
-@author Jens Brandt <py3status(a)brandt-george.de>
-@license BSD
+int
+{'full_text': 'Int'}
"""
import os
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py3status-3.50/py3status/modules/backlight.py new/py3status-3.51/py3status/modules/backlight.py
--- old/py3status-3.50/py3status/modules/backlight.py 2023-02-02 16:30:54.000000000 +0100
+++ new/py3status-3.51/py3status/modules/backlight.py 2023-06-27 09:04:06.000000000 +0200
@@ -35,7 +35,7 @@
Requires: one of
xbacklight: need for changing brightness, not detection
light: program to easily change brightness on backlight-controllers
- pydbus + logind v243: logind to change brightness without X
+ dbus-python + logind v243: logind to change brightness without X
@author Tjaart van der Walt (github:tjaartvdwalt), J��r��my Rosen (github:boucman)
@license BSD
@@ -46,10 +46,7 @@
from pathlib import Path
-try:
- from pydbus import SystemBus
-except ImportError:
- pass
+import dbus
STRING_NOT_AVAILABLE = "no available device"
@@ -103,9 +100,9 @@
def post_config_hook(self):
try:
- self._logind_proxy = SystemBus().get(
- bus_name="org.freedesktop.login1",
- object_path="/org/freedesktop/login1/session/self",
+ bus = dbus.SystemBus()
+ self._logind_proxy = bus.get_object(
+ "org.freedesktop.login1", "/org/freedesktop/login1/session/self"
)
except NameError:
self._logind_proxy = None
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py3status-3.50/py3status/modules/bluetooth.py new/py3status-3.51/py3status/modules/bluetooth.py
--- old/py3status-3.50/py3status/modules/bluetooth.py 2023-01-10 13:36:52.000000000 +0100
+++ new/py3status-3.51/py3status/modules/bluetooth.py 2023-05-30 19:01:27.000000000 +0200
@@ -39,6 +39,7 @@
{address} eg, 00:00:00:00:00:00
{addresstype} eg, public
{alias} eg, MSFT Mouse
+ {battery} eg, 95
{class} eg, 1234
{connected} eg, False
{icon} eg, input-mouse
@@ -130,7 +131,8 @@
for name, match in self.names_and_matches:
if match in interface_keys:
interface = {k.lower(): v for k, v in interfaces[match].items()}
- interface.update({"path": path, "uuids": []})
+ battery = interfaces.get("org.bluez.Battery1", {}).get("Percentage")
+ interface.update({"path": path, "uuids": [], "battery": battery})
temporary.setdefault(name, []).append(interface)
break
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py3status-3.50/py3status/modules/clock.py new/py3status-3.51/py3status/modules/clock.py
--- old/py3status-3.50/py3status/modules/clock.py 2022-10-27 10:35:49.000000000 +0200
+++ new/py3status-3.51/py3status/modules/clock.py 2023-06-18 11:23:36.000000000 +0200
@@ -189,10 +189,7 @@
"""
# special Local timezone
if tz == "Local":
- try:
- return zoneinfo.ZoneInfo("localtime")
- except zoneinfo.ZoneInfoNotFoundError:
- return "?"
+ return None
# get the timezone
try:
zone = zoneinfo.ZoneInfo(tz)
@@ -251,7 +248,12 @@
idx = int(h / self.block_hours * len(self.blocks))
icon = self.blocks[idx]
- timezone = zone.key
+ # special case for handling Local timezone
+ if zone is None:
+ t = t.astimezone()
+ timezone = t.tzname()
+ else:
+ timezone = zone.key
tzname = timezone.split("/")[-1].replace("_", " ")
if self.multiple_tz:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py3status-3.50/py3status/modules/diskdata.py new/py3status-3.51/py3status/modules/diskdata.py
--- old/py3status-3.50/py3status/modules/diskdata.py 2022-10-02 16:25:48.000000000 +0200
+++ new/py3status-3.51/py3status/modules/diskdata.py 2023-06-18 11:28:19.000000000 +0200
@@ -6,7 +6,7 @@
disk: show stats for disk or partition, i.e. `sda1`. None for all disks.
(default None)
format: display format for this module.
- (default "{disk}: {used_percent}% ({total})")
+ (default "{disk}: {used_percent}%[ ({total})]")
format_rate: display format for rates value
(default "[\?min_length=11 {value:.1f} {unit}]")
format_space: display format for disk space values
@@ -65,7 +65,7 @@
# available configuration parameters
cache_timeout = 10
disk = None
- format = "{disk}: {used_percent}% ({total})"
+ format = "{disk}: {used_percent}%[ ({total})]"
format_rate = r"[\?min_length=11 {value:.1f} {unit}]"
format_space = r"[\?min_length=5 {value:.1f}]"
sector_size = 512
@@ -90,8 +90,11 @@
self.init[name] = {"placeholders": placeholders, "keys": match}
if self.init["diskstats"]:
- self.last_diskstats = self._get_diskstats(self.disk)
- self.last_time = time.monotonic()
+ try:
+ self.last_diskstats = self._get_diskstats(self.disk)
+ self.last_time = time.monotonic()
+ except Exception:
+ self.init["diskstats"] = {}
self.thresholds_init = self.py3.get_color_names_list(self.format)
@@ -102,12 +105,16 @@
df_usages = ce.output
total, used, free, devs = 0, 0, 0, []
- if disk and not disk.startswith("/dev/"):
- disk = "/dev/" + disk
+ disk_dev = None
+
+ if disk:
+ disk_dev = "/dev/" + disk
for line in df_usages.splitlines():
- if (disk and line.startswith(disk)) or (
- disk is None and line.startswith("/dev/")
+ if (
+ (disk and line.startswith(disk))
+ or (disk_dev and line.startswith(disk_dev))
+ or (disk is None and line.startswith("/dev/"))
):
data = line.split()
if data[0] in devs:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py3status-3.50/py3status/modules/mpd_status.py new/py3status-3.51/py3status/modules/mpd_status.py
--- old/py3status-3.50/py3status/modules/mpd_status.py 2022-10-02 16:25:48.000000000 +0200
+++ new/py3status-3.51/py3status/modules/mpd_status.py 2023-06-18 11:20:01.000000000 +0200
@@ -256,8 +256,7 @@
text = "Failed to authenticate to mpd!"
self._get_mpd(disconnect=True)
- state = None
- self.current_status = (text, status)
+ self.current_status = (text, None)
return
finally:
self.py3.update() # to propagate error message
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py3status-3.50/py3status/modules/ns_checker.py new/py3status-3.51/py3status/modules/ns_checker.py
--- old/py3status-3.50/py3status/modules/ns_checker.py 2022-10-02 16:25:48.000000000 +0200
+++ new/py3status-3.51/py3status/modules/ns_checker.py 2023-06-27 09:04:06.000000000 +0200
@@ -72,7 +72,7 @@
if self.resolvers:
my_resolver.nameservers = self.resolvers
- my_ns = my_resolver.query(self.domain, "NS")
+ my_ns = my_resolver.resolve(self.domain, "NS")
# Insert each NS ip address in nameservers
for ns in my_ns:
@@ -84,7 +84,7 @@
for ns in nameservers:
my_resolver.nameservers = [ns]
try:
- my_resolver.query(self.domain, "A")
+ my_resolver.resolve(self.domain, "A")
count_ok += 1
except: # noqa e722
count_nok += 1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py3status-3.50/py3status/modules/systemd.py new/py3status-3.51/py3status/modules/systemd.py
--- old/py3status-3.50/py3status/modules/systemd.py 2022-10-02 16:25:48.000000000 +0200
+++ new/py3status-3.51/py3status/modules/systemd.py 2023-06-27 09:04:06.000000000 +0200
@@ -25,7 +25,8 @@
color_degraded: unit not-found
Requires:
- pydbus: pythonic dbus library
+ dbus-python: to interact with dbus
+ pygobject: which in turn requires libcairo2-dev, libgirepository1.0-dev
Examples:
```
@@ -51,7 +52,7 @@
{'color': '#FFFF00', 'full_text': 'sshd.service: not-found'}
"""
-from pydbus import SessionBus, SystemBus
+import dbus
class Py3status:
@@ -67,16 +68,30 @@
def post_config_hook(self):
if self.user:
- bus = SessionBus()
+ bus = dbus.SessionBus()
else:
- bus = SystemBus()
- systemd = bus.get("org.freedesktop.systemd1")
- self.systemd_unit = bus.get(".systemd1", systemd.LoadUnit(self.unit))
+ bus = dbus.SystemBus()
+ systemd = bus.get_object(
+ "org.freedesktop.systemd1", "/org/freedesktop/systemd1"
+ )
+ systemd_unit = systemd.LoadUnit(
+ self.unit, dbus_interface="org.freedesktop.systemd1.Manager"
+ )
+ unit_proxy = bus.get_object("org.freedesktop.systemd1", systemd_unit)
+ self.systemd_interface = dbus.Interface(
+ unit_proxy, "org.freedesktop.DBus.Properties"
+ )
def systemd(self):
- status = self.systemd_unit.Get("org.freedesktop.systemd1.Unit", "ActiveState")
- exists = self.systemd_unit.Get("org.freedesktop.systemd1.Unit", "LoadState")
- state = self.systemd_unit.Get("org.freedesktop.systemd1.Unit", "UnitFileState")
+ status = self.systemd_interface.Get(
+ "org.freedesktop.systemd1.Unit", "ActiveState"
+ )
+ exists = self.systemd_interface.Get(
+ "org.freedesktop.systemd1.Unit", "LoadState"
+ )
+ state = self.systemd_interface.Get(
+ "org.freedesktop.systemd1.Unit", "UnitFileState"
+ )
if exists == "not-found":
color = self.py3.COLOR_DEGRADED
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py3status-3.50/py3status/modules/vpn_status.py new/py3status-3.51/py3status/modules/vpn_status.py
--- old/py3status-3.50/py3status/modules/vpn_status.py 2023-04-17 18:41:49.000000000 +0200
+++ new/py3status-3.51/py3status/modules/vpn_status.py 2023-06-27 09:04:06.000000000 +0200
@@ -22,7 +22,8 @@
color_good: VPN down
Requires:
- pydbus: Which further requires PyGi. Check your distribution's repositories.
+ dbus-python: to interact with dbus
+ pygobject: which in turn requires libcairo2-dev, libgirepository1.0-dev
@author Nathan Smith <nathan AT praisetopia.org>
@@ -33,12 +34,14 @@
{'color': '#FF0000', 'full_text': u'VPN: no'}
"""
-from pydbus import SystemBus
-from gi.repository import GObject
+from dbus.mainloop.glib import DBusGMainLoop
+from gi.repository import GLib
from threading import Thread
from time import sleep
from pathlib import Path
+import dbus
+
class Py3status:
""" """
@@ -66,15 +69,25 @@
def _start_loop(self):
"""Starts main event handler loop, run in handler thread t."""
# Create our main loop, get our bus, and add the signal handler
- loop = GObject.MainLoop()
- bus = SystemBus()
- manager = bus.get(".NetworkManager")
- manager.onPropertiesChanged = self._vpn_signal_handler
+ loop = DBusGMainLoop(set_as_default=True)
+ dbus.set_default_main_loop(loop)
- # initialize active connections, some of them might be VPNs
- self.active = manager.ActiveConnections
+ bus = dbus.SystemBus()
+ bus.add_signal_receiver(
+ self._vpn_signal_handler, path="/org/freedesktop/NetworkManager"
+ )
+ # Initialize the already active connections
+ manager = bus.get_object(
+ "org.freedesktop.NetworkManager",
+ "/org/freedesktop/NetworkManager",
+ )
+ interface = dbus.Interface(manager, "org.freedesktop.DBus.Properties")
+ self.active = interface.Get(
+ "org.freedesktop.NetworkManager", "ActiveConnections"
+ )
- # Loop forever
+ # Loop forever to listen for events
+ loop = GLib.MainLoop()
loop.run()
def _vpn_signal_handler(self, *args):
@@ -97,12 +110,23 @@
# Sleep for a bit to let any changes in state finish
sleep(0.3)
# Check if any active connections are a VPN
- bus = SystemBus()
+ bus = dbus.SystemBus()
ids = []
for name in self.active:
- conn = bus.get(".NetworkManager", name)
- if conn.Vpn or conn.Type == "wireguard":
- ids.append(conn.Id)
+ manager = bus.get_object(
+ "org.freedesktop.NetworkManager",
+ name,
+ )
+ interface = dbus.Interface(manager, "org.freedesktop.DBus.Properties")
+ try:
+ properties = interface.GetAll(
+ "org.freedesktop.NetworkManager.Connection.Active"
+ )
+ if properties.get("Vpn") or properties.get("Type") == "wireguard":
+ ids.append(properties.get("Id"))
+ except dbus.DBusException:
+ # the connection id has disappeared
+ pass
# No active VPN
return ids
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py3status-3.50/py3status/output.py new/py3status-3.51/py3status/output.py
--- old/py3status-3.50/py3status/output.py 1970-01-01 01:00:00.000000000 +0100
+++ new/py3status-3.51/py3status/output.py 2023-06-18 11:22:17.000000000 +0200
@@ -0,0 +1,269 @@
+import sys
+from json import dumps
+
+
+class OutputFormat:
+ """
+ A base class for formatting the output of py3status for various
+ different consumers
+ """
+
+ @classmethod
+ def instance_for(cls, output_format):
+ """
+ A factory for OutputFormat objects
+ """
+ supported_output_formats = {
+ "dzen2": Dzen2OutputFormat,
+ "i3bar": I3barOutputFormat,
+ "lemonbar": LemonbarOutputFormat,
+ "none": NoneOutputFormat,
+ "term": TermOutputFormat,
+ "tmux": TmuxOutputFormat,
+ "xmobar": XmobarOutputFormat,
+ }
+
+ if output_format in supported_output_formats:
+ return supported_output_formats[output_format]()
+ raise ValueError(
+ f"Invalid `output_format` attribute, should be one of `{'`, `'.join(supported_output_formats.keys())}`. Got `{output_format}`."
+ )
+
+ def __init__(self):
+ """
+ Constructor
+ """
+ self.separator = None
+
+ def format_separator(self, separator, color):
+ """
+ Produce a formatted and colorized separator for the output format,
+ if the output_format requires it, and None otherwise.
+ """
+ pass
+
+ def format(self, outputs):
+ """
+ Produce a line of output from a list of module output dictionaries
+ """
+ raise NotImplementedError()
+
+ def write_header(self, header):
+ """
+ Write the header to output, if supported by the output_format
+ """
+ raise NotImplementedError()
+
+ def write_line(self, output):
+ """
+ Write a line of py3status containing the given module output
+ """
+ raise NotImplementedError()
+
+
+class I3barOutputFormat(OutputFormat):
+ """
+ Format the output for consumption by i3bar
+ """
+
+ def format(self, outputs):
+ """
+ Produce a line of output from a list of module outputs for
+ consumption by i3bar. separator is ignored.
+ """
+ return ",".join(dumps(x) for x in outputs)
+
+ def write_header(self, header):
+ """
+ Write the i3bar header to output
+ """
+ write = sys.__stdout__.write
+ flush = sys.__stdout__.flush
+
+ write(dumps(header))
+ write("\n[[]\n")
+ flush()
+
+ def write_line(self, output):
+ """
+ Write a line of py3status output for consumption by i3bar
+ """
+ write = sys.__stdout__.write
+ flush = sys.__stdout__.flush
+
+ out = ",".join(x for x in output if x)
+ write(f",[{out}]\n")
+ flush()
+
+
+class SeparatedOutputFormat(OutputFormat):
+ """
+ Base class for formatting output as an enriched string containing
+ separators
+ """
+
+ def begin_color(self, color):
+ """
+ Produce a format string for a colorized output for the output format
+ """
+ raise NotImplementedError()
+
+ def end_color(self):
+ """
+ Produce a format string for ending a colorized output for the output format
+ """
+ raise NotImplementedError()
+
+ def end_color_quick(self):
+ """
+ Produce a format string for ending a colorized output, but only
+ if it is syntactically required. (for example because a new color
+ declaration immediately follows)
+ """
+ return self.end_color()
+
+ def get_default_separator(self):
+ """
+ Produce the default separator for the output format
+ """
+ return " | "
+
+ def format_separator(self, separator, color):
+ """
+ Format the given separator with the given color
+ """
+ if separator is None:
+ separator = self.get_default_separator()
+ if color is not None:
+ separator = self.begin_color(color) + separator + self.end_color()
+ self.separator = separator
+
+ def format_color(self, block):
+ """
+ Format the given block of module output
+ """
+ full_text = block["full_text"]
+ if "color" in block:
+ full_text = (
+ self.begin_color(block["color"]) + full_text + self.end_color_quick()
+ )
+ return full_text
+
+ def format(self, outputs):
+ """
+ Produce a line of output from a list of module outputs by
+ concatenating individual blocks of formatted output
+ """
+ return "".join(self.format_color(x) for x in outputs)
+
+ def write_header(self, header):
+ """
+ Not supported in separated output formats
+ """
+ pass
+
+ def write_line(self, output):
+ """
+ Write a line of py3status output separated by the formatted separator
+ """
+ write = sys.__stdout__.write
+ flush = sys.__stdout__.flush
+
+ out = self.separator.join(x for x in output if x)
+ write(f"{out}\n")
+ flush()
+
+
+class Dzen2OutputFormat(SeparatedOutputFormat):
+ """
+ Format the output for consumption by dzen2
+ """
+
+ def begin_color(self, color):
+ return f"^fg({color})"
+
+ def end_color(self):
+ return "^fg()"
+
+ def end_color_quick(self):
+ return ""
+
+ def get_default_separator(self):
+ """
+ Produce the default separator for the output format
+ """
+ return "^p(5;-2)^ro(2)^p()^p(5)"
+
+
+class XmobarOutputFormat(SeparatedOutputFormat):
+ """
+ Format the output for consumption by xmobar
+ """
+
+ def begin_color(self, color):
+ return f"<fc={color}>"
+
+ def end_color(self):
+ return "</fc>"
+
+
+class LemonbarOutputFormat(SeparatedOutputFormat):
+ """
+ Format the output for consumption by lemonbar
+ """
+
+ def begin_color(self, color):
+ return f"%{{F{color}}}"
+
+ def end_color(self):
+ return "%{F-}"
+
+ def end_color_quick(self):
+ return ""
+
+
+class TmuxOutputFormat(SeparatedOutputFormat):
+ """
+ Format the output for consumption by tmux
+ """
+
+ def begin_color(self, color):
+ return f"#[fg={color.lower()}]"
+
+ def end_color(self):
+ return "#[default]"
+
+ def end_color_quick(self):
+ return ""
+
+
+class TermOutputFormat(SeparatedOutputFormat):
+ """
+ Format the output using terminal escapes
+ """
+
+ def begin_color(self, color):
+ col = int(color[1:], 16)
+ r = (col & (0xFF << 0)) // 0x80
+ g = (col & (0xFF << 8)) // 0x8000
+ b = (col & (0xFF << 16)) // 0x800000
+ col = (r << 2) | (g << 1) | b
+ return f"\033[3{col};1m"
+
+ def end_color(self):
+ return "\033[0m"
+
+ def end_color_quick(self):
+ return ""
+
+
+class NoneOutputFormat(SeparatedOutputFormat):
+ """
+ Format the output without colors
+ """
+
+ def begin_color(self, color):
+ return ""
+
+ def end_color(self):
+ return ""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py3status-3.50/py3status/screenshots.py new/py3status-3.51/py3status/screenshots.py
--- old/py3status-3.50/py3status/screenshots.py 2022-10-02 16:25:48.000000000 +0200
+++ new/py3status-3.51/py3status/screenshots.py 2023-06-05 13:45:55.000000000 +0200
@@ -148,7 +148,7 @@
color = COLOR_URGENT
background = COLOR_URGENT_BG
- size = font.getsize(text)
+ size = font.getbbox(text)[-2:]
if background:
d.rectangle(
@@ -167,7 +167,7 @@
d_text = ImageDraw.Draw(txt)
d_text.text((0, 0), text, font=font, fill=color)
# resize to actual size wanted and add to image
- txt = txt.resize((size[0] // SCALE, size[1] // SCALE), Image.ANTIALIAS)
+ txt = txt.resize((size[0] // SCALE, size[1] // SCALE), Image.LANCZOS)
img.paste(txt, (WIDTH - x, TOP_BAR_HEIGHT + PADDING))
if separator:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py3status-3.50/py3status/version.py new/py3status-3.51/py3status/version.py
--- old/py3status-3.50/py3status/version.py 2023-04-17 18:43:02.000000000 +0200
+++ new/py3status-3.51/py3status/version.py 2023-06-27 09:28:29.000000000 +0200
@@ -1 +1 @@
-version = "3.50"
+version = "3.51"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py3status-3.50/py3status.egg-info/PKG-INFO new/py3status-3.51/py3status.egg-info/PKG-INFO
--- old/py3status-3.50/py3status.egg-info/PKG-INFO 2023-04-17 18:44:18.000000000 +0200
+++ new/py3status-3.51/py3status.egg-info/PKG-INFO 2023-06-27 10:33:46.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: py3status
-Version: 3.50
+Version: 3.51
Summary: py3status: an extensible i3status wrapper written in python
Home-page: https://github.com/ultrabug/py3status
Author: Ultrabug
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/py3status-3.50/py3status.egg-info/SOURCES.txt new/py3status-3.51/py3status.egg-info/SOURCES.txt
--- old/py3status-3.50/py3status.egg-info/SOURCES.txt 2023-04-17 18:44:18.000000000 +0200
+++ new/py3status-3.51/py3status.egg-info/SOURCES.txt 2023-06-27 10:33:46.000000000 +0200
@@ -30,6 +30,7 @@
py3status/i3status.py
py3status/module.py
py3status/module_test.py
+py3status/output.py
py3status/parse_config.py
py3status/private.py
py3status/profiling.py
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-imageio for openSUSE:Factory checked in at 2023-06-30 20:00:07
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-imageio (Old)
and /work/SRC/openSUSE:Factory/.python-imageio.new.13546 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-imageio"
Fri Jun 30 20:00:07 2023 rev:13 rq:1096162 version:2.31.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-imageio/python-imageio.changes 2022-09-29 18:14:57.439443053 +0200
+++ /work/SRC/openSUSE:Factory/.python-imageio.new.13546/python-imageio.changes 2023-06-30 20:00:32.206237488 +0200
@@ -1,0 +2,24 @@
+Fri Jun 30 14:59:22 UTC 2023 - Matej Cepl <mcepl(a)suse.com>
+
+- Clean up SPEC file.
+
+-------------------------------------------------------------------
+Fri Jun 30 14:22:20 UTC 2023 - Mark��ta Machov�� <mmachova(a)suse.com>
+
+- update to 2.31.1
+ * Add support for Python 3.11
+ * Tifffile v3 support
+ * Add audio support for ffmpeg writer
+ * small improvements to pyav
+ * Consistently apply color palettes by default
+ * Add n_images to ImageProperties
+ * Expose v3 plugins via v2 API
+ * Decode gray 16-bit PNG as uint16 (not int32) if pillow allows
+
+-------------------------------------------------------------------
+Sun Oct 16 17:47:59 UTC 2022 - Dirk M��ller <dmueller(a)suse.com>
+
+- update to 2.22.1:
+ * Raise ImportError when iio-ffmpeg is missing
+
+-------------------------------------------------------------------
Old:
----
imageio-2.21.2.tar.gz
python-imageio-rpmlintrc
New:
----
imageio-2.31.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-imageio.spec ++++++
--- /var/tmp/diff_new_pack.3f2Q7N/_old 2023-06-30 20:00:32.874241462 +0200
+++ /var/tmp/diff_new_pack.3f2Q7N/_new 2023-06-30 20:00:32.882241510 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-imageio
#
-# 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
@@ -16,53 +16,52 @@
#
-%{?!python_module:%define python_module() python3-%{**}}
%define skip_python2 1
%bcond_with test_extras
Name: python-imageio
-Version: 2.21.2
+Version: 2.31.1
Release: 0
Summary: Python library for reading and writing image, video, and related formats
License: BSD-2-Clause
URL: https://imageio.github.io/
Source0: https://files.pythonhosted.org/packages/source/i/imageio/imageio-%{version}…
-Source1: python-imageio-rpmlintrc
BuildRequires: %{python_module Pillow >= 8.3.2}
BuildRequires: %{python_module base >= 3.7}
BuildRequires: %{python_module numpy >= 1.20.0}
-BuildRequires: %{python_module setuptools}
+BuildRequires: %{python_module pip}
+BuildRequires: %{python_module wheel}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
Requires: python-Pillow >= 8.3.2
Requires: python-numpy >= 1.20.0
+Requires(post): update-alternatives
+Requires(postun):update-alternatives
+Recommends: libfreeimageplus3
Recommends: python-imageio-ffmpeg
+Recommends: python-psutil
Suggests: python-astropy
-Suggests: python-tifffile
+Suggests: python-av
# not in openSUSE (yet)
Suggests: python-simpleitk
-# alternative is not singlespec
-Suggests: python3-itk
+Suggests: python-tifffile
+BuildArch: noarch
%if "%{python_flavor}" == "python3" || "%{python_provides}" == "python3"
# GDAL is not (yet) singlespec
Suggests: python3-GDAL
%endif
-Requires(post): update-alternatives
-Requires(postun):update-alternatives
-Recommends: libfreeimageplus3
# SECTION test requirements
BuildRequires: %{python_module fsspec}
+BuildRequires: %{python_module imageio-ffmpeg}
BuildRequires: %{python_module pytest}
BuildRequires: libglvnd-devel
%if %{with test_extras}
BuildRequires: %{python_module astropy}
-BuildRequires: %{python_module imageio-ffmpeg}
+BuildRequires: %{python_module av}
BuildRequires: %{python_module psutil}
BuildRequires: %{python_module tifffile}
BuildRequires: python3-GDAL
-# python3-itk does not work on 32-bit, don't bother testing that
%endif
# /SECTION
-BuildArch: noarch
%python_subpackages
%description
@@ -81,11 +80,11 @@
%build
export IMAGEIO_NO_INTERNET=1
-%python_build
+%pyproject_wheel
%install
export IMAGEIO_NO_INTERNET=1
-%python_install
+%pyproject_install
%python_clone -a %{buildroot}%{_bindir}/imageio_remove_bin
%python_clone -a %{buildroot}%{_bindir}/imageio_download_bin
%python_expand %fdupes %{buildroot}%{$python_sitelib}
@@ -93,7 +92,7 @@
%check
export IMAGEIO_NO_INTERNET=1
# plain openSUSE does not have the right codecs to test this ffmpeg
-donttest="test_ffmpeg"
+donttest="test_ffmpeg or test_bayer_write"
# unmarked online tests
donttest="$donttest or test_freeimage"
%pytest -ra -k "not ($donttest)" -m "not needs_internet"
++++++ imageio-2.21.2.tar.gz -> imageio-2.31.1.tar.gz ++++++
++++ 9095 lines of diff (skipped)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package tkimg for openSUSE:Factory checked in at 2023-06-30 20:00:06
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/tkimg (Old)
and /work/SRC/openSUSE:Factory/.tkimg.new.13546 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "tkimg"
Fri Jun 30 20:00:06 2023 rev:22 rq:1096128 version:1.4.14
Changes:
--------
--- /work/SRC/openSUSE:Factory/tkimg/tkimg.changes 2023-04-27 20:00:59.585946198 +0200
+++ /work/SRC/openSUSE:Factory/.tkimg.new.13546/tkimg.changes 2023-06-30 20:00:31.218231612 +0200
@@ -1,0 +2,11 @@
+Fri Jun 30 11:30:03 UTC 2023 - Reinhard Max <max(a)suse.com>
+
+- Update to version 1.4.14
+ * Added support for reading RAW images with 32-bit integer and
+ 64-bit double pixel values.
+ * Fixed compilation of libpng for ARM Neon.
+ Obsoletes fix-aarch64-neon.patch .
+ * Updated external libraries: JPEG 9e, PNG 1.6.38, TIFF 4.4.0,
+ ZLIB 1.2.13.
+
+-------------------------------------------------------------------
Old:
----
Img-1.4.13-Source.tar.gz
fix-aarch64-neon.patch
New:
----
Img-1.4.14-Source.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ tkimg.spec ++++++
--- /var/tmp/diff_new_pack.K41eX1/_old 2023-06-30 20:00:32.038236489 +0200
+++ /var/tmp/diff_new_pack.K41eX1/_new 2023-06-30 20:00:32.042236513 +0200
@@ -17,7 +17,7 @@
Name: tkimg
-Version: 1.4.13
+Version: 1.4.14
Release: 0
Summary: More Image Formats for Tk
Group: Development/Libraries/Tcl
@@ -25,8 +25,6 @@
URL: https://sourceforge.net/projects/tkimg
Source0: https://sourceforge.net/projects/tkimg/files/tkimg/1.4/tkimg%%20%{version}/…
Patch0: tests-add-destdir-tcllibpath.patch
-# PATCH-FIX-UPSTREAM fix-aarch64-neon.patch -- https://sourceforge.net/p/tkimg/patches/13/
-Patch1: fix-aarch64-neon.patch
BuildRequires: dos2unix
BuildRequires: tcllib
BuildRequires: tk-devel
@@ -48,7 +46,7 @@
Files needed to compile/link C code against tkimg.
%prep
-%autosetup -p1 -n Img-%{version}
+%autosetup -p1 -n Img-%{version}-Source
# Source archive is likly created on Windows, so fix some issues
# 1. Fix file permissions: Executable bit is set on every file, fix that
find . -type f -not -name configure -exec chmod 0644 \{\} +
++++++ Img-1.4.13-Source.tar.gz -> Img-1.4.14-Source.tar.gz ++++++
/work/SRC/openSUSE:Factory/tkimg/Img-1.4.13-Source.tar.gz /work/SRC/openSUSE:Factory/.tkimg.new.13546/Img-1.4.14-Source.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 deepin-start for openSUSE:Factory checked in at 2023-06-30 20:00:01
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/deepin-start (Old)
and /work/SRC/openSUSE:Factory/.deepin-start.new.13546 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "deepin-start"
Fri Jun 30 20:00:01 2023 rev:10 rq:1096140 version:5.9.49
Changes:
--------
--- /work/SRC/openSUSE:Factory/deepin-start/deepin-start.changes 2022-10-28 19:30:30.482925513 +0200
+++ /work/SRC/openSUSE:Factory/.deepin-start.new.13546/deepin-start.changes 2023-06-30 20:00:29.470221215 +0200
@@ -1,0 +2,5 @@
+Fri Jun 30 13:15:08 UTC 2023 - Hillwood Yang <hillwood(a)opensuse.org>
+
+- Update workaround-dde-kwin-crash.patch, use deepin-kwin
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ deepin-start.spec ++++++
--- /var/tmp/diff_new_pack.b8QrYO/_old 2023-06-30 20:00:30.742228781 +0200
+++ /var/tmp/diff_new_pack.b8QrYO/_new 2023-06-30 20:00:30.746228805 +0200
@@ -1,7 +1,7 @@
#
# spec file for package deepin-start
#
-# 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
++++++ workaround-dde-kwin-crash.patch ++++++
--- /var/tmp/diff_new_pack.b8QrYO/_old 2023-06-30 20:00:30.810229185 +0200
+++ /var/tmp/diff_new_pack.b8QrYO/_new 2023-06-30 20:00:30.818229233 +0200
@@ -6,13 +6,13 @@
func shouldUseDDEKWin() bool {
- _, err := os.Stat("/usr/bin/kwin_no_scale")
-+ _, err := os.Stat("/usr/bin/kwin_x11")
++ _, err := os.Stat("/usr/bin/deepin-kwin_x11")
return err == nil
}
const (
- cmdKWin = "/usr/bin/kwin_no_scale"
-+ cmdKWin = "/usr/bin/kwin_x11"
++ cmdKWin = "/usr/bin/deepin-kwin_x11"
cmdDdeSessionDaemon = "/usr/lib/deepin-daemon/dde-session-daemon"
cmdDdeDock = "/usr/bin/dde-dock"
cmdDdeDesktop = "/usr/bin/dde-desktop"
@@ -24,7 +24,7 @@
t.Run("Test is should use DDE KWin", func(t *testing.T) {
should := shouldUseDDEKWin()
- exist := Exist("/usr/bin/kwin_no_scale")
-+ exist := Exist("/usr/bin/kwin_x11")
++ exist := Exist("/usr/bin/deepin-kwin_x11")
assert.Equal(t, exist, should)
})
}
@@ -36,7 +36,7 @@
const (
kWinServiceName = "org.kde.KWin"
- ddeKWinCommand = "kwin_no_scale"
-+ ddeKWinCommand = "kwin_x11"
++ ddeKWinCommand = "deepin-kwin_x11"
)
func isDdeKWinRunning() (bool, error) {
@@ -48,7 +48,7 @@
func isUseKwin() bool {
- _, err := os.Stat("/usr/bin/kwin_no_scale")
-+ _, err := os.Stat("/usr/bin/kwin_x11")
++ _, err := os.Stat("/usr/bin/deepin-kwin_x11")
return err == nil
}
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package qt5platform-plugins for openSUSE:Factory checked in at 2023-06-30 20:00:00
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/qt5platform-plugins (Old)
and /work/SRC/openSUSE:Factory/.qt5platform-plugins.new.13546 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "qt5platform-plugins"
Fri Jun 30 20:00:00 2023 rev:17 rq:1096137 version:5.6.12
Changes:
--------
--- /work/SRC/openSUSE:Factory/qt5platform-plugins/qt5platform-plugins.changes 2023-06-01 17:20:08.446381030 +0200
+++ /work/SRC/openSUSE:Factory/.qt5platform-plugins.new.13546/qt5platform-plugins.changes 2023-06-30 20:00:28.574215887 +0200
@@ -1,0 +2,10 @@
+Fri Jun 30 13:03:36 UTC 2023 - Hillwood Yang <hillwood(a)opensuse.org>
+
+- Add support-Qt-5_15_10.patch, support Qt 5.15.10
+
+-------------------------------------------------------------------
+Tue Jun 13 03:40:25 UTC 2023 - Hillwood Yang <hillwood(a)opensuse.org>
+
+- Enable wayland
+
+-------------------------------------------------------------------
New:
----
support-Qt-5_15_10.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ qt5platform-plugins.spec ++++++
--- /var/tmp/diff_new_pack.IrDGrW/_old 2023-06-30 20:00:29.302220216 +0200
+++ /var/tmp/diff_new_pack.IrDGrW/_new 2023-06-30 20:00:29.306220240 +0200
@@ -30,6 +30,7 @@
Source0: https://github.com/linuxdeepin/qt5platform-plugins/archive/%{version}/%{nam…
Patch0: support-Qt-5_15_8.patch
Patch1: support-Qt-5_15_9.patch
+Patch2: support-Qt-5_15_10.patch
BuildRequires: libqt5-linguist
BuildRequires: wayland-devel
BuildRequires: libQt5Widgets-private-headers-devel
@@ -79,21 +80,21 @@
The libqt5-dxcbplugin is the Qt platform dxcbp plugin for Deepin Desktop
Environment.
-#%package -n libqt5-dwaylandplugin
-#Summary: A Qt platform integration plugin
-#Group: Development/Libraries/X11
-
-#%description -n libqt5-dwaylandplugin
-#The libqt5-dxcbplugin is the Qt platform dwayland plugin for Deepin Desktop
-#Environment.
-
-#%package -n libqt5-kwayland-shellplugin
-#Summary: A Qt platform integration plugin
-#Group: Development/Libraries/X11
-
-#%description -n libqt5-kwayland-shellplugin
-#The libqt5-dxcbplugin is the Qt platform kwayland-shell plugin for Deepin Desktop
-#Environment.
+%package -n libqt5-dwaylandplugin
+Summary: A Qt platform integration plugin
+Group: Development/Libraries/X11
+
+%description -n libqt5-dwaylandplugin
+The libqt5-dxcbplugin is the Qt platform dwayland plugin for Deepin Desktop
+Environment.
+
+%package -n libqt5-kwayland-shellplugin
+Summary: A Qt platform integration plugin
+Group: Development/Libraries/X11
+
+%description -n libqt5-kwayland-shellplugin
+The libqt5-dxcbplugin is the Qt platform kwayland-shell plugin for Deepin Desktop
+Environment.
%prep
# %setup -q -a1 -n %{name}-%{version}
@@ -113,8 +114,8 @@
PREFIX=%{_prefix} \
LIB_INSTALL_DIR=%{_libdir} \
LIBSUFFIX=%{lib} \
- CONFIG+=DISABLE_WAYLAND \
- QT_XCB_PRIVATE_INCLUDE=%{_builddir}/%{name}-%{version}/xcb/libqt5xcbqpa-dev/$Qt_version
+# CONFIG+=DISABLE_WAYLAND \
+
%make_build
%install
@@ -127,18 +128,18 @@
%dir %{_libdir}/qt5/plugins/platforms/
%{_libdir}/qt5/plugins/platforms/libdxcb.so
-# %files -n libqt5-dwaylandplugin
-# %defattr(-,root,root,-)
-# %doc CHANGELOG.md README.md
-# %license LICENSE
-# %dir %{_libdir}/qt5/plugins/platforms/
-# %{_libdir}/qt5/plugins/platforms/libdwayland.so
-
-# %files -n libqt5-kwayland-shellplugin
-# %defattr(-,root,root,-)
-# %doc CHANGELOG.md README.md
-# %license LICENSE
-# %dir %{_libdir}/qt5/plugins/wayland-shell-integration/
-# %{_libdir}/qt5/plugins/wayland-shell-integration/libkwayland-shell.so
+%files -n libqt5-dwaylandplugin
+%defattr(-,root,root,-)
+%doc CHANGELOG.md README.md
+%license LICENSE
+%dir %{_libdir}/qt5/plugins/platforms/
+%{_libdir}/qt5/plugins/platforms/libdwayland.so
+
+%files -n libqt5-kwayland-shellplugin
+%defattr(-,root,root,-)
+%doc CHANGELOG.md README.md
+%license LICENSE
+%dir %{_libdir}/qt5/plugins/wayland-shell-integration/
+%{_libdir}/qt5/plugins/wayland-shell-integration/libkwayland-shell.so
%changelog
++++++ support-Qt-5_15_10.patch ++++++
++++ 3534 lines (skipped)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package aide for openSUSE:Factory checked in at 2023-06-30 19:59:58
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/aide (Old)
and /work/SRC/openSUSE:Factory/.aide.new.13546 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "aide"
Fri Jun 30 19:59:58 2023 rev:39 rq:1096118 version:0.18.4
Changes:
--------
--- /work/SRC/openSUSE:Factory/aide/aide.changes 2023-06-05 18:08:19.227740548 +0200
+++ /work/SRC/openSUSE:Factory/.aide.new.13546/aide.changes 2023-06-30 20:00:27.270208132 +0200
@@ -1,0 +2,10 @@
+Fri Jun 30 10:05:30 UTC 2023 - Paolo Stivanin <info(a)paolostivanin.com>
+
+- Update to 0.18.4:
+ * Fix handling of extended attributes on symlinks
+ * Add missing ')' to log message
+ * Fix static linking of the aide binary
+ * Don't require database_out for --dry-init
+ * Remove strerror() calls from thread log messages
+
+-------------------------------------------------------------------
Old:
----
aide-0.18.3.tar.gz
aide-0.18.3.tar.gz.asc
New:
----
aide-0.18.4.tar.gz
aide-0.18.4.tar.gz.asc
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ aide.spec ++++++
--- /var/tmp/diff_new_pack.tprBdX/_old 2023-06-30 20:00:28.090213009 +0200
+++ /var/tmp/diff_new_pack.tprBdX/_new 2023-06-30 20:00:28.094213033 +0200
@@ -17,7 +17,7 @@
Name: aide
-Version: 0.18.3
+Version: 0.18.4
Release: 0
Summary: Advanced Intrusion Detection Environment
License: GPL-2.0-or-later
++++++ aide-0.18.3.tar.gz -> aide-0.18.4.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aide-0.18.3/ChangeLog new/aide-0.18.4/ChangeLog
--- old/aide-0.18.3/ChangeLog 2023-05-16 21:20:17.000000000 +0200
+++ new/aide-0.18.4/ChangeLog 2023-06-13 22:18:29.000000000 +0200
@@ -1,3 +1,15 @@
+2023-06-13 Hannes von Haugwitz <hannes(a)vonhaugwitz.com>
+ * Release aide 0.18.4
+
+2023-06-12 Hannes von Haugwitz <hannes(a)vonhaugwitz.com>
+ * Add missing ')' to log message
+ * Fix handling of extended attributes on symlinks (closes: #156)
+
+2023-06-03 Hannes von Haugwitz <hannes(a)vonhaugwitz.com>
+ * Remove strerror() calls from thread log messages
+ * Don't require database_out for --dry-init
+ * Fix static linking of the aide binary
+
2023-05-16 Hannes von Haugwitz <hannes(a)vonhaugwitz.com>
* Release aide 0.18.3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aide-0.18.3/NEWS new/aide-0.18.4/NEWS
--- old/aide-0.18.3/NEWS 2023-05-16 21:20:17.000000000 +0200
+++ new/aide-0.18.4/NEWS 2023-06-13 22:18:34.000000000 +0200
@@ -1,3 +1,10 @@
+Version 0.18.4 (2023-06-13)
+ * Fix handling of extended attributes on symlinks
+ * Add missing ')' to log message
+ * Fix static linking of the aide binary
+ * Don't require database_out for --dry-init
+ * Remove strerror() calls from thread log messages
+
Version 0.18.3 (2023-05-16)
* Handle readlink() errors
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aide-0.18.3/README new/aide-0.18.4/README
--- old/aide-0.18.3/README 2023-05-16 21:20:17.000000000 +0200
+++ new/aide-0.18.4/README 2023-06-13 22:18:34.000000000 +0200
@@ -1,7 +1,7 @@
AIDE - Advanced Intrusion Detection Environment
-------------------------------------------------
- Version 0.18.3
+ Version 0.18.4
This file is free software; as a special exception the author gives
unlimited permission to copy and/or distribute it, with or without
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aide-0.18.3/configure new/aide-0.18.4/configure
--- old/aide-0.18.3/configure 2023-05-16 21:20:35.000000000 +0200
+++ new/aide-0.18.4/configure 2023-06-13 22:18:53.000000000 +0200
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.71 for aide 0.18.3.
+# Generated by GNU Autoconf 2.71 for aide 0.18.4.
#
#
# Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation,
@@ -608,8 +608,8 @@
# Identity of this package.
PACKAGE_NAME='aide'
PACKAGE_TARNAME='aide'
-PACKAGE_VERSION='0.18.3'
-PACKAGE_STRING='aide 0.18.3'
+PACKAGE_VERSION='0.18.4'
+PACKAGE_STRING='aide 0.18.4'
PACKAGE_BUGREPORT=''
PACKAGE_URL=''
@@ -1430,7 +1430,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 aide 0.18.3 to adapt to many kinds of systems.
+\`configure' configures aide 0.18.4 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1502,7 +1502,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of aide 0.18.3:";;
+ short | recursive ) echo "Configuration of aide 0.18.4:";;
esac
cat <<\_ACEOF
@@ -1674,7 +1674,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-aide configure 0.18.3
+aide configure 0.18.4
generated by GNU Autoconf 2.71
Copyright (C) 2021 Free Software Foundation, Inc.
@@ -2219,7 +2219,7 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by aide $as_me 0.18.3, which was
+It was created by aide $as_me 0.18.4, which was
generated by GNU Autoconf 2.71. Invocation command line was
$ $0$ac_configure_args_raw
@@ -3603,7 +3603,7 @@
# Define the identity of the package.
PACKAGE='aide'
- VERSION='0.18.3'
+ VERSION='0.18.4'
printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
@@ -3707,7 +3707,7 @@
fi
-printf "%s\n" "#define AIDEVERSION \"0.18.3\"" >>confdefs.h
+printf "%s\n" "#define AIDEVERSION \"0.18.4\"" >>confdefs.h
@@ -5875,7 +5875,7 @@
esac
fi
-# Check whether static linking has explicitly been disabled
+# Check whether static linking has explicitly been enabled
# Check whether --enable-static was given.
if test ${enable_static+y}
then :
@@ -10722,7 +10722,7 @@
printf "%s\n" "#define AIDECOMPILEOPTIONS \"${compoptionstring}\"" >>confdefs.h
-LDFLAGS="$LDFLAGS $EXTRA_LDFLAGS"
+LDFLAGS="$LDFLAGS $LD_STATIC_FLAG $EXTRA_LDFLAGS"
CFLAGS="$CFLAGS $EXTRA_CFLAGS"
@@ -11300,7 +11300,7 @@
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by aide $as_me 0.18.3, which was
+This file was extended by aide $as_me 0.18.4, which was
generated by GNU Autoconf 2.71. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -11368,7 +11368,7 @@
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config='$ac_cs_config_escaped'
ac_cs_version="\\
-aide config.status 0.18.3
+aide config.status 0.18.4
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/aide-0.18.3/configure.ac new/aide-0.18.4/configure.ac
--- old/aide-0.18.3/configure.ac 2023-04-01 18:25:38.000000000 +0200
+++ new/aide-0.18.4/configure.ac 2023-06-13 20:53:43.000000000 +0200
@@ -165,7 +165,7 @@
esac
fi
-# Check whether static linking has explicitly been disabled
+# Check whether static linking has explicitly been enabled
AC_ARG_ENABLE(static,[ --enable-static enable static linking (might increase the security of aide, see README for details)], [aide_static_choice=$enableval], [aide_static_choice=no])
dnl Borrowed from dbus
@@ -446,7 +446,7 @@
AC_DEFINE_UNQUOTED(AIDECOMPILEOPTIONS, "${compoptionstring}",[Compile-time options displayed in -v output])
dnl Add in the optional compiler features
-LDFLAGS="$LDFLAGS $EXTRA_LDFLAGS"
+LDFLAGS="$LDFLAGS $LD_STATIC_FLAG $EXTRA_LDFLAGS"
CFLAGS="$CFLAGS $EXTRA_CFLAGS"
AC_SUBST(AIDE_DEFS)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aide-0.18.3/doc/aide.1 new/aide-0.18.4/doc/aide.1
--- old/aide-0.18.3/doc/aide.1 2023-05-16 21:20:17.000000000 +0200
+++ new/aide-0.18.4/doc/aide.1 2023-06-13 22:18:34.000000000 +0200
@@ -1,4 +1,4 @@
-.TH AIDE 1 "2023-05-16" "aide v0.18.3" "User Commands"
+.TH AIDE 1 "2023-06-13" "aide v0.18.4" "User Commands"
.SH NAME
\fBaide\fP \- Advanced Intrusion Detection Environment
.SH SYNOPSIS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aide-0.18.3/doc/aide.conf.5 new/aide-0.18.4/doc/aide.conf.5
--- old/aide-0.18.3/doc/aide.conf.5 2023-05-16 21:20:17.000000000 +0200
+++ new/aide-0.18.4/doc/aide.conf.5 2023-06-13 22:18:34.000000000 +0200
@@ -1,4 +1,4 @@
-.TH AIDE.CONF 5 "2023-05-16" "aide v0.18.3" "AIDE"
+.TH AIDE.CONF 5 "2023-06-13" "aide v0.18.4" "AIDE"
.SH NAME
aide.conf - The configuration file for Advanced Intrusion Detection
Environment
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aide-0.18.3/src/aide.c new/aide-0.18.4/src/aide.c
--- old/aide-0.18.3/src/aide.c 2023-04-01 18:25:38.000000000 +0200
+++ new/aide-0.18.4/src/aide.c 2023-06-13 20:52:39.000000000 +0200
@@ -663,7 +663,7 @@
log_msg(LOG_LEVEL_ERROR,_("missing 'database_in', config option is required"));
exit(INVALID_ARGUMENT_ERROR);
}
- if (conf->action&DO_INIT && !(conf->database_out.url)) {
+ if (!(conf->action&DO_DRY_RUN) && conf->action&DO_INIT && !(conf->database_out.url)) {
log_msg(LOG_LEVEL_ERROR,_("missing 'database_out', config option is required"));
exit(INVALID_ARGUMENT_ERROR);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aide-0.18.3/src/db_disk.c new/aide-0.18.4/src/db_disk.c
--- old/aide-0.18.3/src/db_disk.c 2023-04-03 22:06:53.000000000 +0200
+++ new/aide-0.18.4/src/db_disk.c 2023-06-13 20:54:02.000000000 +0200
@@ -158,7 +158,7 @@
if (strcmp(entp->d_name, ".") != 0 && strcmp(entp->d_name, "..") != 0) {
char *entry_full_path = name_construct(full_path, entp->d_name);
bool free_entry_full_path = true;
- log_msg(log_level, "scan_dir: process child directory '%s' (fullpath: '%s'", &entry_full_path[conf->root_prefix_length], entry_full_path);
+ log_msg(log_level, "scan_dir: process child directory '%s' (fullpath: '%s')", &entry_full_path[conf->root_prefix_length], entry_full_path);
if (!get_file_status(entry_full_path, &fs)) {
rule = NULL;
node = NULL;
@@ -265,7 +265,7 @@
if (!dry_run && conf->num_workers) {
if (pthread_create(&add2tree_thread, NULL, &add2tree, NULL) != 0) {
- log_msg(LOG_LEVEL_ERROR, "failed to start add2tree thread: %s", strerror(errno));
+ log_msg(LOG_LEVEL_ERROR, "failed to start add2tree thread");
exit(THREAD_ERROR);
}
}
@@ -276,7 +276,7 @@
#ifdef WITH_PTHREAD
if (!dry_run && conf->num_workers) {
if (pthread_join(add2tree_thread, NULL) != 0) {
- log_msg(LOG_LEVEL_ERROR, "failed to join add2tree thread: %s", strerror(errno));
+ log_msg(LOG_LEVEL_ERROR, "failed to join add2tree thread");
exit(THREAD_ERROR);
}
}
@@ -322,7 +322,7 @@
log_msg(LOG_LEVEL_THREAD, "%10s: wait for file_attrs_worker threads to be finished", whoami);
for (int i = 0 ; i < conf->num_workers ; ++i) {
if (pthread_join(file_attributes_threads[i], NULL) != 0) {
- log_msg(LOG_LEVEL_WARNING, "failed to join file attributes thread #%d: %s", i, strerror(errno));
+ log_msg(LOG_LEVEL_WARNING, "failed to join file attributes thread #%d", i);
}
log_msg(LOG_LEVEL_THREAD, "%10s: file_attrs_worker thread #%d finished", whoami, i);
}
@@ -342,12 +342,12 @@
for (int i = 0 ; i < conf->num_workers ; ++i) {
if (pthread_create(&file_attributes_threads[i], NULL, &file_attrs_worker, (void *) (i+1L)) != 0) {
- log_msg(LOG_LEVEL_ERROR, "failed to start file attributes worker thread #%d: %s", i+1, strerror(errno));
+ log_msg(LOG_LEVEL_ERROR, "failed to start file attributes worker thread #%d", i+1);
return RETFAIL;
}
}
if (pthread_create(&wait_for_workers_thread, NULL, &wait_for_workers, NULL) != 0) {
- log_msg(LOG_LEVEL_ERROR, "failed to start wait_for_workers thread: %s", strerror(errno));
+ log_msg(LOG_LEVEL_ERROR, "failed to start wait_for_workers thread");
return RETFAIL;
}
return RETOK;
@@ -355,7 +355,7 @@
int db_disk_finish_threads() {
if (pthread_join(wait_for_workers_thread, NULL) != 0) {
- log_msg(LOG_LEVEL_ERROR, "failed to join wait_for_workers thread: %s", strerror(errno));
+ log_msg(LOG_LEVEL_ERROR, "failed to join wait_for_workers thread");
return RETFAIL;
}
log_msg(LOG_LEVEL_THREAD, "%10s: wait_for_workers thread finished", whoami_main);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aide-0.18.3/src/do_md.c new/aide-0.18.4/src/do_md.c
--- old/aide-0.18.3/src/do_md.c 2023-04-01 18:25:38.000000000 +0200
+++ new/aide-0.18.4/src/do_md.c 2023-06-13 20:54:07.000000000 +0200
@@ -514,7 +514,7 @@
strncmp(attr, "trusted.", strlen("trusted.")))
goto next_attr; /* only store normal xattrs, and SELinux */
- while (((aret = getxattr(line->fullpath, attr, val, asz)) ==
+ while (((aret = lgetxattr(line->fullpath, attr, val, asz)) ==
-1) && (errno == ERANGE)) {
asz <<= 1;
val = checked_realloc (val, asz);
@@ -523,7 +523,7 @@
if (aret != -1)
xattr_add(xattrs, attr, val, aret);
else if (errno != ENOATTR)
- log_msg(LOG_LEVEL_WARNING, "getxattr failed for %s:%s", line->fullpath, strerror(errno));
+ log_msg(LOG_LEVEL_WARNING, "lgetxattr failed for %s:%s", line->fullpath, strerror(errno));
next_attr:
attr += len + 1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aide-0.18.3/version.m4 new/aide-0.18.4/version.m4
--- old/aide-0.18.3/version.m4 2023-05-16 21:20:32.000000000 +0200
+++ new/aide-0.18.4/version.m4 2023-06-13 22:18:51.000000000 +0200
@@ -1 +1 @@
-m4_define([AIDE_VERSION], [0.18.3])
+m4_define([AIDE_VERSION], [0.18.4])
1
0