Modify eu-strip option to perform strip in post script of rpm package & add option...
[platform/upstream/rpm.git] / lib / rpmtag.h
index 0011f65..025a0a4 100644 (file)
@@ -8,12 +8,6 @@ extern "C" {
 #endif
 
 /**
- * Pseudo-tags used by the rpmdb and rpmgi iterator API's.
- */
-#define        RPMDBI_PACKAGES         0       /* Installed package headers. */
-#define        RPMDBI_LABEL            2       /* Fingerprint search marker. */
-
-/**
  * Header private tags.
  * @note General use tags should start at 1000 (RPM's tag space starts there).
  */
@@ -32,6 +26,7 @@ extern "C" {
  */
 /** @todo: Somehow supply type **/
 typedef enum rpmTag_e {
+    RPMTAG_NOT_FOUND           = -1,                   /*!< Unknown tag */
 
     RPMTAG_HEADERIMAGE         = HEADER_IMAGE,         /*!< Current image. */
     RPMTAG_HEADERSIGNATURES    = HEADER_SIGNATURES,    /*!< Signatures. */
@@ -149,15 +144,15 @@ typedef enum rpmTag_e {
     RPMTAG_CHANGELOGTEXT       = 1082, /* s[] */
     RPMTAG_BROKENMD5           = 1083, /* internal - obsolete */
     RPMTAG_PREREQ              = 1084, /* internal */
-    RPMTAG_PREINPROG           = 1085, /* s */
-    RPMTAG_POSTINPROG          = 1086, /* s */
-    RPMTAG_PREUNPROG           = 1087, /* s */
-    RPMTAG_POSTUNPROG          = 1088, /* s */
+    RPMTAG_PREINPROG           = 1085, /* s[] */
+    RPMTAG_POSTINPROG          = 1086, /* s[] */
+    RPMTAG_PREUNPROG           = 1087, /* s[] */
+    RPMTAG_POSTUNPROG          = 1088, /* s[] */
     RPMTAG_BUILDARCHS          = 1089, /* s[] */
     RPMTAG_OBSOLETENAME                = 1090, /* s[] */
 #define        RPMTAG_OBSOLETES RPMTAG_OBSOLETENAME    /* s[] */
 #define        RPMTAG_O        RPMTAG_OBSOLETENAME     /* s[] */
-    RPMTAG_VERIFYSCRIPTPROG    = 1091, /* s */
+    RPMTAG_VERIFYSCRIPTPROG    = 1091, /* s[] */
     RPMTAG_TRIGGERSCRIPTPROG   = 1092, /* s[] */
     RPMTAG_DOCDIR              = 1093, /* internal */
     RPMTAG_COOKIE              = 1094, /* s */
@@ -219,17 +214,17 @@ typedef enum rpmTag_e {
     RPMTAG_POLICIES            = 1150, /* s[] selinux *.te policy file. */
     RPMTAG_PRETRANS            = 1151, /* s */
     RPMTAG_POSTTRANS           = 1152, /* s */
-    RPMTAG_PRETRANSPROG                = 1153, /* s */
-    RPMTAG_POSTTRANSPROG       = 1154, /* s */
+    RPMTAG_PRETRANSPROG                = 1153, /* s[] */
+    RPMTAG_POSTTRANSPROG       = 1154, /* s[] */
     RPMTAG_DISTTAG             = 1155, /* s */
-    RPMTAG_SUGGESTSNAME                = 1156, /* s[] extension (unimplemented) */
-#define        RPMTAG_SUGGESTS RPMTAG_SUGGESTSNAME     /* s[] (unimplemented) */
-    RPMTAG_SUGGESTSVERSION     = 1157, /* s[] extension (unimplemented) */
-    RPMTAG_SUGGESTSFLAGS       = 1158, /* i[] extension (unimplemented) */
-    RPMTAG_ENHANCESNAME                = 1159, /* s[] extension placeholder (unimplemented) */
-#define        RPMTAG_ENHANCES RPMTAG_ENHANCESNAME     /* s[] (unimplemented) */
-    RPMTAG_ENHANCESVERSION     = 1160, /* s[] extension placeholder (unimplemented) */
-    RPMTAG_ENHANCESFLAGS       = 1161, /* i[] extension placeholder (unimplemented) */
+    RPMTAG_SUGGESTSNAME                = 1156, /* s[] extension */
+#define        RPMTAG_SUGGESTS RPMTAG_SUGGESTSNAME     /* s[] */
+    RPMTAG_SUGGESTSVERSION     = 1157, /* s[] extension */
+    RPMTAG_SUGGESTSFLAGS       = 1158, /* i[] extension */
+    RPMTAG_ENHANCESNAME                = 1159, /* s[] extension */
+#define        RPMTAG_ENHANCES RPMTAG_ENHANCESNAME     /* s[] */
+    RPMTAG_ENHANCESVERSION     = 1160, /* s[] extension */
+    RPMTAG_ENHANCESFLAGS       = 1161, /* i[] extension */
     RPMTAG_PRIORITY            = 1162, /* i[] extension placeholder (unimplemented) */
     RPMTAG_CVSID               = 1163, /* s (unimplemented) */
 #define        RPMTAG_SVNID    RPMTAG_CVSID    /* s (unimplemented) */
@@ -295,18 +290,49 @@ typedef enum rpmTag_e {
     RPMTAG_POSTTRANSFLAGS      = 5025, /* i */
     RPMTAG_VERIFYSCRIPTFLAGS   = 5026, /* i */
     RPMTAG_TRIGGERSCRIPTFLAGS  = 5027, /* i[] */
-    RPMTAG_FILESTATUS          = 5028, /* i[] extension */
     RPMTAG_COLLECTIONS         = 5029, /* s[] list of collections */
     RPMTAG_POLICYNAMES         = 5030, /* s[] */
     RPMTAG_POLICYTYPES         = 5031, /* s[] */
     RPMTAG_POLICYTYPESINDEXES  = 5032, /* i[] */
     RPMTAG_POLICYFLAGS         = 5033, /* i[] */
+    RPMTAG_VCS                 = 5034, /* s */
+    RPMTAG_ORDERNAME           = 5035, /* s[] */
+    RPMTAG_ORDERVERSION                = 5036, /* s[] */
+    RPMTAG_ORDERFLAGS          = 5037, /* i[] */
+    RPMTAG_SECMANIFEST         = 5038, /* s[] security manifest file */
+    RPMTAG_SECSWSOURCE         = 5039, /* s[] security software source */
+    RPMTAG_INSTFILENAMES       = 5040, /* s[] extension */
+    RPMTAG_REQUIRENEVRS                = 5041, /* s[] extension */
+    RPMTAG_PROVIDENEVRS                = 5042, /* s[] extension */
+    RPMTAG_OBSOLETENEVRS       = 5043, /* s[] extension */
+    RPMTAG_CONFLICTNEVRS       = 5044, /* s[] extension */
+    RPMTAG_FILENLINKS          = 5045, /* i[] extension */
 
     RPMTAG_FIRSTFREE_TAG       /*!< internal */
 } rpmTag;
 
 #define        RPMTAG_EXTERNAL_TAG             1000000
-#define RPMTAG_NOT_FOUND               -1
+
+/** \ingroup rpmtag
+ * Rpm database index tags.
+ */
+typedef enum rpmDbiTag_e {
+    RPMDBI_PACKAGES            = 0,    /* Installed package headers. */
+    RPMDBI_LABEL               = 2,    /* NEVRA label pseudo index */
+    RPMDBI_NAME                        = RPMTAG_NAME,
+    RPMDBI_BASENAMES           = RPMTAG_BASENAMES,
+    RPMDBI_GROUP               = RPMTAG_GROUP,
+    RPMDBI_REQUIRENAME         = RPMTAG_REQUIRENAME,
+    RPMDBI_PROVIDENAME         = RPMTAG_PROVIDENAME,
+    RPMDBI_CONFLICTNAME                = RPMTAG_CONFLICTNAME,
+    RPMDBI_OBSOLETENAME                = RPMTAG_OBSOLETENAME,
+    RPMDBI_TRIGGERNAME         = RPMTAG_TRIGGERNAME,
+    RPMDBI_DIRNAMES            = RPMTAG_DIRNAMES,
+    RPMDBI_INSTALLTID          = RPMTAG_INSTALLTID,
+    RPMDBI_SIGMD5              = RPMTAG_SIGMD5,
+    RPMDBI_SHA1HEADER          = RPMTAG_SHA1HEADER,
+    RPMDBI_INSTFILENAMES       = RPMTAG_INSTFILENAMES,
+} rpmDbiTag;
 
 /** \ingroup signature
  * Tags found in signature header from package.
@@ -396,28 +422,42 @@ typedef rpmFlags rpmTagReturnType;
  * @param tag          tag value
  * @return             tag name, "(unknown)" on not found
  */
-const char * rpmTagGetName(rpmTag tag);
+const char * rpmTagGetName(rpmTagVal tag);
+
+/** \ingroup rpmtag
+ * Return tag data type from value.
+ * @param tag          tag value
+ * @return             tag data type + return type, RPM_NULL_TYPE on not found.
+ */
+rpmTagType rpmTagGetType(rpmTagVal tag);
 
 /** \ingroup rpmtag
  * Return tag data type from value.
  * @param tag          tag value
  * @return             tag data type, RPM_NULL_TYPE on not found.
  */
-rpmTagType rpmTagGetType(rpmTag tag);
+rpmTagType rpmTagGetTagType(rpmTagVal tag);
+
+/** \ingroup rpmtag
+ * Return tag data type from value.
+ * @param tag          tag value
+ * @return             tag data return type, RPM_NULL_TYPE on not found.
+ */
+rpmTagReturnType rpmTagGetReturnType(rpmTagVal tag);
 
 /** \ingroup rpmtag
  * Return tag data class from value.
  * @param tag          tag value
  * @return             tag data class, RPM_NULL_CLASS on not found.
  */
-rpmTagClass rpmTagGetClass(rpmTag tag);
+rpmTagClass rpmTagGetClass(rpmTagVal tag);
 
 /** \ingroup rpmtag
  * Return tag value from name.
  * @param tagstr       name of tag
  * @return             tag value, -1 on not found
  */
-rpmTag rpmTagGetValue(const char * tagstr);
+rpmTagVal rpmTagGetValue(const char * tagstr);
 
 /** \ingroup rpmtag
  * Return data class of type