[MacPorts] #56245: rev-upgrade: Handling missing architectures on libraries
MacPorts
noreply at macports.org
Fri Apr 6 21:12:15 UTC 2018
#56245: rev-upgrade: Handling missing architectures on libraries
--------------------+--------------------
Reporter: raimue | Owner: (none)
Type: defect | Status: new
Priority: Normal | Milestone:
Component: base | Version:
Keywords: | Port:
--------------------+--------------------
When a port is active, but dependents expect it to be +universal, rev-
upgrade currently wants to rebuild all these dependents. For example, for
an experiment I removed the +universal variant from cairo temporarily.
{{{
$ sudo port rev-upgrade
---> Scanning binaries for linking errors
---> No broken files found.
$ sudo port -n upgrade --no-rev-upgrade --enforce-variants cairo
-universal
---> Computing dependencies for cairo
---> Deactivating cairo @1.14.12_0+quartz+universal+x11
---> Cleaning cairo
---> Activating cairo @1.14.12_0+quartz+x11
---> Cleaning cairo
}}}
I am aware that I broke some ports with that. To get a working system, all
that would be needed is to activate cairo with the +universal variant
again. However, rev-upgrade wants to reinstall all dependents instead:
{{{
$ sudo port rev-upgrade
---> Scanning binaries for linking errors
---> Found 56 broken files, matching files to ports
---> Found 5 broken ports, determining rebuild order
You can always run 'port rev-upgrade' again to fix errors.
The following ports will be rebuilt:
harfbuzz @1.7.6+universal
pango @1.42.0+quartz+universal+x11
gtk3 @3.22.29+universal+x11
gstreamer1-gst-plugins-base @1.12.4+ogg+universal+x11
gcc6 @6.4.0
Continue? [Y/n]:
}}}
While this would eventually give me a working system again, these rebuilds
are not necessary. None of the binaries or libraries in these ports is
actually broken, only cairo as a dependency is missing an architecture.
(Not sure why gcc6 only appeared now, but that is due to use of libstdc++,
which might be another bug.)
The relevant section from the attached log file seems to be:
{{{
DEBUG: Missing architecture i386 in file /opt/local/lib/libcairo.2.dylib
DEBUG: Marking /opt/local/lib/gstreamer-1.0/libgstpango.so as broken
DEBUG: Missing architecture i386 in file /opt/local/lib/libcairo.2.dylib
DEBUG: Marking /opt/local/bin/pango-view as broken
DEBUG: Missing architecture i386 in file /opt/local/lib/libcairo.2.dylib
DEBUG: Marking /opt/local/lib/libpangocairo-1.0.0.dylib as broken
}}}
The conclusion here is wrong. As pango is installed +universal and the
pango libraries contain all expected architectures, the broken file is
definitely `/opt/local/lib/libcairo.2.dylib`.
--
Ticket URL: <https://trac.macports.org/ticket/56245>
MacPorts <https://www.macports.org/>
Ports system for macOS
More information about the macports-tickets
mailing list