RPM

A general mechanism to attach attributes to objects

Registered by Jeff Johnson

There is a recurrent need to attach additional metadata tags
to metadata for (usually) depsolver purposes.

There already is a quite general mechanism using "arbitrary tags",
where string(s) can be included into packages to be used for
whatever non-rpm purpose desired.

However, there are various attempts to add custom tags with
hard coded semantics and perhaps modified data types
(like integer instead of string) to rpm code to support
various functionalities.

The Mandriva added Distepoch/Disttag is one such extension,
and the proposed "dependency priority" in one of the attached
bugs here is Yet Another custom extension.

There are further attempts to customize RPM "arch" metadata with qualifiers
like (random arm example from GOOG, see Fedora-ARM archives
in September 2011 for AT_HWCAP proposals)
    http://web.archiveorange.com/archive/v/zZzzNru3NmA72LpMcJNh
as well as "multilib" support for elf32/elf64, and attempts to add/attach
security tags to file paths (like SELinux) and content (like MSSF).

There's also the ever present distro tasks to identify that source licenses
are compatible with GPL/LGPL, where RPM's License: tag is typically
used as an identifier for whatever licensing is in use.

While all of the above have quite different usage cases, there is a common
element amongst all the implementations:

      An attribute is being attached to a data element for a targeted semantic purpose.

There are some quite predictable namespace issues associated with string
attributes. E.g. the "arch" package attribute for 64 bit has been renamed several
times, creating aliasing problems for identifiers added as simple string attributes.

This blueprint is a proposal to use Bloom filter's as a datatype to carry arbitrarily
named string attributes opaquely in RPM metadata.

Blueprint information

Status:
Not started
Approver:
Jeff Johnson
Priority:
Medium
Drafter:
Jeff Johnson
Direction:
Approved
Assignee:
Jeff Johnson
Definition:
Discussion
Series goal:
None
Implementation:
Not started
Milestone target:
None

Related branches

Sprints

Whiteboard

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.