cps-org / cps-org/cps

Issues with the "Kernel" and "Kernel-Version" attributes

Open
#1 11 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
191
Forks
14
PR merge metrics
No merged PRs in 30d

Description

The specification has attributes `Kernel` and `Kernel-Version`. For `Kernel`, the specification says

> Specifies the name of the operating system kernel required by the package’s components. The value is case insensitive and should follow the output of uname -s. Typical values include "windows", "cygwin", "linux" and "darwin".

The Single UNIX Specification says that the `-s` flag to `uname` causes it to "Write the name of the implementation of the operating system.", saying nothing about the kernel.

Linux is the only OS that draws such a strong distinction between the kernel and the OS as a whole; the kernel of Darwin, for example, is called XNU, but `uname -s` on a Darwin-based system prints "Darwin", not "XNU".

And even the value reported by `uname -s` doesn't necessarily fully describe the platform on which you're running; macOS, iOS, watchOS, and tvOS all use Darwin as the "core operating system", but something that can be used on macOS might not be usable on iOS, for example.

For Linux, you'd have "GNU/Linux", i.e. Linux plus something based on GNU libc, and "Bionic/Linux", better known as "Android", and so on.

Even if `Kernel` were replaced by, for example, `OS` in the names, to indicate the full OS rather than just the OS kernel, a UN\*X-only package running on multiple UN\*Xes wouldn't have a single OS whose name would be "*the* name of the OS required by the package's components" - you might need a list such as `linux,macos,ios,solaris,freebsd`.

And, for `OS-Version`, you'd need minimum versions for multiple OSes.

My inclination would be to remove those attributes from the specification, or deprecate them, and wait until a clear need for them is established, and then, based on the requirements for such an attribute, specify attributes that address those requirements.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.