F-Droid build servers can't build modern Android apps due to outdated CPUs

On August 7, 2025, a new build problem started hitting many Android apps on F-Droid. Many Android apps on F-Droid have been unable to publish updates if they use Android Gradle Plugin (AGP) 8.12.0 or Gradle 9.0.

The root cause: Google’s new aapt2 binary in AGP 8.12.0 started requiring CPU instructions (SSE4.1, SSSE3) that F-Droid’s build farm hardware doesn’t support. This is similar to a 2021 AGP 4.1.0 issue, but it has returned, and now affects hundreds of apps.

As an example, my open-source app MBCompass hit this issue. I downgraded to AGP 8.11.1 with Gradle 8.13 to make it build, but even then, F-Droid failed due to a baseline profile reproducibility bug in AGP. The only workaround was disabling baseline profiles and pushing yet another release.

This has led to multiple “maintenance” versions in a short time, confusing users and wasting developer time, just to work around infrastructure issues outside the developer’s control.

References:

- F-Droid admin issue: https://gitlab.com/fdroid/admin/-/issues/593 - Catima example: https://github.com/CatimaLoyalty/Android/issues/2608 - MBCompass case: https://github.com/CompassMB/MBCompass/issues/88

128 points | by nativeforks 3 hours ago

21 comments

  • karteum 1 hour ago
    I don't fully understand: aren't gradle and aapt2 open-source ?

    If you want to build buildroot or openwrt, the first thing it will do is compiling your own toolchain (rather than reusing the one from your distro) so that it can lead to predictable results. I would have the same rationale for f-droid : why not compile the whole toolchain from source rather than using a binary gradle/aapt2 that uses unsupported instructions?

  • jchw 2 hours ago
    Apparently it was fixed upstream by Google?

    https://gitlab.com/fdroid/admin/-/issues/593#note_2681207153

    Not sure how long it will take to get resolved but that thread seems reassuring even if there isn't a direct source that it was fixed.

    • nativeforks 2 hours ago
      Still haven't. Currently, most of the devs aren't aware of this underlying issue!
  • nativeforks 3 hours ago
    • benrutter 3 hours ago
      The Catima thread makes FDroid sound like a really difficult commmunity to work with. Although I'm basing this on one person's comment and other people agreeing, not on any knowledge or experience.

      > But this is like everything with F-Droid: everything always falls on a deaf man's ears. So I would rather not waste more time talking to a brick wall. If I had the feeling it was possible to improve F-Droid by raising issues and trying to discuss how to solve them I wouldn't have left the project out of frustration after years of putting so much time and energy into it.

      • eptcyka 1 hour ago
        F-droid are thoroughly understaffed and yet incredibly ambitious and shrewd around their goals - they want to build all the apps in a reproducible manner. There’s lots of friction around deviating from builds that fit within their model. The system is also slow, takes a long while before a build shows up. I think f-droid could benefit immensely from more funding, saying that as someone who has never seen f-droid’s side, but have worked on an app that was published there.
      • typpilol 1 hour ago
        I saw that too and was wondering what kind of drama happened in the past
  • benrutter 3 hours ago
    This is pretty concerning, especially as FDroid is by far the largest non-google android store at the moment, something that I feel is really needed, regardless of your feelings about google.

    Does anyone know of plans to resolve this? Will FDroid update their servers? Are google looking into rolling back the requirement? (this last one sounds unlikely)

    • dannyw 3 hours ago
      I agree it’s a bit concerning but please keep in mind F-Droid is a volunteer-run community project. Especially with some EU countries moving to open source software, it would be nice to see some public funding for projects like F-Droid.
      • berkes 35 minutes ago
        > please keep in mind F-Droid is a volunteer-run community project.

        To, me, that's the worrying part.

        Not that it's ran by volunteers. But that all there's left between a full-on "tech monopoly" or hegemony, and a free internet, is small bands of underfunded volunteers.

        Opposition to market dominance and monopolies by multibillion multinationals shouldn't just come from a few volunteers. If that's the case, just roll over and give up; the cause is lost. (As I've done, hence my defaitism)

        Aside from that: it being "a volunteer ran community" shouldn't be put as an excuse for why it's in trouble/has poor UX/is hard to use/is behind/etc. It should be a killer feature. Something that makes it more resilient/better attuned/easier/earlier adopting/etc.

      • nativeforks 3 hours ago
        > Nice to see some public funding for projects like F-Droid

        Definitely, SSE4.1 instruction set based CPU, for building apps in 2025, No way!!

      • benrutter 2 hours ago
        Hope I didn't come across as criticising FDroid here- It seems sucky to have build requirements change under your feet.

        It's just I think that FDroid is an important project, and hope this doesn't block their progress.

    • happosai 2 hours ago
      Maybe if f-droid is important to you, donate, so they can buy newer build server?
      • benrutter 2 hours ago
        I'm not quite sure if I'm over reading into this, but this comes across as a snarky response as if I've said "boo, fdroid sucks and owes me a free app store!".

        Appologies if I came across like that, here's what I'm trying to convey:

        - Fdroid is important

        - This sounds like a problem, not necessarily one that's any fault of fdroid

        - Does anyone know of a plan to fix the issue?

        For what it's worth, I do donate on a monthly basis to fdroid through liberapay, but I don't think that's really relevant here?

      • nativeforks 1 hour ago
        This has now become a major issue for F-Droid, as well as for FOSS app developers. People are starting to complain about devs because they haven't been able to release the new version for their apps (at least it doesn't show up on F-Droid) as promised
      • ratdragon 2 hours ago
        Did and doing regularly.
    • charcircuit 3 hours ago
      >FDroid is by far the largest non-google android store at the moment

      Samsung Galaxy Store is much much bigger.

      • ykonstant 2 hours ago
        Funny true story: I got my first smartphone in 2018, a Samsung Galaxy A5. I have it to this day, and it is the only smartphone I ever used. This is the first time I hear about Samsung Galaxy store! (≧▽≦)
      • ozim 2 hours ago
        Largest not run by the corporations then ;)
      • benrutter 3 hours ago
        Yup! I missed that one because I didn't realise it still existed. Woops!
    • Jyaif 2 hours ago
      > FDroid is by far the largest non-google android store at the moment

      Not even sure it's in the top 10

      • benrutter 2 hours ago
        Wait really? What other ones are there!? Somebody's already pointed out Samsumg Galaxy store, but I don't think I know of others?

        Edit: searching online found this if anyone else is interested https://www.androidauthority.com/best-app-stores-936652/

        • magnio 1 hour ago
          There are at least six Android app stores in China that have more than 100 million MAUs each: Huawei AppGallery, Tencent MyApp, Xiaomi Mi Store (or GetApps), Oppo, Vivo, and Honor stores.
          • IceWreck 4 minutes ago
            Huawei and Honor are seperate app stores?

            And Oppo and Vivo too?

            In both instances one company owns the other - why have competing app stores?

        • lagadu 41 minutes ago
          Amazon has a big one too. I also know of a popular one called Aptoide.
  • mjevans 3 hours ago
    https://en.wikipedia.org/wiki/Streaming_SIMD_Extensions#Late...

    Even my last, crazy long in the tooth, desktop supported this and it lived to almost 10 years old before being replaced.

    However at the same time, not even offering a fallback path in non-assembly?

    • wtallis 2 hours ago
      > However at the same time, not even offering a fallback path in non-assembly?

      There's probably not any hand-written assembly at issue here, just a compiler told to target x86_64-v2. Among others, RHEL 9 and derivatives were built with such options. (RHEL 10 bumped up the minimum spec again to x86_64-v3, allowing use of AVX.)

    • vocx2tx 2 hours ago
      Looking at the issue their builders seem to be Opterons G3 (K10?)[0]

      [0] https://en.wikipedia.org/wiki/AMD_10h

      • SSLy 36 minutes ago
        at this point they're guzzling so much power the electricity is more expensive than replacement platform
      • ozim 57 minutes ago
        I can imagine this has to be like that as they usually get $1500 per month in donations.

        You could buy a newer one but I guess they have other stuff they have to pay for.

  • yjftsjthsd-h 2 hours ago
    > Google’s new aapt2 binary in AGP 8.12.0

    Given F-Droid's emphasis on isolating and protecting their build environment, I'm kind of surprised that they're just using upstream binaries and not building from source.

  • userbinator 2 hours ago
    Fortunately the source code is available:

    https://android.googlesource.com/platform/frameworks/base/+/...

    If I had the time, I'd try to compile a binary of it that will run on Win95 just to give my fuckings to the planned obsolescence crowd.

    • maxloh 2 hours ago
      There is no point for Google to push planned obsolescence on the PC or server space. They don't have a market there.
      • userbinator 2 hours ago
        It does benefit them to make it harder for competitors.
        • maxloh 2 hours ago
          When you mention "competitors," what industries or markets are you referring to?

          No one would write Android apps on a Chromebook, and making it harder to do so would only reduce the incentive for companies to develop Android apps.

          How could Google benefit from pushing a newer instruction set standard on Windows and macOS?

          • heavyset_go 1 hour ago
            The one moderately popular competitor is the project in the OP that is suffering directly from this upstream change.
            • maxloh 1 hour ago
              While your perspective makes some sense, it's highly improbable. It's unlikely that Google was aware of F-Droid's infrastructure specs, or its inability to fix the issue in advance.

              It seems you're suggesting a very specific, targeted attack.

    • tonyhart7 1 hour ago
      "If I had the time, I'd try to compile a binary of it that will run on Win95 just to give my fuckings to the planned obsolescence crowd"

      The idea that not supporting a 20+ year old system is "planned obsolescence" is a bit shallow

  • wtallis 3 hours ago
    It seems quite implausible that F-Droid is actually running on hardware that predates those instruction set extensions. They're seeing wider adoption by default these days precisely because hardware which doesn't support them is getting very rare, especially in servers still in production use. Are you sure this isn't simply a matter of F-Droid using VMs that are configured to not expose those instructions as supported?
  • roywashere 2 hours ago
    This is sort of like a bug I hit last year when the mysql docker container suddenly started requiring x86-64-v2 after a patch level upgrade and failed to start: https://github.com/docker-library/mysql/issues/1055
  • o11c 3 hours ago
    Note: the underlying blame here fundamentally belongs to whoever built AGP / Gradle with non-universal flags, then distributed it.

    It's fine to ship binaries with hard-coded cpu flag requirements if you control the universe, but otherwise not, especially if you are in an ecosystem where you make it hard for users to rebuild everything from source.

    • userbinator 2 hours ago
      control the universe

      Guess what the company behind Android wants to do...

    • IshKebab 1 hour ago
      Exactly. Everything should be compiled to target i386.

      /s (should be obvious but probably not for this audience)

  • trenchpilgrim 3 hours ago
    I thought SSE 4.1 dates back to 2008 or so?
    • starkparker 3 hours ago
      The build servers appear to be AMD Opteron G3s, which only support part of SSE4 (SSE4a). Full SSE4 support didn't land until Bulldozer (late 2011).
      • karlgkk 2 hours ago
        I appreciate that this is a volunteer project, but my back of the hand math suggests that if they upgraded to a $300 laptop using a 10nm intel chip, it would pay for itself in power usage within a few years. Actually, probably less, considering an i3-N305 has more cores and substantially faster single thread.

        And yes, you could get that cost down easily.

        • wtallis 2 hours ago
          Yes, a used laptop would be an upgrade from server hardware of that vintage, in performance and probably in reliability. If they're really using hardware that old, that is itself a big red flag that F-Droid's infrastructure is fragile and unmaintained.

          (A server that old might not have any SSDs, which would be insane for a software build server unless it was doing everything in RAM.)

          • eimrine 1 hour ago
            There are some more possible virtues except of performance and probably-reliability.
        • eimrine 1 hour ago
          It will have Intel ME which makes the whole open-source ideology... compromised?
          • karlgkk 29 minutes ago
            there are a handful of vendors that will sell you an intel chip with the me disabled, as well as arm vendors that ship boards without an me-equivalent at all

            the point of my post still stands

      • mrheosuper 1 hour ago
        it's insane, i would give them my old xeon haswell machine for free, but the shipping cost is likely more than the cost of the machine itself.
    • nativeforks 3 hours ago
      Yes, SSE4.1 and SSSE3 have been introduced in ~2006. The F-Droid build server still uses that to build modern and some of the most popular FOSS apps.
  • micw 2 hours ago
    As far as I can see, sse4.1 has been introduced in CPUs in 2011. That's more than 10 years ago. I wonder why such old servers are still in use. I'd assume that a modern CPU would do the same amount of work with a fraction of energy so that it does not even make economical sense to run such outdated hardware.

    Does anyone know the numbers of build servers and the specs?

    • cjaackie 1 hour ago
      I haven’t seen the real answer that I suspect here - the build servers are that one dual socket AMD board which runs open firmware and has no ME/PSP .
    • adrian_b 1 hour ago
      It has been introduced in Intel Penryn, in November 2007.

      However the AMD CPUs did not implement it until Bulldozer, in mid 2011.

      While they lacked the many additional instructions provided by Bulldozer, also including AVX and FMA, for many applications the older Opteron CPUs were significantly faster than the Bulldozer-based CPUs, so there were few incentives for upgrading them, before the launch of AMD Epyc in mid 2017.

      SSE 4.1 is a cut point in supporting old CPUs for many software packages, because older CPUs have a very high overhead for divergent computations (e.g. with if ... else ...) inside loops that are parallelized with SIMD instructions.

    • LukeShu 1 hour ago
      I was going to say that I assume that the reason for such old CPUs is the ability to use Canoeboot/GNU Boot. But you absolutely can put an SSE4.2 CPU in a KGPE-D16 motherboard. So IDK.
    • heavyset_go 1 hour ago
      Hardware after the first couple of generations of x86_64 muliticore processors are perfectly capable machines to use as servers, even for tasks you want to put off to a build farm.
  • exabrial 3 hours ago
    Man, Android could have been way cooler if it actually used real virtual machines, or at least the JVMs.
    • pjmlp 2 hours ago
      I stood by Oracle, because in the long term as it has been proven, Android is Google's J++, and Kotlin became Google's C#.

      Hardly any different from what was in the genesis of .NET.

      Nowadays they support up to Java 17 LTS, a subset only as usual, mostly because Android was being left behind accessing the Java ecosystem on Maven central.

      And even though now ART is updatable via PlayStore, all the way down to Android 12, they see no need to move beyond Java 17 subset, until most likely they start again missing on key libraries that decided to adopt newer features.

      Also stuff like Panama, Loom, Vector, Valhala (if ever), don't count them ever being supported on ART.

      At least, they managed to push into mainstream the closest idea of OSes like Oberon, Inferno, Java OS and co, where regardless of what think about the superiotity of UNIX clones, here they have to contend themselves with a managed userspace, something that Microsoft failed at with Longhorn, Singularity and Midori due to their internal politics.

      • aembleton 28 minutes ago
        > Kotlin became Google's C#

        Are Google buying Jetbrains?

    • tonyhart7 1 hour ago
      JVM??? hell no, native FTW
  • wpm 2 hours ago
    I’ve got an old Ivy Bridge-EP Dell workstation they can borrow goddamn SSE4.1 is nearly old enough to drink.
    • rpcope1 1 hour ago
      Yeah I was kind of shocked too. Core 2 could do both of those instruction sets. A used Dell Precision can be had for very little and probably would be grossly more efficient than whatever they're using.
  • nicman23 2 hours ago
    wtf they cannot be still running opterons. it was to be that they are using qemu with g3 as a cpu profile.. right?
  • 42lux 1 hour ago
    >> This has led to multiple “maintenance” versions in a short time, confusing users and wasting developer time, just to work around infrastructure issues outside the developer’s control.

    What an entitled conclusion.

  • shmerl 2 hours ago
    Can't cross compilation help for that? The CPU compiling doesn't need to match the target.
    • a99c43f2d565504 2 hours ago
      It's not the target that is now requiring new instructions, but one of the components in the build tools.
  • kijin 2 hours ago
    Requiring (supposedly) universally available CPU instructions is one thing. Starting to require it in a minor version update (8.11.1 -> 8.12.0) is a whole different thing. What the heck happened to semantic versioning? We can't even trust patch updates anymore these days. The version numbers might as well be git commit IDs.
  • hulitu 1 hour ago
    > The root cause: Google’s new aapt2 binary in AGP 8.12.0 started requiring CPU instructions (SSE4.1, SSSE3) that F-Droid’s build farm hardware doesn’t support.

    Very intelligent move from Google. Now you can't compile "Hello World" without SSE4.1, SSSE3. /s

    Are there any X86 tablets with Android ?

    • vardump 51 minutes ago
      There are very few 17+ years old build servers at this point. Or laptops and desktops for that matter.
  • do_not_redeem 3 hours ago
    Encourage your users to use Obtainium instead. Cut out the middleman.

    https://github.com/ImranR98/Obtainium

    • yjftsjthsd-h 2 hours ago
      Half the point is that I trust this middleman more than the app devs. When app developers turn evil ( https://news.ycombinator.com/item?id=38505229 ), I explicitly want someone reviewing things and blocking software that works against my interests before it gets to me.
    • qart 2 hours ago
      I have it installed. But the only thing I get updates for is Obtainium itself. There's no catalogue of apps, so I haven't installed anything via Obtainium.
      • UberFly 2 hours ago
        I would uninstall. Author and app seem sketchy.
      • user070223 2 hours ago
        Try Discoverium
    • oguz-ismail 2 hours ago
      How is this not another middleman (with a political banner in its README no less)?
      • prmoustache 2 hours ago
        At this point it is not political, the banner mention a fact and a tragedy and link for donations to reputable NGOs.
      • spacemule 2 hours ago
        Wow. That banner slipped by me on first read. Thanks for pointing it out. I tried to go to the dev's webpage, and I needed a VPN to access it. If he actually believed what he said, he wouldn't block IPs, he'd attempt to educate. Seems like bad-faith xenophobia role-playing as compassion.
      • user070223 2 hours ago
        I think it acts more as an rss feed reader rather than building and hosting apps on it's own.