Hi,
I've tried to build a release with lots of options
disabled. As I read, this
isn't really supported, but here's how far I got.
First thing is some fallout from the sendmail removal.
/etc/mail/aliases has
always been installed with sendmail and still is with
Postfix. Here's the
fix for the postfix conditional that crept in:
--- src/distrib/sets/lists/etc/mi.orig 2006-05-31
05:01:05.000000000 +0200
+++ src/distrib/sets/lists/etc/mi
 -62,7
+62,7 
./etc/localtime etc-sys-etc
./etc/locate.conf etc-sys-etc
./etc/mail.rc etc-mail-etc
-./etc/mail/aliases etc-postfix-etc postfix
+./etc/mail/aliases etc-postfix-etc
./etc/mail/helpfile etc-obsolete obsolete
./etc/mail/local-host-names etc-obsolete obsolete
./etc/mail/sendmail.cf etc-obsolete obsolete
The next problem is during release when the ALL_KERNELS
variable is set to a
subset of the available kernels. It seems it must have
worked at some time,
but looking at the old revs I don't see how it could have.
I have set
ALL_KERNELS=GENERIC INSTALL to skip all the kernels I don't
need.
The build tries to cd into kernel build directories that
don't exist and
fails. This is fixed by this patch:
--- src/etc/Makefile.orig 2006-05-30 05:01:34.000000000
+0200
+++ src/etc/Makefile
 -538,26
+538,28  kernset-$: .PHONY build_kern
kernsuffixes="${KERNEL_SUFFIXES:S/^/./}"; \
kern_tgz=$/$/binary/sets/ke
rn-$.tgz; \
pax_cmd="GZIP=-9 $ -O -zw -M -N
$/etc -f $$"; \
- cd $$ && { \
- kernels=; newest=; \
- for kernel in $$; do \
- for s in "" $$; do \
- ks="$$$$"; \
- [ -f $$ ] || continue; \
- kernels="$$ $$"; \
- [ -z "$$" -o $$ -nt
"$$" ] && \
- newest=$$; \
+ if [ -d $$ ]; then \
+ cd $$ && { \
+ kernels=; newest=; \
+ for kernel in $$; do \
+ for s in "" $$; do \
+ ks="$$$$"; \
+ [ -f $$ ] || continue; \
+ kernels="$$ $$"; \
+ [ -z "$$" -o $$ -nt
"$$" ] && \
+ newest=$$; \
+ done; \
done; \
- done; \
- [ $$ -nt "$$" ] || { \
- echo "echo $$ | $$"; \
- ( echo "/set uname=$
gname=$"; \
- echo ". type=dir optional"; \
- for kernel in $$; do \
- echo "./$$ type=file"; \
- done ) | eval $$; \
+ [ $$ -nt "$$" ] || { \
+ echo "echo $$ | $$"; \
+ ( echo "/set uname=$
gname=$"; \
+ echo ". type=dir optional"; \
+ for kernel in $$; do \
+ echo "./$$ type=file"; \
+ done ) | eval $$; \
+ } \
} \
- }
+ fi
.endfor # KERNEL_SETS # }
build_releasekernels: .PHONY
 -570,18
+572,20  releasekern-$: .PHONY build_
kernlist=`$
$/${configfile:C/.*\///}`; \
kerndir=$/${configfile:C/.*\///}; \
kernsuffixes="${KERNEL_SUFFIXES:S/^/./}"; \
- cd $$ && { \
- for kernel in $$; do \
- for s in "" $$; do \
- ks="$$$$"; \
- [ ! -f $$ ] && continue; \
- knl_gz="$/$/binary
/kernel/$$-${configfile:C/.*\///}.gz"; \
- [ $$ -nt $$ ] && continue; \
- echo "gzip -c -9 < $$/$$ >
$$"; \
- gzip -c -9 < $$ > $$; \
+ if [ -d $$ ]; then \
+ cd $$ && { \
+ for kernel in $$; do \
+ for s in "" $$; do \
+ ks="$$$$"; \
+ [ ! -f $$ ] && continue; \
+ knl_gz="$/$/binar
y/kernel/$$-${configfile:C/.*\///}.gz"; \
+ [ $$ -nt $$ ] && continue; \
+ echo "gzip -c -9 < $$/$$ >
$$"; \
+ gzip -c -9 < $$ > $$; \
+ done; \
done; \
- done; \
- }
+ } \
+ fi
.endfor # KERNEL_SETS EXTRA_KERNELS # }
# snap_md_post --
Later in release, when all ramdisks have been created it
fails again when
the installation kernels get finished. It looks for install
kernels that
haven't been built. The failure is this:
--- all-instkernel ---
all ===> etc/i386/instkernel
nbmake: nbmake: don't know how to make
/usr/home/krille/wrap-current/obj/sys/arch/i386/compile/INST
ALL_LAPTOP/netbsd.
Stop
*** [all-instkernel] Error code 2
1 error
nbmake: stopped in /usr/current-src/distrib/i386
*** [all-i386] Error code 2
1 error
nbmake: stopped in /usr/current-src/distrib
*** [snap_post] Error code 2
1 error
nbmake: stopped in /usr/current-src/etc
*** [release] Error code 2
1 error
nbmake: stopped in /usr/current-src
ERROR: Failed to make release
*** BUILD ABORTED ***
I think the problem is in src/distrib/common/Makefile.mdset
here, but I'm
not sure and don't have a fix for that at the moment.
Perhaps somebody with
more insight into the build system has an idea?
I'll probably go the "build.sh distribution
sets" way suggested elsewhere
now.
Please CC me on reply.
Bye, Chris
|