diff options
Diffstat (limited to 'pkgs/desktops/plasma-5.4/plasma-workspace/0001-startkde-NixOS-patches.patch')
-rw-r--r-- | pkgs/desktops/plasma-5.4/plasma-workspace/0001-startkde-NixOS-patches.patch | 401 |
1 files changed, 0 insertions, 401 deletions
diff --git a/pkgs/desktops/plasma-5.4/plasma-workspace/0001-startkde-NixOS-patches.patch b/pkgs/desktops/plasma-5.4/plasma-workspace/0001-startkde-NixOS-patches.patch deleted file mode 100644 index 443d7ec9079..00000000000 --- a/pkgs/desktops/plasma-5.4/plasma-workspace/0001-startkde-NixOS-patches.patch +++ /dev/null @@ -1,401 +0,0 @@ -From 35efc2ce92ed698abb21a79aa6e6670e844ea776 Mon Sep 17 00:00:00 2001 -From: Thomas Tuegel <ttuegel@gmail.com> -Date: Thu, 27 Aug 2015 20:36:39 -0500 -Subject: [PATCH 1/2] startkde NixOS patches - ---- - startkde/startkde.cmake | 217 ++++++++++++++++++++---------------------------- - 1 file changed, 88 insertions(+), 129 deletions(-) - -diff --git a/startkde/startkde.cmake b/startkde/startkde.cmake -index 2c4c315..7733721 100644 ---- a/startkde/startkde.cmake -+++ b/startkde/startkde.cmake -@@ -1,8 +1,31 @@ --#!/bin/sh -+#!@bash@/bin/bash - # - # DEFAULT KDE STARTUP SCRIPT ( @PROJECT_VERSION@ ) - # - -+set -x -+ -+# The KDE icon cache is supposed to update itself -+# automatically, but it uses the timestamp on the icon -+# theme directory as a trigger. Since in Nix the -+# timestamp is always the same, this doesn't work. So as -+# a workaround, nuke the icon cache on login. This isn't -+# perfect, since it may require logging out after -+# installing new applications to update the cache. -+# See http://lists-archives.org/kde-devel/26175-what-when-will-icon-cache-refresh.html -+rm -fv $HOME/.cache/icon-cache.kcache -+ -+# Qt writes a weird ‘libraryPath’ line to -+# ~/.config/Trolltech.conf that causes the KDE plugin -+# paths of previous KDE invocations to be searched. -+# Obviously using mismatching KDE libraries is potentially -+# disastrous, so here we nuke references to the Nix store -+# in Trolltech.conf. A better solution would be to stop -+# Qt from doing this wackiness in the first place. -+if [ -e $HOME/.config/Trolltech.conf ]; then -+ @gnused@/bin/sed -e '/nix\\store\|nix\/store/ d' -i $HOME/.config/Trolltech.conf -+fi -+ - if test "x$1" = x--failsafe; then - KDE_FAILSAFE=1 # General failsafe flag - KWIN_COMPOSE=N # Disable KWin's compositing -@@ -16,29 +39,16 @@ trap 'echo GOT SIGHUP' HUP - # we have to unset this for Darwin since it will screw up KDE's dynamic-loading - unset DYLD_FORCE_FLAT_NAMESPACE - --# in case we have been started with full pathname spec without being in PATH --bindir=`echo "$0" | sed -n 's,^\(/.*\)/[^/][^/]*$,\1,p'` --if [ -n "$bindir" ]; then -- qbindir=`qtpaths --binaries-dir` -- qdbus=$qbindir/qdbus -- case $PATH in -- $bindir|$bindir:*|*:$bindir|*:$bindir:*) ;; -- *) PATH=$bindir:$PATH; export PATH;; -- esac --else -- qdbus=qdbus --fi -- - # Check if a KDE session already is running and whether it's possible to connect to X --kcheckrunning -+@out@/bin/kcheckrunning - kcheckrunning_result=$? - if test $kcheckrunning_result -eq 0 ; then -- echo "KDE seems to be already running on this display." -- xmessage -geometry 500x100 "KDE seems to be already running on this display." > /dev/null 2>/dev/null -+ echo "KDE seems to be already running on this display." -+ @xmessage@/bin/xmessage -geometry 500x100 "KDE seems to be already running on this display." - exit 1 - elif test $kcheckrunning_result -eq 2 ; then - echo "\$DISPLAY is not set or cannot connect to the X server." -- exit 1 -+ exit 1 - fi - - # Boot sequence: -@@ -56,13 +66,8 @@ fi - # * Then ksmserver is started which takes control of the rest of the startup sequence - - # We need to create config folder so we can write startupconfigkeys --if [ ${XDG_CONFIG_HOME} ]; then -- configDir=$XDG_CONFIG_HOME; --else -- configDir=${HOME}/.config; #this is the default, http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html --fi -- --mkdir -p $configDir -+configDir=$(@qttools@/bin/qtpaths --writable-path GenericConfigLocation) -+mkdir -p "$configDir" - - #This is basically setting defaults so we can use them with kstartupconfig5 - cat >$configDir/startupconfigkeys <<EOF -@@ -101,53 +106,19 @@ XftSubPixel=none - EOF - } - --# Make sure the Oxygen font is installed --# This is necessary for setups where CMAKE_INSTALL_PREFIX --# is not in /usr. fontconfig looks in /usr, ~/.fonts and --# $XDG_DATA_HOME for fonts. In this case, we symlink the --# Oxygen font under ${XDG_DATA_HOME} and make it known to --# fontconfig -- --usr_share="/usr/share" --install_share="@CMAKE_INSTALL_PREFIX@/@SHARE_INSTALL_PREFIX@" -- --if [ ! $install_share = $usr_share ]; then -- -- if [ ${XDG_DATA_HOME} ]; then -- fontsDir="${XDG_DATA_HOME}/fonts" -- else -- fontsDir="${HOME}/.fonts" -- fi -- -- test -d $fontsDir || { -- mkdir -p $fontsDir -- } -- -- oxygenDir=$fontsDir/oxygen -- prefixDir="@CMAKE_INSTALL_PREFIX@/@SHARE_INSTALL_PREFIX@/fonts/oxygen" -- -- # if the oxygen dir doesn't exist, create a symlink to be sure that the -- # Oxygen font is available to the user -- test -d $oxygenDir || test -d $prefixDir && { -- test -h $oxygenDir || ln -s $prefixDir $oxygenDir && fc-cache $oxygenDir -- } --fi -- --kstartupconfig5 -+@out@/bin/kstartupconfig5 - returncode=$? - if test $returncode -ne 0; then -- xmessage -geometry 500x100 "kstartupconfig5 does not exist or fails. The error code is $returncode. Check your installation." -+ @xmessage@/bin/xmessage -geometry 500x100 "kstartupconfig5 does not exist or fails. The error code is $returncode. Check your installation." - exit 1 - fi - [ -r $configDir/startupconfig ] && . $configDir/startupconfig - --if test "$kdeglobals_kscreen_scalefactor" -ne 1; then -- export QT_DEVICE_PIXEL_RATIO=$kdeglobals_kscreen_scalefactor --fi -+XCURSOR_PATH=~/.icons:$(echo "$XDG_DATA_DIRS" | @coreutils@/bin/tr ":" "\n" | @gnused@/bin/sed 's,$,/icons,g' | @coreutils@/bin/tr "\n" ":") -+export XCURSOR_PATH - - # XCursor mouse theme needs to be applied here to work even for kded or ksmserver - if test -n "$kcminputrc_mouse_cursortheme" -o -n "$kcminputrc_mouse_cursorsize" ; then -- @EXPORT_XCURSOR_PATH@ - - kapplymousetheme "$kcminputrc_mouse_cursortheme" "$kcminputrc_mouse_cursorsize" - if test $? -eq 10; then -@@ -163,21 +134,39 @@ if test -n "$kcminputrc_mouse_cursortheme" -o -n "$kcminputrc_mouse_cursorsize" - fi - fi - --if test "$kcmfonts_general_forcefontdpi" -ne 0; then -- xrdb -quiet -merge -nocpp <<EOF --Xft.dpi: $kcmfonts_general_forcefontdpi --EOF --fi -+# Set a left cursor instead of the standard X11 "X" cursor, since I've heard -+# from some users that they're confused and don't know what to do. This is -+# especially necessary on slow machines, where starting KDE takes one or two -+# minutes until anything appears on the screen. -+# -+# If the user has overwritten fonts, the cursor font may be different now -+# so don't move this up. -+# -+@xsetroot@/bin/xsetroot -cursor_name left_ptr - - dl=$DESKTOP_LOCKED - unset DESKTOP_LOCKED # Don't want it in the environment - -+# Make sure that D-Bus is running -+# D-Bus autolaunch is broken -+if test -z "$DBUS_SESSION_BUS_ADDRESS" ; then -+ eval `@dbus-launch@ --sh-syntax --exit-with-session` -+fi -+if @qttools@/bin/qdbus >/dev/null 2>/dev/null; then -+ : # ok -+else -+ echo 'startkde: Could not start D-Bus. Can you call qdbus?' 1>&2 -+ test -n "$ksplash_pid" && kill "$ksplash_pid" 2>/dev/null -+ @xmessage@/bin/xmessage -geometry 500x100 "Could not start D-Bus. Can you call qdbus?" -+ exit 1 -+fi -+ - ksplash_pid= - if test -z "$dl"; then - # the splashscreen and progress indicator - case "$ksplashrc_ksplash_engine" in - KSplashQML) -- ksplash_pid=`ksplashqml "${ksplashrc_ksplash_theme}" --pid` -+ ksplash_pid=`@out@/bin/ksplashqml "${ksplashrc_ksplash_theme}" --pid` - ;; - None) - ;; -@@ -200,8 +189,7 @@ fi - # For anything else (that doesn't set env vars, or that needs a window manager), - # better use the Autostart folder. - --# TODO: Use GenericConfigLocation once we depend on Qt 5.4 --scriptpath=`qtpaths --paths ConfigLocation | tr ':' '\n' | sed 's,$,/plasma-workspace,g'` -+scriptpath=$(@qttools@/bin/qtpaths --paths GenericConfigLocation | tr ':' '\n' | @gnused@/bin/sed 's,$,/plasma-workspace,g') - - # Add /env/ to the directory to locate the scripts to be sourced - for prefix in `echo $scriptpath`; do -@@ -231,7 +219,7 @@ usr_odir=$HOME/.fonts/kde-override - usr_fdir=$HOME/.fonts - - if test -n "$KDEDIRS"; then -- kdedirs_first=`echo "$KDEDIRS"|sed -e 's/:.*//'` -+ kdedirs_first=`echo "$KDEDIRS" | @gnused@/bin/sed -e 's/:.*//'` - sys_odir=$kdedirs_first/share/fonts/override - sys_fdir=$kdedirs_first/share/fonts - else -@@ -244,23 +232,13 @@ fi - # add the user's dirs to the font path, as they might simply have been made - # read-only by the administrator, for whatever reason. - --test -d "$sys_odir" && xset +fp "$sys_odir" --test -d "$usr_odir" && (mkfontdir "$usr_odir" ; xset +fp "$usr_odir") --test -d "$usr_fdir" && (mkfontdir "$usr_fdir" ; xset fp+ "$usr_fdir") --test -d "$sys_fdir" && xset fp+ "$sys_fdir" -+test -d "$sys_odir" && @xset@/bin/xset +fp "$sys_odir" -+test -d "$usr_odir" && ( @mkfontdir@/bin/mkfontdir "$usr_odir" ; @xset@/bin/xset +fp "$usr_odir" ) -+test -d "$usr_fdir" && ( @mkfontdir@/bin/mkfontdir "$usr_fdir" ; @xset@/bin/xset fp+ "$usr_fdir" ) -+test -d "$sys_fdir" && @xset@/bin/xset fp+ "$sys_fdir" - - # Ask X11 to rebuild its font list. --xset fp rehash -- --# Set a left cursor instead of the standard X11 "X" cursor, since I've heard --# from some users that they're confused and don't know what to do. This is --# especially necessary on slow machines, where starting KDE takes one or two --# minutes until anything appears on the screen. --# --# If the user has overwritten fonts, the cursor font may be different now --# so don't move this up. --# --xsetroot -cursor_name left_ptr -+@xset@/bin/xset fp rehash - - # Get Ghostscript to look into user's KDE fonts dir for additional Fontmap - if test -n "$GS_LIB" ; then -@@ -273,30 +251,6 @@ fi - - echo 'startkde: Starting up...' 1>&2 - --# Make sure that the KDE prefix is first in XDG_DATA_DIRS and that it's set at all. --# The spec allows XDG_DATA_DIRS to be not set, but X session startup scripts tend --# to set it to a list of paths *not* including the KDE prefix if it's not /usr or --# /usr/local. --if test -z "$XDG_DATA_DIRS"; then -- XDG_DATA_DIRS="@CMAKE_INSTALL_PREFIX@/@SHARE_INSTALL_PREFIX@:/usr/share:/usr/local/share" --fi --export XDG_DATA_DIRS -- --# Make sure that D-Bus is running --# D-Bus autolaunch is broken --if test -z "$DBUS_SESSION_BUS_ADDRESS" ; then -- eval `dbus-launch --sh-syntax --exit-with-session` --fi --if $qdbus >/dev/null 2>/dev/null; then -- : # ok --else -- echo 'startkde: Could not start D-Bus. Can you call qdbus?' 1>&2 -- test -n "$ksplash_pid" && kill "$ksplash_pid" 2>/dev/null -- xmessage -geometry 500x100 "Could not start D-Bus. Can you call qdbus?" -- exit 1 --fi -- -- - # Mark that full KDE session is running (e.g. Konqueror preloading works only - # with full KDE running). The KDE_FULL_SESSION property can be detected by - # any X client connected to the same X session, even if not launched -@@ -321,11 +275,11 @@ fi - # - KDE_FULL_SESSION=true - export KDE_FULL_SESSION --xprop -root -f KDE_FULL_SESSION 8t -set KDE_FULL_SESSION true -+@xprop@/bin/xprop -root -f KDE_FULL_SESSION 8t -set KDE_FULL_SESSION true - - KDE_SESSION_VERSION=5 - export KDE_SESSION_VERSION --xprop -root -f KDE_SESSION_VERSION 32c -set KDE_SESSION_VERSION 5 -+@xprop@/bin/xprop -root -f KDE_SESSION_VERSION 32c -set KDE_SESSION_VERSION 5 - - KDE_SESSION_UID=`id -ru` - export KDE_SESSION_UID -@@ -335,11 +289,11 @@ export XDG_CURRENT_DESKTOP - - # At this point all the environment is ready, let's send it to kwalletd if running - if test -n "$PAM_KWALLET_LOGIN" ; then -- env | socat STDIN UNIX-CONNECT:$PAM_KWALLET_LOGIN -+ env | @socat@/bin/socat STDIN UNIX-CONNECT:$PAM_KWALLET_LOGIN - fi - # ...and also to kwalletd5 - if test -n "$PAM_KWALLET5_LOGIN" ; then -- env | socat STDIN UNIX-CONNECT:$PAM_KWALLET5_LOGIN -+ env | @socat@/bin/socat STDIN UNIX-CONNECT:$PAM_KWALLET5_LOGIN - fi - - # At this point all environment variables are set, let's send it to the DBus session server to update the activation environment -@@ -348,21 +302,26 @@ if test $? -ne 0; then - # Startup error - echo 'startkde: Could not sync environment to dbus.' 1>&2 - test -n "$ksplash_pid" && kill "$ksplash_pid" 2>/dev/null -- xmessage -geometry 500x100 "Could not sync environment to dbus." -+ @xmessage@/bin/xmessage -geometry 500x100 "Could not sync environment to dbus." - exit 1 - fi - - # We set LD_BIND_NOW to increase the efficiency of kdeinit. - # kdeinit unsets this variable before loading applications. --LD_BIND_NOW=true @CMAKE_INSTALL_FULL_LIBEXECDIR_KF5@/start_kdeinit_wrapper --kded +kcminit_startup -+LD_BIND_NOW=true @kinit@/lib/libexec/kf5/start_kdeinit_wrapper --kded +kcminit_startup - if test $? -ne 0; then - # Startup error - echo 'startkde: Could not start kdeinit5. Check your installation.' 1>&2 - test -n "$ksplash_pid" && kill "$ksplash_pid" 2>/dev/null -- xmessage -geometry 500x100 "Could not start kdeinit5. Check your installation." -+ @xmessage@/bin/xmessage -geometry 500x100 "Could not start kdeinit5. Check your installation." - exit 1 - fi - -+# (NixOS) We run kbuildsycoca5 before starting the user session because things -+# may be missing or moved if they have run nixos-rebuild and it may not be -+# possible for them to start Konsole to run it manually! -+@kservice@/bin/kbuildsycoca5 -+ - # finally, give the session control to the session manager - # see kdebase/ksmserver for the description of the rest of the startup sequence - # if the KDEWM environment variable has been set, then it will be used as KDE's -@@ -378,27 +337,27 @@ test -n "$KDEWM" && KDEWM="--windowmanager $KDEWM" - # lock now and do the rest of the KDE startup underneath the locker. - KSMSERVEROPTIONS="" - test -n "$dl" && KSMSERVEROPTIONS=" --lockscreen" --kwrapper5 ksmserver $KDEWM $KSMSERVEROPTIONS -+@kinit@/bin/kwrapper5 ksmserver $KDEWM $KSMSERVEROPTIONS - if test $? -eq 255; then - # Startup error - echo 'startkde: Could not start ksmserver. Check your installation.' 1>&2 - test -n "$ksplash_pid" && kill "$ksplash_pid" 2>/dev/null -- xmessage -geometry 500x100 "Could not start ksmserver. Check your installation." -+ @xmessage@/bin/xmessage -geometry 500x100 "Could not start ksmserver. Check your installation." - fi - --wait_drkonqi=`kreadconfig5 --file startkderc --group WaitForDrKonqi --key Enabled --default true` -+wait_drkonqi=`@kconfig@/bin/kreadconfig5 --file startkderc --group WaitForDrKonqi --key Enabled --default true` - - if test x"$wait_drkonqi"x = x"true"x ; then - # wait for remaining drkonqi instances with timeout (in seconds) -- wait_drkonqi_timeout=`kreadconfig5 --file startkderc --group WaitForDrKonqi --key Timeout --default 900` -+ wait_drkonqi_timeout=`@kconfig@/bin/kreadconfig5 --file startkderc --group WaitForDrKonqi --key Timeout --default 900` - wait_drkonqi_counter=0 -- while $qdbus | grep "^[^w]*org.kde.drkonqi" > /dev/null ; do -+ while @qttools@/bin/qdbus | @gnugrep@/bin/grep "^[^w]*org.kde.drkonqi" > /dev/null ; do - sleep 5 - wait_drkonqi_counter=$((wait_drkonqi_counter+5)) - if test "$wait_drkonqi_counter" -ge "$wait_drkonqi_timeout" ; then - # ask remaining drkonqis to die in a graceful way -- $qdbus | grep 'org.kde.drkonqi-' | while read address ; do -- $qdbus "$address" "/MainApplication" "quit" -+ @qttools@/bin/qdbus | @gnugrep@/bin/grep 'org.kde.drkonqi-' | while read address ; do -+ @qttools@/bin/qdbus "$address" "/MainApplication" "quit" - done - break - fi -@@ -410,21 +369,21 @@ echo 'startkde: Shutting down...' 1>&2 - test -n "$ksplash_pid" && kill "$ksplash_pid" 2>/dev/null - - # Clean up --kdeinit5_shutdown -+@kinit@/bin/kdeinit5_shutdown - - echo 'startkde: Running shutdown scripts...' 1>&2 - - # Run scripts found in <config locations>/plasma-workspace/shutdown - for prefix in `echo "$scriptpath"`; do -- for file in `ls "$prefix"/shutdown 2> /dev/null | egrep -v '(~|\.bak)$'`; do -+ for file in `ls "$prefix"/shutdown 2> /dev/null | @gnugrep@/bin/egrep -v '(~|\.bak)$'`; do - test -x "$prefix/shutdown/$file" && "$prefix/shutdown/$file" - done - done - - unset KDE_FULL_SESSION --xprop -root -remove KDE_FULL_SESSION -+@xprop@/bin/xprop -root -remove KDE_FULL_SESSION - unset KDE_SESSION_VERSION --xprop -root -remove KDE_SESSION_VERSION -+@xprop@/bin/xprop -root -remove KDE_SESSION_VERSION - unset KDE_SESSION_UID - - echo 'startkde: Done.' 1>&2 --- -2.6.2 - |