mirror of
https://github.com/RetroDECK/RetroDECK.git
synced 2024-11-25 23:45:39 +00:00
XargonWan
7ef3628995
* ES-DE: outsourced * RetroArch: migrated to AppImage * XEMU: migrated to AppImage * MELONDS: migrated to AppImage * RPCS3: migrated to AppImage * MANIFEST: avoid overwriting native libraries * MANIFEST: fixing ES-DE * MANIFEST: fixed and normalized /app with FLATPAK_DEST * MANIFEST: cleanup * MANIFEST: fixed RetroArch * PPSSPP: added wanted sdl module * ES-DE: moved repo * PPSSPP: outsourced * PPSSPP: fixed link * MANIFEST: fixing copy actions * PCSX2: removing troublesome file * DOLPHIN: outsourced * SOLARUS: outsourced * MANIFEST: lowercased rpcs3 sha * MANIFEST: trying to figure out automation_task_list * MANIFEST: fixed primehack placeholders * REVERT ME: RUNNER CHANGED * XEMU: moved on the bottom just to see if something changes * DUCKSTATION: wrong cp target * MANFEST: moved thir party libraries in /app/usr/local/lib * MANFEST: removing dolphin debug libraries * MANFEST: removing primehack debug libraries * MANFEST: removing primehack pkgconfig libraries * MANFEST: removing cemu lib * SOLARUS: removing errored libs * MAME: reverted to its original state as it's not coming with libraries * RYUJINX: fixing chmod command * GZDOOM: outsourced * MANIFEST: added debug for checking out where tf is our icon * Submodules cleanup * GZDOOM: cleanup * FRAMEWORK: moved third party libs into /app/retrodeck/lib * MANIFEST: added retrodeck-pre-build commands * MANIFEST: module renamed * ES-DE: re-removed 'files/lib/girepository-1.0' * GLOBAL: pathing the retrodeck components provided libraries * RPCS3: moved bufgix in the proper module * MANIFEST: moved component libraries into /app/retrodeck/lib * MANIFEST: removing some debug cleanups * MANIFEST: desktop file don't need to be executable * ES-DE: re-adding libpoppler * ES--DE: moved to the end to overwrite older libraries * RYUJINX: fixed manifest * MANIFEST: injecting needed libraries and discarding the troublesome ones * MANIFEST: injecting needed libraries and discarding the troublesome ones - adding more * MelonDS: outsourced but self built in QT6 * MANIFEST: automated the third party libs manager * MANIFEST: fixed melonds build * Ryujinx: downgraded to the older but working version * MANIFEST: removed debug code * WORKFLOW: running on self-hosted again * MANIFEST: including debug and pkgconfig's librareis * MANIFEST: removing pkgconfig's librareis * MANIFEST: cannot move so copy and remove * MANIFEST: cannot move so copy and remove - fix * Toying with automation file to make it work again * PRE_BUILD_AUTOMATION: testing a different script * PRE_BUILD_AUTOMATION: adding new sha function * MAME: fixing link * MANIFEST: tweaks * ATL: fixing ES-DE entry * PPSSPP: fixed hash * SOLARUS: fixing debug libs copy command * APDATA: updated * SOLARUS: that's not the library you're looking for * GZDOOM: removing debug even here * Revamped codename wordlist * MANIFEST: following symlinks during library copy * WORKFLOW: moving down the artifact preparation for fltahub as we don't even need it in cooker * Manually adding missing libraries * More codenames * CEMU: added wrapper + RPCS3 fixes * THE GREAT FOLDER MOVE (aka let's see how much things I can break in a single commit) * emu: fixed dest filename for the wrapper * Cemu: fixing wrapper installation * MANIFEST: trying to add LLVM to solve PCSX2, Duckstation issues * MANIFEST: adding llvm doesn't change the situation, removed * MANIFEST: trying to add vulkan * MANIFEST: trying to add vulkan - removed as it should be already in (and that's broken) * VULKAN: testing some libraries * VULKAN: trying to add shaderc * Manifest: renaming es-de module to stick with the repo name for updating purposes * Migrated to the new latest links * MAME: frixed url * PCSX2: updated to 2.1.55 * Reverting workfolw edits * WORKFLOW: targetting the old repo for the release * WORKFLOW: updated some actions to a newever version to avoid deprecation at the end of the year * MISSING_LIBS: trying to fetch libshaderc * MAIN_WORKLFOW: updating actions versions [skip ci]
353 lines
14 KiB
YAML
353 lines
14 KiB
YAML
sdk-extensions:
|
|
#- org.freedesktop.Sdk.Extension.dotnet6 # Needed for Ryujinx - Removed, check if it's not breaking something else
|
|
finish-args:
|
|
#- --env=QT_QPA_PLATFORM=xcb #not sure if this will break something
|
|
|
|
# pcsx2-qt needs QT6, maybe others, here until every qt emulator will support qt6 (not yuzu atm)
|
|
# from: https://github.com/flathub/org.profex_xrd.Profex
|
|
|
|
# - name: qt6-core5compat
|
|
# buildsystem: cmake-ninja
|
|
# builddir: true
|
|
# sources:
|
|
# - type: archive
|
|
# url: https://download.qt.io/official_releases/qt/6.2/6.2.4/submodules/qt5compat-everywhere-src-6.2.4.tar.xz
|
|
# sha256: 5de2b9e25bf7de161fbb88ecdd468ed1788bc899392fc05ed80aa590ebb352fa
|
|
# x-checker-data:
|
|
# type: html
|
|
# url: https://download.qt.io/official_releases/qt/6.2/
|
|
# version-pattern: '>([\d\.-]*)/<'
|
|
# url-template: https://download.qt.io/official_releases/qt/6.2/$version/submodules/qt5compat-everywhere-src-$version.tar.xz
|
|
# post-install:
|
|
# - mkdir -p /app/lib/mkspecs
|
|
# - cp -R /app/mkspecs/* /app/lib/mkspecs/
|
|
# - ln -fsr ${FLATPAK_DEST}/lib/${FLATPAK_ARCH}-linux-gnu/libQt*.so* -t ${FLATPAK_DEST}/lib/
|
|
# - sed -i 's/\\([0-9]\\+\\.[0-9]\\+\\)\\.[0-9]\\+ ${_Qt6.*_FIND_VERSION_EXACT}/\\1/'
|
|
# ${FLATPAK_DEST}/lib/${FLATPAK_ARCH}-linux-gnu/cmake/Qt6*/Qt6*Config.cmake
|
|
# - sed -e 's@PATHS \"${CMAKE_CURRENT_LIST_DIR}/..\" NO_DEFAULT_PATH@PATHS \"${CMAKE_CURRENT_LIST_DIR}/..\"
|
|
# \"/usr/lib/${CMAKE_CXX_LIBRARY_ARCHITECTURE}/cmake/\" NO_DEFAULT_PATH@' -i
|
|
# ${FLATPAK_DEST}/lib/${FLATPAK_ARCH}-linux-gnu/cmake/Qt6*/Qt6*Config.cmake
|
|
# - sed -e 's@\\($$QT_MODULE_BIN_BASE\\)@\\1 '${FLATPAK_DEST}'/bin @' -i ${FLATPAK_DEST}/lib/mkspecs/modules/*.pri
|
|
# - sed -e 's@\\($$QT_MODULE_INCLUDE_BASE \\)@\\1'${FLATPAK_DEST}'/include @'
|
|
# -i ${FLATPAK_DEST}/lib/mkspecs/modules/*.pri
|
|
# - sed -e 's@$$QT_MODULE_INCLUDE_BASE/@'${FLATPAK_DEST}'/include/@g' -i ${FLATPAK_DEST}/lib/mkspecs/modules/*.pri
|
|
# - sed -e 's@$$QT_MODULE_LIB_BASE@'${FLATPAK_DEST}'/lib@g' -i ${FLATPAK_DEST}/lib/mkspecs/modules/*.pri
|
|
# cleanup:
|
|
# - /app/mkspecs
|
|
|
|
# XEMU: libglu removed due to a certificate issue, check libglu module for more info
|
|
# - name: libglu
|
|
# buildsystem: meson
|
|
# cleanup:
|
|
# - /include
|
|
# - /lib/debug
|
|
# - /lib/pkgconfig
|
|
# - /lib/*.a
|
|
# sources:
|
|
# - type: archive
|
|
# url: http://mesa.freedesktop.org/archive/glu/glu-9.0.2.tar.xz
|
|
# sha256: 6e7280ff585c6a1d9dfcdf2fca489251634b3377bfc33c29e4002466a38d02d4
|
|
# x-checker-data:
|
|
# type: anitya
|
|
# project-id: 13518
|
|
# stable-only: true
|
|
# url-template: http://mesa.freedesktop.org/archive/glu/glu-$version.tar.xz
|
|
|
|
# Duckstation - START
|
|
# https://github.com/flathub/org.duckstation.DuckStation
|
|
# Disabled until we completely switch to QT6
|
|
|
|
# - name: duckstation
|
|
# buildsystem: cmake-ninja
|
|
# no-make-install: true
|
|
# builddir: true
|
|
# config-opts:
|
|
# - -DCMAKE_BUILD_TYPE=RelWithDebInfo
|
|
# - -DUSE_EGL=ON
|
|
# - -DUSE_SDL2=ON
|
|
# - -DUSE_WAYLAND=ON
|
|
# - -DUSE_X11=ON
|
|
# - -DUSE_DRMKMS=ON
|
|
# - -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON
|
|
# post-install:
|
|
# - install -m755 bin/duckstation-qt /app/bin
|
|
# - cp -r ../data/* bin/translations /app/bin
|
|
# sources:
|
|
# - type: git
|
|
# url: https://github.com/stenzek/duckstation.git
|
|
# commit: 6f709468601183083b8581d4952aaba7baf77084
|
|
# # Cloning dep/msvc/qt is only necessary for Windows
|
|
# disable-submodules: true
|
|
|
|
# Duckstation - END
|
|
|
|
# Duckstation-DontUpdate - START
|
|
# Old version moved to QT6 so it's either this or AppImage
|
|
# But AppImage is a single one that keep getting updated at the same link so the sha (that's mandatory) will break the build
|
|
# So yeah we're stuck with this for a while
|
|
|
|
# - name: duckstation-DontUpdate
|
|
# buildsystem: cmake-ninja
|
|
# no-make-install: true
|
|
# builddir: true
|
|
# config-opts:
|
|
# - -DCMAKE_BUILD_TYPE=Release
|
|
# - -DUSE_EGL=ON
|
|
# - -DUSE_SDL2=ON
|
|
# - -DUSE_WAYLAND=ON
|
|
# - -DUSE_X11=ON
|
|
# - -DUSE_DRMKMS=ON
|
|
# - -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON
|
|
# post-install:
|
|
# - install -m 755 -t /app/bin/ bin/duckstation-nogui bin/duckstation-qt
|
|
# - |-
|
|
# for px in 16 32 48 64 128 256; do
|
|
# install -Dm644 ../extras/icons/icon-${px}px.png /app/share/icons/hicolor/${px}x${px}/apps/org.duckstation.DuckStation.png
|
|
# done
|
|
# - cp -r ../data/* bin/translations /app/bin
|
|
# sources:
|
|
# - type: git
|
|
# url: https://github.com/stenzek/duckstation.git
|
|
# commit: 3fb61865e505ba639609fbf16cb8bdf5c66e020c
|
|
|
|
# Duckstation-DontUpdate - END
|
|
|
|
# Ryujinx - START
|
|
# https://github.com/flathub/org.ryujinx.Ryujinx
|
|
|
|
- name: Ryujinx
|
|
buildsystem: simple
|
|
build-options:
|
|
no-debuginfo: true
|
|
no-debuginfo-compression: true
|
|
strip: false
|
|
arch:
|
|
x86_64:
|
|
env:
|
|
RUNTIME: linux-x64
|
|
env:
|
|
PKG_CONFIG_PATH: /app/lib/pkgconfig:/app/share/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig
|
|
DOTNET_CLI_TELEMETRY_OPTOUT: 'true'
|
|
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 'true'
|
|
RYUJINX_VERSION: 1.1.1014
|
|
RYUJINX_TARGET_RELEASE_CHANNEL_OWNER: flathub
|
|
RYUJINX_TARGET_RELEASE_CHANNEL_REPO: org.ryujinx.Ryujinx
|
|
RYUJINX_TARGET_RELEASE_CHANNEL_NAME: master
|
|
build-commands:
|
|
- |
|
|
export PATH=$PATH:/run/build/Ryujinx/dotnet-sdk
|
|
export RYUJINX_GIT_SHORT_HASH=$(git rev-parse --short HEAD)
|
|
export RUNTIME_FRAMEWORK_VERSION=$(find nuget-sources -name 'microsoft.netcore.app.host.linux-x64.*' | grep -oP '(\d.\d.\d+.nupkg)' | grep -oP '(\d.\d.\d+)')
|
|
sed -r --in-place "s/\%\%RYUJINX_BUILD_VERSION\%\%/$RYUJINX_VERSION/g;" src/Ryujinx.Common/ReleaseInformation.cs
|
|
sed -r --in-place "s/\%\%RYUJINX_BUILD_GIT_HASH\%\%/$RYUJINX_GIT_SHORT_HASH/g;" src/Ryujinx.Common/ReleaseInformation.cs
|
|
sed -r --in-place "s/\%\%RYUJINX_TARGET_RELEASE_CHANNEL_NAME\%\%/$RYUJINX_TARGET_RELEASE_CHANNEL_NAME/g;" src/Ryujinx.Common/ReleaseInformation.cs
|
|
sed -r --in-place "s/\%\%RYUJINX_TARGET_RELEASE_CHANNEL_OWNER\%\%/$RYUJINX_TARGET_RELEASE_CHANNEL_OWNER/g;" src/Ryujinx.Common/ReleaseInformation.cs
|
|
sed -r --in-place "s/\%\%RYUJINX_TARGET_RELEASE_CHANNEL_REPO\%\%/$RYUJINX_TARGET_RELEASE_CHANNEL_REPO/g;" src/Ryujinx.Common/ReleaseInformation.cs
|
|
mkdir -p /app/bin
|
|
dotnet publish -c Release -r $RUNTIME /p:DebugType=embedded src/Ryujinx /p:Version=$RYUJINX_VERSION /p:SourceRevisionId=$RYUJINX_GIT_SHORT_HASH /p:ExtraDefineConstants="DISABLE_UPDATER%2CFORCE_EXTERNAL_BASE_DIR" /p:RuntimeFrameworkVersion=$RUNTIME_FRAMEWORK_VERSION --self-contained --source nuget-sources
|
|
if [ $? -ne 0 ]; then
|
|
exit 1;
|
|
fi;
|
|
cp -r --remove-destination /run/build/Ryujinx/src/Ryujinx/bin/Release/net7.0/$RUNTIME/publish/* /app/bin/
|
|
chmod +x /app/bin/Ryujinx.sh
|
|
mkdir -p /app/lib/ffmpeg
|
|
ln -s /usr/lib/x86_64-linux-gnu/libX11.so.6 /app/lib/libX11.so
|
|
install -Dm755 ryujinx-wrapper /app/bin/ryujinx-wrapper
|
|
install -Dm644 distribution/misc/Logo.svg /app/share/icons/hicolor/scalable/apps/ryujinx.svg
|
|
sources:
|
|
- type: archive
|
|
only-arches:
|
|
- x86_64
|
|
dest: dotnet-sdk
|
|
url: https://dotnetcli.azureedge.net/dotnet/Sdk/7.0.401/dotnet-sdk-7.0.401-linux-x64.tar.gz
|
|
sha256: 4634fa4da7ae4e3dadb83e320a87fb26f0cb12a7ca02bf9f10e6c3c1c91d645c
|
|
x-checker-data:
|
|
type: rotating-url
|
|
url: https://aka.ms/dotnet/7.0/dotnet-sdk-linux-x64.tar.gz
|
|
pattern: https://dotnetcli.azureedge.net/dotnet/Sdk/^([\d\.a-z-]+)$/dotnet-sdk-^([\d\.a-z-]+)$-linux-x64.tar.gz
|
|
- rd-submodules/ryujinx/nuget_sources.json
|
|
- type: git
|
|
url: https://github.com/Ryujinx/Ryujinx.git
|
|
commit: 7ccff037e87f82f3461f3e1422235e29800eaa2f
|
|
- type: file
|
|
path: rd-submodules/ryujinx/ryujinx-wrapper
|
|
|
|
# Ryujinx - END
|
|
|
|
# Needed from ES-DE 2.1.0+
|
|
- name: libpoppler-glib
|
|
buildsystem: cmake-ninja
|
|
config-opts:
|
|
- -DENABLE_BOOST=OFF
|
|
sources:
|
|
- type: archive
|
|
# original link not working, found a mirror
|
|
url: https://poppler.freedesktop.org/poppler-22.11.0.tar.xz
|
|
#url: https://gitlab.freedesktop.org/poppler/poppler/-/archive/poppler-22.11.0/poppler-poppler-22.11.0.tar.bz2
|
|
sha256: 093ba9844ed774285517361c15e21a31ba4df278a499263d4403cca74f2da828
|
|
cleanup:
|
|
- /lib/pkgconfig
|
|
- /include
|
|
- '*.a'
|
|
- '*.la'
|
|
|
|
|
|
# dependency of: XEMU, MelonDS (4.7.0)
|
|
- name: libslirp
|
|
buildsystem: meson
|
|
cleanup:
|
|
- /include
|
|
sources:
|
|
- type: archive
|
|
url: https://gitlab.freedesktop.org/slirp/libslirp/-/archive/v4.8.0/libslirp-v4.8.0.tar.gz
|
|
sha256: 2a98852e65666db313481943e7a1997abff0183bd9bea80caec1b5da89fda28c
|
|
x-checker-data:
|
|
type: anitya
|
|
project-id: 96796
|
|
stable-only: true
|
|
url-template: https://gitlab.freedesktop.org/slirp/libslirp/-/archive/v$version/libslirp-v$version.tar.gz
|
|
|
|
# dependency of: CEMU (1.0.26), DOLPHIN (1.0.27)
|
|
- name: libusb
|
|
config-opts:
|
|
- --disable-static
|
|
cleanup:
|
|
- /include
|
|
- /lib/*.la
|
|
- /lib/pkgconfig
|
|
sources:
|
|
- type: archive
|
|
url: https://github.com/libusb/libusb/releases/download/v1.0.27/libusb-1.0.27.tar.bz2
|
|
sha256: ffaa41d741a8a3bee244ac8e54a72ea05bf2879663c098c82fc5757853441575
|
|
x-checker-data:
|
|
type: anitya
|
|
project-id: 1749
|
|
stable-only: true
|
|
url-template: https://github.com/libusb/libusb/releases/download/v$version/libusb-$version.tar.bz2
|
|
|
|
# Dolphin - START
|
|
# why from source: AppImage not provided, only Flatpak
|
|
# https://github.com/flathub/org.DolphinEmu.dolphin-emu
|
|
# WHEN UPADTING: remember to update rd-submodules/dolphin contents
|
|
|
|
- name: xdg-screensaver-shim
|
|
buildsystem: meson
|
|
sources:
|
|
- type: archive
|
|
url: https://github.com/Unrud/xdg-screensaver-shim/archive/0.0.2.tar.gz
|
|
sha256: 0ed2a69fe6ee6cbffd2fe16f85116db737f17fb1e79bfb812d893cf15c728399
|
|
|
|
- name: dolphin-emu
|
|
buildsystem: cmake-ninja
|
|
config-opts:
|
|
- -DCMAKE_BUILD_TYPE=Release
|
|
- -DENABLE_ALSA=OFF
|
|
- -DENABLE_SDL=ON
|
|
- -DENABLE_EVDEV=ON
|
|
- -DDISTRIBUTOR=Flathub
|
|
cleanup:
|
|
- /share/man
|
|
post-install:
|
|
- install -D -t ${FLATPAK_DEST}/bin/ dolphin-emu-wrapper
|
|
- sed -i -e 's/viewBox="0 0 1024.02 571.29"/viewBox="0 -285.645 1024 1024" width="2048"
|
|
height="2048"/g' /app/share/icons/hicolor/scalable/apps/dolphin-emu.svg
|
|
sources:
|
|
- type: git
|
|
# Sometimes Dolphin or its submodules clone are failing in https so it must done in ssh
|
|
# fatal: remote transport reported error
|
|
# url: ssh://git@github.com/dolphin-emu/dolphin.git
|
|
url: https://github.com/dolphin-emu/dolphin.git
|
|
commit: cc3ff347b437fd80f3a2880d1bbc7ba2d5f191f4
|
|
# x-checker-data:
|
|
# type: json
|
|
# url: https://dolphin-emu.org/update/latest/beta
|
|
# commit-query: .hash
|
|
# version-query: .shortrev
|
|
# timestamp-query: .date
|
|
# is-main-source: true
|
|
# detects whether dolphin is running in a flatpak sandbox
|
|
# and makes it use xdg directories if it is.
|
|
# prevents dolphin from attempting to write conf files
|
|
# in non-writable paths, typically happens when a user
|
|
# has leftover files from a previous non-flatpak install
|
|
- type: patch
|
|
path: rd-submodules/dolphin/detectflatpak.patch
|
|
# version strings must match exactly for online multiplayer
|
|
- type: patch
|
|
path: rd-submodules/dolphin/nodirtyversion.patch
|
|
- type: script
|
|
commands:
|
|
- |
|
|
for i in {0..9}; do
|
|
test -S $XDG_RUNTIME_DIR/discord-ipc-$i ||
|
|
ln -sf {app/com.discordapp.Discord,$XDG_RUNTIME_DIR}/discord-ipc-$i;
|
|
done
|
|
dolphin-emu "$@"
|
|
dest-filename: dolphin-emu-wrapper
|
|
|
|
- name: universal_dynamic_input
|
|
buildsystem: simple
|
|
build-commands:
|
|
- mkdir -p ${FLATPAK_DEST}/retrodeck/extras/DynamicInputTextures
|
|
- cp -rf * ${FLATPAK_DEST}/retrodeck/extras/DynamicInputTextures/
|
|
sources:
|
|
- type: git
|
|
url: https://github.com/Venomalia/UniversalDynamicInput.git
|
|
commit: UNIVERSALDYNAMICINPUTCOMMITPLACEHOLDER
|
|
|
|
# Dolphin - END
|
|
|
|
# SOLARUS - START
|
|
# why from source: they only provide a snap
|
|
# https://github.com/flathub/org.solarus_games.solarus.Launcher
|
|
|
|
- name: luajit
|
|
no-autogen: true
|
|
cleanup:
|
|
- /bin
|
|
- /lib/*.a
|
|
- /include
|
|
- /lib/pkgconfig
|
|
- /share/man
|
|
sources:
|
|
- type: archive
|
|
url: https://luajit.org/download/LuaJIT-2.0.5.tar.gz
|
|
sha256: 874b1f8297c697821f561f9b73b57ffd419ed8f4278c82e05b48806d30c1e979
|
|
- type: shell
|
|
commands:
|
|
- sed -i 's|/usr/local|/app|' ./Makefile
|
|
|
|
- name: libmodplug
|
|
cleanup:
|
|
- /include
|
|
sources:
|
|
- type: archive
|
|
url: https://download.sourceforge.net/project/modplug-xmms/libmodplug/0.8.9.0/libmodplug-0.8.9.0.tar.gz
|
|
sha512: 880e10154fd367ee24ace53ca7e32a5c1fee7dfff1f934e6499944c12779427da63e2f55f8d6ce25db0a42a5b4424053bf64305b31dbfc4ef6a8909924d655fd
|
|
|
|
- name: physfs
|
|
buildsystem: cmake-ninja
|
|
config-opts:
|
|
- -DPHYSFS_BUILD_TEST=OFF
|
|
sources:
|
|
- type: archive
|
|
url: https://icculus.org/physfs/downloads/physfs-3.0.2.tar.bz2
|
|
sha256: 304df76206d633df5360e738b138c94e82ccf086e50ba84f456d3f8432f9f863
|
|
size: 194888
|
|
x-checker-data:
|
|
type: anitya
|
|
project-id: 3631
|
|
url-template: https://icculus.org/physfs/downloads/physfs-$version.tar.bz2
|
|
|
|
- name: solarus
|
|
buildsystem: cmake-ninja
|
|
builddir: true
|
|
config-opts:
|
|
- -DSOLARUS_GUI=OFF
|
|
sources:
|
|
- type: git
|
|
url: https://gitlab.com/solarus-games/solarus.git
|
|
tag: v1.6.5
|
|
commit: 3aec70b0556a8d7aed7903d1a3e4d9a18c5d1649
|
|
|
|
# SOLARUS - END |