rpmdb

package
v0.0.0-...-d916ed9 Latest Latest
Warning

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

Go to latest
Published: Dec 6, 2022 License: MIT Imports: 15 Imported by: 0

Documentation

Index

Constants

View Source
const (
	PGPHASHALGO_MD5       = iota + 1 /*!< MD5 */
	PGPHASHALGO_SHA1                 /*!< SHA1 */
	PGPHASHALGO_RIPEMD160            /*!< RIPEMD160 */

	PGPHASHALGO_MD2         /*!< MD2 */
	PGPHASHALGO_TIGER192    /*!< TIGER192 */
	PGPHASHALGO_HAVAL_5_160 /*!< HAVAL-5-160 */
	PGPHASHALGO_SHA256      /*!< SHA256 */
	PGPHASHALGO_SHA384      /*!< SHA384 */
	PGPHASHALGO_SHA512      /*!< SHA512 */
	PGPHASHALGO_SHA224      /*!< SHA224 */
)
View Source
const (
	RPMFILE_CONFIG    int32 = 1 << iota /*!< from %%config */
	RPMFILE_DOC                         /*!< from %%doc */
	RPMFILE_ICON                        /*!< from %%donotuse. */
	RPMFILE_MISSINGOK                   /*!< from %%config(missingok) */
	RPMFILE_NOREPLACE                   /*!< from %%config(noreplace) */
	RPMFILE_SPECFILE                    /*!< @todo (unnecessary) marks 1st file in srpm. */
	RPMFILE_GHOST                       /*!< from %%ghost */
	RPMFILE_LICENSE                     /*!< from %%license */
	RPMFILE_README                      /*!< from %%readme */

	RPMFILE_PUBKEY   /*!< from %%pubkey */
	RPMFILE_ARTIFACT /*!< from %%artifact */
)

source: https://github.com/rpm-software-management/rpm/blob/da55723907418bfb3939cd6ddd941b3fdb4f6887/lib/rpmfiles.h#L46-L63

View Source
const (
	// ref. https://github.com/rpm-software-management/rpm/blob/rpm-4.14.3-release/lib/rpmtag.h#L34
	RPMTAG_HEADERIMAGE      = 61
	RPMTAG_HEADERSIGNATURES = 62
	RPMTAG_HEADERIMMUTABLE  = 63
	HEADER_I18NTABLE        = 100
	RPMTAG_HEADERI18NTABLE  = HEADER_I18NTABLE

	// rpmTag_e
	// ref. https://github.com/rpm-software-management/rpm/blob/rpm-4.14.3-release/lib/rpmtag.h#L34
	RPMTAG_PGP = 259 /* b */

	RPMTAG_NAME           = 1000 /* s */
	RPMTAG_VERSION        = 1001 /* s */
	RPMTAG_RELEASE        = 1002 /* s */
	RPMTAG_EPOCH          = 1003 /* i */
	RPMTAG_SUMMARY        = 1004 /* s */
	RPMTAG_DESCRIPTION    = 1005 /* s{} */
	RPMTAG_BUILDTIME      = 1006 /* i */
	RPMTAG_INSTALLTIME    = 1008 /* i */
	RPMTAG_SIZE           = 1009 /* i */
	RPMTAG_DISTRIBUTION   = 1010 /* s */
	RPMTAG_VENDOR         = 1011 /* s */
	RPMTAG_LICENSE        = 1014 /* s */
	RPMTAG_GROUP          = 1016 /* s{} */
	RPMTAG_URL            = 1020 /* s */
	RPMTAG_ARCH           = 1022 /* s */
	RPMTAG_FILESIZES      = 1028 /* i[] */
	RPMTAG_FILEMODES      = 1030 /* h[] , specifically []uint16 (ref https://github.com/rpm-software-management/rpm/blob/2153fa4ae51a84547129b8ebb3bb396e1737020e/lib/rpmtypes.h#L53 )*/
	RPMTAG_FILEDIGESTS    = 1035 /* s[] */
	RPMTAG_FILEFLAGS      = 1037 /* i[] */
	RPMTAG_FILEUSERNAME   = 1039 /* s[] */
	RPMTAG_FILEGROUPNAME  = 1040 /* s[] */
	RPMTAG_SOURCERPM      = 1044 /* s */
	RPMTAG_DIRINDEXES     = 1116 /* i[] */
	RPMTAG_BASENAMES      = 1117 /* s[] */
	RPMTAG_DIRNAMES       = 1118 /* s[] */
	RPMTAG_FILEDIGESTALGO = 5011 /* i  */

	// rpmTag_enhances
	// https://github.com/rpm-software-management/rpm/blob/rpm-4.16.0-release/lib/rpmtag.h#L375
	RPMTAG_MODULARITYLABEL = 5096

	// rpmTagType_e
	// ref. https://github.com/rpm-software-management/rpm/blob/rpm-4.14.3-release/lib/rpmtag.h#L431
	RPM_MIN_TYPE          = 0
	RPM_NULL_TYPE         = 0
	RPM_CHAR_TYPE         = 1
	RPM_INT8_TYPE         = 2
	RPM_INT16_TYPE        = 3
	RPM_INT32_TYPE        = 4
	RPM_INT64_TYPE        = 5
	RPM_STRING_TYPE       = 6
	RPM_BIN_TYPE          = 7
	RPM_STRING_ARRAY_TYPE = 8
	RPM_I18NSTRING_TYPE   = 9
	RPM_MAX_TYPE          = 9
)

Variables

This section is empty.

Functions

func AssumeValid

func AssumeValid[T any](first T, err error) T

func Htonl

func Htonl(val int32) int32

func HtonlU

func HtonlU(val uint32) uint32

func TagID

func TagID(tagname string) (int32, error)

func TagName

func TagName(tag int32) string

func TypeName

func TypeName(typeid int32) string

Types

type DigestAlgorithm

type DigestAlgorithm int32

func (DigestAlgorithm) String

func (d DigestAlgorithm) String() string

type FileInfo

type FileInfo struct {
	Path      string
	Mode      uint16
	Digest    string
	Size      int32
	Username  string
	Groupname string
	Flags     FileFlags
}

type PGPInfo

type PGPInfo struct {
	PubKeyAlgorithm string
	HashAlgorithm   string
	Date            string
	KeyID           [8]byte
}

func (*PGPInfo) String

func (info *PGPInfo) String() string

type PackageInfo

type PackageInfo struct {
	Epoch           *int
	Name            string
	Version         string
	Release         string
	Arch            string
	SourceRpm       string
	Group           string
	Size            int
	InstallTime     time.Time
	BuildTime       time.Time
	License         string
	Vendor          string
	Distribution    string
	Modularitylabel string
	Description     string
	Url             string
	Summary         string
	PGP             string
	PGPInfo         *PGPInfo
	DigestAlgorithm DigestAlgorithm
	BaseNames       []string
	DirIndexes      []int32
	DirNames        []string
	FileSizes       []int32
	FileDigests     []string
	FileModes       []uint16
	FileFlags       []int32
	UserNames       []string
	GroupNames      []string
}

func (*PackageInfo) EpochNum

func (p *PackageInfo) EpochNum() int

func (*PackageInfo) InstalledFileNames

func (p *PackageInfo) InstalledFileNames() ([]string, error)

func (*PackageInfo) InstalledFiles

func (p *PackageInfo) InstalledFiles() ([]FileInfo, error)

type PackageInfoMap

type PackageInfoMap struct {
	Tags map[int32]Tag
}

func (*PackageInfoMap) Arch

func (pkg *PackageInfoMap) Arch() string

func (*PackageInfoMap) BaseNames

func (pkg *PackageInfoMap) BaseNames() []string

func (*PackageInfoMap) BuildTime

func (pkg *PackageInfoMap) BuildTime() time.Time

func (*PackageInfoMap) Description

func (pkg *PackageInfoMap) Description() string

func (*PackageInfoMap) DirIndexes

func (pkg *PackageInfoMap) DirIndexes() []int

func (*PackageInfoMap) DirNames

func (pkg *PackageInfoMap) DirNames() []string

func (*PackageInfoMap) Distribution

func (pkg *PackageInfoMap) Distribution() string

func (*PackageInfoMap) Epoch

func (pkg *PackageInfoMap) Epoch() int

func (*PackageInfoMap) FileDigests

func (pkg *PackageInfoMap) FileDigests() []string

func (*PackageInfoMap) FileFlags

func (pkg *PackageInfoMap) FileFlags() []int

func (*PackageInfoMap) FileGroupName

func (pkg *PackageInfoMap) FileGroupName() []string

func (*PackageInfoMap) FileModes

func (pkg *PackageInfoMap) FileModes() []int

func (*PackageInfoMap) FileSizes

func (pkg *PackageInfoMap) FileSizes() []int

func (*PackageInfoMap) FileUserName

func (pkg *PackageInfoMap) FileUserName() []string

func (*PackageInfoMap) GetIntArrayTag

func (pkg *PackageInfoMap) GetIntArrayTag(tagid int32) ([]int, error)

func (*PackageInfoMap) GetIntTag

func (pkg *PackageInfoMap) GetIntTag(tagid int32) (int, error)

func (*PackageInfoMap) GetStringArrayTag

func (pkg *PackageInfoMap) GetStringArrayTag(tagid int32) ([]string, error)

func (*PackageInfoMap) GetStringTag

func (pkg *PackageInfoMap) GetStringTag(tagid int32) (string, error)

func (*PackageInfoMap) GetTimeTag

func (pkg *PackageInfoMap) GetTimeTag(tagid int32) (time.Time, error)

func (*PackageInfoMap) Group

func (pkg *PackageInfoMap) Group() string

func (*PackageInfoMap) InstallTime

func (pkg *PackageInfoMap) InstallTime() time.Time

func (*PackageInfoMap) License

func (pkg *PackageInfoMap) License() string

func (*PackageInfoMap) ModularityLabel

func (pkg *PackageInfoMap) ModularityLabel() string

func (*PackageInfoMap) Name

func (pkg *PackageInfoMap) Name() string

func (*PackageInfoMap) PGP

func (pkg *PackageInfoMap) PGP() (*PGPInfo, error)

func (*PackageInfoMap) Release

func (pkg *PackageInfoMap) Release() string

func (*PackageInfoMap) Size

func (pkg *PackageInfoMap) Size() int

func (*PackageInfoMap) SourceRPM

func (pkg *PackageInfoMap) SourceRPM() string

func (*PackageInfoMap) Summary

func (pkg *PackageInfoMap) Summary() string

func (*PackageInfoMap) URL

func (pkg *PackageInfoMap) URL() string

func (*PackageInfoMap) Vendor

func (pkg *PackageInfoMap) Vendor() string

func (*PackageInfoMap) Version

func (pkg *PackageInfoMap) Version() string

type RpmDB

type RpmDB struct {
	// contains filtered or unexported fields
}

func Open

func Open(path string) (*RpmDB, error)

func (*RpmDB) ListPackages

func (d *RpmDB) ListPackages() ([]*PackageInfo, error)

func (*RpmDB) ListPackagesAsPackageInfoMap

func (d *RpmDB) ListPackagesAsPackageInfoMap(tags []string) ([]*PackageInfoMap, error)

func (*RpmDB) Package

func (d *RpmDB) Package(name string) (*PackageInfo, error)

type Tag

type Tag struct {
	Type  uint32
	Id    int32
	Value interface{}
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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