PATCH: partial fix for broken make release...

2001-05-02 Thread Terry Lambert

The make release stuff is broken, at least in 4.3, and possibly
before that.

There are several obviously broken things:

o   The libssh stuff is not installed, and it is not built
during a make release; I don't know why that is; the
workaround is to wait for it to bomb out, and then
manuall copy /usr/obj/usr/src/secure/lib/libssh/lib*.a
into your ${CHROOTDIR}/usr/obj, and do a make rerelease
to restart things (without this, the pam_ssh module
build fails).

o   The files jade_1.2.1-13.diff.gz and pdf_sec.ps are not
available from any of the listed mirros in the ports
hierarchy, so they can not be correctly installed, and
a doc build can not complete.  The workaround is to
let the above fail, and then:

cd ${CHROOT}/usr/ports/distfiles
GOTO=ftp://sunsite.doc.ic.ac.uk/Mirrors/FreeBSD/ports/distfiles;
fetch ${GOTO}/jade_1.2.1-13.diff.gc
fetch ${GOTO}/pdf_sec.ps

Then restart again... but this time:

make rerelease  RELEASENOUPDATE=Y ...

o   If you set KERNCONF to a non-default value (GENERIC is
the default value), then sysinstall can't find it to
install it during the installation process; the attached
patch works for RELENG_4, and would have to be reflected
into /usr/src/release AND /usr/src/usr.sbin/sysinstall
for -current.

Can someone at least apply the patch to RELENG_4???


Terry Lambert
[EMAIL PROTECTED]
---
Any opinions in this posting are my own and not those of my present
or previous employers.

Index: Makefile
===
RCS file: /home/cvs/FreeBSD/src/release/Makefile,v
retrieving revision 1.536.2.41
diff -u -r1.536.2.41 Makefile
--- Makefile2001/04/14 22:29:49 1.536.2.41
+++ Makefile2001/05/02 22:04:14
@@ -268,6 +268,7 @@
echo #!/bin/sh ${CHROOTDIR}/mk
echo set -ex   ${CHROOTDIR}/mk
echo _RELTARGET=\$${1:-doRELEASE}  ${CHROOTDIR}/mk
+   echo export KERNCONF=${KERNCONF}   ${CHROOTDIR}/mk
echo export CFLAGS='-O -pipe'  ${CHROOTDIR}/mk
echo export NO_X=YES   ${CHROOTDIR}/mk
echo export DISTRIBUTIONS=\${DISTRIBUTIONS}\  ${CHROOTDIR}/mk
Index: sysinstall/Makefile
===
RCS file: /home/cvs/FreeBSD/src/release/sysinstall/Attic/Makefile,v
retrieving revision 1.92.2.10
diff -u -r1.92.2.10 Makefile
--- sysinstall/Makefile 2001/03/12 12:10:28 1.92.2.10
+++ sysinstall/Makefile 2001/05/02 22:06:52
@@ -17,7 +17,7 @@
system.c tape.c tcpip.c termcap.c ufs.c usb.c user.c variable.c \
wizard.c keymap.h
 
-CFLAGS+= -Wall -I${.CURDIR}/../../gnu/lib/libdialog -I${.OBJDIR}
+CFLAGS+= -Wall -I${.CURDIR}/../../gnu/lib/libdialog -I${.OBJDIR} 
+-DKERNCONF=\${KERNCONF}\
 .if ${MACHINE} == pc98
 CFLAGS+= -DPC98
 .endif
Index: sysinstall/install.c
===
RCS file: /home/cvs/FreeBSD/src/release/sysinstall/Attic/install.c,v
retrieving revision 1.268.2.22
diff -u -r1.268.2.22 install.c
--- sysinstall/install.c2001/03/12 22:50:04 1.268.2.22
+++ sysinstall/install.c2001/05/02 22:20:06
@@ -750,7 +750,11 @@
 if (RunningAsInit) {
/* Fix up kernel first */
if (!file_readable(/kernel)) {
+#ifdef KERNCONF
+   char *generic_kernel = /kernel. KERNCONF;
+#else
char *generic_kernel = /kernel.GENERIC;
+#endif
if (file_readable(generic_kernel)) {
if (vsystem(cp -p %s /kernel, generic_kernel)) {
msgConfirm(Unable to copy /kernel into place!);

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: PATCH: partial fix for broken make release...

2001-05-02 Thread Bruce A. Mah

If memory serves me right, Terry Lambert wrote:

 o The files jade_1.2.1-13.diff.gz and pdf_sec.ps are not
   available from any of the listed mirros in the ports
   hierarchy, so they can not be correctly installed, and
   a doc build can not complete.  The workaround is to
   let the above fail, and then:

Yes.  Ran into this when testing RELNOTESng.  G.

   cd ${CHROOT}/usr/ports/distfiles
   GOTO=ftp://sunsite.doc.ic.ac.uk/Mirrors/FreeBSD/ports/distfiles;
   fetch ${GOTO}/jade_1.2.1-13.diff.gc

s/gc/gz

   fetch ${GOTO}/pdf_sec.ps
 
   Then restart again... but this time:
 
   make rerelease  RELEASENOUPDATE=Y ...

Another way to do this is to fetch the files into /usr/ports/distfiles
and then do the release (this works for all distfiles, not just the
unfetchable ones).  Part of the release process copies /usr/ports/
distfiles to ${CHROOT}/usr/ports/distfiles.  In other words:

# Do this once
cd /usr/ports/distfiles
GOTO=ftp://sunsite.doc.ic.ac.uk/Mirros/FreeBSD/ports/distfiles
fetch ${GOTO}/jade_1.2.1-13.diff.gz
fetch ${GOTO}/pdf_sec.ps

# make release works normally

Cheers,

Bruce.




 PGP signature


Re: PATCH: partial fix for broken make release...

2001-05-02 Thread Jordan Hubbard

From: Terry Lambert [EMAIL PROTECTED]
Subject: PATCH: partial fix for broken make release...
Date: Wed, 2 May 2001 22:00:37 + (GMT)

 The make release stuff is broken, at least in 4.3, and possibly
 before that.
 
 There are several obviously broken things:
 
 o The libssh stuff is not installed, and it is not built

That would be a failure in make world, not make release.

 o The files jade_1.2.1-13.diff.gz and pdf_sec.ps are not
   available from any of the listed mirros in the ports

That would be a failure in the ports collection, not make release.

I don't make both observations to be pedantic, but to simply make it
clear that the correct fixes need to happen somewhere else.

 o If you set KERNCONF to a non-default value (GENERIC is
   the default value), then sysinstall can't find it to

I'm not clear as to why you'd want to?  GENERIC is the best kernel for
creating generally useable releases, but I imagine you have some other
reason for chosing a specific configuration for which I also expect
you're copying the config file into ${CHROOTDIR}/usr/src/sys/${ARCH}/conf
from somewhere else?  I can't see how this change by itself makes what
appears to be the desired functionality a reality.

- Jordan

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: PATCH: partial fix for broken make release...

2001-05-02 Thread John Baldwin


On 02-May-01 Jordan Hubbard wrote:
 From: Terry Lambert [EMAIL PROTECTED]
 Subject: PATCH: partial fix for broken make release...
 Date: Wed, 2 May 2001 22:00:37 + (GMT)
 
 The make release stuff is broken, at least in 4.3, and possibly
 before that.
 
 There are several obviously broken things:
 
 oThe libssh stuff is not installed, and it is not built
 
 That would be a failure in make world, not make release.

He probably doesn't have src-crypto or cvs-crypto in his cvsup file.  *shrug* 
Works fine here and worked fine for the 4.3 release build.

 oThe files jade_1.2.1-13.diff.gz and pdf_sec.ps are not
  available from any of the listed mirros in the ports
 
 That would be a failure in the ports collection, not make release.

Yes.  Haven't seen this locally though, but I may have these files prefetched
to /usr/docdistfiles on the local snap building machine.

 oIf you set KERNCONF to a non-default value (GENERIC is
  the default value), then sysinstall can't find it to
 
 I'm not clear as to why you'd want to?  GENERIC is the best kernel for
 creating generally useable releases, but I imagine you have some other
 reason for chosing a specific configuration for which I also expect
 you're copying the config file into ${CHROOTDIR}/usr/src/sys/${ARCH}/conf
 from somewhere else?  I can't see how this change by itself makes what
 appears to be the desired functionality a reality.

You could use LOCAL_PATCHES to do it if your patch created a new config file. 
This would be appropriate if you were rolling an internal release using your
own kernel config.  In that case his patches make sense.

-- 

John Baldwin [EMAIL PROTECTED] -- http://www.FreeBSD.org/~jhb/
PGP Key: http://www.baldwin.cx/~john/pgpkey.asc
Power Users Use the Power to Serve!  -  http://www.FreeBSD.org/

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: PATCH: partial fix for broken make release...

2001-05-02 Thread Terry Lambert

] On 02-May-01 Jordan Hubbard wrote:
]  From: Terry Lambert [EMAIL PROTECTED]
]  The make release stuff is broken, at least in 4.3, and possibly
]  before that.
]  
]  There are several obviously broken things:
]  
]  oThe libssh stuff is not installed, and it is not built
]  
]  That would be a failure in make world, not make release.
] 
] He probably doesn't have src-crypto or cvs-crypto in his cvsup file.
] *shrug* Works fine here and worked fine for the 4.3 release build.

I have src-crypto and cvs-crypto; the _ONLY_ thing that breaks is
the pam_ssh, when it goes to link against libssh, which is not
a shared object, and is not an installed target as a result of
make release.

A make world works perfectly fine, and builds everything, including
the pam_ssh, just fine.  Examining the /usr/obj and the CHROOT
version of /usr/obj indicates that the difference is that the
libssh isn't built in the chroot case, and is referenced via a
relative path, instead of being referenced from where it _is_ built.

Copying _just_ those libraries allows the pam_ssh build to complete
successfully, and nothing else uses them.


]  oThe files jade_1.2.1-13.diff.gz and pdf_sec.ps are not
]   available from any of the listed mirros in the ports
]  
]  That would be a failure in the ports collection, not make release.
] 
] Yes.  Haven't seen this locally though, but I may have these files
] prefetched to /usr/docdistfiles on the local snap building machine.

The main problem here is that none of the mirrors listed in the
ports have them, and the FreeBSD FTP server is presently in
limbo or pushing up daisies, depending on who you ask.

Copying them into the local /usr/ports/distfiles works (as was
alluded to in Bruce A. Mah's message), and is a better workaround
than waiting for the failure and restarting things, but is a much
less useful thing than correcting the ports for these things to
point to mirrors that work...


]  oIf you set KERNCONF to a non-default value (GENERIC is
]   the default value), then sysinstall can't find it to
]  
]  I'm not clear as to why you'd want to?  GENERIC is the best kernel for
]  creating generally useable releases, but I imagine you have some other
]  reason for chosing a specific configuration for which I also expect
]  you're copying the config file into ${CHROOTDIR}/usr/src/sys/${ARCH}/conf
]  from somewhere else?  I can't see how this change by itself makes what
]  appears to be the desired functionality a reality.
] 
] You could use LOCAL_PATCHES to do it if your patch created a new config
] file. This would be appropriate if you were rolling an internal release
] using your own kernel config.  In that case his patches make sense.

Exactly what I'm doing: I'm _not_ rolling a boxed set of CDROMs, I'm
rolling an internal release using my own kernel config, which I want
to be installed by default as a result of an upgrade procedure, so
that I can upgrade machines from a coaster after I've burnt it and
verified that it passes acceptance testing.

Actually, the boxed set of CDROMs thing is really hard to do
entirely correctly, since the ports build process is so arcane,
which seems to be because the ports themselves are not DESTDIR
clean, so they have to be built serially.

There's also the tools directory, which I guess is copied in
magically, because some of the CDROM distribution is built on
(bletch!) DOS, instead of being 100% FreeBSD hosted.

To elaborate on Jordan's guess, I'm actually _replacing_ the entire
/usr/src/sys directory (and using a LOCAL_SCRIPT to do the same to
the /usr/src/sys directory in the CHROOT environment at the right
time during the build process.

If I were truly a grumpy guy, I'd insist that the cvs checkout of
the kernel sources be capable of using a different repository and
a different tag.

My next challenge will be to get my personal packages to show up
as options in sysinstall, and to make their installation default
for a particular installation set name...


Terry Lambert
[EMAIL PROTECTED]
---
Any opinions in this posting are my own and not those of my present
or previous employers.

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: PATCH: partial fix for broken make release...

2001-05-02 Thread John Baldwin


On 03-May-01 Terry Lambert wrote:
 A make world works perfectly fine, and builds everything, including
 the pam_ssh, just fine.  Examining the /usr/obj and the CHROOT
 version of /usr/obj indicates that the difference is that the
 libssh isn't built in the chroot case, and is referenced via a
 relative path, instead of being referenced from where it _is_ built.
 
 Copying _just_ those libraries allows the pam_ssh build to complete
 successfully, and nothing else uses them.

make release does a make world in the chroot:

rerelease release:
...
.if make(release)
echo   (cd etc; make distrib-dirs distribution)  ${CHROOTDIR}/mk
echo   make ${WORLD_FLAGS} world  \\ ${CHROOTDIR}/mk
.endif
...
chroot ${CHROOTDIR} /mk

I haven't ever seen this before.  Are you using any other customizations
besides LOCAL_SCRIPT?  Are you specifying NO_CRYPTO or something?

 ] Yes.  Haven't seen this locally though, but I may have these files
 ] prefetched to /usr/docdistfiles on the local snap building machine.
 
 The main problem here is that none of the mirrors listed in the
 ports have them, and the FreeBSD FTP server is presently in
 limbo or pushing up daisies, depending on who you ask.

Well, then as Jordan stated, the ports need to be fixed.  The actual release
process itself is not broken in this respect, however.

 There's also the tools directory, which I guess is copied in
 magically, because some of the CDROM distribution is built on
 (bletch!) DOS, instead of being 100% FreeBSD hosted.

AFAIK, it's just copied off of the previous CD-ROM each time.  I don't think
it's been updated in quite some time. :)  DOS is not used though.  I think that
the tools/ subdir on the CD is considered a WC/BSDi addon though, not part of
the base system.

 If I were truly a grumpy guy, I'd insist that the cvs checkout of
 the kernel sources be capable of using a different repository and
 a different tag.

That's what LOCAL_SCRIPT is for in this case.  make release isn't really
designed to patch together various source collections, it's designed to build a
release from one source collection.

 My next challenge will be to get my personal packages to show up
 as options in sysinstall, and to make their installation default
 for a particular installation set name...

Just add the appropriate lines to the INDEX file and they will show up fine.
If you actually add ports directories for them to /usr/ports and rebuild the
INDEX (via 'make index') it will DTRT.  Note that you don't need all of ports/
to do this, just ports/Mk and ports/tlambert (or whatever) and a suitable
modified list of directories in ports/Makefile.

-- 

John Baldwin [EMAIL PROTECTED] -- http://www.FreeBSD.org/~jhb/
PGP Key: http://www.baldwin.cx/~john/pgpkey.asc
Power Users Use the Power to Serve!  -  http://www.FreeBSD.org/

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message