Opened 3 months ago

Last modified 3 months ago

#70557 new defect

base 2.10.0 should do `portindex` for all local repos during `port migrate`

Reported by: JDLH (Jim DeLaHunt) Owned by:
Priority: Normal Milestone:
Component: base Version: 2.10.0
Keywords: Cc: githubbjs (BJS)
Port:

Description

port migrate failed to rebuild some of my ports during a recent migration, which followed an OS upgrade (from Monterey to Sonoma). The reason is that I had a local portfile repository, which contained a patch to fix a particular build failure for a particular port on my system. During the migrate process, MacPorts apparently lost track of this repo. Thus it attempted to build the standard MacPorts version of the affected port. This attempt failed. I ran portindex from my local Portfiles repo directory. Then I redid port install for the ultimately requested port, which depended on the affected port. MacPorts rebuilt my local patched copy of the affected port. This attempt succeeded.

I request an enhancement: have port migrate incorporate portindex on all local Portfile repositories. After cataloguing and uninstalling all existing ports, migrate should go through local Portfile repos listed in sources.conf. For each repo, it should perform a portindex operation. Then it should resume installing the ports in the new configuration.

The specifics of my situation: I upgraded my OS from macOS 12.7.6 Monterey to 14.6.1 Sonoma. That went smoothly. Silly me, I neglected to let MacPorts upgrade itself from 2.9 to 2.10 before the OS upgrade. Thus I had to install MacPorts base 2.10.0 via an installer. I do not know if that is relevant to the behaviour I saw. Also, I have a local copy of port www/webkit2-gtk in order to work around ticket webkit2-gtk @2.28.2: config.rb: in `<top (required)>': undefined method `exists?' for File:Class (NoMethodError). migrate's first sreinstall of webkit2-gtk failed due to this bug. At that stage, port info webkit2-gtk retrieved information on the standard port. Running portindex on my local repo reasserted my local Portfile, and solved the problem.

Change History (4)

comment:1 Changed 3 months ago by jmroot (Joshua Root)

port migrate does run mportsync (the internal equivalent of port sync) which should update the indexes for all sources that are not tagged with [nosync].

comment:2 Changed 3 months ago by JDLH (Jim DeLaHunt)

Awesome! However, during my recent port migrate, that did not seem to take in my local port repo until I ran port sync manually. So maybe this is a bug report instead of an enhancement request.

comment:3 Changed 3 months ago by githubbjs (BJS)

Cc: githubbjs added

comment:4 Changed 3 months ago by jmroot (Joshua Root)

It will probably be difficult to figure out what happened without seeing debug output from an affected migrate run.

Note: See TracTickets for help on using tickets.