# $Id$ PNAME="kdebase-workspace" PVER="4.10.4" PBUILD="r1" SPLIT_PACKAGES="libkworkspace kdm kdebase-workspace" # todo: # - google-gadgets # - libgps # - lm_sensors support COMMON_DEPEND="== kde-base/kdelibs-${PVER}" LIBKWORKSPACE_DEPEND="${COMMON_DEPEND}" WORKSPACE_DEPEND="${COMMON_DEPEND} == kde-base/kdepimlibs-${PVER} == kde-base/kdepim-runtime-${PVER} == kde-base/kactivities-${PVER} == kde-base/kde-wallpapers-${PVER} == kde-base/kde-base-artwork-${PVER} >= virtual/phonon >= dev-libs/polkit-qt-0.103 >= kde-base/polkit-kde-kcmodules-0.99 >= kde-base/polkit-kde-agent-0.99 >= dev-libs/glib2-2.36 >= dev-libs/libusb-compat-0.1 >= dev-libs/soprano-2.9 >= dev-libs/shared-desktop-ontologies-0.11 >= media-libs/fontconfig-2.10 >= media-libs/freetype-2.4 >= media-libs/prison-1 >= sys-apps/pciutils-3.1 >= sys-libs/libraw1394-2.1 >= sci-libs/libqalculate-0.9.7 >= x11-apps/xprop-1.2 >= x11-apps/xrandr-1.3 >= x11-apps/xrdb-1 >= x11-apps/xset-1.2 >= x11-apps/xsetroot-1.1 >= x11-libs/libxkbfile-1.0.7 >= x11-libs/libXcomposite-0.4 >= x11-libs/libXdamage-1.1 >= x11-libs/libXfixes-5 >= x11-libs/libXft-2.2 >= x11-libs/libXinerama-1.1 >= x11-libs/libXScrnSaver-1 >= x11-libs/libXrender-0.9 >= x11-libs/libXres-1 >= x11-libs/libXrandr-1.3 >= x11-libs/xcb-util-image-0.3.9 >= x11-libs/xcb-util-renderutil-0.3.8 >= virtual/opengl" KDM_DEPEND="${COMMON_DEPEND} >= kde-base/qimageblitz-0.0.6 >= sys-apps/dbus-1.6 >= sys-libs/pam-1.1 >= x11-libs/libX11-1.4 >= x11-libs/libXtst-1.2 >= x11-apps/xinit-1.3 >= x11-apps/xmessage-1" SDEPEND=">= dev-libs/boost-1.53 >= dev-python/pyqt4-4.10 == dev-python/pykde4-${PVER} >= net-misc/networkmanager-0.9.8 >= x11-proto/compositeproto-1 >= x11-proto/damageproto-1 >= x11-proto/fixesproto-5 >= x11-proto/randrproto-1.3 >= x11-proto/renderproto-0.11 >= x11-proto/scrnsaverproto-1 >= x11-proto/xineramaproto-1" SRCFILE="kde-workspace-${PVER}.tar.xz" SRCDIR="${BUILDDIR}/kde-workspace-${PVER}" # no meta-package required KDE4_GENERATE_META_PACKAGE=0 sminclude kde4-split-2 # script/pam revisions KDE_PAMD=kde.pamd-systemauth KDE_NP_PAMD=kde-np.pamd-systemauth KDM_REV=1.2 AGENT_STARTUP_REV=1.2 AGENT_SHUTDOWN_REV=1.2 SRC_URI=( ${SRC_URI[*]} mirror://${PNAME}/kde.desktop mirror://${PNAME}/${KDE_PAMD} mirror://${PNAME}/${KDE_NP_PAMD} mirror://${PNAME}/agent-startup.sh-${AGENT_STARTUP_REV} mirror://${PNAME}/agent-shutdown.sh-${AGENT_SHUTDOWN_REV} mirror://${PNAME}/kdm.logrotate mirror://${PNAME}/kdm.service-${KDM_REV} mirror://${PNAME}/${PNAME}-4.9.4-rootprivs.patch mirror://${PNAME}/${PNAME}-4.9.4-battery-plasmoid-showremainingtime.patch mirror://${PNAME}/${PNAME}-4.9.4-kdm-plymouth.patch mirror://${PNAME}/${PNAME}-4.9.4-xsession-errors-O_APPEND.patch mirror://${PNAME}/${PNAME}-4.9.4-fix-reboot.patch mirror://${PNAME}/${PNAME}-4.9.4-systemd-displaymanager.patch ) UP2DATE="updatecmd -listonly http://download.kde.org/stable/ | grep 'stable/[0-9]' | sed -n 's:.*/\([0-9].*\)/:\1:;$ p'" split_info_libkworkspace() { DESCRIPTION="A library for KDE desktop applications." DEPEND="${LIBKWORKSPACE_DEPEND}" } split_info_kdm() { DESCRIPTION="KDE4 login manager." DEPEND="${KDM_DEPEND} == kde-base/libkworkspace-${PVER}" PROVIDE="virtual/windowmanager" } split_info_kdebase-workspace() { DESCRIPTION="The KDE4 workspace." DEPEND="${WORKSPACE_DEPEND} == kde-base/kdm-${PVER}" } src_prepare() { munpack ${SRCFILE} || die cd ${SRCDIR} # allow systemsettings to enter an administrative mode mpatch ${PNAME}-4.9.4-rootprivs.patch || die # show remaing battery time by default mpatch ${PNAME}-4.9.4-battery-plasmoid-showremainingtime.patch || die # improved plymouth support mpatch ${PNAME}-4.9.4-kdm-plymouth.patch || die # add missing O_APPEND mpatch ${PNAME}-4.9.4-xsession-errors-O_APPEND.patch || die # systemd fix kdm restart/shutdown does not work mpatch ${PNAME}-4.9.4-fix-reboot.patch || die # fully support systemd mpatch ${PNAME}-4.9.4-systemd-displaymanager.patch || die } src_compile() { cd ${SRCDIR} # no consolekit anymore, use systemd-logind kde4_configure \ $(cmake_with Akonadi) \ $(cmake_with Boost) \ $(cmake_with GLIB2) \ $(cmake_with NetworkManager) \ $(cmake_with OpenGL) \ $(cmake_with PAM) \ $(cmake_with PyKDE4) \ $(cmake_with PythonLibrary) \ $(cmake_with Qalculate) \ $(cmake_with RAW1394) \ $(cmake_with SIP) \ $(cmake_with Soprano) \ $(cmake_with USB) \ $(cmake_with XKB) \ $(cmake_without Googlegadgets) \ $(cmake_without Sensors) \ $(cmake_without Xmms) \ $(cmake_without libgps) \ $(cmake_without CkConnector) \ || die mmake || die } src_install_libkworkspace() { cd ${SRCDIR} kde4-split_src_install_wrapper libs/kworkspace || die } src_install_kdm() { cd ${SRCDIR} local module="kdm" # generate a valid kdm configuration minstalldir ${KDEDIR}/share/config/kdm || die export GENKDMCONF_FLAGS="--no-old --no-backup" kde4-split_src_install_wrapper ${module} || die kde4-split_src_install_wrapper libs/${module} || die kde4-split_src_install_wrapper doc/${module} || die # workaround a dm bug the the xserver is not restarted # see: https://bugs.kde.org/show_bug.cgi?id=202629#c13 sed -i -e '/#TerminateServer=/s/^.*$/TerminateServer=true/' \ -e '/#ServerTimeout=/s/^.*$/ServerTimeout=30/' \ ${BINDIR}/usr/share/config/kdm/kdmrc || die # install gnome session minstalldir /usr/share/xsessions || die minstallexec -s kde.desktop /usr/share/xsessions || die # install pam related stuff minstallpam ${KDE_PAMD} kde || die minstallpam ${KDE_NP_PAMD} kde-np || die # systemd unit minstallunit kdm.service-${KDM_REV} kdm.service || die # kdm logrotate minstalllog kdm.logrotate kdm || die # kdm run dir mkeepdir /var/lib/kdm || die mchown root:kdm /var/lib/kdm || die mchmod 1770 /var/lib/kdm || die } src_install_kdebase-workspace() { cd ${SRCDIR} # to find all candifates search for 'cmake_install.cmake' local module # libs for module in kephal ksysguard oxygen taskmanager plasmaclock plasmagenericshell solid do kde4-split_src_install_wrapper libs/${module} || die done # progs for module in cursors freespacenotifier kcheckpass kcminit kcontrol khotkeys kinfocenter klipper \ kmenuedit krunner kscreensaver ksmserver ksplash kstartupconfig kstyles ksysguard kwin kwrited \ plasma powerdevil qguiplatformplugin_kde statusnotifierwatcher solid ksystraycmd systemsettings do kde4-split_src_install_wrapper ${module} || die done # cmake kde4-split_src_install_wrapper cmake || die # missing docs kde4-split_src_install_wrapper doc/kfontview || die kde4-split_src_install_wrapper doc/plasma-desktop || die # install missing files which are in the source root dir and not catched by the above # minstallexec startkde ${KDEDIR}/bin || die # minstalldir ${KDEDIR}/$(mlibdir)/cmake/KDE4Workspace || die # minstallfile KDE4WorkspaceConfig.cmake ${KDEDIR}/$(mlibdir)/cmake/KDE4Workspace || die # minstallfile KDE4WorkspaceConfigVersion.cmake ${KDEDIR}/$(mlibdir)/cmake/KDE4Workspace || die # minstallfile CMakeFiles/Export/_*/$(mlibdir)/cmake/KDE4Workspace/KDE4WorkspaceLibraryTargets.cmake ${KDEDIR}/$(mlibdir)/cmake/KDE4Workspace || die # minstallfile CMakeFiles/Export/_*/$(mlibdir)/cmake/KDE4Workspace/KDE4WorkspaceLibraryTargets-release.cmake ${KDEDIR}/$(mlibdir)/cmake/KDE4Workspace || die # try a hack cd ${BUILDDIR}/build DESTDIR=${BINDIR} cmake -DCMAKE_INSTALL_LOCAL_ONLY='ON' -P cmake_install.cmake || die cd ${SRCDIR} # install global agent startup and shutdown scripts minstalldir ${KDEDIR}/env || die minstallfile -s agent-startup.sh-${AGENT_STARTUP_REV} ${KDEDIR}/env/agent-startup.sh || die minstalldir ${KDEDIR}/shutdown || die minstallfile -s agent-shutdown.sh-${AGENT_SHUTDOWN_REV} ${KDEDIR}/shutdown/agent-shutdown.sh || die } preinstall_kdm() { # kdm now requires a user ${MLIBDIR}/mgroupadd -o "-g 135" kdm ${MLIBDIR}/museradd -o "-u 135 -g kdm -d /var/lib/kdm -s /bin/false" kdm } postinstall_kdm() { mreloadunit dbus.service mstartunit kdm.service } postremove_kdm() { mstopunit kdm.service mreloadunit dbus.service }