Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

FYI: I created a Gradle issue for bootstrappable Debian support

0 views
Skip to first unread message

Sean Gilligan

unread,
Sep 25, 2023, 4:20:04 PM9/25/23
to
Hi Everyone,

I appreciate the efforts of the Debian Java team and know that your job
is not easy.

I work on bitcoinj (Java) and we are (for better or worse) using Gradle
for our builds. We are stuck supporting Gradle 4.4.x, when the latest
version of Gradle 8.3 (or 8.4) is required to support JDK 21 (if you're
not using the Debian-patched Gradle, of course.)

I had thought there was already an issue for this on the Gradle GitHub
project, but today I couldn't find anything. So I created a new one:
https://github.com/gradle/gradle/issues/26516

I thought I would share that with you for reference purposes. Or maybe
someone might want to comment on the issue, especially if anyone from
Gradle responds or asks questions.

I'm hoping that priorities at Gradle may be changing now that
supply-chain security has become a more visible issue in the industry.
(Yes, I'll admit to being an optimist.)

Anyway, thanks for your efforts. We do appreciate them.

Regards,

Sean

p.s. If you're interested in how we are dealing with this at bitcoinj, I
created an issue there as well:
https://github.com/bitcoinj/bitcoinj/issues/3287

Emmanuel Bourg

unread,
Sep 26, 2023, 3:30:06 AM9/26/23
to
Hi Sean,

Thank you for your support, I'm glad someone appreciates our
FrankenGradle ;)

Gradle is difficult to upgrade in Debian for a variety of reasons. For
one thing it's a huge monolith and thus it's a bit all or nothing, if
one part is missing your are stuck. Maven in comparison is highly
modular and can be upgraded piece by piece. The major pain point
currently is the Kotlin DSL, I wish the core of Gradle would have
remained pure Java/Groovy. And then there is the non-free stuff like the
Gradle enterprise plugin that gets in the way.

Addressing these issues in Gradle isn't a trivial task, and I doubt the
bootstrappability is compelling enough to motivate the Gradle developers
to work on it.

If this is important for bitcoinj I would suggest switching to another
build tool, either Maven if you have a fairly standard project
structure, or Ant if you need the flexibility of an imperative build
system (and Ant is by far the easiest to bootstrap).

Emmanuel Bourg

Sean Gilligan

unread,
Sep 27, 2023, 4:10:04 PM9/27/23
to
Hi Emmanuel,

FrankenGradle!  That's a great name!

I know it's unlikely they are going to do anything, but I thought there
should at least be an up-to-date GitHub Issue for Gradle to look at and
for a discussion to hopefully occur.

bitcoinj has franken-build-scripts that use a growing number of
conditionals to ensure they run on the latest Gradle as well as
FrankenGradle 4.4.x and Gradle 4.10.3 (which is the closest standard
version that we can easily use on GitHub CI.)  The scripts have been
difficult to maintain but they are currently working and they will
suffice through the 0.17 release. They are also supporting JDK 21, so we
are definitely OK for now.

We use Debian Docker images for our GitLab CI builds and for our
reference build which can be run locally as well. Being Debian Free
Software Guidelines compliant is important to us. We would like to
eventually see the bitcoinj library, our "wallet-tool" command-line app,
and perhaps even a GUI wallet be available as Debian packages.

Thinking longer-term, we have had brief discussions about switching to
Maven, but haven't made any serious effort yet. We've been hoping that
Gradle will see the light and/or you will make progress even without
their support. But we'll switch to Gradle if necessary in the future.

Thanks gain for all your efforts!

-- Sean

Sean Gilligan

unread,
Sep 28, 2023, 1:30:04 PM9/28/23
to
> But we'll switch to Gradle if necessary in the future.

Typo: I meant Maven.
0 new messages