Opened 12 years ago

Closed 12 years ago

Last modified 12 years ago

#36476 closed defect (fixed)

Conflicting ports in lbusb installation

Reported by: r.kliper@… Owned by: macports-tickets@…
Priority: Normal Milestone:
Component: ports Version: 2.1.2
Keywords: Cc:
Port: libusb

Description

"sudo port upgrade outdated"

results in the following Error: libusb-devel is replaced by libusb

Error: Unable to upgrade port: Can't install libusb because conflicting ports are installed: libusb-devel

Mac OS X 10.6.8

Change History (2)

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

Port: libusb added
Resolution: fixed
Status: newclosed
Type: updatedefect

comment:2 Changed 12 years ago by ryandesign (Ryan Carsten Schmidt)

To explain:

There used to be only a libusb port. It was created in r5051.

Then in r73762 the libusb port was copied and named libusb-devel, to allow newer not-yet-released versions of libusb to be used. The naming convention libusb and libusb-devel communicates that these ports install (different versions of) the same files in the same locations, and therefore the ports were marked as conflicting with one another in r83570. This should have been done immediately after the conflicting port was created, but was forgotten. MacPorts uses the conficts markers to let users know early on if an installation would fail. That's where the message "Can't install libusb because conflicting ports are installed: libusb-devel" came from.

Some ports began declaring dependencies on libusb-devel, if they required newer features not available in the latest stable version. You appear to have installed one of those ports at some time which is why you currently have libusb-devel installed.

In r92944 it was decided that a separate libusb-devel port was no longer needed, that the latest stable version of libusb was sufficient for all ports' needs, and that any users currently using libusb-devel should be made to switch back to the libusb port. This switch is accomplished by the "replaced_by" keyword; this is what prompted MacPorts to print the message "libusb-devel is replaced by libusb".

But the replaced_by mechanism was thwarted by the conflicts mechanism. The conflicts marker should have been removed from the libusb port when libusb-devel was marked as being replaced_by it, but again it was forgotten. I removed the conflicts marker from the libusb port in r98416 so that the replaced_by mechanism should now succeed.

You now need to run "sudo port selfupdate" to receive my change (as you would do to receive any other change we make in MacPorts), then you should be able to upgrade your ports. When MacPorts gets to upgrading libusb-devel, it should deactivate it and install libusb in its place.

Note: See TracTickets for help on using tickets.