Module: RPM

Defined in:
lib/rpm.rb,
lib/rpm/version.rb,
ext/rpm/rpm.c

Defined Under Namespace

Classes: Changelog, Conflict, DB, Dependency, File, Icon, MatchIterator, Obsolete, Package, Patch, Provide, Require, Source, Transaction, Version

Constant Summary collapse

PKG_NAME =
'ruby-rpm'
VERSION =
'1.3.1'
CallbackData =
rpm_sCallbackData
Problem =
rpm_sProblem
PROB_FILER_FORCE =
INT2NUM(RPMPROB_FILTER_REPLACEPKG
| RPMPROB_FILTER_REPLACENEWFILES
| RPMPROB_FILTER_REPLACEOLDFILES)
PROB_FILER_REPLACEFILES =
INT2NUM(RPMPROB_FILTER_REPLACENEWFILES
| RPMPROB_FILTER_REPLACEOLDFILES)
PROB_FILER_IGNORESIZE =
INT2NUM(RPMPROB_FILTER_DISKSPACE
| RPMPROB_FILTER_DISKNODES)
BUILD__UNTIL_PREP =
INT2NUM(RPMBUILD_PREP)
BUILD__UNTIL_BUILD =
INT2NUM(RPMBUILD_PREP
| RPMBUILD_BUILD)
BUILD__UNTIL_INSTALL =
INT2NUM(RPMBUILD_PREP
| RPMBUILD_BUILD
| RPMBUILD_INSTALL)
BUILD__BINARY_PACKAGE =
INT2NUM(RPMBUILD_PREP
| RPMBUILD_BUILD
| RPMBUILD_INSTALL
| RPMBUILD_PACKAGEBINARY
| RPMBUILD_CLEAN)
BUILD__SOURCE_PACKAGE =
INT2NUM(RPMBUILD_PREP
| RPMBUILD_BUILD
| RPMBUILD_INSTALL
| RPMBUILD_PACKAGESOURCE
| RPMBUILD_CLEAN)
BUILD__ALL_PACKAGE =
INT2NUM(RPMBUILD_PREP
| RPMBUILD_BUILD
| RPMBUILD_INSTALL
| RPMBUILD_PACKAGEBINARY
| RPMBUILD_PACKAGESOURCE
| RPMBUILD_CLEAN)
BUILD__CHECK_FILELIST =
INT2NUM(RPMBUILD_PREP
| RPMBUILD_BUILD
| RPMBUILD_INSTALL
| RPMBUILD_FILECHECK)
ChangeLog =
rpm_sChangeLog

Class Method Summary collapse

Class Method Details

.[](name) ⇒ String

Returns value of macro name.

Parameters:

  • name (String)

    Name of the macro

Returns:

  • (String)

    value of macro name



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'ext/rpm/rpm.c', line 23

static VALUE
m_aref(VALUE m, VALUE name)
{
  char  buf[BUFSIZ];
  char* tmp;
  VALUE val;

  if (TYPE(name) != T_STRING) {
    rb_raise(rb_eTypeError, "illegal argument type");
  }

  sprintf(buf, "%%{%s}", RSTRING_PTR(name));
  tmp = strdup(buf);
  expandMacros(NULL, NULL, buf, BUFSIZ);
  if (strcmp(tmp, buf) == 0) {
    val = Qnil;
  } else {
    val = rb_str_new2(buf);
  }
  free(tmp);

  return val;
}

.[]=(name, val) ⇒ Object

Setup a macro

Parameters:

  • name (String)

    Name of the macro

  • value (String)

    Value of the macro or nil to delete it



58
59
60
61
62
63
64
65
66
67
68
69
70
71
# File 'ext/rpm/rpm.c', line 58

static VALUE
m_aset(VALUE m, VALUE name, VALUE val)
{
  if (TYPE(name) != T_STRING
    || (val != Qnil && TYPE(val) != T_STRING)) {
    rb_raise(rb_eTypeError, "illegal argument type(s)");
  }
  if (val == Qnil) {
    delMacro(NULL, RSTRING_PTR(name));
  } else {
    addMacro(NULL, RSTRING_PTR(name), NULL, RSTRING_PTR(val), RMIL_DEFAULT);
  }
  return Qnil;
}

.expand(name) ⇒ Object



13
14
15
16
17
# File 'ext/rpm/rpm.c', line 13

static VALUE
m_expand(VALUE m, VALUE name)
{
  return rb_str_new2(rpmExpand(StringValueCStr(name), NULL));
}

.init_macros(*args) ⇒ Object



116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
# File 'ext/rpm/rpm.c', line 116

static VALUE
m_init_macros(int argc, VALUE* argv, VALUE m)
{
  register int i;
  char buf[BUFSIZ];

  if (argc == 0) {
    rb_raise(rb_eArgError, "too few argument(>= 1)");
  }

  buf[0] = '\0';
  for (i = 0; i < argc; i++) {
    if (TYPE(argv[i]) != T_STRING) {
      rb_raise(rb_eTypeError, "illegal argument type(s)");
    }
    strcat(buf, RSTRING_PTR(argv[i]));
    strcat(buf, ":");
  }
  rpmInitMacros(NULL, buf);

  return Qnil;
}

.readrc(*args) ⇒ Object

Read configuration files



82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
# File 'ext/rpm/rpm.c', line 82

static VALUE
m_readrc(int argc, VALUE* argv, VALUE m)
{
  register int i;
  char buf[BUFSIZ];

  if (argc == 0) {
    rb_raise(rb_eArgError, "too few argument(>= 1)");
  }

  buf[0] = '\0';
  for (i = 0; i < argc; i++) {
    if (TYPE(argv[i]) != T_STRING) {
      rb_raise(rb_eTypeError, "illegal argument type(s)");
    }
    strcat(buf, RSTRING_PTR(argv[i]));
    strcat(buf, ":");
  }
  rpmFreeMacros(NULL);
  if (rpmReadConfigFiles(buf, NULL)) {
    rb_raise(rb_eRuntimeError, "can not read rc file %s", buf);
  }

  return Qnil;
}

.verbosityNumber

Returns Verbosity level.

Returns:

  • (Number)

    Verbosity level



152
153
154
155
156
# File 'ext/rpm/rpm.c', line 152

static VALUE
m_get_verbosity(VALUE m)
{
  return INT2NUM(rpm_verbosity);
}

.verbosity=(verbosity) ⇒ Object

Sets the verbosity level

Parameters:

  • verbosity (Number)

    Verbosity level



168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
# File 'ext/rpm/rpm.c', line 168

static VALUE
m_set_verbosity(VALUE m, VALUE verbosity)
{
  int v = NUM2INT(rb_Integer(verbosity));
  switch (v) {
  case RPMLOG_EMERG: case RPMLOG_ALERT:
  case RPMLOG_CRIT: case RPMLOG_ERR:
  case RPMLOG_WARNING: case RPMLOG_NOTICE:
  case RPMLOG_INFO: case RPMLOG_DEBUG:
    break;

  default:
    rb_raise(rb_eArgError, "invalid verbosity");
  }
  rpmSetVerbosity(v);
  rpm_verbosity = v;
  return Qnil;
}

.vercmp(ver1, ver2) ⇒ Object



36
37
38
39
40
41
# File 'lib/rpm.rb', line 36

def vercmp(ver1, ver2)
  unless String === ver1 and String === ver2 then
    raise TypeError, 'illegal argument type'
  end
  RPM::Version.new(ver1) <=> RPM::Version.new(ver2)
end