Parametrize assemble-flatpak over the flatpak ID

(solenv/bin/assemble-flatpak-desktop.sh in one place uses that parameterized
value in a sed s command replacement text, which could potentially cause syntax
errors.  But since flatpak IDs shall be formed from a restricted alphabet, that
should not cause problems in practice.  Similarly, various places across the
solenv/bin/assemble-flatpak*.sh scripts use that perameterized value in forming
pathnames, and assume that it does not contain any slahses.)

Reviewed-on: https://gerrit.libreoffice.org/c/core/+/192883
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Sarper Akdemir <sarper.akdemir@allotropia.de>
(cherry picked from commit 15007243c11363c636d74c240946237da5a866b8)
Conflicts:
	solenv/bin/assemble-flatpak-appdata.sh
	solenv/bin/assemble-flatpak-desktop.sh
	solenv/bin/assemble-flatpak.sh
	solenv/flatpak-manifest.in

Change-Id: I5b4c031acf19b04ac8b501d9d8557924747fb38b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/194174
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <stephan.bergmann@collabora.com>
This commit is contained in:
Stephan Bergmann
2025-11-19 08:18:22 +01:00
parent ad781c82b9
commit 76d85a1364
4 changed files with 28 additions and 23 deletions
+9 -8
View File
@@ -12,20 +12,21 @@
#
# Arguments:
# $1 pathname, ending in a slash, of the directory into which to put the target
# org.libreoffice.LibreOffice.appdata.xml file
# $3.appdata.xml file
# $2 "1" if a <releases> section shall be included in the target
# org.libreoffice.LibreOffice.appdata.xml file, "0" if not
# $3.appdata.xml file, "0" if not
# $3 the flatpak ID
set -e
## org.libreoffice.LibreOffice.appdata.xml is manually derived from the various
## $3.appdata.xml is manually derived from the various
## inst/share/metainfo/libreoffice-*.appdata.xml (at least recent GNOME Software
## doesn't show more than five screenshots anyway, so restrict to one each from
## the five libreoffice-*.appdata.xml: Writer, Calc, Impress, Draw, Base):
cat <<\EOF >"${1?}"org.libreoffice.LibreOffice.appdata.xml
cat <<EOF >"${1?}${3?}".appdata.xml
<?xml version="1.0" encoding="UTF-8"?>
<component type="desktop">
<id>org.libreoffice.LibreOffice</id>
<id>${3?}</id>
<metadata_license>CC0-1.0</metadata_license>
<project_license>MPL-2.0</project_license>
<name>LibreOffice</name>
@@ -41,7 +42,7 @@ cat <<\EOF >"${1?}"org.libreoffice.LibreOffice.appdata.xml
you can easily share documents with users of other popular office suites
without worrying about compatibility.</p>
</description>
<launchable type="desktop-id">org.libreoffice.LibreOffice.desktop</launchable>
<launchable type="desktop-id">${3?}.desktop</launchable>
<url type="homepage">http://www.libreoffice.org/discover/libreoffice/</url>
<url type="bugtracker">https://bugs.documentfoundation.org/</url>
<url type="donation">https://donate.libreoffice.org/</url>
@@ -83,7 +84,7 @@ EOF
if [ "${2?}" = 1 ]
then
cat <<EOF >>"${1?}"org.libreoffice.LibreOffice.appdata.xml
cat <<EOF >>"${1?}${3?}".appdata.xml
<releases>
<release
version="${LIBO_VERSION_MAJOR?}.${LIBO_VERSION_MINOR?}.${LIBO_VERSION_MICRO?}.${LIBO_VERSION_PATCH?}"
@@ -92,6 +93,6 @@ then
EOF
fi
cat <<\EOF >>"${1?}"org.libreoffice.LibreOffice.appdata.xml
cat <<\EOF >>"${1?}${3?}".appdata.xml
</component>
EOF
+10 -9
View File
@@ -14,29 +14,30 @@
# $1 pathname, ending in a slash, of the directory containing the source libreoffice-*.desktop
# files
# $2 pathname, ending in a slash, of the directory into which to put the target
# org.libreoffice.LibreOffice.*.desktop files
# $3.*.desktop files
# $3 the flatpak ID
set -e
## libreoffice-*.desktop -> org.libreoffice.LibreOffice.*.desktop:
## libreoffice-*.desktop -> $3.*.desktop:
for i in "${1?}"libreoffice-*.desktop
do
sed -e 's/^Icon=libreoffice-/Icon=org.libreoffice.LibreOffice./' "$i" \
>"${2?}"org.libreoffice.LibreOffice."${i#"${1?}"libreoffice-}"
sed -e "s/^Icon=libreoffice-/Icon=${3?}./" "$i" \
>"${2?}${3?}"."${i#"${1?}"libreoffice-}"
done
mv "${2?}"org.libreoffice.LibreOffice.startcenter.desktop "${2?}"org.libreoffice.LibreOffice.desktop
mv "${2?}${3?}".startcenter.desktop "${2?}${3?}".desktop
# Flatpak .desktop exports take precedence over system ones due to
# the order of XDG_DATA_DIRS - re-associating text/plain seems a bit much
sed -i "s/text\/plain;//" "${2?}"org.libreoffice.LibreOffice.writer.desktop
sed -i "s/text\/plain;//" "${2?}${3?}".writer.desktop
desktop-file-edit --set-key=X-Endless-Alias --set-value=libreoffice-startcenter \
--set-key=X-Flatpak-RenamedFrom --set-value='libreoffice-startcenter.desktop;' \
"${2?}"org.libreoffice.LibreOffice.desktop
"${2?}${3?}".desktop
for i in base calc draw impress math writer xsltfilter
do
desktop-file-edit --set-key=X-Endless-Alias --set-value=libreoffice-"$i" \
--set-key=X-Flatpak-RenamedFrom \
--set-value="libreoffice-$i.desktop;org.libreoffice.LibreOffice-$i.desktop;" \
"${2?}"org.libreoffice.LibreOffice."$i".desktop
--set-value="libreoffice-$i.desktop;${3?}-$i.desktop;" \
"${2?}${3?}"."$i".desktop
done
+8 -5
View File
@@ -9,7 +9,10 @@
# Assemble Flatpak app files and metadata under /app/, copying from the
# installation tree generated by 'make distro-pack-install' (at
# $PREFIXDIR):
# $PREFIXDIR).
#
# Arguments:
# $1 the flatpak ID
set -e
@@ -18,10 +21,10 @@ ln -s /app/libreoffice/program/soffice /app/bin/libreoffice
mkdir -p /app/share/applications
"${SRCDIR?}"/solenv/bin/assemble-flatpak-desktop.sh "${PREFIXDIR?}"/share/applications/ \
/app/share/applications/
/app/share/applications/ "${1?}"
## icons/hicolor/*/apps/libreoffice-* ->
## icons/hicolor/*/apps/org.libreoffice.LibreOffice-*:
## icons/hicolor/*/apps/$1-*:
mkdir -p /app/share/icons
for i in "${PREFIXDIR?}"/share/icons/hicolor/*/apps/libreoffice-*
do
@@ -30,7 +33,7 @@ do
cp -a "$i" \
"$(dirname /app/share/icons/hicolor/"${i#"${PREFIXDIR?}"/share/icons/hicolor/}")"/"$(basename "$i")"
cp -a "$i" \
"$(dirname /app/share/icons/hicolor/"${i#"${PREFIXDIR?}"/share/icons/hicolor/}")"/org.libreoffice.LibreOffice."${i##*/apps/libreoffice-}"
"$(dirname /app/share/icons/hicolor/"${i#"${PREFIXDIR?}"/share/icons/hicolor/}")"/"${1?}"."${i##*/apps/libreoffice-}"
done
mkdir -p /app/share/runtime/locale
@@ -67,7 +70,7 @@ do
done
mkdir -p /app/share/appdata
"${SRCDIR?}"/solenv/bin/assemble-flatpak-appdata.sh /app/share/appdata/ 1
"${SRCDIR?}"/solenv/bin/assemble-flatpak-appdata.sh /app/share/appdata/ 1 "${1?}"
## see <https://github.com/flatpak/flatpak/blob/master/app/
## flatpak-builtins-build-finish.c> for further places where build-finish would
+1 -1
View File
@@ -899,7 +899,7 @@
"./autogen.sh --prefix=/run/build/libreoffice/inst --with-distro=LibreOfficeFlatpak",
"make check",
"make distro-pack-install",
"make cmd cmd='$(SRCDIR)/solenv/bin/assemble-flatpak.sh'",
"make cmd cmd='$(SRCDIR)/solenv/bin/assemble-flatpak.sh org.libreoffice.LibreOffice'",
"printf '<?xml version=\"1.0\"?>\\n<oor:data xmlns:xs=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:oor=\"http://openoffice.org/2001/registry\"><dependency file=\"main\"/><oor:component-data oor:name=\"Common\" oor:package=\"org.openoffice.Office\"><node oor:name=\"Misc\"><prop oor:name=\"UseOpenCL\"><value>false</value></prop></node></oor:component-data></oor:data>' >/app/libreoffice/share/registry/flatpak.xcd"
]
}