OSX/CI: kfilemetadata fails to build on branch master

Marko Käning mk-lists at email.de
Sat Dec 6 14:11:07 UTC 2014


The inclusion of MacPorts’ taglib fails on OSX.

See the below discussions about this problem from September.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: kfilemetadata.log.gz
Type: application/x-gzip
Size: 3080 bytes
Desc: not available
URL: <http://mail.kde.org/pipermail/kde-frameworks-devel/attachments/20141206/fe92f29b/attachment.gz>
-------------- next part --------------


Begin forwarded message:

> From: Marko Käning <mk-lists at email.de>
> Subject: taglib inclusion on OSX
> Date: 13 Sep 2014 22:54:07 GMT+2
> To: jr at jriddell.org, handa.vish at gmail.com
> Cc: bhush94 at gmail.com
> 
> Hi Jonathan & Vishesh,
> 
> Ben suggested to send our below conversation to you guys, as I am seeing problems
> with including taglib on OSX for plasma-mediacenter, but also for the project
> KFileMetaData maintained by you two.
> 
> Greets,
> Marko 
> 
> P.S.: Separately I have already contacted PMC’s Bhushan Shah, who asked me to
>      test building PMC while at Akademy, which I could do after some patching.
>      We need a solution which does not require patching taglib’s sources.
> 
> 
>> From: Ben Cooksley <bcooksley at kde.org>
>> Subject: Re: "Plasma Media Center" - Build Success on OSX
>> Date: 13 Sep 2014 22:09:33 GMT+2
>> To: Marko Käning <mk-lists at email.de>
>> 
>> On Sun, Sep 14, 2014 at 6:06 AM, Marko Käning <mk-lists at email.de> wrote:
>>> Hi Ben,
>> 
>> Hi Marko,
>> 
>>> 
>>> I am forwarding what I wrote to Bhushan earlier today.
>>> 
>>> I wonder whether you might have a hint as to what is going on here.
>>> On MacPorts exists the an non-patched taglib version 1.9.1.
>>> 
>>> Although I patched it regarding the pc files locally I didn’t succeed
>>> building plasma-mediacenter without patching is as well.
>>> 
>>> This problem occurs just as well for kfilemetadata, where I also had
>>> to add /opt/local/include to the include directories.
>>> 
>>> It seems as if TAGLIB_INCLUDES is not generated from any of taglib's
>>> pc files, right?
>> 
>> TAGLIB_INCLUDES will probably be set by a FindTaglib.cmake or
>> TaglibConfig.cmake file - either of which could potentially use the
>> pkgconfig *.pc files provided by Taglib.
>> 
>> This issue is a fairly routine case of include statements being
>> inconsistent with where things are being installed. It only works for
>> him and others because Taglib is usually installed in /usr on Linux
>> (and if it isn't there, it probably co-exists with kdelibs/frameworks
>> which add the $prefix/include directory to the include_directories).
>> 
>> The proper way to fix this is to either:
>> 1) Adjust the PMC code to include the taglib headers without the taglib/ prefix.
>> 2) Adjust the CMake code which locates taglib to add the
>> $prefix/include directory in addition to the $prefix/include/taglib
>> directory.
>> 
>>> 
>>> Greets,
>>> Marko
>> 
>> Thanks,
>> Ben
> 
> 
> 
>> From: Marko Käning <mk-lists at email.de>
>> Subject: Fwd: "Plasma Media Center" - Build Success on OSX
>> Date: 13 Sep 2014 20:06:34 GMT+2
>> To: Ben Cooksley <bcooksley at kde.org>
>> 
>> Hi Ben,
>> 
>> I am forwarding what I wrote to Bhushan earlier today.
>> 
>> I wonder whether you might have a hint as to what is going on here.
>> On MacPorts exists the an non-patched taglib version 1.9.1.
>> 
>> Although I patched it regarding the pc files locally I didn’t succeed
>> building plasma-mediacenter without patching is as well. 
>> 
>> This problem occurs just as well for kfilemetadata, where I also had
>> to add /opt/local/include to the include directories.
>> 
>> It seems as if TAGLIB_INCLUDES is not generated from any of taglib's
>> pc files, right?
>> 
>> Greets,
>> Marko
>> 
>> 
>> 
>> Begin forwarded message:
>> 
>>> From: Marko Käning <mk-lists at email.de>
>>> Subject: "Plasma Media Center" - Build Success on OSX
>>> Date: 13 Sep 2014 15:21:57 GMT+2
>>> To: bhush94 at gmail.com
>>> 
>>> Hi Bhushan,
>>> 
>>> just for your information, once I appended my local prefix here:
>>> ---
>>> message(STATUS "TAGLIB_INCLUDES = ${TAGLIB_INCLUDES}")
>>> 
>>> include_directories(
>>>  ${TAGLIB_INCLUDES}
>>>  /opt/local/include
>>> )
>>> ---
>>> I was able to ***successfully*** build PMC on OSX. :-)
>>> For that to work I had to disable the deps to baloo and mockcpp,
>>> of course. :)
>>> 
>>> Well, checking the contents of TAGLIB_INCLUDES - as shown above - I
>>> got this:
>>> ---
>>> TAGLIB_INCLUDES = ;/opt/local/include/taglib
>>> ---
>>> But your code prepends another taglib subfolder to every file
>>> included.
>>> 
>>> This is indeed very weird and I don’t know why this is happening,
>>> as the pc files of my current taglib installation do NOT have that
>>> path appended, but taglib-config tells me otherwise
>>> ---
>>> $ taglib-config --cflags
>>> -I/opt/local/include/taglib
>>> 
>>> $ grep Cflags /opt/local/lib/pkgconfig/taglib.pc
>>> Cflags: -I/opt/local/include
>>> ---
>>> 
>>> What are you seeing on your Linux system here?
>>> 
>>> (Actually I have manipulated those Cflags settings myself locally,
>>> as version 1.9.1 actually has “taglib” appended. See below!
>>> Looks like those changes in the pc files aren’t enough to make this
>>> work. I haven’t dived into the taglib-config code now, I must say.)
>>> 
>>> I am puzzled and wonder what’s going on here… Has taglib messed up
>>> or is there some CMake problem in KDE’s build system here?
>>> 
>>> Greets,
>>> Marko
>>> 
>>> 
>>> P.S.: BTW, I've run into the same problem with kfilemetadata - now that
>>>    I had to install taglib on my OSX/CI system. :-/
>>>    That’s why I am interested in finding a solution for this little,
>>>    but disturbing issue. :-)
>>>    So, please keep me posted.
>>> 
>>> 
>>> 
>>> 
>>> ---------------------------------------------------------------------------------------------
>>> $ git diff master
>>> diff --git a/bindings/c/taglib_c.pc.cmake b/bindings/c/taglib_c.pc.cmake
>>> index 61764fc..5cab822 100644
>>> --- a/bindings/c/taglib_c.pc.cmake
>>> +++ b/bindings/c/taglib_c.pc.cmake
>>> @@ -9,4 +9,4 @@ Description: Audio meta-data library (C bindings)
>>> Requires: taglib
>>> Version: ${TAGLIB_LIB_MAJOR_VERSION}.${TAGLIB_LIB_MINOR_VERSION}.${TAGLIB_LIB_PATCH_VERSION}
>>> Libs: -L${LIB_INSTALL_DIR} -ltag_c
>>> -Cflags: -I${INCLUDE_INSTALL_DIR}/taglib 
>>> +Cflags: -I${INCLUDE_INSTALL_DIR}
>>> diff --git a/taglib.pc.cmake b/taglib.pc.cmake
>>> index 909b8fc..d74a163 100644
>>> --- a/taglib.pc.cmake
>>> +++ b/taglib.pc.cmake
>>> @@ -8,4 +8,4 @@ Description: Audio meta-data library
>>> Requires: 
>>> Version: ${TAGLIB_LIB_MAJOR_VERSION}.${TAGLIB_LIB_MINOR_VERSION}.${TAGLIB_LIB_PATCH_VERSION}
>>> Libs: -L${LIB_INSTALL_DIR} -ltag
>>> -Cflags: -I${INCLUDE_INSTALL_DIR}/taglib 
>>> +Cflags: -I${INCLUDE_INSTALL_DIR}
>> 
> 



More information about the Kde-frameworks-devel mailing list