Impressive achievement by @roptat bootstrapping and related packages in :

Probably the first time this is attempted, achieved, _and_ documented? 👍
Cc: @reproducible_builds

The high-level dependency graph in the intro gives a good idea of how hard of a problem this is...

Show thread

@civodul Finally I can write EnterpriseAbstractGuixFactoryBeans guixFactoryBean = new EnterpriseAbstractGuixFactoryBeans();

@dmbaturin @civodul @reproducible_builds Only a small portion. It's not like I built node.js packages ;)

@civodul @roptat @reproducible_builds I've managed to watch the talk in full now. Awesome work! onwards to gradle, kotlin, etc. :).

@civodul @roptat Another tough nut to crack will probably the Android Gradle Plugin. The build instructions infamously involve "Get hired by google" as a first step... Because they use a different build system internally as they support (or rather don't support externally). Internally everything is build with bazel. For non-googlers you can try finding your way through an unmaintained, known-broken gradle based build. 😔 🙈

@Bubu @civodul we could create a bazel-build-system in guix too, butt let's not think too much ahead and focus on simpler things. Right now I'm trying to understand how Android.bp files work; I wrote a parser and plan to write a blueprint-build-system in the coming weeks. That should allow me to update our adb and fastboot packages to the latest version, as a first step :)

@Bubu @civodul The plan is to *not* use soong (too hard to build) but reimplement the various modules from it, in guile. Not sure if that'll work. Should be easy for the various cc_* modules, but other modules might need more work, especially to build them independently from the repo build hierarchy.

Actually, someone was already able to create a tool that transform blueprint to nix file, and can compile adb and fastboot, so it should definitively be possible ( those are blueprint2nix and soongnix )
@Bubu @civodul

Yes, I'm aware of that already. That's what got me inspired to pursue that direction. They also have robotnix, which allows you to build an android system from nix, but it doesn't have a nice modular build (yet, I hope).

They had a presentation at nixcon this year :)
@Bubu @civodul

@roptat @civodul
Ack on the not jumping ahead part.

I've so far never needed to interact with blueprint/soong at all so far. I think because I either tried to build AOSP for older platforms or looked into the toolchain side of the sdk (AGP), which afaik isn't using soong.

@Bubu @civodul well, AGP might give you the SDK, but it's not really for free: it's downloading a binary version for you. Or am I misunderstanding something?

@roptat @civodul I think we are talking about different things here. The Android SDK consists of many parts. One part of it is basically Android Studio or AGP which are tightly interwoven.

Building AGP is hard. I haven't looked into building other parts of the SDK.

@Bubu @civodul Well, I know who to ask when I get to this part :)

but from the looks of it, we might need gradle first anyway... Gradle itself might not be too hard, but Scala and Kotlin are going to be really annoying.

Sign in to participate in the conversation
Mastodon (Aquilepouet)

The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!