Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

1.19.0 compressed tarball > 10MB bigger than 1.18.0 #16645

Closed
rofl0r opened this issue Jun 3, 2024 · 5 comments · Fixed by #16701
Closed

1.19.0 compressed tarball > 10MB bigger than 1.18.0 #16645

rofl0r opened this issue Jun 3, 2024 · 5 comments · Fixed by #16701

Comments

@rofl0r
Copy link
Contributor

rofl0r commented Jun 3, 2024

Description

the bz2 tarball snapshot for 1.19.0 from libretro's gitlab is > 10 MB bigger than the one for 1.18.0, the .gz available from github even more.

[Description of the bug]

the main culprit seems to be the addition of binaries
https://github.com/libretro/RetroArch/blob/00b8a5f15c7d671cdf107c3d01e71a729581d1cd/pkg/apple/Frameworks/MoltenVK.xcframework/ios-arm64/MoltenVK.framework/MoltenVK
from pr #16463 by @warmenhoven . i doubt these binaries have any legitimate reason to not only bloat the repo itself, but also source tarballs.
they should be removed and fetched from somewhere else for people doing ios aarch64 builds (or the CI), if they cant be easily be built from source.
the tarball of 1.18.0, weighing at >50 MB is already way more than big enough.

@warmenhoven
Copy link
Contributor

warmenhoven commented Jun 5, 2024

It's a fair point and something I'm not happy with either, but tldr, I'm not planning on doing anything about it.

As a reference point, the 1.19.0 tgz file is approximately 64MB. A tgz file containing only MoltenVK.framework is 18MB. So, it is quite significant, but the tgz size is increased by less than 30%.

There are a few options for how to bring MoltenVK in, but basically the permutations are: source or binary, bundled or external, and then potentially different decisions for repo vs tarball.

Distributing source is not a great option: Building MoltenVK from source is mostly straightforward but very time consuming; moreover the source distribution for MoltenVK and its dependencies is roughly two orders of magnitude greater than 18MB compressed. That is complicated by the fact that our MoltenVK framework is actually two different versions of MoltenVK; we use an older version on tvOS because of incompatibilities in newer versions of MoltenVK with old versions of tvOS. Also we have custom patches on top of MoltenVK (to provide HDR support on iOS and tvOS using the pixel format we use) so just expecting the user to provide them will not work well. (Of course the source for MoltenVK is available for those who want it, but separately.)

For the git repo, keeping the binary in the repo is again not great but adds a relatively insignificant overhead to the 738MB for a fresh clone. The binaries do not change regularly. Having the build system fetch them has caused problems for the CI system for similar related fetches in the past. And having them immediately available for people who just want to build RetroArch for macOS/iOS/tvOS keeps the build instructions simple (right now you only need to install Xcode, clone the source, and open the Xcode workspace; there's no confusion about how to install them so Xcode can find them). The lower barrier to entry is worthwhile in my opinion. (I'll note that other popular emulators like ppsspp have taken this approach as well.)

For the tarball, this one I am a little bit more ambivalent to. It would be possible to have two tgz files: one without MoltenVK entirely, and the other either just MoltenVK or the combination of the two. I'm of the opinion that the simplicity of only having one source distribution that is complete for all platforms is beneficial and worth the cost of having that one tgz file be 30% bigger. Clearly there's a limit at which that conclusion changes and I understand each person might set that limit differently, but I'm comfortable with it as is and don't intend to address it.

As a footnote, the increase from 1.18 to 1.19 was only 10MB even though MoltenVK is more than 18MB; this is because between the two versions, support for compiling for the iOS and tvOS simulators was added. The simulators are an invaluable development and debugging tool and iOS developers would naturally expect that the source distribution should work for the simulator. I don't consider any of the five platforms (macOS, iOS, iOS simulator, tvOS, tvOS simulator) less valuable or worthy of being included in the source distribution.

@rofl0r
Copy link
Contributor Author

rofl0r commented Jun 5, 2024

in my opinion, binaries have no place in source code repositories, especially if they're used during the build - as in executed or linked in. this is quite contrary to the expectation of people trying to build such source code. they will probably not even be aware of having some preexisting binary code linked in or executed on their system - which could be malicious (mind you, i'm not suggesting you're deliberately planting malicious code, but the system you've been using to build those binaries could already have been infected).

aside from the trust aspect, the size is the biggest issue. once in the git history, you'll never be able to remove them, unless you rewrite the history. even if the binaries are not expected to change often, they will have to at some point.
as you mentioned, the current clone is already >700mb, most likely because some people checked in binaries in the past. if care had been taken to avoid this from the beginning, the complete clone would almost certainly not exceed 50mb.

we had this problem with the openbor svn repo, where a simple checkout was over 2gb because they had checked in complete toolchains, 7zip installers for windows and practically everything a windows user would need to compile the repo for any supported platform. having to fetch 2gb from a slow network is quite a high barrier to entry for a new contributor who just wants to contribute a patch.

ppsspp is another case where an outrageous amount of data has to be fetched to compile from source, split overall several git submodules, including lots of prebuilt library code.

now let's look at possible solutions:

  • the ci or whoever needs the prebuilt moltenvk could simply fetch the existing 1.19.0 tarball which already has it included and extract that part into the source tree.
  • the prebuilt stuff could be placed in a git submodule. the CI or user would simply need to do a recursive clone. (but please don't use submodules for code, else the source distribution becomes a mess). anyone else can just clone without submodules and still get the complete code.
  • if you really insist on keeping the git repo cluttered with binaries, a CI job that's executed on pushing a tag could create a source tarball with binaries deleted before packing it up and uploading the artifact. this could even produce a tar.xz which has way better compression than both gz and bz2 while extracting much faster than bz2 and only slightly slower than gz.

i submitted such a CI job to ppsspp, because it was impossible to get a complete source snapshot without using a recursive git clone. the job is launched after creating a release, does a recursive git clone, then removes all known pre-built binaries and creates a tar.xz.
this allows distro maintainers to use existing infracstructure to download the entire release in a single moderately sized (about 40mb) source tarball, without being forced to clone about 2 gigs of submodules.

@rofl0r
Copy link
Contributor Author

rofl0r commented Jun 5, 2024

as a test, i removed pkg wii deps/glslang/glslang/Test which are all superfluous for a POSIX platform, and the resulting tar.bz2 is 14 mb, and as tar.xz 11mb. that seems to be a reasonable size for distributing the source for POSIX platforms (linux, BSD, haiku, etc).
would there be interest in having a CI job that creates such a tarball on tagging a release ?
i could probably whip that up in half an hour, given that i already did almost the same thing for ppsspp. the tarball could be named e.g. "retroarch-1.19.2-posix-source.tar.xz"
(though i personally think that deps/glslang/glslang/Test should be removed entirely from the repo, "wii" - which contains pre-built libraries for wii be moved into pkg, and pkg be turned into a subrepo)
@LibretroAdmin @warmenhoven

@schellingb
Copy link
Contributor

I agree with the sentiment, purely because I think one of the great appeals of RetroArch for new contributors is the ease of entry. I wouldn't be here weren't it for the relatively small size of the repository and griffin.c making it easy as pie to compile and run RetroArch without needing to trust some convoluted opaque build system I have never heard of.

I like to keep things light, so back when github supported SVN as clients I used sparse checkout to remove the /pkg directory and a few more stuff not relevant to the platform I'm working on. Now that I'm forced to use git, I limited the amount of history cloned with --depth and then I deleted pkg and marked the deletions locally as "assume-unchanged" so git ignores it. Though the data still exists in .git/objects, can't get rid of that.

# to ignore locally deleted files after cloning the repo and deleting the uninteresting files/directories:
git ls-files --deleted -z | git update-index --assume-unchanged -z --stdin

Here's some big stuff in the RetroArch repo (of the total 227 MB ) not every developer needs:

Unused things like the large samples and documentation from SPIRV or userland should be wiped I think. The MoltenVK framework binaries for Apple platforms sure stand out. Would it somehow be possible to have them as source under /deps/ and compile it as needed? The source is probably also humongous but maybe smaller than binaries for 5 separate platforms.

@zoltanvb
Copy link
Contributor

zoltanvb commented Jun 7, 2024

(Userland is for Raspberry Pi, see #15972, that is awaiting testing from someone who can check CRTSwitchRes operation)

rofl0r added a commit to rofl0r/RetroArch that referenced this issue Jun 16, 2024
rofl0r added a commit to rofl0r/RetroArch that referenced this issue Jun 16, 2024
Misunderstood-Wookiee added a commit to Misunderstood-Wookiee/RetroArch-UWP that referenced this issue Jul 6, 2024
* (libretro-common) Some functions now return len

* More string_list removal in menu_displaylist.c

* (menu_displaylist.c) Get rid of more string_list usage

* (playlist.c) Get rid of string_list usage

* (menu) More string_list removal

* file_archive_get_file_list_cb - remove string_list usage

* (menu_cbs_title.c) Remove string_list usage

* Include <compat/posix_string.h> for strtok_r MSVC compatibility

* Slight change in header include

* (archive_file) Don't know why this won't compile for MSVC -
<compat/posix_string.h> gets included which should redefine strtok_r
for MSVC usage but it just doesn't work and fails at linking stage, will have to figure this out
later

* Remove unused variables

* (audio/common) Fix header includes

* (menu_displaylist.c) More string_list removal

* More string_list removal

* Fetch translations from Crowdin

* generic_action_ok_dropdown_setting - don't use string_list for
ST_STRING_OPTIONS

* Fix ST_STRING_OPTIONS 'selected' dropdown item - was off by one

* Rewrite action_ok_rdb_entry_submenu - no more string_list usage

* Rewrite 2 of action_ok_rdb_entry_submenu - now with less
allocations

* (gfx_animation.c) Small cleanups

* (task_overlay.c) No more string_list usage

* (task_overlay) remove unused variable

* Replace some strlcat usage with strlcpy

* Get rid of some unnecessary strlcat usage

* (dylib.c) Avoid strlcat usage, camelcase variable name removal
and C comments

* (gfx_animation.c) Use strlcpy

* Buildfix

* iOS/tvOS: Add ardens and anarch cores to app store build

* (RGUI) rgui_update_menu_sublabel - use strtok_r instead of string_list

* (ozone) ozone_draw_osk - use strtok_r instead of string_list

* (task_content.c) content_file_override_set - use strtok_r instead
of string_list

* Put comment back

* (core_updater_list) replace string_list usage with strtok_r

* (core_updater_list) Remove more string_list usage

* Simplifications

* input_config_get_bind_string - do proper character
counting now, avoid strlcats, and have functions return
size_t value indicating how many chars were written

* (steam) avoid strlcat usage

* task_save_handler - rewrite code - put string on stack instead
of heap, avoid using strlcat

* Cut down on strlcats

* CI: add github workflow to create source-only release tarball

closes libretro#16645

* Replace more strlcats

* x11: add support for Xss screensaver disabling

in case xdg-screensaver isn't installed.

* Remove some header includes

* (cheevos) Cleanups - only use snprintf for formatting

* Fetch translations from Crowdin

* Fullscreen refresh rate improvements

Handle refresh rate as float in general, and add also extra
attributes (interlaced, doublescan) for video modes.

Make it possible to select exact mode (interlaced / doublescan modes
will not be selected), and allow close matches such as 49.5 Hz
for PAL 50 Hz.

* Fix MSVC05 compilation failure

* Fetch translations from Crowdin

* (menu_cbs_deferred_push) Get rid of string_list usage

* Simplify gfx_animation_line_ticker_smooth

* add intfstream_truncate for file streams

Will return 0 for non-file streams.  I didn't want to mess around with
memory_stream (which could in theory have a truncate impl that sets
size) because there were globals and stuff and I got nervous (also
truncate might *grow* a file if the new length is longer than the old
one and then I'd have to think about realloc, etc).

* change some replay file seeks to seek+truncates in record mode

* tidy up intfstream_truncate ifdefs.

* Fetch translations from Crowdin

* [Wayland] Support for mouse buttons 4&5 and horizontal wheel

* Fetch translations from Crowdin

* Fetch translations from Crowdin

* Fetch translations from Crowdin

* (libretro-common) Use inline assembly for PowerPC libco

This puts the code into the binary's .text section, which is needed
for platforms without the ability to map it as RWX (WiiU). Using
GNU/AT&T syntax for the assembly here.

* Fix exclusive fullscreen condition

Spotted in Android compilation:
warning: bitwise or with non-zero value always evaluates to true [-Wtautological-bitwise-compare]

* Fix keyboard events missing RETROKMOD_NUMLOCK or RETROKMOD_SCROLLOCK
- Add missing numlock mod to dinput
- Add missing scrolllock mod to x11
- Add missing capslock, numlock, scrolllock and meta mods to android
- Add missing scrolllock mod to sdl
- Add missing capslock, numlock, scrolllock and meta mods to switch
- Add missing numlock mod to winraw
- Add missing numlock mod to uwp

* Add config values and menu items for viewport bias x/y

* Refactor viewport handling/aspect ratio scaling.

This mirrors the use of video_viewport_get_scaled_integer for
non-integer scaling at various aspect ratios.  Two variants are
provided, one with implicit device and desired ratios and one with
explicit ratios.

Also added a flag to video_viewport_get_scaled_integer to indicate the
direction of positive y.

* Fix build errors on wiiu, directx

* [X11] Support for mouse buttons 4 and 5

Support added for extra mouse buttons. Since these buttons were
not returned by XQueryPointer(), some additional logic was needed
which fit best to scroll wheel handling.

* allow saves and configs to be optionally synced to cloud

* ensure that all folders are enabled by default.

* Fetch translations from Crowdin

* (D3D8) Fix build

* Silence warnings

* (menu_cbs_ok.c) Some cleanups, warning fixes, use strtok_r instead
of strtok

* (glslang) use strtok_r instead of strtok

* strtok_r - small syntactic cleanup

* Add missing header

* Flip default y positive direction for viewport calc

This should fix metal and maybe some directx resizes

* Use device ratio when determining portrait orientation

* Fetch translations from Crowdin

* Skip core unload when Quit on Close Content is set

* Fix libretro#16562 support bluetooth keyboards on tvos

* Fetch translations from Crowdin

* Add header include for rhmap.h

* Try to avoid strdup to avoid portability issues

* Buildfix

* Fetch translations from Crowdin

* Android: Improvements to DocumentProvider
Added move and rename methods
Provider notifies viewer to refresh view when files are changed
Bumped up TargetApi annotation for DocumentsContract.buildTreeDocumentUri. Could alternatively use androidx compat class.

* Android: Remove External Storage permission

* Android: Add function to migrate RetroArch folder from sdcard.

* Improvements to migration code
Will be squashed before commit

* Revert "Improvements to migration code Will be squashed before commit"

This reverts commit 3dab003.

* Revert "Android: Add function to migrate RetroArch folder from sdcard."

This reverts commit b7235e4.

* Revert "Android: Remove External Storage permission"

This reverts commit 850560d.

* Revert "Android: Improvements to DocumentProvider Added move and rename methods Provider notifies viewer to refresh view when files are changed Bumped up TargetApi annotation for DocumentsContract.buildTreeDocumentUri. Could alternatively use androidx compat class."

This reverts commit 72db301.

* Fetch translations from Crowdin

* Fetch translations from Crowdin

* Fetch translations from Crowdin

* (rhmap) use custom strdup

* Fetch translations from Crowdin

* Bump robinraju/release-downloader from 1.9 to 1.11

Bumps [robinraju/release-downloader](https://github.com/robinraju/release-downloader) from 1.9 to 1.11.
- [Release notes](https://github.com/robinraju/release-downloader/releases)
- [Commits](robinraju/release-downloader@v1.9...v1.11)

---
updated-dependencies:
- dependency-name: robinraju/release-downloader
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

* Bump actions/setup-java from 3 to 4

Bumps [actions/setup-java](https://github.com/actions/setup-java) from 3 to 4.
- [Release notes](https://github.com/actions/setup-java/releases)
- [Commits](actions/setup-java@v3...v4)

---
updated-dependencies:
- dependency-name: actions/setup-java
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>

* Bump actions/setup-python from 4 to 5

Bumps [actions/setup-python](https://github.com/actions/setup-python) from 4 to 5.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](actions/setup-python@v4...v5)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: libretroadmin <[email protected]>
Co-authored-by: github-actions <[email protected]>
Co-authored-by: Eric Warmenhoven <[email protected]>
Co-authored-by: rofl0r <[email protected]>
Co-authored-by: zoltanvb <[email protected]>
Co-authored-by: zoltanvb <[email protected]>
Co-authored-by: Joseph C. Osborn <[email protected]>
Co-authored-by: Ash Logan <[email protected]>
Co-authored-by: schellingb <[email protected]>
Co-authored-by: Jay Paul <[email protected]>
Co-authored-by: Jonathan Rascher <[email protected]>
Co-authored-by: cwyc <[email protected]>
Co-authored-by: LibretroAdmin <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Misunderstood-Wookiee added a commit to Misunderstood-Wookiee/RetroArch-UWP that referenced this issue Jul 6, 2024
* (libretro-common) Some functions now return len

* More string_list removal in menu_displaylist.c

* (menu_displaylist.c) Get rid of more string_list usage

* (playlist.c) Get rid of string_list usage

* (menu) More string_list removal

* file_archive_get_file_list_cb - remove string_list usage

* (menu_cbs_title.c) Remove string_list usage

* Include <compat/posix_string.h> for strtok_r MSVC compatibility

* Slight change in header include

* (archive_file) Don't know why this won't compile for MSVC -
<compat/posix_string.h> gets included which should redefine strtok_r
for MSVC usage but it just doesn't work and fails at linking stage, will have to figure this out
later

* Remove unused variables

* (audio/common) Fix header includes

* (menu_displaylist.c) More string_list removal

* More string_list removal

* Fetch translations from Crowdin

* generic_action_ok_dropdown_setting - don't use string_list for
ST_STRING_OPTIONS

* Fix ST_STRING_OPTIONS 'selected' dropdown item - was off by one

* Rewrite action_ok_rdb_entry_submenu - no more string_list usage

* Rewrite 2 of action_ok_rdb_entry_submenu - now with less
allocations

* (gfx_animation.c) Small cleanups

* (task_overlay.c) No more string_list usage

* (task_overlay) remove unused variable

* Replace some strlcat usage with strlcpy

* Get rid of some unnecessary strlcat usage

* (dylib.c) Avoid strlcat usage, camelcase variable name removal
and C comments

* (gfx_animation.c) Use strlcpy

* Buildfix

* iOS/tvOS: Add ardens and anarch cores to app store build

* (RGUI) rgui_update_menu_sublabel - use strtok_r instead of string_list

* (ozone) ozone_draw_osk - use strtok_r instead of string_list

* (task_content.c) content_file_override_set - use strtok_r instead
of string_list

* Put comment back

* (core_updater_list) replace string_list usage with strtok_r

* (core_updater_list) Remove more string_list usage

* Simplifications

* input_config_get_bind_string - do proper character
counting now, avoid strlcats, and have functions return
size_t value indicating how many chars were written

* (steam) avoid strlcat usage

* task_save_handler - rewrite code - put string on stack instead
of heap, avoid using strlcat

* Cut down on strlcats

* CI: add github workflow to create source-only release tarball

closes libretro#16645

* Replace more strlcats

* x11: add support for Xss screensaver disabling

in case xdg-screensaver isn't installed.

* Remove some header includes

* (cheevos) Cleanups - only use snprintf for formatting

* Fetch translations from Crowdin

* Fullscreen refresh rate improvements

Handle refresh rate as float in general, and add also extra
attributes (interlaced, doublescan) for video modes.

Make it possible to select exact mode (interlaced / doublescan modes
will not be selected), and allow close matches such as 49.5 Hz
for PAL 50 Hz.

* Fix MSVC05 compilation failure

* Fetch translations from Crowdin

* (menu_cbs_deferred_push) Get rid of string_list usage

* Simplify gfx_animation_line_ticker_smooth

* add intfstream_truncate for file streams

Will return 0 for non-file streams.  I didn't want to mess around with
memory_stream (which could in theory have a truncate impl that sets
size) because there were globals and stuff and I got nervous (also
truncate might *grow* a file if the new length is longer than the old
one and then I'd have to think about realloc, etc).

* change some replay file seeks to seek+truncates in record mode

* tidy up intfstream_truncate ifdefs.

* Fetch translations from Crowdin

* [Wayland] Support for mouse buttons 4&5 and horizontal wheel

* Fetch translations from Crowdin

* Fetch translations from Crowdin

* Fetch translations from Crowdin

* (libretro-common) Use inline assembly for PowerPC libco

This puts the code into the binary's .text section, which is needed
for platforms without the ability to map it as RWX (WiiU). Using
GNU/AT&T syntax for the assembly here.

* Fix exclusive fullscreen condition

Spotted in Android compilation:
warning: bitwise or with non-zero value always evaluates to true [-Wtautological-bitwise-compare]

* Fix keyboard events missing RETROKMOD_NUMLOCK or RETROKMOD_SCROLLOCK
- Add missing numlock mod to dinput
- Add missing scrolllock mod to x11
- Add missing capslock, numlock, scrolllock and meta mods to android
- Add missing scrolllock mod to sdl
- Add missing capslock, numlock, scrolllock and meta mods to switch
- Add missing numlock mod to winraw
- Add missing numlock mod to uwp

* Add config values and menu items for viewport bias x/y

* Refactor viewport handling/aspect ratio scaling.

This mirrors the use of video_viewport_get_scaled_integer for
non-integer scaling at various aspect ratios.  Two variants are
provided, one with implicit device and desired ratios and one with
explicit ratios.

Also added a flag to video_viewport_get_scaled_integer to indicate the
direction of positive y.

* Fix build errors on wiiu, directx

* [X11] Support for mouse buttons 4 and 5

Support added for extra mouse buttons. Since these buttons were
not returned by XQueryPointer(), some additional logic was needed
which fit best to scroll wheel handling.

* allow saves and configs to be optionally synced to cloud

* ensure that all folders are enabled by default.

* Fetch translations from Crowdin

* (D3D8) Fix build

* Silence warnings

* (menu_cbs_ok.c) Some cleanups, warning fixes, use strtok_r instead
of strtok

* (glslang) use strtok_r instead of strtok

* strtok_r - small syntactic cleanup

* Add missing header

* Flip default y positive direction for viewport calc

This should fix metal and maybe some directx resizes

* Use device ratio when determining portrait orientation

* Fetch translations from Crowdin

* Skip core unload when Quit on Close Content is set

* Fix libretro#16562 support bluetooth keyboards on tvos

* Fetch translations from Crowdin

* Add header include for rhmap.h

* Try to avoid strdup to avoid portability issues

* Buildfix

* Fetch translations from Crowdin

* Android: Improvements to DocumentProvider
Added move and rename methods
Provider notifies viewer to refresh view when files are changed
Bumped up TargetApi annotation for DocumentsContract.buildTreeDocumentUri. Could alternatively use androidx compat class.

* Android: Remove External Storage permission

* Android: Add function to migrate RetroArch folder from sdcard.

* Improvements to migration code
Will be squashed before commit

* Revert "Improvements to migration code Will be squashed before commit"

This reverts commit 3dab003.

* Revert "Android: Add function to migrate RetroArch folder from sdcard."

This reverts commit b7235e4.

* Revert "Android: Remove External Storage permission"

This reverts commit 850560d.

* Revert "Android: Improvements to DocumentProvider Added move and rename methods Provider notifies viewer to refresh view when files are changed Bumped up TargetApi annotation for DocumentsContract.buildTreeDocumentUri. Could alternatively use androidx compat class."

This reverts commit 72db301.

* Fetch translations from Crowdin

* Fetch translations from Crowdin

* Fetch translations from Crowdin

* (rhmap) use custom strdup

* Fetch translations from Crowdin

* Bump robinraju/release-downloader from 1.9 to 1.11

Bumps [robinraju/release-downloader](https://github.com/robinraju/release-downloader) from 1.9 to 1.11.
- [Release notes](https://github.com/robinraju/release-downloader/releases)
- [Commits](robinraju/release-downloader@v1.9...v1.11)

---
updated-dependencies:
- dependency-name: robinraju/release-downloader
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

* Bump actions/setup-java from 3 to 4

Bumps [actions/setup-java](https://github.com/actions/setup-java) from 3 to 4.
- [Release notes](https://github.com/actions/setup-java/releases)
- [Commits](actions/setup-java@v3...v4)

---
updated-dependencies:
- dependency-name: actions/setup-java
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>

* Bump actions/setup-python from 4 to 5

Bumps [actions/setup-python](https://github.com/actions/setup-python) from 4 to 5.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](actions/setup-python@v4...v5)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: libretroadmin <[email protected]>
Co-authored-by: github-actions <[email protected]>
Co-authored-by: Eric Warmenhoven <[email protected]>
Co-authored-by: rofl0r <[email protected]>
Co-authored-by: zoltanvb <[email protected]>
Co-authored-by: zoltanvb <[email protected]>
Co-authored-by: Joseph C. Osborn <[email protected]>
Co-authored-by: Ash Logan <[email protected]>
Co-authored-by: schellingb <[email protected]>
Co-authored-by: Jay Paul <[email protected]>
Co-authored-by: Jonathan Rascher <[email protected]>
Co-authored-by: cwyc <[email protected]>
Co-authored-by: LibretroAdmin <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Build Bump
Misunderstood-Wookiee added a commit to Misunderstood-Wookiee/RetroArch-UWP that referenced this issue Jul 22, 2024
* (libretro-common) Some functions now return len

* More string_list removal in menu_displaylist.c

* (menu_displaylist.c) Get rid of more string_list usage

* (playlist.c) Get rid of string_list usage

* (menu) More string_list removal

* file_archive_get_file_list_cb - remove string_list usage

* (menu_cbs_title.c) Remove string_list usage

* Include <compat/posix_string.h> for strtok_r MSVC compatibility

* Slight change in header include

* (archive_file) Don't know why this won't compile for MSVC -
<compat/posix_string.h> gets included which should redefine strtok_r
for MSVC usage but it just doesn't work and fails at linking stage, will have to figure this out
later

* Remove unused variables

* (audio/common) Fix header includes

* (menu_displaylist.c) More string_list removal

* More string_list removal

* Fetch translations from Crowdin

* generic_action_ok_dropdown_setting - don't use string_list for
ST_STRING_OPTIONS

* Fix ST_STRING_OPTIONS 'selected' dropdown item - was off by one

* Rewrite action_ok_rdb_entry_submenu - no more string_list usage

* Rewrite 2 of action_ok_rdb_entry_submenu - now with less
allocations

* (gfx_animation.c) Small cleanups

* (task_overlay.c) No more string_list usage

* (task_overlay) remove unused variable

* Replace some strlcat usage with strlcpy

* Get rid of some unnecessary strlcat usage

* (dylib.c) Avoid strlcat usage, camelcase variable name removal
and C comments

* (gfx_animation.c) Use strlcpy

* Buildfix

* iOS/tvOS: Add ardens and anarch cores to app store build

* (RGUI) rgui_update_menu_sublabel - use strtok_r instead of string_list

* (ozone) ozone_draw_osk - use strtok_r instead of string_list

* (task_content.c) content_file_override_set - use strtok_r instead
of string_list

* Put comment back

* (core_updater_list) replace string_list usage with strtok_r

* (core_updater_list) Remove more string_list usage

* Simplifications

* input_config_get_bind_string - do proper character
counting now, avoid strlcats, and have functions return
size_t value indicating how many chars were written

* (steam) avoid strlcat usage

* task_save_handler - rewrite code - put string on stack instead
of heap, avoid using strlcat

* Cut down on strlcats

* CI: add github workflow to create source-only release tarball

closes libretro#16645

* Replace more strlcats

* x11: add support for Xss screensaver disabling

in case xdg-screensaver isn't installed.

* Remove some header includes

* (cheevos) Cleanups - only use snprintf for formatting

* Fetch translations from Crowdin

* Fullscreen refresh rate improvements

Handle refresh rate as float in general, and add also extra
attributes (interlaced, doublescan) for video modes.

Make it possible to select exact mode (interlaced / doublescan modes
will not be selected), and allow close matches such as 49.5 Hz
for PAL 50 Hz.

* Fix MSVC05 compilation failure

* Fetch translations from Crowdin

* (menu_cbs_deferred_push) Get rid of string_list usage

* Simplify gfx_animation_line_ticker_smooth

* add intfstream_truncate for file streams

Will return 0 for non-file streams.  I didn't want to mess around with
memory_stream (which could in theory have a truncate impl that sets
size) because there were globals and stuff and I got nervous (also
truncate might *grow* a file if the new length is longer than the old
one and then I'd have to think about realloc, etc).

* change some replay file seeks to seek+truncates in record mode

* tidy up intfstream_truncate ifdefs.

* Fetch translations from Crowdin

* [Wayland] Support for mouse buttons 4&5 and horizontal wheel

* Fetch translations from Crowdin

* Fetch translations from Crowdin

* Fetch translations from Crowdin

* (libretro-common) Use inline assembly for PowerPC libco

This puts the code into the binary's .text section, which is needed
for platforms without the ability to map it as RWX (WiiU). Using
GNU/AT&T syntax for the assembly here.

* Fix exclusive fullscreen condition

Spotted in Android compilation:
warning: bitwise or with non-zero value always evaluates to true [-Wtautological-bitwise-compare]

* Fix keyboard events missing RETROKMOD_NUMLOCK or RETROKMOD_SCROLLOCK
- Add missing numlock mod to dinput
- Add missing scrolllock mod to x11
- Add missing capslock, numlock, scrolllock and meta mods to android
- Add missing scrolllock mod to sdl
- Add missing capslock, numlock, scrolllock and meta mods to switch
- Add missing numlock mod to winraw
- Add missing numlock mod to uwp

* Add config values and menu items for viewport bias x/y

* Refactor viewport handling/aspect ratio scaling.

This mirrors the use of video_viewport_get_scaled_integer for
non-integer scaling at various aspect ratios.  Two variants are
provided, one with implicit device and desired ratios and one with
explicit ratios.

Also added a flag to video_viewport_get_scaled_integer to indicate the
direction of positive y.

* Fix build errors on wiiu, directx

* [X11] Support for mouse buttons 4 and 5

Support added for extra mouse buttons. Since these buttons were
not returned by XQueryPointer(), some additional logic was needed
which fit best to scroll wheel handling.

* allow saves and configs to be optionally synced to cloud

* ensure that all folders are enabled by default.

* Fetch translations from Crowdin

* (D3D8) Fix build

* Silence warnings

* (menu_cbs_ok.c) Some cleanups, warning fixes, use strtok_r instead
of strtok

* (glslang) use strtok_r instead of strtok

* strtok_r - small syntactic cleanup

* Add missing header

* Flip default y positive direction for viewport calc

This should fix metal and maybe some directx resizes

* Use device ratio when determining portrait orientation

* Fetch translations from Crowdin

* Skip core unload when Quit on Close Content is set

* Fix libretro#16562 support bluetooth keyboards on tvos

* Fetch translations from Crowdin

* Add header include for rhmap.h

* Try to avoid strdup to avoid portability issues

* Buildfix

* Fetch translations from Crowdin

* Android: Improvements to DocumentProvider
Added move and rename methods
Provider notifies viewer to refresh view when files are changed
Bumped up TargetApi annotation for DocumentsContract.buildTreeDocumentUri. Could alternatively use androidx compat class.

* Android: Remove External Storage permission

* Android: Add function to migrate RetroArch folder from sdcard.

* Improvements to migration code
Will be squashed before commit

* Revert "Improvements to migration code Will be squashed before commit"

This reverts commit 3dab003.

* Revert "Android: Add function to migrate RetroArch folder from sdcard."

This reverts commit b7235e4.

* Revert "Android: Remove External Storage permission"

This reverts commit 850560d.

* Revert "Android: Improvements to DocumentProvider Added move and rename methods Provider notifies viewer to refresh view when files are changed Bumped up TargetApi annotation for DocumentsContract.buildTreeDocumentUri. Could alternatively use androidx compat class."

This reverts commit 72db301.

* Fetch translations from Crowdin

* Fetch translations from Crowdin

* Fetch translations from Crowdin

* (rhmap) use custom strdup

* Fetch translations from Crowdin

* Bump robinraju/release-downloader from 1.9 to 1.11

Bumps [robinraju/release-downloader](https://github.com/robinraju/release-downloader) from 1.9 to 1.11.
- [Release notes](https://github.com/robinraju/release-downloader/releases)
- [Commits](robinraju/release-downloader@v1.9...v1.11)

---
updated-dependencies:
- dependency-name: robinraju/release-downloader
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

* Bump actions/setup-java from 3 to 4

Bumps [actions/setup-java](https://github.com/actions/setup-java) from 3 to 4.
- [Release notes](https://github.com/actions/setup-java/releases)
- [Commits](actions/setup-java@v3...v4)

---
updated-dependencies:
- dependency-name: actions/setup-java
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>

* Bump actions/setup-python from 4 to 5

Bumps [actions/setup-python](https://github.com/actions/setup-python) from 4 to 5.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](actions/setup-python@v4...v5)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: libretroadmin <[email protected]>
Co-authored-by: github-actions <[email protected]>
Co-authored-by: Eric Warmenhoven <[email protected]>
Co-authored-by: rofl0r <[email protected]>
Co-authored-by: zoltanvb <[email protected]>
Co-authored-by: zoltanvb <[email protected]>
Co-authored-by: Joseph C. Osborn <[email protected]>
Co-authored-by: Ash Logan <[email protected]>
Co-authored-by: schellingb <[email protected]>
Co-authored-by: Jay Paul <[email protected]>
Co-authored-by: Jonathan Rascher <[email protected]>
Co-authored-by: cwyc <[email protected]>
Co-authored-by: LibretroAdmin <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Build Bump
Misunderstood-Wookiee added a commit to Misunderstood-Wookiee/RetroArch-UWP that referenced this issue Jul 22, 2024
* (libretro-common) Some functions now return len

* More string_list removal in menu_displaylist.c

* (menu_displaylist.c) Get rid of more string_list usage

* (playlist.c) Get rid of string_list usage

* (menu) More string_list removal

* file_archive_get_file_list_cb - remove string_list usage

* (menu_cbs_title.c) Remove string_list usage

* Include <compat/posix_string.h> for strtok_r MSVC compatibility

* Slight change in header include

* (archive_file) Don't know why this won't compile for MSVC -
<compat/posix_string.h> gets included which should redefine strtok_r
for MSVC usage but it just doesn't work and fails at linking stage, will have to figure this out
later

* Remove unused variables

* (audio/common) Fix header includes

* (menu_displaylist.c) More string_list removal

* More string_list removal

* Fetch translations from Crowdin

* generic_action_ok_dropdown_setting - don't use string_list for
ST_STRING_OPTIONS

* Fix ST_STRING_OPTIONS 'selected' dropdown item - was off by one

* Rewrite action_ok_rdb_entry_submenu - no more string_list usage

* Rewrite 2 of action_ok_rdb_entry_submenu - now with less
allocations

* (gfx_animation.c) Small cleanups

* (task_overlay.c) No more string_list usage

* (task_overlay) remove unused variable

* Replace some strlcat usage with strlcpy

* Get rid of some unnecessary strlcat usage

* (dylib.c) Avoid strlcat usage, camelcase variable name removal
and C comments

* (gfx_animation.c) Use strlcpy

* Buildfix

* iOS/tvOS: Add ardens and anarch cores to app store build

* (RGUI) rgui_update_menu_sublabel - use strtok_r instead of string_list

* (ozone) ozone_draw_osk - use strtok_r instead of string_list

* (task_content.c) content_file_override_set - use strtok_r instead
of string_list

* Put comment back

* (core_updater_list) replace string_list usage with strtok_r

* (core_updater_list) Remove more string_list usage

* Simplifications

* input_config_get_bind_string - do proper character
counting now, avoid strlcats, and have functions return
size_t value indicating how many chars were written

* (steam) avoid strlcat usage

* task_save_handler - rewrite code - put string on stack instead
of heap, avoid using strlcat

* Cut down on strlcats

* CI: add github workflow to create source-only release tarball

closes libretro#16645

* Replace more strlcats

* x11: add support for Xss screensaver disabling

in case xdg-screensaver isn't installed.

* Remove some header includes

* (cheevos) Cleanups - only use snprintf for formatting

* Fetch translations from Crowdin

* Fullscreen refresh rate improvements

Handle refresh rate as float in general, and add also extra
attributes (interlaced, doublescan) for video modes.

Make it possible to select exact mode (interlaced / doublescan modes
will not be selected), and allow close matches such as 49.5 Hz
for PAL 50 Hz.

* Fix MSVC05 compilation failure

* Fetch translations from Crowdin

* (menu_cbs_deferred_push) Get rid of string_list usage

* Simplify gfx_animation_line_ticker_smooth

* add intfstream_truncate for file streams

Will return 0 for non-file streams.  I didn't want to mess around with
memory_stream (which could in theory have a truncate impl that sets
size) because there were globals and stuff and I got nervous (also
truncate might *grow* a file if the new length is longer than the old
one and then I'd have to think about realloc, etc).

* change some replay file seeks to seek+truncates in record mode

* tidy up intfstream_truncate ifdefs.

* Fetch translations from Crowdin

* [Wayland] Support for mouse buttons 4&5 and horizontal wheel

* Fetch translations from Crowdin

* Fetch translations from Crowdin

* Fetch translations from Crowdin

* (libretro-common) Use inline assembly for PowerPC libco

This puts the code into the binary's .text section, which is needed
for platforms without the ability to map it as RWX (WiiU). Using
GNU/AT&T syntax for the assembly here.

* Fix exclusive fullscreen condition

Spotted in Android compilation:
warning: bitwise or with non-zero value always evaluates to true [-Wtautological-bitwise-compare]

* Fix keyboard events missing RETROKMOD_NUMLOCK or RETROKMOD_SCROLLOCK
- Add missing numlock mod to dinput
- Add missing scrolllock mod to x11
- Add missing capslock, numlock, scrolllock and meta mods to android
- Add missing scrolllock mod to sdl
- Add missing capslock, numlock, scrolllock and meta mods to switch
- Add missing numlock mod to winraw
- Add missing numlock mod to uwp

* Add config values and menu items for viewport bias x/y

* Refactor viewport handling/aspect ratio scaling.

This mirrors the use of video_viewport_get_scaled_integer for
non-integer scaling at various aspect ratios.  Two variants are
provided, one with implicit device and desired ratios and one with
explicit ratios.

Also added a flag to video_viewport_get_scaled_integer to indicate the
direction of positive y.

* Fix build errors on wiiu, directx

* [X11] Support for mouse buttons 4 and 5

Support added for extra mouse buttons. Since these buttons were
not returned by XQueryPointer(), some additional logic was needed
which fit best to scroll wheel handling.

* allow saves and configs to be optionally synced to cloud

* ensure that all folders are enabled by default.

* Fetch translations from Crowdin

* (D3D8) Fix build

* Silence warnings

* (menu_cbs_ok.c) Some cleanups, warning fixes, use strtok_r instead
of strtok

* (glslang) use strtok_r instead of strtok

* strtok_r - small syntactic cleanup

* Add missing header

* Flip default y positive direction for viewport calc

This should fix metal and maybe some directx resizes

* Use device ratio when determining portrait orientation

* Fetch translations from Crowdin

* Skip core unload when Quit on Close Content is set

* Fix libretro#16562 support bluetooth keyboards on tvos

* Fetch translations from Crowdin

* Add header include for rhmap.h

* Try to avoid strdup to avoid portability issues

* Buildfix

* Fetch translations from Crowdin

* Android: Improvements to DocumentProvider
Added move and rename methods
Provider notifies viewer to refresh view when files are changed
Bumped up TargetApi annotation for DocumentsContract.buildTreeDocumentUri. Could alternatively use androidx compat class.

* Android: Remove External Storage permission

* Android: Add function to migrate RetroArch folder from sdcard.

* Improvements to migration code
Will be squashed before commit

* Revert "Improvements to migration code Will be squashed before commit"

This reverts commit 3dab003.

* Revert "Android: Add function to migrate RetroArch folder from sdcard."

This reverts commit b7235e4.

* Revert "Android: Remove External Storage permission"

This reverts commit 850560d.

* Revert "Android: Improvements to DocumentProvider Added move and rename methods Provider notifies viewer to refresh view when files are changed Bumped up TargetApi annotation for DocumentsContract.buildTreeDocumentUri. Could alternatively use androidx compat class."

This reverts commit 72db301.

* Fetch translations from Crowdin

* Fetch translations from Crowdin

* Fetch translations from Crowdin

* (rhmap) use custom strdup

* Fetch translations from Crowdin

* Bump robinraju/release-downloader from 1.9 to 1.11

Bumps [robinraju/release-downloader](https://github.com/robinraju/release-downloader) from 1.9 to 1.11.
- [Release notes](https://github.com/robinraju/release-downloader/releases)
- [Commits](robinraju/release-downloader@v1.9...v1.11)

---
updated-dependencies:
- dependency-name: robinraju/release-downloader
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

* Bump actions/setup-java from 3 to 4

Bumps [actions/setup-java](https://github.com/actions/setup-java) from 3 to 4.
- [Release notes](https://github.com/actions/setup-java/releases)
- [Commits](actions/setup-java@v3...v4)

---
updated-dependencies:
- dependency-name: actions/setup-java
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>

* Bump actions/setup-python from 4 to 5

Bumps [actions/setup-python](https://github.com/actions/setup-python) from 4 to 5.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](actions/setup-python@v4...v5)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: libretroadmin <[email protected]>
Co-authored-by: github-actions <[email protected]>
Co-authored-by: Eric Warmenhoven <[email protected]>
Co-authored-by: rofl0r <[email protected]>
Co-authored-by: zoltanvb <[email protected]>
Co-authored-by: zoltanvb <[email protected]>
Co-authored-by: Joseph C. Osborn <[email protected]>
Co-authored-by: Ash Logan <[email protected]>
Co-authored-by: schellingb <[email protected]>
Co-authored-by: Jay Paul <[email protected]>
Co-authored-by: Jonathan Rascher <[email protected]>
Co-authored-by: cwyc <[email protected]>
Co-authored-by: LibretroAdmin <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants