ports/184289: Enhance make makeplist
Mathieu Arnold
mat at FreeBSD.org
Mon Nov 25 18:10:00 UTC 2013
>Number: 184289
>Category: ports
>Synopsis: Enhance make makeplist
>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: Mon Nov 25 18:10:00 UTC 2013
>Closed-Date:
>Last-Modified:
>Originator: Mathieu Arnold
>Release: FreeBSD 9.2-RELEASE i386
>Organization:
Absolight
>Environment:
System: FreeBSD aragorn.in.absolight.net 9.2-RELEASE FreeBSD 9.2-RELEASE #0 r255898: Fri Sep 27 03:52:52 UTC 2013 root at bake.isc.freebsd.org:/usr/obj/usr/src/sys/GENERIC i386
>Description:
make makeplist takes into account DATADIR, EXAMPLESDIR and DOCSDIR, let's add
some other to the lot.
I did not change the way DOCS and EXAMPLES are done because they add other
stuffs.
Also, I wasn't sure where to remove bits from PLIST_SUB, so I put it in
bsd.stage.mk.
>How-To-Repeat:
Without:
$ make makeplist
lib/perl5/5.16/man/man3/DateTime.3.gz
lib/perl5/5.16/man/man3/DateTime::Duration.3.gz
lib/perl5/5.16/man/man3/DateTime::Infinite.3.gz
lib/perl5/5.16/man/man3/DateTime::LeapSecond.3.gz
lib/perl5/site_perl/5.16/mach/DateTime.pm
lib/perl5/site_perl/5.16/mach/DateTime/Duration.pm
lib/perl5/site_perl/5.16/mach/DateTime/Helpers.pm
...
@dirrmtry lib/perl5/5.16/man/man3
@dirrmtry lib/perl5/5.16/man
...
$ make makeplist
etc/maradns/example_csv2
etc/mararc.sample
...
@dirrmtry etc/maradns
$
With:
$ PORTSDIR=/home/mat/freebsd/ports/ make makeplist
%%PERL5_MAN3%%/DateTime.3.gz
%%PERL5_MAN3%%/DateTime::Duration.3.gz
%%PERL5_MAN3%%/DateTime::Infinite.3.gz
%%PERL5_MAN3%%/DateTime::LeapSecond.3.gz
%%SITE_PERL%%/%%PERL_ARCH%%/DateTime.pm
%%SITE_PERL%%/%%PERL_ARCH%%/DateTime/Duration.pm
%%SITE_PERL%%/%%PERL_ARCH%%/DateTime/Helpers.pm
...
@dirrmtry %%PERL5_MAN3%%
@dirrmtry lib/perl5/%%PERL_VER%%/man
$ PORTSDIR=/home/mat/work/freebsd/ports-full/ make makeplist
%%ETCDIR%%/example_csv2
etc/mararc.sample
...
@dirrmtry %%ETCDIR%%
$
>Fix:
--- stage_plist_sub.mk begins here ---
Index: Mk/Scripts/check-stagedir.sh
===================================================================
--- Mk/Scripts/check-stagedir.sh (revision 334863)
+++ Mk/Scripts/check-stagedir.sh (working copy)
@@ -24,7 +24,7 @@
# validate environment
envfault=
for i in STAGEDIR PREFIX LOCALBASE WRKDIR WRKSRC MTREE_FILE \
- TMPPLIST DATADIR DOCSDIR EXAMPLESDIR
+ TMPPLIST DOCSDIR EXAMPLESDIR PLIST_SUB
do
if ! ( eval ": \${${i}?}" ) 2>/dev/null ; then
envfault="${envfault}${envfault:+" "}${i}"
@@ -93,6 +93,19 @@
done
} > ${WRKDIR}/.mtree
+for i in $PLIST_SUB
+do
+ echo $i
+done | awk -F= '{print length($2), $1, $2 | "sort -nr" }' | while read l k v
+do
+ if [ $l -ne 0 ]
+ then
+ echo "s,${v},%%${k}%%,g;"
+ fi
+done > ${WRKDIR}/.plist_sub
+
+sed_plist_sub=`cat ${WRKDIR}/.plist_sub`
+
### HANDLE FILES
find ${STAGEDIR} -type f -o -type l | sort | sed -e "s,${STAGEDIR},," >${WRKDIR}/.staged-files
comm -13 ${WRKDIR}/.plist-files ${WRKDIR}/.staged-files \
@@ -99,8 +112,8 @@
| 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" || [ $? = 1 ]
+ -e "s,${PREFIX}/,,g" \
+ -e "${sed_plist_sub}" | grep -v "^share/licenses" || [ $? = 1 ]
### HANDLE DIRS
cat ${WRKDIR}/.plist-dirs-unsorted ${WRKDIR}/.mtree | sort -u >${WRKDIR}/.traced-dirs
@@ -109,7 +122,7 @@
| 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" \
+ -e "${sed_plist_sub}" \
-e 's,^, at dirrmtry ,' \
-e 's, at dirrmtry \(/.*\), at unexec rmdir >/dev/null 2>\&1 \1 || :,' | grep -v "^@dirrmtry share/licenses" || [ $? = 1 ]
Index: Mk/bsd.stage.mk
===================================================================
--- Mk/bsd.stage.mk (revision 334863)
+++ Mk/bsd.stage.mk (working copy)
@@ -19,9 +19,9 @@
WRKSRC=${WRKSRC} \
MTREE_FILE=${MTREE_FILE} \
TMPPLIST=${TMPPLIST} \
- DATADIR=${DATADIR} \
DOCSDIR=${DOCSDIR} \
- EXAMPLESDIR=${EXAMPLESDIR}
+ EXAMPLESDIR=${EXAMPLESDIR} \
+ PLIST_SUB="${PLIST_SUB:NPREFIX=*:NLOCALBASE=*:NOSREL=*:NLIB32DIR=*:NDOCSDIR=*:NEXAMPLESDIR=*}"
.if !target(stage-dir)
stage-dir:
--- stage_plist_sub.mk ends here ---
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list