<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=""><br class="">
<br class=""><div><blockquote type="cite" class=""><div class="">On Jan 6, 2017, at 9:49 AM, Russell Jones <<a href="mailto:russell.jones@physics.ox.ac.uk" class="">russell.jones@physics.ox.ac.uk</a>> wrote:</div><br class="Apple-interchange-newline"><div class="">
  
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type" class="">
  
  <div bgcolor="#FFFFFF" text="#000000" class="">
    On 06/01/17 14:28, Adam Dershowitz wrote:<br class="">
    <blockquote cite="mid:7C26BBC2-17FA-46D2-A60E-0AFB2E90D81D@alum.mit.edu" type="cite" class="">
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8" class="">
      <div class="BodyFragment"><font size="2" class=""><span style="font-size:10pt;" class="">
            <div class="PlainText"><br class="">
              <br class="">
              > On Jan 6, 2017, at 9:04 AM, Russell Jones
              <a class="moz-txt-link-rfc2396E" href="mailto:russell.jones@physics.ox.ac.uk"><russell.jones@physics.ox.ac.uk></a> wrote:<br class="">
              > <br class="">
              > On 06/01/17 13:22, Adam Dershowitz wrote:<br class="">
              >> On Jan 6, 2017, at 2:20 AM, Ryan Schmidt
              <a class="moz-txt-link-rfc2396E" href="mailto:ryandesign@macports.org"><ryandesign@macports.org></a> wrote:<br class="">
              >>> On Jan 5, 2017, at 09:26, Adam Dershowitz
              wrote:<br class="">
              >>>> I just tried what you suggested for
              py27-numpy and it just activated without any error.<br class="">
              >>> Yes, there will not be an error at activation
              time. However, if you have anything installed that
              required py27-numpy to be universal, it will now be
              broken.<br class="">
              >>>> So, myports.txt has<br class="">
              >>>>  py27-numpy @1.11.3_0+gfortran (active)
              platform='darwin 15' archs='x86_64'<br class="">
              >>>> <br class="">
              >>>> And, after the migration it had installed
              both that and the +universal variant.<br class="">
              >>>> Yet, when I tried to activate the
              non-universal version it did it without complaint.  So, I
              really don’t understand why the +universal got built at
              all.<br class="">
              >>>> Any suggestions?<br class="">
              >>> I don't have any answers for you, beyond the
              usual reasons why a port is installed universal, which
              are:<br class="">
              >>> <br class="">
              >>> - you explicitly asked for it to be installed
              universal<br class="">
              >>> - you installed another port universal that
              depends on this port<br class="">
              >>> - you installed another port that is 32-bit
              only, and you are on a 64-bit machine, and the other port
              depends on this port (You can check if the other port says
              "supported_archs i386 ppc" (or the other way around))<br class="">
              >>> - it enables the universal by default, and
              possibly requires the universal variant to be used (You
              can check the portfile to see if "default_variants
              +universal" appears)<br class="">
              >> What seems really odd to me that I took I moved
              my myports.txt from one machine to another.  So, I used
              one machine to generate that list, and brought it to
              another machine to build.<br class="">
              >> Both are MacBook pros (one new and one old) and
              that same list, on the new machine, added a bunch of
              universal ports.  So, I don’t see how any of the items in
              the list above could do that.  If it was not universal on
              the old machine, why would it end up universal on the new
              machine?<br class="">
              >> Could going from 10.11 to 10.12 make something
              required to be universal?  Or could going from Xcode 7 to
              8 make a port universal?  Because otherwise, I just don’t
              see why they should be different.<br class="">
              >> If anything, I would expect that the newer OS and
              newer hardware should be able to do more things as 64 bit,
              so would require less universal stuff.<br class="">
              >> <br class="">
              >> —Adam<br class="">
              > Could you gzip and attach the list of ports from the
              old machine and the output of "port installed requested"?<br class="">
              > <br class="">
              > The approach I suggested can't work, I now realize,
              as variants aren't used for working out dependencies (
              <a moz-do-not-send="true" href="https://trac.macports.org/wiki/FAQ#dependonvariant" class="">https://trac.macports.org/wiki/FAQ#dependonvariant</a>
              )<br class="">
              > <br class="">
              > Russell<br class="">
              > <br class="">
              <br class="">
              <br class="">
              Here are the two files.  <br class="">
              <br class="">
              I don’t believe that I have ever intentionally installed
              anything +universal.  So, I’m fairly sure that anything in
              this list that is universal is because of 3, or 4 above. 
              But, when I then moved to the new machine, it proceeded to
              make a bunch more things universal.  <br class="">
              <br class="">
              As far as I’m concerned pretty much all of my ports should
              just be installed with default variants, so few, if any,
              should be universal.  As everything is now working, this
              is not a big deal.  But, it does mean that upgrades often
              must be built, instead of using the binary, which would be
              much faster and use less drive space.  <br class="">
              <br class="">
            </div>
          </span></font></div>
      <div class="BodyFragment"><font size="2" class=""><span style="font-size:10pt;" class="">
            <div class="PlainText"><br class="">
              <br class="">
              thanks,<br class="">
              <br class="">
              —Adam</div>
          </span></font></div>
    </blockquote>
    It looks like the extra +universal stuff comes from the things that
    were marked +universal installing all their dependencies +universal,
    which is expected behaviour. It looks like the restore script just
    installs the things listed in the order given, so doesn't preserve
    the variants exactly (+universal satisfies a request to install with
    no variants, I think, though I'm unsure). You could search and
    replace +universal (i.e. remove all instances of it) in myports,
    then tear-down and redo the install, I guess.<br class=""><p class="">Russell<br class="">
    </p>
  </div>

</div></blockquote></div>But, this list is from the old machine.  My question is why the new machine ended up with a lot more +universal.  For example, the list that I sent does not have +universal for py27-numpy, while the new machine, that I used the above list to install, did end up with +universal.  <div class="">If the prior machine did not require +universal, based on the dependency tree, why would the new machine require it?  Or was something broken on the old machine, where it really did require +universal, but never actually installed it that way, and I happened never to hit that bug?  </div><div class=""><br class=""></div><div class="">—Adam</div></body></html>