From 5cfa946cda91676101289df7f3dc417202b33448 Mon Sep 17 00:00:00 2001 From: Ian McInerney Date: Fri, 14 Feb 2025 18:06:22 +0000 Subject: [PATCH] Provide both app IDs in our linux metainfo FlatHub uses org.kicad.KiCad and everyone else uses org.kicad.kicad, which leads to two entries in the Gnome Software search list for kicad. To unify this into one entry, have each just provide the other app ID to link them together. --- resources/CMakeLists.txt | 12 ++++++++++++ .../linux/metainfo/org.kicad.kicad.metainfo.xml.in | 1 + 2 files changed, 13 insertions(+) diff --git a/resources/CMakeLists.txt b/resources/CMakeLists.txt index 24c8c701d9..09c22b25b7 100644 --- a/resources/CMakeLists.txt +++ b/resources/CMakeLists.txt @@ -5,9 +5,18 @@ if( APPLE ) #TODO Generate this at runtime as well include( ${KICAD_CMAKE_MODULE_PATH}/WritePlatformMetadata_macos.cmake ) elseif( UNIX ) + # Note: We use two different app IDs here for legacy reasons. The org.kicad.KiCad + # ID is from FlatHub Flatpaks, while the org.kicad.kicad ID is used everywhere else. + # Having these two be separate causes problems in Gnome Software because they wll + # each appear as their own app, so KiCad gets two entries. + # + # To work around this, we include a provides statement in the metainfo for the other + # app ID to link the two IDs together. + # Default values for regular builds set( KICAD_REVERSE_DOMAIN "org.kicad" ) set( KICAD_APP_NAME "${KICAD_REVERSE_DOMAIN}.kicad" ) + set( KICAD_PROVIDES_APP_ID "${KICAD_REVERSE_DOMAIN}.KiCad" ) set( KICAD_APP_PREFIX "${KICAD_REVERSE_DOMAIN}" ) set( KICAD_ICON_PREFIX "" ) set( KICAD_DESKTOP_FILE_ICON_PREFIX "" ) @@ -18,8 +27,10 @@ elseif( UNIX ) # Override default values from above if we are building a flatpak if( KICAD_BUILD_FLATPAK ) set( KICAD_APP_NAME "${KICAD_REVERSE_DOMAIN}.KiCad" ) + set( KICAD_PROVIDES_APP_ID "${KICAD_REVERSE_DOMAIN}.kicad" ) if( KICAD_BUILD_NIGHTLY_FLATPAK ) set( KICAD_APP_NAME "${KICAD_APP_NAME}.Nightly" ) + set( KICAD_PROVIDES_APP_ID "${KICAD_PROVIDES_APP_ID}.Nightly" ) endif() set( KICAD_APP_PREFIX "${KICAD_APP_NAME}" ) set( KICAD_ICON_PREFIX "${KICAD_APP_NAME}" ) @@ -37,6 +48,7 @@ elseif( UNIX ) -DBUILD_PATH=${PROJECT_BINARY_DIR} -DKICAD_CMAKE_MODULE_PATH=${PROJECT_SOURCE_DIR}/cmake -DKICAD_APP_NAME=${KICAD_APP_NAME} + -DKICAD_PROVIDES_APP_ID=${KICAD_PROVIDES_APP_ID} -P ${KICAD_CMAKE_MODULE_PATH}/BuildSteps/WritePlatformMetadata_linux.cmake DEPENDS ${KICAD_CMAKE_MODULE_PATH}/BuildSteps/WritePlatformMetadata_linux.cmake COMMENT "Configuring Linux metainfo" diff --git a/resources/linux/metainfo/org.kicad.kicad.metainfo.xml.in b/resources/linux/metainfo/org.kicad.kicad.metainfo.xml.in index 63428403e3..e648a6e92d 100644 --- a/resources/linux/metainfo/org.kicad.kicad.metainfo.xml.in +++ b/resources/linux/metainfo/org.kicad.kicad.metainfo.xml.in @@ -14,6 +14,7 @@ An EDA suite for schematic and circuit board design + @KICAD_PROVIDES_APP_ID@ kicad eeschema pcbnew