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> wrote:
>
> On 06/01/17 13:22, Adam Dershowitz wrote:
>> On Jan 6, 2017, at 2:20 AM, Ryan Schmidt <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 )
>
> 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