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