diff --git a/README.md b/README.md index 2ce78e93..3b7fa9be 100644 --- a/README.md +++ b/README.md @@ -23,14 +23,21 @@ Or you can download and use prebuilt binaries from the CI-builds. You can find s To download artifacts, click on the newest action and download the artifacts. -[Android](https://github.com/mgerhold/oopetris/actions/workflows/android.yml) +[Android](https://github.com/OpenBrickProtocolFoundation/oopetris/actions/workflows/android.yml) -[Linux (Flatpak)](https://github.com/mgerhold/oopetris/actions/workflows/flatpak.yml) +[Linux (Flatpak)](https://github.com/OpenBrickProtocolFoundation/oopetris/actions/workflows/flatpak.yml) -[Nintendo Switch /3DS](https://github.com/mgerhold/oopetris/actions/workflows/nintendo.yml) +[Nintendo Switch / 3DS](https://github.com/OpenBrickProtocolFoundation/oopetris/actions/workflows/nintendo.yml) -There is no correct Windows and MacOS build atm, you have to built it yourself or use the (maybe not published yet) release builds on github. +[WIndows](https://github.com/OpenBrickProtocolFoundation/oopetris/actions/workflows/installer.yml) +There is no correct MacOS build atm, you have to built it yourself or use the (maybe not published yet) releases on GitHub. + +## Releases + +There is an official website for OOPetris, where you also can find different links to auto updatable releases. + +For concrete instructions see [here](docs/releases.md) ## Logo diff --git a/assets/com.github.mgerhold.OOPetris.metainfo.xml.in b/assets/com.github.mgerhold.OOPetris.metainfo.xml.in new file mode 100644 index 00000000..60089084 --- /dev/null +++ b/assets/com.github.mgerhold.OOPetris.metainfo.xml.in @@ -0,0 +1,31 @@ + + + @APP_ID@ + OOPetris + A Tetris clone in OOP + MIT + MIT + + pointing + keyboard + touch + gamepad + + +

+ A Tetris clone in OOP +

+
+ @APP_ID@.desktop + + + + + https://github.com/OpenBrickProtocolFoundation/oopetris/releases/tag/0.5.6 + + + https://oopetris.totto.lt/ + https://github.com/OpenBrickProtocolFoundation/oopetris/issues + https://github.com/OpenBrickProtocolFoundation/oopetris/pulls + https://github.com/OpenBrickProtocolFoundation/oopetris +
diff --git a/docs/develop.md b/docs/develop.md index ed263bb9..796cab95 100644 --- a/docs/develop.md +++ b/docs/develop.md @@ -8,13 +8,12 @@ For concrete instructions, see the list below: ## Linux -[linux](linux.md) +[Linux](linux.md) ## Serenity OS [serenity](serenity.md) - ## Windows [windows](windows.md) @@ -27,12 +26,10 @@ For concrete instructions, see the list below: [switch](switch.md) - ## Nintendo 3DS [switch](3ds.md) - ## Android [android](android.md) diff --git a/docs/releases.md b/docs/releases.md new file mode 100644 index 00000000..b45fa9ab --- /dev/null +++ b/docs/releases.md @@ -0,0 +1,45 @@ + + +# OOPetris Releases + + +We support multiple platforms and different types of executables / packages. +So here is a list of supported "package managers" / installation platforms. + +## Android / FDroid + +> [!NOTE] +> This is still WIP + +## Linux / Flatpak + +We provide stable and beta releases via 2 remotes: + +To use the stable version, use this repo: + +```bash +flatpak remote-add --if-not-exists oopetris-stable https://oopetris.totto.lt/repo/assets/oopetris.stable.flatpakrepo + +``` + +And to use beta version: + +```bash +flatpak remote-add --if-not-exists oopetris-beta https://oopetris.totto.lt/repo/assets/oopetris.beta.flatpakrepo + +``` + +Than install it by using this command: + +```bash +flatpak install -v com.github.mgerhold.OOPetris +``` + +To update use the normal flatpak update command, keep in mind, that the bet may be unstable and break things, use with caution! + +## Other + +> [!NOTE] +> This is still WIP + +All other platforms have more difficult to support auto update capabilities, so you can find more on our [website](https://oopetris.totto.lt/releases). diff --git a/tools/install/meson.build b/tools/install/meson.build index db010c62..1a4e25d2 100644 --- a/tools/install/meson.build +++ b/tools/install/meson.build @@ -6,7 +6,12 @@ if build_application meson.project_source_root() / 'assets', install_dir: 'share/oopetris', install_tag: 'assets', - exclude_files: ['oopetris.desktop.in', 'OOPetris.svg', 'recordings.magic'], + exclude_files: [ + 'oopetris.desktop.in', + 'com.github.mgerhold.OOPetris.metainfo.xml.in', + 'OOPetris.svg', + 'recordings.magic', + ], exclude_directories: ['icon'], ) @@ -15,6 +20,8 @@ if build_application app_name = 'com.github.mgerhold.OOPetris' endif + require_checks = get_option('tests') + conf = configuration_data() conf.set('APP_NAME', app_name) @@ -54,8 +61,8 @@ if build_application endif endif - configure_file( - input: meson.project_source_root() / 'assets/oopetris.desktop.in', + desktop_file = configure_file( + input: meson.project_source_root() / 'assets' / 'oopetris.desktop.in', output: app_name + '.desktop', configuration: conf, install: true, @@ -63,6 +70,48 @@ if build_application install_tag: 'other', ) + desktop_file_validate_exe = find_program('desktop-file-validate', required: require_checks) + + if desktop_file_validate_exe.found() + test( + 'validate desktop file', + desktop_file_validate_exe, + args: [desktop_file], + ) + endif + + if is_flatpak_build + + flaptak_conf = configuration_data() + flaptak_conf.set('APP_ID', app_name) + flaptak_conf.set('APP_VERSION', meson.project_version()) + + metainfo_file = configure_file( + input: meson.project_source_root() / 'assets' / 'com.github.mgerhold.OOPetris.metainfo.xml.in', + output: app_name + '.metainfo.xml', + configuration: flaptak_conf, + install: true, + install_dir: datadir / 'metainfo', + install_tag: 'other', + ) + + ascli_exe = find_program('appstreamcli', required: require_checks) + + if ascli_exe.found() + test( + 'validate metainfo file', + ascli_exe, + args: [ + 'validate', + '--no-net', + '--explain', + '--pedantic', metainfo_file, + ], + ) + endif + + endif + logos = [ '24x24.png', '48x48.png',