svn commit: r328073 - head/Mk

Baptiste Daroussin bapt at FreeBSD.org
Mon Sep 23 22:09:22 UTC 2013


Author: bapt
Date: Mon Sep 23 22:09:21 2013
New Revision: 328073
URL: http://svnweb.freebsd.org/changeset/ports/328073

Log:
  New target make check-orphans to help discovering the files in staged not present in plist
  
  Reviewed by:	bdrewery

Modified:
  head/Mk/bsd.stage.mk

Modified: head/Mk/bsd.stage.mk
==============================================================================
--- head/Mk/bsd.stage.mk	Mon Sep 23 22:06:34 2013	(r328072)
+++ head/Mk/bsd.stage.mk	Mon Sep 23 22:09:21 2013	(r328073)
@@ -98,3 +98,56 @@ makeplist: stage
 		-e "s,${DATADIR},%%DATADIR%%,g" \
 		-e "s,${PREFIX}/,,g" | ${GREP} -v "^@dirrmtry share/licenses" || ${TRUE}
 .endif
+
+.if !target(check-orphans)
+check-orphans: stage
+	@while read line; do \
+		cwd=${PREFIX} ; \
+		case $$line in \
+		@dirrm*) \
+			set -- $$line ; \
+			case $$2 in \
+			/*) ${ECHO_CMD} "dir $$2" ;; \
+			*) ${ECHO_CMD} "dir $$cwd/$$2" ;; \
+			esac ; \
+		;; \
+		@cwd) cwd=${PREFIX} ;; \
+		@cwd*) set -- $$line ; \
+			cwd=$$2 ;; \
+		@*) ;; \
+		/*) ${ECHO_CMD} $$line ;; \
+		*) ${ECHO_CMD} $$cwd/$$line ;; \
+		esac ; \
+	done < ${TMPPLIST} > ${WRKDIR}/.expanded-plist
+	@{ ${ECHO_CMD} "#mtree"; ${CAT} ${MTREE_FILE}; } | ${TAR} tf - | \
+		awk '{ sub(/^\.$$/, "", $$1); \
+		if ($$1 == "") print "${PREFIX}"; else print "${PREFIX}/"$$1; }' \
+		> ${WRKDIR}/.mtree
+	@a=${PREFIX}; \
+		while :; do \
+			a=$${a%/*} ; \
+			[ -z "$${a}" ] && break ; \
+			${ECHO_CMD} $${a} >> ${WRKDIR}/.mtree ; \
+		done
+	@${FIND} ${STAGEDIR} -type f -o -type l | ${SORT} | ${SED} -e "s,${STAGEDIR},,g" \
+		| while read line; do \
+			${GREP} -qw "^$${line}$$" ${WRKDIR}/.expanded-plist || { \
+			[ -n "$${line}" ] && ${ECHO_CMD} "$${line}" ; \
+		} ; \
+		done | ${SED} \
+		-e "s,${DOCSDIR},%%PORTDOCS%%%%DOCSDIR%%,g" \
+		-e "s,${EXAMPLESDIR},%%PORTEXAMPLES%%%%EXAMPLESDIR%%,g" \
+		-e "s,${DATADIR},%%DATADIR%%,g" \
+		-e "s,${PREFIX}/,,g" | ${GREP} -v "^share/licenses" || ${TRUE}
+	@${FIND} ${STAGEDIR} -type d | ${SED} -e "s,${STAGEDIR},,g" \
+		| while read line; do \
+		${GREP} -qw "^$${line}$$" ${WRKDIR}/.mtree || \
+		${GREP} -qw "dir\ $${line}$$" ${WRKDIR}/.expanded-plist || { \
+			[ -n "$${line}" ] && ${ECHO_CMD} "@dirrmtry $${line}"; \
+		} ; \
+		done | ${SORT} -r | ${SED} \
+		-e "s,\(.*\)${DOCSDIR},%%PORTDOCS%%\1%%DOCSDIR%%,g" \
+		-e "s,\(.*\)${EXAMPLESDIR},%%PORTEXAMPLES%%\1%%EXAMPLESDIR%%,g" \
+		-e "s,${DATADIR},%%DATADIR%%,g" \
+		-e "s,${PREFIX}/,,g" | ${GREP} -v "^@dirrmtry share/licenses" || ${TRUE}
+.endif


More information about the svn-ports-all mailing list