Skip to content

Proposal: Change LinuxPackageObjectType Architecture Field To ControlledVocabularyStringType

Bryan Worrell edited this page Nov 18, 2013 · 4 revisions

Status: Open
Comment Period Closes: TBD
Affects Backwards Compatibility: No
Relevant Issue: https://github.com/CybOXProject/schemas/issues/49

Background Information

This proposal concerns the Architecture field found under the LinuxPackageObjectType as well as the ArchitectureType and ArchitectureTypeEnum datatypes found within the Linux Package Object schema. The Architecture field is currently of type, ArchitectureType which represents a limited list of CPU architectures (e.g., i386, SPARC, noarch, etc.) that Linux package managers support.

The current enumeration does not express the full set of CPU architecture vocabulary terms used by all Linux package managers (e.g., amd64, alpha, alphaev5, armel, armhf, armv4l, armv8, i486, i586, mips, ppc64, sun4c, sparc64, etc.). These terms are not universally understood by all package managers and some package managers use different terms to denote the same architecture (e.g., armv7hl on Fedora RPM setups and armhf on Debian DPKG setups refer to ARMv7 hardware floating point architectures).

Proposal

Change the datatype of the Architecture field to ControlledVocabularyStringType, thereby opening the field to any user input. The ArchitectureType and ArchitectureTypeEnum types would be removed as they would no longer be used.

By opening the field to any user input, the Linux Package Object can support future CPU architectures (e.g., aarch64), or other current architectures without the needing to alter or extend an enumeration.

The schema changes would look like this:

<xs:element name="Architecture" type="cyboxCommon:ControlledVocabularyStringType" minOccurs="0">
    <!-- Annotations -->
</xs:element>

Impact

No other datatypes are effected by this change and there are no foreseen backwards compatibility issues.

Requested Feedback

  1. Does opening this field negatively impact CybOX authors/consumers?
Clone this wiki locally