diff --git a/CMakeLists.txt b/CMakeLists.txt index 718f2bfb..8268aee9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -124,7 +124,7 @@ set_package_properties(KWinDBusInterface PROPERTIES DESCRIPTION "KWin DBus inter find_package(KF6 ${KF6_MIN_VERSION} REQUIRED COMPONENTS Auth) set_package_properties(KF6::AuthCore PROPERTIES TYPE REQUIRED - PURPOSE "Allows Plasma Mobile to configure Waydroid" + PURPOSE "Allows SHIFT to configure Waydroid" ) if(PLASMA_MOBILE_LOCAL_KAUTH_INSTALL) diff --git a/kcms/mobileshell/kcm_mobileshell.json b/kcms/mobileshell/kcm_mobileshell.json index 6f918a28..5a4ec2bc 100644 --- a/kcms/mobileshell/kcm_mobileshell.json +++ b/kcms/mobileshell/kcm_mobileshell.json @@ -128,7 +128,7 @@ "Name[uk]": "Оболонка", "Name[zh_CN]": "外壳程序", "Name[zh_TW]": "殼層", - "Website": "https://plasma-mobile.org/" + "Website": "https://invent.kde.org/marcoa/shift-shell" }, "X-KDE-Keywords": "system,shell,panel", "X-KDE-Keywords[ar]": "نظام,صدفة,لوحة", diff --git a/kcms/navigation/kcm_navigation.json b/kcms/navigation/kcm_navigation.json index f02d3533..41812a0d 100644 --- a/kcms/navigation/kcm_navigation.json +++ b/kcms/navigation/kcm_navigation.json @@ -91,7 +91,7 @@ "Name[uk]": "Навігація", "Name[zh_CN]": "导航", "Name[zh_TW]": "導覽", - "Website": "https://plasma-mobile.org/" + "Website": "https://invent.kde.org/marcoa/shift-shell" }, "X-KDE-Keywords": "system,shell,panel,navigation,gesture", "X-KDE-Keywords[ar]": "نظام,صدفة,لوحة,التنقل,تنقل,إيماء", diff --git a/kcms/waydroidintegration/kcm_waydroidintegration.json b/kcms/waydroidintegration/kcm_waydroidintegration.json index e876cf96..3ea2eb93 100644 --- a/kcms/waydroidintegration/kcm_waydroidintegration.json +++ b/kcms/waydroidintegration/kcm_waydroidintegration.json @@ -94,7 +94,7 @@ "Name[uk]": "Інтеграція з Waydroid", "Name[zh_CN]": "Waydroid 集成", "Name[zh_TW]": "Waydroid 整合", - "Website": "https://plasma-mobile.org/" + "Website": "https://invent.kde.org/marcoa/shift-shell" }, "X-KDE-Keywords": "waydroid", "X-KDE-Keywords[ar]": "ويدرويد", diff --git a/kded/autodetectapn/CMakeLists.txt b/kded/autodetectapn/CMakeLists.txt index 9f654d1c..eaf5c486 100644 --- a/kded/autodetectapn/CMakeLists.txt +++ b/kded/autodetectapn/CMakeLists.txt @@ -25,6 +25,6 @@ ecm_qt_declare_logging_category(kded_plasma_mobile_autodetect_apn HEADER autodetectapn_debug.h IDENTIFIER AUTODETECTAPN_LOG CATEGORY_NAME org.kde.plasma.autodetectapn - DESCRIPTION "Plasma Mobile Autodetect APNs" + DESCRIPTION "SHIFT Autodetect APNs" EXPORT PLASMA_MOBILE ) diff --git a/kded/autodetectapn/kded_plasma_mobile_autodetectapn.json b/kded/autodetectapn/kded_plasma_mobile_autodetectapn.json index 18d16d62..aef2956b 100644 --- a/kded/autodetectapn/kded_plasma_mobile_autodetectapn.json +++ b/kded/autodetectapn/kded_plasma_mobile_autodetectapn.json @@ -1,69 +1,7 @@ { "KPlugin": { - "Description": "Autodetect cellular APNs in Plasma Mobile", - "Description[ar]": "التعرف الآليّ لأسماء نقاط الوصول لبلازما الجوال", - "Description[ca@valencia]": "Detecta automàticament els APN mòbils en Plasma Mobile", - "Description[ca]": "Detecta automàticament els APN mòbils en el Plasma Mobile", - "Description[cs]": "Automatická detekce mobilních APN v Plasma Mobile", - "Description[en_GB]": "Autodetect cellular APNs in Plasma Mobile", - "Description[eo]": "Aŭtomate detekti ĉelretajn APN en Plasma-Mobile", - "Description[es]": "Detección automática de APN móviles en Plasma Mobile", - "Description[eu]": "Plasma Mugikorrean APN mugikorren hautemate automatikoa", - "Description[fi]": "Havaitse matkapuhelin-APN:t Plasma Mobilessa", - "Description[fr]": "Détecter automatiquement les APN cellulaires dans Plasma Mobile", - "Description[gl]": "Detectar APN celulares automaticamente en Plasma Mobile.", - "Description[he]": "זיהוי אוטומטי של נקודות הגישה לרשת הסלולרית (APN) בפלזמה לניידים", - "Description[hu]": "APN-ek automatikus észlelése a Plasma Mobile-ban", - "Description[ia]": "Auto releva APNs de cellular in Plasma Mobile", - "Description[is]": "Finna sjálfkrafa APN-heiti í Plasma Mobile", - "Description[it]": "Rileva automaticamente gli APN cellulari in Plasma Mobile", - "Description[ka]": "ფიჭური APN-ების ავტომატური დადგენა Plasma Mobile-ში", - "Description[ko]": "Plasma 모바일에서 셀룰러 APN 자동 감지", - "Description[lv]": "„Plasma Mobile“ automātiski noteikt mobilos APN", - "Description[nl]": "Cellulaire APN's automatisch in Plasma Mobile detecteren", - "Description[nn]": "Oppdag automatisk mobil-APN-ar i Plasma Mobile", - "Description[pl]": "Sam wykryj komórkowe APNy na Przenośnej Plazmie", - "Description[pt_BR]": "Detecção automática de APNs do celular no Plasma Mobile", - "Description[ru]": "Автоопределение сотовых APN в Plasma Mobile", - "Description[sa]": "प्लाज्मा मोबाईले सेलुलर एपीएन् ऑटोडिटेक्ट् कुर्वन्तु", - "Description[sl]": "Samodejno zaznavaj celične APN v Plasma Mobile", - "Description[sv]": "Detektera automatiskt mobilaccesspunkter i Plasma mobil", - "Description[tr]": "Plasma Cep’teki erişim noktası adlarını kendiliğinden algılayın", - "Description[uk]": "Автоматично виявляти стільникові точки доступу у Мобільній Плазмі", - "Description[zh_CN]": "在 Plasma Mobile 中自动检测蜂窝网络 APN", - "Description[zh_TW]": "在 Plasma 行動中自動偵測行動 APN", - "Name": "Plasma Mobile Autodetect APNs", - "Name[ar]": "التعرف الآليّ لأسماء نقاط الوصول", - "Name[ca@valencia]": "Detecció automàtica dels APN de Plasma Mobile", - "Name[ca]": "Detecció automàtica dels APN del Plasma Mobile", - "Name[cs]": "Automatická detekce APN v Plasma Mobile", - "Name[en_GB]": "Plasma Mobile Autodetect APNs", - "Name[eo]": "Atomata APN-Ekkono de Plasma-Mobile", - "Name[es]": "Detección automática de APN en Plasma Mobile", - "Name[eu]": "Plasma Mugikorrean APN hautemate automatikoa", - "Name[fi]": "Plasma Mobilen automaattinen APN-havaitseminen", - "Name[fr]": "Auto-détection des APN de Plasma Mobile", - "Name[gl]": "Detección de APN", - "Name[he]": "זיהוי נקודות גישה אוטומטית בפלזמה לניידים", - "Name[hu]": "Plasma Mobile automatikus APN észlelés", - "Name[ia]": "Autorelevation de APNs de Plasma Mobile", - "Name[is]": "Plasma Mobile greina sjálfkrafa APN-heiti", - "Name[it]": "Rilevamento automatico APN di Plasma Mobile", - "Name[ka]": "Plasma Mobile-ის APN-ების ავტომატური დადგენა", - "Name[ko]": "Plasma 모바일 APN 자동 감지", - "Name[lv]": "„Plasma Mobila“ automātiski noteikt APN", - "Name[nl]": "Plasma Mobile automatisch APN's detecteren", - "Name[nn]": "Plasma Mobile automatisk APN-oppdaging", - "Name[pl]": "Sam wykryj APNy na Przenośnej Plazmie", - "Name[pt_BR]": "Detecção automática de APNs do Plasma Mobile", - "Name[ru]": "Автоопределение APN в Plasma Mobile", - "Name[sa]": "प्लाज्मा मोबाइल ऑटोडिटेक्ट एपीएन", - "Name[sl]": "Plasma Mobile je samodejno zaznala APN", - "Name[sv]": "Plasma mobil automatiskt detekterade åtkomstpunkter", - "Name[tr]": "Plasma Cep Erişim Noktası Adlarını Kendiliğinden Algıla", - "Name[uk]": "Автоматичне виявлення точок доступу у Мобільній Плазмі", - "Name[zh_CN]": "Plasma Mobile 自动检测 APN", - "Name[zh_TW]": "Plasma 行動自動偵測 APN" + "Description": "Autodetect cellular APNs in SHIFT", + "Name": "SHIFT Autodetect APNs" }, "OnlyShowIn": "KDE;", "X-KDE-Kded-autoload": true, diff --git a/kded/start/kded_plasma_mobile_start.json b/kded/start/kded_plasma_mobile_start.json index 66dcd388..ac74a882 100644 --- a/kded/start/kded_plasma_mobile_start.json +++ b/kded/start/kded_plasma_mobile_start.json @@ -1,75 +1,7 @@ { "KPlugin": { - "Description": "Run initial tasks for Plasma Mobile during session startup", - "Description[ar]": "شغّل مهام في بدء النظام لبلازما الجوال", - "Description[ca@valencia]": "Executa les tasques inicials de Plasma Mobile durant l'inici de sessió", - "Description[ca]": "Executa les tasques inicials del Plasma Mobile durant l'inici de sessió", - "Description[cs]": "Spustit počáteční úkoly pro Plasma Mobile během spouštění relace", - "Description[de]": "Ausführen der ersten Aufgaben für Plasma Mobile während des Starts der Sitzung", - "Description[en_GB]": "Run initial tasks for Plasma Mobile during session startup", - "Description[eo]": "Ruli komencajn taskojn por Plasma Mobile dum seanc-komenco", - "Description[es]": "Ejecutar tareas iniciales para Plasma Mobile durante el inicio de sesión", - "Description[eu]": "Exekutatu Plasma Mugikorrerako hasierako atazak saioa abiatu bitartean", - "Description[fi]": "Suorita Plasma Mobilen alustustehtävät istuntoa käynnistettäessä", - "Description[fr]": "Lancer les tâches initiales pour la session Plasma Mobile durant le démarrage de session", - "Description[gl]": "Executar as tarefas iniciais de Plasma Mobile durante o inicio da sesión.", - "Description[he]": "הרצת משימות התחלתיות לפלזמה לניידים במהלך ההפעלה", - "Description[hu]": "A Plasma Mobile kezdeti feladatainak futtatása a munkamenet indítása során", - "Description[ia]": "Executa cargas initial per Plasma Mobile durante initio de session", - "Description[is]": "Keyra upphafsverk fyrir Plasma Mobile við ræsingu", - "Description[it]": "Esegui le attività iniziali per Plasma Mobile durante l'avvio della sessione", - "Description[ka]": "Plasma Mobile-ის საწყისი ამოცანების შესრულება სესიის გაშვებისას", - "Description[ko]": "세션 시작 시 Plasma 모바일에 필요한 초기 작업 실행", - "Description[lv]": "Palaižot sesiju, automātiski palaist „Plasma Mobile“ sākotnējos uzdevumus", - "Description[nl]": "Initiële taken voor Plasma Mobile uitvoeren tijdens opstarten van sessie", - "Description[nn]": "Køyr oppgåver for Plasma Mobile ved øktstart", - "Description[pa]": "ਸ਼ੈਸ਼ਨ ਸ਼ਰੂ ਹੋਣ ਦੇ ਦੌਰਾਨ ਪਲਾਜ਼ਮਾ ਮੋਬਾਈਲ ਲਈ ਸ਼ੁਰੂਆਤੀ ਕੰਮ ਚਲਾਓ", - "Description[pl]": "Wykonaj początkowe zadania dla Przenośnej Plazmy podczas rozpoczynania posiedzenia", - "Description[pt_BR]": "Executa tarefas iniciais para o Plasma Mobile durante a inicialização da sessão", - "Description[ru]": "Запуск начальных задач для Plasma Mobile при запуске сеанса", - "Description[sa]": "सत्रप्रारम्भस्य समये Plasma Mobile कृते प्रारम्भिककार्यं चालयन्तु", - "Description[sk]": "Spustenie počiatočných úloh pre Plasma Mobile počas spustenia sedenia", - "Description[sl]": "Poženi zagonske naloge za Plasma Mobile ob začetku seje", - "Description[sv]": "Utför initieringsuppgifter för Plasma mobil under sessionsstart", - "Description[tr]": "Oturum başlangıcı sırasında Plasma Cep başlangıç görevlerini çalıştırın", - "Description[uk]": "Запуск початкових завдань для Plasma Mobile під час запуску сеансу", - "Description[zh_CN]": "会话启动时为 Plasma Mobile 运行初始任务", - "Description[zh_TW]": "在工作階段啟動時為 Plasma 行動執行初始工作", - "Name": "Plasma Mobile Start", - "Name[ar]": "بدء بلازما الجوال", - "Name[ca@valencia]": "Inici de Plasma Mobile", - "Name[ca]": "Inici del Plasma Mobile", - "Name[cs]": "Spuštění Plasma Mobile", - "Name[de]": "Plasma Mobile Start", - "Name[en_GB]": "Plasma Mobile Start", - "Name[eo]": "Plasma-Mobile Komenco", - "Name[es]": "Inicio de Plasma Mobile", - "Name[eu]": "Plasma Mugikorraren abioa", - "Name[fi]": "Plasma Mobilen käynnistys", - "Name[fr]": "Démarrage de Plasma Mobile", - "Name[gl]": "Inicio de Plasma Mobile", - "Name[he]": "התחלת פלזמה לניידים", - "Name[hu]": "Plasma Mobile Start", - "Name[ia]": "Initio de Plasma Mobile", - "Name[is]": "Plasma Mobile Start", - "Name[it]": "Avvio di Plasma Mobile", - "Name[ka]": "Plasma Mobile-ის გაშვება", - "Name[ko]": "Plasma 모바일 시작", - "Name[lv]": "„Plasma Mobile“ palaišana", - "Name[nl]": "Begin van Plasma Mobile", - "Name[nn]": "Plasma Mobile-start", - "Name[pa]": "ਪਲਾਜ਼ਮਾ ਮੋਬਾਈਲ ਸ਼ੁਰੂ", - "Name[pl]": "Początki w Przenośnej Plazmie", - "Name[pt_BR]": "Início do Plasma Mobile", - "Name[ru]": "Запуск Plasma Mobile", - "Name[sa]": "प्लाज्मा मोबाईल प्रारम्भ", - "Name[sk]": "Štart Plasma Mobile", - "Name[sl]": "Zagon Plasma Mobile", - "Name[sv]": "Plasma mobil start", - "Name[tr]": "Plasma Cep Başlangıç", - "Name[uk]": "Запуск Plasma Mobile", - "Name[zh_CN]": "Plasma Mobile 启动程序", - "Name[zh_TW]": "Plasma 行動起始畫面" + "Description": "Run initial tasks for SHIFT during session startup", + "Name": "SHIFT Start" }, "X-KDE-Kded-autoload": true, "X-KDE-Kded-phase": 1, diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index b6a43003..28a7da0d 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -34,4 +34,9 @@ if(BASH_EXECUTABLE) NAME shift-containment-metadata COMMAND ${BASH_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/check-shift-containment-metadata.sh ) + + add_test( + NAME shift-settings-daemon-metadata + COMMAND ${BASH_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/check-shift-settings-daemon-metadata.sh + ) endif() diff --git a/tests/check-shift-settings-daemon-metadata.sh b/tests/check-shift-settings-daemon-metadata.sh new file mode 100644 index 00000000..ae7ca8ea --- /dev/null +++ b/tests/check-shift-settings-daemon-metadata.sh @@ -0,0 +1,78 @@ +#!/usr/bin/env bash +# SPDX-FileCopyrightText: 2026 Marco Allegretti +# SPDX-License-Identifier: EUPL-1.2 + +set -euo pipefail + +repo_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" +cd "$repo_dir" + +fail() { + printf '%s\n' "$1" >&2 + exit 1 +} + +require_line() { + local file="$1" + local pattern="$2" + local message="$3" + + grep -Eq "$pattern" "$file" || fail "$message" +} + +reject_line() { + local file="$1" + local pattern="$2" + local message="$3" + + ! grep -Eq "$pattern" "$file" || fail "$message" +} + +kcm_files=( + kcms/mobileshell/kcm_mobileshell.json + kcms/navigation/kcm_navigation.json + kcms/waydroidintegration/kcm_waydroidintegration.json +) + +for metadata_file in "${kcm_files[@]}"; do + require_line "$metadata_file" '"Website": "https://invent\.kde\.org/marcoa/shift-shell"' \ + "$metadata_file must point at the Shift repository" +done + +mapfile -t all_kcm_metadata < <(find kcms -name 'kcm_*.json' | sort) +[[ "${#all_kcm_metadata[@]}" -eq 5 ]] || fail "unexpected KCM metadata file count" + +for metadata_file in "${all_kcm_metadata[@]}"; do + reject_line "$metadata_file" 'plasma-mobile\.org|bugs\.kde\.org|"Website": "https://kde\.org"' \ + "$metadata_file must not expose upstream Plasma Mobile project URLs" +done + +require_line kded/autodetectapn/kded_plasma_mobile_autodetectapn.json '"Description": "Autodetect cellular APNs in SHIFT"' \ + "APN autodetect KDED description must be branded SHIFT" +require_line kded/autodetectapn/kded_plasma_mobile_autodetectapn.json '"Name": "SHIFT Autodetect APNs"' \ + "APN autodetect KDED name must be branded SHIFT" +require_line kded/start/kded_plasma_mobile_start.json '"Description": "Run initial tasks for SHIFT during session startup"' \ + "start KDED description must be branded SHIFT" +require_line kded/start/kded_plasma_mobile_start.json '"Name": "SHIFT Start"' \ + "start KDED name must be branded SHIFT" + +for metadata_file in kded/autodetectapn/kded_plasma_mobile_autodetectapn.json kded/start/kded_plasma_mobile_start.json; do + require_line "$metadata_file" '"X-KDE-Library": "plasma-mobile"' \ + "$metadata_file must keep the existing KDED library name until a namespace migration is planned" + reject_line "$metadata_file" '"(Name|Description)\[[^]]+\]"' \ + "$metadata_file must not keep translated names or descriptions that can override the base metadata" + reject_line "$metadata_file" 'Plasma Mobile|plasma-mobile\.org|bugs\.kde\.org|"Website": "https://kde\.org"' \ + "$metadata_file must not expose upstream Plasma Mobile product metadata" +done + +require_line kded/autodetectapn/CMakeLists.txt 'DESCRIPTION "SHIFT Autodetect APNs"' \ + "APN autodetect logging category description must be branded SHIFT" +require_line CMakeLists.txt 'PURPOSE "Allows SHIFT to configure Waydroid"' \ + "KF6 Auth feature summary must be branded SHIFT" + +require_line kded/autodetectapn/CMakeLists.txt 'kcoreaddons_add_plugin\(kded_plasma_mobile_autodetect_apn' \ + "APN autodetect KDED plugin target must stay stable until a namespace migration is planned" +require_line kded/start/CMakeLists.txt 'kcoreaddons_add_plugin\(kded_plasma_mobile_start' \ + "start KDED plugin target must stay stable until a namespace migration is planned" + +printf 'shift-settings-daemon-metadata-ok\n' \ No newline at end of file