Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 21 May 2013 13:07:51 +0200 (CEST)
From:      Tijl Coosemans <tijl@FreeBSD.org>
To:        FreeBSD-gnats-submit@freebsd.org
Subject:   ports/178807: [patch] bsd.port.mk: let PORTDATA deal with empty directories
Message-ID:  <201305211107.r4LB7pmZ002430@kalimero.tijl.coosemans.org>
Resent-Message-ID: <201305211110.r4LBA04W084825@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         178807
>Category:       ports
>Synopsis:       [patch] bsd.port.mk: let PORTDATA deal with empty directories
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Tue May 21 11:10:00 UTC 2013
>Closed-Date:
>Last-Modified:
>Originator:     Tijl Coosemans
>Release:        FreeBSD 10.0-CURRENT i386
>Organization:
>Environment:
>Description:
I'm working on an update for lang/sdcc and would like to simplify
its pkg-plist in the process because at 1000+ lines and many
possible combinations of options it's a lot of work to maintain
compared to just having PORTDATA=* in the Makefile.

The problem however is that depending on options some of the
PORTDATA directories installed may be empty. Rather than dealing
with this in the port it would be nice if bsd.port.mk could handle
that automatically.

The attached patch accomplishes that for PORTDATA, PORTDOCS and
PORTEXAMPLES. The added commands are based on the ones for @dirrm.
>How-To-Repeat:
>Fix:

--- bsd.port.mk.emptydir.patch begins here ---
Index: bsd.port.mk
===================================================================
--- bsd.port.mk	(revision 318580)
+++ bsd.port.mk	(working copy)
@@ -5699,6 +5699,8 @@ add-plist-docs:
 .endfor
 	@${FIND} -P ${PORTDOCS:S/^/${DOCSDIR}\//} ! -type d 2>/dev/null | \
 		${SED} -ne 's,^${PREFIX}/,,p' >> ${TMPPLIST}
+	@${FIND} -P ${PORTDOCS:S/^/${DOCSDIR}\//} -type d -empty 2>/dev/null | \
+		${SED} -ne 's,^${PREFIX}/,@exec ${MKDIR} %D/,p' >> ${TMPPLIST}
 	@${FIND} -P -d ${PORTDOCS:S/^/${DOCSDIR}\//} -type d 2>/dev/null | \
 		${SED} -ne 's,^${PREFIX}/,@dirrm ,p' >> ${TMPPLIST}
 	@${ECHO_CMD} "@dirrm ${DOCSDIR_REL}" >> ${TMPPLIST}
@@ -5723,6 +5725,8 @@ add-plist-examples:
 .endfor
 	@${FIND} -P ${PORTEXAMPLES:S/^/${EXAMPLESDIR}\//} ! -type d 2>/dev/null | \
 		${SED} -ne 's,^${PREFIX}/,,p' >> ${TMPPLIST}
+	@${FIND} -P ${PORTEXAMPLES:S/^/${EXAMPLESDIR}\//} -type d -empty 2>/dev/null | \
+		${SED} -ne 's,^${PREFIX}/,@exec ${MKDIR} %D/,p' >> ${TMPPLIST}
 	@${FIND} -P -d ${PORTEXAMPLES:S/^/${EXAMPLESDIR}\//} -type d 2>/dev/null | \
 		${SED} -ne 's,^${PREFIX}/,@dirrm ,p' >> ${TMPPLIST}
 	@${ECHO_CMD} "@dirrm ${EXAMPLESDIR:S,^${PREFIX}/,,}" >> ${TMPPLIST}
@@ -5747,6 +5751,8 @@ add-plist-data:
 .endfor
 	@${FIND} -P ${PORTDATA:S/^/${DATADIR}\//} ! -type d 2>/dev/null | \
 		${SED} -ne 's,^${PREFIX}/,,p' >> ${TMPPLIST}
+	@${FIND} -P ${PORTDATA:S/^/${DATADIR}\//} -type d -empty 2>/dev/null | \
+		${SED} -ne 's,^${PREFIX}/,@exec ${MKDIR} %D/,p' >> ${TMPPLIST}
 	@${FIND} -P -d ${PORTDATA:S/^/${DATADIR}\//} -type d 2>/dev/null | \
 		${SED} -ne 's,^${PREFIX}/,@dirrm ,p' >> ${TMPPLIST}
 	@${ECHO_CMD} "@dirrm ${DATADIR:S,^${PREFIX}/,,}" >> ${TMPPLIST}
--- bsd.port.mk.emptydir.patch ends here ---

>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201305211107.r4LB7pmZ002430>