mirror of
https://github.com/void-linux/void-packages.git
synced 2025-07-28 08:22:56 +02:00
xbps: add patch from git master to fix a regression.
This commit is contained in:
parent
b03fe59370
commit
b39d1ce041
2 changed files with 78 additions and 1 deletions
|
@ -0,0 +1,77 @@
|
||||||
|
From ecd15b7d57e1d271aa95581e97f1a6b11cd57235 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Juan RP <xtraeme@gmail.com>
|
||||||
|
Date: Fri, 5 Jul 2013 10:09:32 +0200
|
||||||
|
Subject: [PATCH] Check if an update for conflicting pkg is in the transaction
|
||||||
|
for revdeps in vpkgs.
|
||||||
|
|
||||||
|
---
|
||||||
|
NEWS | 3 +++
|
||||||
|
lib/transaction_revdeps.c | 21 +++++++++++++++++++--
|
||||||
|
2 files changed, 22 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/NEWS b/NEWS
|
||||||
|
index ec6f96c..024ef75 100644
|
||||||
|
--- a/NEWS
|
||||||
|
+++ b/NEWS
|
||||||
|
@@ -1,5 +1,8 @@
|
||||||
|
xbps-0.26 (???):
|
||||||
|
|
||||||
|
+ * Do not abort transaction if updates for conflicting packages are in
|
||||||
|
+ the transaction due to checks of reverse dependencies in virtual packages.
|
||||||
|
+
|
||||||
|
xbps-0.25 (2013-07-05):
|
||||||
|
|
||||||
|
* Added support to validate reverse dependencies when updating packages.
|
||||||
|
diff --git a/lib/transaction_revdeps.c b/lib/transaction_revdeps.c
|
||||||
|
index 316d937..b21c5b5 100644
|
||||||
|
--- lib/transaction_revdeps.c
|
||||||
|
+++ lib/transaction_revdeps.c
|
||||||
|
@@ -45,12 +45,13 @@ check_virtual_pkgs(struct xbps_handle *xhp,
|
||||||
|
xbps_dictionary_t trans_pkgd,
|
||||||
|
xbps_dictionary_t rev_pkgd)
|
||||||
|
{
|
||||||
|
- xbps_array_t provides, rundeps, mdeps;
|
||||||
|
+ xbps_array_t unsorted, provides, rundeps, mdeps;
|
||||||
|
const char *pkgver, *revpkgver, *pkgpattern;
|
||||||
|
- char *pkgname, *vpkgname, *vpkgver, *str;
|
||||||
|
+ char *pkgname, *pkgdepname, *vpkgname, *vpkgver, *str;
|
||||||
|
unsigned int i, x;
|
||||||
|
bool matched = false;
|
||||||
|
|
||||||
|
+ unsorted = xbps_dictionary_get(xhp->transd, "unsorted_deps");
|
||||||
|
provides = xbps_dictionary_get(trans_pkgd, "provides");
|
||||||
|
for (i = 0; i < xbps_array_count(provides); i++) {
|
||||||
|
char *tmp = NULL;
|
||||||
|
@@ -77,6 +78,21 @@ check_virtual_pkgs(struct xbps_handle *xhp,
|
||||||
|
if (xbps_pkgpattern_match(vpkgver, pkgpattern))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
+ /*
|
||||||
|
+ * Installed package conflicts with package
|
||||||
|
+ * in transaction being updated, check
|
||||||
|
+ * if a new version of this conflicting package
|
||||||
|
+ * is in the transaction.
|
||||||
|
+ */
|
||||||
|
+ xbps_dictionary_get_cstring_nocopy(trans_pkgd, "pkgver", &pkgver);
|
||||||
|
+ pkgdepname = xbps_pkg_name(pkgver);
|
||||||
|
+ assert(pkgdepname);
|
||||||
|
+ if (xbps_find_pkg_in_array(unsorted, pkgdepname)) {
|
||||||
|
+ free(pkgdepname);
|
||||||
|
+ continue;
|
||||||
|
+ }
|
||||||
|
+ free(pkgdepname);
|
||||||
|
+
|
||||||
|
mdeps = xbps_dictionary_get(xhp->transd, "missing_deps");
|
||||||
|
xbps_dictionary_get_cstring_nocopy(trans_pkgd, "pkgver", &pkgver);
|
||||||
|
xbps_dictionary_get_cstring_nocopy(rev_pkgd, "pkgver", &revpkgver);
|
||||||
|
@@ -87,6 +103,7 @@ check_virtual_pkgs(struct xbps_handle *xhp,
|
||||||
|
free(str);
|
||||||
|
matched = true;
|
||||||
|
}
|
||||||
|
+ free(vpkgname);
|
||||||
|
free(vpkgver);
|
||||||
|
}
|
||||||
|
return matched;
|
||||||
|
--
|
||||||
|
1.8.3
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
# Template file for 'xbps'
|
# Template file for 'xbps'
|
||||||
pkgname=xbps
|
pkgname=xbps
|
||||||
version=0.25
|
version=0.25
|
||||||
revision=1
|
revision=2
|
||||||
build_style=configure
|
build_style=configure
|
||||||
configure_args="--prefix=/usr --sysconfdir=/etc --enable-static --enable-debug --enable-tests"
|
configure_args="--prefix=/usr --sysconfdir=/etc --enable-static --enable-debug --enable-tests"
|
||||||
hostmakedepends="which pkg-config"
|
hostmakedepends="which pkg-config"
|
||||||
|
|
Loading…
Add table
Reference in a new issue