Try to make everyone happy: David (to have debug kernels installed
by default), Warner (to be able to override that), and myself (for
actually making it all work and to be consistent).
Now, if kernel was configured for debugging (through DEBUG=-g in
the kernel config file or "config -g"), doing "make install" will
install debug versions of kernel and module objects with their
canonical names,
kernel.debug -> /boot/kernel/kernel
if_fxp.ko.debug -> /boot/kernel/if_fxp.ko
Installing a kernel not configured for debugging, or debug kernel
with INSTALL_NODEBUG variable defined, will install non-debug
kernel and module objects.
Also, restore the install.debug and reinstall.debug targets that
are part of the existing API (they cause some additional gdb(1)
scripts to be installed).
This involves having passwd bits available so that seteuid("_dhcp") work,
and creating /var/empty so that chroot(_VAR_EMPTY) works. My gut feeling
is that the better solution is to make privsep and chroot optional in
dhclient, but this works well for now and is low-risk.
Approved by: re
the INDEX file is taken from the package source tree as defined by the
PKG_TREE variable. This change allows using the (possibly incomplete)
packages on pointyhat.
MFC after: 2 days
bloat on disc1.
- Output a message letting the user know that we are generating MD5 sums
during the long pause after the last mkisofs invocation in the iso.1
target.
MFC after: 3 days
- When a separate livefs ISO is used, change the name of the tree directory
to be R/cdrom/livefs and change the name of the iso to livefs.iso rather
than using disc2. Instead, disc2 is now always going to be the packages
disc regardless of the presence of a separate livefs which makes things
simpler.
- Build a very simple disc2 tree under R/cdrom that just includes the
cdrom.inf file that the packages need. Also, build a disc2.iso image
in the iso.1 target. Disc 2's volume label is "FreeBSD_Packages".
- Retire CD_EXTRA_BITS and replace it with CD_PACKAGE_TREE. CD_EXTRA_BITS
was specific to disc1, but CD_PACKAGE_TREE instead should point to a
directory that has disc1 and disc2 subdirectories that contain the extra
bits for each image.
- Rename the bootonly volume label to "FreeBSD_bootonly" and just hardcode
the disc1 and livefs volume names and iso suffixes.
there are still a couple of places under src/release such like fixit.profile
assumed that system binary can be retrivied from /stand(ex: boot with the
live CD and run "disklabel -e" in the fixit CD shell).
Since /stand is still functional in fixit floppy, and there are more than
one places in src/release needs to be updated(document for example) if we
want to make use of something like /mnt2/rescue/vi. This commit try to
deal with aforementioned inconsistency with minimal effort by simply
create a symbolic link to /rescue.
Reviewed by: jhb, sam (mentor)
The new system tries to be more automated so that there is less work for
the re's to do. It also no longer uses a /usr/ports tree as its input,
but uses the generated package build including its INDEX file as its input.
It parses the INDEX file, determines which packages should go on which ISO
images, and then builds full-fledged trees of packages that can be added
as an argument to mkisofs along with the tree built by 'make release' to
build a full CD image. The INDEX files in the populated trees are
generated with volume media number to make use of sysinstall's multiple
volume support so that the user is kindly prompted to insert the
appropriate disc for a package if it is not on the current disc. There is
still some more tweaking to be done here, but this part needs to be
committed. This stuff will all be used to prep the 5.4 release as well.
Tested by: kensmith, others on re@
Reviewed by: re
release documentation snapshots, force URLS_ABSOLUTE. This
allows us to relocate HTML renderings anywhere without worrying
about breaking relative links to pages on the Web site. This can
happen when we use &base; as part of a URL.
I wonder if we should do this for all release documentation builds,
but I'm not quite sure what all the cases are.
is only the first stage and does not yet handle packages (which will move
to their own disc(s)).
- By default, include the live filesystem on disc1, so that disc1 is now
both an install disc and a fixit disc. The images can still be split
into two separate discs by specifying SEPARATE_LIVEFS=yes.
- Remove /usr/ports from the live filesystem disc as the merged images
do not fit on even i386 otherwise. Also, the merged image already
contains a tarball of the entire ports tree, so /usr/ports was a
duplicate anyway.
- Stop building port READMES for the release sinc they are no longer used
(/usr/ports in the live filesystem was the last remaining user).
- Split cdrom.1 into three targets. cdrom.1 builds the live filesystem
image. cdrom.2 builds the disc1 image. Note that if SEPARATE_LIVEFS
is not specified these both write to the same area. cdrom.3 builds
the bootonly image and the UFS miniroot.
- The various distribution directories are now in a <buildname>
subdirectory of disc1 rather than being in the root so that the merged
image's root is not quite as cluttered.
- The disc1 image is now called disc1.iso and we no longer build a
miniinst.iso image. If CD_EXTRA_BITS is defined, then the iso.1 target
will simply include those bits in the disc1 image that it builds.
MFC after: 1 day
Requested by: re (scottl, etc.)
chroot area. This fixes make release of HEAD on systems that have a
/usr/src with bsd.endian.mk and a matching /usr/obj but haven't installed
the world in /usr/obj and thus have no bsd.endian.mk /usr/share/mk.
ports/ tree on it. This makes putting the ports/ tree on disc2 at
all dependent on the NOPORTREADMES knob as well as the NOPORT knob
(at the moment NOPORT may be set while NOPORTREADMES isn't, that
should probably be revisited). And it hardcodes ia64 for NOPORTREADMES
by request the ia64 release builder.
While here really get rid of the temp file 'make index' leaves behind.
Tested by: i386 and ia64 'make release'
Reviewed by: marcel
MFC after: 1 day
release:
- run 'make index' as part of release build, INDEX* files in
CVS no longer updated and likely to be removed from CVS soon
- don't include README.html files in ports.tgz tarball because
they cause cvsup problems for users later
- put a copy of /usr/ports on disc2 that does include README.html
files so users have access to them
Reviewed by: ru (found one bug, several clean-up suggestions)
Tested by: 'make release'
MFC before: BETA6 build (this isn't likely to be tested in -current
anyway...)
but it's disconnected from the build. Remove it from the architecture
independent release documentation set, because it breaks "make release"
when NODOC is undefined.
Reviewed by: hrs
install media on i386 and amd64. While the current default is very
useful in server environments, the ability to use USB keyboards is
vastly more important then the ability to use PS/2 keyboards the admin
forgot to plug in during the install process.
PR: kern/71443
to subordinate make(1) invocations through MAKEFLAGS, we cannot add
CFLAGS onto the make(1) command line. This will conflict with the
individual makefiles wanting to append to it, which is not respected
when CFLAGS is given on the command line. Hence build breakage.
So, put CFLAGS in the environment instead.
of releases. The -DNOCRYPT build option still exists for anyone who
really wants to build non-cryptographic binaries, but the "crypto"
release distribution is now part of "base", and anyone installing from a
release will get cryptographic binaries.
Approved by: re (scottl), markm
Discussed on: freebsd-current, in late April 2004
some unknown reason, when LOCAL_PATCHES and LOCAL_SCRIPT were originally
added, they were silently ignored if the actual file did not exist. As a
result, if one mistyped the pathname to a patch or script, then the release
silently succeeded. However, it was not built with the desired changes and
no warning was given to inform the builder either. This commit explicitly
checks to see that all of the defined patches and scripts exist up front
and bails if any of them do not exist. I lost several hours of valuable
sleeping time this evening due to this "feature" so I've finally gone and
ripped out. I've tripped over this in the past several other times as
well.
Glanced at by: scottl
we only pay attention to it during release time and at the moment it's
a -stable release in progress.
This is a MFS I guess, moving rev 1.536.2.113 to HEAD. I ran out of
time to follow through with doing this last night. Sorry for the delay.
Adding a couple of variables to make tweaking the CD-ROM label and .iso
filenames easier.
- Use the regular forth scripts including the stock device.hints file on
the boot floppies.
- gzip all the various text files on the boot floppy that are larger than
one sector to save on space.
- Generate a loader.conf to load the kernel, acpi.ko, and mfsroot making
use of the 'module_before' variables to prompt for a floppy to be entered
when required and use a stock loader.rc. This enables the beastie menu
on i386.
- PC98 has been changed to split the mfsroot for now so that the floppies
fit. When the PC98 bootstrap is updated to work with ELF files (which
needs to happen anyway), then SPLIT_MFSROOT can be turned off for PC98.
all MFS root options together and in the same order on all archs.
- Drop support for using the no longer existing 2.88 floppy image for CD
booting on i386 via the EMUL_BOOT variable.
- Use a stock loader on the boot floppy rather than one without forth.
- Force the gzip of the mfsroot in release.9 to succeed. This is useful
when doing lots of rereleases when testing floppy changes.
- If an acpi kernel module exists, stick it on the boot floppy and for
now always load it after the kernel.
- Fixed spelling of NO_FLOPPIES to unbreak snapshot building on
architectures that don't support them (as installation source).
- Don't rely on CVS setting execution bits on the shell script.
(This is also consistent with the rest of this makefile.)
Reviewed by: jhb
installkernel.debug target (in the kernel build directory) which is
only defined if the kernel was configured for debugging which it is
not the case for GENERIC kernels on release branches.
requires minimal care and feeding for future releases.
- Consolidate multitude of floppy related constants down to a normal
FLOPPY set for 1.44 floppies and on PC98 a SMALLFLOPPY set for 1.2
floppies. Also, cleanup the i386 arch section by not duplicating
constants that are the same on both machine types (i386 and pc98).
- Update the ZIPNSPLIT macro to generate a file chunks that will actually
fit onto 1.44 floppies formatted with UFS1. Unfortunately, split(1)
seems to be somewhat buggy, so the files generated are slightly larger
than the argument passed to split.
- Split the release.10 target into 3 targers: floppies.1, floppies.2 and
floppies.3 that are added to EXTRAS only if NOFLOPPIES is defined.
floppies.1 builds the install floppies, floppies.2 builds the fixit
floppy, and floppies.3 generates the md5 sums and READMEs for the
floppies/ directory.
- Drop the by now largely obsolete and less useful boot.flp picture. This
was more useful when the mfsroot lived inside the kernel rather than
being loaded from a separate file by the loader.
- Only build a single mfsroot containing no modules that is used for all
installation methods.
- Use split-file.sh to split up a gzipped GENERIC kernel into however many
floppies it takes for the boot kernel. Currently, a stock 5.2 GENERIC
kernel including WITNESS, INVARIANTS, DDB, and other assorted bloat fits
onto 2 additional floppies besides the boot floppy with some room to
spare.
- If SPLIT_MFSROOT is defined, the mfsroot.gz file is similar split into
however many floppies are needed. Currently it is not defined as the
mfsroot.gz fits onto the current boot.flp with room to spare.
- Add a 'makeFloppySet' target which builds a floppy set for a file that
was split using split-file.sh.
- Rename the doMFSKERN target to 'buildBootFloppy' as that more closely
matches what it does now. We no longer build a custom BOOTMFS kernel for
each boot floppy.
- We no longer build a 2.88 boot.flp image to use with emulated CD booting.
The non-emulated cdboot works for almost everyone who boots off of CD and
if it doesn't work on a particular machine, the user can always boot from
the 1.44 floppy images.
- We no longer build a driver floppy or stick kernel modules in the mfsroot
since we now use a stock kernel when booting from floppy.
It is required to check /etc/rc.d/ldconfig before use, because
${CHROOT} sandbox is sometimes 4.x world. If /etc/rc.d/ldconfig
is not there, run ldconfig(8) directly.
Discussed with: imp, obrien, ru
and rebuilt some bits with crypto but without Kerberos support
(most notably SSH) during "make release", to put them into the
"crypto" distribution.
Now that we don't ship the separate "krb5" distribution anymore
(it's now part of the "crypto" distribuion), don't waste time
recompiling SSH bits without crypto and without Kerberos support
in an attempt to put them in the "base" distribution -- it just
doesn't work as SSH always uses crypto code.
We avoid this by not rebuilding KPROGS from kerberos5/Makefile in
release/Makefile and adding "libpam" to SPROGS in secure/Makefile
to ensure it's still rebuilt without crypto support for the "base"
distribution. (Disabling crypto (NOCRYPT) also disables building
of Kerberos-related PAM modules, and it's OK to depend on this.)
This should be a no-op change saving some "make release" time.
* Long statements with '\' continuation now use <4 spaces>continuation
consistently.
* wraps some long lines
* More consistent on how very simular repeated commands are wrapped.
conditional evaluation is done only once in this case, and this may
not account for the fact that some conditionals would be evaluated
differently if "all" has already been run, like is the case with the
loader.help existance check in sys/boot/alpha/common/Makefile.common,
beforeinstall target. This should fix Alpha snapshot builds.
of the bootable UFS image, miniroot.ufs, fully identical to the
contents of the "bootonly" CD-ROM. The image is made available
on FTP as miniroot/miniroot.ufs.gz, for resemblance with NetBSD.
This replaces the boot.flp image for sparc64, making the latter
as coming with NO_FLOPPIES.
Reviewed by: jhb
Tested by: hrs
no longer existing "fixit" crunched binary).
- Simplify the CRUNCH_TARGETS variable's initialization.
- Simplify the release.5 logic a bit by accounting for the fact
that release/*_crunch.conf files were removed two years ago.
Submitted by: jhb, ru
- Moved the creation of the ports distribution to release.7.
- Call MFS root floppy mfsroot.flp even on a small PC98 disk.
Submitted by: jhb
Reviewed by: ru, jhb
the != operator) only when needed.
This change allows me to check out the current version of release/
makefiles only (co -l) to /tmp/release, and use that directory to
build a release (supplying the correct WORLDDIR).
Without this, attempt to "make release" caused an endless fork bomb
while trying to evaluate FIXCRYPTO, and the only way I could get
away from this on a remote box was to "kill -INT 1", thanks to
tcsh(1) and its internal "kill" command.
The release.9 target is now responsible only for generation of MFS root
file systems, that are built for all architectures, even those that do
not provide a floppy installation option. The release.10 target is now
responsible for creation of a set of boot, MFS root, and fixit floppies,
and the NO_FLOPPIES variable now affects only this target.
Also, replaced the FIXIT_TARGET variable with a check of whether the
*FIXITSIZE variables are present for a given architecture, similar to
how this is done when generating boot floppies.
Discussed with: jhb
that causes the bootable ISO images to be created using the floppy
emulation (the old method) as opposed to the new "cdboot" method.
Only copy boot.flp to the 2nd CD-ROM if this variable is defined.
Reviewed by: murray
doing make readmes if /tmp/.skip_ports exists. This file is created
after a complete run, which avoids that we do the lengthy operation
again for a rerelease.
When NOPORTS or NOPORTREADMES are defined, we create the file prior
to starting the release.
used in the EXTSRCDIR case, for example, if one finds it useful
to symlink /usr/src to an actual source tree, and use /usr/src
as the EXTSRCDIR.
This has no effects on release builds not using external directories.
Reviewed by: ru
Approved by: scottl (re)
Also make sure bsdlabel(8) (along with the disklabel(8) compat
link) still appear on the fixit floppies of platforms that use
it natively (alpha, i386, and pc98).
Approved by: re (scottl)
bootable CDs can still be created if the iso.1 target is called
directly.
PR: misc/47191
Submitted by: Joost Bekkers <joost@bps.jodocus.org>
MFC after: 1 week
here interferenced with one in Makefile.inc1. Since we can't avoid
the jugglery in Makefile.inc1 (we want -m /usr/src/tools/build/mk
to come first, before any other -m specified on the command line),
avoid it here.
Reported by: imp
Do it so that systems without the -m option in disklabel(8),
e.g. 5.0-RELEASE, can still build current snapshots.
While here, drop the -s option from doFS.sh; we have not
been using the .size files for a long time.
I don't recall now, but for some reason I didn't think it was needed.
Also place the mdconfig right before the chroot call, to make it stand out
this needs to be done in the standard environment, as we've tried doing it
in the chroot environment before.
and/or breakages due to /etc/make.conf on the host. Move it after
make world and put it in an if-block so that we can include the
commands in the script even if we're not going to make the readmes.
o When building docproj, make sure we propagate the setting of the
FTP_PASSIVE_MODE environment variable. Not propagating the envvar
may cause fetch failures. This increases the number of cases for
which one does not have to prefetch the packages.
probably want to re-buildworld.
If we are not going to rebuild (make rerelease -DRELEASENOUPDATE
and the file ${CHROOTDIR}/tmp/.world_done exists), do not touch
${CHROOTDIR}/usr/src/sys/conf/newvers.sh, as the only effect that
is has is upsetting release.2. Hey, have you ever seen this
"touch: not found" during rerelease? :-)
These variables will be used by pkg_add, which installs mkisofs package
while MAKE_ISOS=YES. See src/release/${arch}/mkisoimages.sh if you doubt.
No objection heard from: current@FreeBSD.org
Suggested by: des, nectar (about *_PROXY variables)
so as to catch errors ASAP rather than later between the ports cvs checkout
and docs cvs checkout. If a distfile doesn't checksum OK, it is very
hard to restart the release with "make rerelease" as that target assumes
all the cvs checkout's happened OK, and if that is not the case the cvs
update that is attempted fails..
on the boot floppies to set the 'driver_floppy' variable in the loader so
that it ends up in the kernel environment and sysinstall will prompt for the
diskette. Booting from CD-ROM does not use this loader.rc file, so folks
booting from CD to do an install will not be prompted.
X-MFC after: as soon as I finish committing to current
Approved by: re (blanket)
generated during release builds.
For the most part, re@ was doing this manually before putting ISO images
on ftp-master, but not always. This should make naming more consistent
and descriptive.
Requested by: jason andrade <jason@dstc.edu.au>, hubs@
Approved by: re (rwatson)
MFC after: 1 month
more manageable.
- Add some helper variables (CVS_{SRC,DOC,PORTS}ARGS) to be used when
using CVS to checkout files. We stick release tags in these helper
variables if they are defined and then use only one cvs command instead
of two cvs commands with an .ifdef to choose between them.
- rm the old src/doc/ports directories as separate commands from the
CVS comands so that the rm commands don't need to be duplicated.
- Simplify the DOMINIMALDOCPORTS case by overriding RELEASEPORTSMODULE to
be ${MINIMALDOCPORTS} thus removing yet another nearly-duplicate cvs
command in an .ifdef.
- Add support for grabbing src/ and doc/ from external directories
specified via EXTSRCDIR and EXTDOCDIR instead of from CVS. The same
is not done for ports/ quite yet as the DOMINIMALDOCPORTS case is a
bit tricky.
The rerelease target scripts have not been changed to use the helper
variables yet, so there is still some room for improvement.
Submitted by: kuriyama (4)
o ia64: Set DOFS_SH to point to an alternate version.
o ia64: Lower BIGBOOTSIZE from 120M (LS-120) to ~5M.
o ia64: Set BIGBOOTLABEL to efi so that we can check for it
in the alternate doFS.sh script. If the label is not efi, we
can invoke the generic doFS.sh.
Strip ${RD}/mfsfd/stand/etc/defaults/rc.conf.
Don't copy loader.help to ${RD}/mfsfd/boot, it serves no useful purpose.
Removed the now no-op commands to copy ${RD}/trees/base/dev bits to
${RD}/mfsfd/dev, now that DEVFS is the default.
Removed UFS_ACL, PSEUDOFS, and COMPAT_FREEBSD4 options from the BOOTMFS
kernel.
Moved miibus network module to the drivers floppy.
isp(4) and mpt(4) now have corresponding modules, move them to the third
floppy as well.
Caution! With these changes, mfsroot.flp has only 11K left, and
kern.flp has even less -- 5K.
in no way final. A typical ia64 wart is that there are no boot blocks.
Instead, we need to create disks with EFI partitions if we want auto
boot to work. All this functionality is not present yet.
can fetch it from there instead of looking in the boot floppy's
directory.
- Add a NO_FLOPPIES variable that disables building of any boot floppies.
Tested on: alpha
is "EARLY", which is kind of an odd name, but I couldn't think of
anything better that fit the traditional 8.3 naming convention for
release documentation files.
o mount (and unmount) devfs in the chroot'd filesystem
o handle umounting devfs in case of a keyboard interrupt
o remove MAKEDEV from the fixit floppy so things fit again (mount_devfs was
added in a separate commit)
o explicitly remove mfsroot.gz and loader.conf when building the cd-rom area
as otherwice cp -Rp aborts when a previous run left identical files around
o increase the number of inodes on the drivers floppy; moving drivers from
the kernel there (to shrink it's size) caused things to overflow
o while we're increasing the driver's floppy inode config, separate out all
parameters from the boot floppy
Approved by: re
floppies.
kern-small.flp and mfsroot-small.flp are for old machines that don't
support 1.44MB floppy. These floppies don't have pci related devices.
kern.flp and mfsroot.flp are normal 1.44MB floppy images.
in seperate directories. This mostly affects RELENG_4 where
not doing so results in ${CHROOTDIR}/usr/src/release being
filled with object files, and "srelease" distribution having
them in.
PR: misc/43825
Prodded by: re (murray)
to use DOC_LANG to specify which languages the doc/ is built for.
Note: be aware that the DOC_LANG setting in /etc/make.conf will now
take the effect on "make release". (This is probably the desired
behavior anyway.)
PR: docs/42924
under way to move the remnants of the a.out toolchain to ports. As the
comment in src/Makefile said, this stuff is deprecated and one should not
expect this to remain beyond 4.0-REL. It has already lasted WAY beyond
that.
Notable exceptions:
gcc - I have not touched the a.out generation stuff there.
ldd/ldconfig - still have some code to interface with a.out rtld.
old as/ld/etc - I have not removed these yet, pending their move to ports.
some includes - necessary for ldd/ldconfig for now.
Tested on: i386 (extensively), alpha
release/${TARGET}/drivers.conf file which list drivers that have to
go into the third floppy.
Also shuffle i386/drivers.conf so that the floppies don't overflow
anymore. Anybody with real/better usage statistics is welcome to
shuffle it differently.
Reviewed by: ru
are no longer propagated to the chrooted environment, e.g. NOKERBEROS.
On the other hand, TMPDIR and MAKEOBJDIRPREFIX should no longer be.
Spotted by: Alexandr Listopad <laa@reis.zp.ua>
then download the distfiles for the ports needed to build the docs before
we enter the chroot environment. This is useful since often times releases
get in a funk trying to download distfiles in the chroot.
Approved by: re (murray, bmah)
MFC after: 5 days