Skip to content

nix versioning policy for newer features #737

Open
@kinetiknz

Description

@kinetiknz

What is nix's versioning policy for adding newer platform features? Is there a minimum OS version that nix and applications built using it are expected to run on?

In a project currently being integrated into Firefox, we're trying to use nix and have run into an issue where the minimum glibc version we must support is 2.12 but nix includes setns which is only available in 2.14 onwards. From a quick scan through glibc's abilist, that's currently the only symbol from a glibc newer than 2.12, so there are two questions:

  1. Would you accept a PR that optionally disables newer features to allow compatibility with older systems? This seems trivial to solve for the case described above, but I'm not sure what a solution would look like that handled multiple OS or glibc versions over time.
  2. (repeating the opening question) What's the long term plan for handling versioning of newer OS features in nix?

While my example is specific to glibc, this question generally applies to other platforms. A theoretical example might be the use of readlinkat which was only made available in OS X 10.10, making use of nix on older OS X versions impossible. I understand that older OS X versions tend to become unsupported fairly quickly, so this specific example isn't ideal but you can imagine this problem may reoccur if new features are added to 10.13 or later and then included in nix.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions