From owner-freebsd-ports-bugs@FreeBSD.ORG Fri Mar 2 01:20:08 2012 Return-Path: Delivered-To: freebsd-ports-bugs@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id C3EE8106566B for ; Fri, 2 Mar 2012 01:20:08 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id A1C2F8FC13 for ; Fri, 2 Mar 2012 01:20:08 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.5/8.14.5) with ESMTP id q221K8Gg007495 for ; Fri, 2 Mar 2012 01:20:08 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.5/8.14.5/Submit) id q221K8Hb007494; Fri, 2 Mar 2012 01:20:08 GMT (envelope-from gnats) Resent-Date: Fri, 2 Mar 2012 01:20:08 GMT Resent-Message-Id: <201203020120.q221K8Hb007494@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-ports-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, "RandomUser" Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DCBD1106564A for ; Fri, 2 Mar 2012 01:13:53 +0000 (UTC) (envelope-from rannumgen@globaleyes.net) Received: from mail.ll.net (smtp.ll.net [38.100.110.136]) by mx1.freebsd.org (Postfix) with ESMTP id A4D228FC16 for ; Fri, 2 Mar 2012 01:13:53 +0000 (UTC) Received: from freebsd1.localnet (unknown [50.44.196.179]) (Authenticated sender: rannumgen@globaleyes.net) by mail.ll.net (Postfix) with ESMTPA id 54239FDC2; Thu, 1 Mar 2012 18:54:34 -0600 (CST) Message-Id: <1330649701.11562@freebsd1.localnet> Date: Thu, 1 Mar 2012 18:55:01 -0600 From: "RandomUser" To: "FreeBSD gnats submit" X-Send-Pr-Version: gtk-send-pr 0.4.9 Cc: rannumgen@globaleyes.net Subject: ports/165604: databases/mysql55-server cmake patches to properly use OpenSSL X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Mar 2012 01:20:08 -0000 >Number: 165604 >Category: ports >Synopsis: databases/mysql55-server cmake patches to properly use OpenSSL >Confidential: no >Severity: non-critical >Priority: high >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Fri Mar 02 01:20:08 UTC 2012 >Closed-Date: >Last-Modified: >Originator: RandomUser >Release: 7.4-STABLE >Organization: >Environment: 7.4-STABLE FreeBSD 7.4-STABLE #2: Tue Dec 20 10:55:34 CST 2011 openssl-1.0.0_9 (userland) openSSL 0.9.8q (base) >Description: Without several patches to MySQL cmake files/environment, none of the OpenSSL libraries are used (base or userland). Even with the "-DWITH_SSL" flag, the bundled "yassl" doesn't get used. Hence - MySQL55 does NOT get compiled with ANY SSL capability. The cmake patches are not OS specific (had to use them in Solaris 10 as well). NOTE: a new Makefile variable "WITH_USR_LOCAL" was used to distinguish between "base" OpenSSL and "userland" OpenSSL. There probably is a better method for achieving this distinction. P.S. cmake patch was derived from an Internet post about MySQL + CMAKE + OpenSSL compile problems, but I have lost the reference. Make output validation of cmake infernal process for finding (base) OpenSSL: -- Found OpenSSL: /usr/lib/libssl.so;/usr/lib/libcrypto.so -- OPENSSL_INCLUDE_DIR = /usr/include -- OPENSSL_LIBRARIES = /usr/lib/libssl.so;/usr/lib/libcrypto.so -- Looking for SHA512_DIGEST_LENGTH -- Looking for SHA512_DIGEST_LENGTH - found Results are similar for (userland) OpenSSL (with "/usr/local/..."). LDD vaLidation of OpenSSL inclusion: ldd `which mysql` /usr/local/bin/mysql: libreadline.so.7 => /lib/libreadline.so.7 (0x282c6000) libz.so.4 => /lib/libz.so.4 (0x282f8000) libssl.so.7 => /usr/local/lib/libssl.so.7 (0x2830a000) libcrypto.so.7 => /usr/local/lib/libcrypto.so.7 (0x28358000) libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x284bb000) libm.so.5 => /lib/libm.so.5 (0x285af000) libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x285c5000) libthr.so.3 => /lib/libthr.so.3 (0x285d0000) libc.so.7 => /lib/libc.so.7 (0x285e5000) libncurses.so.7 => /lib/libncurses.so.7 (0x286eb000) ldd /usr/local/libexec/mysqld /usr/local/libexec/mysqld: libz.so.4 => /lib/libz.so.4 (0x287e0000) libwrap.so.5 => /usr/lib/libwrap.so.5 (0x287f2000) libcrypt.so.4 => /lib/libcrypt.so.4 (0x287f9000) libssl.so.7 => /usr/local/lib/libssl.so.7 (0x28812000) libcrypto.so.7 => /usr/local/lib/libcrypto.so.7 (0x28860000) libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x289c3000) libm.so.5 => /lib/libm.so.5 (0x28ab7000) libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x28acd000) libthr.so.3 => /lib/libthr.so.3 (0x28ad8000) libc.so.7 => /lib/libc.so.7 (0x28aed000 >How-To-Repeat: >Fix: Makefile.diffs ================ --- Makefile.orig 2012-02-29 14:14:17.000000000 -0600 +++ Makefile 2012-02-29 14:41:14.000000000 -0600 @@ -48,7 +48,12 @@ .include .if !defined(WITHOUT_OPENSSL) -CMAKE_ARGS+= -DWITH_SSL=bundled +CMAKE_ARGS+= -DWITH_SSL=system +.if defined(WITH_USR_LOCAL_SSL) +CMAKE_ARGS+= -DCMAKE_INCLUDE_PATH=/usr/local/include \ + -DCMAKE_LIBRARY_PATH=/usr/local/lib +MAKE_ENV+= PKG_CONFIG_PATH=/usr/local/libdata/pkgconfig +.endif .endif .if defined(WITH_FASTMTX) CMAKE_ARGS+= -DWITH_FAST_MUTEXES=1 ====================== files/patch-cmake_ssl.cmake ====================== --- cmake/ssl.cmake.orig 2011-12-16 13:52:07.000000000 -0600 +++ cmake/ssl.cmake 2012-02-29 11:36:24.000000000 -0600 @@ -64,11 +64,14 @@ MYSQL_USE_BUNDLED_SSL() ELSEIF(WITH_SSL STREQUAL "system" OR WITH_SSL STREQUAL "yes") # Check for system library - SET(OPENSSL_FIND_QUIETLY TRUE) +# SET(OPENSSL_FIND_QUIETLY TRUE) INCLUDE(FindOpenSSL) + MESSAGE(STATUS "OPENSSL_INCLUDE_DIR = ${OPENSSL_INCLUDE_DIR}") + MESSAGE(STATUS "OPENSSL_LIBRARIES = ${OPENSSL_LIBRARIES}") FIND_LIBRARY(CRYPTO_LIBRARY crypto) MARK_AS_ADVANCED(CRYPTO_LIBRARY) INCLUDE(CheckSymbolExists) + SET(CMAKE_REQUIRED_INCLUDES ${OPENSSL_INCLUDE_DIR}) CHECK_SYMBOL_EXISTS(SHA512_DIGEST_LENGTH "openssl/sha.h" HAVE_SHA512_DIGEST_LENGTH) IF(OPENSSL_FOUND AND CRYPTO_LIBRARY AND HAVE_SHA512_DIGEST_LENGTH) ======================== >Release-Note: >Audit-Trail: >Unformatted: