Class: RPM::File::Tag

Inherits:
Object
  • Object
show all
Includes:
Cabin::Inspectable
Defined in:
lib/rpm/file/tag.rb

Constant Summary

TAG =

This data can be found mostly in rpmtag.h

{
  61 => :headerimage,
  62 => :headersignatures,
  63 => :headerimmutable,
  64 => :headerregions,
  100 => :headeri18ntable,
  256 => :sig_base,

  257 => :sigsize,
  258 => :siglemd5_1,
  259 => :sigpgp,
  260 => :siglemd5_2,
  261 => :sigmd5,
  262 => :siggpg,
  263 => :sigpgp5,
  264 => :badsha1_1,
  265 => :badsha1_2,
  266 => :pubkeys,
  267 => :dsaheader,
  268 => :rsaheader,
  269 => :sha1header,
  270 => :longsigsize,
  271 => :longarchivesize,

  1000 => :name,
  1001 => :version,
  1002 => :release,
  1003 => :epoch,
  1004 => :summary,
  1005 => :description,
  1006 => :buildtime,
  1007 => :buildhost,
  1008 => :installtime,
  1009 => :size,
  1010 => :distribution,
  1011 => :vendor,
  1012 => :gif,
  1013 => :xpm,
  1014 => :license,
  1015 => :packager,
  1016 => :group,
  1017 => :changelog,
  1018 => :source,
  1019 => :patch,
  1020 => :url,
  1021 => :os,
  1022 => :arch,
  1023 => :prein,
  1024 => :postin,
  1025 => :preun,
  1026 => :postun,
  1027 => :oldfilenames,
  1028 => :filesizes,
  1029 => :filestates,
  1030 => :filemodes,
  1031 => :fileuids,
  1032 => :filegids,
  1033 => :filerdevs,
  1034 => :filemtimes,
  1035 => :filedigests,
  1036 => :filelinktos,
  1037 => :fileflags,
  1038 => :root,
  1039 => :fileusername,
  1040 => :filegroupname,
  1041 => :exclude,
  1042 => :exclusive,
  1043 => :icon,
  1044 => :sourcerpm,
  1045 => :fileverifyflags,
  1046 => :archivesize,
  1047 => :providename,
  1048 => :requireflags,
  1049 => :requirename,
  1050 => :requireversion,
  1051 => :nosource,
  1052 => :nopatch,
  1053 => :conflictflags,
  1054 => :conflictname,
  1055 => :conflictversion,
  1056 => :defaultprefix,
  1057 => :buildroot,
  1058 => :installprefix,
  1059 => :excludearch,
  1060 => :excludeos,
  1061 => :exclusivearch,
  1062 => :exclusiveos,
  1063 => :autoreqprov,
  1064 => :rpmversion,
  1065 => :triggerscripts,
  1066 => :triggername,
  1067 => :triggerversion,
  1068 => :triggerflags,
  1069 => :triggerindex,
  1079 => :verifyscript,
  1080 => :changelogtime,
  1081 => :changelogname,
  1082 => :changelogtext,
  1083 => :brokenmd5,
  1084 => :prereq,
  1085 => :preinprog,
  1086 => :postinprog,
  1087 => :preunprog,
  1088 => :postunprog,
  1089 => :buildarchs,
  1090 => :obsoletename,
  1091 => :verifyscriptprog,
  1092 => :triggerscriptprog,
  1093 => :docdir,
  1094 => :cookie,
  1095 => :filedevices,
  1096 => :fileinodes,
  1097 => :filelangs,
  1098 => :prefixes,
  1099 => :instprefixes,
  1100 => :triggerin,
  1101 => :triggerun,
  1102 => :triggerpostun,
  1103 => :autoreq,
  1104 => :autoprov,
  1105 => :capability,
  1106 => :sourcepackage,
  1107 => :oldorigfilenames,
  1108 => :buildprereq,
  1109 => :buildrequires,
  1110 => :buildconflicts,
  1111 => :buildmacros,
  1112 => :provideflags,
  1113 => :provideversion,
  1114 => :obsoleteflags,
  1115 => :obsoleteversion,
  1116 => :dirindexes,
  1117 => :basenames,
  1118 => :dirnames,
  1119 => :origdirindexes,
  1120 => :origbasenames,
  1121 => :origdirnames,
  1122 => :optflags,
  1123 => :disturl,
  1124 => :payloadformat,
  1125 => :payloadcompressor,
  1126 => :payloadflags,
  1127 => :installcolor,
  1128 => :installtid,
  1129 => :removetid,
  1130 => :sha1rhn,
  1131 => :rhnplatform,
  1132 => :platform,
  1133 => :patchesname,
  1134 => :patchesflags,
  1135 => :patchesversion,
  1136 => :cachectime,
  1137 => :cachepkgpath,
  1138 => :cachepkgsize,
  1139 => :cachepkgmtime,
  1140 => :filecolors,
  1141 => :fileclass,
  1142 => :classdict,
  1143 => :filedependsx,
  1144 => :filedependsn,
  1145 => :dependsdict,
  1146 => :sourcepkgid,
  1147 => :filecontexts,
  1148 => :fscontexts,
  1149 => :recontexts,
  1150 => :policies,
  1151 => :pretrans,
  1152 => :posttrans,
  1153 => :pretransprog,
  1154 => :posttransprog,
  1155 => :disttag,
  1156 => :suggestsname,
  1157 => :suggestsversion,
  1158 => :suggestsflags,
  1159 => :enhancesname,
  1160 => :enhancesversion,
  1161 => :enhancesflags,
  1162 => :priority,
  1163 => :cvsid,
  1164 => :blinkpkgid,
  1165 => :blinkhdrid,
  1166 => :blinknevra,
  1167 => :flinkpkgid,
  1168 => :flinkhdrid,
  1169 => :flinknevra,
  1170 => :packageorigin,
  1171 => :triggerprein,
  1172 => :buildsuggests,
  1173 => :buildenhances,
  1174 => :scriptstates,
  1175 => :scriptmetrics,
  1176 => :buildcpuclock,
  1177 => :filedigestalgos,
  1178 => :variants,
  1179 => :xmajor,
  1180 => :xminor,
  1181 => :repotag,
  1182 => :keywords,
  1183 => :buildplatforms,
  1184 => :packagecolor,
  1185 => :packageprefcolor,
  1186 => :xattrsdict,
  1187 => :filexattrsx,
  1188 => :depattrsdict,
  1189 => :conflictattrsx,
  1190 => :obsoleteattrsx,
  1191 => :provideattrsx,
  1192 => :requireattrsx,
  1193 => :buildprovides,
  1194 => :buildobsoletes,
  1195 => :dbinstance,
  1196 => :nvra,
  5000 => :filenames,
  5001 => :fileprovide,
  5002 => :filerequire,
  5003 => :fsnames,
  5004 => :fssizes,
  5005 => :triggerconds,
  5006 => :triggertype,
  5007 => :origfilenames,
  5008 => :longfilesizes,
  5009 => :longsize,
  5010 => :filecaps,
  5011 => :filedigestalgo,
  5012 => :bugurl,
  5013 => :evr,
  5014 => :nvr,
  5015 => :nevr,
  5016 => :nevra,
  5017 => :headercolor,
  5018 => :verbose,
  5019 => :epochnum,
}
TYPE =

See 'rpmTagType' enum in rpmtag.h

{
  0 => :null,
  1 => :char,
  2 => :int8,
  3 => :int16,
  4 => :int32,
  5 => :int64,
  6 => :string,
  7 => :binary,
  8 => :string_array,
  9 => :i18nstring,
}

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(tag_id, type, offset, count, data) ⇒ Tag



262
263
264
265
266
267
268
269
270
271
# File 'lib/rpm/file/tag.rb', line 262

def initialize(tag_id, type, offset, count, data)
  @tag = tag_id
  @type = type
  @offset = offset
  @count = count

  @data = data

  @inspectables = [:@tag, :@type, :@offset, :@count, :@value]
end

Instance Attribute Details

#countObject

Returns the value of attribute count



10
11
12
# File 'lib/rpm/file/tag.rb', line 10

def count
  @count
end

#offsetObject

Returns the value of attribute offset



9
10
11
# File 'lib/rpm/file/tag.rb', line 9

def offset
  @offset
end

#tagObject

def initialize



273
274
275
# File 'lib/rpm/file/tag.rb', line 273

def tag
  TAG.fetch(@tag, @tag)
end

#typeObject

Returns the value of attribute type



8
9
10
# File 'lib/rpm/file/tag.rb', line 8

def type
  TYPE.fetch(@type, @type)
end

#valueObject

def type



285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
# File 'lib/rpm/file/tag.rb', line 285

def value
  if !@value
    case type
      when :string
        # string at offset up to first null
        @value = @data[@offset .. -1][/^[^\0]+/]
      when :i18nstring
        # string at offset up to first null
        @value = @data[@offset .. -1][/^[^\0]+/]
      when :string_array
        @value = @data[@offset .. -1].split("\0")[0 ... @count]
      when :binary
        @value = @data[@offset, @count]
      when :int32
        @value = @data[@offset, 4 * count].unpack("N" * count)
      when :int16
        @value = @data[@offset, 2 * count].unpack("n" * count)
    end # case type
  end # if !@value

  return @value
end

Instance Method Details

#tag_as_intObject

def tag



277
278
279
# File 'lib/rpm/file/tag.rb', line 277

def tag_as_int
  @tag
end