tech-userlevel archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Setlist maintenance



Our static setlists enable us to cross-build easily on other
platforms, but can sometimes be a double-edged sword - they are
difficult to maintain, can be unintuitive in what has to be added, and
can be prone to problems with definitions and duplication in other
sets.  I doubt anyone has properly managed the syspkg names in ages,
if at all.

We've also seen another instance lately where the compat libs raise
other problems for everybody's education.

Some time ago I wrote a utility that is designed to be added to the
*.mk infrastructure, which uses the Makefile definitions to produce
output for what the set lists should look like.

I've put a tar file of the gensetlist utility at:

        http://www.netbsd.org/~agc/gensetlist-20101031.tar.gz

I'm not proposing it be added to NetBSD, merely hoping that its
presence could make set list maintenance easier.

If anyone reading this finds it useful:

+ all that needs to be done is to add the bsd.setlist.mk file to
the Makefile, and then type "make setlist"

+ please be aware that the entries need checking, I may have
left some definitions out, or got some wrong. As far as I can tell,
this generates the correct set lists for netpgp and related files.
Like I say, I'm not proposing that this be added.

+ it *could* be extended to generate the set lists dynamically.
This is left (1) as an exercise for the reader, (2) because
I fully realise that not everyone wants that, and (3) because if
that was done, then the definitions in the third column of the
set lists are no longer relevant or needed. It also paves the
way for smaller, custom generation of NetBSD images.

Regards,
Alistair

This is a contrived example of what the gensetlist utility does:

% make t
(cd lib && make setlist)
/usr/local/src/gensetlist/lib/../gensetlist -v LIB=netpgp -v SHLIB_VERSION=3.0. 
-v LIBDIR=/usr/lib -v MAN=libnetpgp.3 -v MANDIR=/usr/share/man -v INCS=netpgp.h 
-v INCSDIR=/usr/include -v MLINKS= -v SYMLINKS= -D MKCRYPTO -c crypto

[src/distrib/sets/lists/base/ad.mips64eb]
./usr/lib/64/libnetpgp.so.3             base-compat-shlib       
compat,pic,crypto
./usr/lib/64/libnetpgp.so.3.0           base-compat-shlib       
compat,pic,crypto
./usr/lib/o32/libnetpgp.so.3            base-compat-shlib       
compat,pic,crypto
./usr/lib/o32/libnetpgp.so.3.0          base-compat-shlib       
compat,pic,crypto

[src/distrib/sets/lists/base/ad.mips64el]
./usr/lib/64/libnetpgp.so.3             base-compat-shlib       
compat,pic,crypto
./usr/lib/64/libnetpgp.so.3.0           base-compat-shlib       
compat,pic,crypto
./usr/lib/o32/libnetpgp.so.3            base-compat-shlib       
compat,pic,crypto
./usr/lib/o32/libnetpgp.so.3.0          base-compat-shlib       
compat,pic,crypto

[src/distrib/sets/lists/base/md.amd64]
./usr/lib/i386/libnetpgp.so.3           base-compat-shlib       
compat,pic,crypto
./usr/lib/i386/libnetpgp.so.3.0         base-compat-shlib       
compat,pic,crypto

[src/distrib/sets/lists/base/md.sparc64]
./usr/lib/sparc/libnetpgp.so.3          base-compat-shlib       
compat,pic,crypto
./usr/lib/sparc/libnetpgp.so.3.0                base-compat-shlib       
compat,pic,crypto

[src/distrib/sets/lists/base/shl.mi]
./usr/lib/libnetpgp.so          base-crypto-shlib       crypto
./usr/lib/libnetpgp.so.3                base-crypto-shlib       crypto
./usr/lib/libnetpgp.so.3.0              base-crypto-shlib       crypto

[src/distrib/sets/lists/comp/mi]
./usr/include/netpgp.h          comp-c-include  crypto
./usr/share/man/cat3/libnetpgp.0                comp-crypto-catman              
.cat,crypto
./usr/share/man/html3/libnetpgp.html            comp-crypto-htmlman             
.html,crypto
./usr/share/man/man3/libnetpgp.3                comp-crypto-man         
.man,crypto
./usr/lib/libnetpgp.a           comp-crypto-lib crypto
./usr/lib/libnetpgp_g.a         comp-crypto-lib debuglib,crypto
./usr/lib/libnetpgp_p.a         comp-crypto-proflib     profile,crypto
./usr/libdata/lint/llib-lnetpgp.ln              comp-crypto-lintlib     
lint,crypto

[src/distrib/sets/lists/comp/shl.mi]
./usr/lib/libnetpgp_pic.a               comp-crypto-piclib      crypto
./usr/libdata/debug/usr/lib/libnetpgp.so.3.0.debug              
comp-crypto-debug       debug,crypto

[src/distrib/sets/lists/comp/ad.mips64eb]
./usr/lib/64/libnetpgp.a                comp-c-lib      compat,crypto
./usr/lib/64/libnetpgp.so               comp-sys-shlib  compat,crypto
./usr/lib/64/libnetpgp_g.a              comp-c-proflib  compat,debuglib,crypto
./usr/lib/64/libnetpgp_p.a              comp-c-proflib  compat,profile,crypto
./usr/lib/64/libnetpgp_pic.a            comp-c-piclib   compat,pic,crypto
./usr/libdata/debug/usr/lib/64/libnetpgp.so.3.0         comp-compat-shlib       
compat,pic,debug,crypto
./usr/lib/o32/libnetpgp.a               comp-c-lib      compat,crypto
./usr/lib/o32/libnetpgp.so              comp-sys-shlib  compat,crypto
./usr/lib/o32/libnetpgp_g.a             comp-c-proflib  compat,debuglib,crypto
./usr/lib/o32/libnetpgp_p.a             comp-c-proflib  compat,profile,crypto
./usr/lib/o32/libnetpgp_pic.a           comp-c-piclib   compat,pic,crypto
./usr/libdata/debug/usr/lib/o32/libnetpgp.so.3.0                
comp-compat-shlib       compat,pic,debug,crypto

[src/distrib/sets/lists/comp/ad.mips64el]
./usr/lib/64/libnetpgp.a                comp-c-lib      compat,crypto
./usr/lib/64/libnetpgp.so               comp-sys-shlib  compat,crypto
./usr/lib/64/libnetpgp_g.a              comp-c-proflib  compat,debuglib,crypto
./usr/lib/64/libnetpgp_p.a              comp-c-proflib  compat,profile,crypto
./usr/lib/64/libnetpgp_pic.a            comp-c-piclib   compat,pic,crypto
./usr/libdata/debug/usr/lib/64/libnetpgp.so.3.0         comp-compat-shlib       
compat,pic,debug,crypto
./usr/lib/o32/libnetpgp.a               comp-c-lib      compat,crypto
./usr/lib/o32/libnetpgp.so              comp-sys-shlib  compat,crypto
./usr/lib/o32/libnetpgp_g.a             comp-c-proflib  compat,debuglib,crypto
./usr/lib/o32/libnetpgp_p.a             comp-c-proflib  compat,profile,crypto
./usr/lib/o32/libnetpgp_pic.a           comp-c-piclib   compat,pic,crypto
./usr/libdata/debug/usr/lib/o32/libnetpgp.so.3.0                
comp-compat-shlib       compat,pic,debug,crypto

[src/distrib/sets/lists/comp/md.amd64]
./usr/lib/i386/libnetpgp.a              comp-c-lib      compat,crypto
./usr/lib/i386/libnetpgp.so             comp-sys-shlib  compat,crypto
./usr/lib/i386/libnetpgp_g.a            comp-c-proflib  compat,debuglib,crypto
./usr/lib/i386/libnetpgp_p.a            comp-c-proflib  compat,profile,crypto
./usr/lib/i386/libnetpgp_pic.a          comp-c-piclib   compat,pic,crypto
./usr/libdata/debug/usr/lib/i386/libnetpgp.so.3.0               
comp-compat-shlib       compat,pic,debug,crypto

[src/distrib/sets/lists/comp/md.sparc64]
./usr/lib/sparc/libnetpgp.a             comp-c-lib      compat,crypto
./usr/lib/sparc/libnetpgp.so            comp-sys-shlib  compat,crypto
./usr/lib/sparc/libnetpgp_g.a           comp-c-proflib  compat,debuglib,crypto
./usr/lib/sparc/libnetpgp_p.a           comp-c-proflib  compat,profile,crypto
./usr/lib/sparc/libnetpgp_pic.a         comp-c-piclib   compat,pic,crypto
./usr/libdata/debug/usr/lib/sparc/libnetpgp.so.3.0              
comp-compat-shlib       compat,pic,debug,crypto
(cd netpgp && make setlist)
/usr/local/src/gensetlist/netpgp/../gensetlist -v MAN=netpgp.1 -v 
MANDIR=/usr/share/man -v PROG=netpgp -v BINDIR=/usr/bin -v MLINKS=netpgp.1\ 
limit.1\ netpgp.1\ alias.1\ netpgp.1\ bg.1\ netpgp.1\ dirs.1 -v 
SYMLINKS=/usr/bin/tar\ /usr/bin/gpg -D MKCRYPTO -c crypto

[src/distrib/sets/lists/base/mi]
./usr/bin/netpgp                base-crypto-bin crypto  
./usr/bin/gpg           base-crypto-bin crypto

[src/distrib/sets/lists/comp/mi]
./usr/libdata/debug/usr/bin/netpgp.debug                comp-crypto-debug       
debug,crypto
./usr/share/man/cat1/netpgp.0           comp-crypto-catman              
.cat,crypto
./usr/share/man/html1/netpgp.html               comp-crypto-htmlman             
.html,crypto
./usr/share/man/man1/netpgp.1           comp-crypto-man         .man,crypto
./usr/share/man/cat1/limit.0            comp-crypto-catman              
.cat,crypto
./usr/share/man/html1/limit.html                comp-crypto-htmlman             
.html,crypto
./usr/share/man/man1/limit.1            comp-crypto-man         .man,crypto
./usr/share/man/cat1/alias.0            comp-crypto-catman              
.cat,crypto
./usr/share/man/html1/alias.html                comp-crypto-htmlman             
.html,crypto
./usr/share/man/man1/alias.1            comp-crypto-man         .man,crypto
./usr/share/man/cat1/bg.0               comp-crypto-catman              
.cat,crypto
./usr/share/man/html1/bg.html           comp-crypto-htmlman             
.html,crypto
./usr/share/man/man1/bg.1               comp-crypto-man         .man,crypto
./usr/share/man/cat1/dirs.0             comp-crypto-catman              
.cat,crypto
./usr/share/man/html1/dirs.html         comp-crypto-htmlman             
.html,crypto
./usr/share/man/man1/dirs.1             comp-crypto-man         .man,crypto
%


Home | Main Index | Thread Index | Old Index