Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 11 Sep 2008 02:40:19 GMT
From:      Mark Linimon <linimon@FreeBSD.org>
To:        FreeBSD-gnats-submit@FreeBSD.org
Subject:   ports/127286: update to makeduds script to annotate why packages were skipped
Message-ID:  <200809110240.m8B2eJDi003513@freefall.freebsd.org>
Resent-Message-ID: <200809110250.m8B2o1be003794@freefall.freebsd.org>

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

>Number:         127286
>Category:       ports
>Synopsis:       update to makeduds script to annotate why packages were skipped
>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:   Thu Sep 11 02:50:01 UTC 2008
>Closed-Date:
>Last-Modified:
>Originator:     Mark Linimon
>Release:        FreeBSD 7.0-STABLE i386
>Organization:
FreeBSD
>Environment:
	N/A
>Description:
This change to the makeduds scripts annotates the duds file with _why_
each package is a dud.  What this allows us to do is to show users
accurate metadata for the ports tree as of the build date.

Although portsmon makes a close approximation of the pointyhat build
environment, there are some minor differences.  However, the worse
problem is that portsmon has no concept of what the exact state of the
ports tree was as of the pointyhat tree update.

Testing on an otherwise idle system (thunder5) shows no statistical
time difference (see below).  The existing files (duds, duds.orig, and
duds.full) are created exactly the same.

#
# modified script
#
#time /var/portbuild/scripts/makeduds.linimon i386 7 latest
#
#     1051.44 real      1680.76 user       349.51 sys
#     1041.52 real      1677.31 user       349.00 sys
#     1040.30 real      1677.66 user       348.42 sys
#     1042.21 real      1677.24 user       348.95 sys
#     1042.26 real      1676.58 user       350.42 sys
#
# unmodified script but hacked for thunder5 buildenv
#
#time /var/portbuild/scripts/makeduds.real i386 7 latest
#
#     1042.90 real      1678.05 user       349.47 sys
#     1042.93 real      1678.76 user       348.49 sys
#     1042.65 real      1678.18 user       348.84 sys
#     1041.75 real      1678.72 user       347.20 sys
#     1049.67 real      1679.85 user       349.34 sys
#     1042.27 real      1678.34 user       348.23 sys
#     1043.03 real      1678.23 user       348.50 sys
#

head -10 duds.verbose

9term-1.6.3_2|IGNORE: is marked as broken: Unfetchable
AutoIndex-1.5.4_1|IGNORE: cannot install: doesn't work with PHP version : 5 (Doesn't support PHP 5)
DIMES-0.4.3b|NO_PACKAGE: There is the string in properties.xml which system-depends
Ebnf2ps-1.05_3|IGNORE: is marked as broken: Does not build
FreeMat-mpi-3.6_2|IGNORE: no MPI support at the moment
Generic-NQS-3.50.9_2|IGNORE: is an interactive port
HeroesOfMightAndMagic-3_1|IGNORE: is an interactive port
InsightToolkit-2.8.1_1|NO_PACKAGE: License does not allow redistribution of binaries
NeTraMet-4.4_3|IGNORE: is marked as broken: Checksum mismatch
Ocsinventory-Agent-0.0.9.2_1|IGNORE: is an interactive port

head -10 duds.full.verbose

9term-1.6.3_2|IGNORE: is marked as broken: Unfetchable
AutoIndex-1.5.4_1|IGNORE: cannot install: doesn't work with PHP version : 5 (Doesn't support PHP 5)
DIMES-0.4.3b|NO_PACKAGE: There is the string in properties.xml which system-depends
Ebnf2ps-1.05_3|IGNORE: is marked as broken: Does not build
FreeCAD-0.6.472_2|IGNORE: dependent port
FreeMat-mpi-3.6_2|IGNORE: no MPI support at the moment
Generic-NQS-3.50.9_2|IGNORE: is an interactive port
HeroesOfMightAndMagic-3_1|IGNORE: is an interactive port
InsightToolkit-2.8.1_1|NO_PACKAGE: License does not allow redistribution of binaries
Miro-1.2.6|IGNORE: dependent port
>How-To-Repeat:
N/A
>Fix:

Index: Tools/portbuild/scripts/makeduds
===================================================================
RCS file: /home/FreeBSD/pcvs/ports/Tools/portbuild/scripts/makeduds,v
retrieving revision 1.20
diff -u -r1.20 makeduds
--- Tools/portbuild/scripts/makeduds	26 Jul 2008 13:47:03 -0000	1.20
+++ Tools/portbuild/scripts/makeduds	11 Sep 2008 10:07:09 -0000
@@ -40,9 +40,14 @@
 export PORT_DBDIR=/nonexistentport
 
 cd ${PORTSDIR}
-make -j${DUDSJOBS} ignorelist ECHO_MSG=true > ${duds} || exit 1
-sort ${duds} > ${duds}.tmp
-mv -f ${duds}.tmp ${duds}
+make -j${DUDSJOBS} ignorelist-verbose ECHO_MSG=true > ${duds}.verbose 2> /dev/null || exit 1
+sort ${duds}.verbose > ${duds}.verbose.tmp
+mv -f ${duds}.verbose.tmp ${duds}.verbose
+cut -f 1 -d \| ${duds}.verbose > ${duds}
 
 cp ${duds} ${duds}.orig
 grep -Ff ${duds}.orig ${index} | cut -f 1 -d \| > ${duds}.full
+
+cat ${duds} ${duds}.full | sort | uniq -u | sed -e "s@\$@|IGNORE: dependent port@" > ${duds}.full.verbose.tmp
+cat ${duds}.verbose ${duds}.full.verbose.tmp | sort > ${duds}.full.verbose
+rm ${duds}.full.verbose.tmp
Index: Mk/bsd.port.mk
===================================================================
RCS file: /home/FreeBSD/pcvs/ports/Mk/bsd.port.mk,v
retrieving revision 1.604
diff -u -r1.604 bsd.port.mk
--- Mk/bsd.port.mk	5 Sep 2008 19:41:43 -0000	1.604
+++ Mk/bsd.port.mk	8 Sep 2008 14:07:57 -0000
@@ -3166,9 +3167,9 @@
 .if defined(IGNORE) || defined(NO_PACKAGE)
 ignorelist-verbose:
 .if defined(IGNORE)
-	@${ECHO_MSG} "${PKGNAME}|IGNORE: "${IGNORE:Q}
+	@${ECHO_CMD} "${PKGNAME}|IGNORE: "${IGNORE:Q}
 .else
-	@${ECHO_MSG} "${PKGNAME}|NO_PACKAGE: "${NO_PACKAGE:Q}
+	@${ECHO_CMD} "${PKGNAME}|NO_PACKAGE: "${NO_PACKAGE:Q}
 .endif
 .else
 ignorelist-verbose:

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



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