[MacPorts] #72227: duplicity @2.1.4: python shebang set so duplicity only runs from inside /opt/loca/bin/
MacPorts
noreply at macports.org
Sun Mar 23 00:50:58 UTC 2025
#72227: duplicity @2.1.4: python shebang set so duplicity only runs from inside
/opt/loca/bin/
------------------------+-----------------------
Reporter: jbbythebch | Owner: (none)
Type: defect | Status: new
Priority: Normal | Milestone:
Component: ports | Version: 2.10.5
Keywords: | Port: duplicity
------------------------+-----------------------
This port and version seemed to work fine, but after an upgrade from macOS
13.x to 15.3.2, and then running 'sudo port migrate', duplicity will only
run if it is called from inside `'/opt/local/bin/'`.
I tried uninstalling and cleaning the port, and reinstalling it; still has
the same issue.
The shebang for `'/opt/local/bin/duplicity'` (which links to
`'/opt/local/Library/Frameworks/Python.framework/Versions/3.11/bin/duplicity'`
is `'#!python'`.
The shebang for the 'duplicity' source file on Gitlab is `'#!/usr/bin/env
python3'`.
I tested the reinplace command in duplicity's Portfile, by setting up a
local port for duplicity, and replacing the above with junk text, to see
if the reinplace command was working, and it worked fine, unless the
replacement was an actual path to a valid python interpreter.
For example, I changed the reinplace command
from:\\
`reinplace "s|^#!/usr/bin/env python3$|#!${python.bin}|"
${worksrcpath}/bin/${f}`\\
to:\\
`reinplace "s|^#!/usr/bin/env python3$|#!/opt/local/bin/pythonXXX|"
${worksrcpath}/bin/${f}`\\
And the shebang became `'#!/opt/local/bin/pythonXXX'`, which of course is
useless, but it showed the reinplace command seemed to be working
correctly.
I used a similar 'reinplace' command to replace some comment text with
`'${pyhon.bin}'`, and it expaned the variable to:
`'#!/opt/local/Library/Frameworks/Python.framework/Versions/3.11/bin/python3.11'`
which is the correct python interpreter as far as I can tell, so the
variable is correct.
But, somewhere what the shebang is supposed to be, and what it seems like
the Portfile sets it to,
`'#!/opt/local/Library/Frameworks/Python.framework/Versions/3.11/bin/python3.11'`
gets changed to `'#!python'`.
To get it working, I just manually edited the shebang in my installation,
so it now runs from anywhere, but this issue should be addressed by
someone who understands a lot more about MacPorts than I do.
--
Ticket URL: <https://trac.macports.org/ticket/72227>
MacPorts <https://www.macports.org/>
Ports system for macOS
More information about the macports-tickets
mailing list