Radish alpha
H
HardenedBSD Package Manager
Radicle
Git (anonymous pull)
Log in to clone via SSH
Only play with fflags if the OS supports it
Baptiste Daroussin committed 10 years ago
commit 9d1aad7950325eedb22af138da63a3f70ccdc4c5
parent 92e9f3ca02387d98813b34f25755b49c2ecdc438
1 file changed +4 -0
modified libpkg/pkg_add.c
@@ -533,10 +533,12 @@ pkg_extract_finalize(struct pkg *pkg)
		 */
		if (fstatat(pkg->rootfd, RELATIVE_PATH(fto), &st,
		    AT_SYMLINK_NOFOLLOW) != -1) {
+
#ifdef HAVE_CHFLAGSAT
			if (st.st_flags & NOCHANGESFLAGS) {
				chflagsat(pkg->rootfd, RELATIVE_PATH(fto), 0,
				    AT_SYMLINK_NOFOLLOW);
			}
+
#endif
			unlinkat(pkg->rootfd, RELATIVE_PATH(fto), 0);
		}
		if (renameat(pkg->rootfd, RELATIVE_PATH(f->temppath),
@@ -546,6 +548,7 @@ pkg_extract_finalize(struct pkg *pkg)
			return (EPKG_FATAL);
		}

+
#ifdef HAVE_CHFLAGSAT
		if (f->fflags != 0) {
			if (chflagsat(pkg->rootfd, RELATIVE_PATH(fto),
			    f->fflags, AT_SYMLINK_NOFOLLOW) == -1) {
@@ -554,6 +557,7 @@ pkg_extract_finalize(struct pkg *pkg)
				return (EPKG_FATAL);
			}
		}
+
#endif
	}

	while (pkg_dirs(pkg, &d) == EPKG_OK) {