I sent an email to kde-core-devel detailing the problems I had  
experienced
the other day with beta1. They say these should be fixed in beta 2.

Frank

Here's their reply:

Begin forwarded message:

> From: Alexander Neundorf <neund...@kde.org>
> Date: 19 December 2008 18:15:14 GMT
> To: kde-buildsys...@kde.org
> Cc: Allen Winter <win...@kde.org>, Frank Wilson <fr...@thefixedpoint.me.uk 
> >
> Subject: Re: Fwd: Kde 4.2 beta1 feedback: Notes on cmake scripts
> Reply-To: neund...@kde.org
>
> On Friday 19 December 2008, Allen Winter wrote:
>> Forwarding to the buildsystem folks:
>> ---------------------------------------------------------------------------
>> -- Firstly I'd like to say thank you for an awesome kde 4.2 beta 1,  
>> it's
>> looking really good.
>>
>> I would like to raise a few issues about the build scripts and offer
>> some suggestions.
>> I regret that I have not been able to try the latest "beta 2" that  
>> was
>> released today, but I will try it as soon as I have time.
>
> Thanks for the feedback, but I think I have fixed all these issues  
> just two
> weeks ago, i.e. after beta1, they should be in beta2.
> I'm building KDE currently with the stuff installed
> to /opt/kdesupport, /opt/kdelibs, /opt/kdepimlibs and /opt/kde4 (for  
> all the
> rest), so that I think I have stumbled about all the same problems  
> and fixed
> them.
>
> Please let us know if you still have problems with current svn trunk.
>
> Thanks
Alex


---------------

Here is the email i sent them:

Firstly I'd like to say thank you for an awesome kde 4.2 beta 1, it's  
looking really good.

I would like to raise a few issues about the build scripts and offer  
some suggestions.
I regret that I have not been able to try the latest "beta 2" that was  
released today,
but I will try it as soon as I have time.

I am using GoboLinux. GoboLinux does not use the FHS, which means  
certain
assumptions that are true for many distributions do not hold in this  
case.

While installing KDE-4.2 beta 1 I ran in to 2 areas of trouble which  
required three patches
in total.

The first trouble spot is with the cmake modules that kde-libs  
installs on the system.
The "kdelibs-4.1.80/cmake/modules/FindKdepimLibs.cmake" file
specifies KDE4_LIB_DIR as the location for the kdepimlibs libraries.  
This does not
work on GoboLinux because we do not install the whole of KDE to the  
same prefix
instead we have /Programs/KDE-Libs/Current, /Programs/KDE-PIM-Libs/ 
Current,
/Programs/KDE-Base/Current, etc.

This means that in the Gobolinux case KDE4_LIB_DIR will point to
/Programs/KDE-Libs/Current, which is obviously the wrong prefix for  
PIM-Libs.

I solved this by substituting CMAKE_LIBRARY_PATH in the place of  
KDE4_LIB_DIR
and setting CMAKE_LIBRARY_PATH=/System/Links/Libraries where all  
libraries can
be found.

I had a quick browse of kde web svn before sending this email and it  
would appear
that FindKdepimLibs has changed quite a bit. I haven't had a chance to  
read very deeply
into the code, but I hope that CMAKE_LIBRARY_PATH is used more instead  
of KDE4_LIB_DIR.

The other problem I had was with KDE-Base-Workspace and KDE-Base- 
Runtime locating
DBUS interface definitions in the scripts powerdevil/daemon/ 
CMakeLists.txt and
kwalletd/CMakeLists.txt. Both scripts originially used the variable  
DBUS_INTERFACES_INSTALL_DIR
to refer to preexisting interface definition files. On a system where  
all DBUS interfaces are
installed in the same location this is not a problem. However, on  
GoboLinux each package
installs its DBUS interface  definitions under the package prefix and  
these are symlinked
to /System/Links/Shared/dbus-1/interfaces/ .

In the end this means when building either KDE-Base Workspace or  
Runtime the build script
looks under the installation prefix and of course it won't find  
anything there because
that prefix hasn't been created yet (and the files its looking for are  
never going to be there anyway)!

To resolve this I substituted DBUS_INTERFACES_INSTALL_DIR with  
KDE4_DBUS_INTERFACES_DIR
and set KDE4_DBUS_INTERFACES_DIR appropriately (i.e. to  /System/Links/ 
Shared/dbus-1/interfaces)
when compiling KDE-Libs.

 From browsing kde web svn, this seems to be the approach you are  
taking now. I would like to strongly
encourage you to include this in the final release! :-)

I include my patches with this email for clarity. I apologise for  
accidentally changing a WIN32 setting in
01-kwalletd-CMakeLists.patch this was not my intension and I do not  
know if it is appropriate or not.
The patch is really just to illustrate the change I would make and by  
the looks of the svn code I don't think you
will be needing it!

Do people on this list think it is likely that these amendments might  
make the final release?
(Not my patches, just the general ideas!)

Thanks,

Frank Wilson


-----------------------------------

END OF MESSAGE


On 17 Dec 2008, at 14:28, Frank Wilson wrote:

> I have adjusted my patch now and I think I am approaching a
> workable solution. The idea of the new patch is to replace  
> KDE4_LIB_DIR
> with CMAKE_LIBRARY_PATH instead of LIB_INSTALL_DIR.
> This seems to work although for KDE-Base-Workspace, which I have
> just compiled and installed, CMAKE_LIBRARY_PATH has to be
> set explicitly. If CMAKE_LIBRARY_PATH is not set, Compile
> fails at the cmake configuration stage. Otherwise, my compile
> of KDE-Base-Workspace went without a hitch!
>
> My gut feeling is that if we set CMAKE_LIBRARY_PATH
> and CMAKE_INCLUDE_PATH in the cmake recipes' Environment
> file we would eliminate the need to set this for many cmake recipes.
>
> I will try this later after I have tested a few more KDE4 recipes.
>
> Frank
>
> On 17 Dec 2008, at 12:36, Frank Wilson wrote:
>
>> Hmm... using LIB_INSTALL_DIR was a bad idea (for me at least).
>> Using that variable means the KDE will try and install itself outside
>> of its own directory (i.e. in /System/Links/Libraries). I should have
>> guessed,
>> I suppose!
>>
>> I'm unsure what the gobo way is now. I think what we need is to find
>> another variable to help locate these libraries. Questions I have to
>> answer are:
>>
>> * Have KDE set an appropriate variable for finding libraries that is
>> different
>>  from the install location?
>> * Is it better to point each find_library statement to /System/Links/
>> Libraries
>>  or should each statement point to the unique path of each library?
>> I suppose
>>  the latter is closer to the gobo way, but harder to realize.
>>
>> Frank
>>
>> On 17 Dec 2008, at 12:07, Frank Wilson wrote:
>>
>>> Right I am going to just assume that WIN32 stuff was just
>>> accidentally
>>> changed with sed and is just a red herring....
>>>
>>> In my new patch I am just substituting KDE4_LIB_DIR for
>>> LIB_INSTALL_DIR,
>>> much like the old patch. I am still testing my recipes, but it looks
>>> like I
>>> still have to set LIB_INSTALL_DIR in the recipes for the other KDE4
>>> modules
>>> (such as KDE-Base- Workspace). This was not the case in the old kde
>>> 4.1.3
>>> recipes.
>>>
>>> Is LIB_INSTALL_DIR being set somewhere else? If so where?
>>> Can cmake vars be set by shell variables set elsewhere on the  
>>> system?
>>>
>>> Thanks,
>>>
>>> Frank
>>>
>>>
>>> <01-FindKdepimLibs.patch>
>>>
>>> On 17 Dec 2008, at 10:51, Frank Wilson wrote:
>>>
>>>> By the way I should have made it clear that the patch applies to
>>>> KDE-
>>>> Libs 4.1.3.
>>>>
>>>> Frank
>>>>
>>>> On 17 Dec 2008, at 10:31, Frank Wilson wrote:
>>>>
>>>>> I am working on recipes for KDE 4.1.80 (the KDE 4.2 beta 1 release
>>>>> [1]).
>>>>> For some reason I found that I could not apply the patch [2] for
>>>>> 4.1.3
>>>>> to the new release. However I still think the new release needs to
>>>>> be patched in a similar way. I would like to have a better
>>>>> understanding
>>>>> of the current patch so i can re-implement it.
>>>>>
>>>>> The KDE build system assumes that KDE-Libs and KDE-PIM-Libs
>>>>> will be installed under the same hierarchy. This is probably the
>>>>> case
>>>>> under debian
>>>>> but not on a gobolinux system.
>>>>>
>>>>> I believe this is what the following part of the patch (along with
>>>>> similar parts) addresses:
>>>>>
>>>>> -  find_library(KDE4_SYNDICATION_LIBRARY NAMES syndication PATHS $
>>>>> {KDE4_LIB_DIR} \
>>>>> NO_DEFAULT_PATH )
>>>>> +  find_library(KDE4_SYNDICATION_LIBRARY NAMES syndication PATHS $
>>>>> {LIB_INSTALL_DIR} \
>>>>>
>>>>> However, I don't understand why the following has been changed:
>>>>>
>>>>> if (WIN32)
>>>>> -  if (KDEPIMLIBS_DIR)
>>>>> -      set (KDE4_INCLUDE_DIR ${KDE4_INCLUDE_DIR} $ 
>>>>> {KDEPIMLIBS_DIR}/
>>>>> include)
>>>>> -      set (KDE4_LIB_DIR ${KDE4_LIB_DIR}  ${KDEPIMLIBS_DIR}/lib)
>>>>> -  else (KDEPIMLIBS_DIR)
>>>>> +  if (LIB_INSTALL_DIR)
>>>>> +      set (KDE4_INCLUDE_DIR ${KDE4_INCLUDE_DIR} $
>>>>> {LIB_INSTALL_DIR}/
>>>>> include)
>>>>> +      set (LIB_INSTALL_DIR ${KDE4_LIB_DIR}  ${KDEPIMLIBS_DIR}/ 
>>>>> lib)
>>>>> +  else (LIB_INSTALL_DIR)
>>>>>    file(TO_CMAKE_PATH "$ENV{PROGRAMFILES}" _progFiles)
>>>>>    set (KDE4_INCLUDE_DIR ${KDE4_INCLUDE_DIR} ${_progFiles}/
>>>>> kdepimlibs/include)
>>>>> -      set (KDE4_LIB_DIR ${KDE4_LIB_DIR} ${_progFiles}/kdepimlibs/
>>>>> lib)
>>>>> -  endif (KDEPIMLIBS_DIR)
>>>>> +      set (LIB_INSTALL_DIR ${KDE4_LIB_DIR} ${_progFiles}/
>>>>> kdepimlibs/
>>>>> lib)
>>>>> +  endif (LIB_INSTALL_DIR)
>>>>> endif (WIN32)
>>>>>
>>>>> Shouldn't the body of this if statement [ if (WIN32) ]  be ignored
>>>>> on
>>>>> gobolinux (or any variant of linux
>>>>> for that matter)? Or am I missing something?
>>>>>
>>>>> Thanks,
>>>>>
>>>>> Frank
>>>>>
>>>>> [1] http://kde.org/info/4.1.80.php
>>>>> [2] 
>>>>> http://recipes.gobolinux.org/r/?list=KDE-Libs&ver=4.1.3-r1&file=01-FindKdepimLibs.patch
>>>>> _______________________________________________
>>>>> gobolinux-devel mailing list
>>>>> gobolinux-devel@lists.gobolinux.org
>>>>> http://lists.gobolinux.org/mailman/listinfo/gobolinux-devel
>>>>
>>>> _______________________________________________
>>>> gobolinux-devel mailing list
>>>> gobolinux-devel@lists.gobolinux.org
>>>> http://lists.gobolinux.org/mailman/listinfo/gobolinux-devel
>>>
>>> _______________________________________________
>>> gobolinux-devel mailing list
>>> gobolinux-devel@lists.gobolinux.org
>>> http://lists.gobolinux.org/mailman/listinfo/gobolinux-devel
>>
>> _______________________________________________
>> gobolinux-devel mailing list
>> gobolinux-devel@lists.gobolinux.org
>> http://lists.gobolinux.org/mailman/listinfo/gobolinux-devel
>
> _______________________________________________
> gobolinux-devel mailing list
> gobolinux-devel@lists.gobolinux.org
> http://lists.gobolinux.org/mailman/listinfo/gobolinux-devel

_______________________________________________
gobolinux-devel mailing list
gobolinux-devel@lists.gobolinux.org
http://lists.gobolinux.org/mailman/listinfo/gobolinux-devel

Reply via email to