can't install kdebase, needs root

Alexander Neundorf neundorf at kde.org
Wed Jun 23 22:41:18 CEST 2010


On Tuesday 22 June 2010, Alexander Neundorf wrote:
> 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 ?

Committed, with a small change so updating kdelibs is not immediately 
necessary.

Alex


More information about the Kde-buildsystem mailing list