[GSoC] migration

Umesh Singla umeshksingla at macports.org
Wed Jul 12 22:10:11 UTC 2017


Hi Brad,

With another week over, I have the following updates to share. These are
actually the points from my Notes as I keep going on, so the email might
not be well crafted. Thought, would share with you without any delay.

*Week #5-6 (28 Jun - 12 Jul)*

Golden lines for the project:

   1. A *snapshot* would be a list of install commands that created the
   current installed state.
   2. *Restoring* a snapshot would deactivate the active ports and
   reproduce the install commands for the selected snapshot.
   3. *Migrate* would amount to creating a new snapshot, uninstalling
   installed ports and reproducing the install commands for the last snapshot.

@Brad: Did you miss “uninstalling installed ports” in the second point
above?


Challenges from the first phase:

   1. “variants” - still not discussed by anyone after 2 emails, 1 post and
   1 comment on GitHub. -> resolved.
   2. I wrote at the end of my first phase that one variant of a port can
   be active at a time, turns out I was wrong. All thanks to the UI messages
   and the research.

Challenges still to tackle:

   1. snapshot needs to store which ports are active as well?
   2. refactoring snapshot to use registry::write wrappers and transaction
   logic.
   3. ensuring that active versions are installed after the inactive
   versions since the output after running `port install vim -huge +tiny`:

——

Computing dependencies for vim

..

--->  Staging vim into destroot

*--->  Installing vim @8.0.0596_0+tiny*

*--->  Deactivating vim @8.0.0596_0+tiny+x11*

--->  Cleaning vim

*--->  Activating vim @8.0.0596_0+tiny*

--->  Cleaning vim

--->  Updating database of binaries

..

shows that installation also activates and we don’t want to activate the
ports which were originally inactivated.

Agenda for last two weeks:

   1. Begin with restore action.
   2. Write for uninstalling ports - took the help of reclaim.tcl for this
   3. Work on reproducing the install commands for a snapshot
   4. Improve the snapshot action as needed for the restore action.

Still left from last two weeks:

   1. A part to include installation of ports with the help of
   restore_ports.tcl.

Agenda for next two:

   1. Finish the restore action by Jul 24.

Challenges that might come later:

   1. dealing with builds at MP_PREFIX and not at /opt/local. Don’t know
   now but keep in mind.
   2. conflicting ports as Josh said and migration guide says.

Important discoveries I made during this period:

   1. came to know that the port *vim +tiny+x11* is different from *vim
   +tiny*, says a lot how ports are variant-bundled.
   2. ‘imaged’ is installed but inactive, while ‘installed’ is installed
   and active.

Pondering:

   1. Reinstalling the MacPorts/Xcode CL tools for the new platform if it
   is not built for the new OS already is not something we can help with,
   right?

Work log: https://github.com/macports/macports-base/commits/gsoc17-migrate

All reviews and comments are welcome.

Regards,
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macports.org/pipermail/macports-dev/attachments/20170713/665c347b/attachment.html>


More information about the macports-dev mailing list