Opened 12 years ago
Closed 12 years ago
#35042 closed defect (invalid)
cyrus-sasl2 +sql rev-upgrade problem in presence of non-macports libmysqlclient.dylib
Reported by: | robsonpeixoto@… | Owned by: | jmpp@… |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.1.1 |
Keywords: | rev-upgrade | Cc: | |
Port: | cyrus-sasl2 |
Description
I tried: sudo port upgrade --enforce-variants cyrus-sasl2 -kerberos +sql
After the problem, I created the log: sudo port -d -y rev-upgrade > log 2>&1
Attachments (1)
Change History (9)
Changed 12 years ago by robsonpeixoto@…
comment:1 Changed 12 years ago by neverpanic (Clemens Lang)
Keywords: | rev-upgrade added |
---|---|
Owner: | changed from macports-tickets@… to jmpp@… |
comment:2 Changed 12 years ago by jmroot (Joshua Root)
Summary: | rev-upgrade problem → cyrus-sasl2 +sql rev-upgrade problem |
---|
comment:3 Changed 12 years ago by robsonpeixoto@…
$ port -v installed mysql* The following ports are currently installed: mysql5 @5.1.63_0+universal (active) platform='darwin 11' archs='i386 x86_64' mysql55 @5.5.25_0 (active) platform='darwin 11' archs='x86_64' mysql_select @0.1.2_0 (active) platform='darwin 11' archs='noarch' $ port -v contents mysql* | grep libmysqlclient.18.dylib /opt/local/lib/mysql55/mysql/libmysqlclient.18.dylib $ locate libmysqlclient.18.dylib /Applications/MySQLWorkbench.app/Contents/Frameworks/libmysqlclient.18.dylib /opt/local/lib/mysql55/mysql/libmysqlclient.18.dylib /usr/local/mysql-5.5.25-osx10.6-x86_64/lib/libmysqlclient.18.dylib $ locate libmysqlclient.18.dylib /Applications/MySQLWorkbench.app/Contents/Frameworks/libmysqlclient.18.dylib /opt/local/lib/mysql55/mysql/libmysqlclient.18.dylib /usr/local/mysql-5.5.25-osx10.6-x86_64/lib/libmysqlclient.18.dylib
comment:4 Changed 12 years ago by robsonpeixoto@…
Maybe it can be helpful:
on .profile: export DYLD_LIBRARY_PATH=/usr/local/mysql/lib:$DYLD_LIBRARY_PATH
comment:5 Changed 12 years ago by neverpanic (Clemens Lang)
Having stuff in /usr/local
is not supported. However, cyrus-sasl2 +sql
should still either not link against mysql at all, or link against MacPorts mysql.
I'm not sure DYLD_LIBRARAY_PATH
has any effect on what libraries the build links against; Do you have /usr/local/mysql
? From the output you pasted earlier only /usr/local/mysql-5.5.25-osx10.6-x86_64
seems to be present.
Please try again while moving /usr/local
aside and see if that works.
comment:6 Changed 12 years ago by robsonpeixoto@…
I moved /usr/local to /usr/local-OLD and the error continues. And yes, I had /usr/local/mysql installed.
[robinho@robinho ~ ]$ sudo port upgrade --enforce-variants cyrus-sasl2 +sql ---> Computing dependencies for cyrus-sasl2 ---> Fetching archive for cyrus-sasl2 ---> Attempting to fetch cyrus-sasl2-2.1.25_1+kerberos+sql+universal.darwin_11.i386-x86_64.tbz2 from http://packages.macports.org/cyrus-sasl2 ---> Fetching distfiles for cyrus-sasl2 ---> Verifying checksum(s) for cyrus-sasl2 ---> Extracting cyrus-sasl2 ---> Applying patches to cyrus-sasl2 ---> Configuring cyrus-sasl2 ---> Building cyrus-sasl2 ---> Staging cyrus-sasl2 into destroot ---> Installing cyrus-sasl2 @2.1.25_1+kerberos+sql+universal ---> Cleaning cyrus-sasl2 ---> Computing dependencies for cyrus-sasl2 ---> Deactivating cyrus-sasl2 @2.1.25_1+kerberos+universal ---> Cleaning cyrus-sasl2 ---> Activating cyrus-sasl2 @2.1.25_1+kerberos+sql+universal ---> Cleaning cyrus-sasl2 ---> Updating database of binaries: 100.0% ---> Scanning binaries for linking errors: 100.0% ---> Found 1 broken file(s), matching files to ports ---> Found 1 broken port(s), determining rebuild order ---> Rebuilding in order cyrus-sasl2 @2.1.25 +kerberos+sql+universal ---> Computing dependencies for cyrus-sasl2 ---> Cleaning cyrus-sasl2 ---> Scanning binaries for linking errors: 100.0% ---> Found 1 broken file(s), matching files to ports ---> Found 1 broken port(s), determining rebuild order ---> Rebuilding in order cyrus-sasl2 @2.1.25 +kerberos+sql+universal ---> Computing dependencies for cyrus-sasl2 ---> Cleaning cyrus-sasl2 ---> Unable to uninstall cyrus-sasl2 @2.1.25_1+kerberos+sql+universal, the following ports depend on it: ---> subversion-javahlbindings @1.7.5_0+universal ---> subversion @1.7.5_0+bash_completion+mod_dav_svn+tools+unicode_path+universal ---> openldap @2.4.21_5+overlays+universal ---> php53-ldap @5.3.14_0 ---> php54-ldap @5.4.4_0 ---> subversion-perlbindings @1.7.5_1 Warning: Uninstall forced. Proceeding despite dependencies. ---> Deactivating cyrus-sasl2 @2.1.25_1+kerberos+sql+universal ---> Unable to deactivate cyrus-sasl2 @2.1.25_1+kerberos+sql+universal, the following ports depend on it: ---> subversion-javahlbindings @1.7.5_0+universal ---> subversion @1.7.5_0+bash_completion+mod_dav_svn+tools+unicode_path+universal ---> openldap @2.4.21_5+overlays+universal ---> php53-ldap @5.3.14_0 ---> php54-ldap @5.4.4_0 ---> subversion-perlbindings @1.7.5_1 Warning: Deactivate forced. Proceeding despite dependencies. ---> Cleaning cyrus-sasl2 ---> Uninstalling cyrus-sasl2 @2.1.25_1+kerberos+sql+universal ---> Cleaning cyrus-sasl2 ---> Computing dependencies for cyrus-sasl2 ---> Fetching distfiles for cyrus-sasl2 ---> Verifying checksum(s) for cyrus-sasl2 ---> Extracting cyrus-sasl2 ---> Applying patches to cyrus-sasl2 ---> Configuring cyrus-sasl2 ---> Building cyrus-sasl2 ---> Staging cyrus-sasl2 into destroot ---> Installing cyrus-sasl2 @2.1.25_1+kerberos+sql+universal ---> Activating cyrus-sasl2 @2.1.25_1+kerberos+sql+universal ---> Cleaning cyrus-sasl2 ---> Updating database of binaries: 100.0% ---> Scanning binaries for linking errors: 100.0% ---> Found 1 broken file(s), matching files to ports ---> Found 1 broken port(s), determining rebuild order ---> Rebuilding in order cyrus-sasl2 @2.1.25 +kerberos+sql+universal ---> Computing dependencies for cyrus-sasl2 ---> Cleaning cyrus-sasl2 ---> Unable to uninstall cyrus-sasl2 @2.1.25_1+kerberos+sql+universal, the following ports depend on it: ---> subversion-javahlbindings @1.7.5_0+universal ---> subversion @1.7.5_0+bash_completion+mod_dav_svn+tools+unicode_path+universal ---> openldap @2.4.21_5+overlays+universal ---> php53-ldap @5.3.14_0 ---> php54-ldap @5.4.4_0 ---> subversion-perlbindings @1.7.5_1 Warning: Uninstall forced. Proceeding despite dependencies. ---> Deactivating cyrus-sasl2 @2.1.25_1+kerberos+sql+universal ---> Unable to deactivate cyrus-sasl2 @2.1.25_1+kerberos+sql+universal, the following ports depend on it: ---> subversion-javahlbindings @1.7.5_0+universal ---> subversion @1.7.5_0+bash_completion+mod_dav_svn+tools+unicode_path+universal ---> openldap @2.4.21_5+overlays+universal ---> php53-ldap @5.3.14_0 ---> php54-ldap @5.4.4_0 ---> subversion-perlbindings @1.7.5_1 Warning: Deactivate forced. Proceeding despite dependencies. ---> Cleaning cyrus-sasl2 ---> Uninstalling cyrus-sasl2 @2.1.25_1+kerberos+sql+universal ---> Cleaning cyrus-sasl2 ---> Computing dependencies for cyrus-sasl2 ---> Fetching distfiles for cyrus-sasl2 ---> Verifying checksum(s) for cyrus-sasl2 ---> Extracting cyrus-sasl2 ---> Applying patches to cyrus-sasl2 ---> Configuring cyrus-sasl2 ---> Building cyrus-sasl2 ---> Staging cyrus-sasl2 into destroot ---> Installing cyrus-sasl2 @2.1.25_1+kerberos+sql+universal ---> Activating cyrus-sasl2 @2.1.25_1+kerberos+sql+universal ---> Cleaning cyrus-sasl2 ---> Updating database of binaries: 100.0% ---> Scanning binaries for linking errors: 100.0% ---> Found 1 broken file(s), matching files to ports Error: Port cyrus-sasl2 is still broken after rebuiling it more than 3 times. Error: Please run port -d -y rev-upgrade and use the output to report a bug. Port cyrus-sasl2 still broken after rebuilding 3 time(s) while executing "error "Port $portname still broken after rebuilding [expr $broken_port_counts($portname) - 1] time(s)"" (procedure "revupgrade_scanandrebuild" line 256) invoked from within "revupgrade_scanandrebuild broken_port_counts $opts" (procedure "macports::revupgrade" line 5) invoked from within "macports::revupgrade $opts" (procedure "action_revupgrade" line 2) invoked from within "action_revupgrade $action $portlist $opts" (procedure "action_upgrade" line 24) invoked from within "$action_proc $action $portlist [array get global_options]" (procedure "process_cmd" line 95) invoked from within "process_cmd $remaining_args" invoked from within "if { [llength $remaining_args] > 0 } { # If there are remaining arguments, process those as a command set exit_status [process_cmd $remaining..." (file "/opt/local/bin/port" line 4784) [robinho@robinho ~ ]$ sudo port -d -y rev-upgrade DEBUG: Copying /Users/robinho/Library/Preferences/com.apple.dt.Xcode.plist to /opt/local/var/macports/home/Library/Preferences DEBUG: skipping ppc in /opt/local/share/cmake-2.8/Modules/CPack.OSXScriptLauncher.in since this system can't run it anyway DEBUG: Ignoring loadcommand containing @executable_path in /opt/local/libexec/llvm-3.0/bin/bugpoint DEBUG: Ignoring loadcommand containing @executable_path in /opt/local/libexec/llvm-3.0/bin/llc DEBUG: Ignoring loadcommand containing @executable_path in /opt/local/libexec/llvm-3.0/bin/lli DEBUG: Ignoring loadcommand containing @executable_path in /opt/local/libexec/llvm-3.0/bin/llvm-ar DEBUG: Ignoring loadcommand containing @executable_path in /opt/local/libexec/llvm-3.0/bin/llvm-as DEBUG: Ignoring loadcommand containing @executable_path in /opt/local/libexec/llvm-3.0/bin/llvm-bcanalyzer DEBUG: Ignoring loadcommand containing @executable_path in /opt/local/libexec/llvm-3.0/bin/llvm-cov DEBUG: Ignoring loadcommand containing @executable_path in /opt/local/libexec/llvm-3.0/bin/llvm-diff DEBUG: Ignoring loadcommand containing @executable_path in /opt/local/libexec/llvm-3.0/bin/llvm-dis DEBUG: Ignoring loadcommand containing @executable_path in /opt/local/libexec/llvm-3.0/bin/llvm-dwarfdump DEBUG: Ignoring loadcommand containing @executable_path in /opt/local/libexec/llvm-3.0/bin/llvm-extract DEBUG: Ignoring loadcommand containing @executable_path in /opt/local/libexec/llvm-3.0/bin/llvm-ld DEBUG: Ignoring loadcommand containing @executable_path in /opt/local/libexec/llvm-3.0/bin/llvm-link DEBUG: Ignoring loadcommand containing @executable_path in /opt/local/libexec/llvm-3.0/bin/llvm-mc DEBUG: Ignoring loadcommand containing @executable_path in /opt/local/libexec/llvm-3.0/bin/llvm-nm DEBUG: Ignoring loadcommand containing @executable_path in /opt/local/libexec/llvm-3.0/bin/llvm-objdump DEBUG: Ignoring loadcommand containing @executable_path in /opt/local/libexec/llvm-3.0/bin/llvm-prof DEBUG: Ignoring loadcommand containing @executable_path in /opt/local/libexec/llvm-3.0/bin/llvm-ranlib DEBUG: Ignoring loadcommand containing @executable_path in /opt/local/libexec/llvm-3.0/bin/llvm-rtdyld DEBUG: Ignoring loadcommand containing @executable_path in /opt/local/libexec/llvm-3.0/bin/llvm-size DEBUG: Ignoring loadcommand containing @executable_path in /opt/local/libexec/llvm-3.0/bin/macho-dump DEBUG: Ignoring loadcommand containing @executable_path in /opt/local/libexec/llvm-3.0/bin/opt DEBUG: Ignoring loadcommand containing @executable_path in /opt/local/libexec/ld64/ld DEBUG: Missing architecture arm in file /usr/lib/libc++abi.dylib DEBUG: Missing architecture arm in file outside prefix referenced from /opt/local/lib/apple-gcc42/gcc/i686-apple-darwin11/4.2.1/libstdc++.dylib DEBUG: Missing architecture arm in file /usr/lib/libSystem.B.dylib DEBUG: Missing architecture arm in file outside prefix referenced from /opt/local/lib/apple-gcc42/gcc/i686-apple-darwin11/4.2.1/libstdc++.dylib ---> Scanning binaries for linking errors Could not open libmysqlclient.18.dylib: Error opening or reading file (referenced from /opt/local/lib/sasl2/libsql.2.0.25.so) DEBUG: Marking /opt/local/lib/sasl2/libsql.2.0.25.so as broken ---> Found 1 broken file(s), matching files to ports ---> Found 1 broken port(s), determining rebuild order DEBUG: Broken: cyrus-sasl2 DEBUG: Processing port cyrus-sasl2 @0:2.1.25_1 +kerberos+sql+universal DEBUG: Processing port subversion-javahlbindings @0:1.7.5_0 +universal DEBUG: Processing port subversion @0:1.7.5_0 +bash_completion+mod_dav_svn+tools+unicode_path+universal DEBUG: Processing port git-core @0:1.7.11.1_0 +bash_completion+credential_osxkeychain+doc+gitweb+pcre+python27+svn DEBUG: Processing port tig @0:1.0_0 DEBUG: Processing port subversion-perlbindings @0:1.7.5_1 DEBUG: Processing port p5.12-svn-simple @0:0.280.0_3 DEBUG: Processing port openldap @0:2.4.21_5 +overlays+universal DEBUG: Processing port apr-util @0:1.4.1_0 +mysql5+openldap+universal DEBUG: Processing port serf1 @0:1.1.0_0 +universal DEBUG: Processing port apache2 @0:2.2.22_2 +preforkmpm DEBUG: Processing port php53-apache2handler @0:5.3.14_0 +suhosin DEBUG: Processing port php54-apache2handler @1:5.4.4_0 DEBUG: Processing port php53-ldap @0:5.3.14_0 DEBUG: Processing port php54-ldap @1:5.4.4_0 DEBUG: Processing port curl @0:7.26.0_0 +ares+openldap+sftp_scp+ssl DEBUG: Processing port php53-curl @0:5.3.14_0 DEBUG: Processing port php54-curl @1:5.4.4_0 DEBUG: Processing port netcdf @2:4.2.0_4 +dap+netcdf4 DEBUG: Processing port py27-scientific @0:2.9.1_0 DEBUG: Processing port py27-ipython @0:0.12.1_0 +scientific ---> Rebuilding in order cyrus-sasl2 @2.1.25 +kerberos+sql+universal DEBUG: epoch: in tree: 0 installed: 0 DEBUG: cyrus-sasl2 2.1.25_1 exists in the ports tree DEBUG: cyrus-sasl2 2.1.25_1 +kerberos+sql+universal is the latest installed DEBUG: cyrus-sasl2 2.1.25_1 +kerberos+sql+universal is active DEBUG: Merging existing variants '+kerberos+sql+universal' into variants DEBUG: new fully merged portvariants: sql + universal + kerberos + framework + mmx + quartz + bash_completion + DEBUG: Changing to port directory: /opt/local/var/macports/sources/rsync.macports.org/release/tarballs/ports/security/cyrus-sasl2 DEBUG: OS darwin/11.4.0 (Mac OS X 10.7) arch i386 DEBUG: org.macports.load registered provides 'load', a pre-existing procedure. Target override will not be provided DEBUG: org.macports.unload registered provides 'unload', a pre-existing procedure. Target override will not be provided DEBUG: org.macports.distfiles registered provides 'distfiles', a pre-existing procedure. Target override will not be provided DEBUG: Using group file /opt/local/var/macports/sources/rsync.macports.org/release/tarballs/ports/_resources/port1.0/group/muniversal-1.0.tcl DEBUG: Reading variant descriptions from /opt/local/var/macports/sources/rsync.macports.org/release/tarballs/ports/_resources/port1.0/variant_descriptions.conf DEBUG: universal variant already exists, so not adding the default one DEBUG: Requested variant +mmx is not provided by port cyrus-sasl2. DEBUG: Requested variant +framework is not provided by port cyrus-sasl2. DEBUG: Requested variant +bash_completion is not provided by port cyrus-sasl2. DEBUG: Requested variant +quartz is not provided by port cyrus-sasl2. DEBUG: Executing variant universal provides universal DEBUG: Executing variant kerberos provides kerberos DEBUG: Executing variant sql provides sql DEBUG: rev-upgrade override ... upgrading! DEBUG: Not following dependencies Skipping deactivate cyrus-sasl2 @2.1.25_1+kerberos+sql+universal (dry run) Skipping activate cyrus-sasl2 @2.1.25_1+kerberos+sql+universal (dry run) DEBUG: Rebuilding port cyrus-sasl2 finished with status 0 Warning: If this was no dry run, rev-upgrade would now run the checks again to find unresolved and newly created problems
comment:7 Changed 12 years ago by robsonpeixoto@…
Now, I'm using the mysql from macports =D
It's working like charm!
comment:8 Changed 12 years ago by neverpanic (Clemens Lang)
Resolution: | → invalid |
---|---|
Status: | new → closed |
Summary: | cyrus-sasl2 +sql rev-upgrade problem → cyrus-sasl2 +sql rev-upgrade problem in presence of non-macports libmysqlclient.dylib |
The problem was caused by the libmysqlclient.18.dylib
file the build linked against. Linking against a library on Macs works like this:
- find the library you want to link
- Get its ID loadcommand (run otool -L on the file, it's the first line, usually an absolute path, as opposed to Linux, where the paths are usually relative)
- Copy the path mentioned there into your binary
So we know from the rev-upgrade output that this copied path is libmysqlclient.18.dylib
, which is relative, which causes rev-upgrade to try and find a file libmysqlclient.18.dylib
in whatever directory it runs in. It fails to locate this file and assumes the binary is broken.
The problem doesn't occur with MacPorts libmysqlclient.dylib
, because its ID loadcommand correctly contains the absolute path:
:) clemens@cSchlepptop:~$ otool -L /opt/local/lib/mysql55/mysql/libmysqlclient.18.dylib /opt/local/lib/mysql55/mysql/libmysqlclient.18.dylib: /opt/local/lib/mysql55/mysql/libmysqlclient.18.dylib (compatibility version 18.0.0, current version 18.0.0)
Anyway, glad you could solve this.
Since
cyrus-sasl2 +sql
only adds a dependency onsqlite3
, it should either not link againstlibmysqlclient.dylib
or also declare a dependency on mysql. It would be helpful to know where yourlibmysqlclient.18.dylib
file comes from. What doesport -v installed mysql*
print?