[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