can't install kdebase, needs root

Alexander Neundorf neundorf at kde.org
Tue Jun 22 22:39:02 CEST 2010


On Monday 21 June 2010, Andreas Pakulat wrote:
> On 21.06.10 21:36:13, Alexander Neundorf wrote:
> > On Saturday 12 June 2010, Michael Jansen wrote:
> > > On Samstag 12 Juni 2010 00:49:56 Ben Cooksley wrote:
> > > > On Sat, Jun 12, 2010 at 10:41 AM, Matthew Woehlke
> > > >
> > > > <mw_triad at users.sourceforge.net> wrote:
> > > > > I've started getting this the last two days:
> > > > >
> > > > > CMake Error at
> > > > > workspace/plasma/generic/scriptengines/python/cmake_install.cmake:7
> > > > >6 (FILE): file cannot create directory:
> > > > > /usr/lib64/python2.6/site-packages/PyKDE4. Maybe need
> > > > > administrative privileges.
> > > > >
> > > > > The line in question (trying to install to
> > > > > ${PYTHON_SITE_PACKAGES_DIR}) seems to have been there for some
> > > > > time, so I am not sure what has changed (I think, though, PyKDE was
> > > > > not being built before on my system, though again, I don't know why
> > > > > that would have changed).
> > > >
> > > > Passing the following argument to CMake when configuring kdebase
> > > > should be sufficient..
> > > >
> > > > -DPYTHON_SITE_PACKAGES_DIR=$KDEDIR/lib/python2.6/site-packages
> > >
> > > OR -DPYTHON_LIBS_WITH_KDE_LIBS=True
> > >
> > > Which is defined in FindPythonLibrary.cmake (kdelibs/cmake/modules) and
> > > makes sure everything is installed into PREFIX according to the used
> > > python version. But is hard to find because it is not documented and
> > > cached in CMakeCache.txt.
> >
> > Uh, yeah, and it's somewhat ugly too.
> > Can we find a better solution to this ?
> > I think the last time we discussed some python stuff on kde-buildsystem I
> > didn't recognize a real conclusion, I was mostly confused at the end.
> >
> > So, if we install python modules, where should they go by default ?
>
> Well, thats the problem, either they're installed in a way such that
> python finds them (and that usually means installing needs root-rights)
> or the buildsystem obeys the prefix thats set for the project
> (implicitly or by cmake-variable) in which case the user will have to
> tell its python to look in an additional place. Its very similar to
> installing libraries outside a directory thats mentioned in
> /etc/ld.so.conf, you can do that but you'll have to set an envvar at
> least to give the linker a clue where to look. With shared libs on Linux
> you have a bit better way using RPATH/RUNPATH, but that doesn't really
> exist for Python.

What about the attached patch ?

It removes the PYTHON_LIBS_WITH_KDE_LIBS switch, this was undocumented, and 
anything with "KDE" in the name shouldn't appear 
in "FindPythonLibrary.cmake".

It adds a cache variable PYTHON_SITE_PACKAGES_INSTALL_DIR, which is relative 
by default, so it will be inside CMAKE_INSTALL_PREFIX.
Additionally it makes PYTHON_SITE_PACKAGES_DIR a FORCED cache variable, it is 
not intended to be changed. But by having it in the cache, it can be seen by 
the user.
Additionally it puts PYTHON_INCLUDE_DIR in the cache.

Then the new variable is used in kdebase (...which makes kdebase/workspace/ 
require this version of kdelibs then).

What do you think ?

Alex


-------------- next part --------------
A non-text attachment was scrubbed...
Name: python_package_install.patch
Type: text/x-diff
Size: 3602 bytes
Desc: not available
Url : http://mail.kde.org/pipermail/kde-buildsystem/attachments/20100622/001fe67a/attachment.bin 


More information about the Kde-buildsystem mailing list