tech-pkg archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Adding options to README.html files
The readme target(s) of pkgsrc don’t currently show the build options for each package. This has always slightly annoyed me, since I often find myself building a package, then finding out afterwards that I needed a build option that wasn’t default, or just plain forgetting to check the build options available. I’ve got a patch for generating and inserting a table of options into the README.html, which I use for my local copies of pkgsrc. Is this something that other people might want, too? If so, here it is:
Index: mk/scripts/genreadme.awk
===================================================================
RCS file: /cvsroot/pkgsrc/mk/scripts/genreadme.awk,v
retrieving revision 1.35
diff -u -r1.35 genreadme.awk
--- mk/scripts/genreadme.awk 9 May 2013 23:37:27 -0000 1.35
+++ mk/scripts/genreadme.awk 20 Jul 2015 04:47:08 -0000
@@ -165,6 +165,15 @@
next;
}
+/^htmloptions / {
+ htmloptions = $3;
+ for (i = 4; i <= NF; i++){
+ htmloptions = htmloptions " " $i;
+ }
+ options[$2] = htmloptions;
+ next;
+}
+
/^index / {
#
# read lines like:
@@ -396,6 +405,8 @@
gsub(/%%VULDATE%%/, ""vuldate"");
gsub(/%%RUN_DEPENDS%%/, ""rundeps"");
+ gsub(/%%OPTIONS%%/, ""options[toppkg]"");
+
line = $0;
if( line ~/%%BIN_PKGS%%/ ) {
Index: mk/scripts/htmloptions.awk
===================================================================
RCS file: mk/scripts/htmloptions.awk
diff -N mk/scripts/htmloptions.awk
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ mk/scripts/htmloptions.awk 20 Jul 2015 04:47:08 -0000
@@ -0,0 +1,25 @@
+#!/usr/bin/awk -f
+
+BEGIN {
+ FS = "\t";
+}
+
+/^\t/ {
+ o++;
+ printf "<tr><td>%s</td><td>%s</td></tr>", $2, $3;
+}
+
+/^These options are/ {
+ finalize();
+ exit;
+}
+
+END {
+ finalize();
+}
+
+function finalize() {
+ if(o == 0) {
+ printf "<tr><td><EM>none</EM></tr></td>";
+ }
+}
Index: mk/scripts/mkdatabase
===================================================================
RCS file: /cvsroot/pkgsrc/mk/scripts/mkdatabase,v
retrieving revision 1.9
diff -u -r1.9 mkdatabase
--- mk/scripts/mkdatabase 18 Nov 2005 11:07:27 -0000 1.9
+++ mk/scripts/mkdatabase 20 Jul 2015 04:47:08 -0000
@@ -160,6 +160,11 @@
esac
+here=`pwd`
+tmp1=`dirname "$here"`
+pkgcat=`basename "$tmp1"`
+pkg=`basename "$here"`
+pkgpath=$pkgcat/$pkg
if [ $append_flag = yes ]; then
echo "$prompt Appending to database in ${DATABASE}"
if [ ! -f "${DATABASE}" ]; then
@@ -167,11 +172,6 @@
fi
# make sure we haven't already been listed before
# appending ourselves.
- here=`pwd`
- tmp1=`dirname "$here"`
- pkgcat=`basename "$tmp1"`
- pkg=`basename "$here"`
- pkgpath=$pkgcat/$pkg
case $debug_flag in
yes) echo "Looking for $pkgpath before appending";;
esac
@@ -184,7 +184,9 @@
fi
else
echo "$prompt Creating new database in ${DATABASE}"
- ${BMAKE} print-summary-data > "${DATABASE}" || exit 1
+ o=`${BMAKE} show-options | ${AWK} -f ../../mk/scripts/htmloptions.awk`
+ echo "htmloptions ${pkgpath} $o" > ${DATABASE}
+ ${BMAKE} print-summary-data >> "${DATABASE}" || exit 1
fi
here=`pwd`
echo "$prompt Depending in $here (pass #1)"
Index: mk/scripts/mkreadme
===================================================================
RCS file: /cvsroot/pkgsrc/mk/scripts/mkreadme,v
retrieving revision 1.27
diff -u -r1.27 mkreadme
--- mk/scripts/mkreadme 13 Jun 2015 12:09:32 -0000 1.27
+++ mk/scripts/mkreadme 20 Jul 2015 04:47:08 -0000
@@ -381,6 +381,7 @@
echo " but the directory does not exist. Please fix this!" > /dev/stderr
else
cd ${PKGSRCDIR}/${c}/${pkgdir}
+ o=`${BMAKE} show-options | ${AWK} -f ${PKGSRCDIR}/mk/scripts/htmloptions.awk`
l=`${BMAKE} print-summary-data`
if [ $? != 0 ]; then
echo "WARNING (printdepends): the package in ${c}/${pkgdir} had problem with" \
@@ -391,6 +392,7 @@
${BMAKE} print-summary-data 2>&1 > /dev/stderr
else
echo "$l" >> $DATABASEFILE
+ echo "htmloptions ${c}/${pkgdir} $o" >> $DATABASEFILE
fi
fi
if [ "x$quiet" = "xno" ]; then
Index: templates/README.pkg
===================================================================
RCS file: /cvsroot/pkgsrc/templates/README.pkg,v
retrieving revision 1.26
diff -u -r1.26 README.pkg
--- templates/README.pkg 18 Mar 2010 10:18:19 -0000 1.26
+++ templates/README.pkg 20 Jul 2015 04:47:08 -0000
@@ -68,6 +68,13 @@
</p>
<p>
+This package supports the following build-time options:
+<TABLE>
+%%OPTIONS%%
+</TABLE>
+</p>
+
+<p>
Select one of the links below to <FONT COLOR="red">download</FONT> the
package in precompiled binary form for installation with pkg_add(1).
Available machine architectures and package versions:
Home |
Main Index |
Thread Index |
Old Index