Bug 191207 - k3b from SVN does not install in target directory
Summary: k3b from SVN does not install in target directory
Status: RESOLVED FIXED
Alias: None
Product: k3b
Classification: Applications
Component: general (other bugs)
Version First Reported In: unspecified
Platform: Compiled Sources Unspecified
: NOR normal
Target Milestone: ---
Assignee: Michał Małek
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-05-01 09:59 UTC by Christoph Bartoschek
Modified: 2009-05-04 00:04 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Christoph Bartoschek 2009-05-01 09:59:09 UTC
Version:            (using Devel)
Installed from:    Compiled sources

I am using kdesvn-build to build extragear/multimedia with k3b. The installation fails because k3b tries to install itself in a global directory and not in the users target directory. Here is the error:

-- Up-to-date: /home/kde-check/software/kde/bin/k3bsetup
-- Installing: /home/kde-check/software/kde/share/kde4/services/k3bsetup2.desktop
-- Installing: /usr/share/dbus-1/system-services/org.k3b.setup.service
CMake Error at k3b/k3bsetup/worker/cmake_install.cmake:36 (FILE):
  file INSTALL cannot copy file
  "/home/kde-check/kdesvn/build/extragear/multimedia/k3b/k3bsetup/worker/org.k3b.setup.service"
  to "/usr/share/dbus-1/system-services/org.k3b.setup.service".
Call Stack (most recent call first):
  k3b/k3bsetup/cmake_install.cmake:54 (INCLUDE)
  k3b/cmake_install.cmake:42 (INCLUDE)
  cmake_install.cmake:38 (INCLUDE)


make: *** [install] Fehler 1
Comment 1 Michał Małek 2009-05-01 17:27:20 UTC
Hi,
Since K3bSetup now uses Policykit to obtain an authorization, certain files must be installed to D-BUS and Policykit directories. It concerns following files:
- org.k3b.setup.service (it is copied to /usr/share/dbus-1/system-services/)
- org.k3b.setup.conf (it is copied to /etc/dbus-1/system.d)
- org.k3b.setup.policy (it is copied to /usr/share/PolicyKit/policy)
- org.k3b.setup.xml (it is copied to /usr/share/dbus-1/interfaces)
Without these files K3bSetup will not work properly.
Comment 2 Christoph Bartoschek 2009-05-01 18:20:10 UTC
I guess that D-BUS and Policykit have the ability to add certain directories to search for their configuration. Either via environment variables or central configuration files.  Normally the user who installs in a nonstandard directory changes the configuration to reflect this. 

Consider other types of files which are useless without proper configuration:
- executables have to be added to PATH
- libraries are added to ld.so.conf or LIBPATH or LD_LIBRARY_PATH.
- manpages are added MANPATH
- PKG_CONFIG_PATH hat .pc files

If the user installs a package with PREFIX set, then all files should be installed in subdirectories of PREFIX. The only exception is when the user specifies a different target directory for specific files. For example by also specifiying a MANPAGE_PREFIX.

Therefore k3b should install its files to $PREFIX/etc/dbus-1/system-services and $PREFIX/share/PolicyKit and $PREFIX/etc/dbus-1/system.d. Additionally provide configuration macros to change this defaults.
Comment 3 Michał Małek 2009-05-01 18:56:30 UTC
Ok, you have convinced me. I will fix that.
Comment 4 Michał Małek 2009-05-04 00:04:55 UTC
SVN commit 963092 by mmalek:

Updated install paths of DBUS/PolicyKit files - the previous ones were preventing to install k3b in user target directory. Now it's possible again.
BUG: 191207

 M  +3 -3      cmake/modules/FindPolkitQt.cmake  
 M  +2 -2      k3bsetup/worker/CMakeLists.txt  


WebSVN link: http://websvn.kde.org/?view=rev&revision=963092