flatpak: Allow dual installation of app bundles

Part of https://gitlab.gnome.org/GNOME/Initiatives/issues/1.
Allows for the installation of development bundles alongside
stable versions.

Related to https://gitlab.gnome.org/GNOME/gnome-calendar/issues/285
This commit is contained in:
Christopher Davis
2019-09-30 12:04:08 -03:00
committed by Georges Basile Stavracas Neto
parent 151c47a8b3
commit 0d6b2327e0
13 changed files with 92 additions and 45 deletions
+10 -6
View File
@@ -1,9 +1,13 @@
info = 'org.gnome.Calendar.appdata.xml'
i18n.merge_file(
info,
input: 'org.gnome.Calendar.appdata.xml.in',
output: info,
appdata_conf = configuration_data()
appdata_conf.set('appid', application_id)
appdata = i18n.merge_file(
'appdata',
input: configure_file(
input: files('org.gnome.Calendar.appdata.xml.in.in'),
output: 'org.gnome.Calendar.appdata.xml.in',
configuration: appdata_conf
),
output: '@0@.appdata.xml'.format(application_id),
po_dir: po_dir,
install: true,
install_dir: join_paths(calendar_datadir, 'metainfo')
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright 2014 Igor Gnatenko <ignatenko@src.gnome.org> -->
<component type="desktop">
<id>org.gnome.Calendar.desktop</id>
<id>@appid@</id>
<metadata_license>CC0-1.0</metadata_license>
<project_license>GPL-3.0-or-later</project_license>
<name>Calendar</name>
+20 -3
View File
@@ -1,4 +1,21 @@
install_subdir(
'hicolor',
install_dir: join_paths(calendar_datadir, 'icons')
symbolic_icondir = join_paths('hicolor', 'symbolic', 'apps')
install_data(
join_paths(symbolic_icondir, 'org.gnome.Calendar-symbolic.svg'),
install_dir: join_paths(
calendar_datadir,
join_paths('icons', symbolic_icondir)
),
rename: '@0@-symbolic.svg'.format(application_id)
)
icondir = join_paths('hicolor', 'scalable', 'apps')
install_data(
join_paths(icondir, 'org.gnome.Calendar.svg'),
install_dir: join_paths(
calendar_datadir,
join_paths('icons', icondir)
),
rename: '@0@.svg'.format(application_id)
)
+22 -14
View File
@@ -18,22 +18,30 @@ enums_xml = gnome.mkenums(
# Desktop files
# Note: This name is registered in gcal-weather-service.c.
desktop = 'org.gnome.Calendar.desktop'
i18n.merge_file(
desktop,
type: 'desktop',
input: desktop + '.in',
output: desktop,
po_dir: po_dir,
install: true,
desktop_conf = configuration_data()
desktop_conf.set('icon', application_id)
desktop = i18n.merge_file(
type: 'desktop',
input: configure_file(
input: files('org.gnome.Calendar.desktop.in.in'),
output: 'org.gnome.Calendar.desktop.in',
configuration: desktop_conf
),
output: '@0@.desktop'.format(application_id),
po_dir: po_dir,
install: true,
install_dir: join_paths(calendar_datadir, 'applications')
)
# GNOME Shell search provider
install_data(
'org.gnome.Calendar.search-provider.ini',
install_dir: join_paths(calendar_datadir, 'gnome-shell', 'search-providers')
search_provider_conf = configuration_data()
search_provider_conf.set('appid', application_id)
search_provider_conf.set('profile', profile)
configure_file(
configuration: search_provider_conf,
input: files('org.gnome.Calendar.search-provider.ini.in'),
install_dir: join_paths(calendar_datadir, 'gnome-shell', 'search-providers'),
output: '@0@.search-provider.ini'.format(application_id)
)
# GSettings schema
@@ -63,13 +71,13 @@ compiled_schemas = custom_target(
# DBus service files
service_conf = configuration_data()
service_conf.set('appid', application_id)
service_conf.set('bindir', calendar_bindir)
service = 'org.gnome.Calendar.service'
configure_file(
input: service + '.in',
output: service,
output: '@0@.service'.format(application_id),
install: true,
install_dir: join_paths(calendar_datadir, 'dbus-1', 'services'),
configuration: service_conf
@@ -3,7 +3,7 @@ Name=Calendar
Comment=Access and manage your calendars
Exec=gnome-calendar
# Translators: Do NOT translate or transliterate this text (this is an icon file name)!
Icon=org.gnome.Calendar
Icon=@icon@
Terminal=false
Type=Application
StartupNotify=true
@@ -1,6 +0,0 @@
[Shell Search Provider]
Icon=gnome-calendar
DesktopId=org.gnome.Calendar.desktop
BusName=org.gnome.Calendar
ObjectPath=/org/gnome/Calendar/SearchProvider
Version=2
@@ -0,0 +1,6 @@
[Shell Search Provider]
Icon=gnome-calendar
DesktopId=@appid@.desktop
BusName=@appid@
ObjectPath=/org/gnome/Calendar@profile@/SearchProvider
Version=2
+1 -1
View File
@@ -1,3 +1,3 @@
[D-BUS Service]
Name=org.gnome.Calendar
Name=@appid@
Exec=@bindir@/gnome-calendar --gapplication-service