From 593ea78801fc673afe26f9c0b87677feb5ed1dca Mon Sep 17 00:00:00 2001 From: AlmAck Date: Mon, 14 May 2018 19:16:17 +0100 Subject: [PATCH] plasma 5.12.5, rebuild with debug packages --- bluedevil/PKGBUILD | 2 +- breeze-grub/PKGBUILD | 2 +- breeze-gtk/PKGBUILD | 2 +- breeze-plymouth/PKGBUILD | 2 +- breeze/PKGBUILD | 2 +- drkonqi/PKGBUILD | 4 +- kactivitymanagerd/PKGBUILD | 2 +- kde-cli-tools/PKGBUILD | 2 +- kde-gtk-config/PKGBUILD | 2 +- kdecoration/PKGBUILD | 2 +- kdeplasma-addons/PKGBUILD | 2 +- kgamma5/PKGBUILD | 2 +- khotkeys/PKGBUILD | 2 +- kinfocenter/PKGBUILD | 2 +- kmenuedit/PKGBUILD | 2 +- kscreen/PKGBUILD | 2 +- kscreenlocker/PKGBUILD | 2 +- ksshaskpass/PKGBUILD | 2 +- ksysguard/PKGBUILD | 2 +- kwallet-pam/CVE-2018-10380-1.patch | 206 +++++++++++++++++++++++ kwallet-pam/CVE-2018-10380-2.patch | 135 +++++++++++++++ kwallet-pam/PKGBUILD | 2 +- kwayland-integration/PKGBUILD | 2 +- kwin/PKGBUILD | 2 +- kwrited/PKGBUILD | 2 +- libkscreen/PKGBUILD | 2 +- libksysguard/PKGBUILD | 2 +- milou/PKGBUILD | 2 +- oxygen/PKGBUILD | 2 +- plasma-desktop/PKGBUILD | 2 +- plasma-desktop/chakra_defaultPanel.patch | 25 +++ plasma-integration/PKGBUILD | 2 +- plasma-nm/PKGBUILD | 2 +- plasma-pa/PKGBUILD | 2 +- plasma-sdk/PKGBUILD | 2 +- plasma-vault/PKGBUILD | 2 +- plasma-workspace-wallpapers/PKGBUILD | 2 +- plasma-workspace/PKGBUILD | 2 +- polkit-kde-agent/PKGBUILD | 2 +- powerdevil/PKGBUILD | 2 +- sddm-kcm/PKGBUILD | 2 +- systemsettings/PKGBUILD | 2 +- user-manager/PKGBUILD | 2 +- xdg-desktop-portal-kde/PKGBUILD | 2 +- 44 files changed, 408 insertions(+), 42 deletions(-) create mode 100644 kwallet-pam/CVE-2018-10380-1.patch create mode 100644 kwallet-pam/CVE-2018-10380-2.patch create mode 100644 plasma-desktop/chakra_defaultPanel.patch diff --git a/bluedevil/PKGBUILD b/bluedevil/PKGBUILD index 611429a74..69845c801 100644 --- a/bluedevil/PKGBUILD +++ b/bluedevil/PKGBUILD @@ -3,7 +3,7 @@ source ../plasma.conf pkgname=bluedevil pkgver=${PVersion} -pkgrel=1 +pkgrel=2 pkgdesc="Integrate the Bluetooth technology within KDE workspace and applications" arch=('x86_64') url='https://projects.kde.org/projects/kde/workspace/bluedevil' diff --git a/breeze-grub/PKGBUILD b/breeze-grub/PKGBUILD index 1b41ae272..92641d32f 100644 --- a/breeze-grub/PKGBUILD +++ b/breeze-grub/PKGBUILD @@ -4,7 +4,7 @@ source ../plasma.conf pkgname=breeze-grub pkgver=${PVersion} -pkgrel=1 +pkgrel=2 pkgdesc="Breeze theme for GRUB" arch=(any) url='https://projects.kde.org/breeze-grub' diff --git a/breeze-gtk/PKGBUILD b/breeze-gtk/PKGBUILD index 524184dac..8cf73c9bd 100644 --- a/breeze-gtk/PKGBUILD +++ b/breeze-gtk/PKGBUILD @@ -2,7 +2,7 @@ source ../plasma.conf pkgname=breeze-gtk pkgver=${PVersion} -pkgrel=1 +pkgrel=2 pkgdesc="Breeze port for GTK. (GIT version)" arch=('x86_64') url='https://quickgit.kde.org/?p=breeze-gtk.git' diff --git a/breeze-plymouth/PKGBUILD b/breeze-plymouth/PKGBUILD index 94e33a933..54a741753 100644 --- a/breeze-plymouth/PKGBUILD +++ b/breeze-plymouth/PKGBUILD @@ -2,7 +2,7 @@ source ../plasma.conf pkgname=breeze-plymouth pkgver=${PVersion} -pkgrel=1 +pkgrel=2 pkgdesc="Breeze theme for Plymouth" arch=('x86_64') url='https://projects.kde.org/projects/kdereview/breeze-plymouth' diff --git a/breeze/PKGBUILD b/breeze/PKGBUILD index 6cda8833c..0ce658a55 100644 --- a/breeze/PKGBUILD +++ b/breeze/PKGBUILD @@ -4,7 +4,7 @@ source ../plasma.conf pkgbase=breeze pkgname=('breeze' 'breeze-kde4') pkgver=${PVersion} -pkgrel=1 +pkgrel=2 pkgdesc='Artwork, styles and assets for the Breeze visual style for the Plasma Desktop' arch=('x86_64') url='https://projects.kde.org/projects/kde/workspace/breeze' diff --git a/drkonqi/PKGBUILD b/drkonqi/PKGBUILD index 6ac7acfca..9ee416c45 100644 --- a/drkonqi/PKGBUILD +++ b/drkonqi/PKGBUILD @@ -2,7 +2,7 @@ source ../plasma.conf pkgname=drkonqi pkgver=${PVersion} -pkgrel=1 +pkgrel=2 pkgdesc='The KDE crash handler' arch=(x86_64) url='https://www.kde.org/workspaces/plasmadesktop/' @@ -10,7 +10,7 @@ license=(GPL2) depends=(kidletime kxmlrpcclient gdb) makedepends=(extra-cmake-modules) groups=(plasma) -options=("debug") +options=(debug) source=("${PServer}/${pkgver}/${pkgname}-${PVersion}.tar.xz"{,.sig}) sha256sums=( $(getSum ${pkgname}) 'SKIP' ) diff --git a/kactivitymanagerd/PKGBUILD b/kactivitymanagerd/PKGBUILD index d90db3208..4b744f99b 100644 --- a/kactivitymanagerd/PKGBUILD +++ b/kactivitymanagerd/PKGBUILD @@ -2,7 +2,7 @@ source ../plasma.conf pkgname=kactivitymanagerd pkgver=${PVersion} -pkgrel=1 +pkgrel=2 pkgdesc="System service to manage user's activities and track the usage patterns" arch=('x86_64') url='https://projects.kde.org/kactivitymanagerd' diff --git a/kde-cli-tools/PKGBUILD b/kde-cli-tools/PKGBUILD index 92c3ec00a..6b1297d97 100644 --- a/kde-cli-tools/PKGBUILD +++ b/kde-cli-tools/PKGBUILD @@ -3,7 +3,7 @@ source ../plasma.conf pkgname=kde-cli-tools pkgver=${PVersion} -pkgrel=1 +pkgrel=2 pkgdesc="Tools based on KDE Frameworks 5 to better interact with the system" arch=('x86_64') url='https://projects.kde.org/projects/kde/workspace/kde-cli-tools' diff --git a/kde-gtk-config/PKGBUILD b/kde-gtk-config/PKGBUILD index 687aedfda..48e1b4670 100644 --- a/kde-gtk-config/PKGBUILD +++ b/kde-gtk-config/PKGBUILD @@ -3,7 +3,7 @@ source ../plasma.conf pkgname=kde-gtk-config pkgver=${PVersion} -pkgrel=1 +pkgrel=2 pkgdesc="GTK2 and GTK3 Configuration for KDE" arch=('x86_64') url='projects.kde.org/' diff --git a/kdecoration/PKGBUILD b/kdecoration/PKGBUILD index e7f2b5f05..3906274da 100644 --- a/kdecoration/PKGBUILD +++ b/kdecoration/PKGBUILD @@ -3,7 +3,7 @@ source ../plasma.conf pkgname=kdecoration pkgver=${PVersion} -pkgrel=1 +pkgrel=2 pkgdesc="Plugin based library to create window decorations" arch=('x86_64') url='https://projects.kde.org/projects/kde/workspace/kdecoration' diff --git a/kdeplasma-addons/PKGBUILD b/kdeplasma-addons/PKGBUILD index 25d0cc859..b7cecfa3f 100644 --- a/kdeplasma-addons/PKGBUILD +++ b/kdeplasma-addons/PKGBUILD @@ -3,7 +3,7 @@ source ../plasma.conf pkgname=kdeplasma-addons pkgver=${PVersion} -pkgrel=1 +pkgrel=2 pkgdesc='A series of addons to enhance your Plasma 5 experience' arch=('x86_64') url='https://projects.kde.org/projects/kde/workspace/kdeplasma-addons' diff --git a/kgamma5/PKGBUILD b/kgamma5/PKGBUILD index 46815bf18..babc4bce7 100644 --- a/kgamma5/PKGBUILD +++ b/kgamma5/PKGBUILD @@ -3,7 +3,7 @@ source ../plasma.conf pkgname=kgamma5 _pkgname=kgamma pkgver=${PVersion} -pkgrel=1 +pkgrel=2 pkgdesc="Adjust your monitor's gamma settings" arch=(x86_64) url='https://projects.kde.org/kgamma5' diff --git a/khotkeys/PKGBUILD b/khotkeys/PKGBUILD index ab278904c..cef5a4e72 100644 --- a/khotkeys/PKGBUILD +++ b/khotkeys/PKGBUILD @@ -3,7 +3,7 @@ source ../plasma.conf pkgname=khotkeys pkgver=${PVersion} -pkgrel=1 +pkgrel=2 pkgdesc='KHotKeys' arch=('x86_64') url='https://projects.kde.org/projects/kde/workspace/khotkeys' diff --git a/kinfocenter/PKGBUILD b/kinfocenter/PKGBUILD index 23c822489..cfae82a24 100644 --- a/kinfocenter/PKGBUILD +++ b/kinfocenter/PKGBUILD @@ -3,7 +3,7 @@ source ../plasma.conf pkgname=kinfocenter pkgver=${PVersion} -pkgrel=1 +pkgrel=2 pkgdesc='KInfocenter' arch=('x86_64') url='https://projects.kde.org/projects/kde/workspace/kinfocenter' diff --git a/kmenuedit/PKGBUILD b/kmenuedit/PKGBUILD index f985957c7..d9b32aaf5 100644 --- a/kmenuedit/PKGBUILD +++ b/kmenuedit/PKGBUILD @@ -3,7 +3,7 @@ source ../plasma.conf pkgname=kmenuedit pkgver=${PVersion} -pkgrel=1 +pkgrel=2 pkgdesc='KDE menu editor' arch=('x86_64') url='https://projects.kde.org/projects/kde/workspace/kmenuedit' diff --git a/kscreen/PKGBUILD b/kscreen/PKGBUILD index 0d05dd58d..e3f1dc954 100644 --- a/kscreen/PKGBUILD +++ b/kscreen/PKGBUILD @@ -3,7 +3,7 @@ source ../plasma.conf pkgname=kscreen pkgver=${PVersion} -pkgrel=1 +pkgrel=2 pkgdesc="KDE's screen management software" arch=('x86_64') url='projects.kde.org/' diff --git a/kscreenlocker/PKGBUILD b/kscreenlocker/PKGBUILD index 212f0bda1..2e89766a0 100644 --- a/kscreenlocker/PKGBUILD +++ b/kscreenlocker/PKGBUILD @@ -2,7 +2,7 @@ source ../plasma.conf pkgname=kscreenlocker pkgver=${PVersion} -pkgrel=1 +pkgrel=2 pkgdesc='Library and components for secure lock screen architecture' arch=(x86_64) url='https://projects.kde.org/kscreenlocker' diff --git a/ksshaskpass/PKGBUILD b/ksshaskpass/PKGBUILD index c500d94b8..fb4761f63 100644 --- a/ksshaskpass/PKGBUILD +++ b/ksshaskpass/PKGBUILD @@ -4,7 +4,7 @@ source ../plasma.conf pkgname=ksshaskpass pkgver=${PVersion} -pkgrel=1 +pkgrel=2 pkgdesc="ssh-add helper that uses kwallet and kpassworddialog" arch=('x86_64') url='https://projects.kde.org/projects/kde/workspace/ksshaskpass' diff --git a/ksysguard/PKGBUILD b/ksysguard/PKGBUILD index 849534ff2..efa3857df 100644 --- a/ksysguard/PKGBUILD +++ b/ksysguard/PKGBUILD @@ -3,7 +3,7 @@ source ../plasma.conf pkgname=ksysguard pkgver=${PVersion} -pkgrel=1 +pkgrel=2 pkgdesc="KSysguard" arch=('x86_64') url='https://projects.kde.org/projects/kde/workspace/ksysguard' diff --git a/kwallet-pam/CVE-2018-10380-1.patch b/kwallet-pam/CVE-2018-10380-1.patch new file mode 100644 index 000000000..70ade02a8 --- /dev/null +++ b/kwallet-pam/CVE-2018-10380-1.patch @@ -0,0 +1,206 @@ +From 2134dec85ce19d6378d03cddfae9e5e464cb24c0 Mon Sep 17 00:00:00 2001 +From: Albert Astals Cid +Date: Tue, 1 May 2018 12:29:02 +0200 +Subject: Move salt creation to an unprivileged process + +Opening files for writing as root is very tricky since through the power +of symlinks we can get tricked to write in places we don't want to and +we don't really need to be root to create the salt file +--- + pam_kwallet.c | 121 ++++++++++++++++++++++++++++++++++------------------------ + 1 file changed, 71 insertions(+), 50 deletions(-) + +diff --git a/pam_kwallet.c b/pam_kwallet.c +index 20d9603..083c9aa 100644 +--- a/pam_kwallet.c ++++ b/pam_kwallet.c +@@ -82,7 +82,7 @@ const static char *envVar = "PAM_KWALLET_LOGIN"; + + static int argumentsParsed = -1; + +-int kwallet_hash(const char *passphrase, struct passwd *userInfo, char *key); ++int kwallet_hash(pam_handle_t *pamh, const char *passphrase, struct passwd *userInfo, char *key); + + static void parseArguments(int argc, const char **argv) + { +@@ -325,7 +325,7 @@ PAM_EXTERN int pam_sm_authenticate(pam_handle_t *pamh, int flags, int argc, cons + } + + char *key = malloc(KWALLET_PAM_KEYSIZE); +- if (!key || kwallet_hash(password, userInfo, key) != 0) { ++ if (!key || kwallet_hash(pamh, password, userInfo, key) != 0) { + free(key); + pam_syslog(pamh, LOG_ERR, "%s: Fail into creating the hash", logPrefix); + return PAM_IGNORE; +@@ -352,6 +352,26 @@ PAM_EXTERN int pam_sm_authenticate(pam_handle_t *pamh, int flags, int argc, cons + return PAM_SUCCESS; + } + ++static int drop_privileges(struct passwd *userInfo) ++{ ++ /* When dropping privileges from root, the `setgroups` call will ++ * remove any extraneous groups. If we don't call this, then ++ * even though our uid has dropped, we may still have groups ++ * that enable us to do super-user things. This will fail if we ++ * aren't root, so don't bother checking the return value, this ++ * is just done as an optimistic privilege dropping function. ++ */ ++ setgroups(0, NULL); ++ ++ //Change to the user in case we are not it yet ++ if (setgid (userInfo->pw_gid) < 0 || setuid (userInfo->pw_uid) < 0 || ++ setegid (userInfo->pw_gid) < 0 || seteuid (userInfo->pw_uid) < 0) { ++ return -1; ++ } ++ ++ return 0; ++} ++ + static void execute_kwallet(pam_handle_t *pamh, struct passwd *userInfo, int toWalletPipe[2], int envSocket) + { + //In the child pam_syslog does not work, using syslog directly +@@ -366,18 +386,8 @@ static void execute_kwallet(pam_handle_t *pamh, struct passwd *userInfo, int toW + //This is the side of the pipe PAM will send the hash to + close (toWalletPipe[1]); + +- /* When dropping privileges from root, the `setgroups` call will +- * remove any extraneous groups. If we don't call this, then +- * even though our uid has dropped, we may still have groups +- * that enable us to do super-user things. This will fail if we +- * aren't root, so don't bother checking the return value, this +- * is just done as an optimistic privilege dropping function. +- */ +- setgroups(0, NULL); +- + //Change to the user in case we are not it yet +- if (setgid (userInfo->pw_gid) < 0 || setuid (userInfo->pw_uid) < 0 || +- setegid (userInfo->pw_gid) < 0 || seteuid (userInfo->pw_uid) < 0) { ++ if (drop_privileges(userInfo) < 0) { + syslog(LOG_ERR, "%s: could not set gid/uid/euid/egit for kwalletd", logPrefix); + goto cleanup; + } +@@ -619,7 +629,7 @@ PAM_EXTERN int pam_sm_chauthtok(pam_handle_t *pamh, int flags, int argc, const c + return PAM_SUCCESS; + } + +-int mkpath(char *path, struct passwd *userInfo) ++static int mkpath(char *path) + { + struct stat sb; + char *slash; +@@ -639,10 +649,6 @@ int mkpath(char *path, struct passwd *userInfo) + errno != EEXIST)) { + syslog(LOG_ERR, "%s: Couldn't create directory: %s because: %d-%s", logPrefix, path, errno, strerror(errno)); + return (-1); +- } else { +- if (chown(path, userInfo->pw_uid, userInfo->pw_gid) == -1) { +- syslog(LOG_INFO, "%s: Couldn't change ownership of: %s", logPrefix, path); +- } + } + } else if (!S_ISDIR(sb.st_mode)) { + return (-1); +@@ -654,34 +660,49 @@ int mkpath(char *path, struct passwd *userInfo) + return (0); + } + +-static char* createNewSalt(const char *path, struct passwd *userInfo) ++static void createNewSalt(pam_handle_t *pamh, const char *path, struct passwd *userInfo) + { +- unlink(path);//in case the file already exists ++ const int pid = fork(); ++ if (pid == -1) { ++ pam_syslog(pamh, LOG_ERR, "%s: Couldn't fork to create salt file", logPrefix); ++ } else if (pid == 0) { ++ // Child process ++ if (drop_privileges(userInfo) < 0) { ++ syslog(LOG_ERR, "%s: could not set gid/uid/euid/egit for salt file creation", logPrefix); ++ exit(-1); ++ } + +- char *dir = strdup(path); +- dir[strlen(dir) - 14] = '\0';//remove kdewallet.salt +- mkpath(dir, userInfo);//create the path in case it does not exists +- free(dir); ++ unlink(path);//in case the file already exists + +- char *salt = gcry_random_bytes(KWALLET_PAM_SALTSIZE, GCRY_STRONG_RANDOM); +- FILE *fd = fopen(path, "w"); ++ char *dir = strdup(path); ++ dir[strlen(dir) - 14] = '\0';//remove kdewallet.salt ++ mkpath(dir); //create the path in case it does not exists ++ free(dir); + +- //If the file can't be created +- if (fd == NULL) { +- syslog(LOG_ERR, "%s: Couldn't open file: %s because: %d-%s", logPrefix, path, errno, strerror(errno)); +- return NULL; +- } ++ char *salt = gcry_random_bytes(KWALLET_PAM_SALTSIZE, GCRY_STRONG_RANDOM); ++ FILE *fd = fopen(path, "w"); + +- fwrite(salt, KWALLET_PAM_SALTSIZE, 1, fd); +- fclose(fd); ++ //If the file can't be created ++ if (fd == NULL) { ++ syslog(LOG_ERR, "%s: Couldn't open file: %s because: %d-%s", logPrefix, path, errno, strerror(errno)); ++ exit(-2); ++ } + +- if (chown(path, userInfo->pw_uid, userInfo->pw_gid) == -1) { +- syslog(LOG_ERR, "%s: Couldn't change ownership of the created salt file", logPrefix); +- } ++ fwrite(salt, KWALLET_PAM_SALTSIZE, 1, fd); ++ fclose(fd); + +- return salt; ++ exit(0); // success ++ } else { ++ // pam process, just wait for child to finish ++ int status; ++ waitpid(pid, &status, 0); ++ if (status != 0) { ++ pam_syslog(pamh, LOG_ERR, "%s: Couldn't create salt file", logPrefix); ++ } ++ } + } +-int kwallet_hash(const char *passphrase, struct passwd *userInfo, char *key) ++ ++int kwallet_hash(pam_handle_t *pamh, const char *passphrase, struct passwd *userInfo, char *key) + { + if (!gcry_check_version("1.5.0")) { + syslog(LOG_ERR, "%s-kwalletd: libcrypt version is too old", logPrefix); +@@ -700,19 +721,19 @@ int kwallet_hash(const char *passphrase, struct passwd *userInfo, char *key) + struct stat info; + char *salt = NULL; + if (stat(path, &info) != 0 || info.st_size == 0) { +- salt = createNewSalt(path, userInfo); +- } else { +- FILE *fd = fopen(path, "r"); +- if (fd == NULL) { +- syslog(LOG_ERR, "%s: Couldn't open file: %s because: %d-%s", logPrefix, path, errno, strerror(errno)); +- free(path); +- return 1; +- } +- salt = (char*) malloc(KWALLET_PAM_SALTSIZE); +- memset(salt, '\0', KWALLET_PAM_SALTSIZE); +- fread(salt, KWALLET_PAM_SALTSIZE, 1, fd); +- fclose(fd); ++ createNewSalt(pamh, path, userInfo); + } ++ ++ FILE *fd = fopen(path, "r"); ++ if (fd == NULL) { ++ syslog(LOG_ERR, "%s: Couldn't open file: %s because: %d-%s", logPrefix, path, errno, strerror(errno)); ++ free(path); ++ return 1; ++ } ++ salt = (char*) malloc(KWALLET_PAM_SALTSIZE); ++ memset(salt, '\0', KWALLET_PAM_SALTSIZE); ++ fread(salt, KWALLET_PAM_SALTSIZE, 1, fd); ++ fclose(fd); + free(path); + + if (salt == NULL) { +-- +cgit v0.11.2 + diff --git a/kwallet-pam/CVE-2018-10380-2.patch b/kwallet-pam/CVE-2018-10380-2.patch new file mode 100644 index 000000000..2f88e0c3c --- /dev/null +++ b/kwallet-pam/CVE-2018-10380-2.patch @@ -0,0 +1,135 @@ +From 01d4143fda5bddb6dca37b23304dc239a5fb38b5 Mon Sep 17 00:00:00 2001 +From: Albert Astals Cid +Date: Tue, 1 May 2018 12:32:24 +0200 +Subject: Move socket creation to unprivileged codepath + +We don't need to be creating the socket as root, and doing so, +specially having a chown is problematic security wise. +--- + pam_kwallet.c | 77 ++++++++++++++++++++++++++++------------------------------- + 1 file changed, 36 insertions(+), 41 deletions(-) + +diff --git a/pam_kwallet.c b/pam_kwallet.c +index 083c9aa..b9c984a 100644 +--- a/pam_kwallet.c ++++ b/pam_kwallet.c +@@ -372,13 +372,13 @@ static int drop_privileges(struct passwd *userInfo) + return 0; + } + +-static void execute_kwallet(pam_handle_t *pamh, struct passwd *userInfo, int toWalletPipe[2], int envSocket) ++static void execute_kwallet(pam_handle_t *pamh, struct passwd *userInfo, int toWalletPipe[2], char *fullSocket) + { + //In the child pam_syslog does not work, using syslog directly + int x = 2; + //Close fd that are not of interest of kwallet + for (; x < 64; ++x) { +- if (x != toWalletPipe[0] && x != envSocket) { ++ if (x != toWalletPipe[0]) { + close (x); + } + } +@@ -392,6 +392,39 @@ static void execute_kwallet(pam_handle_t *pamh, struct passwd *userInfo, int toW + goto cleanup; + } + ++ int envSocket; ++ if ((envSocket = socket(AF_UNIX, SOCK_STREAM, 0)) == -1) { ++ pam_syslog(pamh, LOG_ERR, "%s: couldn't create socket", logPrefix); ++ return; ++ } ++ ++ struct sockaddr_un local; ++ local.sun_family = AF_UNIX; ++ ++ if (strlen(fullSocket) > sizeof(local.sun_path)) { ++ pam_syslog(pamh, LOG_ERR, "%s: socket path %s too long to open", ++ logPrefix, fullSocket); ++ free(fullSocket); ++ return; ++ } ++ strcpy(local.sun_path, fullSocket); ++ free(fullSocket); ++ fullSocket = NULL; ++ unlink(local.sun_path);//Just in case it exists from a previous login ++ ++ pam_syslog(pamh, LOG_INFO, "%s: final socket path: %s", logPrefix, local.sun_path); ++ ++ size_t len = strlen(local.sun_path) + sizeof(local.sun_family); ++ if (bind(envSocket, (struct sockaddr *)&local, len) == -1) { ++ pam_syslog(pamh, LOG_INFO, "%s-kwalletd: Couldn't bind to local file\n", logPrefix); ++ return; ++ } ++ ++ if (listen(envSocket, 5) == -1) { ++ pam_syslog(pamh, LOG_INFO, "%s-kwalletd: Couldn't listen in socket\n", logPrefix); ++ return; ++ } ++ + // Fork twice to daemonize kwallet + setsid(); + pid_t pid = fork(); +@@ -452,12 +485,6 @@ static void start_kwallet(pam_handle_t *pamh, struct passwd *userInfo, const cha + pam_syslog(pamh, LOG_ERR, "%s: Couldn't create pipes", logPrefix); + } + +- int envSocket; +- if ((envSocket = socket(AF_UNIX, SOCK_STREAM, 0)) == -1) { +- pam_syslog(pamh, LOG_ERR, "%s: couldn't create socket", logPrefix); +- return; +- } +- + #ifdef KWALLET5 + const char *socketPrefix = "kwallet5"; + #else +@@ -493,38 +520,6 @@ static void start_kwallet(pam_handle_t *pamh, struct passwd *userInfo, const cha + return; + } + +- struct sockaddr_un local; +- local.sun_family = AF_UNIX; +- +- if (strlen(fullSocket) > sizeof(local.sun_path)) { +- pam_syslog(pamh, LOG_ERR, "%s: socket path %s too long to open", +- logPrefix, fullSocket); +- free(fullSocket); +- return; +- } +- strcpy(local.sun_path, fullSocket); +- free(fullSocket); +- fullSocket = NULL; +- unlink(local.sun_path);//Just in case it exists from a previous login +- +- pam_syslog(pamh, LOG_INFO, "%s: final socket path: %s", logPrefix, local.sun_path); +- +- size_t len = strlen(local.sun_path) + sizeof(local.sun_family); +- if (bind(envSocket, (struct sockaddr *)&local, len) == -1) { +- pam_syslog(pamh, LOG_INFO, "%s-kwalletd: Couldn't bind to local file\n", logPrefix); +- return; +- } +- +- if (listen(envSocket, 5) == -1) { +- pam_syslog(pamh, LOG_INFO, "%s-kwalletd: Couldn't listen in socket\n", logPrefix); +- return; +- } +- +- if (chown(local.sun_path, userInfo->pw_uid, userInfo->pw_gid) == -1) { +- pam_syslog(pamh, LOG_INFO, "%s: Couldn't change ownership of the socket", logPrefix); +- return; +- } +- + pid_t pid; + int status; + switch (pid = fork ()) { +@@ -534,7 +529,7 @@ static void start_kwallet(pam_handle_t *pamh, struct passwd *userInfo, const cha + + //Child fork, will contain kwalletd + case 0: +- execute_kwallet(pamh, userInfo, toWalletPipe, envSocket); ++ execute_kwallet(pamh, userInfo, toWalletPipe, fullSocket); + /* Should never be reached */ + break; + +-- +cgit v0.11.2 + diff --git a/kwallet-pam/PKGBUILD b/kwallet-pam/PKGBUILD index 11c29b00f..e9a81b71a 100644 --- a/kwallet-pam/PKGBUILD +++ b/kwallet-pam/PKGBUILD @@ -2,7 +2,7 @@ source ../plasma.conf pkgname=kwallet-pam pkgver=${PVersion} -pkgrel=2 +pkgrel=3 pkgdesc='KWallet PAM integration' arch=(x86_64) url='https://projects.kde.org/kwallet-pam' diff --git a/kwayland-integration/PKGBUILD b/kwayland-integration/PKGBUILD index 4a713f453..6d76cebf4 100644 --- a/kwayland-integration/PKGBUILD +++ b/kwayland-integration/PKGBUILD @@ -2,7 +2,7 @@ source ../plasma.conf pkgname=kwayland-integration pkgver=${PVersion} -pkgrel=1 +pkgrel=2 pkgdesc='Provides integration plugins for various KDE frameworks for the wayland windowing system' arch=(x86_64) url='https://projects.kde.org/projects/kde/workspace/kwayland-integration' diff --git a/kwin/PKGBUILD b/kwin/PKGBUILD index 719db7de4..c3db57e36 100644 --- a/kwin/PKGBUILD +++ b/kwin/PKGBUILD @@ -3,7 +3,7 @@ source ../plasma.conf pkgname=kwin pkgver=${PSubVersion} -pkgrel=1 +pkgrel=2 pkgdesc='KDE Window manager' arch=('x86_64') url='https://projects.kde.org/projects/kde/workspace/kwin' diff --git a/kwrited/PKGBUILD b/kwrited/PKGBUILD index 5949cfa8d..547c2afc2 100644 --- a/kwrited/PKGBUILD +++ b/kwrited/PKGBUILD @@ -3,7 +3,7 @@ source ../plasma.conf pkgname=kwrited pkgver=${PVersion} -pkgrel=1 +pkgrel=2 pkgdesc='Kwrited' arch=('x86_64') url='https://projects.kde.org/projects/kde/workspace/kwrited' diff --git a/libkscreen/PKGBUILD b/libkscreen/PKGBUILD index 7fe05d2e4..139842f17 100644 --- a/libkscreen/PKGBUILD +++ b/libkscreen/PKGBUILD @@ -3,7 +3,7 @@ source ../plasma.conf pkgname=libkscreen pkgver=${PVersion} -pkgrel=1 +pkgrel=2 pkgdesc='KDE screen management software' arch=('x86_64') url='https://projects.kde.org/projects/extragear/libs/libkscreen' diff --git a/libksysguard/PKGBUILD b/libksysguard/PKGBUILD index d3bc6a741..c0d2af385 100644 --- a/libksysguard/PKGBUILD +++ b/libksysguard/PKGBUILD @@ -3,7 +3,7 @@ source ../plasma.conf pkgname=libksysguard pkgver=${PVersion} -pkgrel=1 +pkgrel=2 pkgdesc="KSysguard library" arch=('x86_64') url='https://projects.kde.org/projects/kde/workspace/libksysguard' diff --git a/milou/PKGBUILD b/milou/PKGBUILD index f3f5f8922..50202ed6d 100644 --- a/milou/PKGBUILD +++ b/milou/PKGBUILD @@ -3,7 +3,7 @@ source ../plasma.conf pkgname=milou pkgver=${PVersion} -pkgrel=1 +pkgrel=2 pkgdesc="A dedicated search application built on top of Baloo" arch=('x86_64') url='https://projects.kde.org/projects/kde/workspace/milou/' diff --git a/oxygen/PKGBUILD b/oxygen/PKGBUILD index d9f2f0f2c..d11603417 100644 --- a/oxygen/PKGBUILD +++ b/oxygen/PKGBUILD @@ -4,7 +4,7 @@ source ../plasma.conf pkgbase=oxygen pkgname=('oxygen' 'oxygen-cursors' 'oxygen-kde4') pkgver=${PVersion} -pkgrel=1 +pkgrel=2 pkgdesc="KDE Oxygen style" arch=('x86_64') url='https://projects.kde.org/projects/kde/workspace/oxygen' diff --git a/plasma-desktop/PKGBUILD b/plasma-desktop/PKGBUILD index ed72f8e07..0f2676135 100644 --- a/plasma-desktop/PKGBUILD +++ b/plasma-desktop/PKGBUILD @@ -3,7 +3,7 @@ source ../plasma.conf pkgname=plasma-desktop pkgver=${PVersion} -pkgrel=1 +pkgrel=2 pkgdesc='KDE Plasma Desktop' arch=('x86_64') url='https://www.kde.org/workspaces/plasmadesktop/' diff --git a/plasma-desktop/chakra_defaultPanel.patch b/plasma-desktop/chakra_defaultPanel.patch new file mode 100644 index 000000000..b942b3e2a --- /dev/null +++ b/plasma-desktop/chakra_defaultPanel.patch @@ -0,0 +1,25 @@ +From 1bcb3a48203276839d78ec3ee512ee41056fd15a Mon Sep 17 00:00:00 2001 +From: BrLi +Date: Sun, 4 Dec 2016 00:06:48 +0800 +Subject: [PATCH] default panel layout.js: change taskmanager to icontasks + +--- + layout-templates/org.kde.plasma.desktop.defaultPanel/contents/layout.js | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/layout-templates/org.kde.plasma.desktop.defaultPanel/contents/layout.js b/layout-templates/org.kde.plasma.desktop.defaultPanel/contents/layout.js +index fc3d493..7492b99 100644 +--- a/layout-templates/org.kde.plasma.desktop.defaultPanel/contents/layout.js ++++ b/layout-templates/org.kde.plasma.desktop.defaultPanel/contents/layout.js +@@ -33,7 +33,7 @@ kickoff.writeConfig("global", "Alt+F1") + + //panel.addWidget("org.kde.plasma.showActivityManager") + panel.addWidget("org.kde.plasma.pager") +-panel.addWidget("org.kde.plasma.taskmanager") ++panel.addWidget("org.kde.plasma.icontasks") + + /* Next up is determining whether to add the Input Method Panel + * widget to the panel or not. This is done based on whether +-- +2.10.0 + diff --git a/plasma-integration/PKGBUILD b/plasma-integration/PKGBUILD index 82d216094..742c7f55f 100644 --- a/plasma-integration/PKGBUILD +++ b/plasma-integration/PKGBUILD @@ -2,7 +2,7 @@ source ../plasma.conf pkgname=plasma-integration pkgver=${PVersion} -pkgrel=1 +pkgrel=2 pkgdesc="Qt Platform Theme integration plugins for the Plasma workspaces" arch=(x86_64) url='https://www.kde.org/workspaces/plasmadesktop/' diff --git a/plasma-nm/PKGBUILD b/plasma-nm/PKGBUILD index 9f765e666..9902eef01 100644 --- a/plasma-nm/PKGBUILD +++ b/plasma-nm/PKGBUILD @@ -3,7 +3,7 @@ source ../plasma.conf pkgname=plasma-nm pkgver=${PVersion} -pkgrel=1 +pkgrel=2 pkgdesc='Plasma applet written in QML for managing network connections' arch=('x86_64') url="https://projects.kde.org/projects/playground/network/plasma-nm" diff --git a/plasma-pa/PKGBUILD b/plasma-pa/PKGBUILD index 416df7ebf..28dbeb767 100644 --- a/plasma-pa/PKGBUILD +++ b/plasma-pa/PKGBUILD @@ -2,7 +2,7 @@ source ../plasma.conf pkgname=plasma-pa pkgver=${PVersion} -pkgrel=1 +pkgrel=2 pkgdesc='Plasma applet for audio volume management using PulseAudio' arch=(x86_64) url='https://projects.kde.org/plasma-pa' diff --git a/plasma-sdk/PKGBUILD b/plasma-sdk/PKGBUILD index 153e9d600..5e5339b61 100644 --- a/plasma-sdk/PKGBUILD +++ b/plasma-sdk/PKGBUILD @@ -2,7 +2,7 @@ source ../plasma.conf pkgname=plasma-sdk pkgver=${PVersion} -pkgrel=1 +pkgrel=2 pkgdesc='Applications useful for Plasma Development' url="https://cgit.kde.org/plasma-sdk.git/" arch=('x86_64') diff --git a/plasma-vault/PKGBUILD b/plasma-vault/PKGBUILD index 693b97226..8f1437442 100644 --- a/plasma-vault/PKGBUILD +++ b/plasma-vault/PKGBUILD @@ -2,7 +2,7 @@ source ../plasma.conf pkgname=plasma-vault pkgver=${PVersion} -pkgrel=1 +pkgrel=2 pkgdesc="Plasma applet and services for creating encrypted vaults" arch=(x86_64) url="https://www.kde.org/" diff --git a/plasma-workspace-wallpapers/PKGBUILD b/plasma-workspace-wallpapers/PKGBUILD index da10894fa..c530e7960 100644 --- a/plasma-workspace-wallpapers/PKGBUILD +++ b/plasma-workspace-wallpapers/PKGBUILD @@ -3,7 +3,7 @@ source ../plasma.conf pkgname=plasma-workspace-wallpapers pkgver=${PVersion} -pkgrel=1 +pkgrel=2 pkgdesc='Additional wallpapers for the Plasma Workspace' arch=('x86_64') url='https://projects.kde.org/projects/kde/workspace/plasma-workspace' diff --git a/plasma-workspace/PKGBUILD b/plasma-workspace/PKGBUILD index 15d56ccf6..d829fc8ea 100644 --- a/plasma-workspace/PKGBUILD +++ b/plasma-workspace/PKGBUILD @@ -4,7 +4,7 @@ source ../plasma.conf pkgbase=plasma-workspace pkgname=('plasma-workspace' 'plasma-wayland-session') pkgver=${PVersion} -pkgrel=1 +pkgrel=2 pkgdesc='KDE Plasma Workspace' arch=('x86_64') url='https://projects.kde.org/projects/kde/workspace/plasma-workspace' diff --git a/polkit-kde-agent/PKGBUILD b/polkit-kde-agent/PKGBUILD index 3d528f967..7e412ebb5 100644 --- a/polkit-kde-agent/PKGBUILD +++ b/polkit-kde-agent/PKGBUILD @@ -4,7 +4,7 @@ source ../plasma.conf pkgname=polkit-kde-agent _pkgname=${pkgname}-1 pkgver=${PVersion} -pkgrel=1 +pkgrel=2 pkgdesc='Daemon providing a polkit authentication UI for KDE' arch=('x86_64') url='https://projects.kde.org/projects/extragear/base/polkit-kde-agent-1/' diff --git a/powerdevil/PKGBUILD b/powerdevil/PKGBUILD index 1633324ce..43dd0007e 100644 --- a/powerdevil/PKGBUILD +++ b/powerdevil/PKGBUILD @@ -3,7 +3,7 @@ source ../plasma.conf pkgname=powerdevil pkgver=${PVersion} -pkgrel=1 +pkgrel=2 pkgdesc='Manages the power consumption settings of a Plasma Shell' arch=('x86_64') url='https://projects.kde.org/projects/kde/workspace/powerdevil' diff --git a/sddm-kcm/PKGBUILD b/sddm-kcm/PKGBUILD index 44d335db3..a215ce744 100644 --- a/sddm-kcm/PKGBUILD +++ b/sddm-kcm/PKGBUILD @@ -4,7 +4,7 @@ source ../plasma.conf pkgname=sddm-kcm epoch=1 pkgver=${PVersion} -pkgrel=1 +pkgrel=2 pkgdesc="SDDM configuration module for KDE" arch=('x86_64') url='https://projects.kde.org/projects/kde/workspace/sddm-kcm' diff --git a/systemsettings/PKGBUILD b/systemsettings/PKGBUILD index 0877bd4d9..8fc3eab46 100644 --- a/systemsettings/PKGBUILD +++ b/systemsettings/PKGBUILD @@ -3,7 +3,7 @@ source ../plasma.conf pkgname=systemsettings pkgver=${PVersion} -pkgrel=1 +pkgrel=2 pkgdesc='KDE system settings' arch=('x86_64') url='https://projects.kde.org/projects/kde/workspace/systemsettings' diff --git a/user-manager/PKGBUILD b/user-manager/PKGBUILD index 69975a99d..a48e395b4 100644 --- a/user-manager/PKGBUILD +++ b/user-manager/PKGBUILD @@ -4,7 +4,7 @@ source ../plasma.conf pkgname=user-manager pkgver=${PVersion} -pkgrel=1 +pkgrel=2 pkgdesc="KDE's user manager" arch=('x86_64') url='projects.kde.org/' diff --git a/xdg-desktop-portal-kde/PKGBUILD b/xdg-desktop-portal-kde/PKGBUILD index cd8c53cb9..d50c4b5c6 100644 --- a/xdg-desktop-portal-kde/PKGBUILD +++ b/xdg-desktop-portal-kde/PKGBUILD @@ -2,7 +2,7 @@ source ../plasma.conf pkgname=xdg-desktop-portal-kde pkgver=${PVersion} -pkgrel=1 +pkgrel=2 pkgdesc='A backend implementation for xdg-desktop-portal using Qt/KF5' arch=(x86_64) url='https://www.kde.org/workspaces/plasmadesktop/'