Opened 11 years ago
Last modified 10 years ago
#41872 new defect
cyrus-sasl2 @2.1.26_3 +kerberos+sql+universal: muniversal destroot merge failure
Reported by: | cooljeanius (Eric Gallager) | Owned by: | macports-tickets@… |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.2.1 |
Keywords: | Cc: | jmpalacios (Juan Manuel Palacios), landonf (Landon Fuller), ryandesign (Ryan Carsten Schmidt) | |
Port: | cyrus-sasl2 |
Description
relevant part of log:
Command failed: /usr/bin/cmp -s "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_security_cyrus-sasl2/cyrus-sasl2/work/destroot-i386//opt/local/lib/sasl2/libsasldb.la" "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_security_cyrus-sasl2/cyrus-sasl2/work/destroot-x86_64//opt/local/lib/sasl2/libsasldb.la" && /bin/cp -v "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_security_cyrus-sasl2/cyrus-sasl2/work/destroot-i386//opt/local/lib/sasl2/libsasldb.la" "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_security_cyrus-sasl2/cyrus-sasl2/work/destroot-intel//opt/local/lib/sasl2" Exit code: 1 /usr/bin/lipo: can't figure out the architecture type of: /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_security_cyrus-sasl2/cyrus-sasl2/work/destroot-i386//opt/local/lib/sasl2/libsasldb.la Command failed: /usr/bin/lipo -create "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_security_cyrus-sasl2/cyrus-sasl2/work/destroot-i386//opt/local/lib/sasl2/libsasldb.la" "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_security_cyrus-sasl2/cyrus-sasl2/work/destroot-x86_64//opt/local/lib/sasl2/libsasldb.la" -output "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_security_cyrus-sasl2/cyrus-sasl2/work/destroot-intel//opt/local/lib/sasl2/libsasldb.la" Exit code: 1 /usr/bin/libtool: file: /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_security_cyrus-sasl2/cyrus-sasl2/work/destroot-i386//opt/local/lib/sasl2/libsasldb.la is not an object file (not allowed in a library) /usr/bin/libtool: file: /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_security_cyrus-sasl2/cyrus-sasl2/work/destroot-x86_64//opt/local/lib/sasl2/libsasldb.la is not an object file (not allowed in a library) Command failed: /usr/bin/libtool "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_security_cyrus-sasl2/cyrus-sasl2/work/destroot-i386//opt/local/lib/sasl2/libsasldb.la" "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_security_cyrus-sasl2/cyrus-sasl2/work/destroot-x86_64//opt/local/lib/sasl2/libsasldb.la" -o "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_security_cyrus-sasl2/cyrus-sasl2/work/destroot-intel//opt/local/lib/sasl2/libsasldb.la" Exit code: 1 Error: org.macports.destroot for port cyrus-sasl2 returned: /opt/local/lib/sasl2/libsasldb.la differs in /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_security_cyrus-sasl2/cyrus-sasl2/work/destroot-i386 and /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_security_cyrus-sasl2/cyrus-sasl2/work/destroot-x86_64 and cannot be merged DEBUG: Error code: NONE DEBUG: Backtrace: /opt/local/lib/sasl2/libsasldb.la differs in /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_security_cyrus-sasl2/cyrus-sasl2/work/destroot-i386 and /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_security_cyrus-sasl2/cyrus-sasl2/work/destroot-x86_64 and cannot be merged
This is because the clearing of dependency_libs
is not done until after the merging process is done:
Local-Admins-MacBook-Pro:~ root# diff -u /opt/local/var/macports/build.build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_security_cyrus-sasl2/cyrus-sasl2/work/destroot-i386/opt/local/lib/sasl2/libsasldb.la /opt/local/var/macports/build.build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_security_cyrus-sasl2/cyrus-sasl2/work/destroot-x86_64/opt/local/lib/sasl2/libsasldb.la --- /opt/local/var/macports/build.build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_security_cyrus-sasl2/cyrus-sasl2/work/destroot-i386/opt/local/lib/sasl2/libsasldb.la 2013-12-21 14:10:39.000000000 -0500 +++ /opt/local/var/macports/build.build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_security_cyrus-sasl2/cyrus-sasl2/work/destroot-x86_64/opt/local/lib/sasl2/libsasldb.la 2013-12-21 14:10:37.000000000 -0500 @@ -14,7 +14,7 @@ old_library='' # Libraries that this one depends upon. -dependency_libs=' -L/opt/local/lib -lresolv -lresolv -lpam -lresolv -lresolv -lpam' +dependency_libs=' -L/opt/local/lib -lresolv -lresolv -lpam -ldb -lresolv -lresolv -lpam' # Version information for libsasldb. current=3
Attachments (2)
Change History (5)
Changed 11 years ago by cooljeanius (Eric Gallager)
Changed 11 years ago by cooljeanius (Eric Gallager)
Attachment: | muniversal_offending_files.diff added |
---|
diff between offending files
comment:1 Changed 11 years ago by ryandesign (Ryan Carsten Schmidt)
Cc: | ryandesign@… added |
---|
Replying to egall@…:
This is because the clearing of
dependency_libs
is not done until after the merging process is done:Local-Admins-MacBook-Pro:~ root# diff -u /opt/local/var/macports/build.build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_security_cyrus-sasl2/cyrus-sasl2/work/destroot-i386/opt/local/lib/sasl2/libsasldb.la /opt/local/var/macports/build.build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_security_cyrus-sasl2/cyrus-sasl2/work/destroot-x86_64/opt/local/lib/sasl2/libsasldb.la --- /opt/local/var/macports/build.build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_security_cyrus-sasl2/cyrus-sasl2/work/destroot-i386/opt/local/lib/sasl2/libsasldb.la 2013-12-21 14:10:39.000000000 -0500 +++ /opt/local/var/macports/build.build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_security_cyrus-sasl2/cyrus-sasl2/work/destroot-x86_64/opt/local/lib/sasl2/libsasldb.la 2013-12-21 14:10:37.000000000 -0500 @@ -14,7 +14,7 @@ old_library='' # Libraries that this one depends upon. -dependency_libs=' -L/opt/local/lib -lresolv -lresolv -lpam -lresolv -lresolv -lpam' +dependency_libs=' -L/opt/local/lib -lresolv -lresolv -lpam -ldb -lresolv -lresolv -lpam' # Version information for libsasldb. current=3
This show us that the x86_64 part is using libdb and the i386 part is not. That is the bug that should be fixed. Either both parts should use the library and the port should declare a dependency on the library that provides it, or neither part should use the library.
comment:2 Changed 10 years ago by cooljeanius (Eric Gallager)
Running into this again; it is preventing me from a bunch of ports because openldap depends on it, and I have curl installed with its +openldap
variant, and a large number of ports depend on curl, either directly or indirectly.
It looks like the fortrancl Portfile was experiencing similar issues, as it does this:
# They differ when universal due to gcc multilib being messy non-universal destroot.delete_la_files yes
Could we at least do something similar for cyrus-sasl2 as a temporary workaround until the libdb linking issue is worked out?
comment:3 Changed 10 years ago by cooljeanius (Eric Gallager)
Never mind, I figured it out, it was my fault for having a non-universal copy of berkeley-db installed in /usr/local
... (although it could have just as easily been a non-universal db4* port selected via port select
with the db_select port)
I tried the following configure flags as well; not sure how helpful they were though:
configure.args-append --with-dblib=berkeley \ --with-bdb-libdir=${prefix}/lib \ --with-bdb-incdir=${prefix}/include
build failure log for cyrus-sasl2