PATCH: partial fix for broken make release...
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...
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...
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...
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...
] 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...
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