- Add a release-dvd.conf pkg(8) configuration file to override
the default FreeBSD.conf configuration.
- Remove architecture-specific pkg-stage.conf files, consolidate,
and move their contents to scripts/pkg-stage.sh.
- Use 'pkg -vv' to determine the ABI, which is used as the
cache directory.
Prior to these changes, it would be possible for pkg-stage to fetch
conflicting binary packages from multiple repositories.
Tested against: head@r260522, stable/10@r260522
MFC after: 3 days
X-Insta-MFC: possibly
Sponsored by: The FreeBSD Foundation
to what is done for mergemaster(8). This allows etcupdate(8)
to work out-of-box after the first upgrade of a system.
Submitted by: jhb
MFC after: 3 days
Sponsored by: The FreeBSD Foundation
installation.
As part of the 'pkg-stage' target, copy the configuration file
to the 'packages/repos/' directory on the DVD filesystem.
MFC after: 3 days
X-MFC-Before: -RC3
Sponsored by: The FreeBSD Foundation
specifying 'WITH_DVD=1' during 'make release'.
This caused some problems during the freebsd-update builds for
10.0-BETA4.
MFC after: 3 days
Sponsored by: The FreeBSD Foundation
with the additional step of fetching packages for inclusion on the
dvd image.
The 'pkg-stage' target is used to run 'scripts/pkg-stage.sh' if
the '${TARGET}/pkg-stage.conf' configuration file exists (currently
only amd64 and i386).
Allow dvd1.iso to be skipped if NODVD=1.
MFC after: 3 days
X-MFC-With: r258305, r258307, r258308, r258309
Sponsored by: The FreeBSD Foundation
'bootonly.iso' components to create a smaller memory stick image.
This is useful for system recovery, where a full memstick.img image
is not necessarily needed (or wanted). In addition, it is possible to
do bootonly-style installation, where the base.txz, kernel.txz, etc.
are fetched from a remote source.
Provide backwards-compatible target (mini-memstick), to keep in sync
with the targets documented in release/Makefile.
Prompted by: wblock
MFC after: 1 week
X-MFC-after: 10.0-RELEASE
Sponsored by: The FreeBSD Foundation
- Use ln -fs to create a symlink.
- Remove pkgadd for docports.
- Use WITHOUT_JADETEX=yes instead of WITH_JADETEX=no.
- Add {WORLD,KERNEL}_FLAGS to [BTWK]MAKE.
- Use makefs(8) and gpart(8) for sparc64 ISO image[2].
- Add publisher option to makefs(8)[2].
Based on work by: gjb[1]
Discussed with: marius, nwhitehorn[2]
distribution. This can happen if the src/ tree checkout is
within its own ZFS dataset, and the 'snapdir' ZFS property
is set to 'visible.'
Approved by: hrs
MFC after: 3 days
X-MFC-To: stable/9 only
- Add ${IMAGE} for the supported image files. This fixes the install target
on FreeBSD/pc98.
- Use "mkdir -p" instead of "-mkdir" consistently.
Reviewed by: nwhitehorn
kernels specified by KERNCONF are built and packed into release.
The first one is packed into kernel.txz, all others to
kernel.CONFIG.txz.
The first one is installed on bootables in /boot.
the normal distfile mechanism. Thanks to Marc Fonvieille for the patch and
for putting up with me taking entirely too long to commit this!
Submitted by: blackend
so that running make release causes make obj to be run before doing
anything. This fixes a bug wherein, when run for the first time, and
without -DNOSRC, make release would attempt to recursively tar up the src
directory including its own output and enter an infinite loop.
While here, make the cross-building stuff work a little more the way it
should if only one of TARGET/TARGET_ARCH is specified.
to be a meta-target, and having it do this avoids it spewing files all
over the source tree by default (and possible recursive tarring if
distributing a src tarball).
makes booting more reliable (and working at all on USB sticks). While here,
move responsibility for setting up fstab into the various platform mk-*.sh
scripts.
Suggested by: many
infrastructure to use it. make distributeworld can now be used without
preparing its environment first and installs games into its distribution
using the regular make distribute logic instead of post-processing with
a script.
Also add two new targets, packageworld and packagekernel, that tar up the
results of distributeworld and distributekernel (also new), respectively.
used on powerpc64 as well (build scripts, for instance), and the MFS root
must be adjusted upward on powerpc64 as well.
This doesn't completely solve things: sysinstall stil needs some
persuasion to deal with a default kernel named GENERIC64.
perl-5.10. This aligns the release build process with the current
default version of perl in the ports tree.
I'll MFC this to all active branches.
MFC after: 3 days
- Use a better find invocation to purge empty directories from all the dist
trees during a release build. The previous version did not purge
directories whose contents were all empty directories.
- Explicitly blacklist a few files from the lib32 dist instead of using a
whitelist. A better longterm solution is to fix the few offenders to not
install data files during a lib32 install.
MFC after: 3 days
checkout. If SVNROOT is specified, then the source tree will be checked
out from that SVN repository instead of using CVS. ports and docs still
use CVS. If SVNROOT is not specified, then the source tree will be checked
out using CVS. An explicit SVN branch can be specified using SVNBRANCH
(e.g. SVNBRANCH=stable/8). If SVNBRANCH is not set but RELEASETAG is set
to a CVS branch (such as RELENG_8) the appropriate SVN branch will be
inferred from the CVS branch using svnbranch.awk.
Note that there are still several open questions about using SVN instead
of CVS in the release process. However, this does enable one to build a
release from an SVN repository if needed.
Approved by: re (kensmith)
FreeBSD docset during 'make release' this will speed up release
builds;
- sysinstall(8) has also been updated to use these packages with a new
menu allowing people to choose what localized doc to install;
- mention in UPDATING that docs from the FreeBSD Documentation project
are now installed in /usr/local/share/doc/freebsd instead of
/usr/share/doc.
Approved by: re (kensmith)
freaks me out. But it turns out we might be able to generalize
a few of the other things RE uses to assemble the package trees
for releases if the DVDs use a naming theme close to what is used
for the CDROMS (disc1, disc2, etc). So change the name to dvd1.
Hopefully this way src/release/scripts/{package-split.py,package-trees.sh}
can be generalized instead of copied-and-hacked.
MFC after: 5 days
or not to build a tree used for the creation of a DVD image. If that is
enabled set up a DVD tree by installing everything we normally install
to the individual CDROM trees into the one DVD tree. The result is one
image with all the install bits, livefs bits, and doc bits suitable for
burning to a DVD instead of CDROM.
Enable building the DVD for amd64 and i386.
MFC after: 1 week
mininal set of ports required to make the docs. However,
we also need ports/sysutils/cdrtools in order to make the
ISO images. When a platform doesn't have packages, the
release will fail in that case. Add ports/sysutils/cdrtools
to RELEASEPORTSMODULE for the DOMINIMALDOCPORTS case to
handle the NOPORTS release build.
Note that this change doesn't try to handle the NOPORTS with
NODOC case. For we have NOPORTSATALL set and it seems wrong
to check out a ports module in that case.
- It is opt-out for now so as to give it maximum testing, but it may be
turned opt-in for stable branches depending on the consensus. You
can turn it off with WITHOUT_SSP.
- WITHOUT_SSP was previously used to disable the build of GNU libssp.
It is harmless to steal the knob as SSP symbols have been provided
by libc for a long time, GNU libssp should not have been much used.
- SSP is disabled in a few corners such as system bootstrap programs
(sys/boot), process bootstrap code (rtld, csu) and SSP symbols themselves.
- It should be safe to use -fstack-protector-all to build world, however
libc will be automatically downgraded to -fstack-protector because it
breaks rtld otherwise.
- This option is unavailable on ia64.
Enable GCC stack protection (aka Propolice) for kernel:
- It is opt-out for now so as to give it maximum testing.
- Do not compile your kernel with -fstack-protector-all, it won't work.
Submitted by: Jeremie Le Hen <jeremie@le-hen.org>
a bogus partition table and puts the file system on the whole
partition. geom_part doesn't expose the 'c' partition as it's an
artifact of the BSD label and not to be used. Secondly, gpart(8)
is the preferred tool for partitioning disks on ia64.
binaries for the fixit floppy bin/ed/main.c causes a gcc warning
message about argc possibly being clobbered by longjmp or vfork.
We have threatened to ditch floppies for 8.0 but I don't want to
do quite that much rototilling yet so for now turn off -Werror while
building ed (and everything else) for the fixit floppy.
Thanks to jb for pointing out NO_WERROR.
is enabled). This saves around 80MB (for i386) on the ISO images.
Note that this is only from the install media, not the installed
system where the symbols are still installed, if part of the release.
Should anybody want the symbols which match disc1/livecd, they can
just be extracted from the kernel distribution files.
Reviewed by: kensmith
floppies or ISO images). We retain the concept of MD
release documentation for now, although it's fairly unlikely
that we'll ever do this again.
Approved by: re (blanket for installation guide removal)
packages on disc2. This will also let users decide if they want to
have a CD of the docs at all - unless they're disconnected from the
net they will probably find the Web site more useful.
Reviewed by: ru
MFC after: 3 days
it possible to e.g. distribute kernels with config names larger
than eight symbols, without the clash. Previousy, LALALALA
and LALALALA-SMP would be the same tarball. (I think this
comes from the old days where tarballs were put on the MS-DOS
formatted diskettes.)
MFC after: 3 days
pass the "-empty" flag to find(1). This change has no effect other
than to get rid of a few pages of "rmdir: ...: Directory not empty"
error messages. (Note that the "-empty" flag has been supported by
find(1) since 4.3-RELEASE.)
we might get surprises later, like /dev/null having error in the 4th line
reported by make(1). :-)
Tested by: Dmitriy Kirhlarov (who attempted to make release in a jail)
at runtime and to support distributing additional kernels:
o remove kernel from the base tarball
o add new kernel tarballs
o build + package both SMP and GENERIC kernels when an <arch>/conf/SMP
config file is present
o add sysinstall support for multiple kernels
o update sysinstall to probe for the number of cpus on a system
and auto-select smp/up kernel accordingly
o add a post-kernels install hook to fixup /boot/kernel
o add -ldevinfo to boot crunch for sysinstall's cpu probing logic
Notes:
1. On HEAD this code is not currently used because GENERIC kernels
include SMP. This work is mainly intended for RELENG_6 where the
GENERIC kernel is UP. If HEAD changes to match then just enable
WITH_SMP in sysinstall/Makefile.
2. The cpu probing support is done with acpi and MPTable; this means
some systems will require work for auto-detection to work.
3. The handling of /boot/kernel may need to be revisited; for now
we rename one kernel at the last moment (SMP if installed, otherwise
GENERIC). There are other, possibly better, approaches.
Lots of help from ru, emaste, scottl, and jhb.
livecd != disc1 case (i.e. ia64). The line was appended to the
non-existing cdrom.inf file, which was created only later. Move the
line to after the file is created.
MFC after: 1 day