1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-11-21 07:15:49 +00:00
Commit Graph

8222 Commits

Author SHA1 Message Date
Colin Percival
e8263ace39 release: Don't break if firmware install fails
On some platforms (e.g. powerpc) we don't have packages, so we can't
install them onto the ISOs.  Proceed with building the images anyway.

Reported by:	Weekly snapshot builds
Fixes:	7e2996c1f5 ("release: install wireless firmware onto disc1 and dvd")
MFC after:	1 minute
2024-11-20 22:13:24 -08:00
Bjoern A. Zeeb
7e2996c1f5 release: install wireless firmware onto disc1 and dvd
Wireless driver firmware is no longer added to the src tree.
In order to have wireless support in the installer for the new drivers
we install the firmware packages onto disc1 (and memstick) and dvd
if built on FreeBSD and NOPKG is not defined (to not break cross-builds
from Linux or OSX and to allow people to opt-out).

Sponsored by:	The FreeBSD Foundation
Submitted by:	cperciva (the orig. commands and where to place them)
Reviewed by:	jrtc27
MFC after:	6 hours
Differential Revision: https://reviews.freebsd.org/D47407
2024-11-20 13:05:04 +00:00
Baptiste Daroussin
9229236fb9 basic-cloudinit: remove duplicated rc.conf entry 2024-11-20 09:48:57 +01:00
Doug Rabson
ca1f1d2c94 release: Add missing dependencies in the minimal OCI image
The pkg-bootstrap binary depends on fetch.

Reviewed by:	cperciva, emaste, bapt
Differential Revision:	https://reviews.freebsd.org/D47661
MFC after:	1 day
2024-11-19 10:39:14 +00:00
Colin Percival
d54fdd1663 release: Remove empty suffix from file names
For "release" builds (as opposed to "snapshot" builds -- in this
context BETAs and RCs are "releases") ${SNAP_SUFFIX} is empty; but it
stuck into some ociimages filenames via a copy-and-paste error.

The final filenames on the download mirrors were not affected, so
this does not need to be merged to releng/14.2.

MFC after:	3 days
Sponsored by:	Amazon
2024-11-17 16:18:20 -08:00
Colin Percival
976e1d36be release: Don't copy container images into /ftp/
These are installed into /ociimages/ and stage onto the download site
at /OCI-IMAGES/; they don't belong in the same directory as the
"distribution" .txz files.

Fixes:		d03c82c28d ("release: add optional OCI images")
MFC after:	1 minute
Sponsored by:	Amazon
2024-11-15 13:51:47 -08:00
Colin Percival
47866cdcc7 release: Exclude container images from globs
We use a *.txz glob to get all of the "distributions" which comprise
the FreeBSD release, but we now (optionally) also build container
images which are .txz files.  Grep those out from the distribution
lists.

A better long-term fix would probably be to generate an explicit list
of the .txz files we want rather than using an overbroad glob and
filtering out the files we *don't* want.

Fixes:		d03c82c28d ("release: add optional OCI images")
MFC after:	1 minute
Sponsored by:	Amazon
2024-11-14 14:30:44 -08:00
Colin Percival
e95e3e6eb7 release: Publish OCI images on "ftp" mirrors
If WITH_OCIIMAGES is set, "make ftp-stage" will now publish those bits
into a directory under /OCI-IMAGES/, similar to how we publish CI and
VM images.

MFC after:	1 minute
2024-11-12 22:36:14 -08:00
Ed Maste
3750ccefb8 Retire MK_PROFILE infrastructure
It was disabled by default in fe52b7f60e.  We planned to (but did not)
remove the option before FreeBSD 14.  Remove it now, for FreeBSD 15.

Relnotes:	Yes
Reviewed by:	imp
Sponsored by:	The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D31558
2024-11-12 12:11:51 -05:00
Bjoern A. Zeeb
2483a2d368 release: add wifi-firmware-kmod@release to ship as package
Rather than adding the rtw88 package add the flavored port for all the
supported wireless drivers we recently added support for.

Sponsored by:	The FreeBSD Foundation
MFC after:	3 days
Pointed out by:	cperciva (as part of the set of changes)
Reviewed by:	cperciva (#releng)
Differential Revision: https://reviews.freebsd.org/D47406
2024-11-10 19:00:55 +00:00
Doug Rabson
d03c82c28d release: add optional OCI images
This adds three OCI archive format files to the release containing
FreeBSD base images suitable for static linked, dynamic linked and shell
workloads. The shell image also contains pkg-bootstrap and can be easily
extended by installing packages (including pkgbase packages).

Reviewed by: dch, cpersiva, jlduran, zlei
Differential Revision: https://reviews.freebsd.org/D46759
MFC after: 2 days
2024-11-08 13:23:08 +00:00
Colin Percival
e166fea685 release: Remove useless ls
Replace "$((ls *.txz))" with "*.txz"

Reported by:	jrtc27
2024-11-06 14:26:09 -08:00
Colin Percival
cdfd0600dc release: Include -dbg files in dvd image
In 2016, commit 8834318685 reworked the code for excluding -dbg
files from install media, and in the process accidentally broke it
for dvd images ('grep -v' should have been 'grep -vE').

FreeBSD Update builds later began to depend on this, and in any case
since DVD images are intended as "include everything" images there's
no point excluding those; so remove the (broken) filtering from DVD
image builds.

Sponsored by:	Amazon
MFC after:	2 days
2024-11-05 13:39:38 -08:00
Jose Luis Duran
6baae68d7f
release: Remove binutils
Reviewed by:	mhorne, emaste
Approved by:	emaste (mentor)
Fixes:	74e8d41e0a
MFC after:	1 week
Pull Request:	https://github.com/freebsd/freebsd-src/pull/1485
2024-11-01 16:49:51 +00:00
Dave Cottlehuber
89311e6f98 release: increase VMSIZE for Oracle images
While OK for 14.x, both 13.x and 15.0 are failing in snapshot
builds.

Reported by:	cperciva
Sponsored by:	SkunkWerks, GmbH

Reviewed by:	emaste
Approved by:	cperciva
Differential Revision:	https://reviews.freebsd.org/D47285
2024-10-31 20:47:15 +00:00
Colin Percival
2f3f867ac6 ACPI: Add ACPI_Q_AEI_NOPULL quirk and use in EC2
AWS Graviton [1234] systems have a bug in their ACPI where they mark
the PL061's GPIO pins as needing to be configured in PullUp mode (in
fact the PL061 has no pullup/pulldown resistors); this flag needs to
be removed in order for _AEI objects to be handled on these systems.

Reviewed by:	Ali Saidi
MFC after:	1 week
Sponsored by:	Amazon
Differential Revision:	https://reviews.freebsd.org/D47239
2024-10-25 19:34:56 -07:00
Dave Cottlehuber
c611041660 release: tweak Oracle Cloud settings
- use raw image disk type and enable zfs, this yields smaller
  images for upload after using native qcow2 + zstd compression

Reviewed by:	lwhsu, emaste
Differential Revision:	https://reviews.freebsd.org/D47055
MFC after:	3 days
Approved by:	emaste
2024-10-25 15:13:20 +00:00
Dave Cottlehuber
1be84d745b release: move OCI to ORACLE
This allows future releng tooling to use OCI for the industry
standard Open Container Initiative tooling, reducing potential
for confusion.

Approved by:	cperciva
Reviewed by:	emaste
Differential Revision:	https://reviews.freebsd.org/D46975

MFC after:	3 days
Sponsored by:	SkunkWerks, GmbH
2024-10-15 09:28:12 +00:00
James Wright
a0018c65a7 EC2: Disable floppy and parallel port devices
PR:	233861
Reviewed by:	lwhsu, imp
Differential Revision:	https://reviews.freebsd.org/D18482
2024-10-12 22:43:33 -07:00
Baptiste Daroussin
b22be3bbb2 release: basic-cloudinit disable rsa key 2024-10-09 15:50:25 +02:00
Jose Luis Duran
120740221f release: basic-cloudinit improve default image
- Add the firstboot-freebsd-update package, as long as we do not have
  pkgbase, this is needed
- Support SLAAC by default to complement DHCPv4 (use SYNCDHP instead)

Signed-off-by: Jose Luis Duran <jlduran@gmail.com>
2024-09-26 13:01:03 +02:00
Colin Percival
714a6d4368 EC2: Set entropy_efi_seed_size to 64
This dramatically improves boot speeds on Graviton 2 instances.

MFC after:	1 week
Sponsored by:	Amazon
Differential Revision:	https://reviews.freebsd.org/D46636
2024-09-22 00:35:48 -07:00
Ahmad Khalifa
599273f942 Copy the new ia32 loader
This handles copying in install-boot.sh and bsdinstall's bootconfig.

install-boot.sh:
make_esp_file now optionally takes extra arguments so it can copy
multiple files. This is used by the amd64 release scripts.
make_esp_device also takes an extra optional argument for efibootname.
This is currently unused, but it can be used in the future to do
something like:
make_esp_device loader.efi bootx64
make_esp_device loader_ia32.efi bootia32

Reviewed by: imp
Pull Request: https://github.com/freebsd/freebsd-src/pull/1098
2024-09-20 08:45:10 -06:00
Colin Percival
0aabcd75db EC2: Disable RSA host key generation for sshd
These are largely obsolete, and generating them is responsible for
over 10% of the total boot time of EC2 instances.

Sponsored by:	Amazon
Differential Revision:	https://reviews.freebsd.org/D46638
2024-09-17 23:47:58 -07:00
Colin Percival
647299caa0 EC2: Add new "small" AMIs
These are the same as the standard "base" images except:

* They don't have kernel or world debug symbols,
* They don't have FreeBSD tests,
* They don't have 32-bit libraries,
* They don't have LLDB,
* They don't have the Amazon SSM Agent pre-installed,
* They don't default to installing the awscli at first boot.

This reduces the amount of disk space in use when the EC2 instance
finishes booting from ~5 GB to ~1 GB.

Sponsored by:	Amazon
Differential Revision:	https://reviews.freebsd.org/D46509
2024-09-03 22:57:06 -07:00
Colin Percival
40ff0753ab EC2: Make amazon-ssm-agent optional
Move it from VM_EXTRA_PACKAGES in ec2.conf to VM_EXTRA_PACKAGES in
ec2-{base,cloud-init}.conf

Sponsored by:	Amazon
Differential Revision:	https://reviews.freebsd.org/D46508
2024-09-03 22:57:06 -07:00
Colin Percival
f961ddb28d EC2: Move network config into a separate function
Having the "base" FreeBSD network configuration (aka. what is used
when not using cloud-init) in ec2.conf will allow us to reuse it in
other AMIs.

Sponsored by:	Amazon
Differential Revision:	https://reviews.freebsd.org/D46507
2024-09-03 22:57:06 -07:00
Colin Percival
81d3df02bc vmimage.subr: Pass $INSTALLOPTS to install*
This makes it possible for a VM build configuration file to pass
options to make installworld/installkernel/distribution, e.g.
WITHOUT_DEBUG_FILES=YES in order to produce smaller images.

Note that these options are only applied at install time, not at
build time (since the same build is installed into many different
VM images), so not all src.conf options are usable here.

Sponsored by:	Amazon
Differential Revision:	https://reviews.freebsd.org/D46506
2024-09-03 22:57:06 -07:00
Mark Johnston
b4dd5ff5f4 pkgbase: Avoid hard-coding the package prefix in generate-ucl.sh
MFC after:	1 week
Sponsored by:	Innovate UK
2024-08-26 20:49:50 +00:00
Gordon Tetlow
e972e408d1
release: Redirect etcupdate logfile to /dev/null.
Stop shipping a log file for etcupdate. This is a source of
non-reproducability as it uses mktemp thereby guaranteeing the output is
different each run.

MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D46317
2024-08-23 22:35:07 -07:00
Colin Percival
c482d65cd1 EC2: Drop UEFI-PREFERRED from AMI names
Starting in September 2021 EC2 AMI names have included the boot method:
"BIOS", "UEFI", or "UEFI-PREFERRED".  The third option became available
in June 2023 and allows AMIs to boot via UEFI on EC2 instance types
which support that, but fall back to (much slower) BIOS booting on the
instance types which don't support UEFI.

Since UEFI-PREFERRED is basically a best-of-both-worlds option and is
now the default, there's no point mentioning it in the AMI names.  If
for some reason an AMI is built with the boot method forced to BIOS or
UEFI, that will still be included in the AMI name.

This will not be MFCed, in case anyone has scripts which look at the AMI
names on 13.x/14.x.

Sponsored by:	Amazon
2024-08-19 11:11:17 -07:00
Colin Percival
2dac89aee3 EC2: Bump AMI size to 8 GB
8 GB root disk images make FreeBSD/EC2 boot much faster than 6 GB
root disk images.

MFC after:	2 days
Sponsored by:	Amazon
2024-08-19 11:11:04 -07:00
Colin Percival
e06022e1bf Makefile.ec2: Add missing CLEANFILES entry
Without this, "make clean ec2ami" won't build a new AMI.

MFC after:	3 days
Sponsored by:	Amazon
2024-08-19 11:10:52 -07:00
Colin Percival
54a543d5ea EC2: Set dhclient_arpwait="NO"
The DHCP server in EC2 knows exactly which system should be using
which IP address (and in fact EC2 has source IP filtering on by
default) so there's no point ARPing an address before using it.

The preceding commits (changing the ARP wait time from 2 s to 250 ms)
and this one (eliminating the wait entirely in EC2) reduce the time
required for a newly launched FreeBSD/EC2 instance to launch by 2
seconds.

Discussed with:	icattard
MFC after:	10 days
Sponsored by:	Amazon
2024-08-09 16:55:30 -07:00
Colin Percival
ed807f7bca release.sh: Pass ARCH_FLAGS when setting VMSIZE
The default VM size may depend on the architecture.  In particular,
it is currently larged on riscv64 due to a toolchain issue which
results in bloated binaries.

MFC after:	3 days
Fixes:	59c21ed6e8 "release: Bump default VM size for riscv64 to 6 GB"
Sponsored by:	Amazon
2024-07-06 10:18:03 -07:00
Colin Percival
59c21ed6e8 release: Bump default VM size for riscv64 to 6 GB
Due to issues with the riscv64 toolchain, some binaries end up
significantly larger on riscv64 than they should be.  This results
in riscv64 VM images -- and at present *only* riscv64 images -- not
fitting within the default 5 GB filesystem size.

Bump the default size for riscv64 to 6 GB until the toolchain issues
can be resolved.

MFC after:	1 week
Sponsored by:	Amazon
2024-06-28 15:47:11 -07:00
Colin Percival
45846afcb7 release: Stop publishing non-FS-tagged VM images
VM, BASIC-CI, and BASIC-CLOUDWARE images are published with the
filesystem type (UFS or ZFS) in the file name.  For backwards
compatibility we have published the UFS images with no filesystem
in the filename (aka with the same file names as we used before we
supported building ZFS VM images); those are going away now.

This will not be MFCed.
2024-06-21 14:42:10 -07:00
Colin Percival
836f00ebb9 release: Don't publish CW if !WITH_CLOUDWARE
If WITH_CLOUDWARE is not set, we didn't build BASIC-CLOUDWARE; don't try
to install it into the /VM-IMAGES/ directory as part of ftp-stage.

Fixes:	4771c2e9d1 "release: Publish non-uploaded cloudware bits"
MFC after:	6 days
2024-06-20 17:41:14 -07:00
Colin Percival
4771c2e9d1 release: Publish non-uploaded cloudware bits
While most "cloudware" (AWS, Azure, GCP, Vagrant) images get uploaded
to their respective clouds, we have two images -- BASIC-CI and
BASIC-CLOUDINIT -- which are published via the FTP mirrors.  We have
been handling these using a manual and error-prone process of copying
them from the internal build directories into the FTP staging tree,
but they should be handled using the "make install ftp-stage"
mechanism which is used for all the other published images.

This commit 1. Adds a new 'make cloud-install' target which is run as
part of 'make install' and installs BASIC-CI and BASIC-CLOUDINIT images,
and 2. Extends 'make ftp-stage' in Makefile.mirrors to copy those bits
into the FTP staging area.

As a side benefit, this will also make BASIC-CI and BASIC-CLOUDINIT
images available for arm64; until now they have only been available
for amd64.

MFC after:	1 week
2024-06-19 12:36:44 -07:00
Ed Maste
2d6094615a release: Remove mergemaster mm-mtree.sh script
It is unused after 8ee478dfd4 ("release: stop generating mergemaster
databases").

Sponsored by:	The FreeBSD Foundation
2024-06-17 14:37:46 -04:00
Colin Percival
e50fec56bf Revert "release/Makefile.vm: Use qemu-user-static-devel"
This breaks the weekly snapshot builds.  We'll try again once Warner has
some time to debug the qemu-user-static-devel port.

This reverts commit a04ecddfc7.
2024-06-02 07:07:52 -07:00
Colin Percival
a04ecddfc7 release/Makefile.vm: Use qemu-user-static-devel
This is a newer version of the qemu-user-static code, which is very
much out of date.

Requested by:	imp
2024-05-30 10:00:42 -07:00
Colin Percival
f81c0904f7 Add rtw88 firmware to DVD package set
Add net/wifi-firmware-rtw88-kmod since it is no longer included in
the base system on 15.x.  (It is present in 14.x, so this change will
not be MFCed.)
2024-05-23 17:02:40 -07:00
Colin Percival
d31ed58b9f Modernize DVD package set in preparation for 14.1
Remove archivers/unzip (now in base) and emulators/linux_base-c7 (old
and unlikely to be useful without other linux packages being installed),
ports-mgmt/portmaster (now largely obsolete and discouraged in favour
of using pkg and binary packages) and x11-drivers/xf86-video-vmware
(questionably useful).

Replace devel/git with devel/git@lite (sufficient for most purposes),
and adjust the "ensure the ports exist to sanitize the list" code to
ignore the @lite part when checking that /usr/ports/devel/git exists.

Add sysutils/seatd and x11-wm/sway for wayland support.

MFC after:	1 minute
Differential Revision:	https://reviews.freebsd.org/D45278
2024-05-23 17:01:59 -07:00
Colin Percival
ce7756fdca release: make dependencies, not recursive make
For historical reasons, the vm-release and cloudware-release targets
were written as recursive makes of ${VMTARGETS} and ${CLOUDTARGETS};
this worked fine until we started running `make release -jN` and
had both VM and cloud targets depending on ${QEMUTGT}, at which
point things exploded when we tried to build the port twice at the
same time.

Switch vm-release and cloudware-release to have make dependencies on
their individual components; this way a single make process runs and
is aware of the duplicate dependency (and only runs it once).

MFC after:	5 days
2024-05-09 00:52:25 -07:00
Colin Percival
0b1c5628c7 release: Rework vm_extra_pre_umount
The vm_extra_pre_umount function in vmimage.subr served two purposes:
It removed /etc/resolv.conf and /qemu (if cross-building), and it
provided a function for cloudware to override in order to make cloud
specific changes to the filesystem before constructing a disk image.

This resulted in a number of bugs:
1. When cross-building, the emulator binary was left as /qemu in the
Azure, GCE, Openstack and Vagrant images.
2. The build host's resolv.conf was left as /etc/resolv.conf in the
basic-ci and basic-cloudinit images.
3. When building GCE images, a Google-specific resolv.conf file was
constructed, and then deleted before the disk image was created.

Move the bits needed for running code inside a VM staging directory
from vm_install_base into a new vm_emulation_setup routine, and move
the corresponding cleanup bits from vm_extra_pre_umount to a new
vm_emulation_cleanup routine.

Remove the /qemu and /etc/resolv.conf cleanups from the cloudware
configuration files (where they exist) since we will now be running
vm_emulation_cleanup to remove those even when vm_extra_pre_umount
has been overridden.

Override vm_emulation_cleanup in gce.conf since in that one case (and
*only* that one case) we don't want to clean up resolv.conf (since it
was constructed for the VM image rather than copied from the host).

releng/14.1 candidate.

MFC after:	1 week
Sponsored by:	https://www.patreon.com/cperciva
2024-05-06 13:40:47 -07:00
Colin Percival
9287d1853c release: Use qemu when cross-building vm images
For a bit over 5 years, we have used qemu when cross-building cloudware
images; in particular, it's necessary when installing packages which
might include post-install scripts.

Use qemu in the vm-images target too; while "generic" vm images don't
install packages, they still run newaliases and /etc/rc.d/ldconfig,
both of which fail without appropriate emulation.

MFC after:	1 week
2024-05-04 23:59:29 -07:00
Lexi Winter
2f9966ff63 packages: add package for NTP
Reviewed by: imp, manu
Pull Request: https://github.com/freebsd/freebsd-src/pull/1193
2024-05-04 07:41:54 -06:00
Colin Percival
f4b08097d8 release: Stage non-UFS images in vm-images-stage
When the VM image building code was updated to support building
non-UFS images, the vm-images-stage target was not updated to
install those newly built images to the FTP site.  As a result, we
have been sending weekly snapshot announcements since August claiming
that ZFS VM images are available when they are not in fact present
anywhere publicly accessible.

Fixes:	32ae9a6b39 "release: Build UFS and ZFS VM images"
Reported by:	Michael Dexter
MFC after:	5 days
2024-05-01 11:02:49 -07:00
Lexi Winter
e05b6502f9 package: fix dependency generation
A bug in release/packages/generate-ucl.sh causes package dependencies
(other than shlib depends) to not be generated correctly, meaning
packages are missing their dependencies.

generate-ucl.sh creates the UCL file by:

1. copying ${uclsource} (template.ucl) to ${uclfile}
2. appending dependencies to ${uclfile}
3. calling generate-ucl.lua on ${uclsource} to create ${uclfile}

This breaks because the dependencies added in step 2 are overwritten in
step 3.

Fix this by calling generate-ucl.lua with ${uclfile} as both the input
and output file, so anything we added to ${uclfile} is preserved.

Reviewed by: des, imp
Pull Request: https://github.com/freebsd/freebsd-src/pull/1203
2024-04-29 08:31:36 -06:00