mysql57, boost and postgresql84
Bill Cole
macportsusers-20171215 at billmail.scconsult.com
Wed Nov 6 06:09:48 UTC 2019
On 5 Nov 2019, at 20:39, Michael Newman via macports-users wrote:
> Maybe I’m just not smart enough to play with MacPorts….
Unlikely.
> This on an iMac still running Mojave.
>
> This morning I did selfupdate and upgrade outdated with the following
> result:
>
> Error: mysql57 cannot be built while boost is active.
> Error: Please forcibly deactivate boost, e.g. by running:
> Error:
> Error: sudo port -f deactivate boost
> Error:
> Error: Then try again. You can reactivate boost again later.
>
> I deactivated boost as instructed and ran upgrade outdated again.
This is a quirk of MySQL and its use of the Boost suite of C++
libraries, which have weak version compatibility discipline. Basically,
it's not safe to build MySQL without having its build tools download and
build a specific version of Boost. Since Boost is used by many other
open source packages, you almost certainly will need to reactivate the
port now that you have MySQL updated.
> This time mysql built OK, but I got:
>
> Error: Failed to configure postgresql84,
Yes. It does that on Snow Leopard and High Sierra too. I don't think it
can be fixed in a safe and maintainable way. See below...
The postgresql8* ports really should all be removed. PostgreSQL 8.4 is 4
major versions and 5+ years obsolete and the MacPorts ports have no
maintainer. You should figure out why you have postgresql84 installed
and update to a currently supported version. See
https://www.postgresql.org/support/versioning/ for more information.
Since postgresql84 is just the client components of PostgreSQL, updating
to a current version shouldn't have much risk. If you also have
postgresql84-server installed, that would imply that you have a
PostgreSQL server running (i.e. with a database) and that may require
substantial work that MacPorts can't do for you.
> consult
> /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_databases_postgresql84/postgresql84/work/postgresql-8.4.22/config.log
> Error: Failed to configure postgresql84: configure failure: command
> execution failed
>
> The config.log file referred to is just under 1000 lines long. Is
> there anything in particular I should look for?
It is unlikely to be worth your time, but the failure I get shows up in
that log starting at line 694:
694: configure:8671: checking for SSL_library_init in -lssl
695: configure:8706: /usr/bin/clang -no-cpp-precomp -o conftest -pipe
-Os -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk
-arch x86_64 -Wa ll -Wmissing-prototypes -Wpointer-arith
-Wdeclaration-after-statement -Wendif-labels -fno-strict-aliasing
-fwrapv -fexcess-precision=standard -I/opt/lo cal/include
-I/opt/local/include/ossp
-isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk
-I/opt/local/include/libxml2 -I/opt/local/incl ude -L/opt/local/lib
-Wl,-headerpad_max_install_names
-Wl,-syslibroot,/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk
-arch x86_64 -L/opt/loca l/lib -L/opt/local/lib -L/opt/local/lib
-L/opt/local/lib -L/opt/local/lib conftest.c -lssl -lcrypto -lz
-lreadline -lm >&5
696: clang: warning: optimization flag '-fexcess-precision=standard' is
not supported [-Wignored-optimization-argument]
697: Undefined symbols for architecture x86_64:
698: "_SSL_library_init", referenced from:
699: _main in conftest-ad294e.o
700: ld: symbol(s) not found for architecture x86_64
Your line numbers may vary.
The cause of this is that "SSL_library_init" is a function that does not
exist in OpenSSL v1.1.x. It MAY be possible to install an old OpenSSL
and fix the Portfile or write a patch to make the configure and build
work, but then you'll have an obsolete PostgreSQL linked to an obsolete
OpenSSL, and you really do not want that.
--
Bill Cole
bill at scconsult.com or billcole at apache.org
(AKA @grumpybozo and many *@billmail.scconsult.com addresses)
More information about the macports-users
mailing list