rpms/rpm/F-13 rpm-4.8.0-no-man-dirs.patch, NONE, 1.1 rpm-4.8.0-prep-keep-empty.patch, NONE, 1.1 rpm-4.8.0-psdriver-deps.patch, NONE, 1.1 rpm-4.8.0-python-mibool.patch, NONE, 1.1 rpm-4.8.0-python-nocontexts.patch, NONE, 1.1 rpm.spec, 1.388, 1.389 rpm-4.8.0-psdriver-fixes.patch, 1.1, NONE rpm-4.8.0-psdriver-more-fixes.patch, 1.1, NONE rpm-4.8.0-psdriver.patch, 1.1, NONE
Panu Matilainen
pmatilai at fedoraproject.org
Fri Apr 23 11:19:46 UTC 2010
Author: pmatilai
Update of /cvs/pkgs/rpms/rpm/F-13
In directory cvs01.phx2.fedoraproject.org:/tmp/cvs-serv22510
Modified Files:
rpm.spec
Added Files:
rpm-4.8.0-no-man-dirs.patch rpm-4.8.0-prep-keep-empty.patch
rpm-4.8.0-psdriver-deps.patch rpm-4.8.0-python-mibool.patch
rpm-4.8.0-python-nocontexts.patch
Removed Files:
rpm-4.8.0-psdriver-fixes.patch
rpm-4.8.0-psdriver-more-fixes.patch rpm-4.8.0-psdriver.patch
Log Message:
Sync with rawhide to pull in various minor fixes:
- lose dangling symlink to extinct (and useless) berkeley_db_svc (#585174)
- fix python match iterator regression wrt boolean representation (rpmlint)
- support single PPD providing driver for devices (#568351), merge psdriver
patches
- preserve empty lines in spec prep section (#573339)
- teach python bindings about RPMTRANS_FLAG_NOCONTEXTS (related to #573111)
- dont own localized man directories through find_lang (#569536)
rpm-4.8.0-no-man-dirs.patch:
find-lang.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- NEW FILE rpm-4.8.0-no-man-dirs.patch ---
diff --git a/scripts/find-lang.sh b/scripts/find-lang.sh
index bb25b31..e4a22db 100755
--- a/scripts/find-lang.sh
+++ b/scripts/find-lang.sh
@@ -173,7 +173,7 @@ s:%lang(C) ::
find $TOP_DIR -type d|sed '
s:'"$TOP_DIR"'::
'"$ALL_NAME$MAN"'s:\(.*/man/\([^/_]\+\).*/man[a-z0-9]\+/\)::
-'"$ALL_NAME$MAN"'s:\(.*/man/\([^/_]\+\).*/man[a-z0-9]\+$\):%lang(\2) \1*:
+'"$ALL_NAME$MAN"'s:\(.*/man/\([^/_]\+\).*/man[a-z0-9]\+$\):%lang(\2) \1/*:
s:^\([^%].*\)::
s:%lang(C) ::
/^$/d' >> $MO_NAME
rpm-4.8.0-prep-keep-empty.patch:
build/parsePrep.c | 2 +-
rpmio/argv.c | 14 +++++++++++---
rpmio/argv.h | 14 ++++++++++++++
3 files changed, 26 insertions(+), 4 deletions(-)
--- NEW FILE rpm-4.8.0-prep-keep-empty.patch ---
commit 35052b96232810cbf0d91a4f1d1d3ff25a142fd0
Author: Panu Matilainen <pmatilai at redhat.com>
Date: Mon Mar 15 11:54:55 2010 +0200
Add an enhanced argvSplitString() function for splitting strings to argv's
- Returns the newly created argv instead of useless "this always returns 0"
- By default make a "real" split, including empty strings
- Flags argument allows controlling behavior, for now only flag is to
preserve argvSplit() behavior but leaves room for future enhancements
such as quoted splitting etc
commit 12802c36c9a3b7260d9f788afc826b1cc5ee05e2
Author: Panu Matilainen <pmatilai at redhat.com>
Date: Mon Mar 15 12:00:55 2010 +0200
Avoid eating empty lines in spec %prep section (RhBug:573339)
- In spec %prep context empty lines don't usually matter but they can
be significant in eg here-documents.
- Fixes regression from commit 94ff22b129aeb31c38848231e40f87aa4a5613a1
diff --git a/rpmio/argv.c b/rpmio/argv.c
index d633462..f21da1c 100644
--- a/rpmio/argv.c
+++ b/rpmio/argv.c
@@ -168,7 +168,7 @@ int argvAppend(ARGV_t * argvp, ARGV_const_t av)
return 0;
}
-int argvSplit(ARGV_t * argvp, const char * str, const char * seps)
+ARGV_t argvSplitString(const char * str, const char * seps, argvFlags flags)
{
char *dest = xmalloc(strlen(str) + 1);
ARGV_t argv;
@@ -189,14 +189,22 @@ int argvSplit(ARGV_t * argvp, const char * str, const char * seps)
argv = xmalloc( (argc + 1) * sizeof(*argv));
for (c = 0, s = dest; s < t; s+= strlen(s) + 1) {
- if (*s == '\0')
+ if (*s == '\0' && (flags & ARGV_SKIPEMPTY))
continue;
argv[c] = xstrdup(s);
c++;
}
argv[c] = NULL;
- *argvp = argv;
free(dest);
+ return argv;
+}
+
+/* Backwards compatibility */
+int argvSplit(ARGV_t * argvp, const char * str, const char * seps)
+{
+ if (argvp) {
+ *argvp = argvSplitString(str, seps, ARGV_SKIPEMPTY);
+ }
return 0;
}
diff --git a/rpmio/argv.h b/rpmio/argv.h
index 6a6fc7f..86ec137 100644
--- a/rpmio/argv.h
+++ b/rpmio/argv.h
@@ -138,6 +138,20 @@ int argvAddNum(ARGV_t * argvp, int val);
*/
int argvAppend(ARGV_t * argvp, ARGV_const_t av);
+typedef enum argvFlags_e {
+ ARGV_NONE = 0,
+ ARGV_SKIPEMPTY = (1 << 0), /* omit empty strings from result */
+} argvFlags;
+
+/** \ingroup rpmargv
+ * Split a string into an argv array.
+ * @param str string arg to split
+ * @param seps seperator characters
+ * @param flags flags to control behavior
+ * @return argv array
+ */
+ARGV_t argvSplitString(const char * str, const char * seps, argvFlags flags);
+
/** \ingroup rpmargv
* Split a string into an argv array.
* @retval *argvp argv array
diff --git a/build/parsePrep.c b/build/parsePrep.c
index 8e10c00..394c162 100644
--- a/build/parsePrep.c
+++ b/build/parsePrep.c
@@ -522,7 +522,7 @@ int parsePrep(rpmSpec spec)
}
}
- argvSplit(&saveLines, getStringBuf(sb), "\n");
+ saveLines = argvSplitString(getStringBuf(sb), "\n", ARGV_NONE);
for (lines = saveLines; *lines; lines++) {
res = 0;
if (rstreqn(*lines, "%setup", sizeof("%setup")-1)) {
rpm-4.8.0-psdriver-deps.patch:
build/rpmfc.c | 16 ++
build/rpmfc.h | 4
macros.in | 1
scripts/Makefile.am | 4
scripts/Makefile.in | 4
scripts/postscriptdriver.prov | 261 ++++++++++++++++++++++++++++++++++++++++++
6 files changed, 287 insertions(+), 3 deletions(-)
--- NEW FILE rpm-4.8.0-psdriver-deps.patch ---
diff -up rpm-4.8.0/build/rpmfc.c.psdriver rpm-4.8.0/build/rpmfc.c
--- rpm-4.8.0/build/rpmfc.c.psdriver 2010-03-16 10:54:04.000000000 +0200
+++ rpm-4.8.0/build/rpmfc.c 2010-03-16 10:54:04.000000000 +0200
@@ -489,6 +489,7 @@ static const struct rpmfcTokens_s const
{ " font metrics", RPMFC_WHITE|RPMFC_INCLUDE },
{ " font", RPMFC_FONT|RPMFC_INCLUDE },
{ " Font", RPMFC_FONT|RPMFC_INCLUDE },
+ { "PPD file", RPMFC_PSDRIVER|RPMFC_INCLUDE },
{ " commands", RPMFC_SCRIPT|RPMFC_INCLUDE },
{ " script", RPMFC_SCRIPT|RPMFC_INCLUDE },
@@ -1185,6 +1186,11 @@ exit:
#endif
}
+static int rpmfcPSDRIVER(rpmfc fc)
+{
+ return rpmfcHelper(fc, 'P', "psdriver");
+}
+
static int rpmfcMISC(rpmfc fc)
{
struct stat st;
@@ -1224,6 +1230,7 @@ static const struct rpmfcApplyTbl_s cons
RPMFC_PKGCONFIG|RPMFC_LIBTOOL) },
{ rpmfcMISC, RPMFC_FONT|RPMFC_TEXT },
{ rpmfcSYMLINK, RPMFC_SYMLINK },
+ { rpmfcPSDRIVER, RPMFC_PSDRIVER },
{ NULL, 0 }
};
@@ -1260,6 +1267,10 @@ rpmRC rpmfcApply(rpmfc fc)
fc->fcolor->vals[fc->ix] |= RPMFC_PYTHON;
}
}
+ /* XXX HACK: get cups driver executables also recognized as psdrivers */
+ if (strstr(fc->fn[fc->ix], "/usr/lib/cups/driver/")) {
+ fc->fcolor->vals[fc->ix] |= RPMFC_PSDRIVER;
+ }
if (fc->fcolor->vals[fc->ix])
for (fcat = rpmfcApplyTable; fcat->func != NULL; fcat++) {
@@ -1401,6 +1412,11 @@ rpmRC rpmfcClassify(rpmfc fc, ARGV_t arg
else if (rpmFileHasSuffix(s, ".pc"))
ftype = "pkgconfig file";
+ /* XXX Make cups .drv's to appear as PPD's for now */
+ else if (rpmFileHasSuffix(s, ".drv") &&
+ strstr(s, "/usr/share/cups/drv"))
+ ftype = "PPD file";
+
/* XXX skip all files in /dev/ which are (or should be) %dev dummies. */
else if (slen >= fc->brlen+sizeof("/dev/") && rstreqn(s+fc->brlen, "/dev/", sizeof("/dev/")-1))
ftype = "";
diff -up rpm-4.8.0/build/rpmfc.h.psdriver rpm-4.8.0/build/rpmfc.h
--- rpm-4.8.0/build/rpmfc.h.psdriver 2009-12-09 15:37:25.000000000 +0200
+++ rpm-4.8.0/build/rpmfc.h 2010-03-16 10:54:04.000000000 +0200
@@ -31,7 +31,8 @@ enum FCOLOR_e {
#define RPMFC_ELF (RPMFC_ELF32|RPMFC_ELF64|RPMFC_ELFMIPSN32)
/* (1 << 3) leaks into package headers, reserved */
- /* bits 4-6 unused */
+ /* bits 4-5 unused */
+ RPMFC_PSDRIVER = (1 << 6),
RPMFC_OCAML = (1 << 7),
RPMFC_PKGCONFIG = (1 << 8),
RPMFC_LIBTOOL = (1 << 9),
@@ -53,6 +54,7 @@ enum FCOLOR_e {
RPMFC_MANPAGE = (7 << 16),
RPMFC_TEXT = (8 << 16),
RPMFC_DOCUMENT = (9 << 16),
+ RPMFC_PPD = (10 << 16),
RPMFC_ARCHIVE = (1 << 20),
RPMFC_COMPRESSED = (1 << 21),
diff -up rpm-4.8.0/macros.in.psdriver rpm-4.8.0/macros.in
--- rpm-4.8.0/macros.in.psdriver 2010-03-16 10:54:04.000000000 +0200
+++ rpm-4.8.0/macros.in 2010-03-16 10:54:04.000000000 +0200
@@ -504,6 +504,7 @@ print (t)\
%__fontconfig_provides %{_rpmconfigdir}/fontconfig.prov
%__desktop_provides %{_rpmconfigdir}/desktop-file.prov
+%__psdriver_provides %{_rpmconfigdir}/postscriptdriver.prov %{buildroot}
#==============================================================================
# ---- Database configuration macros.
diff -up rpm-4.8.0/scripts/Makefile.am.psdriver rpm-4.8.0/scripts/Makefile.am
--- rpm-4.8.0/scripts/Makefile.am.psdriver 2009-12-07 16:36:49.000000000 +0200
+++ rpm-4.8.0/scripts/Makefile.am 2010-03-16 10:54:04.000000000 +0200
@@ -20,7 +20,8 @@ EXTRA_DIST = \
mono-find-requires mono-find-provides \
ocaml-find-requires.sh ocaml-find-provides.sh \
pkgconfigdeps.sh libtooldeps.sh \
- fontconfig.prov desktop-file.prov
+ fontconfig.prov desktop-file.prov \
+ postscriptdriver.prov
rpmconfig_SCRIPTS = \
brp-compress brp-python-bytecompile brp-java-gcjcompile \
@@ -34,6 +35,7 @@ rpmconfig_SCRIPTS = \
pkgconfigdeps.sh libtooldeps.sh \
ocaml-find-requires.sh ocaml-find-provides.sh \
fontconfig.prov desktop-file.prov \
+ postscriptdriver.prov \
rpmdb_loadcvt rpmdiff rpm2cpio.sh tcl.req tgpg
rpmconfig_DATA = \
diff -up rpm-4.8.0/scripts/Makefile.in.psdriver rpm-4.8.0/scripts/Makefile.in
--- rpm-4.8.0/scripts/Makefile.in.psdriver 2010-01-08 10:35:16.000000000 +0200
+++ rpm-4.8.0/scripts/Makefile.in 2010-03-16 10:54:04.000000000 +0200
@@ -317,7 +317,8 @@ EXTRA_DIST = brp-compress brp-python-byt
find-php-provides find-php-requires mono-find-requires \
mono-find-provides ocaml-find-requires.sh \
ocaml-find-provides.sh pkgconfigdeps.sh libtooldeps.sh \
- fontconfig.prov desktop-file.prov macros.perl.in macros.php.in \
+ fontconfig.prov desktop-file.prov postscriptdriver.prov \
+ macros.perl.in macros.php.in \
macros.python.in
rpmconfig_SCRIPTS = \
brp-compress brp-python-bytecompile brp-java-gcjcompile \
@@ -331,6 +332,7 @@ rpmconfig_SCRIPTS = \
pkgconfigdeps.sh libtooldeps.sh \
ocaml-find-requires.sh ocaml-find-provides.sh \
fontconfig.prov desktop-file.prov \
+ postscriptdriver.prov \
rpmdb_loadcvt rpmdiff rpm2cpio.sh tcl.req tgpg
rpmconfig_DATA = rpmdiff.cgi rpm.daily rpm.log rpm.xinetd macros.perl \
diff -up rpm-4.8.0/scripts/postscriptdriver.prov.psdriver rpm-4.8.0/scripts/postscriptdriver.prov
--- rpm-4.8.0/scripts/postscriptdriver.prov.psdriver 2010-03-16 10:54:04.000000000 +0200
+++ rpm-4.8.0/scripts/postscriptdriver.prov 2010-03-16 10:54:04.000000000 +0200
@@ -0,0 +1,261 @@
+#!/bin/bash
+shopt -s execfail
+exec -a "$0" python -- <(tail -n +4 -- "$0") "$@" || exit 0 # -*- python -*-
+
+## Copyright (C) 2009, 2010 Red Hat, Inc.
+## Author: Tim Waugh <twaugh at redhat.com>
+
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2 of the License, or
+## (at your option) any later version.
+
+## This program is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+## GNU General Public License for more details.
+
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+import sys
+
+try:
+ import cups
+ CAN_EXAMINE_PPDS = True
+except:
+ CAN_EXAMINE_PPDS = False
+
+from getopt import getopt
+import errno
+import os
+import posix
+import re
+import shlex
+import signal
+import subprocess
+import sys
+import tempfile
+
+if len (sys.argv) > 1:
+ RPM_BUILD_ROOT = sys.argv[1]
+else:
+ RPM_BUILD_ROOT = None
+
+class TimedOut(Exception):
+ def __init__ (self):
+ Exception.__init__ (self, "Timed out")
+
+class DeviceIDs:
+ def __init__ (self):
+ self.ids = dict()
+
+ def get_dict (self):
+ return self.ids
+
+ def get_tags (self):
+ ret = []
+ for mfg, mdlset in self.ids.iteritems ():
+ mfgl = mfg.lower ().replace (" ", "_")
+ for mdl in mdlset:
+ mdll = mdl.lower ().replace (" ", "_")
+ ret.append ("postscriptdriver(%s;%s;)" % (mfgl,
+ mdll))
+
+ return ret
+
+ def __add__ (self, other):
+ if isinstance(other, DeviceIDs):
+ for omfg, omdlset in other.ids.iteritems ():
+ try:
+ mdlset = self.ids[omfg]
+ except KeyError:
+ mdlset = set()
+ self.ids[omfg] = mdlset
+
+ mdlset.update (omdlset)
+
+ return self
+
+ pieces = other.split (';')
+ mfg = mdl = None
+ for piece in pieces:
+ s = piece.split (":")
+ if len (s) != 2:
+ continue
+ key, value = s
+ key = key.upper ()
+ if key in ["MFG", "MANUFACTURER"]:
+ mfg = value
+ elif key in ["MDL", "MODEL"]:
+ mdl = value
+
+ if mfg and mdl:
+ try:
+ mdlset = self.ids[mfg]
+ except KeyError:
+ mdlset = set()
+ self.ids[mfg] = mdlset
+
+ mdlset.add (mdl)
+
+ return self
+
+class Driver:
+ def __init__ (self):
+ self.ids = DeviceIDs()
+
+ def list (self):
+ return self.ids
+
+class PPDDriver(Driver):
+ def __init__ (self, pathname=None):
+ Driver.__init__ (self)
+ self.pathname = pathname
+
+ def list (self):
+ if self.pathname != None:
+ self.examine_file (self.pathname)
+
+ return Driver.list (self)
+
+ def examine_file (self, path):
+ try:
+ ppd = cups.PPD (path)
+ except RuntimeError, e:
+ # Not a PPD file. Perhaps it's a drv file.
+ drv = DrvDriver (path)
+ self.ids += drv.list ()
+ return
+
+ attr = ppd.findAttr ('1284DeviceID')
+ while attr:
+ self.ids += attr.value
+ attr = ppd.findNextAttr ('1284DeviceID')
+
+class DynamicDriver(Driver):
+ def __init__ (self, driver):
+ Driver.__init__ (self)
+ self.driver = driver
+ signal.signal (signal.SIGALRM, self._alarm)
+
+ def _alarm (self, sig, stack):
+ raise TimedOut
+
+ def list (self):
+ signal.alarm (60)
+ env = os.environ.copy ()
+ if RPM_BUILD_ROOT:
+ buildroot = RPM_BUILD_ROOT
+ if not buildroot.endswith (os.path.sep):
+ buildroot += os.path.sep
+
+ env["DESTDIR"] = RPM_BUILD_ROOT
+ env["LD_LIBRARY_PATH"] = "%susr/lib64:%susr/lib" % (buildroot,
+ buildroot)
+
+ p = subprocess.Popen ([self.driver, "list"],
+ stdout=subprocess.PIPE,
+ stderr=subprocess.PIPE,
+ env=env)
+ try:
+ (stdout, stderr) = p.communicate ()
+ signal.alarm (0)
+ except TimedOut:
+ posix.kill (p.pid, signal.SIGKILL)
+ raise
+
+ if stderr:
+ print >> sys.stderr, stderr
+
+ ppds = []
+ lines = stdout.split ('\n')
+ for line in lines:
+ l = shlex.split (line)
+ if len (l) < 5:
+ continue
+ self.ids += l[4]
+
+ return Driver.list (self)
+
+class DrvDriver(PPDDriver):
+ def __init__ (self, pathname):
+ PPDDriver.__init__ (self)
+ self.drv = pathname
+
+ def _alarm (self, sig, stack):
+ raise TimedOut
+
+ def list (self):
+ tmpdir = os.environ.get ("TMPDIR", "/tmp") + os.path.sep
+ outputdir = tempfile.mkdtemp (dir=tmpdir)
+
+ argv = [ "ppdc",
+ "-d", outputdir,
+ "-I", "/usr/share/cups/ppdc",
+ self.drv ]
+
+ signal.alarm (60)
+ try:
+ p = subprocess.Popen (argv,
+ stdout=subprocess.PIPE,
+ stderr=subprocess.PIPE)
+ except OSError:
+ # ppdc not available.
+ os.rmdir (outputdir)
+ return Driver.list (self)
+
+ try:
+ (stdout, stderr) = p.communicate ()
+ signal.alarm (0)
+ except TimedOut:
+ posix.kill (p.pid, signal.SIGKILL)
+ raise
+
+ os.path.walk (outputdir, self.examine_directory, None)
+ os.rmdir (outputdir)
+ return Driver.list (self)
+
+ def examine_directory (self, unused, dirname, fnames):
+ for fname in fnames:
+ path = dirname + os.path.sep + fname
+ self.examine_file (path)
+ os.unlink (path)
+
+class TagBuilder:
+ def __init__ (self, filelist=None):
+ if filelist == None:
+ filelist = sys.stdin
+
+ paths = map (lambda x: x.rstrip (), filelist.readlines ())
+ self.ids = DeviceIDs ()
+
+ for path in paths:
+ if path.find ("/usr/lib/cups/driver/") != -1:
+ try:
+ self.ids += DynamicDriver (path).list ()
+ except TimedOut:
+ pass
+ except OSError, (e, s):
+ if e == errno.EACCES or e == errno.ENOENT:
+ # Not executable
+ pass
+ else:
+ raise
+
+ if CAN_EXAMINE_PPDS:
+ for path in paths:
+ try:
+ self.ids += PPDDriver (path).list ()
+ except TimedOut:
+ pass
+
+ def get_tags (self):
+ return self.ids.get_tags ()
+
+if __name__ == "__main__":
+ builder = TagBuilder ()
+ tags = builder.get_tags ()
+ for tag in tags:
+ print tag
rpm-4.8.0-python-mibool.patch:
rpmmi-py.c | 21 ++++++++++++++++++++-
1 file changed, 20 insertions(+), 1 deletion(-)
--- NEW FILE rpm-4.8.0-python-mibool.patch ---
commit 40f788a7bf3741f9c613ff302d4e1b0ceec2658c
Author: Panu Matilainen <pmatilai at redhat.com>
Date: Wed Mar 24 09:53:25 2010 +0200
Add __bool__() / __nonzero__() method to python rpmmi objects (ticket #153)
- Objects supporting __len__() use (len > 0) for boolean representation,
which normally makes sense but as the match iterator count is often
zero despite the iterator actually existing and returning something,
and breaks existing code (rpmlint at least)
- Adding a __bool__() (known as __nonzero__() in Python < 3) method
returning true for non-NULL iterator fixes this and gives more
meaningful answers than pre 4.8.0 which simply always returned True
diff --git a/python/rpmmi-py.c b/python/rpmmi-py.c
index f6dd802..b7bfb1b 100644
--- a/python/rpmmi-py.c
+++ b/python/rpmmi-py.c
@@ -137,11 +137,30 @@ static Py_ssize_t rpmmi_length(rpmmiObject * s)
return s->mi ? rpmdbGetIteratorCount(s->mi) : 0;
}
+static int rpmmi_bool(rpmmiObject *s)
+{
+ return (s->mi != NULL);
+}
+
PyMappingMethods rpmmi_as_mapping = {
(lenfunc) rpmmi_length, /* mp_length */
0,
};
+static PyNumberMethods rpmmi_as_number = {
+ 0, /* nb_add */
+ 0, /* nb_subtract */
+ 0, /* nb_multiply */
+ 0, /* nb_divide */
+ 0, /* nb_remainder */
+ 0, /* nb_divmod */
+ 0, /* nb_power */
+ 0, /* nb_negative */
+ 0, /* nb_positive */
+ 0, /* nb_absolute */
+ (inquiry)rpmmi_bool, /* nb_bool/nonzero */
+};
+
static char rpmmi_doc[] =
"";
@@ -156,7 +175,7 @@ PyTypeObject rpmmi_Type = {
0, /* tp_setattr */
0, /* tp_compare */
0, /* tp_repr */
- 0, /* tp_as_number */
+ &rpmmi_as_number, /* tp_as_number */
0, /* tp_as_sequence */
&rpmmi_as_mapping, /* tp_as_mapping */
0, /* tp_hash */
rpm-4.8.0-python-nocontexts.patch:
rpmmodule.c | 1 +
1 file changed, 1 insertion(+)
--- NEW FILE rpm-4.8.0-python-nocontexts.patch ---
commit 8c5332984e32d27d28f9a440947b070af0d14c45
Author: Panu Matilainen <pmatilai at redhat.com>
Date: Mon Mar 15 09:45:49 2010 +0200
Tell python about RPMTRANS_FLAG_NOCONTEXTS
diff --git a/python/rpmmodule.c b/python/rpmmodule.c
index 4ace4bc..6159aee 100644
--- a/python/rpmmodule.c
+++ b/python/rpmmodule.c
@@ -386,6 +386,7 @@ static int initModule(PyObject *m)
REGISTER_ENUM(RPMTRANS_FLAG_NODOCS);
REGISTER_ENUM(RPMTRANS_FLAG_ALLFILES);
REGISTER_ENUM(RPMTRANS_FLAG_KEEPOBSOLETE);
+ REGISTER_ENUM(RPMTRANS_FLAG_NOCONTEXTS);
REGISTER_ENUM(RPMTRANS_FLAG_REPACKAGE);
REGISTER_ENUM(RPMTRANS_FLAG_REVERSE);
REGISTER_ENUM(RPMTRANS_FLAG_NOPRE);
Index: rpm.spec
===================================================================
RCS file: /cvs/pkgs/rpms/rpm/F-13/rpm.spec,v
retrieving revision 1.388
retrieving revision 1.389
diff -u -p -r1.388 -r1.389
--- rpm.spec 15 Feb 2010 14:24:07 -0000 1.388
+++ rpm.spec 23 Apr 2010 11:19:45 -0000 1.389
@@ -21,7 +21,7 @@
Summary: The RPM package management system
Name: rpm
Version: %{rpmver}
-Release: 10%{?dist}
+Release: 14%{?dist}
Group: System Environment/Base
Url: http://www.rpm.org/
Source0: http://rpm.org/releases/testing/%{name}-%{srcver}.tar.bz2
@@ -36,10 +36,9 @@ Patch2: rpm-4.5.90-gstreamer-provides.pa
# this as Fedora-specific patch for now
Patch3: rpm-4.7.90-fedora-specspo.patch
# Postscript driver provides extraction is Fedora specific for now
-# TODO: merge these when things stabilize
-Patch4: rpm-4.8.0-psdriver.patch
-Patch5: rpm-4.8.0-psdriver-fixes.patch
-Patch6: rpm-4.8.0-psdriver-more-fixes.patch
+Patch4: rpm-4.8.0-psdriver-deps.patch
+# In current Fedora, man-pages pkg owns all the localized man directories
+Patch5: rpm-4.8.0-no-man-dirs.patch
# Patches already in upstream
Patch200: rpm-4.8.0-url-segfault.patch
@@ -48,6 +47,9 @@ Patch202: rpm-4.8.0-pythondeps-parallel.
Patch203: rpm-4.8.0-python-bytecompile.patch
Patch204: rpm-4.8.0-lazy-statfs.patch
Patch205: rpm-4.8.0-erasure-dsi.patch
+Patch206: rpm-4.8.0-prep-keep-empty.patch
+Patch207: rpm-4.8.0-python-nocontexts.patch
+Patch208: rpm-4.8.0-python-mibool.patch
# These are not yet upstream
Patch301: rpm-4.6.0-niagara.patch
@@ -191,9 +193,8 @@ packages on a system.
%patch1 -p1 -b .pkgconfig-path
%patch2 -p1 -b .gstreamer-prov
%patch3 -p1 -b .fedora-specspo
-%patch4 -p1 -b .psdriver
-%patch5 -p1 -b .psdriver-fixes
-%patch6 -p1 -b .psdriver-more-fixes
+%patch4 -p1 -b .psdriver-deps
+%patch5 -p1 -b .no-man-dirs
%patch200 -p1 -b .url-segfault
%patch201 -p1 -b .verify-exitcode
@@ -201,6 +202,9 @@ packages on a system.
%patch203 -p1 -b .python-bytecompile
%patch204 -p1 -b .lazy-statfs
%patch205 -p1 -b .erasure-dsi
+%patch206 -p1 -b .prep-keep-empty
+%patch207 -p1 -b .python-nocontexts
+%patch208 -p1 -b .python-mibool
%patch301 -p1 -b .niagara
%patch302 -p1 -b .geode
@@ -269,7 +273,6 @@ for dbutil in \
do
ln -s ../../bin/%{dbprefix}_${dbutil} $RPM_BUILD_ROOT/%{rpmhome}/rpmdb_${dbutil}
done
-ln -s ../../bin/berkeley_%{dbprefix}_svc $RPM_BUILD_ROOT/%{rpmhome}/rpmdb_svc
%endif
%find_lang %{name}
@@ -417,6 +420,22 @@ exit 0
%doc doc/librpm/html/*
%changelog
+* Fri Apr 23 2010 Panu Matilainen <pmatilai at redhat.com> - 4.8.0-14
+- lose dangling symlink to extinct (and useless) berkeley_db_svc (#585174)
+
+* Wed Mar 24 2010 Panu Matilainen <pmatilai at redhat.com> - 4.8.0-13
+- fix python match iterator regression wrt boolean representation
+
+* Wed Mar 17 2010 Panu Matilainen <pmatilai at redhat.com> - 4.8.0-12
+- unbreak find-lang --with-man from yesterdays braindamage
+
+* Tue Mar 16 2010 Panu Matilainen <pmatilai at redhat.com> - 4.8.0-11
+- support single PPD providing driver for devices (#568351)
+- merge the psdriver patch pile into one
+- preserve empty lines in spec prep section (#573339)
+- teach python bindings about RPMTRANS_FLAG_NOCONTEXTS (related to #573111)
+- dont own localized man directories through find_lang (#569536)
+
* Mon Feb 15 2010 Panu Matilainen <pmatilai at redhat.com> - 4.8.0-10
- drop bogus dependency on lzma, xz is used to handle the lzma format too
--- rpm-4.8.0-psdriver-fixes.patch DELETED ---
--- rpm-4.8.0-psdriver-more-fixes.patch DELETED ---
--- rpm-4.8.0-psdriver.patch DELETED ---
More information about the scm-commits
mailing list