List Info

Thread: Build fixes




Build fixes
user name
2006-06-06 11:59:49
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

Build fixes
user name
2006-06-06 17:29:45
On Tue, 06 Jun 2006 13:59:49 +0200
Christian Hattemer <c.hattemerarcor.de> wrote:

> 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.

> 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

Take a look at src/etc/etc.i386/Makefile.inc, probably
you'll have to
modify this file as well.
[1-2]

about | contact  Other archives ( Real Estate discussion Medical topics )