summaryrefslogtreecommitdiffstats
path: root/meta/packages/rpm/files/missingok.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/packages/rpm/files/missingok.patch')
-rw-r--r--meta/packages/rpm/files/missingok.patch44
1 files changed, 44 insertions, 0 deletions
diff --git a/meta/packages/rpm/files/missingok.patch b/meta/packages/rpm/files/missingok.patch
new file mode 100644
index 0000000000..b008c9a02b
--- /dev/null
+++ b/meta/packages/rpm/files/missingok.patch
@@ -0,0 +1,44 @@
1Obey MISSINGOK flag for dependencies. Backport from rpm-4.4.7.
2
3Index: lib/depends.c
4===================================================================
5--- lib/depends.c.orig 2008-04-01 08:28:22.000000000 +0100
6+++ lib/depends.c 2008-09-04 14:09:58.000000000 +0100
7@@ -593,8 +593,13 @@
8 /*@=boundsread@*/
9
10 unsatisfied:
11- rc = 1; /* dependency is unsatisfied */
12- rpmdsNotify(dep, NULL, rc);
13+ if (rpmdsFlags(dep) & RPMSENSE_MISSINGOK) {
14+ rc = 0; /* dependency is unsatisfied, but just a hint. */
15+ rpmdsNotify(dep, _("(hint skipped)"), rc);
16+ } else {
17+ rc = 1; /* dependency is unsatisfied */
18+ rpmdsNotify(dep, NULL, rc);
19+ }
20
21 exit:
22 /*
23@@ -963,6 +968,8 @@
24 return "Requires(postun):";
25 if (f & RPMSENSE_SCRIPT_VERIFY)
26 return "Requires(verify):";
27+ if (f & RPMSENSE_MISSINGOK)
28+ return "Requires(hint):";
29 if (f & RPMSENSE_FIND_REQUIRES)
30 return "Requires(auto):";
31 return "Requires:";
32Index: lib/rpmlib.h
33===================================================================
34--- lib/rpmlib.h.orig 2008-09-03 22:22:43.000000000 +0100
35+++ lib/rpmlib.h 2008-09-04 15:17:17.000000000 +0100
36@@ -562,6 +562,8 @@
37 RPMSENSE_SCRIPT_POSTUN | \
38 RPMSENSE_SCRIPT_VERIFY | \
39 RPMSENSE_FIND_REQUIRES | \
40+ RPMSENSE_MISSINGOK | \
41+ RPMSENSE_STRONG | \
42 RPMSENSE_SCRIPT_PREP | \
43 RPMSENSE_SCRIPT_BUILD | \
44 RPMSENSE_SCRIPT_INSTALL | \