Commit Graph

19 Commits

Author SHA1 Message Date
apb faa76ace30 Add a new "-I realprefix" arg. When making syspkgs, we need to use
"-P ${DESTDIR} -I /". ("-I" chosen for similarity to pkg_create.)

XXX: makeplist seems to be quite broken, in that it looks at the files
and directories that are actually present in DESTDIR, whereas I
thought its job was to provide an list of what *should* be there,
regardless of what is *actually* there.  Fixing this seems to require
a change to the format of the "lists" files, so that they can
unambiguously identify directories.

Reviewed by agc
2006-01-04 13:57:04 +00:00
apb 0bee96eab7 Ensure that (almost) all shell variables in distrib/sets/* scripts are
used with curly braces and quotes, as in "${var}".

Also ensure that command substitution is quoted, as in "$(command)", and
convert `command` to $(command).

Reviewed by agc
2006-01-03 18:31:09 +00:00
apb 3a0b541193 Add shell variables defined in sets.subr for almost all commands used
by scripts in distrib/sets/*.  This is intended to be useful when cross
building.  Only trivial commands like echo, cat, and rm are excluded
from this treatment.

While I am here, make ${MTREE} and ${DB} follow the pattern used by most
other such variables.

Reviewed by agc.
2006-01-03 16:40:16 +00:00
dyoung f9f7b262bb One of my users stumbled over a bug: src/distrib/sets/makeplist
uses find(1) in a non-POSIX way.  The trouble is that -maxdepth is
not an option for POSIX find(1).  His NetBSD 1.6.2 system tripped
over that.  I converted the -maxdepth uses to -prune, which is
POSIX-compatible.

While I was in makeplist, I wrote a comment about the xargs/find/read
cleverness that I use to generate the @dirrm directives.
2005-01-12 01:38:04 +00:00
erh 10d0173282 Make all the sets scripts work even when not run from the directory that
they reside in.
Change any uses of dirname to use shell variable substitution instead.
2004-07-23 15:11:26 +00:00
dyoung 4645fb4362 `-p' takes an argument, so fix the getopts optstring. 2004-01-23 06:13:23 +00:00
lukem 6f9a1982b5 rename all the <bsd.own.mk> derived variables to uppercase, and export
them to the environment.
2004-01-03 02:38:58 +00:00
lukem b852db83fb Significant overhaul of how the sets are used:
* Add an optional third field to the sets file which is a list of
  comma separated keywords that control if the line is printed.
  Currently supported keywords
	kerberos4	${MKKERBEROS4} != no
	kerberos	${MKKERBEROS} != no
	lint		${MKLINT} != no
	obsolete	${obsolete} != 0.
			In this case, non obsolete files are not printed.
  (This will allow future support for builds with variables such as
  MKHESIOD and MKYP set to "no".)

* Use sh(1)'s getopts where appropriate, and otherwise cleanup the
  various scripts.

* Move defaults for sets.subr from sets.defaults into sets.subr.
  Move replicated code for determining stuff such as shlibs type
  from various scripts into sets.subr.

* Merge the obsolete.*, krb.*, krb4.* and lint.* into the appropriate
  main lists with the relevant third field keyword(s).
2003-12-29 03:13:25 +00:00
dyoung 17b5668ccd Factor duplicated code for setting variables such as machine_cpu
and machine_arch to their defaults into sets.defaults, and source
it at the top of each script.

Also, to be consistent with variable naming, s/arch/machine_arch/.

sets.defaults introduces two new variables, krb and krb4, which
will affect whether Kerberos- or Kerberos IV-only files are put
into the set lists.
2003-11-25 07:19:46 +00:00
dyoung 0f78752f52 Awk prefers regex escapes to look like \\ instead of \. Go figure.
This patch squashes hundreds of annoying warning messages:

awk: cmd. line:1: warning: escape sequence `\.' treated as plain `.'
2003-10-17 09:51:24 +00:00
mrg 9347d6de64 add initial support for gcc3 2003-08-04 05:53:20 +00:00
dyoung 48171b2e00 Fix typo: osreleasese -> osreleases.
Optimizations: do not re-invoke make(1) unnecessarily, it takes a
full second to bootstrap it on my on my anemic PC. Also, use
xargs/find instead of awk/system()/shell to classify each package
path as a file or directory.

For consistency, adopt similar variables names as makeflist uses.

Use the set-list routines in sets.subr instead of duplicating code.
2003-06-23 09:17:04 +00:00
agc 87171e96eb Bring the machine and arch-level decision of shared libs vs none up to date,
and also bring up to date the ELF vs a.out knowledge.

Also, sort the directories into reverse alphabetical order, and add them to
the generated PLIST file after any file entries.

Grab the comments into a single file from the individual syspkg set entries.

Grab the descriptions into a single file from the individual syspkg set entries.

Add an attributes file to which can be added attributes for system packages.
The "preserve" attribute has been implemented.

Add extra comments and descriptions for system packages which were missing.
2003-06-12 19:55:18 +00:00
agc cd7305a144 Remove the leading "./" from all entries in the generated PLIST.
Make awk do more of the work - remove two egrep invocations.
2003-06-05 11:18:08 +00:00
dyoung 51d337164f Fix typo to show correct prefix for PLIST, s/\$plist/\$prefix/. 2003-05-31 23:17:29 +00:00
dyoung 34603cbe81 Spelling fix, s/makeflist/makeplist/ 2003-05-31 22:56:37 +00:00
lukem c64952588e set MAKE="${MAKE:-make} -j 1" to prevent problems where the output
of make -j N>1 would result in junk in various shell variables
2002-07-23 09:02:45 +00:00
bjh21 b416cfd277 Rename arm26 -> acorn26. 2002-03-24 22:14:23 +00:00
jwise 25f7c6aadf Add two utility scripts used by syspkg from draga.com CVS:
listpkgs -- a utility script for syspkg maintainers.  Given a pkgset name,
	    list all packages in that pkgset by parsing the src/distrib
	    set list files.  Imported at draga.com revision 1.2.

Usage: ./listpkgs [-a arch] [-m machine] [-s setsdir] [-p prefix] setname
        -a arch         set arch (e.g, m68k, mips, powerpc)
        -m machine      set machine (e.g, amiga, i386, macppc)
        -s setsdir      directory to find sets
        setname		set to list packages for

makeplist -- a script called by <bsd.syspkg.mk>.  Given a pkgset name
	     and a pkg name, output a valid PLIST for that package by
	     parsing the src/distrib set list files.  Imported at
	     draga.com revision 1.2.

Usage: ./makeplist [-a arch] [-m machine] [-s setsdir] [-p prefix] setname pkgname
        -a arch         set arch (e.g, m68k, mips, powerpc)
        -m machine      set machine (e.g, amiga, i386, macppc)
        -s setsdir      directory to find sets
        -p prefix       prefix for created plist
        setname pkgname set and package to build plist for
2001-12-26 18:43:00 +00:00