- Fix reading a memory right after the end of an allocated area
- Resolves: 1260248 - Add support for various types of dependencies to rpmdeps tool - Resolves: 1247092 - fix %%autopatch when patch do not exist - Resolves: 1244172
This commit is contained in:
parent
b73ac86cf5
commit
c235b191f3
36
rpm-4.13.0-autopatch-fix.patch
Normal file
36
rpm-4.13.0-autopatch-fix.patch
Normal file
@ -0,0 +1,36 @@
|
||||
From 73ea59e0d53503bb45d5eac9d9792127a6d04c23 Mon Sep 17 00:00:00 2001
|
||||
From: Thierry Vignaud <thierry.vignaud@gmail.com>
|
||||
Date: Thu, 17 Sep 2015 04:36:47 -0400
|
||||
Subject: [PATCH] fix %autopatch when patch do not exist
|
||||
|
||||
unlike Mageia's %apply_patches which inspired it, %autopatch continues
|
||||
when it fails to apply a patch because it doesn't exists. Eg:
|
||||
|
||||
+ /usr/bin/cat /home/tv/rpmbuild/SOURCES/test.patch2
|
||||
+ /usr/bin/patch -p1 -s
|
||||
/usr/bin/cat: /home/tv/rpmbuild/SOURCES/test.patch2: No such file or directory
|
||||
+ /usr/bin/cat /home/tv/rpmbuild/SOURCES/test.patch
|
||||
+ /usr/bin/patch -p1 -s
|
||||
|
||||
Let's catch that error
|
||||
|
||||
Signed-off-by: Lubos Kardos <lkardos@redhat.com>
|
||||
---
|
||||
macros.in | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/macros.in b/macros.in
|
||||
index 5dddede..5e0d17b 100644
|
||||
--- a/macros.in
|
||||
+++ b/macros.in
|
||||
@@ -1118,6 +1118,7 @@ done \
|
||||
|
||||
# Single patch application
|
||||
%apply_patch(qp:m:)\
|
||||
+test -f %{1} || exit 1 ; \
|
||||
%{uncompress:%{1}} | %{expand:%__scm_apply_%{__scm} %{-q} %{-p:-p%{-p*}} %{-m:-m%{-m*}}}
|
||||
|
||||
# Automatically apply all patches
|
||||
--
|
||||
1.9.3
|
||||
|
29
rpm-4.13.0-memory-error.patch
Normal file
29
rpm-4.13.0-memory-error.patch
Normal file
@ -0,0 +1,29 @@
|
||||
From 54f24ec5486bdacde9419466a2c27defaddf508e Mon Sep 17 00:00:00 2001
|
||||
From: Lubos Kardos <lkardos@redhat.com>
|
||||
Date: Mon, 21 Sep 2015 11:02:45 +0200
|
||||
Subject: [PATCH] Fix reading a memory right after the end of an allocated
|
||||
area.
|
||||
|
||||
The problem evinced itself when somebody tried to use the macro
|
||||
expansion on the string "%!". The problem was revealed by compiling
|
||||
with "--fsanitize=memory" (rhbz:#1260248).
|
||||
---
|
||||
rpmio/macro.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/rpmio/macro.c b/rpmio/macro.c
|
||||
index 46e6b87..4b3c41b 100644
|
||||
--- a/rpmio/macro.c
|
||||
+++ b/rpmio/macro.c
|
||||
@@ -993,7 +993,7 @@ expandMacro(MacroBuf mb, const char *src, size_t slen)
|
||||
chkexist = 0;
|
||||
switch ((c = *s)) {
|
||||
default: /* %name substitution */
|
||||
- while (strchr("!?", *s) != NULL) {
|
||||
+ while (*s != '\0' && strchr("!?", *s) != NULL) {
|
||||
switch(*s++) {
|
||||
case '!':
|
||||
negate = ((negate + 1) % 2);
|
||||
--
|
||||
1.9.3
|
||||
|
176
rpm-4.13.0-rpmdeps-weakdep-support.patch
Normal file
176
rpm-4.13.0-rpmdeps-weakdep-support.patch
Normal file
@ -0,0 +1,176 @@
|
||||
From 7a84b45c62cd25c4c68ad295ac5f360b1daebf6a Mon Sep 17 00:00:00 2001
|
||||
From: Lubos Kardos <lkardos@redhat.com>
|
||||
Date: Mon, 21 Sep 2015 14:13:22 +0200
|
||||
Subject: [PATCH] Add support for various types of dependencies to rpmdeps tool
|
||||
|
||||
Options added to rpmdeps tool:
|
||||
--recommends
|
||||
--suggests
|
||||
--supplements
|
||||
--enhances
|
||||
--conflicts
|
||||
--obsoletes
|
||||
---
|
||||
build/rpmfc.c | 30 ++++++++++++++++++++++++++++++
|
||||
build/rpmfc.h | 42 ++++++++++++++++++++++++++++++++++++++++++
|
||||
tools/rpmdeps.c | 36 ++++++++++++++++++++++++++++++++++++
|
||||
3 files changed, 108 insertions(+)
|
||||
|
||||
diff --git a/build/rpmfc.c b/build/rpmfc.c
|
||||
index 7565b18..3637f5c 100644
|
||||
--- a/build/rpmfc.c
|
||||
+++ b/build/rpmfc.c
|
||||
@@ -789,6 +789,36 @@ rpmds rpmfcRequires(rpmfc fc)
|
||||
return rpmfcDependencies(fc, RPMTAG_REQUIRENAME);
|
||||
}
|
||||
|
||||
+rpmds rpmfcRecommends(rpmfc fc)
|
||||
+{
|
||||
+ return rpmfcDependencies(fc, RPMTAG_RECOMMENDNAME);
|
||||
+}
|
||||
+
|
||||
+rpmds rpmfcSuggests(rpmfc fc)
|
||||
+{
|
||||
+ return rpmfcDependencies(fc, RPMTAG_SUGGESTNAME);
|
||||
+}
|
||||
+
|
||||
+rpmds rpmfcSupplements(rpmfc fc)
|
||||
+{
|
||||
+ return rpmfcDependencies(fc, RPMTAG_SUPPLEMENTNAME);
|
||||
+}
|
||||
+
|
||||
+rpmds rpmfcEnhances(rpmfc fc)
|
||||
+{
|
||||
+ return rpmfcDependencies(fc, RPMTAG_ENHANCENAME);
|
||||
+}
|
||||
+
|
||||
+rpmds rpmfcConflicts(rpmfc fc)
|
||||
+{
|
||||
+ return rpmfcDependencies(fc, RPMTAG_CONFLICTNAME);
|
||||
+}
|
||||
+
|
||||
+rpmds rpmfcObsoletes(rpmfc fc)
|
||||
+{
|
||||
+ return rpmfcDependencies(fc, RPMTAG_OBSOLETENAME);
|
||||
+}
|
||||
+
|
||||
static rpmRC rpmfcApplyInternal(rpmfc fc)
|
||||
{
|
||||
const char * s;
|
||||
diff --git a/build/rpmfc.h b/build/rpmfc.h
|
||||
index bd1c660..dae8ea5 100644
|
||||
--- a/build/rpmfc.h
|
||||
+++ b/build/rpmfc.h
|
||||
@@ -107,6 +107,48 @@ rpmds rpmfcProvides(rpmfc fc);
|
||||
rpmds rpmfcRequires(rpmfc fc);
|
||||
|
||||
/** \ingroup rpmfc
|
||||
+ * Retrieve file classification recommends
|
||||
+ * @param fc file classifier
|
||||
+ * @return rpmds dependency set of fc recommends
|
||||
+ */
|
||||
+rpmds rpmfcRecommends(rpmfc fc);
|
||||
+
|
||||
+/** \ingroup rpmfc
|
||||
+ * Retrieve file classification suggests
|
||||
+ * @param fc file classifier
|
||||
+ * @return rpmds dependency set of fc suggests
|
||||
+ */
|
||||
+rpmds rpmfcSuggests(rpmfc fc);
|
||||
+
|
||||
+/** \ingroup rpmfc
|
||||
+ * Retrieve file classification supplements
|
||||
+ * @param fc file classifier
|
||||
+ * @return rpmds dependency set of fc supplements
|
||||
+ */
|
||||
+rpmds rpmfcSupplements(rpmfc fc);
|
||||
+
|
||||
+/** \ingroup rpmfc
|
||||
+ * Retrieve file classification enhances
|
||||
+ * @param fc file classifier
|
||||
+ * @return rpmds dependency set of fc enhances
|
||||
+ */
|
||||
+rpmds rpmfcEnhances(rpmfc fc);
|
||||
+
|
||||
+/** \ingroup rpmfc
|
||||
+ * Retrieve file classification conflicts
|
||||
+ * @param fc file classifier
|
||||
+ * @return rpmds dependency set of fc conflicts
|
||||
+ */
|
||||
+rpmds rpmfcConflicts(rpmfc fc);
|
||||
+
|
||||
+/** \ingroup rpmfc
|
||||
+ * Retrieve file classification obsoletes
|
||||
+ * @param fc file classifier
|
||||
+ * @return rpmds dependency set of fc obsoletes
|
||||
+ */
|
||||
+rpmds rpmfcObsoletes(rpmfc fc);
|
||||
+
|
||||
+/** \ingroup rpmfc
|
||||
* Retrieve file classification dependencies
|
||||
* @param fc file classifier
|
||||
* @param tagN name tag of the wanted dependency
|
||||
diff --git a/tools/rpmdeps.c b/tools/rpmdeps.c
|
||||
index c3112eb..ff785f0 100644
|
||||
--- a/tools/rpmdeps.c
|
||||
+++ b/tools/rpmdeps.c
|
||||
@@ -14,6 +14,18 @@ static int print_provides;
|
||||
|
||||
static int print_requires;
|
||||
|
||||
+static int print_recommends;
|
||||
+
|
||||
+static int print_suggests;
|
||||
+
|
||||
+static int print_supplements;
|
||||
+
|
||||
+static int print_enhances;
|
||||
+
|
||||
+static int print_conflicts;
|
||||
+
|
||||
+static int print_obsoletes;
|
||||
+
|
||||
static void rpmdsPrint(const char * msg, rpmds ds, FILE * fp)
|
||||
{
|
||||
if (fp == NULL) fp = stderr;
|
||||
@@ -36,6 +48,18 @@ static struct poptOption optionsTable[] = {
|
||||
NULL, NULL },
|
||||
{ "requires", 'R', POPT_ARG_VAL, &print_requires, -1,
|
||||
NULL, NULL },
|
||||
+ { "recommends", '\0', POPT_ARG_VAL, &print_recommends, -1,
|
||||
+ NULL, NULL },
|
||||
+ { "suggests", '\0', POPT_ARG_VAL, &print_suggests, -1,
|
||||
+ NULL, NULL },
|
||||
+ { "supplements", '\0', POPT_ARG_VAL, &print_supplements, -1,
|
||||
+ NULL, NULL },
|
||||
+ { "enhances", '\0', POPT_ARG_VAL, &print_enhances, -1,
|
||||
+ NULL, NULL },
|
||||
+ { "conflicts", '\0', POPT_ARG_VAL, &print_conflicts, -1,
|
||||
+ NULL, NULL },
|
||||
+ { "obsoletes", '\0', POPT_ARG_VAL, &print_obsoletes, -1,
|
||||
+ NULL, NULL },
|
||||
|
||||
POPT_AUTOALIAS
|
||||
POPT_AUTOHELP
|
||||
@@ -89,6 +113,18 @@ main(int argc, char *argv[])
|
||||
rpmdsPrint(NULL, rpmfcProvides(fc), stdout);
|
||||
if (print_requires)
|
||||
rpmdsPrint(NULL, rpmfcRequires(fc), stdout);
|
||||
+ if (print_recommends)
|
||||
+ rpmdsPrint(NULL, rpmfcRecommends(fc), stdout);
|
||||
+ if (print_suggests)
|
||||
+ rpmdsPrint(NULL, rpmfcSuggests(fc), stdout);
|
||||
+ if (print_supplements)
|
||||
+ rpmdsPrint(NULL, rpmfcSupplements(fc), stdout);
|
||||
+ if (print_enhances)
|
||||
+ rpmdsPrint(NULL, rpmfcEnhances(fc), stdout);
|
||||
+ if (print_conflicts)
|
||||
+ rpmdsPrint(NULL, rpmfcConflicts(fc), stdout);
|
||||
+ if (print_obsoletes)
|
||||
+ rpmdsPrint(NULL, rpmfcObsoletes(fc), stdout);
|
||||
|
||||
ec = 0;
|
||||
|
||||
--
|
||||
1.9.3
|
||||
|
10
rpm.spec
10
rpm.spec
@ -29,7 +29,7 @@
|
||||
Summary: The RPM package management system
|
||||
Name: rpm
|
||||
Version: %{rpmver}
|
||||
Release: %{?snapver:0.%{snapver}.}6%{?dist}
|
||||
Release: %{?snapver:0.%{snapver}.}7%{?dist}
|
||||
Group: System Environment/Base
|
||||
Url: http://www.rpm.org/
|
||||
Source0: http://rpm.org/releases/rpm-4.12.x/%{name}-%{srcver}.tar.bz2
|
||||
@ -56,6 +56,9 @@ Patch100: rpm-4.13.0-rc1-Fix-new-richdep-syntax.patch
|
||||
Patch101: rpm-4.13.0-selinux--permissive-scriptlets.patch
|
||||
Patch102: rpm-4.13.0-non-numeric-epoch.patch
|
||||
Patch103: rpm-4.13.0-wrong-version-macro.patch
|
||||
Patch104: rpm-4.13.0-memory-error.patch
|
||||
Patch105: rpm-4.13.0-rpmdeps-weakdep-support.patch
|
||||
Patch106: rpm-4.13.0-autopatch-fix.patch
|
||||
|
||||
# These are not yet upstream
|
||||
Patch302: rpm-4.7.1-geode-i686.patch
|
||||
@ -558,6 +561,11 @@ exit 0
|
||||
%doc doc/librpm/html/*
|
||||
|
||||
%changelog
|
||||
* Fri Oct 23 2015 Lubos Kardos <lkardos@redhat.com> - 4.13-0.rc1.7
|
||||
- Fix reading a memory right after the end of an allocated area (#1260248)
|
||||
- Add support for various types of dependencies to rpmdeps tool (#1247092)
|
||||
- fix %%autopatch when patch do not exist (#1244172)
|
||||
|
||||
* Fri Oct 23 2015 Lubos Kardos <lkardos@redhat.com> - 4.13-0.rc1.6
|
||||
- If %%_wrong_version_format_terminate_build is 1 then terminate build in case
|
||||
that version format is wrong i. e. epoch is not unsigned integer or version
|
||||
|
Loading…
Reference in New Issue
Block a user