Opened 14 months ago

Closed 14 months ago

Last modified 14 months ago

#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_0borgmatic @1.9.3 (sysutils) Broken by py312-referencing 0.36.2_0

comment:2 Changed 14 months ago by reneeotten (Renee Otten)

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

> port  livecheck borgmatic
borgmatic seems to have been updated (port version: 1.9.3, new version: 1.9.13)

comment:4 Changed 14 months ago by neverpanic (Clemens Lang)

Owner: set to neverpanic
Status: newaccepted

comment:5 Changed 14 months ago by neverpanic (Clemens Lang)

Resolution: fixed
Status: acceptedclosed

In 59a636366b998569cb2bd739426ae91745fc755e/macports-ports (master):

borgmatic: Update to 1.9.13

Closes: #72138

comment:6 Changed 14 months ago by DrBrynzo

Resolution: fixed
Status: closedreopened

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: reopenedclosed

In 727d21d3a43546d46b88b1d31913ac85e3ee1720/macports-ports (master):

py-referencing: add missing typing_extensions dep

Closes: #72138

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
Note: See TracTickets for help on using tickets.