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

Support Native Tier 3 targets #311

Closed
sandwwraith opened this issue Oct 12, 2023 · 6 comments · Fixed by #344
Closed

Support Native Tier 3 targets #311

sandwwraith opened this issue Oct 12, 2023 · 6 comments · Fixed by #344

Comments

@sandwwraith
Copy link
Member

As said in the official recommendations, library authors are encouraged to provide builds for tier 3 targets.
Currently, they're commented out:

// the following targets are not supported by kotlinx.serialization:
        /*
        target("androidNativeArm32")
        target("androidNativeArm64")
        target("androidNativeX86")
        target("androidNativeX64")
         */

But kotlinx.serialization actually supports them starting from 1.5.1

@dkhalanskyjb
Copy link
Collaborator

You are right, sorry for the libel! Yes, the comment is outdated; the true reason these targets are not provided is that we haven't implemented the timezone database access for them.

@natario1
Copy link

On Android the zoneinfo database seems to be available at /system/usr/share/zoneinfo, at least on the devices in my possession. I don't have any link documenting this, but I doubt one exists.

The rest of the code could be identical to the linux implementation as far as I can see.

@dkhalanskyjb
Copy link
Collaborator

The rest of the code could be identical to the linux implementation as far as I can see.

Not really; these are files and not directories, and we would need to research how they are parsed. We can look into this if there's demand, but I don't think I've seen anyone asking for this yet.

@natario1
Copy link

It's more of an ecosystem blocker, because you are at the root of the graph. This is blocking square/okio, which is also a common dependency at the root of many square projects and thus everybody's projects.

At the leaves of this dependency tree there likely are many people, users and lib maintainers, asking or wondering about androidNative support. I, for example, stumbled upon this after opening square/okio#1326 which I had openend because it is blocking some other kotlinx library (can't remember which one now).

So I think this should be done even if it's there's not much direct request. I'm happy to help too, even though I don't care about timezone's and maybe nor does okio. If system/usr/shareinfo is there, I would hope there's some AOSP code that parses it that you could look at.

@dkhalanskyjb
Copy link
Collaborator

I, for example, stumbled upon this after opening square/okio#1326

Thanks for sharing this: without this link, I didn't know at all that we were blocking anyone at all.

I don't care about timezone's and maybe nor does okio.

Yep, git grep in their code only shows Clock and Instant. Not sure how much utility our library brings to them.

@natario1
Copy link

natario1 commented Feb 16, 2024

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.

3 participants