Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package kf6-kservice for openSUSE:Factory checked in at 2026-10-11 15:15:51 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/kf6-kservice (Old) and /work/SRC/openSUSE:Factory/.kf6-kservice.new.3698736 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kf6-kservice" Sun Oct 11 15:15:51 2026 rev:33 rq:1383954 version:6.31.0 Changes: -------- --- /work/SRC/openSUSE:Factory/kf6-kservice/kf6-kservice.changes 2026-09-11 18:02:51.147648718 +0200 +++ /work/SRC/openSUSE:Factory/.kf6-kservice.new.3698736/kf6-kservice.changes 2026-10-11 15:18:35.997941838 +0200 @@ -1,0 +2,13 @@ +Wed Oct 7 06:47:36 UTC 2026 - Christophe Marin <[email protected]> + +- Update to 6.31.0 + * New feature release + * For more details please see: + * https://kde.org/announcements/frameworks/6/6.31.0 +- Changes since 6.30.0: + * Update dependency version to 6.31.0 + * Use ECMInstalledLibraryCheck + * Keep the shortest inheritance level when merging duplicate offers + * Update version to 6.31.0 + +------------------------------------------------------------------- Old: ---- kservice-6.30.0.tar.xz kservice-6.30.0.tar.xz.sig New: ---- kservice-6.31.0.tar.xz kservice-6.31.0.tar.xz.sig ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ kf6-kservice.spec ++++++ --- /var/tmp/diff_new_pack.H2y3pu/_old 2026-10-11 15:18:36.984983034 +0200 +++ /var/tmp/diff_new_pack.H2y3pu/_new 2026-10-11 15:18:36.986983118 +0200 @@ -19,11 +19,11 @@ %define qt6_version 6.9.0 %define rname kservice -# Full KF6 version (e.g. 6.30.0) +# Full KF6 version (e.g. 6.31.0) %{!?_kf6_version: %global _kf6_version %{version}} %bcond_without released Name: kf6-kservice -Version: 6.30.0 +Version: 6.31.0 Release: 0 Summary: Plugin framework for desktop services License: LGPL-2.1-or-later ++++++ kservice-6.30.0.tar.xz -> kservice-6.31.0.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kservice-6.30.0/.kde-ci.yml new/kservice-6.31.0/.kde-ci.yml --- old/kservice-6.30.0/.kde-ci.yml 2026-09-04 13:40:46.000000000 +0200 +++ new/kservice-6.31.0/.kde-ci.yml 2026-10-02 15:21:29.000000000 +0200 @@ -14,3 +14,4 @@ test-before-installing: True require-passing-tests-on: ['@all'] enable-lsan: True + run-installed-library-check-on: ['@all'] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kservice-6.30.0/CMakeLists.txt new/kservice-6.31.0/CMakeLists.txt --- old/kservice-6.30.0/CMakeLists.txt 2026-09-04 13:40:46.000000000 +0200 +++ new/kservice-6.31.0/CMakeLists.txt 2026-10-02 15:21:29.000000000 +0200 @@ -1,7 +1,7 @@ -cmake_minimum_required(VERSION 3.29) +cmake_minimum_required(VERSION 3.30) -set(KF_VERSION "6.30.0") # handled by release scripts -set(KF_DEP_VERSION "6.30.0") # handled by release scripts +set(KF_VERSION "6.31.0") # handled by release scripts +set(KF_DEP_VERSION "6.31.0") # handled by release scripts project(KService VERSION ${KF_VERSION}) # Disallow in-source build @@ -11,7 +11,7 @@ # ECM setup include(FeatureSummary) -find_package(ECM 6.30.0 NO_MODULE) +find_package(ECM 6.31.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) @@ -27,6 +27,7 @@ include(ECMGenerateExportHeader) include(ECMDeprecationSettings) include(ECMGenerateQDoc) +include(ECMInstalledLibraryCheck) set(EXCLUDE_DEPRECATED_BEFORE_AND_AT 0 CACHE STRING "Control the range of deprecated API excluded from the build [default=0].") @@ -38,7 +39,7 @@ SOVERSION 6) # Dependencies -set(REQUIRED_QT_VERSION 6.9.0) +set(REQUIRED_QT_VERSION 6.10.0) find_package(Qt6 ${REQUIRED_QT_VERSION} CONFIG REQUIRED Xml) find_package(KF6Config ${KF_DEP_VERSION} CONFIG REQUIRED) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kservice-6.30.0/autotests/kmimeassociationstest.cpp new/kservice-6.31.0/autotests/kmimeassociationstest.cpp --- old/kservice-6.30.0/autotests/kmimeassociationstest.cpp 2026-09-04 13:40:46.000000000 +0200 +++ new/kservice-6.31.0/autotests/kmimeassociationstest.cpp 2026-10-02 15:21:29.000000000 +0200 @@ -25,6 +25,14 @@ using namespace Qt::StringLiterals; +// Until https://codereview.qt-project.org/c/qt/qtbase/+/765860, QMimeDatabase applied the implicit +// "text/* is a subclass of text/plain" rule from the spec only to mimetypes without any other parent. +static bool derivesDirectlyFromTextPlain(const QString &mimeName) +{ + QMimeDatabase db; + return db.mimeTypeForName(mimeName).parentMimeTypes().contains(u"text/plain"_s); +} + // We need a factory that returns the same KService::Ptr every time it's asked for a given service. // Otherwise the changes to the service's serviceTypes by KMimeAssociationsTest have no effect class FakeServiceFactory : public KServiceFactory @@ -246,6 +254,16 @@ removedApps[QStringLiteral("image/jpeg")] << QStringLiteral("firefox.desktop"); removedApps[QStringLiteral("text/html")] << QStringLiteral("gvim.desktop") << QStringLiteral("abiword.desktop"); + // shared-mime-info >= 2.5 no longer spells out that text/* types inherit text/plain, it + // relies on the implicit rule from the spec. Without that rule these two only reach the + // text/plain offers through a longer parent chain, which ranks those offers too low. + if (!derivesDirectlyFromTextPlain(u"text/x-csrc"_s)) { + preferredApps.remove(QStringLiteral("text/x-csrc")); + } + if (!derivesDirectlyFromTextPlain(u"text/x-python"_s)) { + preferredApps.remove(QStringLiteral("text/x-python")); + } + // Clean-up non-existing apps removeNonExisting(preferredApps); removeNonExisting(removedApps); @@ -402,6 +420,11 @@ void testMultipleInheritance() { + // See the comment in initTestCase(). With shared-mime-info >= 2.5, application/x-shellscript + // only declares application/x-executable, so QMimeDatabase doesn't let it reach text/plain. + if (!derivesDirectlyFromTextPlain(u"application/x-shellscript"_s)) { + QSKIP("QMimeDatabase doesn't apply the implicit text/plain inheritance rule"); + } // application/x-shellscript inherits from both text/plain and application/x-executable KService::List offers = KApplicationTrader::queryByMimeType(QStringLiteral("application/x-shellscript")); QVERIFY(offerListHasService(offers, fakeTextApplication, true)); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kservice-6.30.0/po/ca@valencia/kservice6.po new/kservice-6.31.0/po/ca@valencia/kservice6.po --- old/kservice-6.30.0/po/ca@valencia/kservice6.po 2026-09-04 13:40:46.000000000 +0200 +++ new/kservice-6.31.0/po/ca@valencia/kservice6.po 2026-10-02 15:21:29.000000000 +0200 @@ -3,10 +3,10 @@ # This file is distributed under the license LGPL version 2.1 or # version 3 or later versions approved by the membership of KDE e.V. # -# SPDX-FileCopyrightText: 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Sebastià Pla i Sanz <[email protected]> -# SPDX-FileCopyrightText: 2003, 2006, 2011, 2012, 2013, 2014, 2015, 2020, 2022 Antoni Bella Pérez <[email protected]> -# SPDX-FileCopyrightText: 2004, 2005, 2007 Albert Astals Cid <[email protected]> -# SPDX-FileCopyrightText: 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2021 Josep M. Ferrer <[email protected]> +# SPDX-FileCopyrightText: 1998-2007 Sebastià Pla i Sanz <[email protected]> +# SPDX-FileCopyrightText: 2003, 2006, 2011-2015, 2020, 2022 Antoni Bella Pérez <[email protected]> +# SPDX-FileCopyrightText: 2004-2005, 2007 Albert Astals Cid <[email protected]> +# SPDX-FileCopyrightText: 2007-2016, 2021 Josep M. Ferrer <[email protected]> # SPDX-FileCopyrightText: 2009 Robert Millan <[email protected]> # SPDX-FileCopyrightText: 2010 Orestes Mas <[email protected]> # SPDX-FileCopyrightText: 2019 Empar Montoro Martín <[email protected]> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kservice-6.30.0/po/ru/docs/kbuildsycoca6/man-kbuildsycoca6.8.docbook new/kservice-6.31.0/po/ru/docs/kbuildsycoca6/man-kbuildsycoca6.8.docbook --- old/kservice-6.30.0/po/ru/docs/kbuildsycoca6/man-kbuildsycoca6.8.docbook 1970-01-01 01:00:00.000000000 +0100 +++ new/kservice-6.31.0/po/ru/docs/kbuildsycoca6/man-kbuildsycoca6.8.docbook 2026-10-02 15:21:29.000000000 +0200 @@ -0,0 +1,284 @@ +<?xml version="1.0" ?> +<!DOCTYPE refentry PUBLIC "-//KDE//DTD DocBook XML V4.5-Based Variant V1.1//EN" "dtd/kdedbx45.dtd" [ + <!ENTITY % Russian "INCLUDE" +><!-- change language only here --> +]> + +<refentry lang="&language;"> + +<refentryinfo> +<title +>&kde-frameworks;: компонент «KService»</title> +<author +><firstname +>Darian</firstname +> <surname +>Lanx</surname +> <contrib +>Автор первой версии документации.</contrib> +<affiliation> +<address +><email +>[email protected]</email +></address> +</affiliation> +</author> +<author +><firstname +>Alex</firstname +> <surname +>Merry</surname +> <contrib +>Обновление документации для &kf5-full;.</contrib> +<affiliation> +<address +><email +>[email protected]</email +></address> +</affiliation> +</author> + +<date +>17 сентября 2015 г.</date> +<releaseinfo +>Frameworks 5.15</releaseinfo> +<productname +>KDE Frameworks</productname> + +</refentryinfo> + +<refmeta> +<refentrytitle +><command +>kbuildsycoca6</command +></refentrytitle> +<manvolnum +>8</manvolnum> +</refmeta> + +<refnamediv> +<refname +><command +>kbuildsycoca6</command +></refname> +<refpurpose +>Повторное создание кэша системной конфигурации файлов .desktop KService</refpurpose> +</refnamediv> + +<refsynopsisdiv> +<title +>Обзор</title> + +<cmdsynopsis +><command +>kbuildsycoca6</command +> <group choice="opt" rep="repeat" +><replaceable class="option" +>параметры</replaceable +></group +> </cmdsynopsis> + +</refsynopsisdiv> + + + +<refsect1> +<title +>Описание</title> + +<para +><command +>kbuildsycoca6</command +> создаёт двоичный кэш данных, хранящихся в файлах <literal role="extension" +>.desktop</literal +> и файлах <literal role="extension" +>.xml</literal +> типа &MIME;, которые каркас KService использует для поиска модулей, приложений и других служб. </para> + +<para +>Библиотека KService использует эту базу данных, чтобы эффективно предоставлять запрашиваемые сведения. </para> + +<para +>Обычно пользователям не требуется запускать это приложение напрямую; KService запустит его при необходимости, когда изменяется любой из файлов, данные которых кэшируются. </para> +</refsect1> + + + +<refsect1> +<title +>Параметры</title> +<variablelist> + +<varlistentry> +<term +><option +>--global</option +></term> +<listitem> +<para +>Игнорировать любые файлы, заданные пользователем (в <varname +>XDG_DATA_HOME</varname +>). В настоящее время поддерживается только в системах &UNIX;.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>--noincremental</option +></term> +<listitem> +<para +>Вместо использования существующего кэша и обновления только изменившихся или добавленных сведений начать с пустого кэша. Игнорируется, если задан параметр <option +>--global</option +>.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>--menutest</option +></term> +<listitem> +<para +>Проверить создание базы данных меню приложений. Кэш при этом не создаётся.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>--testmode</option +></term> +<listitem> +<para +>Ввести QStandardPaths в тестовый режим, чтобы не влиять на пользовательские данные. Предназначено только для модульного тестирования.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>--track <replaceable +>menu-id</replaceable +></option +></term> +<listitem> +<para +>Отслеживать идентификатор меню для отладки.</para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>--author</option +></term> +<listitem> +<para +>Показать сведения об авторах. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>--license</option +></term> +<listitem> +<para +>Показать сведения о лицензии. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>-h, --help</option +></term> +<listitem> +<para +>Показать краткую справку о параметрах. </para> +</listitem> +</varlistentry> + +<varlistentry> +<term +><option +>-v , --version</option +></term> +<listitem> +<para +>Показать сведения о версии. </para> +</listitem> +</varlistentry> + +</variablelist> +</refsect1> + + + +<refsect1> +<title +>Файлы</title> +<variablelist> +<varlistentry> +<term +><filename +><varname +>cachedir</varname +>/ksycoca6_[lang]_[sha1-of-dirs]</filename +></term> +<listitem> +<para +>Кэш KService, создаваемый командой <command +>kbuildsycoca6</command +>. В системах &UNIX; переменная <varname +>cachedir</varname +> обычно имеет значение <filename class="directory" +><envar +>XDG_CACHE_HOME</envar +></filename +>.</para> +</listitem> +</varlistentry> +</variablelist> +</refsect1> + + + +<refsect1> +<title +>Смотрите также</title> +<para +><citerefentry +><refentrytitle +>kded5</refentrytitle +><manvolnum +>8</manvolnum +></citerefentry +>, <citerefentry +><refentrytitle +>kdeinit5</refentrytitle +><manvolnum +>8</manvolnum +></citerefentry +> </para> +</refsect1> + + + +<refsect1> +<title +>Ошибки</title> +<para +>Используйте <ulink url="https://bugs.kde.org" +>систему отслеживания ошибок &kde;</ulink +> для отправки сообщений об ошибках.</para> +</refsect1> + +</refentry> + + + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kservice-6.30.0/po/ug/kservice6.po new/kservice-6.31.0/po/ug/kservice6.po --- old/kservice-6.30.0/po/ug/kservice6.po 2026-09-04 13:40:46.000000000 +0200 +++ new/kservice-6.31.0/po/ug/kservice6.po 2026-10-02 15:21:29.000000000 +0200 @@ -8,9 +8,9 @@ "Project-Id-Version: kdelibs4\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2025-11-17 11:49+0000\n" -"PO-Revision-Date: 2026-05-31 19:42-0400\n" +"PO-Revision-Date: 2026-09-23 06:56+0900\n" "Last-Translator: Abduqadir Abliz <[email protected]>\n" -"Language-Team: Uyghur Computer Science Association <[email protected]>\n" +"Language-Team: Uyghur <[email protected]>\n" "Language: ug\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -32,7 +32,7 @@ #, kde-format msgctxt "application name" msgid "KBuildSycoca" -msgstr "KBuildSycoca" +msgstr "" #: kbuildsycoca/kbuildsycoca_main.cpp:92 #, kde-format @@ -50,7 +50,7 @@ #, kde-format msgctxt "@info:credit" msgid "David Faure" -msgstr "David Faure" +msgstr "" #: kbuildsycoca/kbuildsycoca_main.cpp:95 kbuildsycoca/kbuildsycoca_main.cpp:96 #, kde-format @@ -62,7 +62,7 @@ #, kde-format msgctxt "@info:credit" msgid "Waldo Bastian" -msgstr "Waldo Bastian" +msgstr "" #: kbuildsycoca/kbuildsycoca_main.cpp:102 #, kde-format diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kservice-6.30.0/src/CMakeLists.txt new/kservice-6.31.0/src/CMakeLists.txt --- old/kservice-6.30.0/src/CMakeLists.txt 2026-09-04 13:40:46.000000000 +0200 +++ new/kservice-6.31.0/src/CMakeLists.txt 2026-10-02 15:21:29.000000000 +0200 @@ -89,7 +89,7 @@ qt_add_resources(KF6Service "fallback-menu" PREFIX "/org.kde.kservice" FILES fallback-applications.menu OUTPUT_TARGETS KService_RESOURCE_TARGETS) -ecm_generate_headers(KService_HEADERS +ecm_generate_headers(KService_CamelCase_HEADERS HEADER_NAMES KSycoca KSycocaEntry @@ -97,7 +97,7 @@ RELATIVE sycoca REQUIRED_HEADERS KService_HEADERS ) -ecm_generate_headers(KService_HEADERS +ecm_generate_headers(KService_CamelCase_HEADERS HEADER_NAMES KApplicationTrader KService @@ -114,6 +114,7 @@ install(FILES "${CMAKE_CURRENT_BINARY_DIR}/kservice_export.h" ${KService_HEADERS} + ${KService_CamelCase_HEADERS} ${CMAKE_CURRENT_SOURCE_DIR}/services/kserviceconversioncheck_p.h # helper header included by kservice.h DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF}/KService COMPONENT Devel ) @@ -124,4 +125,17 @@ DESTINATION ${KDE_INSTALL_LOGGINGCATEGORIESDIR} ) +ecm_add_installed_library_check(KF6Service + PACKAGE_NAME "KF6Service" + PACKAGE_TARGET_NAMESPACE "KF6::" +) + +ecm_installed_library_check_include_strings(KF6Service + HEADERS ${KService_CamelCase_HEADERS} +) + +ecm_installed_library_check_version_preprocessor_macros(KF6Service + PREFIX KSERVICE +) + add_subdirectory(kbuildsycoca) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kservice-6.30.0/src/sycoca/kmimeassociations.cpp new/kservice-6.31.0/src/sycoca/kmimeassociations.cpp --- old/kservice-6.30.0/src/sycoca/kmimeassociations.cpp 2026-09-04 13:40:46.000000000 +0200 +++ new/kservice-6.31.0/src/sycoca/kmimeassociations.cpp 2026-10-02 15:21:29.000000000 +0200 @@ -158,12 +158,15 @@ offerSet.insert(service); } else { const int initPref = offer.preference(); + const int level = offer.mimeTypeInheritanceLevel(); // qDebug() << service->entryPath() << "already in" << serviceType; - // This happens when mimeapps.list mentions a service (to make it preferred) - // Update initialPreference to std::max(existing offer, new offer) + // This happens when mimeapps.list mentions a service (to make it preferred), + // and when the service is reachable via several parent MIME types. + // Keep the highest preference and the shortest inheritance distance. for (KServiceOffer &servOffer : data.offers) { if (servOffer.service() == service) { // we can compare KService::Ptrs because they are from the memory hash servOffer.setPreference(std::max(servOffer.preference(), initPref)); + servOffer.setMimeTypeInheritanceLevel(std::min(servOffer.mimeTypeInheritanceLevel(), level)); } } }
