Skip to content

Conversation

@Dogo6647
Copy link

@Dogo6647 Dogo6647 commented Dec 3, 2025

👋 I'm the maintainer of the official webOS port for the Scratch Everywhere! app and would like to submit it to the homebrew channel. Let me know if any change/clarification is needed!


## Usage instructions for webOS

Upload your Scratch projects (.sb3) with Dev Manager to your TV in `apps/usr/palm/applications/io.github.scratcheverywhere/projects/`, if the folder doesn't exist, create it.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The path starts with /media/developer. We don't really support cryptofs installations (yet?).

Copy link
Author

@Dogo6647 Dogo6647 Dec 3, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

oh yeah, while making the port i was wondering what the best location for reading/writing user files would be, and my research on that was rather inconclusive as apparently apps can't access something like USB drives (or at least I don't think they can...?), so I just decided to place it inside the app folder. By the way, could you clarify what you mean by "cryptofs"? to my knowledge I don't think our project uses it, it uses the /media/developer/apps/usr/palm/applications/.../... path, which I don't know if that's what you're referring to.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

webOS has multiple locations to put apps/use/palm and I think he's referring to this.

Also webOS can access USB devices, which is located in /tmp/usb. However some devices has broken jail which prevents the app from accessing that mounting point.

Copy link
Author

@Dogo6647 Dogo6647 Dec 3, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Alright, thanks for the info!
By the way and just to confirm, do you support using /media/developer/apps/usr/palm/applications/<app>/<user files folder>, which is what the app is currently using? If not then I'd have to wait until the next beta release to change the path where it looks for the user's sb3 files. I'd like to know if there's actually a change that needs to be made or if this is just an observation.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, it should be able to write to its own app directory.

@throwaway96
Copy link
Member

How are you planning to generate manifests?

FYI, the 30.1 IPK contains a static library: .../applications/io.github.scratcheverywhere/lib/libcurl.a

@Dogo6647
Copy link
Author

Dogo6647 commented Dec 3, 2025

How are you planning to generate manifests?

tbf no documentation was given on manifests, so I just took a look at manifests from other apps and assumed it would be something that I could just shove somewhere in our repo and just manually edit for every release (which is how we're updating the version number on our files anyway). I might do something like a github workflow and/or a python script in the future though.

FYI, the 30.1 IPK contains a static library: .../applications/io.github.scratcheverywhere/lib/libcurl.a

Oh yeah, that's something our project requires to do on every CMake platform, because it needs to ensure curl is built with the right configuration (mostly enabling websockets support).

@Dogo6647
Copy link
Author

Dogo6647 commented Dec 17, 2025

@throwaway96 @mariotaku
Just wanted to check back on this PR... I tried to address the previous issues with it and then re-requested a review about two weeks ago. It's been a while and I assume you've probably forgotten about this, so I would appreciate another look when you get the chance. Thanks!

By the way, I still have one concern which I posted as a reply on the first review comment:

Alright, thanks for the info!
By the way and just to confirm, do you support using /media/developer/apps/usr/palm/applications/<app>/<user files folder>, which is what the app is currently using? If not then I'd have to wait until the next beta release to change the path where it looks for the user's sb3 files. I'd like to know if there's actually a change that needs to be made or if this is just an observation.

@github-actions
Copy link

github-actions bot commented Dec 17, 2025

Check Results for io.github.scratcheverywhere.yml:

Package Metadata

  • ❌ Use HTTPS URL for docs/controls/all.png

Compatibility Check

App io.github.scratcheverywhere

1.2.0 1.4.0 2.2.3 3.4.0 3.9.2 4.4.2 4.10.0 5.3.1 6.4.0 7.4.0 8.3.0 9.2.0
scratch-webos

scratch-webos

On Firmware 03.23.06.01, webOS 1.2.0, OTA ID: HE_DTV_WT1M_AFAAABAA
  • Symbol SDL_SetTextureScaleMode is undefined
  • Symbol SDL_CreateRGBSurfaceWithFormatFrom is undefined
  • Symbol SDL_GetHintBoolean is undefined
  • Symbol SDL_FreeAudioStream is undefined
  • Symbol SDL_RWtell is undefined
  • Symbol SDL_tanf is undefined
  • Symbol SDL_HasNEON is undefined
  • Symbol SDL_AudioStreamPut is undefined
  • Symbol SDL_exp is undefined
  • Symbol SDL_HasColorKey is undefined
  • Symbol SDL_fabsf is undefined
  • Symbol SDL_ceilf is undefined
  • Symbol SDL_CreateRGBSurfaceWithFormat is undefined
  • Symbol SDL_acosf is undefined
  • Symbol SDL_atan2f is undefined
  • Symbol SDL_AtomicSet is undefined
  • Symbol SDL_RWread is undefined
  • Symbol SDL_LoadFile_RW is undefined
  • Symbol SDL_sqrtf is undefined
  • Symbol SDL_RWseek is undefined
  • Symbol SDL_roundf is undefined
  • Symbol SDL_RWclose is undefined
  • Symbol SDL_NewAudioStream is undefined
  • Symbol SDL_strtokr is undefined
  • Symbol SDL_DuplicateSurface is undefined
  • Symbol SDL_AtomicGet is undefined
  • Symbol SDL_floorf is undefined
  • Symbol SDL_GetTextureScaleMode is undefined
  • Symbol SDL_GetWindowSizeInPixels is undefined
  • Symbol SDL_RWsize is undefined
  • Symbol SDL_AudioStreamClear is undefined
  • Symbol SDL_RWwrite is undefined
  • Symbol SDL_CreateThreadWithStackSize is undefined
  • Symbol SDL_AudioStreamFlush is undefined
  • Symbol SDL_fmodf is undefined
  • Symbol SDL_AudioStreamGet is undefined
On Firmware 05.06.10.01, webOS 1.4.0, OTA ID: HE_DTV_WT1H_AFAAABAA
  • Symbol SDL_SetTextureScaleMode is undefined
  • Symbol SDL_CreateRGBSurfaceWithFormatFrom is undefined
  • Symbol SDL_GetHintBoolean is undefined
  • Symbol SDL_FreeAudioStream is undefined
  • Symbol SDL_RWtell is undefined
  • Symbol SDL_tanf is undefined
  • Symbol SDL_HasNEON is undefined
  • Symbol SDL_AudioStreamPut is undefined
  • Symbol SDL_exp is undefined
  • Symbol SDL_HasColorKey is undefined
  • Symbol SDL_fabsf is undefined
  • Symbol SDL_ceilf is undefined
  • Symbol SDL_CreateRGBSurfaceWithFormat is undefined
  • Symbol SDL_acosf is undefined
  • Symbol SDL_atan2f is undefined
  • Symbol SDL_AtomicSet is undefined
  • Symbol SDL_RWread is undefined
  • Symbol SDL_LoadFile_RW is undefined
  • Symbol SDL_sqrtf is undefined
  • Symbol SDL_RWseek is undefined
  • Symbol SDL_roundf is undefined
  • Symbol SDL_RWclose is undefined
  • Symbol SDL_NewAudioStream is undefined
  • Symbol SDL_strtokr is undefined
  • Symbol SDL_DuplicateSurface is undefined
  • Symbol SDL_AtomicGet is undefined
  • Symbol SDL_floorf is undefined
  • Symbol SDL_GetTextureScaleMode is undefined
  • Symbol SDL_GetWindowSizeInPixels is undefined
  • Symbol SDL_RWsize is undefined
  • Symbol SDL_AudioStreamClear is undefined
  • Symbol SDL_RWwrite is undefined
  • Symbol SDL_CreateThreadWithStackSize is undefined
  • Symbol SDL_AudioStreamFlush is undefined
  • Symbol SDL_fmodf is undefined
  • Symbol SDL_AudioStreamGet is undefined
On Firmware 04.06.75.01, webOS 2.2.3, OTA ID: HE_DTV_W15M_AFAAABAA
  • Symbol SDL_SetTextureScaleMode is undefined
  • Symbol SDL_CreateRGBSurfaceWithFormatFrom is undefined
  • Symbol SDL_GetHintBoolean is undefined
  • Symbol SDL_FreeAudioStream is undefined
  • Symbol SDL_RWtell is undefined
  • Symbol SDL_tanf is undefined
  • Symbol SDL_HasNEON is undefined
  • Symbol SDL_AudioStreamPut is undefined
  • Symbol SDL_exp is undefined
  • Symbol SDL_HasColorKey is undefined
  • Symbol SDL_fabsf is undefined
  • Symbol SDL_ceilf is undefined
  • Symbol SDL_CreateRGBSurfaceWithFormat is undefined
  • Symbol SDL_acosf is undefined
  • Symbol SDL_atan2f is undefined
  • Symbol SDL_RWread is undefined
  • Symbol SDL_LoadFile_RW is undefined
  • Symbol SDL_sqrtf is undefined
  • Symbol SDL_RWseek is undefined
  • Symbol SDL_roundf is undefined
  • Symbol SDL_RWclose is undefined
  • Symbol SDL_NewAudioStream is undefined
  • Symbol SDL_strtokr is undefined
  • Symbol SDL_DuplicateSurface is undefined
  • Symbol SDL_floorf is undefined
  • Symbol SDL_GetTextureScaleMode is undefined
  • Symbol SDL_GetWindowSizeInPixels is undefined
  • Symbol SDL_RWsize is undefined
  • Symbol SDL_AudioStreamClear is undefined
  • Symbol SDL_RWwrite is undefined
  • Symbol SDL_CreateThreadWithStackSize is undefined
  • Symbol SDL_AudioStreamFlush is undefined
  • Symbol SDL_fmodf is undefined
  • Symbol SDL_AudioStreamGet is undefined
On Firmware 05.60.30.01, webOS 3.4.0, OTA ID: HE_DTV_W16N_AFADABAA
  • Symbol SDL_SetTextureScaleMode is undefined
  • Symbol SDL_CreateRGBSurfaceWithFormatFrom is undefined
  • Symbol SDL_GetHintBoolean is undefined
  • Symbol SDL_FreeAudioStream is undefined
  • Symbol SDL_RWtell is undefined
  • Symbol SDL_tanf is undefined
  • Symbol SDL_HasNEON is undefined
  • Symbol SDL_AudioStreamPut is undefined
  • Symbol SDL_exp is undefined
  • Symbol SDL_HasColorKey is undefined
  • Symbol SDL_fabsf is undefined
  • Symbol SDL_ceilf is undefined
  • Symbol SDL_CreateRGBSurfaceWithFormat is undefined
  • Symbol SDL_acosf is undefined
  • Symbol SDL_atan2f is undefined
  • Symbol SDL_RWread is undefined
  • Symbol SDL_LoadFile_RW is undefined
  • Symbol SDL_sqrtf is undefined
  • Symbol SDL_RWseek is undefined
  • Symbol SDL_roundf is undefined
  • Symbol SDL_RWclose is undefined
  • Symbol SDL_NewAudioStream is undefined
  • Symbol SDL_strtokr is undefined
  • Symbol SDL_DuplicateSurface is undefined
  • Symbol SDL_floorf is undefined
  • Symbol SDL_GetTextureScaleMode is undefined
  • Symbol SDL_GetWindowSizeInPixels is undefined
  • Symbol SDL_RWsize is undefined
  • Symbol SDL_AudioStreamClear is undefined
  • Symbol SDL_RWwrite is undefined
  • Symbol SDL_CreateThreadWithStackSize is undefined
  • Symbol SDL_AudioStreamFlush is undefined
  • Symbol SDL_fmodf is undefined
  • Symbol SDL_AudioStreamGet is undefined
On Firmware 06.19.80.01, webOS 3.9.2, OTA ID: HE_DTV_W17H_AFADABAA
  • Symbol SDL_SetTextureScaleMode is undefined
  • Symbol SDL_CreateRGBSurfaceWithFormatFrom is undefined
  • Symbol SDL_GetHintBoolean is undefined
  • Symbol SDL_FreeAudioStream is undefined
  • Symbol SDL_RWtell is undefined
  • Symbol SDL_HasNEON is undefined
  • Symbol SDL_AudioStreamPut is undefined
  • Symbol SDL_exp is undefined
  • Symbol SDL_HasColorKey is undefined
  • Symbol SDL_fabsf is undefined
  • Symbol SDL_ceilf is undefined
  • Symbol SDL_CreateRGBSurfaceWithFormat is undefined
  • Symbol SDL_acosf is undefined
  • Symbol SDL_atan2f is undefined
  • Symbol SDL_RWread is undefined
  • Symbol SDL_LoadFile_RW is undefined
  • Symbol SDL_RWseek is undefined
  • Symbol SDL_roundf is undefined
  • Symbol SDL_RWclose is undefined
  • Symbol SDL_NewAudioStream is undefined
  • Symbol SDL_strtokr is undefined
  • Symbol SDL_DuplicateSurface is undefined
  • Symbol SDL_floorf is undefined
  • Symbol SDL_GetTextureScaleMode is undefined
  • Symbol SDL_GetWindowSizeInPixels is undefined
  • Symbol SDL_RWsize is undefined
  • Symbol SDL_AudioStreamClear is undefined
  • Symbol SDL_RWwrite is undefined
  • Symbol SDL_CreateThreadWithStackSize is undefined
  • Symbol SDL_AudioStreamFlush is undefined
  • Symbol SDL_fmodf is undefined
  • Symbol SDL_AudioStreamGet is undefined
On Firmware 05.50.15.01, webOS 4.4.2, OTA ID: HE_DTV_W18R_AFAAATAA
  • Symbol SDL_SetTextureScaleMode is undefined
  • Symbol SDL_FreeAudioStream is undefined
  • Symbol SDL_RWtell is undefined
  • Symbol SDL_HasNEON is undefined
  • Symbol SDL_AudioStreamPut is undefined
  • Symbol SDL_exp is undefined
  • Symbol SDL_HasColorKey is undefined
  • Symbol SDL_fabsf is undefined
  • Symbol SDL_ceilf is undefined
  • Symbol SDL_acosf is undefined
  • Symbol SDL_atan2f is undefined
  • Symbol SDL_RWread is undefined
  • Symbol SDL_LoadFile_RW is undefined
  • Symbol SDL_RWseek is undefined
  • Symbol SDL_roundf is undefined
  • Symbol SDL_RWclose is undefined
  • Symbol SDL_NewAudioStream is undefined
  • Symbol SDL_strtokr is undefined
  • Symbol SDL_DuplicateSurface is undefined
  • Symbol SDL_floorf is undefined
  • Symbol SDL_GetTextureScaleMode is undefined
  • Symbol SDL_GetWindowSizeInPixels is undefined
  • Symbol SDL_RWsize is undefined
  • Symbol SDL_AudioStreamClear is undefined
  • Symbol SDL_RWwrite is undefined
  • Symbol SDL_CreateThreadWithStackSize is undefined
  • Symbol SDL_AudioStreamFlush is undefined
  • Symbol SDL_fmodf is undefined
  • Symbol SDL_AudioStreamGet is undefined
On Firmware 05.40.20.01, webOS 4.10.0, OTA ID: HE_DTV_W19P_AFADATAA
  • Symbol SDL_SetTextureScaleMode is undefined
  • Symbol SDL_FreeAudioStream is undefined
  • Symbol SDL_RWtell is undefined
  • Symbol SDL_HasNEON is undefined
  • Symbol SDL_AudioStreamPut is undefined
  • Symbol SDL_exp is undefined
  • Symbol SDL_HasColorKey is undefined
  • Symbol SDL_fabsf is undefined
  • Symbol SDL_ceilf is undefined
  • Symbol SDL_acosf is undefined
  • Symbol SDL_atan2f is undefined
  • Symbol SDL_RWread is undefined
  • Symbol SDL_LoadFile_RW is undefined
  • Symbol SDL_RWseek is undefined
  • Symbol SDL_roundf is undefined
  • Symbol SDL_RWclose is undefined
  • Symbol SDL_NewAudioStream is undefined
  • Symbol SDL_strtokr is undefined
  • Symbol SDL_DuplicateSurface is undefined
  • Symbol SDL_floorf is undefined
  • Symbol SDL_GetTextureScaleMode is undefined
  • Symbol SDL_GetWindowSizeInPixels is undefined
  • Symbol SDL_RWsize is undefined
  • Symbol SDL_AudioStreamClear is undefined
  • Symbol SDL_RWwrite is undefined
  • Symbol SDL_CreateThreadWithStackSize is undefined
  • Symbol SDL_AudioStreamFlush is undefined
  • Symbol SDL_fmodf is undefined
  • Symbol SDL_AudioStreamGet is undefined
On Firmware 04.30.90.01, webOS 5.3.1, OTA ID: HE_DTV_W20L_AFAAJAAA
  • Symbol SDL_SetTextureScaleMode is undefined
  • Symbol SDL_roundf is undefined
  • Symbol SDL_strtokr is undefined
  • Symbol SDL_GetTextureScaleMode is undefined
  • Symbol SDL_GetWindowSizeInPixels is undefined
On Firmware 03.40.82.01, webOS 6.4.0, OTA ID: HE_DTV_W21P_AFADATAA
  • Symbol SDL_SetTextureScaleMode is undefined
  • Symbol SDL_roundf is undefined
  • Symbol SDL_strtokr is undefined
  • Symbol SDL_GetTextureScaleMode is undefined
  • Symbol SDL_GetWindowSizeInPixels is undefined
On Firmware 04.40.90.01, webOS 7.4.0, OTA ID: HE_DTV_W22O_AFABATAA
  • Symbol SDL_roundf is undefined
  • Symbol SDL_GetWindowSizeInPixels is undefined
On Firmware 03.30.60.01, webOS 8.3.0, OTA ID: HE_DTV_W23O_AFABATAA
  • Symbol SDL_roundf is undefined
  • Symbol SDL_GetWindowSizeInPixels is undefined
On Firmware 23.20.50.01, webOS 9.2.0, OTA ID: HE_DTV_W23O_AFABATAA
  • Symbol SDL_roundf is undefined
  • Symbol SDL_GetWindowSizeInPixels is undefined

@throwaway96
Copy link
Member

Did you remove libcurl.a from the IPK, or is that not possible until the next release?

@Dogo6647
Copy link
Author

Did you remove libcurl.a from the IPK, or is that not possible until the next release?

Yeah, we'd have to wait until the next release for a new "stable" IPK. However, I have already applied the fix in the cmakelists for when that happens.

Copy link
Member

@mariotaku mariotaku left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You forgot the yml extension ;)

@Dogo6647 Dogo6647 requested a review from mariotaku December 19, 2025 05:57
@Dogo6647
Copy link
Author

image

what. is this a bug from the check? apart from the controls image link warning, this doesn't seem right

@mariotaku
Copy link
Member

@Dogo6647 Does the program check for presence of those symbols like SDL_GetWindowSizeInPixels before really calling them? Because webOS only have SDL2 up to 2.0.14.

@Dogo6647
Copy link
Author

Dogo6647 commented Dec 22, 2025

@Dogo6647 Does the program check for presence of those symbols like SDL_GetWindowSizeInPixels before really calling them? Because webOS only have SDL2 up to 2.0.14.

I figured out why it was doing that... Another maintainer built that ipk and it turns out it doesn't work, same thing for today's beta release which is how I found out about that issue. I'm going to talk to them to see if I can help them build working IPKs and provide a temporary working IPK I'll build myself in the meantime.

EDIT: nvm, some recent change completely broke the webOS port and I can't produce functional builds anymore either
EDIT 2: this is so weird, when i run the executable directly from the command line it works fine but when i launch it from the app menu it just crashes

@Dogo6647
Copy link
Author

Did you remove libcurl.a from the IPK, or is that not possible until the next release?

btw i did manage to fix this issue

@throwaway96
Copy link
Member

throwaway96 commented Dec 22, 2025

Could it be choking on command line arguments? (Apps are run with a JSON string as the first argument.)

Is it sensitive to the directory it's run from? Trying to access something not available when jailed?

You can check the logs in /var/log—in particular, messages and legacy-log (if present). You may have to enable dev logs to get useful information; see the logging page on webosbrew.org.

@mariotaku
Copy link
Member

Did you remove libcurl.a from the IPK, or is that not possible until the next release?

btw i did manage to fix this issue

Try -e option in ares-package. I don't remember the exact format for ignore pattern, but it should be able to ignore .a files.

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 this pull request may close these issues.

3 participants