Opened 8 years ago

Closed 8 years ago

#38103 closed defect (fixed)

py27-pyusb-devel lists incorrect portdir in index

Reported by: istlota@… Owned by: macports-tickets@…
Priority: Normal Milestone:
Component: ports Version: 2.1.3
Keywords: Cc: raimue (Rainer Müller), ryandesign (Ryan Schmidt)
Port: py-pyusb-devel

Description (last modified by ryandesign (Ryan Schmidt))

Once a week, I port clean -all all. This week, it is failing when it gets to py27-pyusb with this message:

--->  Cleaning py27-pyusb
Error: Unable to open port: couldn't change working directory to "/opt/local/var/macports/sources/": no such file or directory

Yet, I can successfully complete a port clean py27-pyusb, port uninstall py27-usb, and port install py27-pyusb.

Five days ago, py27-pyusb-devel was removed, right? This is acting like there is some sort of unnecessary py27-pyusb-devel dependency which is unique to port clean --all all, but not port clean py27-pyusb. Grok?

Change History (6)

comment:1 Changed 8 years ago by ryandesign (Ryan Schmidt)

Cc: ryandesign@… added; istlota@… removed
Description: modified (diff)

Please verify that the problem still occurs after running "sudo port selfupdate". If so, I believe I understand what is happening, and will try to explain and fix it.

comment:2 Changed 8 years ago by jmroot (Joshua Root)

Port: py-pyusb-devel added; py27-pyusb removed
Priority: LowNormal
Summary: port clean --all all fails to clean py27-pyusbpy27-pyusb-devel lists incorrect portdir in index

comment:3 Changed 8 years ago by jmroot (Joshua Root)

Cc: raimue@… added

comment:4 Changed 8 years ago by ryandesign (Ryan Schmidt)

I believe the following is correct:

In r103036 the unified ports py-pyusb and py-pyusb-devel were created by copying and modifying py26-pyusb and py26-pyusb-devel. The new unified ports contain subports for python25, python26 and python27. When converting non-unified ports to a unified port, it is necessary to create the new unified port and also to delete all the old non-unified ports in the same commit. In r103036 py26-pyusb and py26-pyusb-devel were deleted, but it was not realized that a standalone py27-pyusb-devel existed, so it was not deleted. When the server-side portindex process ran following r103036, the py27-pyusb-devel subport of py-pyusb-devel was not added to the index because that conflicted with the existing standalone py27-pyusb-devel port. A duplicate key error message was produced by the server-side portindex process, which caused an automated email about this problem to be sent to our administrator, in response to which he alert the dev mailing list to the problem, which led to Rainer removing the old py27-pyusb-devel port in r103042. But MacPorts doesn't know that it should now re-index the py-pyusb-devel port, so the index still contains the old path for the now-deleted py27-pyusb-devel port.

The solution should therefore be to make any change to the py-pyusb-devel port so that the server-side process re-indexes it. I've made such a change in r103179. Please wait 30 minutes, then run "sudo port selfupdate" and verify whether it's fixed.

Version 0, edited 8 years ago by ryandesign (Ryan Schmidt) (next)

comment:5 Changed 8 years ago by istlota@…

Just tried port clean --all all . It completes now. Problem solved. Thanks!

comment:6 Changed 8 years ago by ryandesign (Ryan Schmidt)

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.