diff --git a/.github/workflows/cooker-selfhosted.yml b/.github/workflows/cooker-selfhosted.yml index 8dfc36fa..411662b5 100644 --- a/.github/workflows/cooker-selfhosted.yml +++ b/.github/workflows/cooker-selfhosted.yml @@ -5,6 +5,7 @@ on: branches: - cooker* - feat* + - branch/cooker* paths: - '.github/workflows/**' - 'automation_tools/**' diff --git a/functions/other_functions.sh b/functions/other_functions.sh index 703727a7..ca1c3fb4 100644 --- a/functions/other_functions.sh +++ b/functions/other_functions.sh @@ -307,7 +307,7 @@ update_vita3k_firmware() { backup_retrodeck_userdata() { create_dir "$backups_folder" - zip -rq9 "$backups_folder/$(date +"%0m%0d")_retrodeck_userdata.zip" "$saves_folder" "$states_folder" "$bios_folder" "$media_folder" "$themes_folder" "$logs_folder" "$screenshots_folder" "$mods_folder" "$texture_packs_folder" "$borders_folder" > $logs_folder/$(date +"%0m%0d")_backup_log.log + zip -rq9 "$backups_folder/$(date +"%0m%0d")_retrodeck_userdata.zip" "$saves_folder" "$states_folder" "$bios_folder" "$media_folder" "$themes_folder" "$rdhome/ES-DE/collections" "$rdhome/ES-DE/gamelists" "$logs_folder" "$screenshots_folder" "$mods_folder" "$texture_packs_folder" "$borders_folder" > $logs_folder/$(date +"%0m%0d")_backup_log.log } make_name_pretty() { diff --git a/functions/post_update.sh b/functions/post_update.sh index 39b18a27..002d395c 100644 --- a/functions/post_update.sh +++ b/functions/post_update.sh @@ -214,7 +214,7 @@ post_update() { prepare_component "reset" "pico8" - configurator_generic_dialog "RetroDECK 0.7.0b Upgrade" "Would you like to install the official controller profile?\n(this will reset your custom emulator settings)\n\nAfter installation you can enable it from from Controller Settings -> Templates." + configurator_generic_dialog "RetroDECK 0.7.0b Upgrade" "Would you like to install the official controller profile?\n(this will reset your custom emulator settings)\n\nAfter installation you can enable it from from Controller Settings\t->\tTemplates." if [[ $(configurator_generic_question_dialog "RetroDECK Official Controller Profile" "Would you like to install the official RetroDECK controller profile?") == "true" ]]; then install_retrodeck_controller_profile prepare_component "reset" "all" @@ -339,16 +339,68 @@ post_update() { fi if [[ $(check_version_is_older_than "0.8.2b") == "true" ]]; then - log i "Vita3K changed some paths, reflecting them: moving \"/var/data/Vita3K\" in \"/var/config/Vita3K\"" - mv -f "/var/data/Vita3K" "/var/config/Vita3K" - log i "Moving ES-DE downloaded_media, gamelist, and themes from \"$rdhome\" to \"$rdhome/ES-DE\" due to a RetroDECK Framework bug" - mv -f "$rdhome/themes" "$rdhome/ES-DE/themes" && log d "Move of \"$rdhome/themes\" completed" - mv -f "$rdhome/downloaded_media" "$rdhome/ES-DE/downloaded_media" && log d "Move of \"$rdhome/downloaded_media\" completed" - mv -f "$rdhome/gamelists/"* "$rdhome/ES-DE/gamelists" && log d "Move of \"$rdhome/gamelists/\" completed" && rm -rf "$rdhome/gamelists" - log i "Since in this version we moved to a PR build of Ryujinx we need to symlink it." - ln -sv $ryujinxconf "$(dirname $ryujinxconf)/PRConfig.json" + log i "Vita3K changed some paths, reflecting them: moving \"/var/data/Vita3K\" in \"/var/config/Vita3K\"" + move "/var/data/Vita3K" "/var/config/Vita3K" + log i "Moving ES-DE downloaded_media, gamelist, and themes from \"$rdhome\" to \"$rdhome/ES-DE\" due to a RetroDECK Framework bug" + move "$rdhome/themes" "$rdhome/ES-DE/themes" && log d "Move of \"$rdhome/themes\" completed" + move "$rdhome/downloaded_media" "$rdhome/ES-DE/downloaded_media" && log d "Move of \"$rdhome/downloaded_media\" completed" + move "$rdhome/gamelists" "$rdhome/ES-DE/gamelists" && log d "Move of \"$rdhome/gamelists/\" completed" + move "$rdhome/collections" "$rdhome/ES-DE/collections" && log d "Move of \"$rdhome/collections/\" completed" + log i "Since in this version we moved to a PR build of Ryujinx we need to symlink it." + ln -sv $ryujinxconf "$(dirname $ryujinxconf)/PRConfig.json" fi +if [[ $(check_version_is_older_than "0.8.3b") == "true" ]]; then + # In version 0.8.3b, the following changes were made: + # - Recovery from a failed move of the themes, downloaded_media and gamelists folder to their new ES-DE locations. + + # Check if any of the directories exist + if [ -d "$rdhome/themes" ] || [ -d "$rdhome/downloaded_media" ] || [ -d "$rdhome/gamelists" ] || [ -d "$rdhome/collections" ]; then + log i "Moving ES-DE downloaded_media, gamelist, and themes from \"$rdhome\" to \"$rdhome/ES-DE\" due to a RetroDECK Framework bug" + + # Ask user if they want to move and overwrite the data + if [[ $(configurator_generic_question_dialog "Move Data" "In the previous version some users suffered a bug where ES-DE appeared empty (no scraped data or collections for example).\n\nYour data is not gone!\n\nit's just in a different path.\n\nDo you want to recover your old data replacing the actual one?\nBy choosing no instead, the folder with be moved but no data will be replaced and it will be availalbe in the retrodeck folder.\n\nThe affected folders are:\n\nretrodeck/themes\t\t\t\t->\tretrodeck/ES-DE/themes\nretrodeck/downloaded_media\t->\tretrodeck/ES-DE/downloaded_media\nretrodeck/gamelists\t\t\t\t->\tretrodeck/ES-DE/gamelist\nretrodeck/collections\t\t\t->\tretrodeck/ES-DE/collections") == "true" ]]; then + move_cmd="mv -f" # Use mv with overwrite + log i "User chose to move and overwrite the data." + else + move_cmd="move" # Use existing move function + log i "User chose to move the data without overwriting." + fi + + # Move each directory if it exists + if [[ -d "$rdhome/themes" ]]; then + $move_cmd "$rdhome/themes" "$rdhome/ES-DE/" && log d "Move of \"$rdhome/themes\" completed" + else + log i "ES-DE themes appears to already have been migrated." + fi + + if [[ -d "$rdhome/downloaded_media" ]]; then + $move_cmd "$rdhome/downloaded_media" "$rdhome/ES-DE/" && log d "Move of \"$rdhome/downloaded_media\" completed" + else + log i "ES-DE downloaded media appears to already have been migrated." + fi + + if [[ -d "$rdhome/gamelists" ]]; then + $move_cmd "$rdhome/gamelists" "$rdhome/ES-DE/" && log d "Move of \"$rdhome/gamelists/\" completed" + else + log i "ES-DE gamelists appears to already have been migrated." + fi + + if [[ -d "$rdhome/collections" ]]; then + $move_cmd "$rdhome/collections" "$rdhome/ES-DE/" && log d "Move of \"$rdhome/collections/\" completed" + else + log i "ES-DE collections appears to already have been migrated." + fi + else + log i "ES-DE folders appears to already have been migrated." + fi + # Better to refresh the paths + set_setting_value "$es_settings" "ROMDirectory" "$roms_folder" "es_settings" + set_setting_value "$es_settings" "MediaDirectory" "$media_folder" "es_settings" + set_setting_value "$es_settings" "UserThemeDirectory" "$themes_folder" "es_settings" +fi + + # if [[ $(check_version_is_older_than "0.9.0b") == "true" ]]; then # # Placeholder for version 0.9.0b # rm /var/config/emulationstation/.emulationstation # remving the old symlink to .emulationstation as it might be not needed anymore diff --git a/functions/prepare_component.sh b/functions/prepare_component.sh index 306389f2..c540de97 100644 --- a/functions/prepare_component.sh +++ b/functions/prepare_component.sh @@ -26,7 +26,7 @@ prepare_component() { declare -g "$current_setting_name=$rdhome/${current_setting_value#*retrodeck/}" #removes everything until "retrodeck" and adds the actual retrodeck folder log d "Setting: $current_setting_name=$current_setting_value" if [[ ! $current_setting_name == "logs_folder" ]]; then # Don't create a logs folder normally, we want to maintain the current files exactly to not lose early-install logs. - create_dir "$rdhome/$(basename $current_setting_value)" + create_dir "$rdhome/${current_setting_value#*retrodeck/}" else # Log folder-specific actions mv "$rd_logs_folder" "$logs_folder" # Move existing logs folder from internal to userland ln -sf "$logs_folder" "$rd_logs_folder" # Link userland logs folder back to statically-written location @@ -42,8 +42,8 @@ prepare_component() { local current_setting_name=$(get_setting_name "$config_line" "retrodeck") if [[ ! $current_setting_name =~ (rdhome|sdcard) ]]; then # Ignore these locations local current_setting_value=$(get_setting_value "$rd_conf" "$current_setting_name" "retrodeck" "paths") - if [[ -d "$rdhome/$(basename $current_setting_value)" ]]; then # If the folder exists at the new ~/retrodeck location - declare -g "$current_setting_name=$rdhome/$(basename $current_setting_value)" + if [[ -d "$rdhome/${current_setting_value#*retrodeck/}" ]]; then # If the folder exists at the new ~/retrodeck location + declare -g "$current_setting_name=$rdhome/${current_setting_value#*retrodeck/}" fi fi done < <(grep -v '^\s*$' $rd_conf | awk '/^\[paths\]/{f=1;next} /^\[/{f=0} f') diff --git a/net.retrodeck.retrodeck.appdata.xml b/net.retrodeck.retrodeck.appdata.xml index 01f47151..c8d6445e 100644 --- a/net.retrodeck.retrodeck.appdata.xml +++ b/net.retrodeck.retrodeck.appdata.xml @@ -67,6 +67,20 @@ GPL-3.0 CC0-1.0 + + https://github.com/XargonWan/RetroDECK/releases/tag/0.8.3b + +

Bug fixes:

+
    +
  • FRAMEWORK: Fixed a bug where the ES-DE folders were not correctly migrated from retrodeck folder to retrodeck/ES-DE folder
  • +
  • RYUJINX: reverted it to an older version without the symlink bug
  • +
+

Known issues:

+
    +
  • Please check the know issues in the Wiki under General Information
  • +
+
+
https://github.com/XargonWan/RetroDECK/releases/tag/0.8.2b @@ -89,7 +103,8 @@

Known issues:

    -
  • Please check the know issues in the Wiki under General Information.
  • +
  • Ryujinx is broken in this version, we plan to fix it soon, check the known issues to learn more
  • +
  • Please check the know issues in the Wiki under General Information
diff --git a/net.retrodeck.retrodeck.yml b/net.retrodeck.retrodeck.yml index 6f9c3182..ed5c22fe 100644 --- a/net.retrodeck.retrodeck.yml +++ b/net.retrodeck.retrodeck.yml @@ -78,7 +78,7 @@ modules: # on main please update this with the version variable, eg: VERSION=0.8.0b # on cooker will be THISBRANCH - VERSION=0.8.2b + VERSION=cooker-0.8.3b git checkout ${GITHUB_REF_NAME} mkdir -p ${FLATPAK_DEST}/retrodeck/ @@ -1232,21 +1232,34 @@ modules: # url: https://github.com/Ryujinx/release-channel-master/releases/download/1.1.1343/ryujinx-1.1.1343-linux_x64.tar.gz # sha256: 3cd2172d2f42a0fb93a83bffe6bd8fb2d1d81fb45afc80e0068a245c8f755ac1 - - name: Ryujinx-with-symlink-fix + # - name: Ryujinx-with-symlink-fix + # buildsystem: simple + # build-commands: + # - | + # mkdir -p ${FLATPAK_DEST}/ryujinx + # mkdir -p ${FLATPAK_DEST}/bin + # chmod +x Ryujinx.sh + # chmod +x Ryujinx + # mv -v * ${FLATPAK_DEST}/ryujinx + # ln -sv ${FLATPAK_DEST}/ryujinx/Ryujinx.sh ${FLATPAK_DEST}/bin/Ryujinx.sh + # chmod +x ${FLATPAK_DEST}/bin/Ryujinx.sh + # sources: + # - type: archive + # url: https://gitlab.com/-/project/59825450/uploads/a512ffca03dea9a687a7c3048dc1fd00/ryujinx-Release-1.1.0+56c8844-linux_x64.zip + # sha256: 890f82146d6847efaf480d63867f439d58f28261e9070a4790f77eab9be16e6b + + # This version was reported as working with symlinks: https://discord.com/channels/951662718102962256/951715885968654418/1264882000658169866 + - name: Ryujinx-reported-working-version buildsystem: simple build-commands: - | - mkdir -p ${FLATPAK_DEST}/ryujinx - mkdir -p ${FLATPAK_DEST}/bin - chmod +x Ryujinx.sh - chmod +x Ryujinx - mv -v * ${FLATPAK_DEST}/ryujinx - ln -sv ${FLATPAK_DEST}/ryujinx/Ryujinx.sh ${FLATPAK_DEST}/bin/Ryujinx.sh - chmod +x ${FLATPAK_DEST}/bin/Ryujinx.sh + tar -zxvf *.tar.gz + mv -v publish ${FLATPAK_DEST}/ryujinx + ln -sv ${FLATPAK_DEST}/ryujinx/Ryujinx ${FLATPAK_DEST}/bin/Ryujinx.sh sources: - - type: archive - url: https://gitlab.com/-/project/59825450/uploads/8519a04d7a3f5b5949f14b6ad25a4185/ryujinx-Release-1.1.0+81fd228-linux_x64.zip - sha256: 9e4a4393a3dcc44fda2aec40c2842492e30656c7369a9959d865a3351f12eeb9 + - type: file + url: https://github.com/Ryujinx/release-channel-master/releases/download/1.1.1297/ryujinx-1.1.1297-linux_x64.tar.gz + sha256: 28b38754e7d2e92083b313b23278c180ae54ac025edbbd0276ec03baec0cec0f # Ryujinx Appimage - END