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
different architectures may choose to use different default values
for CFLAGS, for example. (It was added in rev. 1.200 as a measure
to make boot images fit the floppies, and was never reverted.)
the second buildworld environment is fully isolated from parent's
environment variables.
Tested virtually on: snapshots.jp.FreeBSD.org
Approved by: arch@ (silently)
MFC after: 2 weeks
In fact, these variable are set as environment variables since we run
"make TARGET=xxx TARGET_ARCH=xxx"; TARGET and TARGET_ARCH are declared
in the command line arguments. However, if you are not make(1) guy,
it is hard to understand that TARGET/TARGET_ARCH are appropriately set
in a chroot environment (as environment variables).
Now, the only environment variable need to be set explicitly is 'PATH'.
If we set PATH in /mk script, we can make pristine sandbox for release
build (i.e., "env -i /usr/sbin/chroot ${CHROOT} /mk" will work).
Valuable comments about this issue from: ru
Tested on (virtually): snapshots.jp.FreeBSD.org
MFC after: 2 weeks
arch. This makes "make release TARGET_ARCH=foo" really work.
(I only tested with "make rerelease" before to save some time and did
not notice the problem.)
You need to set TARGET_ARCH and possibly TARGET, the same
way you normally do it for a cross build(7).
Renamed `distribworld' to a more natutal `distributeworld'.
Put pwd_mkdb(8) under ${INSTALLTMP}; for `distributeworld'.
that are to be run on the building host. (Currently, bin/sh
and usr.sbin/sysinstall use them.) Make sure we build them
in the correct environment, like we do it in the buildworld.
Do not install games and profiled libraries to the ${CHROOTDIR}
with the initial installworld.
Eliminate the need in the second installworld. For that, make sure
_everything_ is built in the "world" environment, using the right
tool chain.
Added SUBDIR_OVERRIDE helper stuff to Makefile.inc1. Split the
buildworld process into stages, and skip some stages when
SUBDIR_OVERRIDE is set (used to build crypto, krb4, and krb5
dists).
Added NO_MAKEDB_RUN knob to Makefile.inc1 to avoid running
makewhatis(1) at the end of installworld (used when making crypto,
krb4, and krb5 dists).
In release/scripts/doFS.sh, ensure that the correct boot blocks are
used.
Moved the creation of the "crypto" dist from release.5 to
release.2.
In release.3 and doMFSKERN, build kernels in the "world"
environment. KERNELS now means "additional" kernels, GENERIC is
always built.
Ensure we build crunched binaries in the "world" environment.
Obfuscate release/Makefile some more (WMAKEENV) to achieve this.
Inline createBOOTMFS target.
Use already built GENERIC kernel modules to augment mfsfd's
/stand/modules. GC doMODULES as such.
Assorted fixes:
Get rid of the "afterdistribute" target by moving the single use
of it from sys/Makefile to etc/Makefile's "distribute".
Makefile.inc1: apparently "etc" no longer needs to be last for
"distribute" to succeed.
gnu/usr.bin/perl/library/Makefile.inc: do not override the
"install" and "distribute" targets, do it the "canonical" way.
release/scripts/{man,cat}pages-make.sh: make sure Perl manpages and
catpages appear in the right dists. Note that because Perl does
not respect the MANBUILDCAT (and NOMAN), this results in a loss of
/usr/share/perl/man/cat* empty directories. This will be fixed
soon.
Turn MAKE_KERBEROS4 into a plain boolean variable (if it is set it
means "make KerberosIV"), as documented in the make.conf(5)
manpage. Most of the userland makefiles did not test it for "YES"
anyway.
XXX Should specialized kerberized libpam versions be included into
the krb4 and krb5 dists? (libpam.a would be incorrect anyway if
both krb4 and krb5 dists were choosen.)
Make sure "games" dist is made before "catpages", otherwise games
catpages settle in the wrong dist.
Fast build machine provided by: Igor Kucherenko <kivvy@sunbay.com>
For rerelease, run "make -DNOCLEAN world" instead of simple and
insufficient in some cases "make all install". This is especially
true for cross-arch "make release"s which we don't (yet) support.
since we have no ACPI feature in the installation kernel at this time.
Without having this, we'll see
ACPI no autoload failed -- no such file or directory
message at boot time, and it makes some confusion to the users. We can
backout this change if installation kernel has ACPI feature.
PR: 36911 (partly)
- don't make device files since we are in the DEVFS era.
(for the last resort, fixit.flp still has /dev/MAKEDEV.)
- increase FIXITINODE size to 10 times (40000).
After this change, we have 42kbytes of free space, and 38
of free inodes (confirmed with 5.0-CURRENT-20020327-JPSNAP).
Since 4-stable doesn't have DEVFS, we can't MFC this (except FIXITINODE).
/etc/defaults/pccard.conf. Assume for now that only
MACHINE_ARCH=="i386" wants to do PCCARD installs. We're still using
too much space, but this is a big help.
We ensure that 'ports.tgz' tarball should have ports/distfiles directory.
At first, ${CHROOTDIR}/usr/ports is empty (rm -rf ports), then extract
ports files from CVS repository. Then if RELEASEDISTFILES is defined,
${CHROOTDIR}/usr/ports/distfiles directory is created by cp(1). However,
if you don't specify RELEASEDISTFILES, there is no chance to create
${CHROOTDIR}/usr/ports/distfiles directory.
Submitted by: {ushi,tora}.jp.FreeBSD.org
MFC after: 5 days
DOCDISTFILES if defined. No impact should happen with this change.
DOCDISTFILES is introduced by rev. 1.541, to point the directory that
contains the distfiles for ports/textproc/docproj. It's good, but
we also build ports/sysutils/mkisofs during the release (if MAKE_ISOS
is defined). It is natural that cdrtools tarball is prefetched, then
copy it under ${CHROOTDIR}/usr/ports/distfiles.
As a result, DOCDISTFILES variable is somewhat abused for non-doc
tarballs; *DOC*DISTFILES is no longger appropriate name for that.
PR: 16843
PR: 34194
Submitted by: murray
MFC after: 6 days
are removed, because ports.tgz includes distfiles by accident.
However, removing files/directories is *not* mandatory. The only
requirement is "ports.tgz doesn't include distfiles/* but distfiles
directory itself". If this is correct, the right way is to set an
option to tar(1), not to include these files.
This commit is based on PR: 34194, but a little bit of modification
is made by me (original patch doesn't include 'distfiles' directory).
PR: 34194
Reviewed by: Adrian Steinmann <ast@marabu.ch> (PR submitter)
MFC after: 9 days
5.0-CURRENT-20020121-JPSNAP was failed to build since kern.flp has no
space. There is already a hack to kgzip loader, and it makes:
-r-xr-xr-x 1 root wheel 163840 Jan 21 07:40 loader*
-r-xr-xr-x 1 root wheel 90121 Jan 21 08:06 loader.kgz*
73719 bytes of free spaces to us.
doesn't get spammed by RELNOTESng files.
Previously, we built the RELNOTESng files "in place" and then
populated the media (e.g. floppy, cdrom, ftp) areas from the build
directories. However, the distributions got rolled after the
RELNOTESng build, and thus picked up the rendered RELNOTESng files.
Now, we install the RELNOTESng documents to R/stage/release.doc, then
clean out the original directories in src/release/doc. We use the
renditions in the staging area to populate the media areas.
PR: 33141
MFC after: 3 days
(plus re approval)
on CD's 1 and 2. Create a simple /boot/loader.conf on each CD that loads
/boot/mfsroot.gz as a mfs_root image. The mfsroot moved from /mfsroot.gz
to /boot/mfsroot.gz so that all of the boot stuff is in /boot. This allows
a full kernel to be used when installing from CD on all architectures
that support CD booting. Note that on x86, this requires using
/boot/cdboot as a no-emulation boot image instead of /floppies/boot.flp.
Alpha CD. This makes it easier to customize ISO's locally by being able
to replace either the mfsroot or the kernel w/o having to do both. It also
allows us to switch to using the full GENERIC kernel when booting from CD
on the Alpha and on x86 when using cdboot. We don't do this yet, however.
Tested on: x86, alpha
come from the installation document (of the release documentation)
not the readme. The installation document is the one that has the
content of the old FLOPPIES.TXT.
Pointy hat to: bmah
I guess I pooched the permissions on the scripts before committing them
since they're not executable and now it's too late to change (I think -
I suppose you could chmod the ,v files and it might inheirit but I don't
feel like asking the repomeisters to try that).
Noticed by: Dirk Froemberg <dirk@freebsd.org>
+ allows one to set _R so one can more easily make an iso after the fact,
in the directory `make release' was issued in
+ changes name from miniboot to miniinst since we make other bootable ISOs
also (and we might confuse someone)
Approved by: jkh
as part of the release if MAKE_ISOS is set. Will also build the
first CD with packages (in addition to the "minimal" CD) if CD_EXTRA_BITS
points to them. This probably need a bit more work to get fully useful,
but it at least covers the basics for now.
NO_SENDMAIL flag if set. The whole NO_FOO mechanism in /usr/src
is pretty bogus and needs to be re-examined in the context of a
larger argument about modularity, but that's something for another
time.
Submitted by: Peter Pentchev <roam@orbitel.bg>