Opened 7 years ago
#56245 new defect
rev-upgrade: Handling missing architectures on libraries
Reported by: | raimue (Rainer Müller) | Owned by: | |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | base | Version: | |
Keywords: | Cc: | neverpanic (Clemens Lang) | |
Port: |
Description
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
.
Attachments (1)
Change History (1)
Changed 7 years ago by raimue (Rainer Müller)
Attachment: | rev-upgrade-cairo-not-universal.log added |
---|