xbps: add patch to not remove non-symlinks when purging alternatives
This commit is contained in:
parent
8ac3909c3a
commit
53a3c5db6c
2 changed files with 31 additions and 1 deletions
30
srcpkgs/xbps/patches/56ae190.patch
Normal file
30
srcpkgs/xbps/patches/56ae190.patch
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
commit 56ae1907b9d588910a5e4712fdaa5784c1641f14
|
||||||
|
Author: Duncan Overbruck <mail@duncano.de>
|
||||||
|
Date: Tue Aug 13 12:53:01 2019 +0200
|
||||||
|
|
||||||
|
lib/package_alternatives.c: check if alternative is a symlink before removing it
|
||||||
|
|
||||||
|
diff --git lib/package_alternatives.c lib/package_alternatives.c
|
||||||
|
index 9b4d0027..5e4f2b36 100644
|
||||||
|
--- lib/package_alternatives.c
|
||||||
|
+++ lib/package_alternatives.c
|
||||||
|
@@ -111,6 +111,7 @@ static int
|
||||||
|
remove_symlinks(struct xbps_handle *xhp, xbps_array_t a, const char *grname)
|
||||||
|
{
|
||||||
|
unsigned int i, cnt;
|
||||||
|
+ struct stat st;
|
||||||
|
|
||||||
|
cnt = xbps_array_count(a);
|
||||||
|
for (i = 0; i < cnt; i++) {
|
||||||
|
@@ -132,6 +133,11 @@ remove_symlinks(struct xbps_handle *xhp, xbps_array_t a, const char *grname)
|
||||||
|
} else {
|
||||||
|
lnk = xbps_xasprintf("%s%s", xhp->rootdir, l);
|
||||||
|
}
|
||||||
|
+ if (lstat(lnk, &st) == -1 || !S_ISLNK(st.st_mode)) {
|
||||||
|
+ free(lnk);
|
||||||
|
+ free(l);
|
||||||
|
+ continue;
|
||||||
|
+ }
|
||||||
|
xbps_set_cb_state(xhp, XBPS_STATE_ALTGROUP_LINK_REMOVED, 0, NULL,
|
||||||
|
"Removing '%s' alternatives group symlink: %s", grname, l);
|
||||||
|
unlink(lnk);
|
|
@ -1,7 +1,7 @@
|
||||||
# Template file for 'xbps'
|
# Template file for 'xbps'
|
||||||
pkgname=xbps
|
pkgname=xbps
|
||||||
version=0.56
|
version=0.56
|
||||||
revision=6
|
revision=7
|
||||||
bootstrap=yes
|
bootstrap=yes
|
||||||
build_style=configure
|
build_style=configure
|
||||||
short_desc="XBPS package system utilities"
|
short_desc="XBPS package system utilities"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue