Solved Issues with py37 packages from the 2020Q3 ports tree on 12.1

Recently updated to 2020Q3. I seem to be having issues with Python ports as I upgrade.

Code:
# portmaster -D -G -g --no-confirm comms/py-pyserial
(Snip)
===> Creating unique files: Move MAN files needing SUFFIX
===> Creating unique files: Move files needing SUFFIX
Move: bin/miniterm.py --> bin/miniterm.py-3.7
Link: @bin/miniterm.py --> bin/miniterm.py-3.7
====> Compressing man pages (compress-man)
if [ -d "/usr/ports/comms/py-pyserial/work-py37/stage/usr/local/lib/python3.7/site-packages/pyserial-3.4-py3.7.egg-info" ]; then  /bin/ls /usr/ports/comms/py-pyserial/work-py37/stage/usr/local/lib/python3.7/site-packages/pyserial-3.4-py3.7.egg-info | while read f; do  echo lib/python3.7/site-packages/pyserial-3.4-py3.7.egg-info/${f} >> /usr/ports/comms/py-pyserial/work-py37/.PLIST.mktmp;  done;  fi;
===>  Installing for py37-pyserial-3.4_1
===>  Checking if py37-pyserial is already installed
===>   Registering installation for py37-pyserial-3.4_1
Installing py37-pyserial-3.4_1...
pkg-static: py37-pyserial-3.4_1 conflicts with py37-serial-3.4_1 (installs files into the same place).  Problematic file: /usr/local/bin/miniterm.py-3.7
*** Error code 70

Stop.
make: stopped in /usr/ports/comms/py-pyserial

===>>> Installation of py37-pyserial-3.4_1 (comms/py-pyserial) failed
===>>> Aborting update


===>>> You can restart from the point of failure with this command line:
       portmaster <flags> comms/py-pyserial 

This command has been saved to ~/portmasterfail.txt

I have similar failures with other py37 packages. Was there some change in the ports tree or pkg to cause this?

Thanks!
 
It seems a couple of Python ports had their names changed which causes this confusion; py37-pyserial-3.4_1 and py37-serial-3.4_1 are actually the same port. You can try setting the corrected name with pkg-set(8). Not sure if it would work but it's something I would try:
pkg set -o comms/py-serial:comms/py-pyserial

Code:
     -o oldorigin:neworigin, --change-origin oldorigin:neworigin
                Change the port origin of a given dependency from oldorigin to
                neworigin.  This corresponds to the port directory that the
                package originated from.  Typically, this is only needed for
                upgrading a library or package that has MOVED or when the
                default version of a major port dependency changes.
                (DEPRECATED) Usually this will be explained in
                /usr/ports/UPDATING.  Also see pkg-updating(8) and EXAMPLES.
 
That did the trick, thank you!

Is there any way to handle these updates in an automated fashion where that would get corrected as it went?
 
Don't know if portmaster(8) is able to deal with this automatically, it's been a long time since I last used it (I build my own repositories with Poudriere). There is an -o option but you'd still have to go through each one individually.

Code:
   -o	_new port dir in /usr/ports_ _installed	port_
	 replace the installed port with a port	from a different origin
 
Gotcha, thank you! I try to compile all of the packages I need to use locally, partly to make sure I have the source on hand. I imagine I'll have a few more packages to do that trick on.

Maybe one day I'll switch to poudriere.
 
Back
Top