> On Jan 6, 2017, at 9:49 AM, Russell Jones <russell.jo...@physics.ox.ac.uk> 
> wrote:
> 
> On 06/01/17 14:28, Adam Dershowitz wrote:
>> 
>> 
>> > On Jan 6, 2017, at 9:04 AM, Russell Jones <russell.jo...@physics.ox.ac.uk> 
>> > <mailto:russell.jo...@physics.ox.ac.uk> wrote:
>> > 
>> > On 06/01/17 13:22, Adam Dershowitz wrote:
>> >> On Jan 6, 2017, at 2:20 AM, Ryan Schmidt <ryandes...@macports.org> 
>> >> <mailto:ryandes...@macports.org> wrote:
>> >>> On Jan 5, 2017, at 09:26, Adam Dershowitz wrote:
>> >>>> I just tried what you suggested for py27-numpy and it just activated 
>> >>>> without any error.
>> >>> 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.
>> >>>> So, myports.txt has
>> >>>>  py27-numpy @1.11.3_0+gfortran (active) platform='darwin 15' 
>> >>>> archs='x86_64'
>> >>>> 
>> >>>> And, after the migration it had installed both that and the +universal 
>> >>>> variant.
>> >>>> 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.
>> >>>> Any suggestions?
>> >>> I don't have any answers for you, beyond the usual reasons why a port is 
>> >>> installed universal, which are:
>> >>> 
>> >>> - you explicitly asked for it to be installed universal
>> >>> - you installed another port universal that depends on this port
>> >>> - 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))
>> >>> - 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)
>> >> 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.
>> >> 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?
>> >> 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.
>> >> 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.
>> >> 
>> >> —Adam
>> > Could you gzip and attach the list of ports from the old machine and the 
>> > output of "port installed requested"?
>> > 
>> > The approach I suggested can't work, I now realize, as variants aren't 
>> > used for working out dependencies 
>> > (https://trac.macports.org/wiki/FAQ#dependonvariant 
>> > <https://trac.macports.org/wiki/FAQ#dependonvariant> )
>> > 
>> > Russell
>> > 
>> 
>> 
>> Here are the two files.  
>> 
>> 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.  
>> 
>> 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.  
>> 
>> 
>> 
>> thanks,
>> 
>> —Adam
> 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.
> Russell
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.  
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?  

—Adam

Reply via email to