mirror of
https://github.com/RetroDECK/RetroDECK.git
synced 2025-04-10 19:15:12 +00:00
APPDATA: migrated to METAINFO
This commit is contained in:
parent
0e8f7361b1
commit
8b21326bb4
8
.github/workflows/build_retrodeck.yml
vendored
8
.github/workflows/build_retrodeck.yml
vendored
|
@ -15,7 +15,7 @@ on:
|
|||
- 'rd-submodules/**'
|
||||
- '*.sh'
|
||||
- 'net.retrodeck.retrodeck.yml'
|
||||
- 'net.retrodeck.retrodeck.appdata.xml'
|
||||
- 'net.retrodeck.retrodeck.metainfo.xml'
|
||||
pull_request_target:
|
||||
types: [opened, synchronize, reopened]
|
||||
branches:
|
||||
|
@ -153,8 +153,8 @@ jobs:
|
|||
if: github.ref != 'refs/heads/main'
|
||||
run: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/cooker_flatpak_portal_add.sh"
|
||||
|
||||
- name: "Updating release notes in appdata"
|
||||
run: "automation_tools/appdata_management.sh"
|
||||
- name: "Updating release notes in metainfo"
|
||||
run: "automation_tools/metainfo_management.sh"
|
||||
|
||||
- name: "[DEBUG] Outputting manifest"
|
||||
run: cat net.retrodeck.retrodeck.yml
|
||||
|
@ -190,7 +190,7 @@ jobs:
|
|||
# uses: Mudlet/xmlstarlet-action@master
|
||||
# id: extract-description
|
||||
# with:
|
||||
# args: sel -t -v "/component/releases/release[1]/description//text()" ./net.retrodeck.retrodeck.appdata.xml
|
||||
# args: sel -t -v "/component/releases/release[1]/description//text()" ./net.retrodeck.retrodeck.metainfo.xml
|
||||
|
||||
# Generate Release Body
|
||||
- name: Generate release body text
|
||||
|
|
|
@ -5,27 +5,27 @@
|
|||
source automation_tools/version_extractor.sh
|
||||
|
||||
# Set the file paths
|
||||
appdata="net.retrodeck.retrodeck.appdata.xml"
|
||||
metainfo="net.retrodeck.retrodeck.metainfo.xml"
|
||||
manifest="net.retrodeck.retrodeck.yml"
|
||||
manifest_content=$(cat "$manifest")
|
||||
|
||||
compare_versions() {
|
||||
local manifest_version_cleaned=$(echo "$1" | sed 's/[a-zA-Z]//g')
|
||||
local appdata_version_cleaned=$(echo "$2" | sed 's/[a-zA-Z]//g')
|
||||
local metainfo_version_cleaned=$(echo "$2" | sed 's/[a-zA-Z]//g')
|
||||
|
||||
if [[ "$manifest_version_cleaned" == "$appdata_version_cleaned" ]]; then
|
||||
if [[ "$manifest_version_cleaned" == "$metainfo_version_cleaned" ]]; then
|
||||
return 0 # Versions are equal
|
||||
fi
|
||||
|
||||
local IFS=.
|
||||
local manifest_parts=($manifest_version_cleaned)
|
||||
local appdata_parts=($appdata_version_cleaned)
|
||||
local metainfo_parts=($metainfo_version_cleaned)
|
||||
|
||||
for ((i=0; i<${#manifest_parts[@]}; i++)); do
|
||||
if ((manifest_parts[i] > appdata_parts[i])); then
|
||||
if ((manifest_parts[i] > metainfo_parts[i])); then
|
||||
return 1 # Manifest version is greater
|
||||
elif ((manifest_parts[i] < appdata_parts[i])); then
|
||||
return 2 # Appdata version is greater
|
||||
elif ((manifest_parts[i] < metainfo_parts[i])); then
|
||||
return 2 # Metainfo version is greater
|
||||
fi
|
||||
done
|
||||
|
||||
|
@ -38,8 +38,8 @@ echo -e "Online repository:\t$repo_version"
|
|||
manifest_version=$(fetch_manifest_version)
|
||||
echo -e "Manifest:\t\t$manifest_version"
|
||||
|
||||
appdata_version=$(fetch_appdata_version)
|
||||
echo -e "Appdata:\t\t$appdata_version"
|
||||
metainfo_version=$(fetch_metainfo_version)
|
||||
echo -e "Metainfo:\t\t$metainfo_version"
|
||||
|
||||
# Additional checks
|
||||
if [[ "$manifest_version" == "main" || "$manifest_version" == "THISBRANCH" || "$manifest_version" == *"cooker"* ]]; then
|
||||
|
@ -47,8 +47,8 @@ if [[ "$manifest_version" == "main" || "$manifest_version" == "THISBRANCH" || "$
|
|||
exit 1
|
||||
fi
|
||||
|
||||
if [[ "$appdata_version" != "$manifest_version" ]]; then
|
||||
echo "Appdata version is not equal to manifest version. Please fix it."
|
||||
if [[ "$metainfo_version" != "$manifest_version" ]]; then
|
||||
echo "Metainfo version is not equal to manifest version. Please fix it."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
|
|
@ -1,26 +1,26 @@
|
|||
#!/bin/bash
|
||||
|
||||
# THIS SCRIPT IS BROKEN HENCE DISABLED FTM
|
||||
# This script is getting the latest release notes from the wiki and add them to the appdata
|
||||
# This script is getting the latest release notes from the wiki and add them to the metainfo
|
||||
|
||||
source automation_tools/version_extractor.sh
|
||||
|
||||
# Fetch appdata version
|
||||
appdata_version=$(fetch_appdata_version)
|
||||
echo -e "Appdata:\t\t$appdata_version"
|
||||
# Fetch metainfo version
|
||||
metainfo_version=$(fetch_metainfo_version)
|
||||
echo -e "metainfo:\t\t$metainfo_version"
|
||||
|
||||
# Defining manifest file location
|
||||
appdata_file="net.retrodeck.retrodeck.appdata.xml"
|
||||
metainfo_file="net.retrodeck.retrodeck.metainfo.xml"
|
||||
|
||||
# Check if release with appdata_version already exists
|
||||
if grep -q "version=\"$appdata_version\"" "$appdata_file"; then
|
||||
echo -e "Deleting existing release version $appdata_version..."
|
||||
# Check if release with metainfo_version already exists
|
||||
if grep -q "version=\"$metainfo_version\"" "$metainfo_file"; then
|
||||
echo -e "Deleting existing release version $metainfo_version..."
|
||||
|
||||
# Remove the existing release entry
|
||||
sed -i "/<release version=\"$appdata_version\"/,/<\/release>/d" "$appdata_file"
|
||||
sed -i "/<release version=\"$metainfo_version\"/,/<\/release>/d" "$metainfo_file"
|
||||
fi
|
||||
|
||||
echo -e "Adding new release version $appdata_version..."
|
||||
echo -e "Adding new release version $metainfo_version..."
|
||||
|
||||
# Get today's date in the required format (YYYY-MM-DD)
|
||||
today_date=$(date +"%Y-%m-%d")
|
||||
|
@ -29,15 +29,15 @@ echo -e "Today is $today_date"
|
|||
# Construct the release snippet
|
||||
release_snippet="\
|
||||
<releases>
|
||||
<release version=\"$appdata_version\" date=\"$today_date\">
|
||||
<url>https://github.com/RetroDECK/RetroDECK/releases/tag/$appdata_version</url>
|
||||
<release version=\"$metainfo_version\" date=\"$today_date\">
|
||||
<url>https://github.com/RetroDECK/RetroDECK/releases/tag/$metainfo_version</url>
|
||||
<description>
|
||||
RELEASE_NOTES_PLACEHOLDER
|
||||
</description>
|
||||
</release>"
|
||||
|
||||
# Read the entire content of the XML file
|
||||
xml_content=$(cat "$appdata_file")
|
||||
xml_content=$(cat "$metainfo_file")
|
||||
|
||||
# Replace RELEASE_NOTES_PLACEHOLDER with the actual release notes
|
||||
# TODO
|
||||
|
@ -89,7 +89,7 @@ release_description="${release_snippet/RELEASE_NOTES_PLACEHOLDER/$section_list}"
|
|||
modified_xml_content="${xml_content/<releases>/$release_description}"
|
||||
|
||||
# Overwrite the original XML file with the modified content
|
||||
echo "$modified_xml_content" > "$appdata_file"
|
||||
echo "$modified_xml_content" > "$metainfo_file"
|
||||
|
||||
# Format the XML file
|
||||
#xmlstarlet fo --omit-decl "$appdata_file"
|
||||
#xmlstarlet fo --omit-decl "$metainfo_file"
|
|
@ -2,11 +2,11 @@
|
|||
|
||||
# This script is intended to gather version information from various sources:
|
||||
# RetroDECK repository
|
||||
# Appdata.xml file
|
||||
# Metainfo.xml file
|
||||
# Manifest YAML file
|
||||
# It consists of three functions, each responsible for retrieving a specific version-related data.
|
||||
|
||||
appdata="net.retrodeck.retrodeck.appdata.xml"
|
||||
metainfo="net.retrodeck.retrodeck.metainfo.xml"
|
||||
manifest="net.retrodeck.retrodeck.yml"
|
||||
manifest_content=$(cat "$manifest")
|
||||
|
||||
|
@ -19,10 +19,10 @@ fetch_repo_version(){
|
|||
echo "$repo_version"
|
||||
}
|
||||
|
||||
fetch_appdata_version(){
|
||||
# Extract the version from the net.retrodeck.retrodeck.appdata.xml file
|
||||
appdata_version=$(grep -oPm1 "(?<=<release version=\")[^\"]+" "$appdata")
|
||||
echo "$appdata_version"
|
||||
fetch_metainfo_version(){
|
||||
# Extract the version from the net.retrodeck.retrodeck.metainfo.xml file
|
||||
metainfo_version=$(grep -oPm1 "(?<=<release version=\")[^\"]+" "$metainfo")
|
||||
echo "$metainfo_version"
|
||||
}
|
||||
|
||||
fetch_manifest_version(){
|
||||
|
|
|
@ -45,7 +45,7 @@ export GITHUB_WORKSPACE="."
|
|||
ostree init --mode=archive-z2 --repo=${GITHUB_WORKSPACE}/retrodeck-repo
|
||||
|
||||
# Backing up original manifest
|
||||
cp net.retrodeck.retrodeck.appdata.xml net.retrodeck.retrodeck.appdata.xml.bak
|
||||
cp net.retrodeck.retrodeck.metainfo.xml net.retrodeck.retrodeck.metainfo.xml.bak
|
||||
cp net.retrodeck.retrodeck.yml net.retrodeck.retrodeck.yml.bak
|
||||
|
||||
automation_tools/install_dependencies.sh
|
||||
|
@ -53,10 +53,10 @@ automation_tools/cooker_build_id.sh
|
|||
automation_tools/manifest_placeholder_replacer.sh
|
||||
automation_tools/cooker_flatpak_portal_add.sh
|
||||
# THIS SCRIPT IS BROKEN HENCE DISABLED FTM
|
||||
# automation_tools/appdata_management.sh
|
||||
# automation_tools/metainfo_management.sh
|
||||
automation_tools/flatpak_build_download_only.sh
|
||||
automation_tools/flatpak_build_only.sh "${@}"
|
||||
automation_tools/flatpak_build_bundle.sh
|
||||
|
||||
mv -f net.retrodeck.retrodeck.appdata.xml.bak net.retrodeck.retrodeck.appdata.xml
|
||||
mv -f net.retrodeck.retrodeck.metainfo.xml.bak net.retrodeck.retrodeck.metainfo.xml
|
||||
mv -f net.retrodeck.retrodeck.yml.bak net.retrodeck.retrodeck.yml
|
|
@ -161,14 +161,14 @@ configurator_move_folder_dialog() {
|
|||
}
|
||||
|
||||
changelog_dialog() {
|
||||
# This function will pull the changelog notes from the version it is passed (which must match the appdata version tag) from the net.retrodeck.retrodeck.appdata.xml file
|
||||
# This function will pull the changelog notes from the version it is passed (which must match the metainfo version tag) from the net.retrodeck.retrodeck.metainfo.xml file
|
||||
# The function also accepts "all" as a version, and will print the entire changelog
|
||||
# USAGE: changelog_dialog "version"
|
||||
|
||||
log d "Showing changelog dialog"
|
||||
|
||||
if [[ "$1" == "all" ]]; then
|
||||
xml sel -t -m "//component/releases/release/description" -c . $rd_appdata | tr -s '\n' | sed 's/^\s*//' > "/var/config/retrodeck/changelog-full.xml"
|
||||
xml sel -t -m "//component/releases/release/description" -c . $rd_metainfo | tr -s '\n' | sed 's/^\s*//' > "/var/config/retrodeck/changelog-full.xml"
|
||||
|
||||
convert_to_markdown "/var/config/retrodeck/changelog-full.xml"
|
||||
|
||||
|
@ -177,7 +177,7 @@ changelog_dialog() {
|
|||
--title "RetroDECK Changelogs" \
|
||||
--filename="/var/config/retrodeck/changelog-full.xml.md"
|
||||
else
|
||||
xml sel -t -m "//component/releases/release[1]/description" -c . $rd_appdata | tr -s '\n' | sed 's/^\s*//' > "/var/config/retrodeck/changelog.xml"
|
||||
xml sel -t -m "//component/releases/release[1]/description" -c . $rd_metainfo | tr -s '\n' | sed 's/^\s*//' > "/var/config/retrodeck/changelog.xml"
|
||||
|
||||
convert_to_markdown "/var/config/retrodeck/changelog.xml"
|
||||
|
||||
|
|
|
@ -54,7 +54,7 @@ remote_network_target_1="https://flathub.org"
|
|||
remote_network_target_2="$rd_repo" # The URL of a common internet target for testing network access
|
||||
remote_network_target_3="https://one.one.one.one" # The URL of a common internet target for testing network access
|
||||
helper_files_folder="$config/retrodeck/helper_files" # The parent folder of RetroDECK documentation files for deployment
|
||||
rd_appdata="/app/share/metainfo/net.retrodeck.retrodeck.metainfo.xml" # The shipped appdata XML file for this version
|
||||
rd_metainfo="/app/share/metainfo/net.retrodeck.retrodeck.metainfo.xml" # The shipped metainfo XML file for this version
|
||||
rpcs3_firmware="http://dus01.ps3.update.playstation.net/update/ps3/image/us/2024_0227_3694eb3fb8d9915c112e6ab41a60c69f/PS3UPDAT.PUP" # RPCS3 Firmware download location
|
||||
RA_API_URL="https://retroachievements.org/dorequest.php" # API URL for RetroAchievements.org
|
||||
presets_dir="$config/retrodeck/presets" # Repository for all system preset config files
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
<url type="homepage">https://retrodeck.net</url>
|
||||
<url type="bugtracker">https://github.com/RetroDECK/RetroDECK/issues</url>
|
||||
<url type="help">https://retrodeck.readthedocs.io</url>
|
||||
<url type="faq">https://github.com/RetroDECK/RetroDECK/wiki/FAQs---Frequently-asked-questions</url>
|
||||
<url type="faq">https://retrodeck.readthedocs.io/en/latest/wiki_faq/faq-rd-general/f</url>
|
||||
<url type="donation">https://www.patreon.com/RetroDECK</url>
|
||||
<content_rating type="oars-1.0" />
|
||||
<screenshots>
|
|
@ -76,7 +76,7 @@ modules:
|
|||
#
|
||||
# UPDATE STEPS FOR MAIN:
|
||||
# [ ] Update the VERSION variable on line containing "VERSION=THISBRANCH"
|
||||
# [ ] Update the appdata.xml with the version number and notes
|
||||
# [ ] Update the net.retrodeck.retrodeck.metainfo.xml with the version number and notes
|
||||
|
||||
- name: retrodeck-initialization
|
||||
buildsystem: simple
|
||||
|
@ -798,6 +798,9 @@ modules:
|
|||
ln -s "/lib/x86_64-linux-gnu/libSDL2-2.0.so.0" "${FLATPAK_DEST}/lib/libSDL2.so"
|
||||
fi
|
||||
|
||||
# Installing metainfo
|
||||
- install -Dm 644 net.retrodeck.retrodeck.metainfo.xml ${FLATPAK_DEST}/share/metainfo/net.retrodeck.retrodeck.metainfo.xml
|
||||
|
||||
sources:
|
||||
- type: dir
|
||||
path: .
|
||||
|
|
|
@ -32,16 +32,16 @@ jobs:
|
|||
git submodule update
|
||||
sudo apt install -y flatpak flatpak-builder p7zip-full xmlstarlet appstream-util
|
||||
|
||||
- name: Validating the appdata
|
||||
run: appstream-util validate "net.retrodeck.retrodeck.appdata.xml"
|
||||
- name: Validating the metainfo
|
||||
run: appstream-util validate "net.retrodeck.retrodeck.metainfo.xml"
|
||||
continue-on-error: true
|
||||
|
||||
- name: Getting version info
|
||||
id: version
|
||||
run: |
|
||||
appdata="https://raw.githubusercontent.com/RetroDECK/RetroDECK/main/net.retrodeck.retrodeck.appdata.xml"
|
||||
REL_VER=$(curl -s $appdata | xmlstarlet sel -t -v "//release/@version" | head -1)
|
||||
DES="$(curl -s $appdata | xmlstarlet sel -t -m "//release[1]" -v "description" -n | sed '1,2d;$d;s/^ */- /;/^- $/d')"
|
||||
metainfo="https://raw.githubusercontent.com/RetroDECK/RetroDECK/main/net.retrodeck.retrodeck.metainfo.xml"
|
||||
REL_VER=$(curl -s $metainfo | xmlstarlet sel -t -v "//release/@version" | head -1)
|
||||
DES="$(curl -s $metainfo | xmlstarlet sel -t -m "//release[1]" -v "description" -n | sed '1,2d;$d;s/^ */- /;/^- $/d')"
|
||||
echo "REL_VER=$REL_VER" >> $GITHUB_ENV
|
||||
echo -e "# Release Notes\n" >> "body.md"
|
||||
echo "$DES" >> "body.md"
|
||||
|
|
|
@ -17,7 +17,7 @@ on:
|
|||
- 'rd-submodules/**'
|
||||
- '*.sh'
|
||||
- 'net.retrodeck.retrodeck.yml'
|
||||
- 'net.retrodeck.retrodeck.appdata.xml'
|
||||
- 'net.retrodeck.retrodeck.metainfo.xml'
|
||||
pull_request:
|
||||
branches:
|
||||
- cooker*
|
||||
|
@ -83,8 +83,8 @@ jobs:
|
|||
- name: "Adding flatpak portal for automated updates (cooker only)"
|
||||
run: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/cooker_flatpak_portal_add.sh"
|
||||
|
||||
- name: "Updating release notes in appdata"
|
||||
run: "automation_tools/appdata_management.sh"
|
||||
- name: "Updating release notes in metainfo"
|
||||
run: "automation_tools/metainfo_management.sh"
|
||||
|
||||
- name: "[DEBUG] Outputting manifest"
|
||||
run: cat net.retrodeck.retrodeck.yml
|
||||
|
|
|
@ -14,7 +14,7 @@ on:
|
|||
- 'rd-submodules/**'
|
||||
- '*.sh'
|
||||
- 'net.retrodeck.retrodeck.yml'
|
||||
- 'net.retrodeck.retrodeck.appdata.xml'
|
||||
- 'net.retrodeck.retrodeck.metainfo.xml'
|
||||
pull_request:
|
||||
branches:
|
||||
- cooker*
|
||||
|
@ -85,8 +85,8 @@ jobs:
|
|||
- name: "Adding flatpak portal for automated updates (cooker only)"
|
||||
run: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/cooker_flatpak_portal_add.sh"
|
||||
|
||||
- name: "Updating release notes in appdata"
|
||||
run: "automation_tools/appdata_management.sh"
|
||||
- name: "Updating release notes in metainfo"
|
||||
run: "automation_tools/metainfo_management.sh"
|
||||
|
||||
- name: "[DEBUG] Outputting manifest"
|
||||
run: cat net.retrodeck.retrodeck.yml
|
||||
|
|
|
@ -32,16 +32,16 @@ jobs:
|
|||
git submodule update
|
||||
sudo apt install -y flatpak flatpak-builder p7zip-full xmlstarlet appstream-util
|
||||
|
||||
- name: Validating the appdata
|
||||
run: appstream-util validate "net.retrodeck.retrodeck.appdata.xml"
|
||||
- name: Validating the metainfo
|
||||
run: appstream-util validate "net.retrodeck.retrodeck.metainfo.xml"
|
||||
continue-on-error: true
|
||||
|
||||
- name: Getting version info
|
||||
id: version
|
||||
run: |
|
||||
appdata="https://raw.githubusercontent.com/RetroDECK/RetroDECK/main/net.retrodeck.retrodeck.appdata.xml"
|
||||
REL_VER=$(curl -s $appdata | xmlstarlet sel -t -v "//release/@version" | head -1)
|
||||
DES="$(curl -s $appdata | xmlstarlet sel -t -m "//release[1]" -v "description" -n | sed '1,2d;$d;s/^ */- /;/^- $/d')"
|
||||
metainfo="https://raw.githubusercontent.com/RetroDECK/RetroDECK/main/net.retrodeck.retrodeck.metainfo.xml"
|
||||
REL_VER=$(curl -s $metainfo | xmlstarlet sel -t -v "//release/@version" | head -1)
|
||||
DES="$(curl -s $metainfo | xmlstarlet sel -t -m "//release[1]" -v "description" -n | sed '1,2d;$d;s/^ */- /;/^- $/d')"
|
||||
echo "REL_VER=$REL_VER" >> $GITHUB_ENV
|
||||
echo -e "# Release Notes\n" >> "body.md"
|
||||
echo "$DES" >> "body.md"
|
||||
|
|
|
@ -1391,7 +1391,7 @@ disable_steam_sync() {
|
|||
}
|
||||
|
||||
configurator_version_history_dialog() {
|
||||
local version_array=($(xml sel -t -v '//component/releases/release/@version' -n $rd_appdata))
|
||||
local version_array=($(xml sel -t -v '//component/releases/release/@version' -n $rd_metainfo))
|
||||
local all_versions_list=()
|
||||
|
||||
for rd_version in ${version_array[*]}; do
|
||||
|
|
Loading…
Reference in a new issue