Phasing out i686

Over the past few days I’ve been asking around on IRC whether anyone uses the i686 packages, and I’ve had a hard time getting an answer that isn’t “some people do.” As it currently stands the i686 portion of Nix(OS|pkgs) is basically abandoned; the builds fail constantly and no one seems to bother with fixing them.

Currently having i686 adds load to Hydra[1], takes up space in the binary cache[2], and most importantly adds noise to the list of failures of any given nix(os|pkgs) evaluation.

While I am in general in favor of supporting more, and not less, architectures, I feel that we are not currently supporting i686, but rather keeping it on life support, and that perhaps it is time we phase it out.

I’d like to propose that we:

  1. Attempt to measure the number of current i686 users
  2. Seek people to help maintain it | Deprecate it

Thoughts?

[1]: This may or may not be important/meaningful.
[2]: Which will matter if/when we have to pay for it.

4 Likes

They are useful in certain contexts, the most recent news-worthy example was steam’s dependency on certain 32bit libraries, also for precompiled binaries such as cups

3 Likes

Absolutely, I think there will be a while longer still where a handful of i686 packages will need to remain and be (properly) maintained.

I’ll reference Arch that despite having removed i686 support still seems to have 162 32-bit packages

EDIT: A different query shows 268 packages

Also relevant discussion: [RFC 0046] Platform Support Tiers by 7c6f434c · Pull Request #46 · NixOS/rfcs · GitHub

1 Like

Ah, yes, that is a very good take on this; a tiered model a-la Rust’s.

In those terms this proposal is lowering i686-linux from Tier 1 to 2, I suppose.

  1. Did you ask about Wine usage? Because our current i686-linux support (in terms of code and development processes) is not really i686-linux support, it is Wine on x86_64-linux support for 32-bit binaries.

  2. Yes, the intended-to-accept version of RFC assigns i686-linux in general Tier 3 (which is close to the Tier2 in the linked comment) — below x86_64-darwin, on par with armv7-linux (with Wine exception). This didn’t raise any protest during discussion and seems to be a correct description of community attitude.

  3. So the proposal is to clean up the set of things built by Hydra in accordance to the current development assumptions?

1 Like

I fully agree with you. NixOS does not want to run any graphics mode on that i686 platform. Other users of the NixOS Brasil group on the telegram, who are helping me, tested my “configuration.nix”. Everything worked normally but on x86_64.

I have an ASUS EeePC machine. Some packages (bash, qtwebengine, etc.) are not available for i686 and they must be built on this machine

I run i686 short-living VM (similar to kata-containers) in graphics mode on x86_64 hosts.

But nevermind, I am on NixOS 19.09 anyway, just occasionally cherry-picking packages from master, and update is very unlikely.

Just to note that there could be silent users with much weirder setup than just a workstation (and there may be much more users of i686-linux than ones of x86_64-darwin, which is to be deprecated too).

Yeah, I think NixOS-stable-small should be kept for i686. Useful for netbooks etc. with “nixos-rebuild --target-host” from a more powerful machine.