[Replicant] Review of MicroG and collaboration with Free Software Directory

J05HYYY lovell.joshyyy at gmail.com
Mon Jul 19 16:31:07 UTC 2021


> What might take time would be to package all the dependencies for
> building specific android applications and make sure they can cross
> compile fine.

Last time I was on the #replicant IRC, I spoke to Julien (iirc). Many
of the android applications depend on Gradle, and in turn, Maven but
there are major issues with reproducibility ...

I'd say a good 90% of the software in Maven C*ntral is not reproducible.

I tried to write some scripts etc. that reconstructs the software from
the incomplete source jars, by iterating over the java files
continuously until nothing else can be built, but this failed on all
but ~10% of java class files. I even tried auto-patching the sources,
using decompiled byte code from the 'binary' jars, this improved yield,
but not massively. Although I managed to reconstruct some classes. I
didn't manage to reconstruct a complete piece of software ... it was
that bad.

The other thing, worth noting, is that the software in Maven C*ntral is
all inter-dependent. If you wish to pull sources, and their dependencies
as sources ... and theirs ... etc. you end up getting over 10 gig of
sources alone, it's at this point I stopped downloading, and only
really managed to get an incomplete sample to work with.

idk if f-droid managed to work around this or not, or whether the
situation is much different with Android?

If you want my honest opinion though, the appropriate thing to do would
be to manually reconstruct the whole of Maven C*ntral using alternate
sources (git, svn etc.). I know Julien has already started with Gradle
and Maven. The difficulty is that there are literally millions of
'artifacts' (they actually call them that). If anyone is
interested in the scripts etc. I wrote, I might be able to post them to
github in the coming months. Alternatively, I might be able to PM them.
But really it isn't worth it, aside from being able to harvest/mine
reusable java objects.

Josh


More information about the Replicant mailing list