rpm

package
v1.5.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 25, 2023 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Overview

Package rpm contains some internal helpers for working with RPM databases.

The actual data stored in various databases is independent of the disk format, once extracted.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type EntryInfo

type EntryInfo struct {
	Tag  Tag
	Type Kind
	// contains filtered or unexported fields
}

EntryInfo describes an entry for the given Tag.

func (*EntryInfo) String

func (e *EntryInfo) String() string

func (*EntryInfo) UnmarshalBinary

func (e *EntryInfo) UnmarshalBinary(b []byte) error

UnmarshalBinary implements encoding.BinaryUnmarshaler.

type Header struct {
	Infos []EntryInfo
	// contains filtered or unexported fields
}

Header is a parsed RPM header.

func ParseHeader

func ParseHeader(ctx context.Context, r io.ReaderAt) (*Header, error)

ParseHeader is equivalent to

var h Header
err := h.Parse(ctx, r)
return &h, err

func (*Header) Parse

func (h *Header) Parse(ctx context.Context, r io.ReaderAt) error

Parse takes a ReaderAt containing an RPM header and loads the entries.

The ReaderAt must stay available throughout the lifetime of the Header.

func (*Header) ReadData

func (h *Header) ReadData(ctx context.Context, e *EntryInfo) (interface{}, error)

ReadData returns a copy of the data indicated by the passed EntryInfo.

If an error is not reported, the returned interface{} is the type indicated by the EntryInfo's "Type" member.

NB The TypeChar, TypeInt8, TypeInt16, TypeInt32, TypeInt64, and TypeI18nString all return slices.

type Kind

type Kind uint32

Kind is the Kind of data stored in a given Tag.

const (
	TypeNull Kind = iota
	TypeChar
	TypeInt8
	TypeInt16
	TypeInt32
	TypeInt64
	TypeString
	TypeBin
	TypeStringArray
	TypeI18nString

	TypeRegionTag = TypeBin
	TypeMin       = TypeChar
	TypeMax       = TypeI18nString
)

Tag data Types.

func (Kind) String

func (i Kind) String() string

type Tag

type Tag int32

Tag is the term for the key in the key-value pairs in a Header.

const (
	TagInvalid Tag = -1

	TagHeaderImage Tag
	TagHeaderSignatures
	TagHeaderImmutable
	TagHeaderRegions

	TagHeaderI18nTable Tag = 100
)

Header tags.

const (
	TagSigSize  Tag
	TagSigLeMD5 // internal, obsolete
	TagSigPGP
	TagSigLeMD5_2 // internal, obsolete
	TagSigMD5
	TagSigGPG
	TagSigGPG5   // internal, obsolete
	TagBadSHA1_1 // internal, obsolete
	TagBadSHA1_2 // internal, obsolete
	TagPubKeys
	TagDSAHeader
	TagRSAHeader
	TagSHA1Header
	TagLongSigSize
	TagLongArchiveSize

	TagSHA256Header

	TagVeritySignatures
	TagVeritySignatureAlgo
)

Signing Tags.

const (
	TagName Tag = 1000 + iota
	TagVersion
	TagRelease
	TagEpoch
	TagSummary
	TagDescription
	TagBuildTime
	TagBuildHost
	TagInstallTime
	TagSize
	TagDistribution
	TagVendor
	TagGIF
	TagXPM
	TagLicense
	TagPackager
	TagGroup
	TagChangelog // internal ?
	TagSource
	TagPatch
	TagURL
	TagOS
	TagArch
	TagPreInstall
	TagPostInstall
	TagPreUninstall
	TagPostUninstall
	TagOldFilenames // obsolete
	TagFileSizes
	TagFileStates
	TagFileModes
	TagFileUids // obsolete
	TagFileGids // obsolete
	TagFileRDevs
	TagFileMTimes
	TagFileDigests
	TagFileLinkTos
	TagFileFlags
	TagRoot // internal, obsolete
	TagFileUsername
	TagFileGroupname
	TagExclude   // obsolete
	TagExclusive // obsolete
	TagIcon
	TagSourceRPM
	TagFileVerifyFlags
	TagArchiveSize
	TagProvideName
	TagRequireFlags
	TagRequireName
	TagRequireVersion
	TagNoSource
	TagNoPatch
	TagConflictFlags
	TagConflictName
	TagConflictVersion
	TagDefaultPrefix // internal, deprecated
	TagBuildRoot     // internal, obsolete
	TagInstallPrefix // internal, deprecated
	TagExcludeArch
	TagExcludeOS
	TagExclusiveArch
	TagExclusiveOS
	TagAutoReqProv // internal
	TagRPMVersion
	TagTriggerScripts
	TagTriggerName
	TagTriggerVersion
	TagTriggerFlags
	TagTriggerIndex

	TagVerifyScript
	TagChangelogTime
	TagChangelogName
	TagChangelogText
	TagBrokenMD5 // internal, obsolete
	TagPreReq    // internal
	TagPreInstallProg
	TagPostInstallProg
	TagPreUninstallProg
	TagPostUninstallProg
	TagBuildArchs
	TagObsoleteName
	TagVerifyScriptProg
	TagTriggerScriptProg
	TagDocDir // internal
	TagCookie
	TagFileDevices
	TagFileInodes
	TagFileLangs
	TagPrefixes
	TagInstallPrefixes
	TagTriggerInstall       // internal
	TagTriggerUninstall     // internal
	TagTriggerPostUninstall // internal
	TagAutoReq              // internal
	TagAutoProv             // internal
	TagCapability           // internal, obsolete
	TagSourcePackage
	TagOldOriginalFilenames // internal, obsolete
	TagBuildPreReq          // internal
	TagBuildRequires        // internal
	TagBuildConflicts       // internal
	TagBuildMacros          // internal, unused
	TagProvideFlags
	TagProvideVersion
	TagObsoleteFlags
	TagObsoleteVersion
	TagDirindexes
	TagBasenames
	TagDirnames
	TagOrigDirindexes
	TagOrigBasenames
	TagOrigDirnames
	TagOptFlags
	TagDistURL
	TagPayloadFormat
	TagPayloadCompressor
	TagPayloadFlags
	TagInstallColor
	TagInstallTID
	TagRemoveTID
	TagSHA1RHN     // internal, obsolete
	TagRHNPlatform // internal, obsolete
	TagPlatform
	TagPatchesName    // deprecated, SuSE
	TagPatchesFlags   // deprecated, SuSE
	TagPatchesVersion // deprecated, SuSE
	TagCacheCtime     // internal, obsolete
	TagCachePkgPath   // internal, obsolete
	TagCachePkgSize   // internal, obsolete
	TagCachePkgMtime  // internal, obsolete
	TagFileColors
	TagFileClass
	TagClassDict
	TagFileDependsX
	TagFileDependsN
	TagDependsDict
	TagSourcePkgID
	TagFileContexts // obsolete
	TagFSContexts
	TagREContexts
	TagPolicies
	TagPreTrans
	TagPostTrans
	TagPreTransProg
	TagPostTransProg
	TagDistTag
	TagOldSuggestsName    // obsolete, aka OLDSUGGESTS
	TagOldSuggestsVersion // obsolete
	TagOldSuggestsFlags   // obsolete
	TagOldEnhancesName    // obsolete, aka OLDENHANCES
	TagOldEnhancesVersion // obsolete
	TagOldEnhancesFlags   // obsolete
	TagPriority           // unimplemented
	TagCVSID              // unimplemented, aka SVNID
	TagBLinkPkgID         // unimplemented
	TagBLinkHdrID         // unimplemented
	TagBLinkNEVRA         // unimplemented
	TagFLinkPkgID         // unimplemented
	TagFLinkHdrID         // unimplemented
	TagFLinkNEVRA         // unimplemented
	TagPackageOrigin      // unimplemented
	TagTriggerPreInstall  // internal
	TagBuildSuggests      // internal, unimplemented
	TagBuildEnhances      // internal, unimplemented
	TagScriptStates       // unimplemented
	TagScriptMetrics      // unimplemented
	TagBuildCPUClock      // unimplemented
	TagFileDigestAlgos    // unimplemented
	TagVariants           // unimplemented
	TagXMajor             // unimplemented
	TagXMinor             // unimplemented
	TagRepoTag            // unimplemented
	TagKeywords           // unimplemented
	TagBuildPlatforms     // unimplemented
	TagPackageColor       // unimplemented
	TagPackagePrefColor   // unimplemented
	TagXAttrsDict         // unimplemented
	TagFileXAttrsx        // unimplemented
	TagDepAttrsDict       // unimplemented
	TagConflictAttrsX     // unimplemented
	TagObsoleteAttrsX     // unimplemented
	TagProvideAttrsX      // unimplemented
	TagRequireAttrsX      // unimplemented
	TagBuildProvides      // unimplemented
	TagBuildObsoletes     // unimplemented
	TagDbInstance         // extension
	TagNVRA               // extension
)

General Tags.

const (
	TagFilenames     Tag = 5000 + iota // extension
	TagFileProvide                     // extension
	TagFileRequire                     // extension
	TagFsNames                         // unimplemented
	TagFsFizes                         // unimplemented
	TagTriggerConds                    // extension
	TagTriggerType                     // extension
	TagOrigFileNames                   // extension
	TagLongFileSizes
	TagLongSize
	TagFileCaps
	TagFileDigestAlgo
	TagBugURL
	TagEVR         // extension
	TagNVR         // extension
	TagNEVR        // extension
	TagNEVRA       // extension
	TagHeaderColor // extension
	TagVerbose     // extension
	TagEpochNum    // extension
	TagPreInstallFlags
	TagPostInstallFlags
	TagPreUninstallFlags
	TagPostUninstallFlags
	TagPreTransFlags
	TagPostTransFlags
	TagVerifyScriptFlags
	TagTriggerScriptFlags

	TagCollections // unimplemented
	TagPolicyNames
	TagPolicyTypes
	TagPolicyTypesIndexes
	TagPolicyFlags
	TagVCS
	TagOrderName
	TagOrderVersion
	TagOrderFlags
	TagMSSFManifest  // unimplemented
	TagMSSFDomain    // unimplemented
	TagInstFilenames // extension
	TagRequireNEVRS  // extension
	TagProvideNEVRS  // extension
	TagObsoleteNEVRS // extension
	TagConflictNEVRS // extension
	TagFileNLinks    // extension
	TagRecommendName // aka RECOMMENDS
	TagRecommendVersion
	TagRecommendFlags
	TagSuggestName // aka SUGGESTS
	TagSuggestVersion
	TagSuggestFlags
	TagSupplementName // aka SUPPLEMENTS
	TagSupplementVersion
	TagSupplementFlags
	TagEnhanceName // aka ENHANCES
	TagEnhanceVersion
	TagEnhanceFlags
	TagRecommendNEVRS  // extension
	TagSuggestNEVRS    // s[] extension
	TagSupplementNEVRS // s[] extension
	TagEnhanceNEVRS    // s[] extension
	TagEncoding
	TagFileTriggerInstall       // internal
	TagFileTriggerUninstall     // internal
	TagFileTriggerPostUninstall // internal
	TagFileTriggerScripts
	TagFileTriggerScriptProg
	TagFileTriggerScriptFlags
	TagFileTriggerName
	TagFileTriggerIndex
	TagFileTriggerVersion
	TagFileTriggerFlags
	TagTransFileTriggerInstall       // internal
	TagTransFileTriggerUninstall     // internal
	TagTransFileTriggerPostUninstall // internal
	TagTransFileTriggerScripts
	TagTransFileTriggerScriptProg
	TagTransFileTriggerScriptFlags
	TagTransFileTriggerName
	TagTransFileTriggerIndex
	TagTransFileTriggerVersion
	TagTransFileTriggerFlags
	TagRemovePathPostFixes // internal
	TagFileTriggerPriorities
	TagTransFileTriggerPriorities
	TagFileTriggerConds      // extension
	TagFileTriggerType       // extension
	TagTransFileTriggerConds // extension
	TagTransFileTriggerType  // extension
	TagFileSignatures
	TagFileSignatureLength
	TagPayloadDigest
	TagPayloadDigestAlgo
	TagAutoInstalled //  reservation (unimplemented)
	TagIdentity      //  reservation (unimplemented)
	TagModularityLabel
	TagPayloadDigestAlt
	TagArchSuffix
)

General Tags, second block.

func (Tag) String

func (i Tag) String() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL