aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormat <mat@FreeBSD.org>2016-10-29 17:30:14 +0800
committermat <mat@FreeBSD.org>2016-10-29 17:30:14 +0800
commit2534dcae9401a97fe13103fd6c5ada5a75e88837 (patch)
tree206391c49d2d2e1ae3b991e829e691c2a24541ce
parentb2a7583055493029a7d0154e0d0238e135d2c59f (diff)
downloadfreebsd-ports-gnome-2534dcae9401a97fe13103fd6c5ada5a75e88837.tar.gz
freebsd-ports-gnome-2534dcae9401a97fe13103fd6c5ada5a75e88837.tar.zst
freebsd-ports-gnome-2534dcae9401a97fe13103fd6c5ada5a75e88837.zip
Fix file modes after extracting.
Some port's archives contains files modes that are a bit too restrictive for some usage. For example: BUILD_DEPENDS= ${NONEXISTENT}:foo/bar:configure When building as a regular user, dependencies are installed/built as root, so if the archive contains files that have a mode of, say, 600, they will not be readable by the port requesting the dependency. This will also fix broken distribution files where directories don't have the executable bit on. OSVERSION 1100077 is after base r283997: Change directory permissions in pre-order. In this order, it won't try to recurse into a directory for which it doesn't have permission, before changing that permission. This follows an existing behavior in other BSDs, linux, OS X. PR: 213574 Submitted by: mat Exp-run by: antoine Sponsored by: Absolight
-rw-r--r--Mk/bsd.port.mk12
-rw-r--r--misc/compat4x/Makefile2
-rw-r--r--security/bugs/Makefile9
-rw-r--r--x11/fluxbg/Makefile9
4 files changed, 29 insertions, 3 deletions
diff --git a/Mk/bsd.port.mk b/Mk/bsd.port.mk
index 5ae2a0b4e086..ae88477e3dd5 100644
--- a/Mk/bsd.port.mk
+++ b/Mk/bsd.port.mk
@@ -3830,6 +3830,17 @@ checksum: fetch
.endif
.endif
+# Some port's archives contains files modes that are a bit too restrictive for
+# some usage. For example:
+# BUILD_DEPENDS= ${NONEXISTENT}:foo/bar:configure
+# When building as a regular user, dependencies are installed/built as root, so
+# if the archive contains files that have a mode of, say, 600, they will not be
+# readable by the port requesting the dependency.
+# This will also fix broken distribution files where directories don't have the
+# executable bit on.
+extract-fixup-modes:
+ @${CHMOD} -R u+w,a+rX ${WRKDIR}
+
################################################################
# The special package-building targets
# You probably won't need to touch these
@@ -5201,6 +5212,7 @@ _EXTRACT_SEQ= 010:check-build-conflicts 050:extract-message 100:checksum \
150:extract-depends 190:clean-wrkdir 200:${EXTRACT_WRKDIR} \
300:pre-extract 450:pre-extract-script 500:do-extract \
700:post-extract 850:post-extract-script \
+ 999:extract-fixup-modes \
${_OPTIONS_extract} ${_USES_extract} ${_SITES_extract}
_PATCH_DEP= extract
_PATCH_SEQ= 050:ask-license 100:patch-message 150:patch-depends \
diff --git a/misc/compat4x/Makefile b/misc/compat4x/Makefile
index 16413be46b48..f9ec6f4ef12f 100644
--- a/misc/compat4x/Makefile
+++ b/misc/compat4x/Makefile
@@ -74,7 +74,7 @@ COMPAT4X_MASTER_SITES= LOCAL/kris/${COMPAT4X_ARCH}
do-extract:
@${MKDIR} ${WRKDIR}
- @(cd ${DISTDIR}/${DIST_SUBDIR} && ${CAT} ${DISTFILES} | ${TAR} -xzf - -C ${WRKDIR} )
+ @(cd ${DISTDIR}/${DIST_SUBDIR} && ${CAT} ${DISTFILES} | ${TAR} -xzf - -C ${WRKDIR} usr/lib/compat )
.if !defined(FORCE_VULNERABLE_OPENSSL)
.for lib in ${OPENSSL_LIBS}
@${RM} ${WRKSRC}/${lib}
diff --git a/security/bugs/Makefile b/security/bugs/Makefile
index 2835ae8e129f..bbbe19f014dc 100644
--- a/security/bugs/Makefile
+++ b/security/bugs/Makefile
@@ -55,4 +55,11 @@ post-install-DOCS-on:
@${MKDIR} ${STAGEDIR}${DOCSDIR}
@(cd ${WRKSRC}/doc && ${COPYTREE_SHARE} . ${STAGEDIR}${DOCSDIR})
-.include <bsd.port.mk>
+.include <bsd.port.pre.mk>
+
+.if ${OSVERSION} < 1100077
+post-extract:
+ ${CHMOD} +x ${WRKSRC}/lib/unix ${WRKSRC}/lib/windows
+.endif
+
+.include <bsd.port.post.mk>
diff --git a/x11/fluxbg/Makefile b/x11/fluxbg/Makefile
index 89b784f13a78..d552b0772d03 100644
--- a/x11/fluxbg/Makefile
+++ b/x11/fluxbg/Makefile
@@ -25,4 +25,11 @@ post-patch:
@${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|g ; \
s|/usr/X11R6|${LOCALBASE}|g' ${WRKSRC}/src/fluxbg_conf.cc
-.include <bsd.port.mk>
+.include <bsd.port.pre.mk>
+
+.if ${OSVERSION} < 1100077
+post-extract:
+ ${CHMOD} +x ${WRKSRC}/autom4te.cache
+.endif
+
+.include <bsd.port.post.mk>