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
September 2023
- 1 participants
- 2327 discussions
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-yq for openSUSE:Factory checked in at 2023-09-29 21:14:00
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-yq (Old)
and /work/SRC/openSUSE:Factory/.python-yq.new.28202 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-yq"
Fri Sep 29 21:14:00 2023 rev:15 rq:1114071 version:3.2.3
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-yq/python-yq.changes 2023-07-27 16:53:21.358677868 +0200
+++ /work/SRC/openSUSE:Factory/.python-yq.new.28202/python-yq.changes 2023-09-29 21:15:25.273747837 +0200
@@ -1,0 +2,8 @@
+Thu Sep 28 11:26:17 UTC 2023 - Dirk Müller <dmueller(a)suse.com>
+
+- update to 3.2.3:
+ * test.py: use valid values for jsonargs. Fixes #172
+ * Allow editing toml in place (#171)
+ * Documentation improvements
+
+-------------------------------------------------------------------
Old:
----
yq-3.2.2.tar.gz
New:
----
yq-3.2.3.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-yq.spec ++++++
--- /var/tmp/diff_new_pack.2HeJQG/_old 2023-09-29 21:15:26.237782620 +0200
+++ /var/tmp/diff_new_pack.2HeJQG/_new 2023-09-29 21:15:26.237782620 +0200
@@ -18,7 +18,7 @@
%{?sle15_python_module_pythons}
Name: python-yq
-Version: 3.2.2
+Version: 3.2.3
Release: 0
Summary: Command-line YAML processor - jq wrapper for YAML documents
License: Apache-2.0
++++++ yq-3.2.2.tar.gz -> yq-3.2.3.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yq-3.2.2/Changes.rst new/yq-3.2.3/Changes.rst
--- old/yq-3.2.2/Changes.rst 2023-04-22 23:42:12.000000000 +0200
+++ new/yq-3.2.3/Changes.rst 2023-09-09 23:41:55.000000000 +0200
@@ -1,3 +1,12 @@
+Changes for v3.2.3 (2023-09-09)
+===============================
+
+- test.py: use valid values for jsonargs. Fixes #172
+
+- Allow editing toml in place (#171)
+
+- Documentation improvements
+
Changes for v3.2.2 (2023-04-22)
===============================
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yq-3.2.2/Makefile new/yq-3.2.3/Makefile
--- old/yq-3.2.2/Makefile 2023-04-05 03:34:39.000000000 +0200
+++ new/yq-3.2.3/Makefile 2023-05-07 00:52:15.000000000 +0200
@@ -11,6 +11,7 @@
cd docs; sphinx-quickstart
docs:
+ python -m pip install furo sphinx-copybutton
sphinx-build docs docs/html
install:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yq-3.2.2/PKG-INFO new/yq-3.2.3/PKG-INFO
--- old/yq-3.2.2/PKG-INFO 2023-04-22 23:42:29.521048000 +0200
+++ new/yq-3.2.3/PKG-INFO 2023-09-09 23:42:15.761231400 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: yq
-Version: 3.2.2
+Version: 3.2.3
Summary: Command-line YAML/XML processor - jq wrapper for YAML/XML documents
Home-page: https://github.com/kislyuk/yq
Author: Andrey Kislyuk
@@ -19,8 +19,17 @@
Classifier: Programming Language :: Python :: 3.11
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.6
-Provides-Extra: tests
License-File: LICENSE
+Requires-Dist: PyYAML>=5.3.1
+Requires-Dist: xmltodict>=0.11.0
+Requires-Dist: tomlkit>=0.11.6
+Requires-Dist: argcomplete>=1.8.1
+Provides-Extra: tests
+Requires-Dist: coverage; extra == "tests"
+Requires-Dist: wheel; extra == "tests"
+Requires-Dist: build; extra == "tests"
+Requires-Dist: ruff; extra == "tests"
+Requires-Dist: mypy; extra == "tests"
yq: Command-line YAML/XML/TOML processor - jq wrapper for YAML, XML, TOML documents
===================================================================================
@@ -62,10 +71,11 @@
python -m yq -Y --indentless --in-place '.["current-context"] = "staging-cluster"' ~/.kube/config
-Use the ``--width``/``-w`` option to pass the line wrap width for string literals. All other command line arguments are
-forwarded to ``jq``. ``yq`` forwards the exit code ``jq`` produced, unless there was an error in YAML parsing, in which
-case the exit code is 1. See the `jq manual <https://stedolan.github.io/jq/manual/>`_ for more details on ``jq``
-features and options.
+Use the ``--width``/``-w`` option to pass the line wrap width for string literals. Use
+``--explicit-start``/``--explicit-end`` to emit YAML start/end markers even when processing a single document. All other
+command line arguments are forwarded to ``jq``. ``yq`` forwards the exit code ``jq`` produced, unless there was an error
+in YAML parsing, in which case the exit code is 1. See the `jq manual <https://stedolan.github.io/jq/manual/>`_ for more
+details on ``jq`` features and options.
Because YAML treats JSON as a dialect of YAML, you can use yq to convert JSON to YAML: ``yq -y . < in.json > out.yml``.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yq-3.2.2/README.rst new/yq-3.2.3/README.rst
--- old/yq-3.2.2/README.rst 2023-04-22 23:40:20.000000000 +0200
+++ new/yq-3.2.3/README.rst 2023-09-09 23:39:17.000000000 +0200
@@ -38,10 +38,11 @@
python -m yq -Y --indentless --in-place '.["current-context"] = "staging-cluster"' ~/.kube/config
-Use the ``--width``/``-w`` option to pass the line wrap width for string literals. All other command line arguments are
-forwarded to ``jq``. ``yq`` forwards the exit code ``jq`` produced, unless there was an error in YAML parsing, in which
-case the exit code is 1. See the `jq manual <https://stedolan.github.io/jq/manual/>`_ for more details on ``jq``
-features and options.
+Use the ``--width``/``-w`` option to pass the line wrap width for string literals. Use
+``--explicit-start``/``--explicit-end`` to emit YAML start/end markers even when processing a single document. All other
+command line arguments are forwarded to ``jq``. ``yq`` forwards the exit code ``jq`` produced, unless there was an error
+in YAML parsing, in which case the exit code is 1. See the `jq manual <https://stedolan.github.io/jq/manual/>`_ for more
+details on ``jq`` features and options.
Because YAML treats JSON as a dialect of YAML, you can use yq to convert JSON to YAML: ``yq -y . < in.json > out.yml``.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yq-3.2.2/common.mk new/yq-3.2.3/common.mk
--- old/yq-3.2.2/common.mk 2023-04-05 03:34:39.000000000 +0200
+++ new/yq-3.2.3/common.mk 2023-05-07 00:11:31.000000000 +0200
@@ -30,6 +30,8 @@
if [[ -f Changes.md ]]; then cat $$TAG_MSG <(echo) Changes.md | sponge Changes.md; git add Changes.md; fi; \
if [[ -f Changes.rst ]]; then cat <(pandoc --from markdown --to rst $$TAG_MSG) <(echo) Changes.rst | sponge Changes.rst; git add Changes.rst; fi; \
yq --help > docs/cli-doc.txt; git add docs/cli-doc.txt; \
+ xq --help > docs/cli-doc-xq.txt; git add docs/cli-doc-xq.txt; \
+ tomlq --help > docs/cli-doc-tomlq.txt; git add docs/cli-doc-tomlq.txt; \
git commit -m ${TAG}; \
git tag --sign --annotate --file $$TAG_MSG ${TAG}
git push --follow-tags
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yq-3.2.2/docs/cli-doc-tomlq.txt new/yq-3.2.3/docs/cli-doc-tomlq.txt
--- old/yq-3.2.2/docs/cli-doc-tomlq.txt 1970-01-01 01:00:00.000000000 +0100
+++ new/yq-3.2.3/docs/cli-doc-tomlq.txt 2023-09-09 23:41:55.000000000 +0200
@@ -0,0 +1,64 @@
+usage: tomlq [options] <jq filter> [input file...]
+
+tomlq: Command-line TOML processor - jq wrapper for TOML documents
+
+tomlq transcodes TOML documents to JSON and passes them to jq.
+See https://github.com/kislyuk/tomlq for more information.
+
+positional arguments:
+ jq_filter
+ files
+
+options:
+ -h, --help show this help message and exit
+ --toml-output, -t Transcode jq JSON output back into TOML and emit it
+ --in-place, -i Edit files in place (no backup - use caution)
+ --version show program's version number and exit
+
+jq - commandline JSON processor [version 1.6]
+
+Usage: jq [options] <jq filter> [file...]
+ jq [options] --args <jq filter> [strings...]
+ jq [options] --jsonargs <jq filter> [JSON_TEXTS...]
+
+jq is a tool for processing JSON inputs, applying the given filter to
+its JSON text inputs and producing the filter's results as JSON on
+standard output.
+
+The simplest filter is ., which copies jq's input to its output
+unmodified (except for formatting, but note that IEEE754 is used
+for number representation internally, with all that that implies).
+
+For more advanced filters see the jq(1) manpage ("man jq")
+and/or https://stedolan.github.io/jq
+
+Example:
+
+ $ echo '{"foo": 0}' | jq .
+ {
+ "foo": 0
+ }
+
+Some of the options include:
+ -c compact instead of pretty-printed output;
+ -n use `null` as the single input value;
+ -e set the exit status code based on the output;
+ -s read (slurp) all inputs into an array; apply filter to it;
+ -r output raw strings, not JSON texts;
+ -R read raw strings, not JSON texts;
+ -C colorize JSON;
+ -M monochrome (don't colorize JSON);
+ -S sort keys of objects on output;
+ --tab use tabs for indentation;
+ --arg a v set variable $a to value <v>;
+ --argjson a v set variable $a to JSON value <v>;
+ --slurpfile a f set variable $a to an array of JSON texts read from <f>;
+ --rawfile a f set variable $a to a string consisting of the contents of <f>;
+ --args remaining arguments are string arguments, not files;
+ --jsonargs remaining arguments are JSON arguments, not files;
+ -- terminates argument processing;
+
+Named arguments are also available as $ARGS.named[], while
+positional arguments are available as $ARGS.positional[].
+
+See the manpage for more options.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yq-3.2.2/docs/cli-doc-xq.txt new/yq-3.2.3/docs/cli-doc-xq.txt
--- old/yq-3.2.2/docs/cli-doc-xq.txt 1970-01-01 01:00:00.000000000 +0100
+++ new/yq-3.2.3/docs/cli-doc-xq.txt 2023-09-09 23:41:55.000000000 +0200
@@ -0,0 +1,70 @@
+usage: xq [options] <jq filter> [input file...]
+ [--version]
+ [jq_filter] [files ...]
+
+xq: Command-line XML processor - jq wrapper for XML documents
+
+xq transcodes XML documents to JSON and passes them to jq.
+See https://github.com/kislyuk/xq for more information.
+
+positional arguments:
+ jq_filter
+ files
+
+options:
+ -h, --help show this help message and exit
+ --xml-output, -x Transcode jq JSON output back into XML and emit it
+ --xml-item-depth 123 Specify depth of items to emit (default 0; use a positive integer to stream large docs)
+ --xml-dtd Preserve XML Document Type Definition (disables streaming of multiple docs)
+ --xml-root XML_ROOT When transcoding back to XML, envelope the output in an element with this name
+ --xml-force-list ELT Emit a list for elements with this name even if they occur only once (option can repeat)
+ --in-place, -i Edit files in place (no backup - use caution)
+ --version show program's version number and exit
+
+jq - commandline JSON processor [version 1.6]
+
+Usage: jq [options] <jq filter> [file...]
+ jq [options] --args <jq filter> [strings...]
+ jq [options] --jsonargs <jq filter> [JSON_TEXTS...]
+
+jq is a tool for processing JSON inputs, applying the given filter to
+its JSON text inputs and producing the filter's results as JSON on
+standard output.
+
+The simplest filter is ., which copies jq's input to its output
+unmodified (except for formatting, but note that IEEE754 is used
+for number representation internally, with all that that implies).
+
+For more advanced filters see the jq(1) manpage ("man jq")
+and/or https://stedolan.github.io/jq
+
+Example:
+
+ $ echo '{"foo": 0}' | jq .
+ {
+ "foo": 0
+ }
+
+Some of the options include:
+ -c compact instead of pretty-printed output;
+ -n use `null` as the single input value;
+ -e set the exit status code based on the output;
+ -s read (slurp) all inputs into an array; apply filter to it;
+ -r output raw strings, not JSON texts;
+ -R read raw strings, not JSON texts;
+ -C colorize JSON;
+ -M monochrome (don't colorize JSON);
+ -S sort keys of objects on output;
+ --tab use tabs for indentation;
+ --arg a v set variable $a to value <v>;
+ --argjson a v set variable $a to JSON value <v>;
+ --slurpfile a f set variable $a to an array of JSON texts read from <f>;
+ --rawfile a f set variable $a to a string consisting of the contents of <f>;
+ --args remaining arguments are string arguments, not files;
+ --jsonargs remaining arguments are JSON arguments, not files;
+ -- terminates argument processing;
+
+Named arguments are also available as $ARGS.named[], while
+positional arguments are available as $ARGS.positional[].
+
+See the manpage for more options.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yq-3.2.2/docs/cli-doc.txt new/yq-3.2.3/docs/cli-doc.txt
--- old/yq-3.2.2/docs/cli-doc.txt 2023-04-22 23:42:12.000000000 +0200
+++ new/yq-3.2.3/docs/cli-doc.txt 2023-09-09 23:41:55.000000000 +0200
@@ -1,5 +1,6 @@
usage: yq [options] <jq filter> [input file...]
- [--indentless-lists] [--in-place] [--version]
+ [--indentless-lists] [--explicit-start] [--explicit-end]
+ [--in-place] [--version]
[jq_filter] [files ...]
yq: Command-line YAML processor - jq wrapper for YAML documents
@@ -11,7 +12,7 @@
jq_filter
files
-optional arguments:
+options:
-h, --help show this help message and exit
--yaml-output, --yml-output, -y
Transcode jq JSON output back into YAML and emit it
@@ -23,6 +24,8 @@
When using --yaml-output, specify string wrap width
--indentless-lists, --indentless
When using --yaml-output, indent block style lists (sequences) with 0 spaces instead of 2
+ --explicit-start When using --yaml-output, always emit explicit document start ("---")
+ --explicit-end When using --yaml-output, always emit explicit document end ("...")
--in-place, -i Edit files in place (no backup - use caution)
--version show program's version number and exit
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yq-3.2.2/docs/conf.py new/yq-3.2.3/docs/conf.py
--- old/yq-3.2.2/docs/conf.py 2022-07-03 21:16:59.000000000 +0200
+++ new/yq-3.2.3/docs/conf.py 2023-05-07 00:52:24.000000000 +0200
@@ -5,29 +5,25 @@
author = "Andrey Kislyuk"
version = ""
release = ""
-language = None
+language = "en"
master_doc = "index"
-extensions = ["sphinx.ext.autodoc", "sphinx.ext.viewcode"]
+extensions = ["sphinx.ext.autodoc", "sphinx.ext.viewcode", "sphinx_copybutton"]
source_suffix = [".rst", ".md"]
exclude_patterns = ["_build", "Thumbs.db", ".DS_Store"]
pygments_style = "sphinx"
+templates_path = [""]
if "readthedocs.org" in os.getcwd().split("/"):
with open("index.rst", "w") as fh:
fh.write("Documentation for this project has moved to https://kislyuk.github.io/" + project)
else:
- import guzzle_sphinx_theme
- html_theme_path = guzzle_sphinx_theme.html_theme_path()
- html_theme = "guzzle_sphinx_theme"
- html_theme_options = {
- "project_nav_name": project,
- "projectlink": "https://github.com/kislyuk/" + project,
- }
+ html_theme = "furo"
html_sidebars = {
"**": [
- "logo-text.html",
- # "globaltoc.html",
- "localtoc.html",
- "searchbox.html"
+ "sidebar/brand.html",
+ "sidebar/search.html",
+ "sidebar/scroll-start.html",
+ "toc.html",
+ "sidebar/scroll-end.html",
]
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yq-3.2.2/docs/index.rst new/yq-3.2.3/docs/index.rst
--- old/yq-3.2.2/docs/index.rst 2022-08-21 14:28:41.000000000 +0200
+++ new/yq-3.2.3/docs/index.rst 2023-05-07 01:04:05.000000000 +0200
@@ -3,8 +3,19 @@
CLI usage
=========
+yq
+--
.. literalinclude:: cli-doc.txt
+xq
+--
+.. literalinclude:: cli-doc-xq.txt
+
+tomlq
+-----
+.. literalinclude:: cli-doc-tomlq.txt
+
+
Change log
==========
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yq-3.2.2/docs/toc.html new/yq-3.2.3/docs/toc.html
--- old/yq-3.2.2/docs/toc.html 1970-01-01 01:00:00.000000000 +0100
+++ new/yq-3.2.3/docs/toc.html 2023-05-07 00:11:31.000000000 +0200
@@ -0,0 +1 @@
+{{toc}}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yq-3.2.2/setup.py new/yq-3.2.3/setup.py
--- old/yq-3.2.2/setup.py 2023-04-22 23:41:39.000000000 +0200
+++ new/yq-3.2.3/setup.py 2023-09-09 23:41:31.000000000 +0200
@@ -4,7 +4,7 @@
setup(
name="yq",
- version="3.2.2",
+ version="3.2.3",
url="https://github.com/kislyuk/yq",
license="Apache Software License",
author="Andrey Kislyuk",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yq-3.2.2/test/test.py new/yq-3.2.3/test/test.py
--- old/yq-3.2.2/test/test.py 2023-04-22 23:18:23.000000000 +0200
+++ new/yq-3.2.3/test/test.py 2023-09-09 23:39:51.000000000 +0200
@@ -136,7 +136,7 @@
self.run_yq("{}", ["--indentless", "-y", ".a=$ARGS.positional", "--args", "a", "b"]), "a:\n- a\n- b\n"
)
self.assertEqual(self.run_yq("{}", ["-y", ".a=$ARGS.positional", "--args", "a", "b"]), "a:\n - a\n - b\n")
- self.assertEqual(self.run_yq("{}", [".", "--jsonargs", "a", "b"]), "")
+ self.assertEqual(self.run_yq("{}", [".", "--jsonargs", "{}", "{}"]), "")
def test_short_option_separation(self):
# self.assertEqual(self.run_yq('{"a": 1}', ["-yCcC", "."]), "a: 1\n") - Fails on 2.7 and 3.8
@@ -185,7 +185,7 @@
with io.open(cfn_filename) as fh:
self.assertEqual(self.run_yq("", ["-Y", ".", cfn_filename]), fh.read())
- def test_in_place(self):
+ def test_in_place_yaml(self):
with tempfile.NamedTemporaryFile() as tf, tempfile.NamedTemporaryFile() as tf2:
tf.write(b"- foo\n- bar\n")
tf.seek(0)
@@ -202,6 +202,13 @@
self.assertEqual(tf.read(), b"foo\n...\n")
self.assertEqual(tf2.read(), b"foo\n...\n")
+ def test_in_place_toml(self):
+ with tempfile.NamedTemporaryFile() as tf:
+ tf.write(b'[GLOBAL]\nversion="1.0.0"\n')
+ tf.seek(0)
+ self.run_yq("", ["-i", "-t", '.GLOBAL.version="1.0.1"', tf.name], input_format="toml")
+ self.assertEqual(tf.read(), b'[GLOBAL]\nversion = "1.0.1"\n')
+
def test_explicit_doc_markers(self):
test_doc = os.path.join(os.path.dirname(__file__), "doc.yml")
self.assertTrue(self.run_yq("", ["-y", ".", test_doc]).startswith("yaml_struct"))
@@ -210,7 +217,12 @@
def test_xq(self):
self.assertEqual(self.run_yq("<foo/>", ["."], input_format="xml"), "")
+ self.assertEqual(self.run_yq("<foo/>", ["--xml-item-depth=2", "."], input_format="xml"), "")
+ self.assertEqual(self.run_yq("<foo/>", ["--xml-dtd", "."], input_format="xml"), "")
self.assertEqual(self.run_yq("<foo/>", ["-x", ".foo.x=1"], input_format="xml"), "<foo>\n <x>1</x>\n</foo>\n")
+ self.assertTrue(self.run_yq("<foo/>", ["-x", "--xml-dtd", "."], input_format="xml").startswith("<?xml"))
+ self.assertTrue(self.run_yq("<foo/>", ["-x", "--xml-root=R", "."], input_format="xml").startswith("<R>"))
+ self.assertEqual(self.run_yq("<foo/>", ["--xml-force-list=foo", "."], input_format="xml"), "")
self.assertEqual(self.run_yq("<a><b/></a>", ["-y", "."], input_format="xml"), "a:\n b: null\n")
self.assertEqual(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yq-3.2.2/yq/__init__.py new/yq-3.2.3/yq/__init__.py
--- old/yq-3.2.2/yq/__init__.py 2023-04-22 23:33:06.000000000 +0200
+++ new/yq-3.2.3/yq/__init__.py 2023-09-09 23:39:17.000000000 +0200
@@ -131,8 +131,8 @@
yq_args = dict(input_format=input_format, program_name=program_name, jq_args=jq_args, **vars(args))
if in_place:
- if args.output_format not in {"yaml", "annotated_yaml"}:
- sys.exit("{}: -i/--in-place can only be used with -y/-Y".format(program_name))
+ if args.output_format not in {"yaml", "annotated_yaml", "toml"}:
+ sys.exit("{}: -i/--in-place can only be used with -y/-Y/-t".format(program_name))
input_streams = yq_args.pop("input_streams")
if len(input_streams) == 1 and input_streams[0].name == "<stdin>":
msg = "{}: -i/--in-place can only be used with filename arguments, not on standard input"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yq-3.2.2/yq/parser.py new/yq-3.2.3/yq/parser.py
--- old/yq-3.2.2/yq/parser.py 2023-04-22 23:07:10.000000000 +0200
+++ new/yq-3.2.3/yq/parser.py 2023-09-09 23:39:17.000000000 +0200
@@ -38,6 +38,7 @@
def get_parser(program_name, description):
# By default suppress these help strings and only enable them in the specific programs.
yaml_output_help, yaml_roundtrip_help, width_help, indentless_help, grammar_help = [argparse.SUPPRESS] * 5
+ explicit_start_help, explicit_end_help = [argparse.SUPPRESS] * 2
xml_output_help, xml_item_depth_help, xml_dtd_help, xml_root_help, xml_force_list_help = [argparse.SUPPRESS] * 5
toml_output_help = argparse.SUPPRESS
@@ -57,6 +58,8 @@
"to 1.2 in a future version). Setting this to 1.2 will cause strings like 'on' and 'no' to be "
"emitted unquoted."
)
+ explicit_start_help = 'When using --yaml-output, always emit explicit document start ("---")'
+ explicit_end_help = 'When using --yaml-output, always emit explicit document end ("...")'
elif program_name == "xq":
current_language = "XML"
xml_output_help = "Transcode jq JSON output back into XML and emit it"
@@ -99,17 +102,17 @@
)
parser.add_argument("--width", "-w", type=int, help=width_help)
parser.add_argument("--indentless-lists", "--indentless", action="store_true", help=indentless_help)
- parser.add_argument("--explicit-start", action="store_true", help=argparse.SUPPRESS)
- parser.add_argument("--explicit-end", action="store_true", help=argparse.SUPPRESS)
+ parser.add_argument("--explicit-start", action="store_true", help=explicit_start_help)
+ parser.add_argument("--explicit-end", action="store_true", help=explicit_end_help)
parser.add_argument("--no-expand-aliases", action="store_false", dest="expand_aliases", help=argparse.SUPPRESS)
parser.add_argument("--max-expansion-factor", type=int, default=1024, help=argparse.SUPPRESS)
parser.add_argument(
"--xml-output", "-x", dest="output_format", action="store_const", const="xml", help=xml_output_help
)
- parser.add_argument("--xml-item-depth", type=int, default=0, help=xml_item_depth_help)
+ parser.add_argument("--xml-item-depth", type=int, default=0, help=xml_item_depth_help, metavar="123")
parser.add_argument("--xml-dtd", action="store_true", help=xml_dtd_help)
parser.add_argument("--xml-root", help=xml_root_help)
- parser.add_argument("--xml-force-list", action="append", help=xml_force_list_help)
+ parser.add_argument("--xml-force-list", action="append", help=xml_force_list_help, metavar="ELT")
parser.add_argument(
"--toml-output", "-t", dest="output_format", action="store_const", const="toml", help=toml_output_help
)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yq-3.2.2/yq/version.py new/yq-3.2.3/yq/version.py
--- old/yq-3.2.2/yq/version.py 2023-04-22 23:42:29.000000000 +0200
+++ new/yq-3.2.3/yq/version.py 2023-09-09 23:42:15.000000000 +0200
@@ -1,4 +1,4 @@
# file generated by setuptools_scm
# don't change, don't track in version control
-__version__ = version = '3.2.2'
-__version_tuple__ = version_tuple = (3, 2, 2)
+__version__ = version = '3.2.3'
+__version_tuple__ = version_tuple = (3, 2, 3)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yq-3.2.2/yq.egg-info/PKG-INFO new/yq-3.2.3/yq.egg-info/PKG-INFO
--- old/yq-3.2.2/yq.egg-info/PKG-INFO 2023-04-22 23:42:29.000000000 +0200
+++ new/yq-3.2.3/yq.egg-info/PKG-INFO 2023-09-09 23:42:15.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: yq
-Version: 3.2.2
+Version: 3.2.3
Summary: Command-line YAML/XML processor - jq wrapper for YAML/XML documents
Home-page: https://github.com/kislyuk/yq
Author: Andrey Kislyuk
@@ -19,8 +19,17 @@
Classifier: Programming Language :: Python :: 3.11
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.6
-Provides-Extra: tests
License-File: LICENSE
+Requires-Dist: PyYAML>=5.3.1
+Requires-Dist: xmltodict>=0.11.0
+Requires-Dist: tomlkit>=0.11.6
+Requires-Dist: argcomplete>=1.8.1
+Provides-Extra: tests
+Requires-Dist: coverage; extra == "tests"
+Requires-Dist: wheel; extra == "tests"
+Requires-Dist: build; extra == "tests"
+Requires-Dist: ruff; extra == "tests"
+Requires-Dist: mypy; extra == "tests"
yq: Command-line YAML/XML/TOML processor - jq wrapper for YAML, XML, TOML documents
===================================================================================
@@ -62,10 +71,11 @@
python -m yq -Y --indentless --in-place '.["current-context"] = "staging-cluster"' ~/.kube/config
-Use the ``--width``/``-w`` option to pass the line wrap width for string literals. All other command line arguments are
-forwarded to ``jq``. ``yq`` forwards the exit code ``jq`` produced, unless there was an error in YAML parsing, in which
-case the exit code is 1. See the `jq manual <https://stedolan.github.io/jq/manual/>`_ for more details on ``jq``
-features and options.
+Use the ``--width``/``-w`` option to pass the line wrap width for string literals. Use
+``--explicit-start``/``--explicit-end`` to emit YAML start/end markers even when processing a single document. All other
+command line arguments are forwarded to ``jq``. ``yq`` forwards the exit code ``jq`` produced, unless there was an error
+in YAML parsing, in which case the exit code is 1. See the `jq manual <https://stedolan.github.io/jq/manual/>`_ for more
+details on ``jq`` features and options.
Because YAML treats JSON as a dialect of YAML, you can use yq to convert JSON to YAML: ``yq -y . < in.json > out.yml``.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yq-3.2.2/yq.egg-info/SOURCES.txt new/yq-3.2.3/yq.egg-info/SOURCES.txt
--- old/yq-3.2.2/yq.egg-info/SOURCES.txt 2023-04-22 23:42:29.000000000 +0200
+++ new/yq-3.2.3/yq.egg-info/SOURCES.txt 2023-09-09 23:42:15.000000000 +0200
@@ -11,9 +11,12 @@
.github/FUNDING.yml
.github/workflows/ci.yml
docs/changelog.rst
+docs/cli-doc-tomlq.txt
+docs/cli-doc-xq.txt
docs/cli-doc.txt
docs/conf.py
docs/index.rst
+docs/toc.html
test/cfn.yml
test/doc.yml
test/filter.jq
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package perl-Graphics-Toolkit-Color for openSUSE:Factory checked in at 2023-09-29 21:13:59
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Graphics-Toolkit-Color (Old)
and /work/SRC/openSUSE:Factory/.perl-Graphics-Toolkit-Color.new.28202 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Graphics-Toolkit-Color"
Fri Sep 29 21:13:59 2023 rev:6 rq:1114067 version:1.710.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Graphics-Toolkit-Color/perl-Graphics-Toolkit-Color.changes 2023-08-14 22:36:42.996781187 +0200
+++ /work/SRC/openSUSE:Factory/.perl-Graphics-Toolkit-Color.new.28202/perl-Graphics-Toolkit-Color.changes 2023-09-29 21:15:23.825695592 +0200
@@ -1,0 +2,14 @@
+Fri Sep 22 03:06:28 UTC 2023 - Tina Müller <timueller+perl(a)suse.de>
+
+- updated to 1.71
+ see /usr/share/doc/packages/perl-Graphics-Toolkit-Color/Changes
+
+ 1.71 2023-09-21 lichtkind
+ -------
+ * = doc fixes
+ * ? typos mispellings, boken sentence
+ * ? added range def explanation
+ * ? simplified HEADINGS
+ * ? removed doc of deprecated methods
+
+-------------------------------------------------------------------
Old:
----
Graphics-Toolkit-Color-1.53.tar.gz
New:
----
Graphics-Toolkit-Color-1.71.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-Graphics-Toolkit-Color.spec ++++++
--- /var/tmp/diff_new_pack.wl5Llu/_old 2023-09-29 21:15:24.961736580 +0200
+++ /var/tmp/diff_new_pack.wl5Llu/_new 2023-09-29 21:15:24.961736580 +0200
@@ -18,11 +18,11 @@
%define cpan_name Graphics-Toolkit-Color
Name: perl-Graphics-Toolkit-Color
-Version: 1.530.0
+Version: 1.710.0
Release: 0
-%define cpan_version 1.53
+%define cpan_version 1.71
License: Artistic-1.0 OR GPL-1.0-or-later
-Summary: Color palette creation helper
+Summary: Color palette constructor
URL: https://metacpan.org/release/%{cpan_name}
Source0: https://cpan.metacpan.org/authors/id/L/LI/LICHTKIND/%{cpan_name}-%{cpan_ver…
Source1: cpanspec.yml
@@ -33,40 +33,57 @@
BuildRequires: perl(Test::More) >= 1.3
BuildRequires: perl(Test::Warn) >= 0.30
Requires: perl(Carp) >= 1.35
-Provides: perl(Graphics::Toolkit::Color) = 1.530.0
-Provides: perl(Graphics::Toolkit::Color::Constant) = 1.530.0
-Provides: perl(Graphics::Toolkit::Color::Space) = 1.530.0
-Provides: perl(Graphics::Toolkit::Color::SpaceBasis) = 1.530.0
-Provides: perl(Graphics::Toolkit::Color::Util) = 1.530.0
-Provides: perl(Graphics::Toolkit::Color::Value) = 1.530.0
-Provides: perl(Graphics::Toolkit::Color::Value::CMY) = 1.530.0
-Provides: perl(Graphics::Toolkit::Color::Value::CMYK) = 1.530.0
-Provides: perl(Graphics::Toolkit::Color::Value::HSL) = 1.530.0
-Provides: perl(Graphics::Toolkit::Color::Value::HSV) = 1.530.0
-Provides: perl(Graphics::Toolkit::Color::Value::RGB) = 1.530.0
+Provides: perl(Graphics::Toolkit::Color) = 1.710.0
+Provides: perl(Graphics::Toolkit::Color::Name) = 1.710.0
+Provides: perl(Graphics::Toolkit::Color::Name::Constant) = 1.710.0
+Provides: perl(Graphics::Toolkit::Color::Space) = 1.710.0
+Provides: perl(Graphics::Toolkit::Color::Space::Basis) = 1.710.0
+Provides: perl(Graphics::Toolkit::Color::Space::Hub) = 1.710.0
+Provides: perl(Graphics::Toolkit::Color::Space::Instance::CMY) = 1.710.0
+Provides: perl(Graphics::Toolkit::Color::Space::Instance::CMYK) = 1.710.0
+Provides: perl(Graphics::Toolkit::Color::Space::Instance::HSB) = 1.710.0
+Provides: perl(Graphics::Toolkit::Color::Space::Instance::HSL) = 1.710.0
+Provides: perl(Graphics::Toolkit::Color::Space::Instance::HSV) = 1.710.0
+Provides: perl(Graphics::Toolkit::Color::Space::Instance::HWB) = 1.710.0
+Provides: perl(Graphics::Toolkit::Color::Space::Instance::LAB) = 1.710.0
+Provides: perl(Graphics::Toolkit::Color::Space::Instance::RGB) = 1.710.0
+Provides: perl(Graphics::Toolkit::Color::Space::Instance::XYZ) = 1.710.0
+Provides: perl(Graphics::Toolkit::Color::Space::Instance::YIQ) = 1.710.0
+Provides: perl(Graphics::Toolkit::Color::Space::Shape) = 1.710.0
+Provides: perl(Graphics::Toolkit::Color::Space::Util) = 1.710.0
+Provides: perl(Graphics::Toolkit::Color::Values) = 1.710.0
%define __perllib_provides /bin/true
%{perl_requires}
%description
-ATTENTION: deprecated methods of the old API will be removed on version
-2.0.
+ATTENTION: deprecated methods of the old API ( _string_, _rgb_, _red_,
+_green_, _blue_, _rgb_hex_, _rgb_hash_, _hsl_, _hue_, _saturation_,
+_lightness_, _hsl_hash_, _blend_with_, _gradient_to_, _rgb_gradient_to_,
+_hsl_gradient_to_, _complementary_) will be removed on version 2.0.
Graphics::Toolkit::Color, for short GTC, is the top level API of this
-module. It is designed to get a fast access to a set of related colors,
-that serve your need. While it can understand and output many color
-formats, its primary (internal) format is RGB, because this it is about
-colors that can be shown on the screen.
+module and the only one a regular user should be concerned with. Its main
+purpose is the creation of sets of related colors, such as gradients,
+complements and others.
+
+GTC are read only color holding objects with no additional dependencies.
+Create them in many different ways (see section CONSTRUCTOR). Access its
+values via methods from section GETTER. Measure differences with the
+_distance_ method. SINGLE-COLOR methods create one a object that is related
+to the current one and COLOR-SETS methods will create a host of color that
+are not only related to the current color but also have relations between
+each other.
+
+While this module can understand and output color values in many spaces,
+such as YIQ, HSL and many more, RGB is the (internal) primal one, because
+GTC is about colors that can be shown on the screen, and these are usually
+encoded in RGB.
Humans access colors on hardware level (eye) in RGB, on cognition level in
HSL (brain) and on cultural level (language) with names. Having easy access
to all three and some color math should enable you to get the color palette
you desire quickly.
-GTC are read only color holding objects with no additional dependencies.
-Create them in many different ways (see section _CONSTRUCTOR_). Access its
-values via methods from section _GETTER_ or measure differences and create
-related color objects via methods listed under _METHODS_.
-
%prep
%autosetup -n %{cpan_name}-%{cpan_version}
++++++ Graphics-Toolkit-Color-1.53.tar.gz -> Graphics-Toolkit-Color-1.71.tar.gz ++++++
++++ 9496 lines of diff (skipped)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package perl-CLASS for openSUSE:Factory checked in at 2023-09-29 21:13:59
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-CLASS (Old)
and /work/SRC/openSUSE:Factory/.perl-CLASS.new.28202 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-CLASS"
Fri Sep 29 21:13:59 2023 rev:11 rq:1114066 version:1.1.8
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-CLASS/perl-CLASS.changes 2022-03-11 11:49:11.434832264 +0100
+++ /work/SRC/openSUSE:Factory/.perl-CLASS.new.28202/perl-CLASS.changes 2023-09-29 21:15:22.577650563 +0200
@@ -1,0 +2,6 @@
+Sun Sep 24 03:06:48 UTC 2023 - Tina Müller <timueller+perl(a)suse.de>
+
+- updated to 1.1.8
+ see /usr/share/doc/packages/perl-CLASS/Changes
+
+-------------------------------------------------------------------
Old:
----
CLASS-v1.1.7.tar.gz
New:
----
CLASS-v1.1.8.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-CLASS.spec ++++++
--- /var/tmp/diff_new_pack.VLdzXq/_old 2023-09-29 21:15:23.569686355 +0200
+++ /var/tmp/diff_new_pack.VLdzXq/_new 2023-09-29 21:15:23.573686500 +0200
@@ -1,7 +1,7 @@
#
# spec file for package perl-CLASS
#
-# 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
@@ -18,7 +18,7 @@
%define cpan_name CLASS
Name: perl-CLASS
-Version: 1.1.7
+Version: 1.1.8
Release: 0
License: Artistic-1.0 OR GPL-1.0-or-later
Summary: Alias for __PACKAGE__
@@ -51,5 +51,5 @@
%perl_gen_filelist
%files -f %{name}.files
-%doc Changes README
+%doc Changes CONTRIBUTING.md README
++++++ CLASS-v1.1.7.tar.gz -> CLASS-v1.1.8.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CLASS-v1.1.7/CONTRIBUTING.md new/CLASS-v1.1.8/CONTRIBUTING.md
--- old/CLASS-v1.1.7/CONTRIBUTING.md 1970-01-01 01:00:00.000000000 +0100
+++ new/CLASS-v1.1.8/CONTRIBUTING.md 2023-09-23 12:38:06.000000000 +0200
@@ -0,0 +1,51 @@
+## How to contribute
+
+Thank you for considering contributing to this distribution.
+I welcome any contribution to CLASS, including, but not limited to bug reports, feature requests, general comments, and patches.
+
+Feel free to clone it from its gitlab repository at <https://github.com/jackdeguest/CLASS> and issue a pull request.
+
+I am very flexible to collaboration and always eager to learn from others.
+
+All contributions are assumed to be provided under the terms of [perl5 license](http://dev.perl.org/licenses/).
+
+### Issues
+
+File [an issue on bug tracker](https://github.com/jackdeguest/CLASS/issues) if you think you've found a bug. Please describe
+
+1. How can it be reproduced
+
+1. What was expected
+
+1. What actually occurred
+
+1. What version of the involved component
+
+## Coding Style
+
+I personally stick to the [Allman](https://en.wikipedia.org/wiki/Indentation_style#Allman_style) coding style. If you want to provide a patch to an existing piece of code, for clarity and consistency, it is best to stick to the existing coding style, whatever that may be. However, if you want to contribute a new module, you should feel free to use your coding style with comments to ensure readability and clarity.
+
+Otherwise, I think it is reasonable to heed to [perl style recommendations](https://metacpan.org/pod/perlstyle).
+
+## Versioning
+
+The versioning style used is dotted decimal, such as `v0.1.1`
+
+Please see [version](https://metacpan.org/pod/version) for more information.
+
+## How to contact the author
+
+You can reach me via e-mail <jdeguest(a)cpan.org>, or via [Telegram](https://t.me/jackdeguest), or [LinkedIn](https://www.linkedin.com/in/jackdeguest/)
+
+## Issue Tracking
+
+Issues are currently reported using CPAN [bug tracker](https://github.com/jackdeguest/CLASS/issues)
+
+## More information
+
+Please refer to the [README](https://metacpan.org/source/JDEGUEST/CLASS-v1.1.7/README.md)
+
+## Author
+
+Jacques Deguest
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CLASS-v1.1.7/Changes new/CLASS-v1.1.8/Changes
--- old/CLASS-v1.1.7/Changes 2006-10-10 03:13:50.000000000 +0200
+++ new/CLASS-v1.1.8/Changes 2023-09-23 12:42:08.000000000 +0200
@@ -0,0 +1,48 @@
+Revision history for Perl module Class
+
+v1.1.8 2023-09-23T19:16:58+0900
+ - Correcting an issue with the signature file of this release. Bug #1
+
+v1.1.6 2022-03-06T19:27:08+0900
+ - Correcting module name
+
+v1.1.5 2022-03-06T12:12:37+0900
+ - Amending distribution to revert to CLASS
+
+v1.1.4 2022-03-05T18:29:07+0900
+ - Improed nheritance and adjusted unit tests
+
+v1.1.3 2022-03-05T14:55:20+0900
+ - Added missing inheritance of @EXPORT, @EXPORT_OK and %EXPORT_TAGS
+ - Made Class::* modules independent from Module::Generic
+
+v1.1.2 2022-02-28T07:14:12+0900
+ - Resubmission due to error on CPAN
+
+v1.1.1 2022-02-27T17:18:25+0900
+ - Transfer of Class to Jacques Deguest
+ - Adding Class::Array and Class::Scalar after transfer from Dan Kogai
+ - Added modules Class::Array, Class::Boolean, Class::Exception, Class::File, Class::Finfo, Class::Assoc, Class::Null, Class::Class::Number, Class::Scalar
+
+1.00 2006-10-09T18:10:58-0700
+ - Add a LICENSE notice
+ - This is 1.00, why not
+ - Remove the really, really old Test::More bundled with this and just depend on it instead.
+
+0.91 2003-05-20T01:23:08-0700
+ - CLASS is now a real constant (thanks Juerd)
+
+0.90 2002-11-29T14:26:09-0700
+ - Colm figured out a way to add $CLASS
+ - Cut out using any other modules so load time is now negligible.
+ - This pretty much makes the module Feature Complete so jacking up to 0.90 as a beta release.
+
+0.03 2001-08-28T01:32:07-0400
+ - Eliminated nearly ALL the code!
+ - Explicitly tested all the way back to 5.004
+
+0.02 2001-08-24T23:34:51-0400
+ - Added CLASS keyword
+
+0.01 2001-06-28T13:14:31-0400
+ - First working version.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CLASS-v1.1.7/MANIFEST new/CLASS-v1.1.8/MANIFEST
--- old/CLASS-v1.1.7/MANIFEST 2022-03-07 13:38:05.000000000 +0100
+++ new/CLASS-v1.1.8/MANIFEST 2023-09-23 12:48:25.000000000 +0200
@@ -1,4 +1,5 @@
Changes
+CONTRIBUTING.md
lib/CLASS.pm
Makefile.PL
MANIFEST
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CLASS-v1.1.7/META.json new/CLASS-v1.1.8/META.json
--- old/CLASS-v1.1.7/META.json 2022-03-07 13:38:05.000000000 +0100
+++ new/CLASS-v1.1.8/META.json 2023-09-23 12:48:25.000000000 +0200
@@ -4,7 +4,7 @@
"Jacques Deguest <jack(a)deguest.jp>"
],
"dynamic_config" : 1,
- "generated_by" : "ExtUtils::MakeMaker version 7.62, CPAN::Meta::Converter version 2.150010",
+ "generated_by" : "ExtUtils::MakeMaker version 7.70, CPAN::Meta::Converter version 2.150010",
"license" : [
"perl_5"
],
@@ -49,6 +49,6 @@
"web" : "https://github.com/jackdeguest/CLASS"
}
},
- "version" : "v1.1.7",
- "x_serialization_backend" : "JSON::PP version 4.06"
+ "version" : "v1.1.8",
+ "x_serialization_backend" : "JSON::PP version 4.07"
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CLASS-v1.1.7/META.yml new/CLASS-v1.1.8/META.yml
--- old/CLASS-v1.1.7/META.yml 2022-03-07 13:38:05.000000000 +0100
+++ new/CLASS-v1.1.8/META.yml 2023-09-23 12:48:25.000000000 +0200
@@ -8,7 +8,7 @@
configure_requires:
ExtUtils::MakeMaker: '0'
dynamic_config: 1
-generated_by: 'ExtUtils::MakeMaker version 7.62, CPAN::Meta::Converter version 2.150010'
+generated_by: 'ExtUtils::MakeMaker version 7.70, CPAN::Meta::Converter version 2.150010'
license: perl
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
@@ -22,5 +22,5 @@
resources:
bugtracker: https://github.com/jackdeguest/CLASS/issues
repository: https://github.com/jackdeguest/CLASS
-version: v1.1.7
+version: v1.1.8
x_serialization_backend: 'CPAN::Meta::YAML version 0.018'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CLASS-v1.1.7/Makefile.PL new/CLASS-v1.1.8/Makefile.PL
--- old/CLASS-v1.1.7/Makefile.PL 2022-03-07 13:16:51.000000000 +0100
+++ new/CLASS-v1.1.8/Makefile.PL 2023-09-23 12:46:26.000000000 +0200
@@ -14,7 +14,7 @@
},
LICENSE => 'perl_5',
(MM->can('signature_target') ? (SIGN => 1) : ()),
- dist => { COMPRESS => 'gzip -9f', SUFFIX => 'gz', },
+ dist => { COMPRESS => 'gzip -9f', SUFFIX => 'gz', DIST_CP => 'cp' },
clean => { FILES => 'CLASS-*' },
( eval { ExtUtils::MakeMaker->VERSION(6.46) } ? ( META_MERGE => {
'meta-spec' => { version => 2 },
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CLASS-v1.1.7/SIGNATURE new/CLASS-v1.1.8/SIGNATURE
--- old/CLASS-v1.1.7/SIGNATURE 2022-03-07 13:38:05.000000000 +0100
+++ new/CLASS-v1.1.8/SIGNATURE 2023-09-23 12:48:25.000000000 +0200
@@ -14,12 +14,29 @@
-----BEGIN PGP SIGNED MESSAGE-----
Hash: RIPEMD160
-SHA256 e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 Changes
-SHA256 cf47e178ac34fc7340f3c0e17ce2f51e30ec6ddc331964ba343817efdfb5a344 MANIFEST
-SHA256 d54e341df30be9e6c970b3ec5426a50cd36bff743e66766153400e506ee8121f META.json
-SHA256 026c1fd8ea41d823dac5aefec603ff4f96b611b7b661269fdc99109033903361 META.yml
-SHA256 592950012c5dd884838e1560038b4c20c3f635686ea5fa4357a660e1e51c52a9 Makefile.PL
+SHA256 e704b239341524f638c38f24cc3e4dd5b22077f7724953f18bb11b61bf6a6ea6 CONTRIBUTING.md
+SHA256 4ee998bd71b1f1f0bab0f3fbe63db24152ec3acc79477e53b6ce658492056a25 Changes
+SHA256 ac5f87eece5fbd7ac5280a77bff635e8babb2d7bbba5e2d6ab932f5d19d002a7 MANIFEST
+SHA256 c979f4f7582a50937b6ae48ce79589ace5429d39242a310207bff42e38dd08c4 META.json
+SHA256 1642528bcb65e37ddbb0c05b9b250b0fd1e754f6e8b2b777beef7a6043707966 META.yml
+SHA256 961d83ff4da1b03a20d069a556cca665147a6e093f0ad2e55fa1aed30af5cdd2 Makefile.PL
SHA256 b9ff25631d66d99af7f55f9f6221cc3a97ae543f071d5a5262ceb4ccca7b6bfa README
-SHA256 da9afca8ba90a88c69211f271403f7cf5b2bc22bb5452b657f267a5355a0317c lib/CLASS.pm
+SHA256 847638fefcb55be2c76751373384577f73efd4fc3b81816e7df4c1411ed555d9 lib/CLASS.pm
SHA256 2a3b9dd39559384b198a48549880ccf30d6a576bfb93481458ec5312d3a6fa71 t/0-signature.t
SHA256 5989f5121b6a8d1ccd2333b9af925fd4343431c95d6dda95dd1c9d60611aed2f t/CLASS.t
+-----BEGIN PGP SIGNATURE-----
+
+iQIzBAEBAwAdFiEENa28Ovg1XoRROdiWXzwCYc2y51IFAmUOwnkACgkQXzwCYc2y
+51Jn9hAAhi+NHQaEG/SrK+3ugtzwiX7z3b3xoXv3ePqYd2w6KpgzA8kq0mTL7OIs
+DDP/p0N93+He/ihcQWYdmxkkeqs0fOJzxTXuQTPzbsHp8KLR0VEA40Lx722Qw7m7
+66bezOv6imvpbWnJkluunB+k/+d6GJ6p3OZGo7Fo7LmmFUjyfpkpopyILYSD9xNo
+3H/lgwU29UeAWzrStN4RXzmA70MLa9KYeSGOjsM4cFXdtCKjdu1/M5GTXK13Q0v9
+EG4EKPR2sFubTCpyv2PZH/vnK0/+7J7KgG1rK6lA42DyVhZXQ+QqIUC4x/Tjpsci
+79kYOh5e19fTOsTktOvKAYFElAKbjo4KiEO/Yni8xm/w3mjPQyjKnDvOdax+mhMo
+VaRrM0eib/LLNPz3lmtMMP8wV7q09M4uisLVg0nu8VUzKDRsZx9tpbPKEHtrXarG
+iPxJww/S9ZW9h/xDgSLWLxuXemS8lx4XGWR+9DFvzohd7z5fp6RvQyrWsA8lGJWc
+enMiqqL9FHdSG5ezzvcrkWoPYj/9TFMyUg2wRhmvJQmGTpItQ1DdOJhf9VXUXg+x
+F2RC+iQ5ZcJpmoDrGhyf+G3i4m8YDZ2fppyE2giNDO09RX4T4np4j+7Jd0iqEQGP
+xPMA7tKPvMNNvvED2MIpD/kqoLcjoCvEWHheeK+GViXF/1hotYU=
+=1def
+-----END PGP SIGNATURE-----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CLASS-v1.1.7/lib/CLASS.pm new/CLASS-v1.1.8/lib/CLASS.pm
--- old/CLASS-v1.1.7/lib/CLASS.pm 2022-03-07 13:03:01.000000000 +0100
+++ new/CLASS-v1.1.8/lib/CLASS.pm 2023-09-23 12:40:53.000000000 +0200
@@ -2,7 +2,7 @@
use 5.004;
-$VERSION = 'v1.1.7';
+$VERSION = 'v1.1.8';
BEGIN {
# Faster than 'use constant'. Load time critical.
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package perl-Module-ScanDeps for openSUSE:Factory checked in at 2023-09-29 21:13:58
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Module-ScanDeps (Old)
and /work/SRC/openSUSE:Factory/.perl-Module-ScanDeps.new.28202 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Module-ScanDeps"
Fri Sep 29 21:13:58 2023 rev:32 rq:1114064 version:1.340.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Module-ScanDeps/perl-Module-ScanDeps.changes 2023-08-08 17:43:29.577731200 +0200
+++ /work/SRC/openSUSE:Factory/.perl-Module-ScanDeps.new.28202/perl-Module-ScanDeps.changes 2023-09-29 21:15:21.245602502 +0200
@@ -1,0 +2,24 @@
+Mon Sep 25 03:06:45 UTC 2023 - Tina Müller <timueller+perl(a)suse.de>
+
+- updated to 1.34
+ see /usr/share/doc/packages/perl-Module-ScanDeps/Changes
+
+ 1.34 2023-09-24
+ - Fix issue #19 (AKA rschupp/PAR-Packer#78): invalid paths in zip file
+ - Restore behaviour from version 1.31 when using "pp --execute ..." or
+ "scandeps.pl --execute ...".
+ When using "scan_deps(execute => 1, ...)", %INC as gleaned from
+ running the script must be sanitized. Contrary to documentation
+ "The key is the filename you specified (with module names
+ converted to pathnames)" %INC *may* contain keys that are
+ *absolute pathnames* (or start with "./relativ/path" when
+ "relative/path" is in @PATH). Examples are autosplitted modules
+ (for autosplit.ix and *.al files). pp will pack these absolute
+ paths into the zip (Archive::Zip doesn't complain) which
+ results in strange error messages when the packed executable
+ tries to unpack them under CACHEDIR/inc on Windows.
+ Add t/19-autosplit.t to test for this.
+ Add IPC::Run3 to TEST_REQUIRES, used in t/19-autosplit.t
+ - Add GitHub CI
+
+-------------------------------------------------------------------
Old:
----
Module-ScanDeps-1.33.tar.gz
New:
----
Module-ScanDeps-1.34.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-Module-ScanDeps.spec ++++++
--- /var/tmp/diff_new_pack.T1fo8S/_old 2023-09-29 21:15:22.277639738 +0200
+++ /var/tmp/diff_new_pack.T1fo8S/_new 2023-09-29 21:15:22.277639738 +0200
@@ -18,9 +18,9 @@
%define cpan_name Module-ScanDeps
Name: perl-Module-ScanDeps
-Version: 1.330.0
+Version: 1.340.0
Release: 0
-%define cpan_version 1.33
+%define cpan_version 1.34
License: Artistic-1.0 OR GPL-1.0-or-later
Summary: Recursively scan Perl code for dependencies
URL: https://metacpan.org/release/%{cpan_name}
@@ -28,12 +28,13 @@
Source1: cpanspec.yml
BuildRequires: perl
BuildRequires: perl-macros
+BuildRequires: perl(IPC::Run3) >= 0.048
BuildRequires: perl(Module::Metadata)
BuildRequires: perl(Test::Requires)
BuildRequires: perl(version)
Requires: perl(Module::Metadata)
Requires: perl(version)
-Provides: perl(Module::ScanDeps) = 1.330.0
+Provides: perl(Module::ScanDeps) = 1.340.0
Provides: perl(Module::ScanDeps::Cache)
%define __perllib_provides /bin/true
%{perl_requires}
++++++ Module-ScanDeps-1.33.tar.gz -> Module-ScanDeps-1.34.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Module-ScanDeps-1.33/Changes new/Module-ScanDeps-1.34/Changes
--- old/Module-ScanDeps-1.33/Changes 2023-08-04 17:46:21.000000000 +0200
+++ new/Module-ScanDeps-1.34/Changes 2023-09-24 17:16:36.000000000 +0200
@@ -1,3 +1,26 @@
+1.34 2023-09-24
+
+- Fix issue #19 (AKA rschupp/PAR-Packer#78): invalid paths in zip file
+
+ - Restore behaviour from version 1.31 when using "pp --execute ..." or
+ "scandeps.pl --execute ...".
+
+ When using "scan_deps(execute => 1, ...)", %INC as gleaned from
+ running the script must be sanitized. Contrary to documentation
+ "The key is the filename you specified (with module names
+ converted to pathnames)" %INC *may* contain keys that are
+ *absolute pathnames* (or start with "./relativ/path" when
+ "relative/path" is in @PATH). Examples are autosplitted modules
+ (for autosplit.ix and *.al files). pp will pack these absolute
+ paths into the zip (Archive::Zip doesn't complain) which
+ results in strange error messages when the packed executable
+ tries to unpack them under CACHEDIR/inc on Windows.
+
+ Add t/19-autosplit.t to test for this.
+ Add IPC::Run3 to TEST_REQUIRES, used in t/19-autosplit.t
+
+- Add GitHub CI
+
1.33 2023-08-04
- Recognize Moose/Moo/Mouse style inheritance ("extends")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Module-ScanDeps-1.33/MANIFEST new/Module-ScanDeps-1.34/MANIFEST
--- old/Module-ScanDeps-1.33/MANIFEST 2023-08-04 17:47:53.000000000 +0200
+++ new/Module-ScanDeps-1.34/MANIFEST 2023-09-24 17:17:42.000000000 +0200
@@ -18,6 +18,7 @@
t/16-scan_line.t
t/17-private_methods.t
t/18-findbin.t
+t/19-autosplit.t
t/2-static_functional_interface_fake.t
t/3-static_oo_interface_real.t
t/4-static_functional_interface_options_fake.t
@@ -26,6 +27,10 @@
t/7-check-dynaloader.t
t/8-check_duplicated_entries.t
t/9-check_path_to_inc_name.t
+t/data/autosplit/auto/Foo/autosplit.ix
+t/data/autosplit/auto/Foo/barnie.al
+t/data/autosplit/auto/Foo/fred.al
+t/data/autosplit/Foo.pm
t/data/case-insensitive-keys/Foo.pm
t/data/case-insensitive-keys/Foo2.pm
t/data/case-insensitive-keys/that_case.pl
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Module-ScanDeps-1.33/META.json new/Module-ScanDeps-1.34/META.json
--- old/Module-ScanDeps-1.33/META.json 2023-08-04 17:47:53.000000000 +0200
+++ new/Module-ScanDeps-1.34/META.json 2023-09-24 17:17:42.000000000 +0200
@@ -47,6 +47,7 @@
},
"test" : {
"requires" : {
+ "IPC::Run3" : "0.048",
"Test::More" : "0",
"Test::Requires" : "0"
}
@@ -64,6 +65,6 @@
},
"x_MailingList" : "mailto:par@perl.org"
},
- "version" : "1.33",
+ "version" : "1.34",
"x_serialization_backend" : "JSON::PP version 4.16"
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Module-ScanDeps-1.33/META.yml new/Module-ScanDeps-1.34/META.yml
--- old/Module-ScanDeps-1.33/META.yml 2023-08-04 17:47:53.000000000 +0200
+++ new/Module-ScanDeps-1.34/META.yml 2023-09-24 17:17:42.000000000 +0200
@@ -4,6 +4,7 @@
- 'Audrey Tang <cpan(a)audreyt.org>'
build_requires:
ExtUtils::MakeMaker: '0'
+ IPC::Run3: '0.048'
Test::More: '0'
Test::Requires: '0'
configure_requires:
@@ -34,5 +35,5 @@
MailingList: mailto:par@perl.org
bugtracker: https://github.com/rschupp/Module-ScanDeps/issues
repository: git://github.com/rschupp/Module-ScanDeps.git
-version: '1.33'
+version: '1.34'
x_serialization_backend: 'CPAN::Meta::YAML version 0.018'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Module-ScanDeps-1.33/Makefile.PL new/Module-ScanDeps-1.34/Makefile.PL
--- old/Module-ScanDeps-1.33/Makefile.PL 2021-05-12 10:49:54.000000000 +0200
+++ new/Module-ScanDeps-1.34/Makefile.PL 2023-09-21 15:06:12.000000000 +0200
@@ -24,6 +24,7 @@
TEST_REQUIRES => {
'Test::More' => 0,
'Test::Requires' => 0,
+ 'IPC::Run3' => '0.048',
},
EXE_FILES => [ 'script/scandeps.pl' ],
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Module-ScanDeps-1.33/lib/Module/ScanDeps.pm new/Module-ScanDeps-1.34/lib/Module/ScanDeps.pm
--- old/Module-ScanDeps-1.33/lib/Module/ScanDeps.pm 2023-08-04 17:35:17.000000000 +0200
+++ new/Module-ScanDeps-1.34/lib/Module/ScanDeps.pm 2023-09-21 15:03:29.000000000 +0200
@@ -4,7 +4,7 @@
use warnings;
use vars qw( $VERSION @EXPORT @EXPORT_OK @ISA $CurrentPackage @IncludeLibs $ScanFileRE );
-$VERSION = '1.33';
+$VERSION = '1.34';
@EXPORT = qw( scan_deps scan_deps_runtime );
@EXPORT_OK = qw( scan_line scan_chunk add_deps scan_deps_runtime path_to_inc_name );
@@ -1280,17 +1280,17 @@
my $dir = "$inc/$subdir";
next unless -d $dir;
- # canonicalize $inc as newer versions of File::Find return
- # a canonicalized $File::Find::name
- (my $canon = $inc) =~ s|\\|\/|g;
+ # canonicalize $inc (ie. use "/" as filename separator exclusively)
+ # as newer versions of File::Find return a canonicalized $File::Find::name
+ (my $canon = $inc) =~ s|\\|/|g;
File::Find::find(
sub {
return unless -f $_;
return if $pm_only and !/\.p[mh]$/i;
- (my $name = $File::Find::name) =~ s|\\|\/|g;
- $name =~ s|^\Q$canon\E/||;
+ (my $file = $File::Find::name) =~ s|\\|/|g;
+ (my $name = $file) =~ s|^\Q$canon\E/||;
push @files, $pm_only ? $name
- : { file => $File::Find::name, name => $name };
+ : { file => $file, name => $name };
},
$dir
);
@@ -1581,7 +1581,7 @@
my $rv = {};
my $incs = join('|', sort { length($b) <=> length($a) }
- map { s:\\:/:g; s:^(/.*?)/+$:$1:; quotemeta($_) }
+ map { s|\\|/|g; s|/+$||; quotemeta($_) }
@{ $info->{'@INC'} });
my $i = is_insensitive_fs() ? "i" : "";
my $strip_inc_prefix = qr{^(?$i:$incs)/};
@@ -1589,7 +1589,14 @@
require File::Spec;
foreach my $key (keys %{ $info->{'%INC'} }) {
- (my $path = $info->{'%INC'}{$key}) =~ s:\\:/:g;
+ (my $path = $info->{'%INC'}{$key}) =~ s|\\|/|g;
+
+ # NOTE: %INC may contain (as keys) absolute pathnames,
+ # e.g. for autosplit .ix and .al files. In the latter case,
+ # the key may also start with "./" if found via a relative path in @INC.
+ $key =~ s|\\|/|g;
+ $key =~ s|^\./||;
+ $key =~ s/$strip_inc_prefix//;
$rv->{$key} = {
'used_by' => [],
@@ -1600,7 +1607,7 @@
}
foreach my $path (@{ $info->{dl_shared_objects} }) {
- $path =~ s:\\:/:g;
+ $path =~ s|\\|/|g;
(my $key = $path) =~ s/$strip_inc_prefix//;
$rv->{$key} = {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Module-ScanDeps-1.33/t/19-autosplit.t new/Module-ScanDeps-1.34/t/19-autosplit.t
--- old/Module-ScanDeps-1.33/t/19-autosplit.t 1970-01-01 01:00:00.000000000 +0100
+++ new/Module-ScanDeps-1.34/t/19-autosplit.t 2023-09-22 11:40:28.000000000 +0200
@@ -0,0 +1,98 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+use File::Temp;
+use File::Spec;
+use IPC::Run3;
+
+use Test::More;
+use lib 't/data/autosplit';
+
+BEGIN { use_ok( 'Module::ScanDeps' ); }
+
+sub create_script
+{
+ my ($text) = @_;
+ my ($fh, $filename) = File::Temp::tempfile( UNLINK => 1, SUFFIX => '.pl' );
+ print $fh $text;
+ close $fh;
+ return $filename;
+}
+
+sub test_autosplit
+{
+ my ($tag, $scan, $expected, $text) = @_;
+
+ diag($tag);
+ my $filename = create_script($text);
+ my $rv = $scan->($filename);
+
+ foreach my $mod (@$expected)
+ {
+ ok($rv->{$mod}, "$mod detected");
+ }
+ my @bogus = grep { File::Spec->file_name_is_absolute($_) or m|^\.[/\\]| } keys %$rv;
+ is("@bogus", "", "no bogus keys in \$rv");
+}
+
+test_autosplit(
+ 'use autosplitted module - static scan',
+ sub { scan_deps(files => [$_[0]], recurse => 1) },
+ [qw(AutoLoader.pm Foo.pm auto/Foo/autosplit.ix auto/Foo/barnie.al auto/Foo/fred.al)],
+ 'use Foo');
+
+test_autosplit(
+ 'use autosplitted module - runtime scan, absolute search path',
+ sub { scan_deps_runtime(files => [$_[0]], recurse => 1, execute => [qw(fee fo fum)]) },
+ [qw(AutoLoader.pm Foo.pm auto/Foo/autosplit.ix auto/Foo/barnie.al)],
+ << '...');
+ use Cwd;
+ use lib getcwd().'/t/data/autosplit';
+ my $Foo = "Foo";
+ eval "use $Foo";
+ Foo::blab(@ARGV);
+ Foo::barnie();
+...
+test_autosplit(
+ 'use autosplitted module - runtime scan, relative search path',
+ sub { scan_deps_runtime(files => [$_[0]], recurse => 1, execute => 1) },
+ [qw(AutoLoader.pm Foo.pm auto/Foo/autosplit.ix auto/Foo/barnie.al)],
+ << '...');
+ use lib 't/data/autosplit';
+ my $Foo = "Foo";
+ eval "use $Foo";
+ Foo::blab(@ARGV);
+ Foo::barnie();
+...
+
+
+my $scanner = create_script(<< '...');
+ use Module::ScanDeps;
+ my ($file, @args) = @ARGV;
+ scan_deps_runtime(files => [$file], recurse => 1, execute => \@args);
+...
+my $file = create_script(<< '...');
+ use lib 't/data/autosplit';
+ my $Foo = "Foo";
+ eval "use $Foo";
+ Foo::blab(@ARGV);
+ Foo::barnie();
+...
+my @args = qw(fee fo fum);
+
+# run $file with @args once and capture its output
+my $exp;
+run3([$^X, $scanner, $file, @args], \undef, \$exp);
+is($?, 0, "script ran successfully");
+my $rx = join(".*", map { quotemeta($_) } @args, "barnie!");
+like($exp, qr/$rx/s, "script output");
+
+# run $scanner on $file with @args
+my ($out, $err);
+run3([$^X, "-Mblib", $scanner, $file, @args], \undef, \$out, \$err);
+is($?, 0, "scanner ran successfully");
+is($out, $exp, "scanner output");
+
+done_testing();
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Module-ScanDeps-1.33/t/data/autosplit/Foo.pm new/Module-ScanDeps-1.34/t/data/autosplit/Foo.pm
--- old/Module-ScanDeps-1.33/t/data/autosplit/Foo.pm 1970-01-01 01:00:00.000000000 +0100
+++ new/Module-ScanDeps-1.34/t/data/autosplit/Foo.pm 2023-09-21 11:35:25.000000000 +0200
@@ -0,0 +1,21 @@
+package Foo;
+
+use strict;
+use warnings;
+
+use AutoLoader 'AUTOLOAD';
+
+sub blab
+{
+ my @blab = @_;
+ print "begin blab\n";
+ print "$_\n" foreach @blab;
+ print "end blab\n";
+}
+
+1;
+
+__END__
+
+sub fred { print "fred!\n" };
+sub barnie { print "barnie!\n" };
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Module-ScanDeps-1.33/t/data/autosplit/auto/Foo/autosplit.ix new/Module-ScanDeps-1.34/t/data/autosplit/auto/Foo/autosplit.ix
--- old/Module-ScanDeps-1.33/t/data/autosplit/auto/Foo/autosplit.ix 1970-01-01 01:00:00.000000000 +0100
+++ new/Module-ScanDeps-1.34/t/data/autosplit/auto/Foo/autosplit.ix 2023-09-21 11:35:04.000000000 +0200
@@ -0,0 +1,6 @@
+# Index created by AutoSplit for Foo.pm
+# (file acts as timestamp)
+package Foo;
+sub fred ;
+sub barnie ;
+1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Module-ScanDeps-1.33/t/data/autosplit/auto/Foo/barnie.al new/Module-ScanDeps-1.34/t/data/autosplit/auto/Foo/barnie.al
--- old/Module-ScanDeps-1.33/t/data/autosplit/auto/Foo/barnie.al 1970-01-01 01:00:00.000000000 +0100
+++ new/Module-ScanDeps-1.34/t/data/autosplit/auto/Foo/barnie.al 2023-09-21 11:35:04.000000000 +0200
@@ -0,0 +1,9 @@
+# NOTE: Derived from Foo.pm.
+# Changes made here will be lost when autosplit is run again.
+# See AutoSplit.pm.
+package Foo;
+
+#line 19 "Foo.pm (autosplit into auto/Foo/barnie.al)"
+sub barnie { print "barnie!\n" };
+1;
+# end of Foo::barnie
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Module-ScanDeps-1.33/t/data/autosplit/auto/Foo/fred.al new/Module-ScanDeps-1.34/t/data/autosplit/auto/Foo/fred.al
--- old/Module-ScanDeps-1.33/t/data/autosplit/auto/Foo/fred.al 1970-01-01 01:00:00.000000000 +0100
+++ new/Module-ScanDeps-1.34/t/data/autosplit/auto/Foo/fred.al 2023-09-21 11:35:04.000000000 +0200
@@ -0,0 +1,9 @@
+# NOTE: Derived from Foo.pm.
+# Changes made here will be lost when autosplit is run again.
+# See AutoSplit.pm.
+package Foo;
+
+#line 18 "Foo.pm (autosplit into auto/Foo/fred.al)"
+sub fred { print "fred!\n" };
+# end of Foo::fred
+1;
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package perl-PDF-API2 for openSUSE:Factory checked in at 2023-09-29 21:13:57
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-PDF-API2 (Old)
and /work/SRC/openSUSE:Factory/.perl-PDF-API2.new.28202 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-PDF-API2"
Fri Sep 29 21:13:57 2023 rev:27 rq:1114063 version:2.45.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-PDF-API2/perl-PDF-API2.changes 2022-11-24 12:26:05.910391542 +0100
+++ /work/SRC/openSUSE:Factory/.perl-PDF-API2.new.28202/perl-PDF-API2.changes 2023-09-29 21:15:18.993521247 +0200
@@ -1,0 +2,15 @@
+Tue Sep 26 03:07:19 UTC 2023 - Tina Müller <timueller+perl(a)suse.de>
+
+- updated to 2.045
+ see /usr/share/doc/packages/perl-PDF-API2/Changes
+
+ 2.045 2023-09-25
+ - Fixed documentation error in synopsis for QR codes.
+ - Fixed date validation when timezone offset minute contains a trailing
+ apostrophe, which is required by the Adobe PDF specifications and
+ prohibited by the ISO PDF specifications. PDF::API2 now accepts either
+ version as valid (report by Johan Vromans).
+ - Fixed passing a GD object to $pdf->image() (reported by Hakon Hagland).
+ - Fixed a crash when object numbers contain leading zeroes.
+
+-------------------------------------------------------------------
Old:
----
PDF-API2-2.044.tar.gz
New:
----
PDF-API2-2.045.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-PDF-API2.spec ++++++
--- /var/tmp/diff_new_pack.GFJ2sg/_old 2023-09-29 21:15:20.109561514 +0200
+++ /var/tmp/diff_new_pack.GFJ2sg/_new 2023-09-29 21:15:20.109561514 +0200
@@ -1,7 +1,7 @@
#
# spec file for package perl-PDF-API2
#
-# 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
@@ -18,12 +18,13 @@
%define cpan_name PDF-API2
Name: perl-PDF-API2
-Version: 2.044
+Version: 2.45.0
Release: 0
+%define cpan_version 2.045
License: LGPL-2.1-or-later
Summary: Create, modify, and examine PDF files
URL: https://metacpan.org/release/%{cpan_name}
-Source0: https://cpan.metacpan.org/authors/id/S/SS/SSIMMS/%{cpan_name}-%{version}.ta…
+Source0: https://cpan.metacpan.org/authors/id/S/SS/SSIMMS/%{cpan_name}-%{cpan_versio…
Source1: cpanspec.yml
BuildArch: noarch
BuildRequires: perl
@@ -34,13 +35,119 @@
BuildRequires: perl(Test::Memory::Cycle)
Requires: perl(Compress::Zlib) >= 1.0
Requires: perl(Font::TTF)
+Provides: perl(PDF::API2)
+Provides: perl(PDF::API2::Annotation) = 2.45.0
+Provides: perl(PDF::API2::Basic::PDF::Array) = 2.45.0
+Provides: perl(PDF::API2::Basic::PDF::Bool) = 2.45.0
+Provides: perl(PDF::API2::Basic::PDF::Dict) = 2.45.0
+Provides: perl(PDF::API2::Basic::PDF::File) = 2.45.0
+Provides: perl(PDF::API2::Basic::PDF::Filter) = 2.45.0
+Provides: perl(PDF::API2::Basic::PDF::Filter::ASCII85Decode) = 2.45.0
+Provides: perl(PDF::API2::Basic::PDF::Filter::ASCIIHexDecode) = 2.45.0
+Provides: perl(PDF::API2::Basic::PDF::Filter::FlateDecode) = 2.45.0
+Provides: perl(PDF::API2::Basic::PDF::Filter::LZWDecode) = 2.45.0
+Provides: perl(PDF::API2::Basic::PDF::Filter::RunLengthDecode) = 2.45.0
+Provides: perl(PDF::API2::Basic::PDF::Literal) = 2.45.0
+Provides: perl(PDF::API2::Basic::PDF::Name) = 2.45.0
+Provides: perl(PDF::API2::Basic::PDF::Null) = 2.45.0
+Provides: perl(PDF::API2::Basic::PDF::Number) = 2.45.0
+Provides: perl(PDF::API2::Basic::PDF::Objind) = 2.45.0
+Provides: perl(PDF::API2::Basic::PDF::Page) = 2.45.0
+Provides: perl(PDF::API2::Basic::PDF::Pages) = 2.45.0
+Provides: perl(PDF::API2::Basic::PDF::String) = 2.45.0
+Provides: perl(PDF::API2::Basic::PDF::Utils) = 2.45.0
+Provides: perl(PDF::API2::Content) = 2.45.0
+Provides: perl(PDF::API2::Content::Text) = 2.45.0
+Provides: perl(PDF::API2::Lite) = 2.45.0
+Provides: perl(PDF::API2::Matrix) = 2.45.0
+Provides: perl(PDF::API2::NamedDestination) = 2.45.0
+Provides: perl(PDF::API2::Outline) = 2.45.0
+Provides: perl(PDF::API2::Outlines) = 2.45.0
+Provides: perl(PDF::API2::Page) = 2.45.0
+Provides: perl(PDF::API2::Resource) = 2.45.0
+Provides: perl(PDF::API2::Resource::BaseFont) = 2.45.0
+Provides: perl(PDF::API2::Resource::CIDFont) = 2.45.0
+Provides: perl(PDF::API2::Resource::CIDFont::CJKFont) = 2.45.0
+Provides: perl(PDF::API2::Resource::CIDFont::TrueType) = 2.45.0
+Provides: perl(PDF::API2::Resource::CIDFont::TrueType::FontFile) = 2.45.0
+Provides: perl(PDF::API2::Resource::ColorSpace) = 2.45.0
+Provides: perl(PDF::API2::Resource::ColorSpace::DeviceN) = 2.45.0
+Provides: perl(PDF::API2::Resource::ColorSpace::Indexed) = 2.45.0
+Provides: perl(PDF::API2::Resource::ColorSpace::Indexed::ACTFile) = 2.45.0
+Provides: perl(PDF::API2::Resource::ColorSpace::Indexed::Hue) = 2.45.0
+Provides: perl(PDF::API2::Resource::ColorSpace::Indexed::WebColor) = 2.45.0
+Provides: perl(PDF::API2::Resource::ColorSpace::Separation) = 2.45.0
+Provides: perl(PDF::API2::Resource::Colors) = 2.45.0
+Provides: perl(PDF::API2::Resource::ExtGState) = 2.45.0
+Provides: perl(PDF::API2::Resource::Font) = 2.45.0
+Provides: perl(PDF::API2::Resource::Font::BdFont) = 2.45.0
+Provides: perl(PDF::API2::Resource::Font::CoreFont) = 2.45.0
+Provides: perl(PDF::API2::Resource::Font::CoreFont::bankgothic) = 2.45.0
+Provides: perl(PDF::API2::Resource::Font::CoreFont::courier) = 2.45.0
+Provides: perl(PDF::API2::Resource::Font::CoreFont::courierbold) = 2.45.0
+Provides: perl(PDF::API2::Resource::Font::CoreFont::courierboldoblique) = 2.45.0
+Provides: perl(PDF::API2::Resource::Font::CoreFont::courieroblique) = 2.45.0
+Provides: perl(PDF::API2::Resource::Font::CoreFont::georgia) = 2.45.0
+Provides: perl(PDF::API2::Resource::Font::CoreFont::georgiabold) = 2.45.0
+Provides: perl(PDF::API2::Resource::Font::CoreFont::georgiabolditalic) = 2.45.0
+Provides: perl(PDF::API2::Resource::Font::CoreFont::georgiaitalic) = 2.45.0
+Provides: perl(PDF::API2::Resource::Font::CoreFont::helvetica) = 2.45.0
+Provides: perl(PDF::API2::Resource::Font::CoreFont::helveticabold) = 2.45.0
+Provides: perl(PDF::API2::Resource::Font::CoreFont::helveticaboldoblique) = 2.45.0
+Provides: perl(PDF::API2::Resource::Font::CoreFont::helveticaoblique) = 2.45.0
+Provides: perl(PDF::API2::Resource::Font::CoreFont::symbol) = 2.45.0
+Provides: perl(PDF::API2::Resource::Font::CoreFont::timesbold) = 2.45.0
+Provides: perl(PDF::API2::Resource::Font::CoreFont::timesbolditalic) = 2.45.0
+Provides: perl(PDF::API2::Resource::Font::CoreFont::timesitalic) = 2.45.0
+Provides: perl(PDF::API2::Resource::Font::CoreFont::timesroman) = 2.45.0
+Provides: perl(PDF::API2::Resource::Font::CoreFont::trebuchet) = 2.45.0
+Provides: perl(PDF::API2::Resource::Font::CoreFont::trebuchetbold) = 2.45.0
+Provides: perl(PDF::API2::Resource::Font::CoreFont::trebuchetbolditalic) = 2.45.0
+Provides: perl(PDF::API2::Resource::Font::CoreFont::trebuchetitalic) = 2.45.0
+Provides: perl(PDF::API2::Resource::Font::CoreFont::verdana) = 2.45.0
+Provides: perl(PDF::API2::Resource::Font::CoreFont::verdanabold) = 2.45.0
+Provides: perl(PDF::API2::Resource::Font::CoreFont::verdanabolditalic) = 2.45.0
+Provides: perl(PDF::API2::Resource::Font::CoreFont::verdanaitalic) = 2.45.0
+Provides: perl(PDF::API2::Resource::Font::CoreFont::webdings) = 2.45.0
+Provides: perl(PDF::API2::Resource::Font::CoreFont::wingdings) = 2.45.0
+Provides: perl(PDF::API2::Resource::Font::CoreFont::zapfdingbats) = 2.45.0
+Provides: perl(PDF::API2::Resource::Font::Postscript) = 2.45.0
+Provides: perl(PDF::API2::Resource::Font::SynFont) = 2.45.0
+Provides: perl(PDF::API2::Resource::Glyphs) = 2.45.0
+Provides: perl(PDF::API2::Resource::PaperSizes) = 2.45.0
+Provides: perl(PDF::API2::Resource::Pattern) = 2.45.0
+Provides: perl(PDF::API2::Resource::Shading) = 2.45.0
+Provides: perl(PDF::API2::Resource::UniFont) = 2.45.0
+Provides: perl(PDF::API2::Resource::XObject) = 2.45.0
+Provides: perl(PDF::API2::Resource::XObject::Form) = 2.45.0
+Provides: perl(PDF::API2::Resource::XObject::Form::BarCode) = 2.45.0
+Provides: perl(PDF::API2::Resource::XObject::Form::BarCode::codabar) = 2.45.0
+Provides: perl(PDF::API2::Resource::XObject::Form::BarCode::code128) = 2.45.0
+Provides: perl(PDF::API2::Resource::XObject::Form::BarCode::code3of9) = 2.45.0
+Provides: perl(PDF::API2::Resource::XObject::Form::BarCode::ean13) = 2.45.0
+Provides: perl(PDF::API2::Resource::XObject::Form::BarCode::int2of5) = 2.45.0
+Provides: perl(PDF::API2::Resource::XObject::Form::BarCode::qrcode) = 2.45.0
+Provides: perl(PDF::API2::Resource::XObject::Form::Hybrid) = 2.45.0
+Provides: perl(PDF::API2::Resource::XObject::Image) = 2.45.0
+Provides: perl(PDF::API2::Resource::XObject::Image::GD) = 2.45.0
+Provides: perl(PDF::API2::Resource::XObject::Image::GIF) = 2.45.0
+Provides: perl(PDF::API2::Resource::XObject::Image::JPEG) = 2.45.0
+Provides: perl(PDF::API2::Resource::XObject::Image::PNG) = 2.45.0
+Provides: perl(PDF::API2::Resource::XObject::Image::PNM) = 2.45.0
+Provides: perl(PDF::API2::Resource::XObject::Image::TIFF) = 2.45.0
+Provides: perl(PDF::API2::Resource::XObject::Image::TIFF::File) = 2.45.0
+Provides: perl(PDF::API2::UniWrap) = 2.45.0
+Provides: perl(PDF::API2::Util) = 2.45.0
+Provides: perl(PDF::API2::ViewerPreferences) = 2.45.0
+Provides: perl(PDF::API2::Win32) = 2.45.0
+%define __perllib_provides /bin/true
%{perl_requires}
%description
Create, modify, and examine PDF files
%prep
-%autosetup -n %{cpan_name}-%{version}
+%autosetup -n %{cpan_name}-%{cpan_version}
%build
perl Makefile.PL INSTALLDIRS=vendor
++++++ PDF-API2-2.044.tar.gz -> PDF-API2-2.045.tar.gz ++++++
++++ 1670 lines of diff (skipped)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package perl-DBM-Deep for openSUSE:Factory checked in at 2023-09-29 21:13:57
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-DBM-Deep (Old)
and /work/SRC/openSUSE:Factory/.perl-DBM-Deep.new.28202 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-DBM-Deep"
Fri Sep 29 21:13:57 2023 rev:21 rq:1114062 version:2.0017
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-DBM-Deep/perl-DBM-Deep.changes 2023-08-09 17:26:47.057952188 +0200
+++ /work/SRC/openSUSE:Factory/.perl-DBM-Deep.new.28202/perl-DBM-Deep.changes 2023-09-29 21:15:17.401463806 +0200
@@ -1,0 +2,16 @@
+Tue Sep 26 19:20:20 UTC 2023 - Tina Müller <tina.mueller(a)suse.com>
+
+- Remove package-separator-perl5.38.patch, fixed upstream
+
+-------------------------------------------------------------------
+Tue Sep 5 16:45:07 UTC 2023 - Tina Müller <timueller+perl(a)suse.de>
+
+- updated to 2.0017
+ see /usr/share/doc/packages/perl-DBM-Deep/Changes
+
+ 2.0017 2023-09-01
+
+ - get rid of old perl4-style ' package separator and use :: instead
+ for compatibility with perl 5.38
+
+-------------------------------------------------------------------
Old:
----
DBM-Deep-2.0016.tar.gz
package-separator-perl5.38.patch
New:
----
DBM-Deep-2.0017.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-DBM-Deep.spec ++++++
--- /var/tmp/diff_new_pack.MFbTRD/_old 2023-09-29 21:15:18.641508547 +0200
+++ /var/tmp/diff_new_pack.MFbTRD/_new 2023-09-29 21:15:18.641508547 +0200
@@ -18,15 +18,13 @@
%define cpan_name DBM-Deep
Name: perl-DBM-Deep
-Version: 2.0016
+Version: 2.0017
Release: 0
License: Artistic-1.0 OR GPL-1.0-or-later
Summary: Pure perl multi-level hash/array DBM that supports transactions
URL: https://metacpan.org/release/%{cpan_name}
-Source0: https://cpan.metacpan.org/authors/id/S/SP/SPROUT/%{cpan_name}-%{version}.ta…
+Source0: https://cpan.metacpan.org/authors/id/D/DC/DCANTRELL/%{cpan_name}-%{version}…
Source1: cpanspec.yml
-# PATCH-FIX-UPSTREAM deprecated package separator https://rt.cpan.org/Public/Bug/Display.html?id=148417
-Patch0: package-separator-perl5.38.patch
BuildArch: noarch
BuildRequires: perl
BuildRequires: perl-macros
@@ -47,7 +45,7 @@
Windows.
%prep
-%autosetup -n %{cpan_name}-%{version} -p1
+%autosetup -n %{cpan_name}-%{version}
%build
perl Build.PL --installdirs=vendor
++++++ DBM-Deep-2.0016.tar.gz -> DBM-Deep-2.0017.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBM-Deep-2.0016/Build.PL new/DBM-Deep-2.0017/Build.PL
--- old/DBM-Deep-2.0016/Build.PL 2018-05-21 00:53:02.000000000 +0200
+++ new/DBM-Deep-2.0017/Build.PL 2023-09-01 20:40:47.000000000 +0200
@@ -74,7 +74,8 @@
meta_add => { no_index => { directory => [ 'utils' ] } },
meta_merge => {
resources => {
- repository => 'https://github.com/robkinyon/dbm-deep',
+ repository => 'https://github.com/DrHyde/perl-modules-DBM-Deep',
+ bugtracker => 'https://github.com/DrHyde/perl-modules-DBM-Deep/issues',
}
},
);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBM-Deep-2.0016/Changes new/DBM-Deep-2.0017/Changes
--- old/DBM-Deep-2.0016/Changes 2018-05-21 00:53:02.000000000 +0200
+++ new/DBM-Deep-2.0017/Changes 2023-09-01 20:40:47.000000000 +0200
@@ -1,5 +1,10 @@
Revision history for DBM::Deep (ordered by revision number).
+2.0017 2023-09-01
+
+- get rid of old perl4-style ' package separator and use :: instead
+ for compatibility with perl 5.38
+
2.0016 May 20 15:50:00 2018 PDT
- Fix mistake in the previous release that prevented indexing.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBM-Deep-2.0016/META.json new/DBM-Deep-2.0017/META.json
--- old/DBM-Deep-2.0016/META.json 2018-05-21 00:53:02.000000000 +0200
+++ new/DBM-Deep-2.0017/META.json 2023-09-01 20:40:47.000000000 +0200
@@ -4,13 +4,13 @@
"unknown"
],
"dynamic_config" : 1,
- "generated_by" : "Module::Build version 0.4218",
+ "generated_by" : "Module::Build version 0.4234",
"license" : [
"perl_5"
],
"meta-spec" : {
"url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec",
- "version" : "2"
+ "version" : 2
},
"name" : "DBM-Deep",
"no_index" : {
@@ -47,7 +47,7 @@
"provides" : {
"DBM::Deep" : {
"file" : "lib/DBM/Deep.pm",
- "version" : "2.0016"
+ "version" : "2.0017"
},
"DBM::Deep::Array" : {
"file" : "lib/DBM/Deep/Array.pm"
@@ -127,13 +127,16 @@
},
"release_status" : "stable",
"resources" : {
+ "bugtracker" : {
+ "web" : "https://github.com/DrHyde/perl-modules-DBM-Deep/issues"
+ },
"license" : [
"http://dev.perl.org/licenses/"
],
"repository" : {
- "url" : "https://github.com/robkinyon/dbm-deep"
+ "url" : "https://github.com/DrHyde/perl-modules-DBM-Deep"
}
},
- "version" : "2.0016",
- "x_serialization_backend" : "JSON::PP version 2.27300"
+ "version" : "2.0017",
+ "x_serialization_backend" : "JSON::PP version 4.16"
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBM-Deep-2.0016/META.yml new/DBM-Deep-2.0017/META.yml
--- old/DBM-Deep-2.0016/META.yml 2018-05-21 00:53:02.000000000 +0200
+++ new/DBM-Deep-2.0017/META.yml 2023-09-01 20:40:47.000000000 +0200
@@ -13,7 +13,7 @@
configure_requires:
Module::Build: '0.42'
dynamic_config: 1
-generated_by: 'Module::Build version 0.4218, CPAN::Meta::Converter version 2.150005'
+generated_by: 'Module::Build version 0.4234, CPAN::Meta::Converter version 2.150010'
license: perl
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
@@ -25,7 +25,7 @@
provides:
DBM::Deep:
file: lib/DBM/Deep.pm
- version: '2.0016'
+ version: '2.0017'
DBM::Deep::Array:
file: lib/DBM/Deep/Array.pm
DBM::Deep::Engine:
@@ -82,7 +82,8 @@
Scalar::Util: '1.14'
perl: 5.008_004
resources:
+ bugtracker: https://github.com/DrHyde/perl-modules-DBM-Deep/issues
license: http://dev.perl.org/licenses/
- repository: https://github.com/robkinyon/dbm-deep
-version: '2.0016'
+ repository: https://github.com/DrHyde/perl-modules-DBM-Deep
+version: '2.0017'
x_serialization_backend: 'CPAN::Meta::YAML version 0.018'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBM-Deep-2.0016/Makefile.PL new/DBM-Deep-2.0017/Makefile.PL
--- old/DBM-Deep-2.0016/Makefile.PL 2018-05-21 00:53:02.000000000 +0200
+++ new/DBM-Deep-2.0017/Makefile.PL 2023-09-01 20:40:47.000000000 +0200
@@ -1,24 +1,24 @@
-# Note: this file was auto-generated by Module::Build::Compat version 0.4218
+# Note: this file was auto-generated by Module::Build::Compat version 0.4234
require 5.008004;
use ExtUtils::MakeMaker;
WriteMakefile
(
- 'VERSION_FROM' => 'lib/DBM/Deep.pm',
- 'EXE_FILES' => [],
- 'INSTALLDIRS' => 'site',
- 'PL_FILES' => {},
'PREREQ_PM' => {
- 'Digest::MD5' => '1.00',
- 'Test::Exception' => '0.21',
- 'File::Path' => '0.01',
- 'Fcntl' => '0.01',
'Test::Warn' => '0.08',
+ 'File::Temp' => '0.01',
+ 'Scalar::Util' => '1.14',
+ 'Test::More' => '0.88',
+ 'File::Path' => '0.01',
'Pod::Usage' => '1.3',
'Test::Deep' => '0.095',
- 'Scalar::Util' => '1.14',
- 'File::Temp' => '0.01',
- 'Test::More' => '0.88'
+ 'Digest::MD5' => '1.00',
+ 'Test::Exception' => '0.21',
+ 'Fcntl' => '0.01'
},
- 'NAME' => 'DBM::Deep'
+ 'NAME' => 'DBM::Deep',
+ 'PL_FILES' => {},
+ 'INSTALLDIRS' => 'site',
+ 'EXE_FILES' => [],
+ 'VERSION_FROM' => 'lib/DBM/Deep.pm'
)
;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBM-Deep-2.0016/README new/DBM-Deep-2.0017/README
--- old/DBM-Deep-2.0016/README 2018-05-21 00:53:02.000000000 +0200
+++ new/DBM-Deep-2.0017/README 2023-09-01 20:40:47.000000000 +0200
@@ -2,9 +2,6 @@
DBM::Deep - A pure perl multi-level hash/array DBM that supports
transactions
-VERSION
- 2.0016
-
SYNOPSIS
use DBM::Deep;
my $db = DBM::Deep->new( "foo.db" );
@@ -356,8 +353,8 @@
and direct them to the right place -- the DB file. This has nothing to
do with the "Tie Construction" section above. This simply tells you how
to use DBM::Deep using regular hashes and arrays, rather than calling
- functions like "get()" and "put()" (although those work too). It is
- entirely up to you how to want to access your databases.
+ functions like get() and put() (although those work too). It is entirely
+ up to you how to want to access your databases.
Hashes
You can treat any DBM::Deep object like a normal Perl hash reference.
@@ -371,25 +368,25 @@
print $db->{myhash}->{subkey} . "\n";
- You can even step through hash keys using the normal Perl "keys()"
+ You can even step through hash keys using the normal Perl keys()
function:
foreach my $key (keys %$db) {
print "$key: " . $db->{$key} . "\n";
}
- Remember that Perl's "keys()" function extracts *every* key from the
- hash and pushes them onto an array, all before the loop even begins. If
- you have an extremely large hash, this may exhaust Perl's memory.
- Instead, consider using Perl's "each()" function, which pulls
- keys/values one at a time, using very little memory:
+ Remember that Perl's keys() function extracts *every* key from the hash
+ and pushes them onto an array, all before the loop even begins. If you
+ have an extremely large hash, this may exhaust Perl's memory. Instead,
+ consider using Perl's each() function, which pulls keys/values one at a
+ time, using very little memory:
while (my ($key, $value) = each %$db) {
print "$key: $value\n";
}
- Please note that when using "each()", you should always pass a direct
- hash reference, not a lookup. Meaning, you should never do this:
+ Please note that when using each(), you should always pass a direct hash
+ reference, not a lookup. Meaning, you should never do this:
# NEVER DO THIS
while (my ($key, $value) = each %{$db->{foo}}) { # BAD
@@ -403,8 +400,8 @@
Arrays
As with hashes, you can treat any DBM::Deep object like a normal Perl
array reference. This includes inserting, removing and manipulating
- elements, and the "push()", "pop()", "shift()", "unshift()" and
- "splice()" functions. The object must have first been created using type
+ elements, and the push(), pop(), shift(), unshift() and splice()
+ functions. The object must have first been created using type
"DBM::Deep->TYPE_ARRAY", or simply be a nested array reference inside a
hash. Example:
@@ -427,9 +424,8 @@
In addition to the *tie()* interface, you can also use a standard OO
interface to manipulate all aspects of DBM::Deep databases. Each type of
object (hash or array) has its own methods, but both types share the
- following common methods: "put()", "get()", "exists()", "delete()" and
- "clear()". "fetch()" and "store()" are aliases to "put()" and "get()",
- respectively.
+ following common methods: put(), get(), exists(), delete() and clear().
+ fetch() and store() are aliases to put() and get(), respectively.
* new() / clone()
@@ -491,7 +487,7 @@
This will compress the datafile so that it takes up as little space
as possible. There is a freespace manager so that when space is
freed up, it is used before extending the size of the datafile. But,
- that freespace just sits in the datafile unless "optimize()" is
+ that freespace just sits in the datafile unless optimize() is
called.
"optimize" basically copies everything into a new database, so, if
@@ -499,11 +495,10 @@
* import()
- Unlike simple assignment, "import()" does not tie the right-hand
- side. Instead, a copy of your data is put into the DB. "import()"
- takes either an arrayref (if your DB is an array) or a hashref (if
- your DB is a hash). "import()" will die if anything else is passed
- in.
+ Unlike simple assignment, import() does not tie the right-hand side.
+ Instead, a copy of your data is put into the DB. import() takes
+ either an arrayref (if your DB is an array) or a hashref (if your DB
+ is a hash). import() will die if anything else is passed in.
* export()
@@ -536,7 +531,7 @@
Hashes
For hashes, DBM::Deep supports all the common methods described above,
- and the following additional methods: "first_key()" and "next_key()".
+ and the following additional methods: first_key() and next_key().
* first_key()
@@ -575,8 +570,8 @@
Arrays
For arrays, DBM::Deep supports all the common methods described above,
- and the following additional methods: "length()", "push()", "pop()",
- "shift()", "unshift()" and "splice()".
+ and the following additional methods: length(), push(), pop(), shift(),
+ unshift() and splice().
* length()
@@ -659,16 +654,16 @@
locking => 1
);
- This causes DBM::Deep to "flock()" the underlying filehandle with
+ This causes DBM::Deep to flock() the underlying filehandle with
exclusive mode for writes, and shared mode for reads. This is required
if you have multiple processes accessing the same database file, to
- avoid file corruption. Please note that "flock()" does NOT work for
- files over NFS. See "DB over NFS" below for more.
+ avoid file corruption. Please note that flock() does NOT work for files
+ over NFS. See "DB over NFS" below for more.
Explicit Locking
You can explicitly lock a database, so it remains locked for multiple
- actions. This is done by calling the "lock_exclusive()" method (for when
- you want to write) or the "lock_shared()" method (for when you want to
+ actions. This is done by calling the lock_exclusive() method (for when
+ you want to write) or the lock_shared() method (for when you want to
read). This is particularly useful for things like counters, where the
current value needs to be fetched, then incremented, then stored again.
@@ -691,16 +686,16 @@
future release.
IMPORTING/EXPORTING
- You can import existing complex structures by calling the "import()"
+ You can import existing complex structures by calling the import()
method, and export an entire database into an in-memory structure using
- the "export()" method. Both are examined here.
+ the export() method. Both are examined here.
Importing
Say you have an existing hash with nested hashes/arrays inside it.
Instead of walking the structure and adding keys/elements to the
- database as you go, simply pass a reference to the "import()" method.
- This recursively adds everything to an existing DBM::Deep object for
- you. Here is an example:
+ database as you go, simply pass a reference to the import() method. This
+ recursively adds everything to an existing DBM::Deep object for you.
+ Here is an example:
my $struct = {
key1 => "value1",
@@ -720,18 +715,18 @@
This recursively imports the entire $struct object into $db, including
all nested hashes and arrays. If the DBM::Deep object contains existing
data, keys are merged with the existing ones, replacing if they already
- exist. The "import()" method can be called on any database level (not
- just the base level), and works with both hash and array DB types.
+ exist. The import() method can be called on any database level (not just
+ the base level), and works with both hash and array DB types.
Note: Make sure your existing structure has no circular references in
it. These will cause an infinite loop when importing. There are plans to
fix this in a later release.
Exporting
- Calling the "export()" method on an existing DBM::Deep object will
- return a reference to a new in-memory copy of the database. The export
- is done recursively, so all nested hashes/arrays are all exported to
- standard Perl objects. Here is an example:
+ Calling the export() method on an existing DBM::Deep object will return
+ a reference to a new in-memory copy of the database. The export is done
+ recursively, so all nested hashes/arrays are all exported to standard
+ Perl objects. Here is an example:
my $db = DBM::Deep->new( "foo.db" );
@@ -746,10 +741,10 @@
print $struct->{key1} . "\n"; # prints "value1"
This makes a complete copy of the database in memory, and returns a
- reference to it. The "export()" method can be called on any database
- level (not just the base level), and works with both hash and array DB
- types. Be careful of large databases -- you can store a lot more data in
- a DBM::Deep object than an in-memory Perl structure.
+ reference to it. The export() method can be called on any database level
+ (not just the base level), and works with both hash and array DB types.
+ Be careful of large databases -- you can store a lot more data in a
+ DBM::Deep object than an in-memory Perl structure.
Note: Make sure your database has no circular references in it. These
will cause an infinite loop when exporting. There are plans to fix this
@@ -761,7 +756,7 @@
perfect way to extend the engine, and implement things like real-time
compression or encryption. Filtering applies to the base DB level, and
all child hashes / arrays. Filter hooks can be specified when your
- DBM::Deep object is first constructed, or by calling the "set_filter()"
+ DBM::Deep object is first constructed, or by calling the set_filter()
method at any time. There are four available filter hooks.
set_filter()
@@ -782,8 +777,8 @@
* filter_fetch_key
This filter is called whenever a hash key is fetched (i.e. via
- "first_key()" or "next_key()"). It is passed the transformed key,
- and expected to return the plain key.
+ first_key() or next_key()). It is passed the transformed key, and
+ expected to return the plain key.
* filter_fetch_value
@@ -855,8 +850,7 @@
LOW-LEVEL ACCESS
If you require low-level access to the underlying filehandle that
- DBM::Deep uses, you can call the "_fh()" method, which returns the
- handle:
+ DBM::Deep uses, you can call the _fh() method, which returns the handle:
my $fh = $db->_fh();
@@ -864,7 +858,7 @@
child hashes or arrays. All levels share a *root* structure, which
contains things like the filehandle, a reference counter, and all the
options specified when you created the object. You can get access to
- this file object by calling the "_storage()" method.
+ this file object by calling the _storage() method.
my $file_obj = $db->_storage();
@@ -906,9 +900,9 @@
$db2->{foo} = $db1->{foo}; # dies
Note: Passing the object to a function that recursively walks the object
- tree (such as *Data::Dumper* or even the built-in "optimize()" or
- "export()" methods) will result in an infinite loop. This will be fixed
- in a future release by adding singleton support.
+ tree (such as *Data::Dumper* or even the built-in optimize() or export()
+ methods) will result in an infinite loop. This will be fixed in a future
+ release by adding singleton support.
TRANSACTIONS
As of 1.0000, DBM::Deep has ACID transactions. Every DBM::Deep object is
@@ -1036,10 +1030,10 @@
Data::Dump::Streamer provides a mechanism for serializing coderefs,
including saving off all closure state. This would allow for
DBM::Deep to store the code for a subroutine. Then, whenever the
- subroutine is read, the code could be "eval()"'ed into being.
- However, just as for SCALAR and REF, that closure state may change
- without notifying the DBM::Deep object storing the reference. Again,
- this would generally be considered a feature.
+ subroutine is read, the code could be eval()'ed into being. However,
+ just as for SCALAR and REF, that closure state may change without
+ notifying the DBM::Deep object storing the reference. Again, this
+ would generally be considered a feature.
External references and transactions
If you do "my $x = $db->{foo};", then start a transaction, $x will be
@@ -1052,7 +1046,7 @@
The current level of error handling in DBM::Deep is minimal. Files *are*
checked for a 32-bit signature when opened, but any other form of
corruption in the datafile can cause segmentation faults. DBM::Deep may
- try to "seek()" past the end of a file, or get stuck in an infinite loop
+ try to seek() past the end of a file, or get stuck in an infinite loop
depending on the level and type of corruption. File write operations are
not checked for failure (for speed), so if you happen to run out of disk
space, DBM::Deep will probably fail in a bad way. These things will be
@@ -1062,15 +1056,15 @@
Beware of using DBM::Deep files over NFS. DBM::Deep uses flock(), which
works well on local filesystems, but will NOT protect you from file
corruption over NFS. I've heard about setting up your NFS server with a
- locking daemon, then using "lockf()" to lock your files, but your
- mileage may vary there as well. From what I understand, there is no real
- way to do it. However, if you need access to the underlying filehandle
- in DBM::Deep for using some other kind of locking scheme like "lockf()",
- see the "LOW-LEVEL ACCESS" section above.
+ locking daemon, then using lockf() to lock your files, but your mileage
+ may vary there as well. From what I understand, there is no real way to
+ do it. However, if you need access to the underlying filehandle in
+ DBM::Deep for using some other kind of locking scheme like lockf(), see
+ the "LOW-LEVEL ACCESS" section above.
Copying Objects
Beware of copying tied objects in Perl. Very strange things can happen.
- Instead, use DBM::Deep's "clone()" method which safely copies the object
+ Instead, use DBM::Deep's clone() method which safely copies the object
and returns a new, blessed and tied hash or array to the same level in
the DB.
@@ -1106,10 +1100,10 @@
stale reference as an array or hash reference will cause an error.
Large Arrays
- Beware of using "shift()", "unshift()" or "splice()" with large arrays.
- These functions cause every element in the array to move, which can be
- murder on DBM::Deep, as every element has to be fetched from disk, then
- stored again in a different location. This will be addressed in a future
+ Beware of using shift(), unshift() or splice() with large arrays. These
+ functions cause every element in the array to move, which can be murder
+ on DBM::Deep, as every element has to be fetched from disk, then stored
+ again in a different location. This will be addressed in a future
version.
This has been somewhat addressed so that the cost is constant,
@@ -1140,7 +1134,7 @@
future changes to $x can be tracked within the DBM::Deep file and is
considered to be a feature. By the time the rollback occurs, there is no
knowledge that there had been an $x or what memory location to assign an
- "export()" to.
+ export() to.
NOTE: This does not affect importing because imports do a walk over the
reference to be imported in order to explicitly leave it untied.
@@ -1182,18 +1176,16 @@
---------------------------- ------ ------ ------ ------ ------ ------ ------
MORE INFORMATION
- Check out the DBM::Deep Google Group at
- <http://groups.google.com/group/DBM-Deep> or send email to
- DBM-Deep(a)googlegroups.com <mailto:DBM-Deep@googlegroups.com>. You can
- also visit #dbm-deep on irc.perl.org
-
- The source code repository is at <http://github.com/robkinyon/dbm-deep>
+ The source code repository is at
+ <http://github.com/DrHyde/perl-modules-DBM-Deep>
MAINTAINERS
- Rob Kinyon, rkinyon(a)cpan.org <mailto:rkinyon@cpan.org>
+ Currently maintained by David Cantrell dcantrell(a)cpan.org
+ <mailto:dcantrell@cpan.org>.
Originally written by Joseph Huckaby, jhuckaby(a)cpan.org
- <mailto:jhuckaby@cpan.org>
+ <mailto:jhuckaby@cpan.org> with significant additions by Rob Kinyon,
+ rkinyon(a)cpan.org <mailto:rkinyon@cpan.org>
SPONSORS
Stonehenge Consulting (<http://www.stonehenge.com/>) sponsored the
@@ -1225,7 +1217,7 @@
perltie(1), Tie::Hash(3), Fcntl(3), flock(2), lockf(3), nfs(5)
LICENSE
- Copyright (c) 2007-14 Rob Kinyon. All Rights Reserved. This is free
- software, you may use it and distribute it under the same terms as Perl
- itself.
+ Copyright (c) 2007-23 Rob Kinyon and others. All Rights Reserved. This
+ is free software, you may use it and distribute it under the same terms
+ as Perl itself.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBM-Deep-2.0016/lib/DBM/Deep.pm new/DBM-Deep-2.0017/lib/DBM/Deep.pm
--- old/DBM-Deep-2.0016/lib/DBM/Deep.pm 2018-05-21 00:53:02.000000000 +0200
+++ new/DBM-Deep-2.0017/lib/DBM/Deep.pm 2023-09-01 20:40:47.000000000 +0200
@@ -6,7 +6,7 @@
use warnings FATAL => 'all';
no warnings 'recursion';
-our $VERSION = q(2.0016);
+our $VERSION = q(2.0017);
use Scalar::Util ();
@@ -647,13 +647,13 @@
# to avoid this hack. warnings.pm did not allow us to specify
# exactly the call frame we want, so we have to look at the bitmask
# ourselves.
- if( vec $bitmask, $warnings'Offsets{$_[0]}, 1,
- || vec $bitmask, $warnings'Offsets{all}, 1,
+ if( vec $bitmask, $warnings::Offsets{$_[0]}, 1,
+ || vec $bitmask, $warnings::Offsets{all}, 1,
) {
my $msg = $_[1] =~ /\n\z/ ? $_[1] : "$_[1] at $file line $line.\n";
die $msg
- if vec $bitmask, $warnings'Offsets{$_[0]}+1, 1,
- || vec $bitmask, $warnings'Offsets{all}+1, 1;
+ if vec $bitmask, $warnings::Offsets{$_[0]}+1, 1,
+ || vec $bitmask, $warnings::Offsets{all}+1, 1;
warn $msg;
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBM-Deep-2.0016/lib/DBM/Deep.pod new/DBM-Deep-2.0017/lib/DBM/Deep.pod
--- old/DBM-Deep-2.0016/lib/DBM/Deep.pod 2018-05-21 00:53:02.000000000 +0200
+++ new/DBM-Deep-2.0017/lib/DBM/Deep.pod 2023-09-01 20:40:47.000000000 +0200
@@ -2,10 +2,6 @@
DBM::Deep - A pure perl multi-level hash/array DBM that supports transactions
-=head1 VERSION
-
-2.0016
-
=head1 SYNOPSIS
use DBM::Deep;
@@ -1275,17 +1271,15 @@
=head1 MORE INFORMATION
-Check out the DBM::Deep Google Group at L<http://groups.google.com/group/DBM-Deep>
-or send email to L<DBM-Deep@googlegroups.com|mailto:DBM-Deep@googlegroups.com>.
-You can also visit #dbm-deep on irc.perl.org
-
-The source code repository is at L<http://github.com/robkinyon/dbm-deep>
+The source code repository is at L<http://github.com/DrHyde/perl-modules-DBM-Deep>
=head1 MAINTAINERS
-Rob Kinyon, L<rkinyon@cpan.org|mailto:rkinyon@cpan.org>
+Currently maintained by David Cantrell L<dcantrell@cpan.org|mailto:dcantrell@cpan.org>.
Originally written by Joseph Huckaby, L<jhuckaby@cpan.org|mailto:jhuckaby@cpan.org>
+with significant additions by Rob Kinyon, L<rkinyon@cpan.org|mailto:rkinyon@cpan.org>
+
=head1 SPONSORS
@@ -1323,7 +1317,7 @@
=head1 LICENSE
-Copyright (c) 2007-14 Rob Kinyon. All Rights Reserved.
+Copyright (c) 2007-23 Rob Kinyon and others. All Rights Reserved.
This is free software, you may use it and distribute it under the same terms
as Perl itself.
++++++ cpanspec.yml ++++++
--- /var/tmp/diff_new_pack.MFbTRD/_old 2023-09-29 21:15:18.813514753 +0200
+++ /var/tmp/diff_new_pack.MFbTRD/_new 2023-09-29 21:15:18.821515042 +0200
@@ -7,10 +7,10 @@
#sources:
# - source1
# - source2
-patches:
+#patches:
# foo.patch: -p1
# bar.patch:
- package-separator-perl5.38.patch: -p1 PATCH-FIX-UPSTREAM deprecated package separator https://rt.cpan.org/Public/Bug/Display.html?id=148417
+# package-separator-perl5.38.patch: -p1 PATCH-FIX-UPSTREAM deprecated package separator https://rt.cpan.org/Public/Bug/Display.html?id=148417
#preamble: |-
# BuildRequires: gcc-c++
#post_prep: |-
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package perl-GnuPG-Interface for openSUSE:Factory checked in at 2023-09-29 21:13:56
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-GnuPG-Interface (Old)
and /work/SRC/openSUSE:Factory/.perl-GnuPG-Interface.new.28202 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-GnuPG-Interface"
Fri Sep 29 21:13:56 2023 rev:5 rq:1114061 version:1.30.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-GnuPG-Interface/perl-GnuPG-Interface.changes 2021-04-17 00:01:47.653596819 +0200
+++ /work/SRC/openSUSE:Factory/.perl-GnuPG-Interface.new.28202/perl-GnuPG-Interface.changes 2023-09-29 21:15:14.473358161 +0200
@@ -1,0 +2,14 @@
+Tue Sep 26 19:52:54 UTC 2023 - Tina Müller <tina.mueller(a)suse.com>
+
+- Add permission fix for tests
+
+-------------------------------------------------------------------
+Sat Sep 16 03:06:20 UTC 2023 - Tina Müller <timueller+perl(a)suse.de>
+
+- updated to 1.03
+ see /usr/share/doc/packages/perl-GnuPG-Interface/Changes
+
+ 1.03 - 2023-09-14
+ - Add fix for running in taint mode for Perl 5.38.0(thanks to Andrew Ruthven)
+
+-------------------------------------------------------------------
Old:
----
GnuPG-Interface-1.02.tar.gz
New:
----
GnuPG-Interface-1.03.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-GnuPG-Interface.spec ++++++
--- /var/tmp/diff_new_pack.ZCiI8v/_old 2023-09-29 21:15:16.421428447 +0200
+++ /var/tmp/diff_new_pack.ZCiI8v/_new 2023-09-29 21:15:16.429428735 +0200
@@ -1,7 +1,7 @@
#
# spec file for package perl-GnuPG-Interface
#
-# Copyright (c) 2021 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,20 +16,20 @@
#
+%define cpan_name GnuPG-Interface
Name: perl-GnuPG-Interface
-Version: 1.02
+Version: 1.30.0
Release: 0
-%define cpan_name GnuPG-Interface
-Summary: Perl interface to GnuPG
+%define cpan_version 1.03
License: Artistic-1.0 OR GPL-1.0-or-later
-Group: Development/Libraries/Perl
+Summary: Supply object methods for interacting with GnuPG
URL: https://metacpan.org/release/%{cpan_name}
-Source0: https://cpan.metacpan.org/authors/id/B/BP/BPS/%{cpan_name}-%{version}.tar.gz
+Source0: https://cpan.metacpan.org/authors/id/B/BP/BPS/%{cpan_name}-%{cpan_version}.…
Source1: cpanspec.yml
BuildArch: noarch
-BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: perl
BuildRequires: perl-macros
+BuildRequires: perl(ExtUtils::MakeMaker) >= 6.36
BuildRequires: perl(Math::BigInt) >= 1.78
BuildRequires: perl(Moo) >= 0.091011
BuildRequires: perl(MooX::HandlesVia) >= 0.001004
@@ -38,6 +38,21 @@
Requires: perl(Moo) >= 0.091011
Requires: perl(MooX::HandlesVia) >= 0.001004
Requires: perl(MooX::late) >= 0.014
+Provides: perl(GnuPG::Fingerprint)
+Provides: perl(GnuPG::Handles)
+Provides: perl(GnuPG::HashInit)
+Provides: perl(GnuPG::Interface) = 1.30.0
+Provides: perl(GnuPG::Key)
+Provides: perl(GnuPG::Options)
+Provides: perl(GnuPG::PrimaryKey)
+Provides: perl(GnuPG::PublicKey)
+Provides: perl(GnuPG::Revoker)
+Provides: perl(GnuPG::SecretKey)
+Provides: perl(GnuPG::Signature)
+Provides: perl(GnuPG::SubKey)
+Provides: perl(GnuPG::UserAttribute)
+Provides: perl(GnuPG::UserId)
+%define __perllib_provides /bin/true
%{perl_requires}
# MANUAL BEGIN
BuildRequires: gpg2
@@ -51,14 +66,18 @@
verification, and key-listing parsing.
%prep
-%setup -q -n %{cpan_name}-%{version}
-# remove tests that require an online system (OBS workers have no network)
-rm t/get_public_keys.t
+%autosetup -n %{cpan_name}-%{cpan_version}
+
+find . -type f ! -path "*/t/*" ! -name "*.pl" ! -path "*/bin/*" ! -path "*/script/*" ! -path "*/scripts/*" ! -name "configure" -print0 | xargs -0 chmod 644
%build
PERL_USE_UNSAFE_INC=1 perl Makefile.PL INSTALLDIRS=vendor
-make %{?_smp_mflags}
+%make_build
+# MANUAL BEGIN
+chmod 755 ./test/fake-gpg-v*
+
+# MANUAL END
%check
# RT#88963
%{__make} test || :
@@ -70,6 +89,5 @@
%perl_gen_filelist
%files -f %{name}.files
-%defattr(-,root,root,755)
%doc Changes README
++++++ GnuPG-Interface-1.02.tar.gz -> GnuPG-Interface-1.03.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/GnuPG-Interface-1.02/Changes new/GnuPG-Interface-1.03/Changes
--- old/GnuPG-Interface-1.02/Changes 2021-04-09 22:58:48.000000000 +0200
+++ new/GnuPG-Interface-1.03/Changes 2023-09-15 17:31:11.000000000 +0200
@@ -1,5 +1,8 @@
Revision history for GnuPG-Interface
+1.03 - 2023-09-14
+ - Add fix for running in taint mode for Perl 5.38.0(thanks to Andrew Ruthven)
+
1.02 - 2021-04-09
- Work around an issue with CLI options for deleting secret keys in gpg 2.2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/GnuPG-Interface-1.02/MANIFEST new/GnuPG-Interface-1.03/MANIFEST
--- old/GnuPG-Interface-1.02/MANIFEST 2021-04-09 23:01:01.000000000 +0200
+++ new/GnuPG-Interface-1.03/MANIFEST 2023-09-15 17:28:58.000000000 +0200
@@ -48,6 +48,7 @@
t/passphrase_handling.t
t/sign.t
t/sign_and_encrypt.t
+t/taint_mode.t
t/UserId.t
t/verify.t
t/version_updates.t
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/GnuPG-Interface-1.02/META.yml new/GnuPG-Interface-1.03/META.yml
--- old/GnuPG-Interface-1.02/META.yml 2021-04-09 23:01:25.000000000 +0200
+++ new/GnuPG-Interface-1.03/META.yml 2023-09-15 17:32:30.000000000 +0200
@@ -8,7 +8,7 @@
ExtUtils::MakeMaker: 6.36
distribution_type: module
dynamic_config: 1
-generated_by: 'Module::Install version 1.19'
+generated_by: 'Module::Install version 1.21'
license: perl
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
@@ -28,4 +28,4 @@
Scalar::Util: 0
resources:
license: http://dev.perl.org/licenses/
-version: '1.02'
+version: '1.03'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/GnuPG-Interface-1.02/SIGNATURE new/GnuPG-Interface-1.03/SIGNATURE
--- old/GnuPG-Interface-1.02/SIGNATURE 2021-04-09 23:01:34.000000000 +0200
+++ new/GnuPG-Interface-1.03/SIGNATURE 2023-09-15 17:32:33.000000000 +0200
@@ -1,5 +1,5 @@
This file contains message digests of all files listed in MANIFEST,
-signed via the Module::Signature module, version 0.79.
+signed via the Module::Signature module, version 0.88.
To verify the content in this distribution, first make sure you have
Module::Signature installed, then type:
@@ -14,95 +14,96 @@
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
-SHA1 58df30f41479b74a5136dce6cb57903bb9bccf6f Changes
-SHA1 b8afd3fa6b961d3e0a64dd941b07b2bf08a18020 MANIFEST
-SHA1 01aaeb25c70093c04dd0b27f8619332393830652 MANIFEST.SKIP
-SHA1 ad518658d7ce95936baa78955559d9b912b92b55 META.yml
-SHA1 c121366967afd6b218323ea4df929d1bbed43110 Makefile.PL
-SHA1 2fc4a445629985a484469b495f1ceb15f7b635d9 README
-SHA1 c3f8f9f2a209f80b7ca3c8af3a6b1b7b408ad620 inc/Module/Install.pm
-SHA1 de30b539a326675c42e6ad360fddb05902d621be inc/Module/Install/Base.pm
-SHA1 81fffeca82bcd7100d8435b139f0780fcc5cdf9c inc/Module/Install/Can.pm
-SHA1 b4dd9cb3cf0cb60390c575bd3405e2297d4a0b1a inc/Module/Install/Fetch.pm
-SHA1 b84cf97b12f8e5ef37bea54e33ddce32dff804d1 inc/Module/Install/Makefile.pm
-SHA1 0d9fd69718198fcd1560214c4f23fcaa44f8395e inc/Module/Install/Metadata.pm
-SHA1 8d19f4485276b987b7838d4ec01909f8055a4724 inc/Module/Install/ReadmeFromPod.pm
-SHA1 99b8179fbd9e05422b161cf91abe198744188064 inc/Module/Install/Win32.pm
-SHA1 6a91e14bbecc64e9c8e2261dfa4b360641d152e4 inc/Module/Install/WriteAll.pm
-SHA1 0b8019dedbd45a368d11088e29ef9f169ed40539 lib/GnuPG/Fingerprint.pm
-SHA1 7d9dc51ba25c5525d796c195ab2a15380f78029d lib/GnuPG/Handles.pm
-SHA1 b2fe771ca9a1d719b222013e08b93ab57f7452e8 lib/GnuPG/HashInit.pm
-SHA1 08af10bd5fa9f78c8064a211810a17454050d482 lib/GnuPG/Interface.pm
-SHA1 fc1ae42e880aa2b730e77f4a46da33ff4ce578fc lib/GnuPG/Key.pm
-SHA1 a9aeb895a186cffec1828bf9fca9411234505b47 lib/GnuPG/Options.pm
-SHA1 bd3ab65a9089e086ff3bf44781a099830cdd2f6e lib/GnuPG/PrimaryKey.pm
-SHA1 a38e294729aac733fafcf9d7e4b7ef5fcb50e685 lib/GnuPG/PublicKey.pm
-SHA1 4b917013b36c4e66bdf3ae27cc8e056c9bd6be64 lib/GnuPG/Revoker.pm
-SHA1 3dbf6667b73b61dff5bc8db30b6dd81415297c09 lib/GnuPG/SecretKey.pm
-SHA1 f19dfa77fd83fcc520aa2246318b359c0ba844cd lib/GnuPG/Signature.pm
-SHA1 3267654e96c0fbe6805c466f193e92c5cd8a5e5b lib/GnuPG/SubKey.pm
-SHA1 acfec9fd5e879711280d5ac8ebfd667fde8d4f1e lib/GnuPG/UserAttribute.pm
-SHA1 d70a9e4c89b2fe445c733dc9c177d62cc9f44826 lib/GnuPG/UserId.pm
-SHA1 b9e982d8360e168c1c9d565582e42f2dd792062b t/000_setup.t
-SHA1 367fdb308292a9c005afffef49ff9096a20a4da3 t/Fingerprint.t
-SHA1 d9dd42839cf88b708fc1a87ebb8d4cec1e9be51c t/Interface.t
-SHA1 980fcd5a1d302e65cc2414be96d5f3a4266e8308 t/MyTest.pm
-SHA1 53f15a6d3c5c3943ade61f5fe597d537b6b2b068 t/MyTestSpecific.pm
-SHA1 ccd942d9f00627253d7eb9c011116dc5671639b8 t/UserId.t
-SHA1 e2e53ab9458c61d32b973a16d32573a954e13769 t/clearsign.t
-SHA1 d89a92151669da3fec256502f5014261077e2226 t/decrypt.t
-SHA1 b828dfb74321c117264b4418cf57d2da3d96f7c4 t/detach_sign.t
-SHA1 f7471dc0a0d56ddd4b3c914b6f8b835eecc38660 t/encrypt.t
-SHA1 2d8d00e2bd767c658c2a795ec970398af3c87ebe t/encrypt_symmetrically.t
-SHA1 ae21d78d4a3af65ff7eaef240cc90f3d09a2229e t/export_keys.t
-SHA1 e4083dae3946081b3a757825213a131e78e5dc09 t/get_public_keys.t
-SHA1 9d64b90da57e904bcae368496e78d4f132604b8c t/get_secret_keys.t
-SHA1 5a4cbcdac983766a60f5f25db20bf81f251c9b3a t/import_keys.t
-SHA1 6dd9228dc8316384b5fc6410012f7fd5eac19c19 t/list_public_keys.t
-SHA1 d75d9f785b3094421011f0ad8c1799dad225aff4 t/list_secret_keys.t
-SHA1 d0bb05cee33efd536962e28b9f1eacd2cb03bf2b t/list_sigs.t
-SHA1 07a602cbb5a78518cd4cccfb7007e80564a19e1e t/passphrase_handling.t
-SHA1 99c53aa0a919cbf16cba74be84c6cff3af0cd097 t/sign.t
-SHA1 cef254d25a4c8a8b2e02d4f215d2297b95f07f1c t/sign_and_encrypt.t
-SHA1 cabbf4e667027f9bb7958673bc9b8be2d1577e29 t/verify.t
-SHA1 c66d9fcfc45a37d72c729eefba9a377d5778329f t/version_updates.t
-SHA1 8fd17bc4ad8ac4c4357503edfe2d1a952a44c28b t/wrap_call.t
-SHA1 375f99600a05d4b1bbaff046bd079194e1625bb1 t/z_delete_keys.t
-SHA1 c005f5b1de96721e9455ddc3dc727d5d4bd17615 t/zzz_cleanup.t
-SHA1 58f58338a2922798c59c5e852bd0110541f27e2d test/encrypted.1.gpg
-SHA1 6b4f8006e15940ca93d8629a145258bdc109edd3 test/encrypted.2.gpg
-SHA1 3b0e1dbd40b361ceda883f1a563201ff65fc25d8 test/fake-gpg-v1
-SHA1 c0686932708d254906a003a5ffe46f170530022d test/fake-gpg-v2
-SHA1 3c6c6dd448fcf2a67b241fead821146489e6e46f test/fake-pinentry.pl
-SHA1 1290379acadab2cc713d659c7c3feff2b0923f75 test/gpg.conf
-SHA1 b012a47f295ee9dcc955560b9a78c0ad3a61e137 test/key.1.asc
-SHA1 6a34c098dd418f13266020d4c7e810f2da08e7b0 test/new_secret.pgp
-SHA1 4e1243bd22c66e76c2ba9eddc1f91394e57f9f83 test/passphrase
-SHA1 59c0e6436b38645144d17ce11ac4aabfdd43e960 test/plain.1.txt
-SHA1 a2e120b6c6effab16d8734ea6e56e80a28858742 test/plain.2.txt
-SHA1 7d94ea032bdbb0104c1dc73583ec64ade6294495 test/public-keys-sigs/1.0.test
-SHA1 63d93054decf9ff6c2dc99eb03f131b55af4ee43 test/public-keys-sigs/1.1.test
-SHA1 bd9892a93f802c68109b11b756f79f6b0292eb1a test/public-keys-sigs/2.0.test
-SHA1 73d90696020a01753cda984262a2831dcc6ac0d7 test/public-keys-sigs/2.1.test
-SHA1 82d483adc6d203c79856a70dd259370f6efdeef7 test/public-keys/1.0.test
-SHA1 86056ad37b8bb67d55ac61b5d5a27ac4bbd1cceb test/public-keys/1.1.test
-SHA1 a8e97a2439671dae0dd29a2404c321ccb686ba7a test/public-keys/2.0.test
-SHA1 54d2c13bf3b73b7582edef091175dfe3763ddf59 test/public-keys/2.1.test
-SHA1 4349906c08f65af3b13e7b441ac4dd2e637bfeae test/public_keys.pgp
-SHA1 8fcae9373283d70fc2b941ebd5e59fc03147b40b test/secret-keys/1.0.test
-SHA1 5ab2fd7245b905259aa5dccc023f1e0a4417a55a test/secret-keys/1.1.test
-SHA1 3d9fc47a5598f62170aee923d7b00f81079cb6bc test/secret-keys/1.2.test
-SHA1 3bd6135279f9ae23e32680707c6170910421e5de test/secret-keys/2.0.test
-SHA1 9ce5508cd8cefadc4c9bf2842864b52e87b1826e test/secret_keys.pgp
-SHA1 981418a80bf7dab91b63608cfd1ddf5091f89ad7 test/signed.1.asc
+SHA256 91b53f531350d31d21c7e9f3104b7ef0d48a96e5c6ea9eaa64fa475d51c1bce2 Changes
+SHA256 1335737b60af96b1dd394fe1b04dc82a4023da6f9285c0a8abd77c7eaf8ed41e MANIFEST
+SHA256 93d50f37fd222dbe3a8590a019f39d7a79ba725227b53ea6f9dd195830e2fb77 MANIFEST.SKIP
+SHA256 0531f930cd01f4e65819a463cf121a66c54a25533b85e97714e8abfd54098bab META.yml
+SHA256 d66b805878b178c170e04ea8e8c06bff2b83c43463e191fd38472360f60835b0 Makefile.PL
+SHA256 c0d74f2b2987828dc66017694f36454f429b5be29ca235db1e626f12d67cc1b2 README
+SHA256 cd5397bbe618f5bbd4e12a33b0cf5d21114e771c2dbd0ce28e2135beb52c35a8 inc/Module/Install.pm
+SHA256 798836f9ccb8d204b1be31fc3835631f57e9d818b21a8f0d14bfcfb82ff4a72a inc/Module/Install/Base.pm
+SHA256 d64cd4c16f83c5baf11f64a44bea3a0abc060a49da5aba040f0eb01394bf75ab inc/Module/Install/Can.pm
+SHA256 65d7a6098bf3f829e8c1c2865476d3537aa6f0ad0ffc9149e10812c856529043 inc/Module/Install/Fetch.pm
+SHA256 70c4b77acab3ff51dfb318110369607cb109e1c319459249623b787cf3859750 inc/Module/Install/Makefile.pm
+SHA256 14556386168007ce913e669fc08a332ccdb6140246fd55a90c879b5190c1b57a inc/Module/Install/Metadata.pm
+SHA256 53825bc78e4c910b888160bc148c8bc211be58e02b99c8edcbf4854f95faa049 inc/Module/Install/ReadmeFromPod.pm
+SHA256 4c746c02c5cc19bed4c352e76205b4adff4c45ce8310d71294e1b83c059659c2 inc/Module/Install/Win32.pm
+SHA256 d3d9b4583243c470ae895defa4c44564485b53693cba1c50ab0320768f443e97 inc/Module/Install/WriteAll.pm
+SHA256 21170a181c773923aa779477d62eed6357f44c9ab27b2abd216f097d78901c9e lib/GnuPG/Fingerprint.pm
+SHA256 341fe948514a63dc081708c3a5356e0237ef1f333d964d99e9829a9e956f82d9 lib/GnuPG/Handles.pm
+SHA256 fa9fca26659ef2baba11543b4cbcb141dc6d66191cea9bc07140a8cb3bccec9f lib/GnuPG/HashInit.pm
+SHA256 77ae56969e71a7109f1920edb389fedff97a74a791d3cc43b38fe73113818983 lib/GnuPG/Interface.pm
+SHA256 f53d8e10107713b8c72d1e0ae13021964344ed205e412fb49621ada6fd32bf3e lib/GnuPG/Key.pm
+SHA256 729f79dfaf58ba9d7321a8005f90a9dea1614b61556c50120bc323fe753e0022 lib/GnuPG/Options.pm
+SHA256 de1dbcd19ece6fd939367f1132f08afdede2553e4c20028d08c186d10ec0d9c8 lib/GnuPG/PrimaryKey.pm
+SHA256 21e7704eb1b290470661c8d256b5391941203ce42df10ef87862307a18f3a5e8 lib/GnuPG/PublicKey.pm
+SHA256 797d9e9abebb03aa15e8f4de9285216febbc608e41f099002f6160268d087de5 lib/GnuPG/Revoker.pm
+SHA256 9e899d4cd41d95203dcfca7041c8ae1dc9c01fa828b11ca09529dc4f0503d999 lib/GnuPG/SecretKey.pm
+SHA256 8238221e3300ea420ebd92eec784a8d4c8e32ca91a104d854dcb72e42cfd2158 lib/GnuPG/Signature.pm
+SHA256 879000dc23cbce49d8b6ecb179afa45ea3a91ee8c5272dc3c953fd2253d53c31 lib/GnuPG/SubKey.pm
+SHA256 89c853903cc9220a8e2ae05483b5b295ef0d100fe91066ab955addf720b26249 lib/GnuPG/UserAttribute.pm
+SHA256 57892e62bf1291be5dbf56f75691022f344ef3850524e1d65051bdd6dc4797c8 lib/GnuPG/UserId.pm
+SHA256 dae227d6b1c5dfc5fa0e404c747ed3258a221dea7ab773927bd199530c299b38 t/000_setup.t
+SHA256 2ba7457456a05dc99a4ad7240127c0fa04655c7bcefd41ca40bf8cc89e72fd0c t/Fingerprint.t
+SHA256 a1f98f817ab9ed6260f1d5d5afcf06c560074d5630348e88a62e866668a96869 t/Interface.t
+SHA256 13a39c1c8e9ef2335b01c194caa83b48fd15bee9bc35723df2532fac6cbcb204 t/MyTest.pm
+SHA256 96050358ec301df2c456a4216817bfd6cb359fae4348a717c4a56325de522fcc t/MyTestSpecific.pm
+SHA256 ecc3d7593ee9580b2a247a8bbe8384e51f4659d21d21878d0e8925d8520d55a1 t/UserId.t
+SHA256 1c1105851a3a35632b09fa3f09efb0bbfee788fba38f124e732acc7c18cce0c9 t/clearsign.t
+SHA256 e06f37b7379b8e970aef4f1b1e0e6d7c0b12fcd15a8890db990dc56fa1dbc4e1 t/decrypt.t
+SHA256 5dadb07fda0101d02e9a7bcd81142d5f3c79ff0746cc2ec3d02db0056adc2e79 t/detach_sign.t
+SHA256 d2cd3e45ddcafc924573c675d9613203633fc37c1deeba0f4338781b550a9ab9 t/encrypt.t
+SHA256 2f9d931effb1b8bfdb20c250ae7ad0cdfac1b9546408e2b1c722b8559f7d57f6 t/encrypt_symmetrically.t
+SHA256 5bad9360f0e5cfe956c7aed6691da13a233eaf869d6b9c89d8717970f450035d t/export_keys.t
+SHA256 8f31e088ceb6dac7b61b23b5e6f2857ff377f371945df68e6f48bff443ca9588 t/get_public_keys.t
+SHA256 b1a0059daf0f74eb56a6bf644db37f50b0fb9fd8a0a4460b3b61b8a6e698e448 t/get_secret_keys.t
+SHA256 e6551cf8c9b417e97ad7ae0ba17cba696420d0fd82f6dbfed906ba95c990a3ce t/import_keys.t
+SHA256 3d1a6a667e365bcfe4fe21af2d13dfb0aced9077bf140cfa859b955ba9def388 t/list_public_keys.t
+SHA256 bc59185d9c1634eca69c08b9541556902f81cde96fc74ee898472abf05ff61b4 t/list_secret_keys.t
+SHA256 233a3438cadd21602d821271e4f4d117e131b7d09098543c556689f3a00bb840 t/list_sigs.t
+SHA256 998f85987922a9f55895b696808c677b036e199ba6054773cc0318ab55f21150 t/passphrase_handling.t
+SHA256 dbba8768ec668f5963cda97b50ebf0bd4759cf53c7d584afe724e05f2e3ecc32 t/sign.t
+SHA256 58dd4921945ed7347ba028f52c87fe5ea43487ec3c4765afb73e97686e277a15 t/sign_and_encrypt.t
+SHA256 33a8d7e5104d012d0e261ef8fbf1173323b8f9c0d3213abbb39f1088e9da0873 t/taint_mode.t
+SHA256 845140735d2be4acc0ae4c3459ef06646d26843584d370b18f49fcc17d27ccae t/verify.t
+SHA256 f7c37ee27283212cbbbe15046060ae76007c346041a8111528a0a64efe4b4db1 t/version_updates.t
+SHA256 4fe916000a3a23c7a06386252ae5731ffb5c08d2f03c07826908529844cc3c27 t/wrap_call.t
+SHA256 f66b46159fc5b72ba6ef6cb1808fab5a92ed2f0564ec12ca60bc5a9852d62e6e t/z_delete_keys.t
+SHA256 a38c6762ac3bc3fe324a3e2a729259f780cb6d5d1f5fec24a2b362010be475e0 t/zzz_cleanup.t
+SHA256 5a829fe0270a33d5157563fe555f395aae1c0fa6ed0aaf68308af50f880fa259 test/encrypted.1.gpg
+SHA256 d595ad88a2af6192660ef386fb36ac90d55088e5a9e55294fb54c06d9260fd97 test/encrypted.2.gpg
+SHA256 88667f20118c71b9d2051e65d1d44a4a83b5c1ecac4351d3364f401863e582dd test/fake-gpg-v1
+SHA256 5e6ff767d39a313bfb4a9fd2fdae747aca4b50830fe79dc2394f693d275b24ca test/fake-gpg-v2
+SHA256 90de0e214326e6cc05c49813836ebc9f0b67805b8d8d37bd160dd34c02334b12 test/fake-pinentry.pl
+SHA256 73e66c46bb07993b2df8b785c90737dc4cd708a3c6ae50a8721d4a20434cd62f test/gpg.conf
+SHA256 d51ec60087f52f6f4e7dfc2cd2eca5b2130c06051fadaf99994eeb14954d80a5 test/key.1.asc
+SHA256 b9d3444cdd0a8bee742dccf550d090a8ad36415fc5e96831fd3ec82dc1c574d3 test/new_secret.pgp
+SHA256 f2ca1bb6c7e907d06dafe4687e579fce76b37e4e93b7605022da52e6ccc26fd2 test/passphrase
+SHA256 369c75d88ce40c4f2440cc3e0b1149990eed0702f1ea7d613489eb48adfa42ea test/plain.1.txt
+SHA256 a6e9c6e238daf6212dfc51a42dc5c6809b3100a68d2323b6a598995e81a4a100 test/plain.2.txt
+SHA256 fda2ddcbe111a6e41f5a0866e93174d6517941c1ca67c84e62d8a576ee02dada test/public-keys-sigs/1.0.test
+SHA256 ac786cf67af312cc69070cbef261616cc6dde6b4a01ea82cbf3258ed6ee5bb6d test/public-keys-sigs/1.1.test
+SHA256 ff749cc7df40c450355d411e1e21b525836dd65d3b6f63d2924cbf3cdd5dba15 test/public-keys-sigs/2.0.test
+SHA256 db9438e4c0c6cbcb9c6484c1b09ba332609631fe2966ba553821a526c96e0d2d test/public-keys-sigs/2.1.test
+SHA256 384b4f167fe72745bb69e1e987fc927bd92677d3d51276198b43b1b6d10873df test/public-keys/1.0.test
+SHA256 11287dcbac0d9c62a2796ce7d5e26bf3f301a5db8e5ff00c8d69a0c627dab376 test/public-keys/1.1.test
+SHA256 06a81da24c9a2860b411188577068dd285ba469c5023eb1bac6d3cc489e6bf2c test/public-keys/2.0.test
+SHA256 ba075f34630a38dcc9d368f23ccfe0d6116d9eb05190bdb01337f76dffe96acd test/public-keys/2.1.test
+SHA256 6b3ef18f32c501a3cfdd94644594055796271ac2634b21cb82c5126c60454de0 test/public_keys.pgp
+SHA256 f37f6448e73bdb18977c459e949fa30e59e1d6abb3a0533005191112c8dd0e34 test/secret-keys/1.0.test
+SHA256 53100dae1939540999ee2dea39e46077fdaa905870dea5e426eb5add32290619 test/secret-keys/1.1.test
+SHA256 8eb233c6c122e84cb3ccd758c1787300e93aeb38b16e986761a03455e2ed1f8c test/secret-keys/1.2.test
+SHA256 83c081e123ec2453b42388865b8948e8bbc5276c739ee6087aad4cdc98f127a5 test/secret-keys/2.0.test
+SHA256 b84cf371c144ae5bdb201c7a8fa0461562ac7d87395c94406b8611bc855d5bb3 test/secret_keys.pgp
+SHA256 1fb329b56306f80d4c23398f2f8076b8f7fffa19fcda7193be24c8792807ea80 test/signed.1.asc
-----BEGIN PGP SIGNATURE-----
-iQEzBAEBCAAdFiEEFelFwSnB+u9xCpouFedxUadmpRQFAmBwwK4ACgkQFedxUadm
-pRT+lgf/Uhf7JupcQmMWYRWHkPlAWVeL4M5Ip/rJt/p/0yytdaDMgxztLEq4/ynE
-n7D2lZKDUrfWiARO+l6xBllHkm+ilvZgpLH7ENR7VWZGg8TwmRVDwgmjKMdTSZ8x
-arSmCdlN2OrSp9PTnRNDYbK5nZrQgQ/1QNz3rerQFcnxgKbAxwcNmBHIiPOxQmLa
-HO6W91DHZaEQ1+yFE6FZYAqFUazwG3XhrH3gyshJCfWcReyHtcZMpGbWxHVjApH0
-tiLoRB9DFs0YHWBCVE3k14UgeKTfNTcGbJFDLQWwTHDLwt9pz0X4oLlTBRZYeYv9
-a0O80zh3dM5tUMfWw9rAkz+14XH9qQ==
-=VCIr
+iQEzBAEBCAAdFiEExJs3Lyv4ShkBFmAnDfCig/6sgLIFAmUEeREACgkQDfCig/6s
+gLK3dAgAoY9RnyW4Pkft/4XuAl6GVZ2AZ8Pj/xioYQWQsQt4R8TKK9N3061qtFMY
+kQ8gUv6K3SCw+yMSDNrZekFIEYNOLKzwhvLIg6TePmJqu6HqsqEYCKUDxBovJHx3
+3GOv2XGWwvPiLz60jM4/0JBnFJRX01eyxNmQGGqw1G48sVEf8ZR9dQS/3nv50jIT
+s1JH5l8pPI3qVEwu+4SEFpj4WC63TV71ymsnozJ49gQyd4/vG+onnp5EFPgiCHHy
+CzgHxHPrMG8PLhXsVUlp5GOiO6XYVxjxRRCvTMtGjb7B4LLtY9WNnw4ttHGN1uh4
+VblscWEmudvnUqv6e/fwJ2C344/+gA==
+=vwDX
-----END PGP SIGNATURE-----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/GnuPG-Interface-1.02/inc/Module/Install/Base.pm new/GnuPG-Interface-1.03/inc/Module/Install/Base.pm
--- old/GnuPG-Interface-1.02/inc/Module/Install/Base.pm 2021-04-09 23:01:24.000000000 +0200
+++ new/GnuPG-Interface-1.03/inc/Module/Install/Base.pm 2023-09-15 17:32:30.000000000 +0200
@@ -4,7 +4,7 @@
use strict 'vars';
use vars qw{$VERSION};
BEGIN {
- $VERSION = '1.19';
+ $VERSION = '1.21';
}
# Suspend handler for "redefined" warnings
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/GnuPG-Interface-1.02/inc/Module/Install/Can.pm new/GnuPG-Interface-1.03/inc/Module/Install/Can.pm
--- old/GnuPG-Interface-1.02/inc/Module/Install/Can.pm 2021-04-09 23:01:25.000000000 +0200
+++ new/GnuPG-Interface-1.03/inc/Module/Install/Can.pm 2023-09-15 17:32:30.000000000 +0200
@@ -8,7 +8,7 @@
use vars qw{$VERSION @ISA $ISCORE};
BEGIN {
- $VERSION = '1.19';
+ $VERSION = '1.21';
@ISA = 'Module::Install::Base';
$ISCORE = 1;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/GnuPG-Interface-1.02/inc/Module/Install/Fetch.pm new/GnuPG-Interface-1.03/inc/Module/Install/Fetch.pm
--- old/GnuPG-Interface-1.02/inc/Module/Install/Fetch.pm 2021-04-09 23:01:25.000000000 +0200
+++ new/GnuPG-Interface-1.03/inc/Module/Install/Fetch.pm 2023-09-15 17:32:30.000000000 +0200
@@ -6,7 +6,7 @@
use vars qw{$VERSION @ISA $ISCORE};
BEGIN {
- $VERSION = '1.19';
+ $VERSION = '1.21';
@ISA = 'Module::Install::Base';
$ISCORE = 1;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/GnuPG-Interface-1.02/inc/Module/Install/Makefile.pm new/GnuPG-Interface-1.03/inc/Module/Install/Makefile.pm
--- old/GnuPG-Interface-1.02/inc/Module/Install/Makefile.pm 2021-04-09 23:01:24.000000000 +0200
+++ new/GnuPG-Interface-1.03/inc/Module/Install/Makefile.pm 2023-09-15 17:32:30.000000000 +0200
@@ -8,7 +8,7 @@
use vars qw{$VERSION @ISA $ISCORE};
BEGIN {
- $VERSION = '1.19';
+ $VERSION = '1.21';
@ISA = 'Module::Install::Base';
$ISCORE = 1;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/GnuPG-Interface-1.02/inc/Module/Install/Metadata.pm new/GnuPG-Interface-1.03/inc/Module/Install/Metadata.pm
--- old/GnuPG-Interface-1.02/inc/Module/Install/Metadata.pm 2021-04-09 23:01:24.000000000 +0200
+++ new/GnuPG-Interface-1.03/inc/Module/Install/Metadata.pm 2023-09-15 17:32:30.000000000 +0200
@@ -6,7 +6,7 @@
use vars qw{$VERSION @ISA $ISCORE};
BEGIN {
- $VERSION = '1.19';
+ $VERSION = '1.21';
@ISA = 'Module::Install::Base';
$ISCORE = 1;
}
@@ -455,12 +455,8 @@
my %license_urls = (
perl => 'http://dev.perl.org/licenses/',
apache => 'http://apache.org/licenses/LICENSE-2.0',
- apache_1_1 => 'http://apache.org/licenses/LICENSE-1.1',
artistic => 'http://opensource.org/licenses/artistic-license.php',
- artistic_2 => 'http://opensource.org/licenses/artistic-license-2.0.php',
lgpl => 'http://opensource.org/licenses/lgpl-license.php',
- lgpl2 => 'http://opensource.org/licenses/lgpl-2.1.php',
- lgpl3 => 'http://opensource.org/licenses/lgpl-3.0.html',
bsd => 'http://opensource.org/licenses/bsd-license.php',
gpl => 'http://opensource.org/licenses/gpl-license.php',
gpl2 => 'http://opensource.org/licenses/gpl-2.0.php',
@@ -471,6 +467,12 @@
unrestricted => undef,
restrictive => undef,
unknown => undef,
+
+ # these are not actually allowed in meta-spec v1.4 but are left here for compatibility:
+ apache_1_1 => 'http://apache.org/licenses/LICENSE-1.1',
+ artistic_2 => 'http://opensource.org/licenses/artistic-license-2.0.php',
+ lgpl2 => 'http://opensource.org/licenses/lgpl-2.1.php',
+ lgpl3 => 'http://opensource.org/licenses/lgpl-3.0.html',
);
sub license {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/GnuPG-Interface-1.02/inc/Module/Install/Win32.pm new/GnuPG-Interface-1.03/inc/Module/Install/Win32.pm
--- old/GnuPG-Interface-1.02/inc/Module/Install/Win32.pm 2021-04-09 23:01:25.000000000 +0200
+++ new/GnuPG-Interface-1.03/inc/Module/Install/Win32.pm 2023-09-15 17:32:30.000000000 +0200
@@ -6,7 +6,7 @@
use vars qw{$VERSION @ISA $ISCORE};
BEGIN {
- $VERSION = '1.19';
+ $VERSION = '1.21';
@ISA = 'Module::Install::Base';
$ISCORE = 1;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/GnuPG-Interface-1.02/inc/Module/Install/WriteAll.pm new/GnuPG-Interface-1.03/inc/Module/Install/WriteAll.pm
--- old/GnuPG-Interface-1.02/inc/Module/Install/WriteAll.pm 2021-04-09 23:01:25.000000000 +0200
+++ new/GnuPG-Interface-1.03/inc/Module/Install/WriteAll.pm 2023-09-15 17:32:30.000000000 +0200
@@ -6,7 +6,7 @@
use vars qw{$VERSION @ISA $ISCORE};
BEGIN {
- $VERSION = '1.19';
+ $VERSION = '1.21';
@ISA = qw{Module::Install::Base};
$ISCORE = 1;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/GnuPG-Interface-1.02/inc/Module/Install.pm new/GnuPG-Interface-1.03/inc/Module/Install.pm
--- old/GnuPG-Interface-1.02/inc/Module/Install.pm 2021-04-09 23:01:24.000000000 +0200
+++ new/GnuPG-Interface-1.03/inc/Module/Install.pm 2023-09-15 17:32:30.000000000 +0200
@@ -31,7 +31,7 @@
# This is not enforced yet, but will be some time in the next few
# releases once we can make sure it won't clash with custom
# Module::Install extensions.
- $VERSION = '1.19';
+ $VERSION = '1.21';
# Storage for the pseudo-singleton
$MAIN = undef;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/GnuPG-Interface-1.02/lib/GnuPG/Interface.pm new/GnuPG-Interface-1.03/lib/GnuPG/Interface.pm
--- old/GnuPG-Interface-1.02/lib/GnuPG/Interface.pm 2021-04-09 22:53:23.000000000 +0200
+++ new/GnuPG-Interface-1.03/lib/GnuPG/Interface.pm 2023-09-15 17:28:58.000000000 +0200
@@ -29,7 +29,7 @@
use GnuPG::Handles;
use Scalar::Util 'tainted';
-$VERSION = '1.02';
+$VERSION = '1.03';
has passphrase => (
isa => 'Any',
@@ -351,7 +351,11 @@
@commands, @command_args
);
- local $ENV{PATH} if tainted $ENV{PATH};
+ # On Unix, PATH is by default '.' and Perl >= v5.38 rejects '.'
+ # being in the path when in taint mode. Set a path, if running
+ # in taint mode whomever is calling us should be providing the
+ # path to the gpg program to use.
+ local $ENV{PATH} = '/usr/bin' if tainted $ENV{PATH};
exec @command or die "exec() error: $ERRNO";
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/GnuPG-Interface-1.02/t/taint_mode.t new/GnuPG-Interface-1.03/t/taint_mode.t
--- old/GnuPG-Interface-1.02/t/taint_mode.t 1970-01-01 01:00:00.000000000 +0100
+++ new/GnuPG-Interface-1.03/t/taint_mode.t 2023-09-15 17:28:58.000000000 +0200
@@ -0,0 +1,26 @@
+#!/usr/bin/perl -wT
+#
+# Ensure we can instatiate in Taint mode. Don't need to
+# do any work, as GnuPG::Interface runs the command we're going
+# to use to detect the version.
+
+use strict;
+
+use lib './t';
+use MyTest;
+
+use GnuPG::Interface;
+
+my $gnupg;
+
+# See that we instantiate an object in Taint mode
+TEST
+{
+ $gnupg = GnuPG::Interface->new( call => '/usr/bin/gpg' );
+};
+
+# See that version is set
+TEST
+{
+ defined $gnupg->version;
+};
++++++ cpanspec.yml ++++++
--- /var/tmp/diff_new_pack.ZCiI8v/_old 2023-09-29 21:15:16.877444900 +0200
+++ /var/tmp/diff_new_pack.ZCiI8v/_new 2023-09-29 21:15:16.881445044 +0200
@@ -6,6 +6,9 @@
Requires: gpg2
# BuildRequires: perl(Module::Install)
+post_build: |-
+ chmod 755 ./test/fake-gpg-v*
+
custom_test: |-
# RT#88963
%{__make} test || :
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package xf86-video-siliconmotion for openSUSE:Factory checked in at 2023-09-29 21:13:55
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/xf86-video-siliconmotion (Old)
and /work/SRC/openSUSE:Factory/.xf86-video-siliconmotion.new.28202 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xf86-video-siliconmotion"
Fri Sep 29 21:13:55 2023 rev:17 rq:1114059 version:1.7.10
Changes:
--------
--- /work/SRC/openSUSE:Factory/xf86-video-siliconmotion/xf86-video-siliconmotion.changes 2020-01-21 21:00:41.192857938 +0100
+++ /work/SRC/openSUSE:Factory/.xf86-video-siliconmotion.new.28202/xf86-video-siliconmotion.changes 2023-09-29 21:15:13.261314430 +0200
@@ -1,0 +2,22 @@
+Thu Sep 28 10:37:54 UTC 2023 - Stefan Dirsch <sndirsch(a)suse.com>
+
+- Update to version 1.7.10
+ * Update README for gitlab migration
+ * Update configure.ac bug URL for gitlab migration
+ * Build xz tarballs instead of bzip2
+ * Fix spelling/wording issues
+ * gitlab CI: add a basic build test
+ * gitlab CI: stop requiring Signed-off-by in commits
+ * constify some char * declarations
+ * Quiet -Wempty-body warning
+ * Replace malloc()+snprintf() with Xasprintf()
+ * Replace malloc()+memset() with calloc()
+ * Remove "All rights reserved" from Oracle copyright notices
+ * gitlab CI: ensure libtool is installed in build container
+ * autogen.sh: Implement GNOME Build API
+ * autogen.sh: use quoted string variables
+ * autogen: add default patch prefix
+ * configure: Drop AM_MAINTAINER_MODE
+ * autogen.sh: use exec instead of waiting for configure to finish
+
+-------------------------------------------------------------------
Old:
----
xf86-video-siliconmotion-1.7.9.tar.bz2
New:
----
xf86-video-siliconmotion-1.7.10.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ xf86-video-siliconmotion.spec ++++++
--- /var/tmp/diff_new_pack.LELY7y/_old 2023-09-29 21:15:14.349353686 +0200
+++ /var/tmp/diff_new_pack.LELY7y/_new 2023-09-29 21:15:14.353353831 +0200
@@ -1,7 +1,7 @@
#
# spec file for package xf86-video-siliconmotion
#
-# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
+# 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
@@ -12,19 +12,18 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: xf86-video-siliconmotion
-Version: 1.7.9
+Version: 1.7.10
Release: 0
Summary: Silicon Motion video driver for the Xorg X server
License: MIT
Group: System/X11/Servers/XF86_4
-Url: http://xorg.freedesktop.org/
-Source0: http://xorg.freedesktop.org/releases/individual/driver/%{name}-%{version}.t…
-#Source1: http://xorg.freedesktop.org/releases/individual/driver/%{name}-%{version}.t…
+URL: http://xorg.freedesktop.org/
+Source0: http://xorg.freedesktop.org/releases/individual/driver/%{name}-%{version}.t…
Source2: %{name}.keyring
Patch0: u_siliconmotion_fix_segfault_on_xorg_server_1.19.patch
BuildRequires: pkg-config
@@ -65,7 +64,8 @@
%files
%defattr(-,root,root)
-%doc ChangeLog COPYING README
+%doc ChangeLog README.md
+%license COPYING
%dir %{_libdir}/xorg/modules/drivers
%{_libdir}/xorg/modules/drivers/siliconmotion_drv.so
%{_datadir}/man/man4/siliconmotion.4%{?ext_man}
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package hamster-time-tracker for openSUSE:Factory checked in at 2023-09-29 21:13:53
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/hamster-time-tracker (Old)
and /work/SRC/openSUSE:Factory/.hamster-time-tracker.new.28202 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "hamster-time-tracker"
Fri Sep 29 21:13:53 2023 rev:9 rq:1114055 version:unknown
Changes:
--------
--- /work/SRC/openSUSE:Factory/hamster-time-tracker/hamster-time-tracker.changes 2023-06-20 16:48:51.567542112 +0200
+++ /work/SRC/openSUSE:Factory/.hamster-time-tracker.new.28202/hamster-time-tracker.changes 2023-09-29 21:15:06.525071387 +0200
@@ -1,0 +2,19 @@
+Wed Sep 27 21:07:24 UTC 2023 - Martin Wilck <mwilck(a)suse.com>
+
+- Update GNOME extension for GNOME shell 45 support
+ (older GNOME shell is not supported any more)
+ * add 0162-README.rst-add-info-about-restarting-the-extension.patch
+ * add 0163-TotalTimeWidget-port-to-JS6-classes.patch
+ * add 0164-prefs.js-Remove-display-of-extension-version.patch
+ * add 0165-settings-schema-fix-description-for-panel-placement-.patch
+ * add 0166-README.rst-simplify-installation-instructions.patch
+ * add 0167-panelWidget-add-button-to-open-extension-settings.patch
+ * add 0168-Use-ECMAScript-import-export-statements.patch
+ * add 0169-extension.js-adapt-to-GNOME-45.patch
+ * add 0170-prefs.js-re-implement-for-GNOME-45.patch
+ * add 0171-metadata.json.in-GNOME-45-support.patch
+ * add 0172-README.rst-fixup-GNOME-shell-compatiblility.patch
+ * add 0173-Replace-global.log-by-console.log.patch
+ * del 0133-Bump-latest-validated-gnome-shell-version-1.patch (empty)
+
+-------------------------------------------------------------------
Old:
----
0133-Bump-latest-validated-gnome-shell-version-1.patch
New:
----
0162-README.rst-add-info-about-restarting-the-extension.patch
0163-TotalTimeWidget-port-to-JS6-classes.patch
0164-prefs.js-Remove-display-of-extension-version.patch
0165-settings-schema-fix-description-for-panel-placement-.patch
0166-README.rst-simplify-installation-instructions.patch
0167-panelWidget-add-button-to-open-extension-settings.patch
0168-Use-ECMAScript-import-export-statements.patch
0169-extension.js-adapt-to-GNOME-45.patch
0170-prefs.js-re-implement-for-GNOME-45.patch
0171-metadata.json.in-GNOME-45-support.patch
0172-README.rst-fixup-GNOME-shell-compatiblility.patch
0173-Replace-global.log-by-console.log.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ hamster-time-tracker.spec ++++++
--- /var/tmp/diff_new_pack.5nDRYV/_old 2023-09-29 21:15:11.753260020 +0200
+++ /var/tmp/diff_new_pack.5nDRYV/_new 2023-09-29 21:15:11.757260164 +0200
@@ -21,8 +21,8 @@
# ext_gnome_version: latest GNOME shell version supported
# min_gnome_version: earliest GNOME shell version supported
%if 0%{?suse_version} >= 1550
-%global ext_gnome_version 44
-%global min_gnome_version 3.34
+%global ext_gnome_version 45
+%global min_gnome_version 45
%else
%if 0%{?sle_version} >= 150400
%global ext_gnome_version 41
@@ -93,7 +93,6 @@
Patch130: 0130-README.rst-Add-a-section-about-UUID-changing.patch
Patch131: 0131-metadata.json.in-fix-json-syntax-error.patch
Patch132: 0132-Update-README.st.patch
-Patch133: 0133-Bump-latest-validated-gnome-shell-version-1.patch
Patch134: 0134-README-mention-GNOME-shell-compatibility-of-this-ver.patch
Patch135: 0135-README.rst-document-GNOME-shell-compatibility.patch
Patch136: 0136-ongoingFactEntry-stop-using-deprecated-Clutter-key-s.patch
@@ -125,6 +124,19 @@
Patch159: 0159-Report-errors-in-DBUS-calls.patch
Patch160: 0160-Report-errors-on-initial-DBUS-connection.patch
Patch161: 0161-Gracefully-handle-hamster-DBUS-disappearing.patch
+# GNOME 45
+Patch162: 0162-README.rst-add-info-about-restarting-the-extension.patch
+Patch163: 0163-TotalTimeWidget-port-to-JS6-classes.patch
+Patch164: 0164-prefs.js-Remove-display-of-extension-version.patch
+Patch165: 0165-settings-schema-fix-description-for-panel-placement-.patch
+Patch166: 0166-README.rst-simplify-installation-instructions.patch
+Patch167: 0167-panelWidget-add-button-to-open-extension-settings.patch
+Patch168: 0168-Use-ECMAScript-import-export-statements.patch
+Patch169: 0169-extension.js-adapt-to-GNOME-45.patch
+Patch170: 0170-prefs.js-re-implement-for-GNOME-45.patch
+Patch171: 0171-metadata.json.in-GNOME-45-support.patch
+Patch172: 0172-README.rst-fixup-GNOME-shell-compatiblility.patch
+Patch173: 0173-Replace-global.log-by-console.log.patch
BuildRequires: fdupes
BuildRequires: intltool
@@ -222,7 +234,6 @@
%patch130 -p1
%patch131 -p1
%patch132 -p1
-%patch133 -p1
%patch134 -p1
%patch135 -p1
%patch136 -p1
@@ -252,6 +263,21 @@
%patch160 -p1
%patch161 -p1
%endif
+%if 0%{?suse_version} >= 1600
+# TW: GNOME 45 support
+%patch162 -p1
+%patch163 -p1
+%patch164 -p1
+%patch165 -p1
+%patch166 -p1
+%patch167 -p1
+%patch168 -p1
+%patch169 -p1
+%patch170 -p1
+%patch171 -p1
+%patch172 -p1
+%patch173 -p1
+%endif
%endif
mkdir build
++++++ 0162-README.rst-add-info-about-restarting-the-extension.patch ++++++
From 470ef00f9378d6960f53ed0dd2f228bb31d1f676 Mon Sep 17 00:00:00 2001
From: Martin Wilck <mwilck(a)suse.com>
Date: Thu, 10 Aug 2023 18:04:46 +0200
Subject: [PATCH 162/173] README.rst: add info about restarting the extension
---
README.rst | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/README.rst b/README.rst
index 1e5b305..fe4e920 100644
--- a/README.rst
+++ b/README.rst
@@ -93,6 +93,17 @@ Afterwards, enable the extension and change the preferences using Tweak Tool,
or on ``https://extensions.gnome.org/local/``. On GNOME 3.36 and later, you
can also use the GNOME "Extensions" tool.
+Reloading the Extension
+~~~~~~~~~~~~~~~~~~~~~~~
+
+If the Hamster GNOME shell extension is already loaded and you change some code,
+the GNOME shell needs to be restarted in order to update and restart the extension.
+The easiest way to do this is to run GNOME under X11 and use the key combination
+``Alt-F2`` followed by ``r``. If you run GNOME under Wayland, either re-login, or
+start a `nested session <https://wiki.gnome.org/Initiatives/Wayland/GnomeShell/Testing>`_::
+
+ dbus-run-session -- gnome-shell --nested --wayland
+
Changing the extension UUID
~~~~~~~~~~~~~~~~~~~~~~~~~~~
--
2.42.0
++++++ 0163-TotalTimeWidget-port-to-JS6-classes.patch ++++++
From 8c4857f9902810b4c369c0317ea90ebabe15caba Mon Sep 17 00:00:00 2001
From: Martin Wilck <mwilck(a)suse.com>
Date: Fri, 22 Sep 2023 17:28:06 +0200
Subject: [PATCH 163/173] TotalTimeWidget: port to JS6 classes
See 9c0b672 ("Port GObject classes to JS6 classes")
Signed-off-by: Martin Wilck <mwilck(a)suse.com>
---
extension/widgets/totalTimeWidget.js | 21 ++++++++-------------
1 file changed, 8 insertions(+), 13 deletions(-)
diff --git a/extension/widgets/totalTimeWidget.js b/extension/widgets/totalTimeWidget.js
index a956c36..9a6d64b 100644
--- a/extension/widgets/totalTimeWidget.js
+++ b/extension/widgets/totalTimeWidget.js
@@ -21,12 +21,10 @@ Copyright (c) 2016 - 2018 Eric Goller / projecthamster <elbenfreund@projecthamst
Copyright (c) 2018 Thibaut Madelaine <madtibo_git(a)tribu-ml.fr>
*/
-
-const Lang = imports.lang;
const St = imports.gi.St;
const Clutter = imports.gi.Clutter;
const GLib = imports.gi.GLib;
-
+const GObject = imports.gi.GObject;
const Me = imports.misc.extensionUtils.getCurrentExtension();
const Stuff = Me.imports.stuff;
@@ -34,19 +32,16 @@ const Stuff = Me.imports.stuff;
/**
* Custom Label widget that displays total time.
*/
-var TotalTimeWidget = new Lang.Class({
- Name: 'TotalTime',
- Extends: St.Label,
-
- _init: function() {
- this.parent({style_class: 'summary-label'});
-
- },
+var TotalTimeWidget = GObject.registerClass(
+ class TotalTime extends St.Label {
+ _init() {
+ super._init({style_class: 'summary-label'});
+ }
/**
* Recompute values and replace old string with new one based on passed facts.
*/
- refresh: function(facts) {
+ refresh(facts) {
/**
* Construct a string representing today total.
*/
@@ -61,5 +56,5 @@ var TotalTimeWidget = new Lang.Class({
}
this.set_text(getString(facts));
- },
+ }
});
--
2.42.0
++++++ 0164-prefs.js-Remove-display-of-extension-version.patch ++++++
From 0da6e64b06dd55fbf80438dfa62157a64e73eca9 Mon Sep 17 00:00:00 2001
From: Martin Wilck <mwilck(a)suse.com>
Date: Fri, 22 Sep 2023 20:04:12 +0200
Subject: [PATCH 164/173] prefs.js: Remove display of extension version
The meta data object in recent versions of GNOME shell
doesn't contain a 'version' field. We have removed it from
metadata.json with 4b9687b ("metadata.json: remove "version" field").
The prefs dialog will just show "undefined", which is not helpful.
Remove the widget displaying the version.
Signed-off-by: Martin Wilck <mwilck(a)suse.com>
---
extension/prefs.js | 11 -----------
1 file changed, 11 deletions(-)
diff --git a/extension/prefs.js b/extension/prefs.js
index 86b2f5e..23e9ab0 100644
--- a/extension/prefs.js
+++ b/extension/prefs.js
@@ -25,10 +25,7 @@ const Gdk = imports.gi.Gdk;
const Gio = imports.gi.Gio;
const Gtk = imports.gi.Gtk;
const GObject = imports.gi.GObject;
-
-
const ExtensionUtils = imports.misc.extensionUtils;
-const Me = ExtensionUtils.getCurrentExtension();
const HamsterSettingsWidget = GObject.registerClass(
class HamsterSettingsWidget extends Gtk.Grid {
@@ -124,14 +121,6 @@ class HamsterSettingsWidget extends Gtk.Grid {
});
this.attach(label, 0, 3, 2, 1);
- let version_text = Me.metadata.version;
- label = new Gtk.Label({
- label: "You are running hamster-shell-extension version " + version_text,
- halign: Gtk.Align.CENTER,
- visible: true,
- margin_top: 10
- });
- this.attach(label, 0, 4, 2, 1);
}
_onPlacementChange(widget) {
--
2.42.0
++++++ 0165-settings-schema-fix-description-for-panel-placement-.patch ++++++
From 4b11f19f9b3777cd0022719871f08386fd9e516f Mon Sep 17 00:00:00 2001
From: Martin Wilck <mwilck(a)suse.com>
Date: Fri, 22 Sep 2023 23:11:22 +0200
Subject: [PATCH 165/173] settings schema: fix description for panel-placement,
add gettext domain
---
.../org.gnome.shell.extensions.project-hamster.gschema.xml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/data/schemas/org.gnome.shell.extensions.project-hamster.gschema.xml b/data/schemas/org.gnome.shell.extensions.project-hamster.gschema.xml
index 8a35b28..5122c39 100644
--- a/data/schemas/org.gnome.shell.extensions.project-hamster.gschema.xml
+++ b/data/schemas/org.gnome.shell.extensions.project-hamster.gschema.xml
@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
-<schemalist>
+<schemalist gettext-domain="hamster-shell-extension">
<schema id="org.gnome.shell.extensions.project-hamster" path="/org/gnome/shell/extensions/project-hamster/">
<key name="panel-placement" type="i">
<default>0</default>
<summary>Placement in the panel.</summary>
- <description>Position to place extension at. 0 - default, 1 - replace calendar, 2 - replace activities.</description>
+ <description>Position to place extension at. 0 - default, 1 - replace calendar, 2 - replace activities, 3 - Center, next to calendar.</description>
</key>
<key name="panel-appearance" type="i">
--
2.42.0
++++++ 0166-README.rst-simplify-installation-instructions.patch ++++++
From 222aa30dcb64ba5388ca645b7bdab87ada4009a2 Mon Sep 17 00:00:00 2001
From: Martin Wilck <mwilck(a)suse.com>
Date: Mon, 25 Sep 2023 18:06:16 +0200
Subject: [PATCH 166/173] README.rst: simplify installation instructions
Signed-off-by: Martin Wilck <mwilck(a)suse.com>
---
README.rst | 63 ++++++++++++++++--------------------------------------
1 file changed, 19 insertions(+), 44 deletions(-)
diff --git a/README.rst b/README.rst
index fe4e920..41a4a52 100644
--- a/README.rst
+++ b/README.rst
@@ -31,68 +31,43 @@ hamster`` which should bring up ``hamster-service`` and
Install For Production
~~~~~~~~~~~~~~~~~~~~~~
-The extension is available on `the central extension repository <https://extensions.gnome.org/extension/425/project-hamster-extension>`_.
-Current compatible Gnome shell versions: 3.34, 3.36. *This version is not compatible
-with Gnome shell 3.32 and earlier.*
-For previous shell versions check `releases <https://github.com/projecthamster/hamster-shell-extension/tags>`_.
+Please follow the instructions under
+`Manual Installation For Testing and Development`_ below to install from git.
+The code in this branch (``develop``) is compatible with GNOME shell 3.34
+up to GNOME shell 44. See also `metadata.json.in`_.
-Creating a development environment
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-As ``hamster-shell-extension`` is mainly simple JS there is not much of a development
-setup needed if you just want to get hacking right away. We do however provide
-a few convenience functionalities that make documenting and releasing the extension
-easier. For those purposes some additional python packages are required.
-The easiest and cleanest way to go about this is to create a new virtual environment and activate
-it::
+*Important:* The "Hamster Time Tracker" extension on
+`extensions.gnome.org https://extensions.gnome.org/extension/425/project-hamster-extension/`_
+is *severely outdated*; it supports GNOME shell up to 3.20 only. There are
+some other versions of this extension on extensions.gnome.org, but none of
+them is supported by the current maintainers of the extension.
- python3 -m venv .venv
- source .venv/bin/activate
-
-Now you are all setup to run ``make develop`` and related make targets without
-changing you main environment.
+.. _metadata.json.in: data/metadata.json.in
Manual Installation For Testing and Development
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
Clone the repository::
git clone https://github.com/projecthamster/hamster-shell-extension.git
Make sure you are on the development branch::
- git checkout develop
+ git switch -c develop origin/develop
-Build a fresh distribution package::
+To make this build available locally under your user account::
+
+ make install-user
+
+To build a fresh distribution package (this will create a distributable archive located in the ``dist/`` folder)::
make dist
-This will create a distributable archive located in the ``dist/`` folder.
+Afterwards, enable the extension and change the preferences using the
+*gnome-extensions* tool (on GNOME 3.34 and earlier, you need to use *gnome-tweak-tool*).
-**Shortcut on** ``develop``
-
-If you are using the ``develop`` branch since May 2020, you can run ``make
-install-user`` to install your current working branch in your user environment
-or ``make install`` for a system-wide installation. The ``DESTDIR`` variable
-can be provided to ``make install`` to adjust the base installation path (it
-defaults to ``DESTDIR=/usr/local``).
-
-Otherwise, on other branches, follow the steps below to manually install the
-distribution archive::
-
- # Build
- make dist
- # Remove any old installation
- rm -rf ~/.local/share/gnome-shell/extensions/contact(a)projecthamster.org
- # Create directory
- mkdir -p ~/.local/share/gnome-shell/extensions/contact(a)projecthamster.org
- # Unpack build
- tar xfz dist/contact(a)projecthamster.org.tar.gz -C ~/.local/share/gnome-shell/extensions/contact(a)projecthamster.org
-
-Afterwards, enable the extension and change the preferences using Tweak Tool,
-or on ``https://extensions.gnome.org/local/``. On GNOME 3.36 and later, you
-can also use the GNOME "Extensions" tool.
-
Reloading the Extension
~~~~~~~~~~~~~~~~~~~~~~~
--
2.42.0
++++++ 0167-panelWidget-add-button-to-open-extension-settings.patch ++++++
From 2b3257b3c9530c7ef12c1ada9be53afc2cc088d2 Mon Sep 17 00:00:00 2001
From: Martin Wilck <mwilck(a)suse.com>
Date: Mon, 25 Sep 2023 17:02:48 +0200
Subject: [PATCH 167/173] panelWidget: add button to open extension settings
Signed-off-by: Martin Wilck <mwilck(a)suse.com>
---
extension/widgets/panelWidget.js | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/extension/widgets/panelWidget.js b/extension/widgets/panelWidget.js
index 0d9e870..4a15dd6 100644
--- a/extension/widgets/panelWidget.js
+++ b/extension/widgets/panelWidget.js
@@ -125,6 +125,11 @@ class PanelWidget extends PanelMenu.Button {
SettingMenuItem.connect('activate', this._onOpenSettings.bind(this));
this.menu.addMenuItem(SettingMenuItem);
+ let ExtSettingMenuItem = new PopupMenu.PopupMenuItem(_("Extension Settings"));
+ ExtSettingMenuItem.connect('activate',
+ () => this._controller.openPreferences());
+ this.menu.addMenuItem(ExtSettingMenuItem);
+
// focus menu upon display
this.menu.connect('open-state-changed',
function(menu, open) {
--
2.42.0
++++++ 0168-Use-ECMAScript-import-export-statements.patch ++++++
From 96bfe69e7f9f6e0f175a4c501a96054cb537850e Mon Sep 17 00:00:00 2001
From: Martin Wilck <mwilck(a)suse.com>
Date: Fri, 22 Sep 2023 18:53:26 +0200
Subject: [PATCH 168/173] Use ECMAScript import/export statements
https://gjs.guide/extensions/upgrading/gnome-shell-45.html
Signed-off-by: Martin Wilck <mwilck(a)suse.com>
---
extension/extension.js | 18 +++++--------
extension/prefs.js | 9 +++----
extension/stuff.js | 10 +++----
extension/widgets/categoryTotalsWidget.js | 14 +++++-----
extension/widgets/factsBox.js | 32 ++++++++++-------------
extension/widgets/ongoingFactEntry.js | 14 +++++-----
extension/widgets/panelWidget.js | 25 +++++++++---------
extension/widgets/todaysFactsWidget.js | 18 ++++++-------
extension/widgets/totalTimeWidget.js | 14 +++++-----
9 files changed, 70 insertions(+), 84 deletions(-)
diff --git a/extension/extension.js b/extension/extension.js
index 8ece31e..31068ef 100644
--- a/extension/extension.js
+++ b/extension/extension.js
@@ -21,18 +21,14 @@ Copyright (c) 2016 - 2018 Eric Goller / projecthamster <elbenfreund@projecthamst
*/
-const GLib = imports.gi.GLib;
-const Shell = imports.gi.Shell;
-const Meta = imports.gi.Meta;
-const Main = imports.ui.main;
-const Gio = imports.gi.Gio;
+import GLib from 'gi://GLib';
+import Shell from 'gi://Shell';
+import Meta from 'gi://Meta';
+import Gio from 'gi://Gio';
+import * as Main from 'resource:///org/gnome/shell/ui/main.js';
-const Gettext = imports.gettext.domain('hamster-shell-extension');
-const _ = Gettext.gettext;
-
-const ExtensionUtils = imports.misc.extensionUtils;
-const Me = ExtensionUtils.getCurrentExtension();
-const PanelWidget = Me.imports.widgets.panelWidget.PanelWidget;
+import {Extension, gettext as _} from 'resource:///org/gnome/shell/extensions/extension.js';
+import PanelWidget from './widgets/panelWidget.js';
// dbus-send --session --type=method_call --print-reply --dest=org.gnome.Hamster /org/gnome/Hamster org.freedesktop.DBus.Introspectable.Introspect
const ApiProxyIface = ['',
diff --git a/extension/prefs.js b/extension/prefs.js
index 23e9ab0..c7ae150 100644
--- a/extension/prefs.js
+++ b/extension/prefs.js
@@ -21,11 +21,10 @@ Copyright (c) 2016 - 2018 Eric Goller / projecthamster <elbenfreund@projecthamst
*/
-const Gdk = imports.gi.Gdk;
-const Gio = imports.gi.Gio;
-const Gtk = imports.gi.Gtk;
-const GObject = imports.gi.GObject;
-const ExtensionUtils = imports.misc.extensionUtils;
+import Gdk from 'gi://Gdk';
+import Gio from 'gi://Gio';
+import Gtk from 'gi://Gtk';
+import GObject from 'gi://GObject';
const HamsterSettingsWidget = GObject.registerClass(
class HamsterSettingsWidget extends Gtk.Grid {
diff --git a/extension/stuff.js b/extension/stuff.js
index 56c7054..4cd8a12 100644
--- a/extension/stuff.js
+++ b/extension/stuff.js
@@ -29,7 +29,7 @@ Copyright (c) 2016 - 2018 Eric Goller / projecthamster <elbenfreund@projecthamst
*
* @param {int} - Total amount of seconds to represent.
*/
-function formatDuration(total_seconds) {
+export function formatDuration(total_seconds) {
let hours = total_seconds / 3600;
let remaining_seconds = total_seconds % 3600;
// We only care for "full minutes".
@@ -45,7 +45,7 @@ function formatDuration(total_seconds) {
*
* @param {int} - Total amount of seconds to represent.
*/
-function formatDurationHuman(total_seconds) {
+export function formatDurationHuman(total_seconds) {
let hours = total_seconds / 3600;
let remaining_seconds = total_seconds % 3600;
// We only care for "full minutes".
@@ -75,7 +75,7 @@ function formatDurationHuman(total_seconds) {
*
* @param {int} - Total amount of seconds to represent.
*/
-function formatDurationHours(seconds) {
+export function formatDurationHours(seconds) {
// We shift by one decimal place to the left in order to round properly.
let hours = Math.round((seconds/3600)*10);
// Shift right after rounding.
@@ -85,7 +85,7 @@ function formatDurationHours(seconds) {
// Other helper functions
-function fromDbusFact(fact) {
+export function fromDbusFact(fact) {
// converts a fact coming from dbus into a usable object
function UTCToLocal(timestamp) {
// TODO - is this really the way?!
@@ -108,7 +108,7 @@ function fromDbusFact(fact) {
return result;
}
-function fromDbusFacts(facts) {
+export function fromDbusFacts(facts) {
let res = [];
for (var fact of facts) {
res.push(fromDbusFact(fact));
diff --git a/extension/widgets/categoryTotalsWidget.js b/extension/widgets/categoryTotalsWidget.js
index 88f9b96..9b36b7e 100644
--- a/extension/widgets/categoryTotalsWidget.js
+++ b/extension/widgets/categoryTotalsWidget.js
@@ -21,13 +21,11 @@ Copyright (c) 2016 - 2018 Eric Goller / projecthamster <elbenfreund@projecthamst
*/
-const St = imports.gi.St;
-const Clutter = imports.gi.Clutter;
-const GLib = imports.gi.GLib;
-const GObject = imports.gi.GObject;
-
-const Me = imports.misc.extensionUtils.getCurrentExtension();
-const Stuff = Me.imports.stuff;
+import St from 'gi://St';
+import Clutter from 'gi://Clutter';
+import GLib from 'gi://GLib';
+import GObject from 'gi://GObject';
+import * as Stuff from '../stuff.js'
/**
@@ -66,3 +64,5 @@ class CategoryTotals extends St.Label {
this.set_text(getString(facts));
}
});
+
+export default CategoryTotalsWidget;
diff --git a/extension/widgets/factsBox.js b/extension/widgets/factsBox.js
index a033602..ab745de 100644
--- a/extension/widgets/factsBox.js
+++ b/extension/widgets/factsBox.js
@@ -21,23 +21,18 @@ Copyright (c) 2016 - 2018 Eric Goller / projecthamster <elbenfreund@projecthamst
*/
-const St = imports.gi.St;
-const PopupMenu = imports.ui.popupMenu;
-const Clutter = imports.gi.Clutter;
-const Mainloop = imports.mainloop;
-const GLib = imports.gi.GLib;
-const GObject = imports.gi.GObject;
-
-const Gettext = imports.gettext.domain('hamster-shell-extension');
-const _ = Gettext.gettext;
-
-const Me = imports.misc.extensionUtils.getCurrentExtension();
-const Stuff = Me.imports.stuff;
-const OngoingFactEntry = Me.imports.widgets.ongoingFactEntry.OngoingFactEntry;
-const CategoryTotalsWidget = Me.imports.widgets.categoryTotalsWidget.CategoryTotalsWidget;
-const TotalTimeWidget = Me.imports.widgets.totalTimeWidget.TotalTimeWidget;
-const TodaysFactsWidget = Me.imports.widgets.todaysFactsWidget.TodaysFactsWidget;
+import St from 'gi://St';
+import Clutter from 'gi://Clutter';
+import GLib from 'gi://GLib';
+import GObject from 'gi://GObject';
+import { gettext as _ } from 'resource:///org/gnome/shell/extensions/extension.js';
+import * as PopupMenu from 'resource:///org/gnome/shell/ui/popupMenu.js';
+import * as Stuff from '../stuff.js';
+import OngoingFactEntry from './ongoingFactEntry.js';
+import CategoryTotalsWidget from './categoryTotalsWidget.js';
+import TotalTimeWidget from './totalTimeWidget.js';
+import TodaysFactsWidget from './todaysFactsWidget.js';
/**
* Create the widget that ``PanelWidget`` will use to dispay the *raw fact entry* as
@@ -79,7 +74,6 @@ class FactsBox extends PopupMenu.PopupBaseMenuItem {
// Setup category summery
this.summaryLabel = new CategoryTotalsWidget();
main_box.add(this.summaryLabel);
-
// Setup total time
this.totalTimeLabel = new TotalTimeWidget();
main_box.add(this.totalTimeLabel);
@@ -100,7 +94,7 @@ class FactsBox extends PopupMenu.PopupBaseMenuItem {
* Focus the fact entry and make sure todaysFactsWidget are scrolled to the bottom.
*/
focus() {
- Mainloop.timeout_add(20, function() {
+ GLib.timeout_add(GLib.PRIORITY_DEFAULT, 20, function() {
this._scrollAdjustment.value = this._scrollAdjustment.upper;
global.stage.set_key_focus(this.ongoingFactEntry);
}.bind(this));
@@ -113,3 +107,5 @@ class FactsBox extends PopupMenu.PopupBaseMenuItem {
global.stage.set_key_focus(null);
}
});
+
+export default FactsBox;
diff --git a/extension/widgets/ongoingFactEntry.js b/extension/widgets/ongoingFactEntry.js
index cce4929..cd63ae3 100644
--- a/extension/widgets/ongoingFactEntry.js
+++ b/extension/widgets/ongoingFactEntry.js
@@ -21,15 +21,11 @@ Copyright (c) 2016 - 2018 Eric Goller / projecthamster <elbenfreund@projecthamst
*/
-const GObject = imports.gi.GObject;
-const St = imports.gi.St;
-const Clutter = imports.gi.Clutter;
-
-const Gettext = imports.gettext.domain('hamster-shell-extension');
-const _ = Gettext.gettext;
-
-const Me = imports.misc.extensionUtils.getCurrentExtension();
+import GObject from 'gi://GObject';
+import St from 'gi://St';
+import Clutter from 'gi://Clutter';
+import { gettext as _ } from 'resource:///org/gnome/shell/extensions/extension.js';
/**
* Custom Entry widget that allows entering a *raw fact* string for a new ongoing fact.
@@ -186,3 +182,5 @@ class OngoingFactEntry extends St.Entry {
}
}
});
+
+export default OngoingFactEntry;
diff --git a/extension/widgets/panelWidget.js b/extension/widgets/panelWidget.js
index 4a15dd6..b02d37b 100644
--- a/extension/widgets/panelWidget.js
+++ b/extension/widgets/panelWidget.js
@@ -21,20 +21,17 @@ Copyright (c) 2016 - 2018 Eric Goller / projecthamster <elbenfreund@projecthamst
*/
-const Gio = imports.gi.Gio;
-const GObject = imports.gi.GObject;
-const Clutter = imports.gi.Clutter;
-const PanelMenu = imports.ui.panelMenu;
-const St = imports.gi.St;
-const PopupMenu = imports.ui.popupMenu;
-const GLib = imports.gi.GLib;
+import Gio from 'gi://Gio';
+import GObject from 'gi://GObject';
+import Clutter from 'gi://Clutter';
+import St from 'gi://St';
+import GLib from 'gi://GLib';
+import * as PanelMenu from 'resource:///org/gnome/shell/ui/panelMenu.js';
+import * as PopupMenu from 'resource:///org/gnome/shell/ui/popupMenu.js';
-const Gettext = imports.gettext.domain('hamster-shell-extension');
-const _ = Gettext.gettext;
-
-const Me = imports.misc.extensionUtils.getCurrentExtension();
-const FactsBox = Me.imports.widgets.factsBox.FactsBox;
-const Stuff = Me.imports.stuff;
+import { gettext as _ } from 'resource:///org/gnome/shell/extensions/extension.js';
+import FactsBox from './factsBox.js';
+import * as Stuff from '../stuff.js';
/**
* Class that defines the actual extension widget to be shown in the panel.
@@ -341,3 +338,5 @@ class PanelWidget extends PanelMenu.Button {
}
}
});
+
+export default PanelWidget;
diff --git a/extension/widgets/todaysFactsWidget.js b/extension/widgets/todaysFactsWidget.js
index 778f964..29c2370 100644
--- a/extension/widgets/todaysFactsWidget.js
+++ b/extension/widgets/todaysFactsWidget.js
@@ -21,17 +21,13 @@ Copyright (c) 2016 - 2018 Eric Goller / projecthamster <elbenfreund@projecthamst
*/
-const St = imports.gi.St;
-const Clutter = imports.gi.Clutter;
-const GLib = imports.gi.GLib;
-const GObject = imports.gi.GObject;
-
-const Gettext = imports.gettext.domain('hamster-shell-extension');
-const _ = Gettext.gettext;
-
-const Me = imports.misc.extensionUtils.getCurrentExtension();
-const Stuff = Me.imports.stuff;
+import St from 'gi://St';
+import Clutter from 'gi://Clutter';
+import GLib from 'gi://GLib';
+import GObject from 'gi://GObject';
+import { gettext as _ } from 'resource:///org/gnome/shell/extensions/extension.js';
+import * as Stuff from '../stuff.js';
/**
* A widget that lists all facts for *today*.
@@ -195,3 +191,5 @@ class TodaysFactsWidget extends St.ScrollView {
this.populateFactsWidget(facts, ongoingFact);
}
});
+
+export default TodaysFactsWidget;
diff --git a/extension/widgets/totalTimeWidget.js b/extension/widgets/totalTimeWidget.js
index 9a6d64b..d11be30 100644
--- a/extension/widgets/totalTimeWidget.js
+++ b/extension/widgets/totalTimeWidget.js
@@ -21,13 +21,11 @@ Copyright (c) 2016 - 2018 Eric Goller / projecthamster <elbenfreund@projecthamst
Copyright (c) 2018 Thibaut Madelaine <madtibo_git(a)tribu-ml.fr>
*/
-const St = imports.gi.St;
-const Clutter = imports.gi.Clutter;
-const GLib = imports.gi.GLib;
-const GObject = imports.gi.GObject;
-const Me = imports.misc.extensionUtils.getCurrentExtension();
-const Stuff = Me.imports.stuff;
-
+import St from 'gi://St';
+import Clutter from 'gi://Clutter';
+import GLib from 'gi://GLib';
+import GObject from 'gi://GObject';
+import * as Stuff from '../stuff.js';
/**
* Custom Label widget that displays total time.
@@ -58,3 +56,5 @@ var TotalTimeWidget = GObject.registerClass(
this.set_text(getString(facts));
}
});
+
+export default TotalTimeWidget;
--
2.42.0
++++++ 0169-extension.js-adapt-to-GNOME-45.patch ++++++
From 3ce1d776309872c543594934ee03b13112812213 Mon Sep 17 00:00:00 2001
From: Martin Wilck <mwilck(a)suse.com>
Date: Fri, 22 Sep 2023 21:18:08 +0200
Subject: [PATCH 169/173] extension.js: adapt to GNOME 45
https://gjs.guide/extensions/upgrading/gnome-shell-45.html#extension-js
Signed-off-by: Martin Wilck <mwilck(a)suse.com>
---
extension/extension.js | 11 +++--------
extension/widgets/panelWidget.js | 2 +-
2 files changed, 4 insertions(+), 9 deletions(-)
diff --git a/extension/extension.js b/extension/extension.js
index 31068ef..7873763 100644
--- a/extension/extension.js
+++ b/extension/extension.js
@@ -88,11 +88,11 @@ let WindowsProxy = Gio.DBusProxy.makeProxyWrapper(WindowsProxyIface);
*
* @class
*/
-class Controller {
+export default class Controller extends Extension {
constructor(extensionMeta) {
let dateMenu = Main.panel.statusArea.dateMenu;
- this.extensionMeta = extensionMeta;
+ super(extensionMeta);
this.panelWidget = null;
this.settings = null;
this.placement = 0;
@@ -136,7 +136,7 @@ class Controller {
if (!this.shouldEnable || !this.apiProxy || !this.windowsProxy)
return;
- this.settings = ExtensionUtils.getSettings();
+ this.settings = this.getSettings();
this.panelWidget = new PanelWidget(this);
this.placement = this.settings.get_int("panel-placement");
@@ -281,8 +281,3 @@ class Controller {
}
}
-
-function init(extensionMeta) {
- ExtensionUtils.initTranslations();
- return new Controller(extensionMeta);
-}
diff --git a/extension/widgets/panelWidget.js b/extension/widgets/panelWidget.js
index b02d37b..bfdc41b 100644
--- a/extension/widgets/panelWidget.js
+++ b/extension/widgets/panelWidget.js
@@ -62,7 +62,7 @@ class PanelWidget extends PanelMenu.Button {
this._controller = controller;
// [FIXME]
// Still needed?
- this._extensionMeta = controller.extensionMeta;
+ this._extensionMeta = controller.metadata;
this._settings = controller.settings;
this._windowsProxy = controller.windowsProxy;
--
2.42.0
++++++ 0170-prefs.js-re-implement-for-GNOME-45.patch ++++++
From 56a49e059d6ba187086df9690303352e27ed1702 Mon Sep 17 00:00:00 2001
From: Martin Wilck <mwilck(a)suse.com>
Date: Fri, 22 Sep 2023 23:12:35 +0200
Subject: [PATCH 170/173] prefs.js: re-implement for GNOME 45
I used check buttons for the settings. Adw.ComboRow might have been
more suitable, but I couldn't find an example how to set it up.
The code here was copied from GNOME's window-list extension and
adapted to hamster.
Signed-off-by: Martin Wilck <mwilck(a)suse.com>
---
extension/prefs.js | 251 ++++++++++++++++++++-------------------------
1 file changed, 114 insertions(+), 137 deletions(-)
diff --git a/extension/prefs.js b/extension/prefs.js
index c7ae150..0b565e6 100644
--- a/extension/prefs.js
+++ b/extension/prefs.js
@@ -21,155 +21,132 @@ Copyright (c) 2016 - 2018 Eric Goller / projecthamster <elbenfreund@projecthamst
*/
+import Adw from 'gi://Adw';
import Gdk from 'gi://Gdk';
import Gio from 'gi://Gio';
import Gtk from 'gi://Gtk';
import GObject from 'gi://GObject';
+import GLib from 'gi://GLib';
-const HamsterSettingsWidget = GObject.registerClass(
-class HamsterSettingsWidget extends Gtk.Grid {
- _init(params) {
- super._init(params);
+import {ExtensionPreferences, gettext as _} from 'resource:///org/gnome/Shell/Extensions/js/extensions/prefs.js';
- this.name = 'ProjectHamster.Prefs.HamsterSettingsWidget';
- this.set_margin_bottom(18);
- this.set_margin_end(18);
- this.set_margin_start(18);
- this.set_margin_top(18);
- this.set_column_spacing(12);
- this.set_row_spacing(12);
- this.visible = true;
+class HotkeyRow extends Adw.EntryRow {
+ static {
+ GObject.registerClass(this);
+ }
- this._settings = ExtensionUtils.getSettings();
+ constructor({ title, settings, bind }) {
+ super({
+ title: title,
+ });
- let label = new Gtk.Label({
- label: "Positioning:",
- halign: Gtk.Align.START,
- visible: true
- });
- this.attach(label, 0, 0, 1, 1);
+ this.connect("apply", () => {
+ const hotkeys = this.get_text();
- let placementOptions = new Gtk.ListStore();
- placementOptions.set_column_types([GObject.TYPE_STRING, GObject.TYPE_INT]);
+ const mappings = hotkeys.split(",").map((x) => {
+ const [, key, mods] = Gtk.accelerator_parse(x);
+ return Gtk.accelerator_valid(key, mods) && Gtk.accelerator_name(key, mods);
+ });
- placementOptions.set(placementOptions.append(), [0, 1], ["Default", 0]);
- placementOptions.set(placementOptions.append(), [0, 1], ["Replace calendar", 1]);
- placementOptions.set(placementOptions.append(), [0, 1], ["Replace activities", 2]);
- placementOptions.set(placementOptions.append(), [0, 1], ["Center, next to calendar", 3]);
+ if (mappings.every((x) => !!x)) {
+ console.log("HotkeyRow: good hotkey value ", hotkeys);
+ this.current = mappings;
+ settings.set_strv(bind, this.current);
+ } else {
+ console.log("invalid hotkey value ", hotkeys);
+ this.set_text(this.current.join(","));
+ }
+ });
- let placementCombo = new Gtk.ComboBox({
- model: placementOptions,
- visible: true
- });
-
- let placementComboRenderer = new Gtk.CellRendererText();
- placementCombo.pack_start(placementComboRenderer, true);
- placementCombo.add_attribute(placementComboRenderer, 'text', 0);
- placementCombo.connect('changed', this._onPlacementChange.bind(this));
- placementCombo.set_active(this._settings.get_int("panel-placement"));
- this.attach(placementCombo, 1, 0, 1, 1);
-
- label = new Gtk.Label({
- label: "Appearance in panel:",
- halign: Gtk.Align.START,
- visible: true
- });
- this.attach(label, 0, 1, 1, 1);
-
- let appearanceOptions = new Gtk.ListStore();
- appearanceOptions.set_column_types([GObject.TYPE_STRING, GObject.TYPE_INT]);
-
- appearanceOptions.set(appearanceOptions.append(), [0, 1], ["Label", 0]);
- appearanceOptions.set(appearanceOptions.append(), [0, 1], ["Icon", 1]);
- appearanceOptions.set(appearanceOptions.append(), [0, 1], ["Label and icon", 2]);
-
- let appearanceCombo = new Gtk.ComboBox({
- model: appearanceOptions,
- visible: true
- });
-
- let appearanceComboRenderer = new Gtk.CellRendererText();
- appearanceCombo.pack_start(appearanceComboRenderer, true);
- appearanceCombo.add_attribute(appearanceComboRenderer, 'text', 0);
- appearanceCombo.connect('changed', this._onAppearanceChange.bind(this));
- appearanceCombo.set_active(this._settings.get_int("panel-appearance"));
- this.attach(appearanceCombo, 1, 1, 1, 1);
-
- label = new Gtk.Label({
- label: "Global hotkey:",
- halign: Gtk.Align.START,
- visible: true
- });
- this.attach(label, 0, 2, 1, 1);
-
- let entry = new Gtk.Entry({
- margin_bottom: 10,
- margin_top: 5,
- text: this._settings.get_strv("show-hamster-dropdown")[0],
- visible: true
- });
- entry.connect('changed', this._onHotkeyChange.bind(this));
- this.attach(entry, 1, 2, 1, 1);
-
- label = new Gtk.Label({
- label: "Reload gnome shell after updating prefs (alt+f2 > r)",
- halign: Gtk.Align.CENTER,
- visible: true,
- margin_top: 70
- });
- this.attach(label, 0, 3, 2, 1);
-
- }
-
- _onPlacementChange(widget) {
- let [success, iter] = widget.get_active_iter();
- if (!success)
- return;
-
- let newPlacement = widget.get_model().get_value(iter, 1);
-
- if (this._settings.get_int("panel-placement") == newPlacement)
- return;
-
- this._settings.set_int("panel-placement", newPlacement);
- }
-
- _onAppearanceChange(widget) {
- let [success, iter] = widget.get_active_iter();
- if (!success)
- return;
-
- let newAppearance = widget.get_model().get_value(iter, 1);
-
- if (this._settings.get_int("panel-appearance") == newAppearance)
- return;
-
- this._settings.set_int("panel-appearance", newAppearance);
- }
-
- _onHotkeyChange(widget, bananas) {
- let hotkey = widget.get_text();
- let [key, mods] = [null, null];
-
- if (Gtk.MAJOR_VERSION >= 4) {
- let _r = null;
- [_r, key, mods] = Gtk.accelerator_parse(hotkey);
- } else {
- [key, mods] = Gtk.accelerator_parse(hotkey);
- }
-
- if (key != 0) {
- let parsedName = Gtk.accelerator_name(key, mods);
- this._settings.set_strv("show-hamster-dropdown", [parsedName]);
- }
-
- }
-});
-
-function init() {
+ this.show_apply_button = true,
+ this.current = settings.get_strv(bind);
+ console.log("HotkeyRow current: ", bind, this.current);
+ this.set_text(this.current.join(","));
+ }
}
-function buildPrefsWidget() {
- return new HamsterSettingsWidget();
+class HamsterPrefsWidget extends Adw.PreferencesPage {
+
+ static {
+ GObject.registerClass(this);
+ }
+
+ constructor(settings) {
+ super();
+ this._settings = settings;
+
+ this._actionGroup = new Gio.SimpleActionGroup();
+ this.insert_action_group('hamster', this._actionGroup);
+ this._actionGroup.add_action(
+ this._settings.create_action('panel-placement'));
+ this._actionGroup.add_action(
+ this._settings.create_action('panel-appearance'));
+
+ const placementGroup = new Adw.PreferencesGroup({
+ title: _('Panel Placement'),
+ });
+ this.add(placementGroup);
+
+ const placements = [
+ { p: 0, title: _("Default") },
+ { p: 1, title: _("Replace calendar") },
+ { p: 2, title: _("Replace activities") },
+ { p: 3, title: _("Center, next to calendar") },
+ ];
+
+ for (const {p, title} of placements) {
+ const btn = new Gtk.CheckButton({
+ action_name: 'hamster.panel-placement',
+ action_target: new GLib.Variant('i', p),
+ });
+ const row = new Adw.ActionRow({
+ activatable_widget: btn,
+ title,
+ });
+ row.add_prefix(btn);
+ placementGroup.add(row);
+ }
+
+ const appearanceGroup = new Adw.PreferencesGroup({
+ title: _('Panel Appearance'),
+ });
+ this.add(appearanceGroup);
+
+ const appearances = [
+ { a: 0, title: _("Label") },
+ { a: 1, title: _("Icon") },
+ { a: 2, title: _("Label and icon") },
+ ];
+
+ for (const {a, title} of appearances) {
+ const btn = new Gtk.CheckButton({
+ action_name: 'hamster.panel-appearance',
+ action_target: new GLib.Variant('i', a),
+ });
+ const row = new Adw.ActionRow({
+ activatable_widget: btn,
+ title,
+ });
+ row.add_prefix(btn);
+ appearanceGroup.add(row);
+ }
+
+ const miscGroup = new Adw.PreferencesGroup();
+ this.add(miscGroup);
+
+ let row = new HotkeyRow({
+ title: _("Global hotkey"),
+ settings: this._settings,
+ bind: "show-hamster-dropdown",
+ });
+
+ miscGroup.add(row);
+ }
+}
+
+export default class HamsterPrefs extends ExtensionPreferences {
+ getPreferencesWidget() {
+ return new HamsterPrefsWidget(this.getSettings());
+ }
}
--
2.42.0
++++++ 0171-metadata.json.in-GNOME-45-support.patch ++++++
From 289d6b16a436fd51c807cea7ba3f05863dae039a Mon Sep 17 00:00:00 2001
From: Martin Wilck <mwilck(a)suse.com>
Date: Fri, 22 Sep 2023 23:16:04 +0200
Subject: [PATCH 171/173] metadata.json.in: GNOME 45 support
This implies that support for all previous GNOME versions is dropped.
(https://gjs.guide/extensions/upgrading/gnome-shell-45.html#shell-version)
Signed-off-by: Martin Wilck <mwilck(a)suse.com>
---
data/metadata.json.in | 9 +--------
1 file changed, 1 insertion(+), 8 deletions(-)
diff --git a/data/metadata.json.in b/data/metadata.json.in
index 162a7cf..ddbd0a5 100644
--- a/data/metadata.json.in
+++ b/data/metadata.json.in
@@ -10,14 +10,7 @@
"gettext-domain": "hamster-shell-extension",
"settings-schema": "org.gnome.shell.extensions.project-hamster",
"shell-version": [
- "3.34",
- "3.36",
- "3.38",
- "40",
- "41",
- "42",
- "43",
- "44"
+ "45"
],
"url": "https://github.com/projecthamster/hamster-shell-extension.git",
"uuid": @UUID@
--
2.42.0
++++++ 0172-README.rst-fixup-GNOME-shell-compatiblility.patch ++++++
From 36efbfe623faf94da1ea86686864f95e62c81192 Mon Sep 17 00:00:00 2001
From: Martin Wilck <mwilck(a)suse.com>
Date: Mon, 25 Sep 2023 18:46:45 +0200
Subject: [PATCH 172/173] README.rst: fixup GNOME shell compatiblility
Signed-off-by: Martin Wilck <mwilck(a)suse.com>
---
README.rst | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/README.rst b/README.rst
index 41a4a52..5263bf7 100644
--- a/README.rst
+++ b/README.rst
@@ -34,8 +34,8 @@ Install For Production
Please follow the instructions under
`Manual Installation For Testing and Development`_ below to install from git.
-The code in this branch (``develop``) is compatible with GNOME shell 3.34
-up to GNOME shell 44. See also `metadata.json.in`_.
+The code in this branch is compatible with *GNOME shell 45 and newer* only.
+See also `metadata.json.in`_.
*Important:* The "Hamster Time Tracker" extension on
`extensions.gnome.org https://extensions.gnome.org/extension/425/project-hamster-extension/`_
--
2.42.0
++++++ 0173-Replace-global.log-by-console.log.patch ++++++
From bdda7f12190654c0cc9663912473476eafcf64ef Mon Sep 17 00:00:00 2001
From: Martin Wilck <mwilck(a)suse.com>
Date: Wed, 27 Sep 2023 10:58:14 +0200
Subject: [PATCH 173/173] Replace "global.log" by "console.log"
"global" isn't generally available any more.
Signed-off-by: Martin Wilck <mwilck(a)suse.com>
---
extension/extension.js | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/extension/extension.js b/extension/extension.js
index 7873763..05e75cb 100644
--- a/extension/extension.js
+++ b/extension/extension.js
@@ -187,7 +187,7 @@ export default class Controller extends Extension {
this.shouldEnable = false;
Main.wm.removeKeybinding("show-hamster-dropdown");
- global.log('Shutting down hamster-shell-extension.');
+ console.log('Shutting down hamster-shell-extension.');
this._removeWidget(this.placement);
Main.panel.menuManager.removeMenu(this.panelWidget.menu);
this.panelWidget.destroy();
@@ -209,7 +209,6 @@ export default class Controller extends Extension {
this.reportIfError(_("Failed to get activities"), err);
this.runningActivitiesQuery = false;
this.activities = response;
- // global.log('ACTIVITIES HAMSTER: ', this.activities);
}.bind(this));
}
@@ -220,7 +219,7 @@ export default class Controller extends Extension {
reportIfError(msg, error) {
if (error) {
// Use toString, error can be a string, exception, etc.
- global.log("error: Hamster: " + msg + ": " + error.toString());
+ console.log("error: Hamster: " + msg + ": " + error.toString());
// Prefix msg to details (second argument), since the
// details are word-wrapped and the title is not.
Main.notify("Hamster: " + msg, msg + "\n" + error.toString());
--
2.42.0
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package languagetool for openSUSE:Factory checked in at 2023-09-29 21:13:51
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/languagetool (Old)
and /work/SRC/openSUSE:Factory/.languagetool.new.28202 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "languagetool"
Fri Sep 29 21:13:51 2023 rev:5 rq:1114037 version:4.8
Changes:
--------
languagetool-tools.changes: same change
--- /work/SRC/openSUSE:Factory/languagetool/languagetool.changes 2023-09-13 20:47:51.409120381 +0200
+++ /work/SRC/openSUSE:Factory/.languagetool.new.28202/languagetool.changes 2023-09-29 21:15:04.056982339 +0200
@@ -1,0 +2,6 @@
+Thu Sep 28 08:27:37 UTC 2023 - Fridrich Strba <fstrba(a)suse.com>
+
+- Fix too restrictive permissions on aggregated
+ language-module.properties file
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
languagetool-tools.spec: same change
++++++ languagetool.spec ++++++
--- /var/tmp/diff_new_pack.AlZIug/_old 2023-09-29 21:15:06.097055945 +0200
+++ /var/tmp/diff_new_pack.AlZIug/_new 2023-09-29 21:15:06.097055945 +0200
@@ -211,6 +211,8 @@
install -dm 0755 %{buildroot}%{_datadir}/%{name}
cp -r languagetool-standalone/target/LanguageTool-%{version}/LanguageTool-%{version}/* %{buildroot}%{_datadir}/%{name}
+# the file-aggregator creates a file with too restrictive permissions
+chmod 0644 %{buildroot}%{_datadir}/%{name}/META-INF/org/languagetool/language-module.properties
xmvn-subst -R %{buildroot} -s %{buildroot}%{_datadir}/%{name}/libs
%fdupes -s %{buildroot}%{_datadir}/%{name}
1
0