diff --git a/.editorconfig b/.editorconfig index 3c0aacdf03..393f23da7f 100644 --- a/.editorconfig +++ b/.editorconfig @@ -11,7 +11,7 @@ insert_final_newline = true indent_style = space indent_size = 4 -[*.{sh,rb,js,yml,adoc}] +[*.{sh,rb,js,yml,yaml,adoc}] indent_style = space indent_size = 2 diff --git a/.github/workflows/linter.yml b/.github/workflows/linter.yml new file mode 100644 index 0000000000..87c3c71d56 --- /dev/null +++ b/.github/workflows/linter.yml @@ -0,0 +1,62 @@ +name: Lint Files + +on: + push: + pull_request: + +jobs: + lint: + name: YAML, CMake & Markdown + runs-on: ubuntu-latest + steps: + - name: Clone Repository + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Install tools + run: | + pip install yamllint + pip install cmakelint + + - uses: tj-actions/changed-files@v46 + if: '!cancelled()' + id: changed-files-yaml + with: + files: | + **/*.yaml + **/*.yml + - name: Lint YAML files + if: steps.changed-files-yaml.outputs.any_changed == 'true' + run: | + yamllint -d "{extends: relaxed, rules: {line-length: {max: 100}}}" \ + ${{ steps.changed-files-yaml.outputs.all_changed_files }} + # we often have extra long lines, so relaxing the check (from 80) + + - uses: tj-actions/changed-files@v46 + if: '!cancelled()' + id: changed-files-cmake + with: + files: | + **/*.cmake + **/CMakeLists.txt + - name: Lint CMake files + if: steps.changed-files-cmake.outputs.any_changed == 'true' + run: | + cmakelint --filter=-whitespace/tabs --linelength=120 \ + ${{ steps.changed-files-cmake.outputs.all_changed_files }} + # we often have extra long lines, so relaxing the check (from 80) + # also do not warn about tabstops + + - uses: tj-actions/changed-files@v46 + if: '!cancelled()' + id: changed-files-md + with: + files: '**/*.md' + separator: "," + - name: Lint Markdown files + if: steps.changed-files-md.outputs.any_changed == 'true' + uses: DavidAnson/markdownlint-cli2-action@v19 + with: + globs: ${{ steps.changed-files-md.outputs.all_changed_files }} + separator: "," diff --git a/.github/workflows/pr_labels.yml b/.github/workflows/pr_labels.yml index e4d84c4499..9c318344ec 100644 --- a/.github/workflows/pr_labels.yml +++ b/.github/workflows/pr_labels.yml @@ -15,10 +15,10 @@ jobs: - name: Clone repository uses: actions/checkout@v4 with: - # pull_request_target is run under forks, use main repo source - fetch-depth: 0 - repository: EasyRPG/Player - ref: master + # pull_request_target is run under forks, use main repo source + fetch-depth: 0 + repository: EasyRPG/Player + ref: master - name: Update labels uses: actions/labeler@v5 diff --git a/builds/flatpak/org.easyrpg.player.yml b/builds/flatpak/org.easyrpg.player.yml index 89028f2e5f..3e0baefcd3 100644 --- a/builds/flatpak/org.easyrpg.player.yml +++ b/builds/flatpak/org.easyrpg.player.yml @@ -1,6 +1,6 @@ app-id: org.easyrpg.player runtime: org.freedesktop.Platform -runtime-version: '23.08' +runtime-version: '24.08' sdk: org.freedesktop.Sdk command: easyrpg-player rename-desktop-file: easyrpg-player.desktop @@ -15,6 +15,11 @@ finish-args: # - --filesystem=home # user can store games anywhere - --device=all # needed for gamepad access - --allow=devel +cleanup-commands: + # provide launcher and wizard + - mv /app/bin/{easyrpg-player,org.easyrpg.player.real} + - mv /app/bin/{firststart,easyrpg-firststart} + - mv /app/bin/{launcher,easyrpg-player} cleanup: - /include - /lib/cmake @@ -22,7 +27,7 @@ cleanup: - /lib/*.so modules: # external libraries - # this is copied from shared-modules to not add the dependency on it + # this is adapted from shared-modules to not add the dependency on it - name: libfluidsynth buildsystem: cmake-ninja config-opts: @@ -30,8 +35,8 @@ modules: sources: - type: git url: https://github.com/FluidSynth/fluidsynth.git - tag: v2.3.4 - commit: 5ecdc4568e45123216c6888892caad07918ef127 + tag: v2.3.5 + commit: 619fc5c3380513146cd05e17decf8d747b02bba4 cleanup: - /bin - /share @@ -44,8 +49,8 @@ modules: sources: - type: git url: https://github.com/fmtlib/fmt.git - tag: '9.1.0' - commit: a33701196adfad74917046096bf5a2aa0ab0bb50 + tag: 11.1.4 + commit: 123913715afeb8a437e6388b4473fcc4753e1c9a - name: libxmp buildsystem: cmake-ninja config-opts: @@ -56,17 +61,45 @@ modules: sources: - type: git url: https://github.com/libxmp/libxmp.git - tag: libxmp-4.6.0 - commit: 8201d26cf933688a8be64292457c429fd8e654ab + tag: libxmp-4.6.2 + commit: 828ef357943e1fbb13910e7a6fca21987c5c5827 - name: libinih buildsystem: meson config-opts: - --buildtype=debugoptimized + - -Ddefault_library=shared + - -Ddistro_install=true + - -Dwith_INIReader=false sources: - type: git url: https://github.com/benhoyt/inih.git - tag: 58 - commit: 5cc5e2c24642513aaa5b19126aad42d0e4e0923e + tag: r60 + commit: 9de2a5fe4956447a22a324e2efc0648c5aad5285 + - name: nlohmann_json + buildsystem: cmake-ninja + builddir: true + config-opts: + - -DJSON_BuildTests=OFF + sources: + - type: git + url: https://github.com/nlohmann/json.git + tag: v3.11.3 + commit: 9cca280a4d0ccf0c08f47a99aa71d1b0e52f8d03 + cleanup: + - /share + - name: lhasa + config-opts: + - --enable-shared + - --disable-static + sources: + - type: git + url: https://github.com/fragglet/lhasa.git + tag: v0.4.0 + commit: 3b8f502c1480c5d9f2927e95d7e0f022b9cdd0a1 + cleanup: + - /bin + - /share/man + - /lib/*.la # own libraries - name: liblcf buildsystem: cmake-ninja @@ -84,6 +117,7 @@ modules: - /share - name: player buildsystem: cmake-ninja + builddir: true config-opts: - -DCMAKE_BUILD_TYPE=RelWithDebInfo - -DPLAYER_VERSION_APPEND='(Flatpak)' @@ -93,3 +127,23 @@ modules: cleanup: - /share/bash-completion - /share/pixmaps + - name: wizard + buildsystem: cmake-ninja + subdir: Flatpak/firststart + config-opts: + - -DCMAKE_BUILD_TYPE=RelWithDebInfo + sources: + - type: git + disable-submodules: true + url: https://github.com/EasyRPG/packaging.git + commit: a5f26c7243d24a690b2615dff4955148d3f79c14 + - name: launcher + buildsystem: simple + subdir: Flatpak + sources: + - type: git + disable-submodules: true + url: https://github.com/EasyRPG/packaging.git + commit: a5f26c7243d24a690b2615dff4955148d3f79c14 + build-commands: + - install -Dm755 flatpak-launcher.sh /app/bin/launcher diff --git a/builds/snap/snapcraft.yaml b/builds/snap/snapcraft.yaml index 68b88de53e..179118eab1 100644 --- a/builds/snap/snapcraft.yaml +++ b/builds/snap/snapcraft.yaml @@ -1,13 +1,15 @@ name: easyrpg-player -base: core20 +base: core22 adopt-info: easyrpg-player summary: easyrpg-player description: | - EasyRPG Player is a program that allows to play games created with RPG Maker 2000 and 2003. - EasyRPG is developed by the amazing people running the [EasyRPG project](https://easyrpg.org/). + EasyRPG Player is a program that allows to play games created with + RPG Maker 2000 and 2003. EasyRPG is developed by the amazing people running + the [EasyRPG project](https://easyrpg.org/). It aims to be a free (as in freedom) cross-platform RPG Maker 2000/2003 interpreter. - The main goal is to play all games created with them as the original game interpreter (RPG_RT) does. + The main goal is to play all games created with them as the original + game interpreter (RPG_RT) does. confinement: strict grade: stable @@ -17,7 +19,7 @@ apps: plugs: - x11 - wayland - - unity7 + - unity8 - opengl - audio-playback - joystick @@ -35,16 +37,18 @@ layout: parts: liblcf: - plugin: autotools + plugin: cmake source: https://github.com/EasyRPG/liblcf source-type: git build-environment: - CXXFLAGS: "$CXXFLAGS -fuse-ld=gold -flto=$(nproc) -ffunction-sections -fdata-sections" - - LDFLAGS: "$LDFLAGS -fuse-ld=gold -flto=$(nproc) -Wl,--gc-sections" - autotools-configure-parameters: - - --prefix=/usr - - --disable-static - - --disable-tools + - LDFLAGS: "$LDFLAGS -fuse-ld=gold -flto=$(nproc) -Wl,--gc-sections" + cmake-parameters: + - -DCMAKE_BUILD_TYPE=Release + - -DCMAKE_INSTALL_PREFIX=/usr + - -DBUILD_SHARED_LIBS=ON + - -DLIBLCF_ENABLE_TOOLS=OFF + - -DLIBLCF_UPDATE_MIMEDB=OFF override-build: | git fetch snapcraftctl build @@ -52,20 +56,24 @@ parts: build-packages: - libexpat1-dev - libicu-dev + - libinih-dev - icu-devtools stage-packages: - - libicu66 + - libicu70 + - libinih1 - easyrpg-player: - plugin: autotools - after: [libwildmidi,liblcf,desktop-glib-only] + easyrpg-player: + plugin: cmake + after: [libwildmidi, liblcf, desktop-glib-only] source: https://github.com/EasyRPG/Player source-type: git build-environment: - CXXFLAGS: "$CXXFLAGS -fuse-ld=gold -flto=$(nproc) -ffunction-sections -fdata-sections" - - LDFLAGS: "$LDFLAGS -fuse-ld=gold -flto=$(nproc) -Wl,--gc-sections" - autotools-configure-parameters: - - --prefix=/usr + - LDFLAGS: "$LDFLAGS -fuse-ld=gold -flto=$(nproc) -Wl,--gc-sections" + cmake-parameters: + - -DCMAKE_BUILD_TYPE=Release + - -DCMAKE_PREFIX_PATH=${SNAPCRAFT_STAGE}/usr + - -DCMAKE_INSTALL_PREFIX=/usr override-build: | last_committed_tag="$(git tag --list | tail -n1)" last_released_tag="$(snap info easyrpg-player | awk '$1 == "latest/beta:" { print $2 }')" @@ -80,38 +88,40 @@ parts: fi snapcraftctl build strip --strip-all $SNAPCRAFT_PART_INSTALL/usr/bin/easyrpg-player - build-packages: + - libfluidsynth-dev - libfmt-dev - libfreetype6-dev - libharfbuzz-dev + - liblhasa-dev - libmpg123-dev - libopusfile-dev - libpixman-1-dev - libpng-dev - libsndfile1-dev - libsdl2-dev - - libsdl2-mixer-dev - libspeexdsp-dev - libvorbis-dev - libxmp-dev - stage-packages: - freepats + - libfluidsynth3 + - libfmt8 - libfreetype6 - libharfbuzz0b - libmpg123-0 - libgl1-mesa-dri - libgl1-mesa-glx - libglu1-mesa + - liblhasa0 - libopusfile0 - libpixman-1-0 - libpng16-16 - libsdl2-2.0-0 - - libsdl2-mixer-2.0-0 - libsndfile1 - libspeexdsp1 - libvorbis0a + - libvorbisfile3 - libwayland-egl1-mesa - libwildmidi-config - libxmp4 @@ -122,7 +132,7 @@ parts: source-type: git build-environment: - CXXFLAGS: "$CXXFLAGS -fuse-ld=gold -flto=$(nproc) -ffunction-sections -fdata-sections" - - LDFLAGS: "$LDFLAGS -fuse-ld=gold -flto=$(nproc) -Wl,--gc-sections" + - LDFLAGS: "$LDFLAGS -fuse-ld=gold -flto=$(nproc) -Wl,--gc-sections" cmake-parameters: - -DCMAKE_BUILD_TYPE=Release - -DBUILD_SHARED_LIBS=ON diff --git a/resources/unix/easyrpg-player.metainfo.xml b/resources/unix/easyrpg-player.metainfo.xml index b65225d452..3d609a75f6 100644 --- a/resources/unix/easyrpg-player.metainfo.xml +++ b/resources/unix/easyrpg-player.metainfo.xml @@ -6,7 +6,7 @@ EasyRPG Team easyrpg_AT_easyrpg.org - + FSFAP GPL-3.0-or-later @@ -67,6 +67,16 @@ + + + + "Stun" + + + https://blog.easyrpg.org/2025/04/easyrpg-player-0-8-1-stun/ + + +
+ "Stun" +
+ https://blog.easyrpg.org/2025/04/easyrpg-player-0-8-1-stun/ +