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

New: LVGL - Light and Versatile Graphics Library build_tarballs.jl #9614

Open
wants to merge 5 commits into
base: master
Choose a base branch
from

Conversation

notinaboat
Copy link
Contributor

LVGL - Light and Versatile Graphics Library
https://github.com/lvgl/lvgl

Comment on lines +41 to +42
Platform("x86_64", "macos"; ),
Platform("aarch64", "linux"; libc="glibc")
Copy link
Member

Choose a reason for hiding this comment

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

This is a very odd list of platforms. Why does it only build on these two specific ones?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

These are the only two platforms that I am able to test (my dev laptop and my embedded target board).

Copy link
Member

Choose a reason for hiding this comment

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

That's not a great reason to limit the list: it's not expected that you personally test all platforms. But by opening up, you vastly expand who can benefit from this JLL; and if anyone uses them, and there are problems, then they may give you feedback or may even help out.

Of course if other platforms cause build errors that are hard to track down, it's OK to remove them and worry about those you need first. But looking at this list I'd be surprised if not at least Linux x86 and mac ARM would work, too.

So how about starting with the full list, and see if any build jobs fail here on Yggdrasil, and then we can see how to proceed :-)

Copy link
Member

Choose a reason for hiding this comment

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

This patch has a lot of changes, and they aren't documented. Why is this patch needed here in Yggdrasil, and will you send it upstream so we don't have to try keeping it updated when a new version is introduced?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

That's a fair question. I probably should have split the patch up to make the purpose of the different parts more obvious.

Here is a summary:

CMakeLists.txt and custom.cmake -- This is cmake configuration to build LVGL as shared libraries and using the SDL2 backend (based on the example here).

lv_conf_template.h -- This is build configuration to enable SDL2 integration (based on the example here)

lv_font.[ch] -- This is an access function to allow access to const struct font definitions. As far as I know, Libdl does not provide a way to access a const struct defined in a dynamic library (dlsym only returns function pointers). This access function is probably not interesting to the upstream project. I assume they are focused on supporting users who are accessing the library from C.

Copy link
Member

Choose a reason for hiding this comment

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

Yeah ideally each of those should be a separate patch. Bonus points if they use the "git commit patch format" (such as here) which includes spaces for a "commit message" that can contain explanations such as yours above.

My experience is that you yourself will greatly benefit from this when you try to update this recipe in the future :-).

Copy link
Member

Choose a reason for hiding this comment

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

Has this been sent upstream? I would guess we aren't the only ones seeing this issue.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I doubt anyone else would be using the very old (2016) version of the MacOS system headers that are used by BinaryBuilder.jl
So, this isn't suitable to send upstream. It's just a hack to build using Yggdrasil's outdated cross compiler setup.


# Collection of sources required to complete build
sources = [
GitSource("https://github.com/lvgl/lvgl.git", "4f086111a107718b719a45e2cc422f5b756d7edd"),
Copy link
Member

Choose a reason for hiding this comment

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

Why is this using a git snapshot and not a released version? In particular it seems the latest released version is 9.2.0, so why do you call this snapshot "9.3.0" ?

Copy link
Member

Choose a reason for hiding this comment

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

It's fine to use a git source, they don't seem to offer stable release tarballs as far as I could see. But the question about the version number still stands.

Copy link
Member

@fingolfin fingolfin Oct 24, 2024

Choose a reason for hiding this comment

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

It's true they don't offer stable release tarballs, just the the autogenerated ones (my guess would be that as usual they are not even aware that those archives are not stable). But they still have release tags, so one could use e.g. the commit for 9.2.0 to packages that...

And by the discussion in lvgl/lvgl#7098 and lvgl/lvgl#6763 it seems 9.3.0 is only planned for early 2025, so it seems unlikely to match what is being used here as 9.3.0

@kisvegabor
Copy link

Hey,

I've just saw in this LVGL issue that your integrating LVGL into Julia. It's very exciting and I'd love to

  • hear more about the motivation/use cases
  • hear any technical questions/issues
  • spread the word of this integration

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.

5 participants