Opened 13 years ago

Closed 13 years ago

#30302 closed defect (invalid)

port selfupdate to 2.0 incomplete (archives in var/macports/software)

Reported by: bgschaid@… Owned by: macports-tickets@…
Priority: Normal Milestone:
Component: base Version: 2.0.0
Keywords: Cc:
Port:

Description

Hi

Today I pressed selfupdate in Porticus. Wasn't aware that this would do a major upgrade to 2.0. Otherwise I would have taken precautions.

During the update the machine ran out of discspace. I freed some space and the script kept running. Afterwards porticus said that the selfupdate failed but offered no further explanation.

The next selfupdate (from the command line) said that everything is in order. All the utilities that were installed run as expected. Only I do have significantly less discspace (the cause of the initial failure I guess).

What seems odd to me is that in /opt/local/var/macports/software there is a directory for every installed package with a tbz2-archive with all the files of that package in it.

According to http://guide.macports.org/#internals.hierarchy it should be a bunch of files which are hardlinked to the installation places.

My theory (but you'll know better) is that to prepare the upgrade these archives were created. During that phase the machine ran out of disc-space. The other archives were created (I saw as much in top). But the next stage (I guess unpacking the archives again) was never started because some archives failed and now my installation is in limbo.

Is that so? Or is this the new directory structure and I'll have to live with the extra discspace for the archives)

Is there anything I can do about it (except scratching the whole MacPorts installation and recompiling everything)?

I'd suggest that for the next major upgrade selfupdate fails if there is not an extra option specified (--force-major-update or so). That would make people aware that this is not an update like every other and allow them to take precautions

Bernhard

Change History (4)

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

Component: portsbase

comment:2 Changed 13 years ago by nerdling (Jeremy Lavergne)

Archives should be in ${prefix}/var/macports/software now.

comment:3 Changed 13 years ago by nerdling (Jeremy Lavergne)

I'd recommend ensuring that the archives in ${prefix}/var/macports/software are complete, by comparing their contents (tar's t mode) and what was actually installed by the port. If the archives are complete, then I'd deactivate/activate the given port.

comment:4 Changed 13 years ago by jmroot (Joshua Root)

Resolution: invalid
Status: newclosed

Not a bug. The conversion script doesn't update the registry until all archives have been created successfully, and doesn't delete the old directories until the registry has been updated successfully.

Note: See TracTickets for help on using tickets.