From b2bc51d6471988d202f5997a5806e503ca4b8cfb Mon Sep 17 00:00:00 2001 From: Juan RP Date: Sat, 2 Feb 2013 18:17:08 +0100 Subject: [PATCH] xbps: merge proper fix for pkg conflicts against themselves. --- ...d543dfae2383745d4789e51874a33ef6b717.patch | 63 +++++++++++++++++++ srcpkgs/xbps/template | 2 +- 2 files changed, 64 insertions(+), 1 deletion(-) create mode 100644 srcpkgs/xbps/patches/0004-Properly-fix-fa1d543dfae2383745d4789e51874a33ef6b717.patch diff --git a/srcpkgs/xbps/patches/0004-Properly-fix-fa1d543dfae2383745d4789e51874a33ef6b717.patch b/srcpkgs/xbps/patches/0004-Properly-fix-fa1d543dfae2383745d4789e51874a33ef6b717.patch new file mode 100644 index 00000000000..50a3243ace5 --- /dev/null +++ b/srcpkgs/xbps/patches/0004-Properly-fix-fa1d543dfae2383745d4789e51874a33ef6b717.patch @@ -0,0 +1,63 @@ +From 0812ef2c354d3dc1c1d99d7e4120c1905829f83f Mon Sep 17 00:00:00 2001 +From: Juan RP +Date: Sat, 2 Feb 2013 18:15:00 +0100 +Subject: [PATCH] Properly fix fa1d543dfae2383745d4789e51874a33ef6b7179. + +--- + lib/package_conflicts.c | 15 ++++++++++----- + 1 file changed, 10 insertions(+), 5 deletions(-) + +diff --git a/lib/package_conflicts.c b/lib/package_conflicts.c +index bae522d..d66b8b3 100644 +--- lib/package_conflicts.c ++++ lib/package_conflicts.c +@@ -40,7 +40,7 @@ xbps_pkg_find_conflicts(struct xbps_handle *xhp, + prop_dictionary_t pkgd; + prop_object_t obj; + prop_object_iterator_t iter; +- const char *cfpkg, *repopkgver, *pkgver; ++ const char *cfpkg, *repopkgver, *pkgver, *pkgname, *repopkgname; + char *buf; + + pkg_cflicts = prop_dictionary_get(pkg_repod, "conflicts"); +@@ -49,6 +49,7 @@ xbps_pkg_find_conflicts(struct xbps_handle *xhp, + + trans_cflicts = prop_dictionary_get(xhp->transd, "conflicts"); + prop_dictionary_get_cstring_nocopy(pkg_repod, "pkgver", &repopkgver); ++ prop_dictionary_get_cstring_nocopy(pkg_repod, "pkgname", &repopkgname); + + iter = prop_array_iterator(pkg_cflicts); + assert(iter); +@@ -62,10 +63,12 @@ xbps_pkg_find_conflicts(struct xbps_handle *xhp, + if ((pkgd = xbps_pkgdb_get_pkg(xhp, cfpkg)) || + (pkgd = xbps_pkgdb_get_virtualpkg(xhp, cfpkg))) { + prop_dictionary_get_cstring_nocopy(pkgd, +- "pkgver", &pkgver); +- if (strcmp(pkgver, repopkgver) == 0) ++ "pkgname", &pkgname); ++ if (strcmp(pkgname, repopkgname) == 0) + continue; + ++ prop_dictionary_get_cstring_nocopy(pkgd, ++ "pkgver", &pkgver); + xbps_dbg_printf(xhp, "found conflicting installed " + "pkg %s with pkg in transaction %s\n", pkgver, + repopkgver); +@@ -81,10 +84,12 @@ xbps_pkg_find_conflicts(struct xbps_handle *xhp, + if ((pkgd = xbps_find_pkg_in_array(unsorted, cfpkg)) || + (pkgd = xbps_find_virtualpkg_in_array(xhp, unsorted, cfpkg))) { + prop_dictionary_get_cstring_nocopy(pkgd, +- "pkgver", &pkgver); +- if (strcmp(pkgver, repopkgver) == 0) ++ "pkgname", &pkgname); ++ if (strcmp(pkgname, repopkgname) == 0) + continue; + ++ prop_dictionary_get_cstring_nocopy(pkgd, ++ "pkgver", &pkgver); + xbps_dbg_printf(xhp, "found conflicting pkgs in " + "transaction %s <-> %s\n", pkgver, repopkgver); + buf = xbps_xasprintf("%s conflicts with " +-- +1.8.1.1 + diff --git a/srcpkgs/xbps/template b/srcpkgs/xbps/template index 73883d96031..816bba194e3 100644 --- a/srcpkgs/xbps/template +++ b/srcpkgs/xbps/template @@ -1,7 +1,7 @@ # Template file for 'xbps' pkgname=xbps version=0.20 -revision=5 +revision=6 build_style=configure configure_args="--prefix=/ --exec-prefix=/usr --sbindir=/usr/sbin --enable-tests --enable-static --enable-debug"