Compare commits
16 Commits
Author | SHA1 | Date |
---|---|---|
Fedora Release Engineering | 269b59341b | |
Panu Matilainen | eb81d78b6f | |
Panu Matilainen | 3283466db7 | |
Bill Nottingham | 1801871c6e | |
Panu Matilainen | a0c157aed4 | |
Bill Nottingham | 42f7ce5914 | |
Panu Matilainen | 79b0aab76f | |
Panu Matilainen | ef83a11dae | |
Panu Matilainen | 4653ef2d9b | |
Panu Matilainen | 75dc8990eb | |
Panu Matilainen | 9c7db51862 | |
Panu Matilainen | 25db274db2 | |
Panu Matilainen | eb359b03f6 | |
Panu Matilainen | ce3588a737 | |
Panu Matilainen | 5957a8552c | |
Jesse Keating | 48352225d7 |
|
@ -1 +0,0 @@
|
|||
rpm-4.7.0-rc1.tar.bz2
|
|
@ -0,0 +1 @@
|
|||
rpm-4.7.0.tar.bz2
|
21
Makefile
21
Makefile
|
@ -1,21 +0,0 @@
|
|||
# Makefile for source rpm: rpm
|
||||
# $Id: Makefile,v 1.1 2004/09/09 11:49:39 cvsdist Exp $
|
||||
NAME := rpm
|
||||
SPECFILE = $(firstword $(wildcard *.spec))
|
||||
|
||||
define find-makefile-common
|
||||
for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done
|
||||
endef
|
||||
|
||||
MAKEFILE_COMMON := $(shell $(find-makefile-common))
|
||||
|
||||
ifeq ($(MAKEFILE_COMMON),)
|
||||
# attempt a checkout
|
||||
define checkout-makefile-common
|
||||
test -f CVS/Root && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2
|
||||
endef
|
||||
|
||||
MAKEFILE_COMMON := $(shell $(checkout-makefile-common))
|
||||
endif
|
||||
|
||||
include $(MAKEFILE_COMMON)
|
|
@ -1 +0,0 @@
|
|||
rpm-4_5_90-0_git8444_1:HEAD:rpm-4.5.90-0.git8444.1.src.rpm:1217601763
|
|
@ -1,7 +1,8 @@
|
|||
diff -up rpm-4.7.0-beta1/build/rpmfc.c.extra-prov rpm-4.7.0-beta1/build/rpmfc.c
|
||||
--- rpm-4.7.0-beta1/build/rpmfc.c.extra-prov 2009-02-26 17:31:12.000000000 +0200
|
||||
+++ rpm-4.7.0-beta1/build/rpmfc.c 2009-02-26 17:31:55.000000000 +0200
|
||||
@@ -485,6 +485,7 @@ static const struct rpmfcTokens_s const
|
||||
diff --git a/build/rpmfc.c b/build/rpmfc.c
|
||||
index 1bb1c3b..4e57869 100644
|
||||
--- a/build/rpmfc.c
|
||||
+++ b/build/rpmfc.c
|
||||
@@ -484,6 +484,7 @@ static const struct rpmfcTokens_s const rpmfcTokens[] = {
|
||||
{ "RPM v4", RPMFC_ARCHIVE|RPMFC_INCLUDE },
|
||||
|
||||
{ " image", RPMFC_IMAGE|RPMFC_INCLUDE },
|
||||
|
@ -9,7 +10,28 @@ diff -up rpm-4.7.0-beta1/build/rpmfc.c.extra-prov rpm-4.7.0-beta1/build/rpmfc.c
|
|||
{ " font", RPMFC_FONT|RPMFC_INCLUDE },
|
||||
{ " Font", RPMFC_FONT|RPMFC_INCLUDE },
|
||||
|
||||
@@ -1189,6 +1190,31 @@ exit:
|
||||
@@ -496,19 +497,14 @@ static const struct rpmfcTokens_s const rpmfcTokens[] = {
|
||||
{ "SGML", RPMFC_WHITE|RPMFC_INCLUDE },
|
||||
{ "XML", RPMFC_WHITE|RPMFC_INCLUDE },
|
||||
|
||||
- { " program text", RPMFC_WHITE|RPMFC_INCLUDE },
|
||||
{ " source", RPMFC_WHITE|RPMFC_INCLUDE },
|
||||
{ "GLS_BINARY_LSB_FIRST", RPMFC_WHITE|RPMFC_INCLUDE },
|
||||
{ " DB ", RPMFC_WHITE|RPMFC_INCLUDE },
|
||||
|
||||
- { "ASCII English text", RPMFC_WHITE|RPMFC_INCLUDE },
|
||||
- { "ASCII text", RPMFC_WHITE|RPMFC_INCLUDE },
|
||||
- { "ISO-8859 text", RPMFC_WHITE|RPMFC_INCLUDE },
|
||||
-
|
||||
{ "symbolic link to", RPMFC_SYMLINK|RPMFC_INCLUDE },
|
||||
{ "socket", RPMFC_DEVICE },
|
||||
{ "special", RPMFC_DEVICE },
|
||||
- { " text", RPMFC_TEXT },
|
||||
+ { " text", RPMFC_TEXT|RPMFC_INCLUDE },
|
||||
|
||||
{ "ASCII", RPMFC_WHITE },
|
||||
{ "ISO-8859", RPMFC_WHITE },
|
||||
@@ -1184,6 +1180,31 @@ exit:
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@ -41,7 +63,7 @@ diff -up rpm-4.7.0-beta1/build/rpmfc.c.extra-prov rpm-4.7.0-beta1/build/rpmfc.c
|
|||
typedef const struct rpmfcApplyTbl_s {
|
||||
int (*func) (rpmfc fc);
|
||||
int colormask;
|
||||
@@ -1201,6 +1227,7 @@ static const struct rpmfcApplyTbl_s cons
|
||||
@@ -1196,6 +1217,7 @@ static const struct rpmfcApplyTbl_s const rpmfcApplyTable[] = {
|
||||
{ rpmfcSCRIPT, (RPMFC_SCRIPT|RPMFC_BOURNE|
|
||||
RPMFC_PERL|RPMFC_PYTHON|RPMFC_MONO|
|
||||
RPMFC_PKGCONFIG|RPMFC_LIBTOOL) },
|
||||
|
@ -49,19 +71,20 @@ diff -up rpm-4.7.0-beta1/build/rpmfc.c.extra-prov rpm-4.7.0-beta1/build/rpmfc.c
|
|||
{ rpmfcSYMLINK, RPMFC_SYMLINK },
|
||||
{ NULL, 0 }
|
||||
};
|
||||
@@ -1320,7 +1347,7 @@ rpmRC rpmfcClassify(rpmfc fc, ARGV_t arg
|
||||
@@ -1315,7 +1337,7 @@ rpmRC rpmfcClassify(rpmfc fc, ARGV_t argv, rpm_mode_t * fmode)
|
||||
size_t slen;
|
||||
int fcolor;
|
||||
int xx;
|
||||
- int msflags = MAGIC_CHECK; /* XXX MAGIC_COMPRESS flag? */
|
||||
+ int msflags = MAGIC_CHECK | MAGIC_COMPRESS;
|
||||
+ int msflags = MAGIC_CHECK | MAGIC_COMPRESS | MAGIC_NO_CHECK_TOKENS;
|
||||
magic_t ms = NULL;
|
||||
|
||||
if (fc == NULL || argv == NULL)
|
||||
diff -up rpm-4.7.0-beta1/macros.in.extra-prov rpm-4.7.0-beta1/macros.in
|
||||
--- rpm-4.7.0-beta1/macros.in.extra-prov 2009-02-26 17:31:12.000000000 +0200
|
||||
+++ rpm-4.7.0-beta1/macros.in 2009-02-26 17:32:38.000000000 +0200
|
||||
@@ -494,6 +494,9 @@ print (t)\
|
||||
diff --git a/macros.in b/macros.in
|
||||
index c187f62..945e89b 100644
|
||||
--- a/macros.in
|
||||
+++ b/macros.in
|
||||
@@ -489,6 +489,9 @@ print (t)\
|
||||
%__pkgconfig_provides %{_rpmconfigdir}/pkgconfigdeps.sh --provides
|
||||
%__pkgconfig_requires %{_rpmconfigdir}/pkgconfigdeps.sh --requires
|
||||
|
||||
|
|
|
@ -0,0 +1,95 @@
|
|||
diff -up rpm-4.7.1/build/files.c.bugurl rpm-4.7.1/build/files.c
|
||||
--- rpm-4.7.1/build/files.c.bugurl 2009-07-21 09:42:51.000000000 +0300
|
||||
+++ rpm-4.7.1/build/files.c 2009-09-15 11:37:45.000000000 +0300
|
||||
@@ -1977,6 +1977,7 @@ static const rpmTag sourceTags[] = {
|
||||
RPMTAG_CHANGELOGNAME,
|
||||
RPMTAG_CHANGELOGTEXT,
|
||||
RPMTAG_URL,
|
||||
+ RPMTAG_BUGURL,
|
||||
HEADER_I18NTABLE,
|
||||
0
|
||||
};
|
||||
diff -up rpm-4.7.1/build/parsePreamble.c.bugurl rpm-4.7.1/build/parsePreamble.c
|
||||
--- rpm-4.7.1/build/parsePreamble.c.bugurl 2009-06-23 14:40:57.000000000 +0300
|
||||
+++ rpm-4.7.1/build/parsePreamble.c 2009-09-15 11:37:45.000000000 +0300
|
||||
@@ -32,6 +32,7 @@ static const rpmTag copyTagsDuringParse[
|
||||
RPMTAG_CHANGELOGTEXT,
|
||||
RPMTAG_PREFIXES,
|
||||
RPMTAG_DISTTAG,
|
||||
+ RPMTAG_BUGURL,
|
||||
0
|
||||
};
|
||||
|
||||
@@ -307,6 +308,7 @@ static struct optionalTag {
|
||||
{ RPMTAG_PACKAGER, "%{packager}" },
|
||||
{ RPMTAG_DISTRIBUTION, "%{distribution}" },
|
||||
{ RPMTAG_DISTURL, "%{disturl}" },
|
||||
+ { RPMTAG_BUGURL, "%{bugurl}" },
|
||||
{ -1, NULL }
|
||||
};
|
||||
|
||||
@@ -501,6 +503,7 @@ static int handlePreambleTag(rpmSpec spe
|
||||
}
|
||||
case RPMTAG_URL:
|
||||
case RPMTAG_DISTTAG:
|
||||
+ case RPMTAG_BUGURL:
|
||||
SINGLE_TOKEN_ONLY;
|
||||
/* These macros are for backward compatibility */
|
||||
if (tag == RPMTAG_VERSION) {
|
||||
@@ -734,6 +737,7 @@ static struct PreambleRec_s preambleList
|
||||
{RPMTAG_AUTOPROV, 0, 0, 0, "autoprov"},
|
||||
{RPMTAG_DOCDIR, 0, 0, 0, "docdir"},
|
||||
{RPMTAG_DISTTAG, 0, 0, 0, "disttag"},
|
||||
+ {RPMTAG_BUGURL, 0, 0, 0, "bugurl"},
|
||||
/* LCL: can't add null annotation */
|
||||
{0, 0, 0, 0, 0}
|
||||
};
|
||||
diff -up rpm-4.7.1/lib/rpmtag.h.bugurl rpm-4.7.1/lib/rpmtag.h
|
||||
--- rpm-4.7.1/lib/rpmtag.h.bugurl 2009-06-23 14:40:57.000000000 +0300
|
||||
+++ rpm-4.7.1/lib/rpmtag.h 2009-09-15 11:37:45.000000000 +0300
|
||||
@@ -282,6 +282,7 @@ typedef enum rpmTag_e {
|
||||
RPMTAG_LONGSIZE = 5009, /* l */
|
||||
RPMTAG_FILECAPS = 5010, /* s[] */
|
||||
RPMTAG_FILEDIGESTALGO = 5011, /* i file digest algorithm */
|
||||
+ RPMTAG_BUGURL = 5012, /* s */
|
||||
|
||||
RPMTAG_FIRSTFREE_TAG /*!< internal */
|
||||
} rpmTag;
|
||||
diff -up rpm-4.7.1/macros.in.bugurl rpm-4.7.1/macros.in
|
||||
--- rpm-4.7.1/macros.in.bugurl 2009-09-15 11:37:45.000000000 +0300
|
||||
+++ rpm-4.7.1/macros.in 2009-09-15 11:37:45.000000000 +0300
|
||||
@@ -264,6 +264,12 @@ package or when debugging this package.\
|
||||
#
|
||||
#%disturl
|
||||
|
||||
+# Configurable bug URL, same as BugURL: tag in a specfile.
|
||||
+# The URL will be used to supply reliable information to where
|
||||
+# to file bugs.
|
||||
+#
|
||||
+#%bugurl
|
||||
+
|
||||
# Boolean (i.e. 1 == "yes", 0 == "no") that controls whether files
|
||||
# marked as %doc should be installed.
|
||||
#%_excludedocs
|
||||
diff -up rpm-4.7.1/tests/rpmgeneral.at.bugurl rpm-4.7.1/tests/rpmgeneral.at
|
||||
--- rpm-4.7.1/tests/rpmgeneral.at.bugurl 2009-06-23 14:40:59.000000000 +0300
|
||||
+++ rpm-4.7.1/tests/rpmgeneral.at 2009-09-15 11:37:45.000000000 +0300
|
||||
@@ -71,6 +71,7 @@ AT_CHECK([run rpm --querytags],[0],
|
||||
[ARCH
|
||||
ARCHIVESIZE
|
||||
BASENAMES
|
||||
+BUGURL
|
||||
BUILDARCHS
|
||||
BUILDHOST
|
||||
BUILDTIME
|
||||
diff -up rpm-4.7.1/tests/rpmtests.bugurl rpm-4.7.1/tests/rpmtests
|
||||
--- rpm-4.7.1/tests/rpmtests.bugurl 2009-09-15 11:38:00.000000000 +0300
|
||||
+++ rpm-4.7.1/tests/rpmtests 2009-09-15 11:38:10.000000000 +0300
|
||||
@@ -2165,6 +2165,7 @@ at_func_diff_devnull "$at_stderr" || at_
|
||||
echo >>"$at_stdout"; $as_echo "ARCH
|
||||
ARCHIVESIZE
|
||||
BASENAMES
|
||||
+BUGURL
|
||||
BUILDARCHS
|
||||
BUILDHOST
|
||||
BUILDTIME
|
|
@ -0,0 +1,22 @@
|
|||
commit 545304577f0ac82b2e4c1caa97f02d87f41324f7
|
||||
Author: Panu Matilainen <pmatilai@redhat.com>
|
||||
Date: Wed Dec 2 15:30:27 2009 +0200
|
||||
|
||||
Fix the posix chown test for selinux enabled systems (RhBug:543035)
|
||||
- on selinux enabled systems, 'ls -l' mode string is longer than
|
||||
expected here, just trim the ls output to our expected length
|
||||
(cherry picked from commit 46d1ba04483af09590ed070186a1be10b57c5977)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 967566c..2274080 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -61,7 +61,7 @@ AC_MSG_CHECKING(POSIX chmod)
|
||||
touch foo.chmodtest
|
||||
chmod 744 foo.chmodtest
|
||||
chmod +X foo.chmodtest 2>/dev/null
|
||||
-a=`ls -l foo.chmodtest | awk '{print $1}'`
|
||||
+a=`ls -l foo.chmodtest | awk '{print substr($1,1,10)}'`
|
||||
rm -f foo.chmodtest
|
||||
if test "$a" = "-rwxr-xr-x"; then
|
||||
AC_MSG_RESULT(yes)
|
|
@ -0,0 +1,37 @@
|
|||
commit 6eeb0bb06466d9eb75eb55efd514d3ecfe089042
|
||||
Author: Panu Matilainen <pmatilai@redhat.com>
|
||||
Date: Wed Nov 25 15:07:17 2009 +0200
|
||||
|
||||
We can't handle OpenPGP subkeys or secret keys, so dont even try
|
||||
- parsing subkeys ends up overwriting data in the main key, causing
|
||||
bogus signature checking failures
|
||||
- this is the final missing piece of RhBug:436812, short of adding
|
||||
proper support for subkeys (maybe someday...)
|
||||
(cherry picked from commit 98213fc4192c7af07037a0f3e9cce9e3b8509c02)
|
||||
|
||||
diff --git a/rpmio/rpmpgp.c b/rpmio/rpmpgp.c
|
||||
index d7bbb5e..f76fc2b 100644
|
||||
--- a/rpmio/rpmpgp.c
|
||||
+++ b/rpmio/rpmpgp.c
|
||||
@@ -1190,11 +1190,6 @@ static int pgpPrtPkt(const uint8_t *pkt, size_t pleft,
|
||||
else
|
||||
memset(_digp->signid, 0, sizeof(_digp->signid));
|
||||
}
|
||||
- case PGPTAG_PUBLIC_SUBKEY:
|
||||
- rc = pgpPrtKey(tag, h, hlen, _dig, _digp);
|
||||
- break;
|
||||
- case PGPTAG_SECRET_KEY:
|
||||
- case PGPTAG_SECRET_SUBKEY:
|
||||
rc = pgpPrtKey(tag, h, hlen, _dig, _digp);
|
||||
break;
|
||||
case PGPTAG_USER_ID:
|
||||
@@ -1205,6 +1200,9 @@ static int pgpPrtPkt(const uint8_t *pkt, size_t pleft,
|
||||
rc = pgpPrtComment(tag, h, hlen);
|
||||
break;
|
||||
|
||||
+ case PGPTAG_PUBLIC_SUBKEY:
|
||||
+ case PGPTAG_SECRET_KEY:
|
||||
+ case PGPTAG_SECRET_SUBKEY:
|
||||
case PGPTAG_RESERVED:
|
||||
case PGPTAG_PUBLIC_SESSION_KEY:
|
||||
case PGPTAG_SYMMETRIC_SESSION_KEY:
|
|
@ -0,0 +1,77 @@
|
|||
diff --git a/python/header-py.c b/python/header-py.c
|
||||
index 8ec2cb4..9c9b1e2 100644
|
||||
--- a/python/header-py.c
|
||||
+++ b/python/header-py.c
|
||||
@@ -152,6 +152,7 @@ static PyObject * hdrKeyList(hdrObject * s)
|
||||
|
||||
switch (rpmtdType(td)) {
|
||||
case RPM_BIN_TYPE:
|
||||
+ case RPM_INT64_TYPE:
|
||||
case RPM_INT32_TYPE:
|
||||
case RPM_CHAR_TYPE:
|
||||
case RPM_INT8_TYPE:
|
||||
@@ -386,17 +387,30 @@ static PyObject * hdr_subscript(hdrObject * s, PyObject * item)
|
||||
o = PyString_FromStringAndSize(data, count);
|
||||
break;
|
||||
|
||||
+ case RPM_INT64_TYPE:
|
||||
+ if (count != 1 || forceArray) {
|
||||
+ metao = PyList_New(0);
|
||||
+ for (i = 0; i < count; i++) {
|
||||
+ o = PyLong_FromUnsignedLongLong(((uint64_t *) data)[i]);
|
||||
+ PyList_Append(metao, o);
|
||||
+ Py_DECREF(o);
|
||||
+ }
|
||||
+ o = metao;
|
||||
+ } else {
|
||||
+ o = PyLong_FromUnsignedLongLong(*((uint64_t *) data));
|
||||
+ }
|
||||
+ break;
|
||||
case RPM_INT32_TYPE:
|
||||
if (count != 1 || forceArray) {
|
||||
metao = PyList_New(0);
|
||||
for (i = 0; i < count; i++) {
|
||||
- o = PyInt_FromLong(((int *) data)[i]);
|
||||
+ o = PyLong_FromLong(((uint32_t *) data)[i]);
|
||||
PyList_Append(metao, o);
|
||||
Py_DECREF(o);
|
||||
}
|
||||
o = metao;
|
||||
} else {
|
||||
- o = PyInt_FromLong(*((int *) data));
|
||||
+ o = PyLong_FromLong(*((uint32_t *) data));
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -405,13 +419,13 @@ static PyObject * hdr_subscript(hdrObject * s, PyObject * item)
|
||||
if (count != 1 || forceArray) {
|
||||
metao = PyList_New(0);
|
||||
for (i = 0; i < count; i++) {
|
||||
- o = PyInt_FromLong(((char *) data)[i]);
|
||||
+ o = PyInt_FromLong(((uint8_t *) data)[i]);
|
||||
PyList_Append(metao, o);
|
||||
Py_DECREF(o);
|
||||
}
|
||||
o = metao;
|
||||
} else {
|
||||
- o = PyInt_FromLong(*((char *) data));
|
||||
+ o = PyInt_FromLong(*((uint8_t *) data));
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -419,13 +433,13 @@ static PyObject * hdr_subscript(hdrObject * s, PyObject * item)
|
||||
if (count != 1 || forceArray) {
|
||||
metao = PyList_New(0);
|
||||
for (i = 0; i < count; i++) {
|
||||
- o = PyInt_FromLong(((short *) data)[i]);
|
||||
+ o = PyInt_FromLong(((uint16_t *) data)[i]);
|
||||
PyList_Append(metao, o);
|
||||
Py_DECREF(o);
|
||||
}
|
||||
o = metao;
|
||||
} else {
|
||||
- o = PyInt_FromLong(*((short *) data));
|
||||
+ o = PyInt_FromLong(*((uint16_t *) data));
|
||||
}
|
||||
break;
|
||||
|
|
@ -0,0 +1,43 @@
|
|||
commit fa9fcc89146f08bce3b51d96d0ec9d4175db6978
|
||||
Author: Panu Matilainen <pmatilai@redhat.com>
|
||||
Date: Thu Nov 26 10:22:41 2009 +0200
|
||||
|
||||
Dont fail build on unrecognized non-executable files (ticket #105)
|
||||
- Generally only executable files are critical for dependency extraction,
|
||||
whereas oddball application data files can cause unnecessary build
|
||||
failure due to libmagic misdetections etc, so just let non-executables
|
||||
pass with a warning and mark them as unknown data
|
||||
(cherry picked from commit cfcd1f9bd98d5d0fc46a84931984efec3b9d47e2)
|
||||
|
||||
diff --git a/build/rpmfc.c b/build/rpmfc.c
|
||||
index bcb5383..e4ba6b2 100644
|
||||
--- a/build/rpmfc.c
|
||||
+++ b/build/rpmfc.c
|
||||
@@ -1245,6 +1245,7 @@ rpmRC rpmfcClassify(rpmfc fc, ARGV_t argv, rpm_mode_t * fmode)
|
||||
for (fc->ix = 0; fc->ix < fc->nfiles; fc->ix++) {
|
||||
const char * ftype;
|
||||
rpm_mode_t mode = (fmode ? fmode[fc->ix] : 0);
|
||||
+ int is_executable = (mode & (S_IXUSR|S_IXGRP|S_IXOTH));
|
||||
|
||||
s = argv[fc->ix];
|
||||
slen = strlen(s);
|
||||
@@ -1277,11 +1278,16 @@ rpmRC rpmfcClassify(rpmfc fc, ARGV_t argv, rpm_mode_t * fmode)
|
||||
ftype = magic_file(ms, s);
|
||||
|
||||
if (ftype == NULL) {
|
||||
- rpmlog(RPMLOG_ERR,
|
||||
+ rpmlog(is_executable ? RPMLOG_ERR : RPMLOG_WARNING,
|
||||
_("Recognition of file \"%s\" failed: mode %06o %s\n"),
|
||||
s, mode, magic_error(ms));
|
||||
- magic_close(ms);
|
||||
- return RPMRC_FAIL;
|
||||
+ /* only executable files are critical to dep extraction */
|
||||
+ if (is_executable) {
|
||||
+ magic_close(ms);
|
||||
+ return RPMRC_FAIL;
|
||||
+ }
|
||||
+ /* unrecognized non-executables get treated as "data" */
|
||||
+ ftype = "data";
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,34 @@
|
|||
commit 31c5e0f9b7b09661611b50d84d26ba47ce97fffe
|
||||
Author: Panu Matilainen <pmatilai@redhat.com>
|
||||
Date: Wed Nov 25 16:42:43 2009 +0200
|
||||
|
||||
Fix signature password checking result on abnormal conditions (RhBug:496754)
|
||||
- Execve() failure wasn't returning an error code, causing rpm to
|
||||
think the password was ok when we couldn't even try verifying
|
||||
- Stricter return code checking from the password checking child:
|
||||
the password can only be ok if the child exits with WIFEXITED() *and*
|
||||
WIFEXITCODE() of 0. Also WIFEXITCODE() should only be called if
|
||||
WIFEXITED() returns true.
|
||||
(cherry picked from commit 2b41860984f0c4ebba5ebce93a18c9c0ca5e1065)
|
||||
|
||||
diff --git a/lib/signature.c b/lib/signature.c
|
||||
index a501f3e..a2eaf9b 100644
|
||||
--- a/lib/signature.c
|
||||
+++ b/lib/signature.c
|
||||
@@ -883,6 +883,7 @@ static int checkPassPhrase(const char * passPhrase, const rpmSigTag sigTag)
|
||||
|
||||
rpmlog(RPMLOG_ERR, _("Could not exec %s: %s\n"), "gpg",
|
||||
strerror(errno));
|
||||
+ _exit(EXIT_FAILURE);
|
||||
} break;
|
||||
case RPMSIGTAG_RSA:
|
||||
case RPMSIGTAG_PGP5: /* XXX legacy */
|
||||
@@ -932,7 +933,7 @@ static int checkPassPhrase(const char * passPhrase, const rpmSigTag sigTag)
|
||||
|
||||
(void) waitpid(pid, &status, 0);
|
||||
|
||||
- return ((!WIFEXITED(status) || WEXITSTATUS(status)) ? 1 : 0);
|
||||
+ return ((WIFEXITED(status) && WEXITSTATUS(status) == 0)) ? 0 : 1;
|
||||
}
|
||||
|
||||
char * rpmGetPassPhrase(const char * prompt, const rpmSigTag sigTag)
|
108
rpm.spec
108
rpm.spec
|
@ -1,5 +1,5 @@
|
|||
# rawhide doesn't have new enough lzma yet
|
||||
%bcond_with lzma
|
||||
# build against xz?
|
||||
%bcond_without xz
|
||||
# sqlite backend is broken atm, disabled for now
|
||||
%bcond_with sqlite
|
||||
# just for giggles, option to build with internal Berkeley DB
|
||||
|
@ -15,9 +15,9 @@
|
|||
|
||||
%define rpmhome /usr/lib/rpm
|
||||
|
||||
%define rpmver 4.7.0
|
||||
%define snapver rc1
|
||||
%define srcver %{rpmver}-%{snapver}
|
||||
%define rpmver 4.7.2
|
||||
%define snapver {nil}
|
||||
%define srcver %{rpmver}
|
||||
|
||||
%define bdbver 4.7.25
|
||||
%define dbprefix db
|
||||
|
@ -25,10 +25,10 @@
|
|||
Summary: The RPM package management system
|
||||
Name: rpm
|
||||
Version: %{rpmver}
|
||||
Release: 0.%{snapver}.1%{?dist}
|
||||
Release: 1%{?dist}
|
||||
Group: System Environment/Base
|
||||
Url: http://www.rpm.org/
|
||||
Source0: http://rpm.org/releases/testing/%{name}-%{srcver}.tar.bz2
|
||||
Source0: http://rpm.org/releases/rpm-4.7.x/%{name}-%{srcver}.tar.bz2
|
||||
%if %{with int_bdb}
|
||||
Source1: db-%{bdbver}.tar.gz
|
||||
%endif
|
||||
|
@ -43,10 +43,16 @@ Patch2: rpm-4.5.90-gstreamer-provides.patch
|
|||
Patch3: rpm-4.6.0-fedora-specspo.patch
|
||||
|
||||
# Patches already in upstream
|
||||
Patch200: rpm-4.7.1-bugurl.patch
|
||||
Patch201: rpm-4.7.0-extra-provides.patch
|
||||
Patch202: rpm-4.7.1-pgp-subkeys.patch
|
||||
Patch203: rpm-4.7.1-sign-passcheck.patch
|
||||
Patch204: rpm-4.7.1-rpmfc-data.patch
|
||||
Patch205: rpm-4.7.1-chmod-test.patch
|
||||
Patch206: rpm-4.7.1-python-types.patch
|
||||
|
||||
# These are not yet upstream
|
||||
Patch300: rpm-4.7.0-extra-provides.patch
|
||||
Patch301: rpm-4.6.0-niagara.patch
|
||||
Patch300: rpm-4.6.0-niagara.patch
|
||||
|
||||
# Partially GPL/LGPL dual-licensed and some bits with BSD
|
||||
# SourceLicense: (GPLv2+ and LGPLv2+ with exceptions) and BSD
|
||||
|
@ -87,14 +93,17 @@ BuildRequires: ncurses-devel
|
|||
BuildRequires: bzip2-devel >= 0.9.0c-2
|
||||
BuildRequires: python-devel >= 2.2
|
||||
BuildRequires: lua-devel >= 5.1
|
||||
%if %{with lzma}
|
||||
BuildRequires: lzma-devel >= 4.42
|
||||
BuildRequires: libcap-devel
|
||||
BuildRequires: libacl-devel
|
||||
%if %{with xz}
|
||||
BuildRequires: xz-devel >= 4.999.8
|
||||
%endif
|
||||
%if %{with sqlite}
|
||||
BuildRequires: sqlite-devel
|
||||
%endif
|
||||
# XXX temporarily for chmod-test patch
|
||||
BuildRequires: autoconf automake
|
||||
# Not enabling these yet
|
||||
# BuildRequires: libcap-devel libacl-devel
|
||||
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||
|
||||
|
@ -110,6 +119,9 @@ Summary: Libraries for manipulating RPM packages
|
|||
Group: Development/Libraries
|
||||
License: GPLv2+ and LGPLv2+ with exceptions
|
||||
Requires: rpm = %{version}-%{release}
|
||||
# librpm uses cap_compare, introduced sometimes between libcap 2.10 and 2.16.
|
||||
# A manual require is needed, see #505596
|
||||
Requires: libcap >= 2.16
|
||||
|
||||
%description libs
|
||||
This package contains the RPM shared libraries.
|
||||
|
@ -124,8 +136,8 @@ Requires: nss-devel
|
|||
Requires: libselinux-devel
|
||||
Requires: elfutils-libelf-devel
|
||||
Requires: popt-devel
|
||||
%if %{with lzma}
|
||||
Requires: lzma-devel >= 4.42
|
||||
%if %{with xz}
|
||||
Requires: xz-devel >= 4.999.8
|
||||
%endif
|
||||
%if %{with sqlite}
|
||||
Requires: sqlite-devel
|
||||
|
@ -148,7 +160,7 @@ Group: Development/Tools
|
|||
Requires: rpm = %{version}-%{release}
|
||||
Requires: elfutils >= 0.128 binutils
|
||||
Requires: findutils sed grep gawk diffutils file patch >= 2.5
|
||||
Requires: unzip gzip bzip2 cpio lzma
|
||||
Requires: unzip gzip bzip2 cpio lzma xz
|
||||
Requires: pkgconfig
|
||||
|
||||
%description build
|
||||
|
@ -184,8 +196,15 @@ that will manipulate RPM packages and databases.
|
|||
%patch2 -p1 -b .gstreamer-prov
|
||||
%patch3 -p1 -b .fedora-specspo
|
||||
|
||||
%patch300 -p1 -b .extra-prov
|
||||
%patch301 -p1 -b .niagara
|
||||
%patch200 -p1 -b .bugurl
|
||||
%patch201 -p1 -b .extra-prov
|
||||
%patch202 -p1 -b .pgp-subkey
|
||||
%patch203 -p1 -b .sign-passcheck
|
||||
%patch204 -p1 -b .rpmfc-data
|
||||
%patch205 -p1 -b .chmod-test
|
||||
%patch206 -p1 -b .python-types
|
||||
|
||||
%patch300 -p1 -b .niagara
|
||||
|
||||
%if %{with int_bdb}
|
||||
ln -s db-%{bdbver} db
|
||||
|
@ -212,6 +231,8 @@ export CPPFLAGS CFLAGS LDFLAGS
|
|||
%{?with_sqlite: --enable-sqlite3} \
|
||||
--with-lua \
|
||||
--with-selinux \
|
||||
--with-cap \
|
||||
--with-acl \
|
||||
--enable-python
|
||||
|
||||
make %{?_smp_mflags}
|
||||
|
@ -269,8 +290,7 @@ rm -rf $RPM_BUILD_ROOT
|
|||
|
||||
%if %{with check}
|
||||
%check
|
||||
# missing file in beta1 tarball causes two failures, permit failure for now
|
||||
make check ||:
|
||||
make check
|
||||
%endif
|
||||
|
||||
%post libs -p /sbin/ldconfig
|
||||
|
@ -295,7 +315,7 @@ exit 0
|
|||
%dir %{_sysconfdir}/rpm
|
||||
|
||||
%attr(0755, root, root) %dir /var/lib/rpm
|
||||
%attr(0644, rpm, rpm) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/lib/rpm/*
|
||||
%attr(0644, root, root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/lib/rpm/*
|
||||
%attr(0755, root, root) %dir %{rpmhome}
|
||||
|
||||
/bin/rpm
|
||||
|
@ -394,6 +414,54 @@ exit 0
|
|||
%doc doc/librpm/html/*
|
||||
|
||||
%changelog
|
||||
* Tue Dec 08 2009 Panu Matilainen <pmatilai@redhat.com> - 4.7.2-1
|
||||
- update to 4.7.2 (http://rpm.org/wiki/Releases/4.7.2)
|
||||
- fix posix chmod test to unbreak %%fixperms macro (#543035)
|
||||
- avoid looking into OpenPGP subkeys (#436812)
|
||||
- dont fail build on unrecognized non-executable files (#532489)
|
||||
- fix password check result when gpg is missing (#496754)
|
||||
- permit python to handle 64bit integer types from headers
|
||||
- all header integer types are unsigned, match this in python too
|
||||
- return python long objects where ints are not sufficient (#531243)
|
||||
- enable posix capability + acl verification support
|
||||
- add bugurl tag to have it across supported releases
|
||||
|
||||
* Thu Oct 08 2009 Panu Matilainen <pmatilai@redhat.com> - 4.7.1-3
|
||||
- use relative paths within db environment (related to #507309, #507309...)
|
||||
- remove db environment on close in chrooted operation (related to above)
|
||||
- initialize rpmlib earlier in rpm2cpio (#523260)
|
||||
- fix file dependency tag extension formatting (#523282)
|
||||
- fix duplicate dependency filtering on build (#490378)
|
||||
- permit absolute paths in file lists again (#521760)
|
||||
- use permissions 444 for all .debug files (#522194)
|
||||
- perl dep extractor heredoc parsing improvements (#524929)
|
||||
|
||||
* Mon Jul 27 2009 Bill Nottingham <notting@redhat.com> - 4.7.1-2
|
||||
- bump release
|
||||
|
||||
* Thu Jul 23 2009 Panu Matilainen <pmatilai@redhat.com> - 4.7.1-1
|
||||
- update to 4.7.1 (http://rpm.org/wiki/Releases/4.7.1)
|
||||
- fixes #461353, #475359, #502269, #508021, #509637, #511101
|
||||
- enable XZ support
|
||||
- fix source url
|
||||
|
||||
* Thu Jun 18 2009 Panu Matilainen <pmatilai@redhat.com> - 4.7.0-2
|
||||
- file classification tweaks for text files (#494817)
|
||||
- disable libmagic text token checks, it's way too error-prone
|
||||
- consistently classify all text as such and include description
|
||||
- fix find-lang --with-kde with KDE3 (#466009)
|
||||
- fix pgp pubkey signature tag parsing
|
||||
- don't mess up problem altNEVR in python ts.check() (#501068)
|
||||
- fix hardlink size calculation on build (#503020)
|
||||
- fix segfault in symlink fingerprinting (#505777)
|
||||
- fix invalid memory access causing bogus file dependency errors (#506323)
|
||||
- eliminate bogus leftover rpm:rpm rpmdb ownership
|
||||
|
||||
* Thu Apr 16 2009 Panu Matilainen <pmatilai@redhat.com> - 4.7.0-1
|
||||
- update to 4.7.0 final (http://rpm.org/wiki/Releases/4.7.0)
|
||||
- fixes #494049, #495429
|
||||
- dont permit test-suite failure anymore
|
||||
|
||||
* Thu Apr 09 2009 Panu Matilainen <pmatilai@redhat.com> - 4.7.0-0.rc1.1
|
||||
- update to 4.7.0-rc1
|
||||
- fixes #493157, #493777, #493696, #491388, #487597, #493162
|
||||
|
|
Loading…
Reference in New Issue