[MacPorts] #49645: `port -n upgrade --force foo` should deactivate after creating the new archive

MacPorts noreply at macports.org
Tue Nov 10 10:51:46 PST 2015


#49645: `port -n upgrade --force foo` should deactivate after creating the new
archive
--------------------------+--------------------------------
  Reporter:  rjvbertin@…  |      Owner:  macports-tickets@…
      Type:  defect       |     Status:  new
  Priority:  Normal       |  Milestone:
 Component:  base         |    Version:  2.3.4
Resolution:               |   Keywords:
      Port:               |
--------------------------+--------------------------------

Comment (by rjvbertin@…):

 Hmmm, so how do you explain that components of a port remain available
 until after the archiving step when I do `port -nd upgrade --force` (=
 with the debug flag)?

 Anyway, this explains why the archive creation doesn't show up as a
 separate step in the state file, and that's actually what should happen.
 Make the archive, and then install from there. That at least seems to be
 possible, because activation consists of unpacking the archive into a
 temp. directory, and then moving the contents of that directory into
 ${prefix}.
 Dissociation archiving and installing would also make it possible to
 "install" a port version without activating it, i.e. upgrade a port while
 an older version is active.

 Would that split be hard to implement (= should I have filed this ticket
 in time for GSoC :))?

 BTW, how is the install of a binary package implemented? IIRC they're
 downloaded in var/macports/incoming/verified, and then what? Are they
 unpacked and re-archived into var/macports/software by the installation
 procedure? Or is it the downloaded tarball that is moved into
 var/macports/software at the end of the installation procedure?

 In the latter case, it seems that a `port reinstall` command could package
 ${destroot} into a tarball under var/macports/incoming/verified, which
 could then be treated as the result of an archivefetch. (Hooks for that
 seem to be in place, because there's always an archivefetch entry after
 the destroot entry in the state file of a port installed from source.)
 You'd still need the uninstall (I can see that), but you'd gain the time
 of creating the archive, which is the most expensive step.

-- 
Ticket URL: <https://trac.macports.org/ticket/49645#comment:2>
MacPorts <https://www.macports.org/>
Ports system for OS X


More information about the macports-tickets mailing list