Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package kf6-kdesu for openSUSE:Leap:16.0 checked in at 2025-08-07 19:22:07 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Leap:16.0/kf6-kdesu (Old) and /work/SRC/openSUSE:Leap:16.0/.kf6-kdesu.new.1085 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kf6-kdesu" Thu Aug 7 19:22:07 2025 rev:4 rq:1292765 version:6.16.0 Changes: -------- --- /work/SRC/openSUSE:Leap:16.0/kf6-kdesu/kf6-kdesu.changes 2025-04-23 10:11:35.647605969 +0200 +++ /work/SRC/openSUSE:Leap:16.0/.kf6-kdesu.new.1085/kf6-kdesu.changes 2025-08-07 19:26:46.130689152 +0200 @@ -1,0 +2,38 @@ +Mon Jul 7 07:24:38 UTC 2025 - Christophe Marin <christo...@krop.fr> + +- Update to 6.16.0 + * New feature release + * For more details please see: + * https://kde.org/announcements/frameworks/6/6.16.0 +- Changes since 6.15.0: + * Update dependency version to 6.16.0 + * Update version to 6.16.0 + +------------------------------------------------------------------- +Mon Jun 9 20:29:36 UTC 2025 - Christophe Marin <christo...@krop.fr> + +- Update to 6.15.0 + * New feature release + * For more details please see: + * https://kde.org/announcements/frameworks/6/6.15.0 +- Changes since 6.14.0: + * Update dependency version to 6.15.0 + * Add tags file to documentation + * Add landing page for QDoc + * It compiles fine without kf_6_13 deprecated methods + * Port API documentation to QDoc syntax + * Update version to 6.15.0 +- Replace _kf6_bugfix_version usage + +------------------------------------------------------------------- +Sun May 4 19:05:20 UTC 2025 - Christophe Marin <christo...@krop.fr> + +- Update to 6.14.0 + * New feature release + * For more details please see: + * https://kde.org/announcements/frameworks/6/6.14.0 +- Changes since 6.13.0: + * Update dependency version to 6.14.0 + * Update version to 6.14.0 + +------------------------------------------------------------------- Old: ---- kdesu-6.13.0.tar.xz kdesu-6.13.0.tar.xz.sig New: ---- kdesu-6.16.0.tar.xz kdesu-6.16.0.tar.xz.sig ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ kf6-kdesu.spec ++++++ --- /var/tmp/diff_new_pack.P0QA6s/_old 2025-08-07 19:26:46.402700471 +0200 +++ /var/tmp/diff_new_pack.P0QA6s/_new 2025-08-07 19:26:46.402700471 +0200 @@ -16,16 +16,14 @@ # -%define qt6_version 6.7.0 +%define qt6_version 6.8.0 %define rname kdesu -# Full KF6 version (e.g. 6.13.0) +# Full KF6 version (e.g. 6.16.0) %{!?_kf6_version: %global _kf6_version %{version}} -# Last major and minor KF6 version (e.g. 6.0) -%{!?_kf6_bugfix_version: %define _kf6_bugfix_version %(echo %{_kf6_version} | awk -F. '{print $1"."$2}')} %bcond_without released Name: kf6-kdesu -Version: 6.13.0 +Version: 6.16.0 Release: 0 Summary: User interface for running shell commands with root privileges License: LGPL-2.1-or-later @@ -35,14 +33,13 @@ Source1: %{rname}-%{version}.tar.xz.sig Source2: frameworks.keyring %endif -BuildRequires: doxygen BuildRequires: fdupes -BuildRequires: kf6-extra-cmake-modules >= %{_kf6_bugfix_version} +BuildRequires: kf6-extra-cmake-modules >= %{_kf6_version} BuildRequires: pkgconfig -BuildRequires: cmake(KF6Config) >= %{_kf6_bugfix_version} -BuildRequires: cmake(KF6CoreAddons) >= %{_kf6_bugfix_version} -BuildRequires: cmake(KF6I18n) >= %{_kf6_bugfix_version} -BuildRequires: cmake(KF6Pty) >= %{_kf6_bugfix_version} +BuildRequires: cmake(KF6Config) >= %{_kf6_version} +BuildRequires: cmake(KF6CoreAddons) >= %{_kf6_version} +BuildRequires: cmake(KF6I18n) >= %{_kf6_version} +BuildRequires: cmake(KF6Pty) >= %{_kf6_version} BuildRequires: cmake(Qt6Core) >= %{qt6_version} BuildRequires: cmake(Qt6ToolsTools) >= %{qt6_version} BuildRequires: pkgconfig(x11) @@ -64,7 +61,7 @@ %package devel Summary: User interface for running shell commands with root privileges Requires: libKF6Su6 = %{version} -Requires: cmake(KF6Pty) >= %{_kf6_bugfix_version} +Requires: cmake(KF6Pty) >= %{_kf6_version} %description devel libkdesu provides functionality for building GUI front ends for @@ -78,7 +75,7 @@ %autosetup -p1 -n %{rname}-%{version} %build -%cmake_kf6 -DBUILD_QCH:BOOL=TRUE +%cmake_kf6 %kf6_build @@ -104,7 +101,6 @@ %{_kf6_libdir}/libKF6Su.so.* %files devel -%doc %{_kf6_qchdir}/KF6Su.* %{_kf6_cmakedir}/KF6Su/ %{_kf6_includedir}/KDESu/ %{_kf6_libdir}/libKF6Su.so ++++++ kdesu-6.13.0.tar.xz -> kdesu-6.16.0.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdesu-6.13.0/CMakeLists.txt new/kdesu-6.16.0/CMakeLists.txt --- old/kdesu-6.13.0/CMakeLists.txt 2025-04-04 16:00:15.000000000 +0200 +++ new/kdesu-6.16.0/CMakeLists.txt 2025-07-04 17:12:00.000000000 +0200 @@ -1,11 +1,11 @@ cmake_minimum_required(VERSION 3.16) -set(KF_VERSION "6.13.0") # handled by release scripts -set(KF_DEP_VERSION "6.13.0") # handled by release scripts +set(KF_VERSION "6.16.0") # handled by release scripts +set(KF_DEP_VERSION "6.16.0") # handled by release scripts project(KDESu VERSION ${KF_VERSION}) include(FeatureSummary) -find_package(ECM 6.13.0 NO_MODULE) +find_package(ECM 6.16.0 NO_MODULE) set_package_properties(ECM PROPERTIES TYPE REQUIRED DESCRIPTION "Extra CMake Modules." URL "https://commits.kde.org/extra-cmake-modules") feature_summary(WHAT REQUIRED_PACKAGES_NOT_FOUND FATAL_ON_MISSING_REQUIRED_PACKAGES) set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH}) @@ -19,10 +19,10 @@ include(ECMGenerateHeaders) include(ECMMarkNonGuiExecutable) include(ECMQtDeclareLoggingCategory) -include(ECMAddQch) +include(ECMGenerateQDoc) include(ECMDeprecationSettings) -set(REQUIRED_QT_VERSION 6.6.0) +set(REQUIRED_QT_VERSION 6.7.0) find_package(Qt6Core ${REQUIRED_QT_VERSION} REQUIRED NO_MODULE) find_package(KF6Config ${KF_DEP_VERSION} REQUIRED) @@ -48,9 +48,6 @@ message("Using su as default (set KDESU_USE_SUDO_DEFAULT=On to use sudo)") endif() -option(BUILD_QCH "Build API documentation in QCH format (for e.g. Qt Assistant, Qt Creator & KDevelop)" OFF) -add_feature_info(QCH ${BUILD_QCH} "API documentation in QCH format (for e.g. Qt Assistant, Qt Creator & KDevelop)") - set(kdesu_version_header "${CMAKE_CURRENT_BINARY_DIR}/src/kdesu_version.h") ecm_setup_version(PROJECT VARIABLE_PREFIX KDESU VERSION_HEADER "${kdesu_version_header}" @@ -58,7 +55,7 @@ SOVERSION 6) ecm_set_disabled_deprecation_versions( QT 6.9.0 - KF 6.12.0 + KF 6.13.0 ) ki18n_install(po) @@ -67,16 +64,6 @@ # create a Config.cmake and a ConfigVersion.cmake file and install them set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/KF6Su") -if (BUILD_QCH) - ecm_install_qch_export( - TARGETS KF6Su_QCH - FILE KF6SuQchTargets.cmake - DESTINATION "${CMAKECONFIG_INSTALL_DIR}" - COMPONENT Devel - ) - set(PACKAGE_INCLUDE_QCHTARGETS "include(\"\${CMAKE_CURRENT_LIST_DIR}/KF6SuQchTargets.cmake\")") -endif() - include(CMakePackageConfigHelpers) configure_package_config_file( diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdesu-6.13.0/KF6SuConfig.cmake.in new/kdesu-6.16.0/KF6SuConfig.cmake.in --- old/kdesu-6.13.0/KF6SuConfig.cmake.in 2025-04-04 16:00:15.000000000 +0200 +++ new/kdesu-6.16.0/KF6SuConfig.cmake.in 2025-07-04 17:12:00.000000000 +0200 @@ -4,4 +4,3 @@ find_dependency(KF6Pty "@KF_DEP_VERSION@") include("${CMAKE_CURRENT_LIST_DIR}/KF6SuTargets.cmake") -@PACKAGE_INCLUDE_QCHTARGETS@ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdesu-6.13.0/po/es/kdesud6.po new/kdesu-6.16.0/po/es/kdesud6.po --- old/kdesu-6.13.0/po/es/kdesud6.po 2025-04-04 16:00:15.000000000 +0200 +++ new/kdesu-6.16.0/po/es/kdesud6.po 2025-07-04 17:12:00.000000000 +0200 @@ -1,13 +1,14 @@ -# Copyright (C) YEAR This_file_is_part_of_KDE -# This file is distributed under the same license as the PACKAGE package. +# Spanish translations for kdesud6.po package. +# Copyright (C) 2014-2025 This file is copyright: +# This file is distributed under the same license as the kdesu package. # -# Eloy Cuadra <ecua...@eloihr.net>, 2014. +# SPDX-FileCopyrightText: 2014, 2025 Eloy Cuadra <ecua...@eloihr.net> msgid "" msgstr "" -"Project-Id-Version: \n" +"Project-Id-Version: kdesud6\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2022-09-23 00:41+0000\n" -"PO-Revision-Date: 2014-03-29 17:43+0100\n" +"PO-Revision-Date: 2025-05-13 21:21+0100\n" "Last-Translator: Eloy Cuadra <ecua...@eloihr.net>\n" "Language-Team: Spanish <kde-l10n...@kde.org>\n" "Language: es\n" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdesu-6.13.0/src/CMakeLists.txt new/kdesu-6.16.0/src/CMakeLists.txt --- old/kdesu-6.13.0/src/CMakeLists.txt 2025-04-04 16:00:15.000000000 +0200 +++ new/kdesu-6.16.0/src/CMakeLists.txt 2025-07-04 17:12:00.000000000 +0200 @@ -84,6 +84,9 @@ PREFIX KDESu REQUIRED_HEADERS KDESu_HEADERS ) + +ecm_generate_qdoc(KF6Su kdesu.qdocconf) + install(FILES ${KDESu_CamelCase_HEADERS} DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF}/KDESu/KDESu COMPONENT Devel) install(TARGETS KF6Su EXPORT KF6SuTargets ${KF_INSTALL_TARGETS_DEFAULT_ARGS}) @@ -109,31 +112,6 @@ DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF}/KDESu/kdesu COMPONENT Devel ) -if(BUILD_QCH) - ecm_add_qch( - KF6Su_QCH - NAME KDESu - BASE_NAME KF6Su - VERSION ${KF_VERSION} - ORG_DOMAIN org.kde - SOURCES # using only public headers, to cover only public API - ${KDESu_HEADERS} - MD_MAINPAGE "${CMAKE_SOURCE_DIR}/README.md" - LINK_QCHS - KF6Pty_QCH - INCLUDE_DIRS - ${CMAKE_CURRENT_BINARY_DIR} - BLANK_MACROS - KDESU_EXPORT - KDESU_DEPRECATED - KDESU_DEPRECATED_EXPORT - "KDESU_DEPRECATED_VERSION(x, y, t)" - TAGFILE_INSTALL_DESTINATION ${KDE_INSTALL_QTQCHDIR} - QCH_INSTALL_DESTINATION ${KDE_INSTALL_QTQCHDIR} - COMPONENT Devel - ) -endif() - ecm_qt_install_logging_categories( EXPORT KSU FILE ksu.categories diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdesu-6.13.0/src/client.h new/kdesu-6.16.0/src/client.h --- old/kdesu-6.13.0/src/client.h 2025-04-04 16:00:15.000000000 +0200 +++ new/kdesu-6.16.0/src/client.h 2025-07-04 17:12:00.000000000 +0200 @@ -20,16 +20,21 @@ namespace KDESu { -/** \class Client client.h KDESu/Client - * A client class to access kdesud, the KDE su daemon. Kdesud can assist in - * password caching in two ways: +/*! + * \class KDESu::Client + * \inmodule KDESu + * \inheaderfile KDESu/Client * - * @li For high security passwords, like for su and ssh, it executes the + * \brief A client class to access kdesud, the KDE su daemon. + * + * Kdesud can assist in password caching in two ways: + * + * For high security passwords, like for su and ssh, it executes the * password requesting command for you. It feeds the password to the * command, without ever returning it to you, the user. * See exec, setPass, delCommand. * - * @li For lower security passwords, like web and ftp passwords, it can act + * For lower security passwords, like web and ftp passwords, it can act * as a persistent storage for string variables. These variables are * returned to the user. * See setVar, delVar, delGroup. @@ -38,145 +43,171 @@ * * The class KDESu::KDEsuClient was renamed to KDESu::Client. * - * @since 6.0 + * \since 6.0 */ class KDESU_EXPORT Client { public: + /*! + * + */ Client(); ~Client(); Client(const Client &) = delete; Client &operator=(const Client &) = delete; - /** + /*! * Lets kdesud execute a command. If the daemon does not have a password * for this command, this will fail and you need to call setPass(). * - * @param command The command to execute. - * @param user The user to run the command as. - * @param options Extra options. - * @param env Extra environment variables. - * @return Zero on success, -1 on failure. + * \a command The command to execute. + * + * \a user The user to run the command as. + * + * \a options Extra options. + * + * \a env Extra environment variables. + * + * Returns Zero on success, -1 on failure. */ int exec(const QByteArray &command, const QByteArray &user, const QByteArray &options = nullptr, const QList<QByteArray> &env = QList<QByteArray>()); - /** + /*! * Wait for the last command to exit and return the exit code. - * @return Exit code of last command, -1 on failure. + * + * Returns the exit code of last command, -1 on failure. */ int exitCode(); - /** + /*! * Set root's password, lasts one session. * - * @param pass Root's password. - * @param timeout The time that a password will live. - * @return Zero on success, -1 on failure. + * \a pass Root's password. + * + * \a timeout The time that a password will live. + * + * Returns zero on success, -1 on failure. */ int setPass(const char *pass, int timeout); - /** + /*! * Set the target host (optional). */ int setHost(const QByteArray &host); - /** + /*! * Set the desired priority (optional), see StubProcess. */ int setPriority(int priority); - /** + /*! * Set the desired scheduler (optional), see StubProcess. */ int setScheduler(int scheduler); - /** + /*! * Remove a password for a user/command. - * @param command The command. - * @param user The user. - * @return zero on success, -1 on an error + * + * \a command The command. + * + * \a user The user. + * + * Return zero on success, -1 on an error */ int delCommand(const QByteArray &command, const QByteArray &user); - /** + /*! * Set a persistent variable. - * @param key The name of the variable. - * @param value Its value. - * @param timeout The timeout in seconds for this key. Zero means + * + * \a key The name of the variable. + * + * \a value Its value. + * + * \a timeout The timeout in seconds for this key. Zero means * no timeout. - * @param group Make the key part of a group. See delGroup. - * @return zero on success, -1 on failure. + * + * \a group Make the key part of a group. See delGroup. + * + * Return zero on success, -1 on failure. */ int setVar(const QByteArray &key, const QByteArray &value, int timeout = 0, const QByteArray &group = nullptr); - /** + /*! * Get a persistent variable. - * @param key The name of the variable. - * @return Its value. + * + * \a key The name of the variable. + * + * Returns its value. */ QByteArray getVar(const QByteArray &key); - /** + /*! * Gets all the keys that are membes of the given group. - * @param group the group name of the variables. - * @return a list of the keys in the group. + * + * \a group the group name of the variables. + * + * Returns a list of the keys in the group. */ QList<QByteArray> getKeys(const QByteArray &group); - /** + /*! * Returns true if the specified group exists is * cached. * - * @param group the group key - * @return true if the group is found + * \a group the group key + * + * Returns true if the group is found */ bool findGroup(const QByteArray &group); - /** + /*! * Delete a persistent variable. - * @param key The name of the variable. - * @return zero on success, -1 on failure. + * + * \a key The name of the variable. + * + * Returns zero on success, -1 on failure. */ int delVar(const QByteArray &key); - /** + /*! * Delete all persistent variables with the given key. * * A specicalized variant of delVar(QByteArray) that removes all - * subsets of the cached variables given by @p key. In order for all + * subsets of the cached variables given by \a key. In order for all * cached variables related to this key to be deleted properly, the - * value given to the @p group argument when the setVar function + * value given to the \a group argument when the setVar function * was called, must be a subset of the argument given here and the key * - * @note Simply supplying the group key here WILL not necessarily + * \note Simply supplying the group key here WILL not necessarily * work. If you only have a group key, then use delGroup instead. * - * @param special_key the name of the variable. - * @return zero on success, -1 on failure. + * \a special_key the name of the variable. + * + * Returns zero on success, -1 on failure. */ int delVars(const QByteArray &special_key); - /** + /*! * Delete all persistent variables in a group. * - * @param group the group name. See setVar. - * @return + * \a group the group name. See setVar. */ int delGroup(const QByteArray &group); - /** + /*! * Ping kdesud. This can be used for diagnostics. - * @return Zero on success, -1 on failure + * + * Returns zero on success, -1 on failure */ int ping(); - /** + /*! * Stop the daemon. */ int stopServer(); - /** + /*! * Try to start up kdesud */ int startServer(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdesu-6.13.0/src/kcookie_p.h new/kdesu-6.16.0/src/kcookie_p.h --- old/kdesu-6.13.0/src/kcookie_p.h 2025-04-04 16:00:15.000000000 +0200 +++ new/kdesu-6.16.0/src/kcookie_p.h 2025-07-04 17:12:00.000000000 +0200 @@ -18,12 +18,11 @@ { namespace KDESuPrivate { -/** +/*! * Utility class to access the authentication tokens needed to run a KDE * program (X11 cookies on X11, for instance). - * @internal + * \internal */ - class KCookie { public: @@ -33,13 +32,13 @@ KCookie(const KCookie &) = delete; KCookie &operator=(const KCookie &) = delete; - /** + /*! * Returns the X11 display. */ QByteArray display() const; #if HAVE_X11 - /** + /*! * Returns the X11 magic cookie, if available. */ QByteArray displayAuth() const; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdesu-6.13.0/src/kdesu-index.qdoc new/kdesu-6.16.0/src/kdesu-index.qdoc --- old/kdesu-6.13.0/src/kdesu-index.qdoc 1970-01-01 01:00:00.000000000 +0100 +++ new/kdesu-6.16.0/src/kdesu-index.qdoc 2025-07-04 17:12:00.000000000 +0200 @@ -0,0 +1,24 @@ +/*! + \page kdesu-index.html + \title KDESu + + User interface for running shell commands with root privileges. + + KDESU provides functionality for building GUI front ends for + (password asking) console mode programs. For example, kdesu and + kdessh use it to interface with su and ssh respectively. + + \section1 Using the Module + + \include {module-use.qdocinc} {using the c++ api} + + \section2 Building with CMake + + \include {module-use.qdocinc} {building with cmake} {KF6} {Su} {KF6::Su} + + \section1 API Reference + + \list + \li \l{KDESu C++ Classes} + \endlist +*/ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdesu-6.13.0/src/kdesu.qdoc new/kdesu-6.16.0/src/kdesu.qdoc --- old/kdesu-6.13.0/src/kdesu.qdoc 1970-01-01 01:00:00.000000000 +0100 +++ new/kdesu-6.16.0/src/kdesu.qdoc 2025-07-04 17:12:00.000000000 +0200 @@ -0,0 +1,13 @@ +/*! + \module KDESu + \title KDESu C++ Classes + \ingroup modules + \cmakepackage KF6 + \cmakecomponent Su + + \brief User interface for running shell commands with root privileges. + + KDESU provides functionality for building GUI front ends for + (password asking) console mode programs. For example, kdesu and + kdessh use it to interface with su and ssh respectively. +*/ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdesu-6.13.0/src/kdesu.qdocconf new/kdesu-6.16.0/src/kdesu.qdocconf --- old/kdesu-6.13.0/src/kdesu.qdocconf 1970-01-01 01:00:00.000000000 +0100 +++ new/kdesu-6.16.0/src/kdesu.qdocconf 2025-07-04 17:12:00.000000000 +0200 @@ -0,0 +1,36 @@ +include($KDE_DOCS/global/qt-module-defaults.qdocconf) + +project = KDESu +description = Additions to Qt Core + +documentationinheaders = true + +headerdirs += . +sourcedirs += . + +excludedirs = kdesud + +outputformats = HTML + +navigation.landingpage = "KDESu" + +depends += \ + kde \ + qtcore \ + qtgui + +qhp.projects = KDESu + +qhp.KDESu.file = kdesu.qhp +qhp.KDESu.namespace = org.kde.kdesu.$QT_VERSION_TAG +qhp.KDESu.virtualFolder = kdesu +qhp.KDESu.indexTitle = KDESu +qhp.KDESu.indexRoot = + +qhp.KDESu.subprojects = classes +qhp.KDESu.subprojects.classes.title = C++ Classes +qhp.KDESu.subprojects.classes.indexTitle = KDESu C++ Classes +qhp.KDESu.subprojects.classes.selectors = class fake:headerfile +qhp.KDESu.subprojects.classes.sortPages = true + +tagfile = kdesu.tags diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdesu-6.13.0/src/kdesu_stub.c new/kdesu-6.16.0/src/kdesu_stub.c --- old/kdesu-6.13.0/src/kdesu_stub.c 2025-04-04 16:00:15.000000000 +0200 +++ new/kdesu-6.16.0/src/kdesu_stub.c 2025-07-04 17:12:00.000000000 +0200 @@ -51,7 +51,7 @@ #include <sched.h> #endif -/** +/*! * Params sent by the peer. */ @@ -84,7 +84,7 @@ #define P_APP_STARTUP_ID 9 #define P_LAST 10 -/** +/*! * Safe malloc functions. */ char *xmalloc(size_t size) @@ -107,7 +107,7 @@ exit(1); } -/** +/*! * Solaris does not have a setenv()... */ int xsetenv(const char *name, const char *value) @@ -122,7 +122,7 @@ return putenv(s); /* yes: no free()! */ } -/** +/*! * Safe strdup and strip newline */ char *xstrdup(char *src) @@ -136,7 +136,7 @@ return dst; } -/** +/*! * Split comma separated list. */ char **xstrsep(char *str) @@ -183,7 +183,7 @@ *out = 0; } -/** +/*! * The main program */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdesu-6.13.0/src/kdesud/handler.h new/kdesu-6.16.0/src/kdesud/handler.h --- old/kdesu-6.13.0/src/kdesud/handler.h 2025-04-04 16:00:15.000000000 +0200 +++ new/kdesu-6.16.0/src/kdesud/handler.h 2025-07-04 17:12:00.000000000 +0200 @@ -12,7 +12,7 @@ #include "secure.h" #include <QByteArray> -/** +/*! * A ConnectionHandler handles a client. It is called from the main program * loop whenever there is data to read from a corresponding socket. * It keeps reading data until a newline is read. Then, a command is parsed @@ -28,7 +28,7 @@ ConnectionHandler(const ConnectionHandler &) = delete; ConnectionHandler &operator=(const ConnectionHandler &) = delete; - /** Handle incoming data. */ + /*! Handle incoming data. */ int handle(); /* Send back exit code. */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdesu-6.13.0/src/kdesud/kdesud.cpp new/kdesu-6.16.0/src/kdesud/kdesud.cpp --- old/kdesu-6.13.0/src/kdesud/kdesud.cpp 2025-04-04 16:00:15.000000000 +0200 +++ new/kdesu-6.16.0/src/kdesud/kdesud.cpp 2025-07-04 17:12:00.000000000 +0200 @@ -215,7 +215,7 @@ write(pipeOfDeath[1], &c, 1); } -/** +/*! * Creates an AF_UNIX socket in socket resource, mode 0600. */ @@ -334,7 +334,7 @@ return r == 0; } -/** +/*! * Main program */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdesu-6.13.0/src/kdesud/lexer.h new/kdesu-6.16.0/src/kdesud/lexer.h --- old/kdesu-6.13.0/src/kdesud/lexer.h 2025-04-04 16:00:15.000000000 +0200 +++ new/kdesu-6.16.0/src/kdesud/lexer.h 2025-07-04 17:12:00.000000000 +0200 @@ -9,7 +9,7 @@ #include <QByteArray> -/** +/*! * This is a lexer for the kdesud protocol. */ @@ -22,10 +22,10 @@ Lexer(const Lexer &) = delete; Lexer &operator=(const Lexer &) = delete; - /** Read next token. */ + /*! Read next token. */ int lex(); - /** Return the token's value. */ + /*! Return the token's value. */ QByteArray &lval(); enum Tokens { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdesu-6.13.0/src/kdesud/repo.h new/kdesu-6.16.0/src/kdesud/repo.h --- old/kdesu-6.13.0/src/kdesud/repo.h 2025-04-04 16:00:15.000000000 +0200 +++ new/kdesu-6.16.0/src/kdesud/repo.h 2025-07-04 17:12:00.000000000 +0200 @@ -10,7 +10,7 @@ #include <QByteArray> #include <QMap> -/** +/*! * Used internally. */ struct Data_entry { @@ -19,7 +19,7 @@ unsigned int timeout; }; -/** +/*! * String repository. * * This class implements a string repository with expiration. @@ -30,28 +30,28 @@ Repository(); ~Repository(); - /** Remove data elements which are expired. */ + /*! Remove data elements which are expired. */ int expire(); - /** Add a data element */ + /*! Add a data element */ void add(const QByteArray &key, Data_entry &data); - /** Delete a data element. */ + /*! Delete a data element. */ int remove(const QByteArray &key); - /** Delete all data entries having the given group. */ + /*! Delete all data entries having the given group. */ int removeGroup(const QByteArray &group); - /** Delete all data entries based on key. */ + /*! Delete all data entries based on key. */ int removeSpecialKey(const QByteArray &key); - /** Checks for the existence of the specified group. */ + /*! Checks for the existence of the specified group. */ int hasGroup(const QByteArray &group) const; - /** Return a data value. */ + /*! Return a data value. */ QByteArray find(const QByteArray &key) const; - /** Returns the key values for the given group. */ + /*! Returns the key values for the given group. */ QByteArray findKeys(const QByteArray &group, const char *sep = "-") const; private: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdesu-6.13.0/src/kdesud/secure.cpp new/kdesu-6.16.0/src/kdesud/secure.cpp --- old/kdesu-6.13.0/src/kdesud/secure.cpp 2025-04-04 16:00:15.000000000 +0200 +++ new/kdesu-6.16.0/src/kdesud/secure.cpp 2025-07-04 17:12:00.000000000 +0200 @@ -23,7 +23,7 @@ // It would be better to fix it more globally. (Caleb Tennis) typedef unsigned ksocklen_t; -/** +/*! * Under Linux, Socket_security is supported. */ @@ -84,7 +84,7 @@ #ifdef __GNUC__ #warning SocketSecurity support for your platform not implemented/available! #endif -/** +/*! * The default version does nothing. */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdesu-6.13.0/src/kdesud/secure.h new/kdesu-6.16.0/src/kdesud/secure.h --- old/kdesu-6.13.0/src/kdesud/secure.h 2025-04-04 16:00:15.000000000 +0200 +++ new/kdesu-6.16.0/src/kdesud/secure.h 2025-07-04 17:12:00.000000000 +0200 @@ -10,7 +10,7 @@ #include <sys/socket.h> #include <sys/types.h> -/** +/*! * The Socket_security class authenticates the peer for you. It provides * the process-id, user-id and group-id plus the MD5 sum of the connected * binary. @@ -21,19 +21,19 @@ public: explicit SocketSecurity(int fd); - /** Returns the peer's process-id. */ + /*! Returns the peer's process-id. */ int peerPid() const { return pid; } - /** Returns the peer's user-id */ + /*! Returns the peer's user-id */ int peerUid() const { return uid; } - /** Returns the peer's group-id */ + /*! Returns the peer's group-id */ int peerGid() const { return gid; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdesu-6.13.0/src/ptyprocess.cpp new/kdesu-6.16.0/src/ptyprocess.cpp --- old/kdesu-6.13.0/src/ptyprocess.cpp 2025-04-04 16:00:15.000000000 +0200 +++ new/kdesu-6.16.0/src/ptyprocess.cpp 2025-07-04 17:12:00.000000000 +0200 @@ -144,7 +144,7 @@ return 0; } -/** Set additional environment variables. */ +/*! Set additional environment variables. */ void PtyProcess::setEnvironment(const QList<QByteArray> &env) { Q_D(PtyProcess); @@ -164,7 +164,7 @@ return m_pid; } -/** Returns the additional environment variables set by setEnvironment() */ +/*! Returns the additional environment variables set by setEnvironment() */ QList<QByteArray> PtyProcess::environment() const { Q_D(const PtyProcess); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdesu-6.13.0/src/ptyprocess.h new/kdesu-6.16.0/src/ptyprocess.h --- old/kdesu-6.13.0/src/ptyprocess.h 2025-04-04 16:00:15.000000000 +0200 +++ new/kdesu-6.16.0/src/ptyprocess.h 2025-07-04 17:12:00.000000000 +0200 @@ -24,167 +24,196 @@ { class PtyProcessPrivate; -/** \class PtyProcess ptyprocess.h KDESu/PtyProcess - * Synchronous communication with tty programs. +/*! + * \class KDESu::PtyProcess + * \inmodule KDESu + * \inheaderfile KDESu/PtyProcess + * + * \brief Synchronous communication with tty programs. * * PtyProcess provides synchronous communication with tty based programs. * The communications channel used is a pseudo tty (as opposed to a pipe) * This means that programs which require a terminal will work. */ - class KDESU_EXPORT PtyProcess { public: - /** Error return values for checkPidExited() */ + /*! + * Error return values for checkPidExited() + * + * \value Error No child + * \value NotExited Child hasn't exited + * \value Killed Child terminated by signal + */ enum checkPidStatus { - Error = -1, /**< No child */ - NotExited = -2, /**< Child hasn't exited */ - Killed = -3, /**< Child terminated by signal */ + Error = -1, + NotExited = -2, + Killed = -3, }; PtyProcess(); virtual ~PtyProcess(); - /** - * Forks off and execute a command. The command's standard in and output + /*! + * Forks off and execute a command. + * + * The command's standard in and output * are connected to the pseudo tty. They are accessible with readLine * and writeLine. - * @param command The command to execute. - * @param args The arguments to the command. - * @return 0 on success, -1 on error. errno might give more information then. + * + * \a command The command to execute. + * + * \a args The arguments to the command. + * + * Returns 0 on success, -1 on error. errno might give more information then. */ int exec(const QByteArray &command, const QList<QByteArray> &args); - /** - * Reads a line from the program's standard out. Depending on the @em block + /*! + * Reads a line from the program's standard out. Depending on the \a block * parameter, this call blocks until something was read. + * * Note that in some situations this function will return less than a full * line of output, but never more. Newline characters are stripped. - * @param block Block until a full line is read? - * @return The output string. + * + * \a block Block until a full line is read? + * + * Returns the output string. */ QByteArray readLine(bool block = true); - /** + /*! * Read all available output from the program's standard out. - * @param block If no output is in the buffer, should the function block + * + * \a block If no output is in the buffer, should the function block * (else it will return an empty QByteArray)? - * @return The output. + * + * Returns the output. */ QByteArray readAll(bool block = true); - /** + /*! * Writes a line of text to the program's standard in. - * @param line The text to write. - * @param addNewline Adds a '\n' to the line. + * + * \a line The text to write. + * + * \a addNewline Adds a '\n' to the line. */ void writeLine(const QByteArray &line, bool addNewline = true); - /** + /*! * Puts back a line of input. - * @param line The line to put back. - * @param addNewline Adds a '\n' to the line. + * + * \a line The line to put back. + * + * \a addNewline Adds a '\n' to the line. */ void unreadLine(const QByteArray &line, bool addNewline = true); - /** + /*! * Sets the exit string. If a line of program output matches this, * waitForChild() will terminate the program and return. */ void setExitString(const QByteArray &exit); - /** + /*! * Waits for the child to exit. See also setExitString. */ int waitForChild(); - /** + /*! * Waits until the pty has cleared the ECHO flag. This is useful * when programs write a password prompt before they disable ECHO. * Disabling it might flush any input that was written. */ int waitSlave(); - /** + /*! * Enables/disables local echo on the pseudo tty. */ int enableLocalEcho(bool enable = true); - /** + /*! * Enables/disables terminal output. Relevant only to some subclasses. */ void setTerminal(bool terminal); - /** + /*! * Overwrites the password as soon as it is used. Relevant only to * some subclasses. */ void setErase(bool erase); - /** + /*! * Set additinal environment variables. */ void setEnvironment(const QList<QByteArray> &env); - /** + /*! * Returns the filedescriptor of the process. */ int fd() const; - /** + /*! * Returns the pid of the process. */ int pid() const; /* - ** This is a collection of static functions that can be - ** used for process control inside kdesu. I'd suggest - ** against using this publicly. There are probably - ** nicer Qt based ways to do what you want. - */ - - /** - ** Wait @p ms milliseconds (ie. 1/10th of a second is 100ms), - ** using @p fd as a filedescriptor to wait on. Returns - ** select(2)'s result, which is -1 on error, 0 on timeout, - ** or positive if there is data on one of the selected fd's. - ** - ** @p ms must be in the range 0..999 (i.e. the maximum wait - ** duration is 999ms, almost one second). - */ + * This is a collection of static functions that can be + * used for process control inside kdesu. I'd suggest + * against using this publicly. There are probably + * nicer Qt based ways to do what you want. + */ + + /*! + * Wait \a ms milliseconds (ie. 1/10th of a second is 100ms), + * using \a fd as a filedescriptor to wait on. + * + * Returns + * select(2)'s result, which is -1 on error, 0 on timeout, + * or positive if there is data on one of the selected fd's. + * + * \a ms must be in the range 0..999 (i.e. the maximum wait + * duration is 999ms, almost one second). + */ static int waitMS(int fd, int ms); - /** - ** Basic check for the existence of @p pid. - ** Returns true iff @p pid is an extant process, - ** (one you could kill - see man kill(2) for signal 0). - */ + /*! + * Basic check for the existence of \a pid. + * + * Returns true iff \a pid is an extant process, + * (one you could kill - see man kill(2) for signal 0). + */ static bool checkPid(pid_t pid); - /** - ** Check process exit status for process @p pid. - ** If child @p pid has exited, return its exit status, - ** (which may be zero). - ** On error (no child, no exit), return -1. - ** If child @p has not exited, return -2. - */ + /*! + * Check process exit status for process \a pid. + * + * If child \a pid has exited, return its exit status, + * (which may be zero). + * + * On error (no child, no exit), return -1. + * + * If child \a has not exited, return -2. + */ static int checkPidExited(pid_t pid); protected: KDESU_NO_EXPORT explicit PtyProcess(PtyProcessPrivate &dd); - /** Standard hack to add virtual methods in a BC way. Unused. */ + /* Standard hack to add virtual methods in a BC way. Unused. */ virtual void virtual_hook(int id, void *data); QList<QByteArray> environment() const; // KF6 TODO: move to PtyProcessPrivate - bool m_erase; /**< @see setErase() */ - bool m_terminal; /**< Indicates running in a terminal, causes additional + bool m_erase; + bool m_terminal; /* Indicates running in a terminal, causes additional newlines to be printed after output. Set to @c false - in constructor. @see setTerminal() */ - int m_pid; /**< PID of child process */ - QByteArray m_command; /**< Unused */ - QByteArray m_exitString; /**< String to scan for in output that indicates child has exited. */ + in constructors */ + int m_pid; /* PID of child process */ + QByteArray m_command; /* Unused */ + QByteArray m_exitString; /* String to scan for in output that indicates child has exited. */ private: KDESU_NO_EXPORT int init(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdesu-6.13.0/src/sshprocess.h new/kdesu-6.16.0/src/sshprocess.h --- old/kdesu-6.13.0/src/sshprocess.h 2025-04-04 16:00:15.000000000 +0200 +++ new/kdesu-6.16.0/src/sshprocess.h 2025-07-04 17:12:00.000000000 +0200 @@ -16,53 +16,72 @@ { class SshProcessPrivate; -/** \class SshProcess sshprocess.h KDESu/SshProcess - * Executes a remote command, using ssh. +/*! + * \class KDESu::SshProcess + * \inmodule KDESu + * \inheaderfile KDESu/SshProcess + * + * \brief Executes a remote command, using ssh. */ - class KDESU_EXPORT SshProcess : public StubProcess { public: + /*! + * \value SshNotFound + * \value SshNeedsPassword + * \value SshIncorrectPassword + */ enum Errors { SshNotFound = 1, SshNeedsPassword, SshIncorrectPassword, }; + /*! + * + */ explicit SshProcess(const QByteArray &host = QByteArray(), const QByteArray &user = QByteArray(), const QByteArray &command = QByteArray()); ~SshProcess() override; - /** + /*! * Sets the target host. */ void setHost(const QByteArray &host); - /** + /*! * Sets the location of the remote stub. */ void setStub(const QByteArray &stub); - /** + // TODO The return doc is so obviously wrong that the C code needs to be checked. + /*! * Checks if the current user\@host needs a password. - * @return The prompt for the password if a password is required. A null - * string otherwise. * - * @todo The return doc is so obviously wrong that the C code needs to be checked. + * Returns the prompt for the password if a password is required. A null + * string otherwise. */ int checkNeedPassword(); - /** + /*! * Checks if the stub is installed and if the password is correct. - * @return Zero if everything is correct, nonzero otherwise. + * + * Returns zero if everything is correct, nonzero otherwise. */ int checkInstall(const char *password); - /** + /*! * Executes the command. */ int exec(const char *password, int check = 0); + /*! + * + */ QByteArray prompt() const; + + /*! + * + */ QByteArray error() const; protected: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdesu-6.13.0/src/stubprocess.h new/kdesu-6.16.0/src/stubprocess.h --- old/kdesu-6.13.0/src/stubprocess.h 2025-04-04 16:00:15.000000000 +0200 +++ new/kdesu-6.16.0/src/stubprocess.h 2025-07-04 17:12:00.000000000 +0200 @@ -23,50 +23,59 @@ } class StubProcessPrivate; -/** \class StubProcess stubprocess.h KDESu/StubProcess - * Chat with kdesu_stub. +/*! + * \class KDESu::StubProcess + * \inmodule KDESu + * \inheaderfile KDESu/StubProcess + * + * \brief Chat with kdesu_stub. * * StubProcess extends PtyProcess with functionality to chat with kdesu_stub. */ - class KDESU_EXPORT StubProcess : public PtyProcess { public: - /** + /*! * Different schedulers. SchedNormal is the normal Unix timesharing * scheduler, while SchedRealtime is a POSIX.1b realtime scheduler. + * + * \value SchedNormal + * \value SchedRealtime */ enum Scheduler { SchedNormal, SchedRealtime, }; + /*! + * + */ StubProcess(); ~StubProcess() override; - /** + /*! * Set the command. */ void setCommand(const QByteArray &command); - /** + /*! * Set the target user. */ void setUser(const QByteArray &user); - /** + /*! * Set to "X only mode": Sycoca is not built and kdeinit is not launched. */ void setXOnly(bool xonly); - /** + /*! * Set the priority of the process. The priority value must be between 0 * and 100, 0 being the lowest priority. This value is mapped to the * scheduler and system dependent priority range of the OS. */ void setPriority(int prio); - /** + /*! * Set the scheduler type. */ void setScheduler(int sched); @@ -74,18 +83,18 @@ protected: void virtual_hook(int id, void *data) override; - /** + /*! * Exchange all parameters with kdesu_stub. */ int converseStub(int check); - /** + /*! * This virtual function can be overloaded when special behavior is * desired. By default, it returns the value returned by KCookie. */ virtual QByteArray display(); - /** + /*! * See display. */ virtual QByteArray displayAuth(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kdesu-6.13.0/src/suprocess.h new/kdesu-6.16.0/src/suprocess.h --- old/kdesu-6.13.0/src/suprocess.h 2025-04-04 16:00:15.000000000 +0200 +++ new/kdesu-6.16.0/src/suprocess.h 2025-07-04 17:12:00.000000000 +0200 @@ -16,21 +16,34 @@ { class SuProcessPrivate; -/** \class SuProcess suprocess.h KDESu/SuProcess - * Executes a command under elevated privileges, using su. +/*! + * \class KDESu::SuProcess + * \inmodule KDESu + * \inheaderfile KDESu/SuProcess + * + * \brief Executes a command under elevated privileges, using su. */ class KDESU_EXPORT SuProcess : public StubProcess { public: + /*! + * \value SuNotFound + * \value SuNotAllowed + * \value SuIncorrectPassword + */ enum Errors { SuNotFound = 1, SuNotAllowed, SuIncorrectPassword, }; - /** + /*! * Executes the command. This will wait for the command to finish. + * + * \value NoCheck + * \value Install + * \value NeedPassword */ enum checkMode { NoCheck = 0, @@ -38,29 +51,37 @@ NeedPassword = 2, }; + /*! + * + */ explicit SuProcess(const QByteArray &user = nullptr, const QByteArray &command = nullptr); ~SuProcess() override; + /*! + * + */ int exec(const char *password, int check = NoCheck); - /** + /*! * Checks if the stub is installed and the password is correct. - * @return Zero if everything is correct, nonzero otherwise. + * + * Returns zero if everything is correct, nonzero otherwise. */ int checkInstall(const char *password); - /** + /*! * Checks if a password is needed. */ int checkNeedPassword(); - /** + /*! * Checks what the default super user command is, e.g. sudo, su, etc - * @return the default super user command + * + * Returns the default super user command */ QString superUserCommand(); - /** + /*! * Checks whether or not the user's password is being asked for or another * user's password. Due to usage of systems such as sudo, even when attempting * to switch to another user one may need to enter their own password.