90879abe0f
Merged from master.
See 10075c28e5
33 lines
1.1 KiB
Diff
33 lines
1.1 KiB
Diff
commit 10075c28e5065e948cac707285681f6541759873
|
|
Author: Juan RP <xtraeme@gmail.com>
|
|
Date: Sat Jan 4 13:01:28 2020 +0100
|
|
|
|
libxbps: ignore indirect broken revdeps while updating xbps.
|
|
|
|
This fixes the long standing issue that has been a plague for
|
|
a long time.
|
|
|
|
See the test case for more information.
|
|
|
|
diff --git a/lib/transaction_ops.c b/lib/transaction_ops.c
|
|
index 3d3fc36a..03725ee3 100644
|
|
--- lib/transaction_ops.c
|
|
+++ lib/transaction_ops.c
|
|
@@ -271,6 +271,17 @@ xbps_autoupdate(struct xbps_handle *xhp)
|
|
if (rv && rv != ENOENT && rv != EEXIST && rv != ENODEV)
|
|
return -1;
|
|
}
|
|
+ /*
|
|
+ * Set XBPS_FLAG_FORCE_REMOVE_REVDEPS to ignore broken
|
|
+ * reverse dependencies in xbps_transaction_prepare().
|
|
+ *
|
|
+ * This won't skip revdeps of the xbps pkg, rather other
|
|
+ * packages in rootdir that could be broken indirectly.
|
|
+ *
|
|
+ * A sysup transaction after updating xbps should fix them
|
|
+ * again.
|
|
+ */
|
|
+ xhp->flags |= XBPS_FLAG_FORCE_REMOVE_REVDEPS;
|
|
return 1;
|
|
} else if (rv == ENOENT || rv == EEXIST || rv == ENODEV) {
|
|
/* no update */
|