Subject: PR/25390 CVS commit: pkgsrc
To: None <dmcmahill@netbsd.org, gnats-admin@netbsd.org,>
From: Dan McMahill <dmcmahill@netbsd.org>
List: pkgsrc-bugs
Date: 05/17/2005 21:47:01
The following reply was made to PR pkg/25390; it has been noted by GNATS.
From: Dan McMahill <dmcmahill@netbsd.org>
To: gnats-bugs@netbsd.org
Cc:
Subject: PR/25390 CVS commit: pkgsrc
Date: Tue, 17 May 2005 21:46:59 +0000 (UTC)
Module Name: pkgsrc
Committed By: dmcmahill
Date: Tue May 17 21:46:59 UTC 2005
Modified Files:
pkgsrc: Makefile
pkgsrc/mk: bsd.pkg.mk
pkgsrc/mk/scripts: genreadme.awk mkreadme
Added Files:
pkgsrc/mk/scripts: binpkg-cache
Log Message:
Rework the README.html generation code. Major changes are:
- completely redo the code which decides on the machine architecture,
operating system, and operating system version for the binary packages.
The old way just used to directory names to take a guess. The new
way creates a cache file containing meta-data for all the binary packages
in each "All" directory. This cache file is consulted when generating
the lists of available binary packages. The meta-data is obtained with
pkg_info so it should always be correct even if you do something silly
like mix OS_VERSION or MACHINE_ARCH packages up in the same directory.
Among the benefits are: works when PACKAGES is not $PKGSRC/packages,
works with a more or less arbitrary subdirectory structure, works
when there are subdirectories for multiple operating systems.
This portion of the fix should address PR25390.
The cache files are only updated when the contents of an "All" directory
changes or if the cache file format changes. There is some room for
improving the updating of the cache files, but its not too bad the way
it is.
- fix up some of the awk code so that generadme.awk works with Solaris
nawk as well as NetBSD's nawk and gawk (for pre-2.0 systems).
- remove some "if ! foo" shell constructs to increase portability.
- be more consistent with what variables get passed to mkreadme from
make and which ones are determined automatically. Mostly this meant
moving stuff into mkreadme to make it easier to run it standalone.
To generate a diff of this commit:
cvs rdiff -r1.70 -r1.71 pkgsrc/Makefile
cvs rdiff -r1.1667 -r1.1668 pkgsrc/mk/bsd.pkg.mk
cvs rdiff -r0 -r1.1 pkgsrc/mk/scripts/binpkg-cache
cvs rdiff -r1.12 -r1.13 pkgsrc/mk/scripts/genreadme.awk
cvs rdiff -r1.4 -r1.5 pkgsrc/mk/scripts/mkreadme
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.