From owner-freebsd-ports-bugs@FreeBSD.ORG Sat Mar 30 17:10:00 2013 Return-Path: Delivered-To: freebsd-ports-bugs@smarthost.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id D911184A for ; Sat, 30 Mar 2013 17:10:00 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id C0468138 for ; Sat, 30 Mar 2013 17:10:00 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.6/8.14.6) with ESMTP id r2UHA0wS075738 for ; Sat, 30 Mar 2013 17:10:00 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.6/8.14.6/Submit) id r2UHA0hF075737; Sat, 30 Mar 2013 17:10:00 GMT (envelope-from gnats) Resent-Date: Sat, 30 Mar 2013 17:10:00 GMT Resent-Message-Id: <201303301710.r2UHA0hF075737@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, Heath Nielson Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 4089F842 for ; Sat, 30 Mar 2013 17:09:09 +0000 (UTC) (envelope-from nobody@FreeBSD.org) Received: from red.freebsd.org (red.freebsd.org [IPv6:2001:4f8:fff6::22]) by mx1.freebsd.org (Postfix) with ESMTP id 19626132 for ; Sat, 30 Mar 2013 17:09:09 +0000 (UTC) Received: from red.freebsd.org (localhost [127.0.0.1]) by red.freebsd.org (8.14.5/8.14.5) with ESMTP id r2UH98vq029290 for ; Sat, 30 Mar 2013 17:09:08 GMT (envelope-from nobody@red.freebsd.org) Received: (from nobody@localhost) by red.freebsd.org (8.14.5/8.14.5/Submit) id r2UH98dF029289; Sat, 30 Mar 2013 17:09:08 GMT (envelope-from nobody) Message-Id: <201303301709.r2UH98dF029289@red.freebsd.org> Date: Sat, 30 Mar 2013 17:09:08 GMT From: Heath Nielson To: freebsd-gnats-submit@FreeBSD.org X-Send-Pr-Version: www-3.1 Subject: ports/177509: [Patch] graphics/libkdcraw-kde4 doesn't export classes X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 30 Mar 2013 17:10:00 -0000 >Number: 177509 >Category: ports >Synopsis: [Patch] graphics/libkdcraw-kde4 doesn't export classes >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Sat Mar 30 17:10:00 UTC 2013 >Closed-Date: >Last-Modified: >Originator: Heath Nielson >Release: 9.1-STABLE >Organization: >Environment: FreeBSD hershey.bar.net 9.1-STABLE FreeBSD 9.1-STABLE #26: Wed Feb 13 13:44:17 MST 2013 heath@hershey.bar.net:/usr/obj/usr/src/sys/HERSHEY amd64 >Description: The port is configured to build with GCC. As part of the configuration cmake calls FindKDE4Internal.cmake which checks to see if gcc supports the -fvisible=hidden flag, which it does. The project is then built with that flag. However, for some reason, cmake is not defining the value __KDE_HAVE_GCC_VISIBILITY which is used in /usr/local/kde4/include/kdemacros.h to define KDE_EXPORT to export the symbols. Instead KDE_EXPORT is is not defined and those symbols are not exported. Downstream ports, such as graphics/kipi-plugins-kde4, fail because of those hidden symbols. >How-To-Repeat: cd /usr/ports/graphics/libkdcraw-kde4; make install nm -CD /usr/local/kde4/lib/libkdcraw.so | grep KDcraw # will not list any symbols >Fix: I am not very familiar with the KDE build infrastructure (nor with cmake). I can see in /usr/ports/x11/kdelibs4/files/patch-cmake_modules_FindKDE4Internal.cmake where testing is done for the -fvisibility compiler flag and see the __KDE_HAVE_GCC_VISIBILITY property set, but can't see how that property translates into setting __KDE_HAVE_GCC_VISIBILITY for kdemacros.h. I created a workaround which I've attached, but I'm sure that this isn't the proper way to fix this issue. Patch attached with submission follows: --- libkdcraw/CMakeLists.txt.orig 2013-03-30 10:40:23.000000000 -0600 +++ libkdcraw/CMakeLists.txt 2013-03-30 10:40:27.000000000 -0600 @@ -52,6 +52,10 @@ SET_TARGET_PROPERTIES(kdcraw PROPERTIES VERSION ${DCRAW_LIB_SO_VERSION_STRING} SOVERSION ${DCRAW_LIB_SO_CUR_VERSION} DEFINE_SYMBOL LIBRAW_BUILDLIB) +if (__KDE_HAVE_GCC_VISIBILITY) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D__KDE_HAVE_GCC_VISIBILITY") +endif() + INSTALL(TARGETS kdcraw ${INSTALL_TARGETS_DEFAULT_ARGS}) # Check if compilation is done through digiKam SC or not. If yes, do not install header files. >Release-Note: >Audit-Trail: >Unformatted: