Skip to content

feat(pkg): esbuild 0.25.12, glew 2.2.0 and android-platform 36-r2 - #834

Merged
Sunrisepeak merged 2 commits into
openxlings:mainfrom
Sunrisepeak:feat/huxerui-mcpp-payloads
Sep 13, 2026
Merged

Sunrisepeak merged 2 commits into
openxlings:mainfrom
Sunrisepeak:feat/huxerui-mcpp-payloads

Conversation

@Sunrisepeak

Copy link
Copy Markdown
Member

Three payloads the HuxerUI mcpp build (Sunrisepeak/HuxerUI#6) and its Lib-Live2D ecosystem library (Sunrisepeak/Lib-Live2D#1) reach for and the index does not carry.

Packages

Package Version Hosts × arches Source Tier
android-platform 36-r2 (new entry, 36 alias) linux, macosx, windows — one host-independent archive https://dl.google.com/android/repository/platform-36_r02.zip, 65878410 bytes, sha1 2c1a80dd… (matches repository2-3.xml), sha256 37607369… 1, not yet mirrored (as 35/34)
esbuild 0.25.12 (new package) linux × {x86_64, aarch64, x86}, macosx × {x86_64, aarch64}, windows × {x86_64, aarch64, x86} registry.npmjs.org/@esbuild/<platform>/-/<platform>-0.25.12.tgz, eight tarballs, eight sha256 in the recipe; the binary is installed from npm's platform package, no node 1 (MIT), mirror is a follow-up
glew 2.2.0 (new package) linux, macosx, windows — one source tarball github.com/nigels-com/glew/releases/download/glew-2.2.0/glew-2.2.0.tgz, 835861 bytes, sha256 d4fc8289… 1 (BSD-3 + MIT), mirror is a follow-up

Why

  • HuxerUI's Android Java host uses API 36 (Build.VERSION_CODES.BAKLAVA, AccessibilityNodeInfo.CHECKED_STATE_*); mcpp:plugins' dist-apk compiles it with javac -cp <xim:android-platform>/android.jar, so the jar has to be 36. The recipe's extract_dir already derives android-36/ from the version.
  • esbuild bundles Lib-Live2D's TypeScript bridge from its mcpp build program, replacing npm install --prefix .cache/web-tools esbuild@0.25.12 at configure time.
  • glew is consumed as source (src/glew.c compiled with GLEW_STATIC) by Lib-Live2D's Linux renderer.

install / config / uninstall

None modifies the user environment beyond xvm registration: esbuild registers one shim (bin/esbuild), glew and android-platform register the package name only.

Verified

  • pytest -m static on the three test files; .github/scripts/version-check.py --workspace . clean.
  • Isolated XLINGS_HOME on Linux x86_64: xlings config --add-xpkg + xlings install for esbuild, glew and android-platform@36-r2 — esbuild --version → 0.25.12; include/GL/glew.h + src/glew.c present; android.jar + framework.aidl present.
  • android-platform@36-r2 end to end: HuxerUI's example APK builds, signs and apksigner verifys against it; esbuild and glew end to end in Lib-Live2D's Web and Linux CI jobs.
  • The fork's own CI (static, index-registration, linux and macos install tests, closure-lifecycle, site-check) passed on the six-tarball revision; the x86 rows are measured (curl + sha256) but not installed here.

Not done

  • No CN mirrors: esbuild and glew are tier 1 and can be published to xlings-res as a follow-up; android-platform follows the existing 35/34 omission.
  • npm's riscv64 / loong64 / ppc64 / s390x / FreeBSD / Android esbuild packages are not declared: the index names no such host or arch.

Three payloads a HuxerUI build under mcpp reaches for and the index did
not carry:

- android-platform 36-r2: HuxerUI's Java host compiles against API 36
  (`Build.VERSION_CODES.BAKLAVA`, the accessibility CHECKED_STATE_* set),
  the compileSdk its Gradle build states; dist-apk's `javac -cp
  android.jar` needs the same jar. Google's `platforms;android-36` at
  Pkg.Revision 2, measured like 35 and 34: size 65878410, sha1 matching
  repository2-3.xml, sha256 from the download. The recipe's extract_dir
  already derives `android-36/` from the version.
- esbuild 0.25.12: the platform binary npm publishes as
  `@esbuild/<platform>`, fetched as its tarball and installed without
  node -- what bundles Lib-Live2D's TypeScript bridge from a build
  program instead of an `npm install` at configure time. Six tarballs
  (linux/macosx/windows x x86_64/aarch64) as a per-arch map.
- glew 2.2.0: upstream's source release, installed as the tree a
  consumer compiles `src/glew.c` from, for Lib-Live2D's Linux renderer.

Each was installed into an isolated XLINGS_HOME through `xlings config
--add-xpkg` and checked: `esbuild --version` prints 0.25.12, glew's
include/GL/glew.h and src/glew.c are in place, android-platform 36-r2
carries android.jar and framework.aidl. No CN mirror is invented; the
tier-1 payloads (esbuild, glew) are candidates for xlings-res.
…ery arch

esbuild gains the linux-ia32 and win32-ia32 tarballs, measured like the
other six; glew (source) and android-platform (a host-independent jar)
resolve on x86 as well. npm's riscv64, loong64, ppc64, s390x, FreeBSD and
Android packages stay undeclared: the index names no such host or arch.
@Sunrisepeak
Sunrisepeak merged commit f8c6801 into openxlings:main Sep 13, 2026
8 checks passed
Sunrisepeak added a commit to Sunrisepeak/HuxerUI that referenced this pull request Sep 13, 2026
openxlings/xim-pkgindex#834 is merged and the published index (f8c6801)
resolves xim:android-platform@36-r2, so the Android job installs it like
any other payload.
Sunrisepeak added a commit to Sunrisepeak/Lib-Live2D that referenced this pull request Sep 13, 2026
Sunrisepeak added a commit to mcpp-community/mcpp-plugins that referenced this pull request Sep 13, 2026
…tform 36-r2 (#21)

* fix(dist-apk): link a project's res/ as the base, and pin android-platform 36-r2

Two defects an application with a launcher icon hits, measured by
HuxerUI's Android row against 0.9.0.

`-R` is aapt2's overlay: every resource in that unit must override one the
base already defines. A project's `res/` IS the base, so its first colour
failed with `color/ic_launcher_background does not override an existing
resource`, and no icon, colour or string could be supplied at all. The
compiled unit is now passed positionally.

`xim:android-platform` was pinned at 35-r2 while the index has carried
36-r2 since openxlings/xim-pkgindex#834; a project declaring 36 for its
own targetSdkVersion got a two-versions warning and the nearer pin. The
option pins 36-r2, and the level-0 fixture manifest follows
(`targetSdkVersion="36"` -- the one byte in it that is read from the
platform, everything else is the template 0.8.0 rendered).

`tests/apk-consumer` gains criterion (g): with APK_CONSUMER_RES set, its
own `res/values/{strings,colors}.xml` -- two resources nothing else
defines -- link, and `aapt2 dump resources` on the apk lists both.
check-apk-features.sh (a) to (g) pass locally; HuxerUI's example 01 with
a launcher `res/` packs to an APK carrying `res/mipmap-*`,
`resources.arsc` and `application-icon-*` in its badging.

Version 0.9.1.

* fix: the version the module states follows the manifest (0.9.1)

---------

Co-authored-by: sunrisepeak <x.d2learn.org@gmail.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 this pull request may close these issues.

2 participants