#72138 closed defect (fixed)
borgmatic @1.9.3 (sysutils) Broken by py312-referencing 0.36.2_0
| Reported by: | DrBrynzo | Owned by: | neverpanic (Clemens Lang) |
|---|---|---|---|
| Priority: | Normal | Milestone: | |
| Component: | ports | Version: | 2.10.5 |
| Keywords: | Cc: | neverpanic (Clemens Lang), reneeotten (Renee Otten) | |
| Port: | py-referencing |
Description
Running "port upgrade outdated" broke borgmatic on two M1 Macs running Sequoia 15.3.1 (24D70) and MacPorts 2.10.5.
bryn@wingnut ~ % sudo port selfupdate
Password:
---> Checking for newer releases of MacPorts
MacPorts base version 2.10.5 installed,
MacPorts base version 2.10.5 available.
---> MacPorts base is already the latest version
---> Updating the ports tree
The ports tree has been updated.
2 ports are outdated. Run 'port outdated' for details.
To upgrade your installed ports, you should run
port upgrade outdated
bryn@wingnut ~ % port outdated
The following installed ports are outdated:
py312-referencing 0.35.1_0 < 0.36.2_0
py313-setuptools 75.8.0_0 < 75.8.2_0
bryn@wingnut ~ % borgmatic
/etc/borgmatic/config.yaml /etc/borgmatic.d /Users/bryn/.config/borgmatic/config.yaml /Users/bryn/.config/borgmatic.d: No valid configuration files found
summary:
/etc/borgmatic/config.yaml /etc/borgmatic.d /Users/bryn/.config/borgmatic/config.yaml /Users/bryn/.config/borgmatic.d: No valid configuration files found
Need some help? https://torsion.org/borgmatic/#issues
bryn@wingnut ~ % sudo port upgrade outdated
---> Computing dependencies for py312-referencing
---> Fetching archive for py312-referencing
---> Attempting to fetch py312-referencing-0.36.2_0.darwin_any.noarch.tbz2 from https://packages.macports.org/py312-referencing
---> Attempting to fetch py312-referencing-0.36.2_0.darwin_any.noarch.tbz2.rmd160 from https://packages.macports.org/py312-referencing
---> Installing py312-referencing @0.36.2_0
---> Cleaning py312-referencing
---> Computing dependencies for py312-referencing
---> Deactivating py312-referencing @0.35.1_0
---> Cleaning py312-referencing
---> Activating py312-referencing @0.36.2_0
---> Cleaning py312-referencing
---> Computing dependencies for py313-setuptools
---> Fetching archive for py313-setuptools
---> Attempting to fetch py313-setuptools-75.8.2_0.darwin_any.noarch.tbz2 from https://packages.macports.org/py313-setuptools
---> Attempting to fetch py313-setuptools-75.8.2_0.darwin_any.noarch.tbz2.rmd160 from https://packages.macports.org/py313-setuptools
---> Installing py313-setuptools @75.8.2_0
---> Cleaning py313-setuptools
---> Computing dependencies for py313-setuptools
---> Deactivating py313-setuptools @75.8.0_0
---> Cleaning py313-setuptools
---> Activating py313-setuptools @75.8.2_0
---> Cleaning py313-setuptools
---> Scanning binaries for linking errors
---> No broken files found.
---> No broken ports found.
bryn@wingnut ~ % borgmatic
Traceback (most recent call last):
File "/opt/local/bin/borgmatic", line 5, in <module>
from borgmatic.commands.borgmatic import main
File "/opt/local/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/borgmatic/commands/borgmatic.py", line 13, in <module>
import borgmatic.actions.borg
File "/opt/local/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/borgmatic/actions/borg.py", line 5, in <module>
import borgmatic.config.validate
File "/opt/local/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/borgmatic/config/validate.py", line 4, in <module>
import jsonschema
File "/opt/local/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/jsonschema/__init__.py", line 13, in <module>
from jsonschema._format import FormatChecker
File "/opt/local/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/jsonschema/_format.py", line 11, in <module>
from jsonschema.exceptions import FormatError
File "/opt/local/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/jsonschema/exceptions.py", line 15, in <module>
from referencing.exceptions import Unresolvable as _Unresolvable
File "/opt/local/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/referencing/__init__.py", line 5, in <module>
from referencing._core import Anchor, Registry, Resource, Specification
File "/opt/local/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/referencing/_core.py", line 18, in <module>
from referencing.typing import URI, Anchor as AnchorType, D, Mapping, Retrieve
File "/opt/local/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/referencing/typing.py", line 22, in <module>
D = TypeVar("D", default=Any)
^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: 'default' is an invalid keyword argument for typevar()
Change History (13)
comment:1 Changed 14 months ago by jmroot (Joshua Root)
| Cc: | neverpanic reneeotten added |
|---|---|
| Port: | py-referencing added |
| Summary: | borgmatic @1.9.3 (sysutils) Broken by py312-referencing 0.36.2_0 and/or py313-setuptools 75.8.2_0 → borgmatic @1.9.3 (sysutils) Broken by py312-referencing 0.36.2_0 |
comment:2 Changed 14 months ago by reneeotten (Renee Otten)
comment:3 Changed 14 months ago by neverpanic (Clemens Lang)
comment:4 Changed 14 months ago by neverpanic (Clemens Lang)
| Owner: | set to neverpanic |
|---|---|
| Status: | new → accepted |
comment:5 Changed 14 months ago by neverpanic (Clemens Lang)
| Resolution: | → fixed |
|---|---|
| Status: | accepted → closed |
comment:6 Changed 14 months ago by DrBrynzo
| Resolution: | fixed |
|---|---|
| Status: | closed → reopened |
This did not fix the problem. The error seems to be the same with the updated version of borgmatic upstream.
bryn@mini ~ % borgmatic -v1 --progress --stats -c scripts/borgmatic/run-daily
Traceback (most recent call last):
File "/opt/local/bin/borgmatic", line 5, in <module>
from borgmatic.commands.borgmatic import main
File "/opt/local/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/borgmatic/commands/borgmatic.py", line 11, in <module>
import borgmatic.actions.borg
File "/opt/local/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/borgmatic/actions/borg.py", line 5, in <module>
import borgmatic.config.validate
File "/opt/local/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/borgmatic/config/validate.py", line 4, in <module>
import jsonschema
File "/opt/local/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/jsonschema/__init__.py", line 13, in <module>
from jsonschema._format import FormatChecker
File "/opt/local/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/jsonschema/_format.py", line 11, in <module>
from jsonschema.exceptions import FormatError
File "/opt/local/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/jsonschema/exceptions.py", line 15, in <module>
from referencing.exceptions import Unresolvable as _Unresolvable
File "/opt/local/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/referencing/__init__.py", line 5, in <module>
from referencing._core import Anchor, Registry, Resource, Specification
File "/opt/local/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/referencing/_core.py", line 18, in <module>
from referencing.typing import URI, Anchor as AnchorType, D, Mapping, Retrieve
File "/opt/local/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/referencing/typing.py", line 22, in <module>
D = TypeVar("D", default=Any)
^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: 'default' is an invalid keyword argument for typevar()
bryn@mini ~ % port info borgmatic
borgmatic @1.9.13 (sysutils)
Description: borgmatic is simple, configuration-driven backup software for servers and workstations. Protect your files
with client-side encryption. Backup your databases too. Monitor it all with integrated third-party services.
Homepage: https://torsion.org/borgmatic/
Build Dependencies: py312-build, py312-installer, py312-setuptools, py312-wheel
Library Dependencies: python312
Runtime Dependencies: borgbackup, py312-colorama, py312-jsonschema, py312-packaging, py312-requests, py312-ruamel-yaml,
py312-ruamel-yaml-clib
Platforms: darwin any
License: GPL-3
Maintainers: Email: cal@macports.org, GitHub: neverpanic
Policy: openmaintainer
comment:7 Changed 14 months ago by jmroot (Joshua Root)
From the backtrace, the problem may actually be in py-jsonschema.
comment:8 Changed 14 months ago by DrBrynzo
| Port: | py-jsonschema added |
|---|
comment:9 Changed 14 months ago by jmroot (Joshua Root)
| Resolution: | → fixed |
|---|---|
| Status: | reopened → closed |
comment:10 Changed 14 months ago by jmroot (Joshua Root)
sudo port upgrade py312-referencing or sudo port upgrade borgmatic will install the new dependency.
comment:11 Changed 14 months ago by neverpanic (Clemens Lang)
I saw the problem before the update, it was fixed after, so I assumed it did actually fix it. Not sure what combination of py-jsonschema and py-typing_extensions caused this problem to disappear for me. Maybe I had py-typing_extensions installed for a different reason, though.
comment:12 Changed 14 months ago by neverpanic (Clemens Lang)
| Port: | borgmatic py-jsonschema removed |
|---|
The root cause was an upstream change in https://github.com/python-jsonschema/referencing/commit/5ea5a1539378f80caa9d6969849ee61667cb7252, that shipped in py312-referencing 0.36.0 or later, which came into MacPorts with [b55dc3a257873cdc3cf1acf6f0aa0e0252ed623a/macports-ports], so this was actually a py-referencing bug in the first place, and borgmatic was never affected.
This worked for me locally because I didn't have the updated py-referencing yet.
comment:13 Changed 14 months ago by DrBrynzo
The py312-referencing upgrade seems to have fixed the error by pulling "py312-typing_extensions @4.12.2_0".
I hadn't made any other changes to the system since yesterday (last report) so that seems to be it.
bryn@mini ~ % sudo port upgrade py312-referencing Password: ---> Computing dependencies for py312-typing_extensions ---> Fetching archive for py312-typing_extensions ---> Attempting to fetch py312-typing_extensions-4.12.2_0.darwin_any.noarch.tbz2 from https://packages.macports.org/py312-typing_extensions ---> Attempting to fetch py312-typing_extensions-4.12.2_0.darwin_any.noarch.tbz2.rmd160 from https://packages.macports.org/py312-typing_extensions ---> Installing py312-typing_extensions @4.12.2_0 ---> Activating py312-typing_extensions @4.12.2_0 ---> Cleaning py312-typing_extensions ---> Scanning binaries for linking errors ---> No broken files found. ---> No broken ports found. bryn@mini ~ % sudo port upgrade borgmatic ---> Scanning binaries for linking errors ---> No broken files found. ---> No broken ports found. bryn@mini ~ % borgmatic --version 1.9.13

first thing to do is likely to update
borgmaticto the latest upstream version and see if the problem persists.