<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Yes, there were a couple of problems :-/ The version below has worked two times in a row on Yosemite. I hope you will at least put this script or something like it on the wiki as an alternative. It could save many people a lot of time.<div class=""><br class=""></div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;" class=""><div class=""><font face="Menlo" size="3" class="">#!/bin/bash</font></div><div class=""><font face="Menlo" size="3" class=""><br class=""></font></div><div class=""><font face="Menlo" size="3" class=""># If there is an argument, then don't preserve 'requested' flags.</font></div><div class=""><font face="Menlo" size="3" class="">function reinstallPorts() {</font></div><div class=""><font face="Menlo" size="3" class=""> local -r dontPreserveRequestedFlags=$1</font></div><div class=""><font face="Menlo" size="3" class=""> set -e</font></div><div class=""><font face="Menlo" size="3" class=""> sudo -v</font></div><div class=""><font face="Menlo" size="3" class=""> </font></div><div class=""><font face="Menlo" size="3" class=""> # Ensure that xcode-select has been run successfully.</font></div><div class=""><font face="Menlo" size="3" class=""> /usr/bin/clang --version</font></div><div class=""><font face="Menlo" size="3" class=""><br class=""></font></div><div class=""><font face="Menlo" size="3" class=""> # Save the list of installed ports.</font></div><div class=""><font face="Menlo" size="3" class=""> port -qv installed > myports.txt</font></div><div class=""><font face="Menlo" size="3" class=""><br class=""></font></div><div class=""><font face="Menlo" size="3" class=""> if [[ ! "$dontPreserveRequestedFlags" ]] ; then</font></div><div class=""><font face="Menlo" size="3" class=""> # Preserve the 'requested' flags.</font></div><div class=""><font face="Menlo" size="3" class=""> port echo requested | cut -d ' ' -f 1 > requested.txt</font></div><div class=""><font face="Menlo" size="3" class=""> fi</font></div><div class=""><font face="Menlo" size="3" class=""><br class=""></font></div><div class=""><font face="Menlo" size="3" class=""> # Download the restore_ports script.</font></div><div class=""><font face="Menlo" size="3" class=""> curl -O <a href="https://svn.macports.org/repository/macports/contrib/restore_ports/restore_ports.tcl" class="">https://svn.macports.org/repository/macports/contrib/restore_ports/restore_ports.tcl</a></font></div><div class=""><font face="Menlo" size="3" class=""> chmod +x restore_ports.tcl</font></div><div class=""><font face="Menlo" size="3" class=""><br class=""></font></div><div class=""><font face="Menlo" size="3" class=""> # Change this if your installation is somewhere else.</font></div><div class=""><font face="Menlo" size="3" class=""> # (There should be a way to get the port command to report this.)</font></div><div class=""><font face="Menlo" size="3" class=""> local -r MACPORTS_HOME=/opt/local</font></div><div class=""><font face="Menlo" size="3" class=""><br class=""></font></div><div class=""><font face="Menlo" size="3" class=""> sudo bash << EOF</font></div><div class=""><font face="Menlo" size="3" class=""> set -xe</font></div><div class=""><font face="Menlo" size="3" class=""><br class=""></font></div><div class=""><font face="Menlo" size="3" class=""> # Start with the latest data.</font></div><div class=""><font face="Menlo" size="3" class=""> port selfupdate</font></div><div class=""><font face="Menlo" size="3" class=""><br class=""></font></div><div class=""><font face="Menlo" size="3" class=""> # Uninstall all installed ports.</font></div><div class=""><font face="Menlo" size="3" class=""> port -f uninstall installed</font></div><div class=""><font face="Menlo" size="3" class=""><br class=""></font></div><div class=""><font face="Menlo" size="3" class=""> # Clean any partially-completed builds.</font></div><div class=""><font face="Menlo" size="3" class=""> port clean all</font></div><div class=""><font face="Menlo" size="3" class=""><br class=""></font></div><div class=""><font face="Menlo" size="3" class=""> # Execute the restore_ports script.</font></div><div class=""><font face="Menlo" size="3" class=""> ./restore_ports.tcl -p $MACPORTS_HOME myports.txt</font></div><div class=""><font face="Menlo" size="3" class=""> </font></div><div class=""><font face="Menlo" size="3" class=""> if [[ ! "$dontPreserveRequestedFlags" ]] ; then</font></div><div class=""><font face="Menlo" size="3" class=""> # Restore the 'requested' flags.</font></div><div class=""><font face="Menlo" size="3" class=""> port unsetrequested installed</font></div><div class=""><font face="Menlo" size="3" class=""> < requested.txt xargs port setrequested</font></div><div class=""><font face="Menlo" size="3" class=""> fi</font></div><div class=""><font face="Menlo" size="3" class="">EOF</font></div><div class=""><font face="Menlo" size="3" class="">}</font></div><div class=""><font face="Menlo" size="3" class=""><br class=""></font></div><div class=""><font face="Menlo" size="3" class="">reinstallPorts $@</font></div><div class=""><br class=""></div></blockquote><div class=""><br class=""><br class=""><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""><blockquote type="cite" class="">On 2014-12-14, at 08:43 PM, Dave Yost <<a href="mailto:Dave@Yost.com" class="">Dave@Yost.com</a>> wrote:<br class=""><br class=""><br class=""><blockquote type="cite" class="">On 2014-12-14, at 07:59 PM, Lawrence Velázquez <<a href="mailto:larryv@macports.org" class="">larryv@macports.org</a>> wrote:<br class=""><br class="">The migration steps weren't really intended to be run as a single script. I'm not comfortable telling users to run this big untested blob of code.<br class=""></blockquote><br class="">Then let’s test it! Works for me on Yosemite. I’ll run it again.<br class=""><br class="">You could put in a caveat that one can run the commands interactively if one is worried about it.<br class=""><br class="">Really, code to do a migration should be part of macports, IMO. Nothing like being able to start a command and walk away for a couple of hours and have it do everything without tweaking.<br class=""><br class="">Dave<br class=""><br class=""><blockquote type="cite" class=""><br class=""><br class=""><blockquote type="cite" class="">On Dec 14, 2014, at 10:37 PM, MacPorts <<a href="mailto:noreply@macports.org" class="">noreply@macports.org</a>> wrote:<br class=""><br class="">Page "Migration" was changed by <a href="mailto:dave@yost.com" class="">dave@yost.com</a><br class="">Diff URL: <<a href="https://trac.macports.org/wiki/Migration?action=diff&version=80" class="">https://trac.macports.org/wiki/Migration?action=diff&version=80</a>><br class="">Revision 80<br class="">Comment: Use a single sudo, so only one password is required.<br class="">Changes:<br class="">-------8<------8<------8<------8<------8<------8<------8<------8<--------<br class="">Index: Migration<br class="">=========================================================================<br class="">--- Migration (version: 79)<br class="">+++ Migration (version: 80)<br class="">@@ -23,29 +23,36 @@<br class=""> {{{<br class=""> # If there is an argument, then don't preserve 'requested' flags.<br class=""> function reinstallPorts() {<br class="">- dontPreserveRequestedFlags=$1<br class="">+ local -r dontPreserveRequestedFlags=$1<br class="">+ set -e<br class="">+ # This will fail if xcode-select needs to be run.<br class="">+ clang --version<br class=""></blockquote><br class="">What is the point of printing the Clang version? And you don't know which "clang" is being run.<br class=""></blockquote><br class="">I was looking for a command I could run to smoke out wither code-select is going to have to run before port can do its work.<br class=""><br class=""></blockquote><br class=""></div></div></div></body></html>