Commit Graph

7919 Commits

Author SHA1 Message Date
mhorne
8bc03ea64f riscv: increase GENERICSD gap
Leave more room for bootloaders at the beginning of the image. In
particular, the u-boot files for the HiFive Unleashed are ~5MB in size.
2020-12-16 20:21:56 +00:00
gjb
c33e896218 Append the branch commit count to _SNAP_SUFFIX for development
snapshot builds.

Sponsored by:	Rubicon Communications, LLC (netgate.com)
2020-12-16 18:40:49 +00:00
manu
0362223be9 release: Rename arm64/RPI3.conf to arm64/RPI.conf
We now have a u-boot port and config.txt for booting on all 64bits
variant of the RPI boards (RPI2v1.1, RPI3* and RPI4*) so use
the new u-boot-rpi-arm64 and the config_arm64.txt files.

Discussed with: karels, kevans
2020-12-15 15:13:06 +00:00
gjb
bfe4c3e09f Fix staging riscv images.
Sponsored by:	Rubicon Communications, LLC (netgate.com)
2020-12-09 20:38:26 +00:00
gjb
a0c341082f Copy arm64 make-memstick.sh and mkisoimages.sh to the riscv
directory to allow properly building *.iso and *.img files.

Sponsored by:	Rubicon Communications, LLC (netgate.com)
2020-12-09 02:21:25 +00:00
mhorne
6c894501ed release: don't checksum images if there are none
For platforms that don't have any of the memstick, cdrom, or dvdrom
release images (i.e. riscv64), the release-install target will trip up
when invoking md5(1) on the non-existent image files. Skipping this
allows the install to complete successfully.
2020-12-08 00:48:50 +00:00
mhorne
da4352c556 RISC-V release confs
Add two release flavors for RISC-V. First, the traditional "big-iron"
images, capable of generating distribution sets and VM images. Installer
images won't be built yet, but can be trivially enabled in the future
with the addition of riscv/make-memstick.sh.

Second, a GENERICSD embedded image. I've opted for this instead of
board-specific SD card images as it allows users to just dd the u-boot
they want. The RISC-V hardware ecosystem is still young, so a
configuration for e.g. the new PolarFire SoC Icicle Kit would likely see
very few users.

Reviewed by:	gjb
Relnotes:	yes
Differential Revision:	https://reviews.freebsd.org/D27045
2020-12-08 00:42:03 +00:00
mhorne
e6b53b7516 riscv: allow building virtual machine images
RISC-V has the same booting requirements as arm64 (loader.efi, no legacy
boot options), so generated images for both architectures have the same
partition layout.

Reviewed by:	gjb
Differential Revision:	https://reviews.freebsd.org/D27044
2020-12-08 00:37:11 +00:00
mhorne
92399e704d release.sh: add support for RISC-V embedded builds
Since the few existing RISC-V hardware platforms are single board
computers, we can piggyback off of arm/arm64's embedded build support
for generating SD card images.

I don't see a pressing need to change the naming in this file at this
time.

Reviewed by:	gjb, manu
Differential Revision:	https://reviews.freebsd.org/D27043
2020-12-08 00:35:13 +00:00
manu
300518aea9 release: Merge the RPI2 and BEAGLEBONE image with the GENERICSD one
Both RPI2 and BEAGLEBONE are still popular and used arm boards.
Both u-boots can coexist as they are named differently and live in the
fat partition.
This leave us with only one image that can be used for both of those
boards and all the other ones supported by FreeBSD provided that you
install the correct u-boot on it.

Reviewed by:	imp
Relnotes:	yes
Differential Revision:	https://reviews.freebsd.org/D27283
2020-11-24 17:53:13 +00:00
manu
aaf9b92af6 Release: arm: Remove config for old boards
All those board are impossible to buy nowadays and could boot using the
GENERICSD image after putting the correct u-boot on them.

Reviewed by:	imp
Relnotes:	yes
Differential Revision:	https://reviews.freebsd.org/D27282
2020-11-24 17:52:01 +00:00
manu
cb4dcdb148 release: rpi3: Copy the bcm2710 variant of the rpi2
This is the dtb intented to be used for booting RPI2 v1.2 in aarch64.
2020-11-22 18:42:08 +00:00
manu
2248502925 release: Switch the Allwinner board to GPT
Allwinner bootrom have an alternate location for u-boot at 128k.
Work was made recently in u-boot to relocate correctly if loaded from
there.
The advantage of this offset is that we can now use a GPT scheme.
2020-11-19 14:27:01 +00:00
manu
d9f36f76ae pkgbase: Remove %VCS_REVISION% from utilities comments
We don't do that on other packages so be consistent.
It also don't work when building from git.
2020-11-06 15:21:53 +00:00
manu
b653d3fe18 release: Add an image for CI
A lot of projects CI can't do FreeBSD tests currently.
The main reason is that the project CI infrastructure is runned on Linux
and that our images aren't modifiable from a Linux hosts.
Add a basic image specific for this case (called BASIC-CI for a lack of a
better name).
The image have no package pre-installed.
It only have a few modification to have dhcp client runned on the default
interface and sshd started with option to be able to log on without a password
as root.

Sponsored by: The FreeBSD Foundation

Reviewed by:	re (gjb@)
Differential Revision:	https://reviews.freebsd.org/D25598
2020-11-02 21:10:49 +00:00
mhorne
32c81fcf0d arm64: set the correct partition type in make-memstick.sh
We create a UFS root filesystem using makefs(8), and later pass it to
mkimg(1) when creating the final image. The correct partition type is
freebsd-ufs; the freebsd parition type is for partitions containing a
BSD disklabel.

Reviewed by:	emaste
MFC after:	2 weeks
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D26987
2020-10-30 18:22:46 +00:00
mhorne
8a72fd8e3c arm64: convert virtual machine images to GPT
These images were switched to MBR in r281876 as a way to cope with a
hard-coded partition GUID in QEMU's default EFI firmware. Enough time
has passed that this is no longer a problem; QEMU versions >= 4.0
include a copy of edk2 EFI firmware that can detect the root filesystem
properly. Alternatively, sysutils/u-boot-qemu-arm64 can be used.

Switch back to building these images with a GPT partition table, and
re-enable the swap partition.

Reviewed by:	gjb, emaste
MFC after:	2 weeks
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D26986
2020-10-30 18:20:52 +00:00
mhorne
42af19b5b2 vmimage.subr: noisier failure for unsupported targets
The return code of write_partition_layout() doesn't bubble up, so an
invocation of make vm-release for an incorrect/unsupported target will
appear to succeed while make vm-install will fail due to missing
files. This isn't a common point of failure, but is worth handling
properly.

Upgrade this case to print a message to stderr, and exit in place. This
is okay to do since at this point in the execution of mk-vmimage.sh,
cleanup() has already been run.

Reviewed by:	gjb
MFC after:	2 weeks
Differential Revision:	https://reviews.freebsd.org/D26985
2020-10-30 18:18:25 +00:00
mhorne
62c962fdac Slight refactor in vmimage.subr
De-duplicate the invocation of mkimg(1). No functional change.

Reviewed by:	gjb
MFC after:	2 weeks
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D26984
2020-10-30 18:16:10 +00:00
gjb
0a5f31e6db Bump the ISO EFI partition size from 1024 to 2048, following r366732.
Suggested by:	imp
Sponsored by:	Rubicon Communications, LLC (netgate.com)
2020-10-15 23:05:13 +00:00
gjb
82509e6324 Increase the amd64 ISO ESP file size from 800KB to 1024KB.
At some poing over the last week, the bootx64.efi file has grown
past the 800KB threshold, resulting in being unable to copy it to
the EFI/BOOT directory.

 # stat -f %z efiboot.znWo7m
 819200
 # stat -f %z stand-test.PIEugN/EFI/BOOT/bootx64.efi
 842752

The comment in the script that creates the ISOs suggests that 800KB
is the maximum allowed for the boot code, however I was able to
boot an ISO with a 1024KB boot partition.  Additionally, I verified
against an ISO from OtherOS, where the boot EFI partition is 2.4MB.

Sponsored by:	Rubicon Communications, LLC (netgate.com)
2020-10-15 17:12:58 +00:00
bdragon
31affb737a [PowerPC64LE] Add release building script for powerpc64le.
This was originally part of the initial commit, but after discussion in
D26399, I split it out into its own commit after the kernel config file.

Sponsored by:	Tag1 Consulting, Inc.
2020-09-23 01:13:29 +00:00
mhorne
6170083889 arm64: generate ISO release images
Some IPMI implementations on arm64 are reportedly unable to load our
memstick installer images, but support the older ISO format. Start
generating these for arm64.

Unlike installer ISOs for other platforms, these images are UEFI-only.

Reviewed by:	emaste
Relnotes:	yes
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D26452
2020-09-18 14:40:13 +00:00
kevans
5446ad5011 pkgbase: use consistent annotation for objectk eys
Everywhere else we use objects ("scripts", generally) we do sepcify the
optional colon. Be consistent and do the same for directories.

PR:		249273
Submitted by:	Martin <martin.jakob gmx com>
MFC after:	1 week
2020-09-18 14:29:01 +00:00
gjb
1b83fc5616 Fix setting RELENGDIR when release.sh is called from an external
script.

Sponsored by:	Rubicon Communications, LLC (netgate.com)
2020-09-14 15:58:10 +00:00
cperciva
a566fb4da0 Spawn the DHCPv6 client in EC2 instances via rtsold.
Prior to this commit, EC2 AMIs used a "dual-dhclient" tool which was
launched in place of dhclient and spawned both the base system dhclient
for IPv4 and the ISC dhclient from ports for IPv6.

Now that rtsold supports the "M bit" (managed configuration), we can go
back to having the base system dhclient spawned normally, and provide a
script to rtsold which spawns the ISC dhclient from ports when rtsold
decides that it is appropriate.

Thanks to:	bz
MFC after:	1 week
Sponsored by:	https://www.patreon.com/cperciva
2020-09-13 19:56:53 +00:00
cperciva
fb03a0bbc4 Bump the size of EC2 AMIs up to 5 GB.
The FreeBSD base system continues to expand.  4GB is now insufficient;
we passed 3 GB in May 2019; we passed 2 GB in August 2017.  Over half
of the disk space used is in /usr/lib/debug/.

Without this change, instances boot but are unusable, since the first
thing which breaks when VM filesystems are too small is the "pkg install"
in the VM building process.
2020-09-13 19:11:45 +00:00
gjb
e80433d431 Fix indentation following r365638. No functional changes.
Sponsored by:	Rubicon Communications, LLC (netgate.com)
2020-09-11 17:05:09 +00:00
gjb
f346872d54 Add a NOGIT option to avoid explicitly requiring devel/git if the
sources are obtained through a different mechanism.

Reported and tested by:	Ruslan Garipov
Sponsored by:	Rubicon Communications, LLC (netgate.com)
2020-09-11 17:04:09 +00:00
gjb
0f752f681a Fix ordering of the 'pull' subcommand and the '-q' flag.
Pointyhat to:	gjb (myself)
Sponsored by:	Rubicon Communications, LLC (netgate.com)
2020-08-29 21:47:49 +00:00
gjb
0e06b4b8a6 Restore the '-q' flag to the 'git pull' command.
Sponsored by:	Rubicon Communications, LLC (netgate.com)
2020-08-29 21:46:34 +00:00
gjb
046ad81274 Remove the VCSUPDATE command, because git is too stupid to have
the '-C <directory>' after the subcommand.

Meanwhile, hard-code 'git -C <...> pull' for now.

Reported by:	Michael Butler
Sponsored by:	Rubicon Communications, LLC (netgate.com)
2020-08-29 21:42:59 +00:00
gjb
6799b22069 Refine the VCSUPDATE logic further:
- Look for the .git directory instead of top-level directory.
- Use 'git -C' instead of cd(1).

Sponsored by:	Rubicon Communications, LLC (netgate.com)
2020-08-29 16:04:02 +00:00
gjb
ae25b6a466 Add a VCSUPDATE command to run 'git pull' instead of 'git clone'
if the tree already exists.

Reported by:	Michael Butler
Sponsored by:	Rubicon Communications, LLC (netgate.com)
2020-08-29 15:50:27 +00:00
gjb
a686784046 Indentation fixes. No functional changes.
Sponsored by:	Rubicon Communications, LLC (netgate.com)
2020-08-29 15:31:23 +00:00
gjb
73e1bd0f1d Avoid the build from falling over if devel/git is not installed
on the system.  Set a null branch/hash in this case, to avoid
undefined GITREV/GITBRANCH variables from falling over in other
areas.

Reported by:	many
Sponsored by:	Rubicon Communications, LLC (netgate.com)
2020-08-29 15:30:21 +00:00
gjb
225bb11480 Install devel/git from packages if NOPORTS is set in the release.sh
configuration file.

Reported by:	Michael Butler
Sponsored by:	Rubicon Communications, LLC (netgate.com)
2020-08-29 15:13:07 +00:00
gjb
e3301bbebf Add a new line to force a commit to verify if lwhsu did indeed
fix the jenkins build by adding git to the dependency list.

Sponsored by:	Rubicon Communications, LLC (netgate.com)
2020-08-28 02:09:10 +00:00
gjb
c5018a89b8 Correct the conditional evaluating if git exists.
Pointyhat to:	gjb (myself)
Sponsored by:	Rubicon Communications, LLC (netgate.com)
2020-08-27 14:36:00 +00:00
gjb
da1432a246 Do not unconditionally build git from ports if it already exists.
Sponsored by:	Rubicon Communications, LLC (netgate.com)
2020-08-27 14:29:06 +00:00
gjb
32c7f4b6c9 Adjust the logic to locating GIT_CMD.
Use 'git -C' instead of cd(1). [1]

Suggested by:	garga [1]
Sponsored by:	Rubicon Communications, LLC (netgate.com)
2020-08-27 13:33:21 +00:00
gjb
3f72f18c05 Fix passing OPTIONS_UNSET with multiple options to make(1).
While here, adjust the copyright.

Sponsored by:	Rubicon Communications, LLC (netgate.com)
2020-08-27 13:25:24 +00:00
gjb
9fb0bc5c9e Fix the current working directory when setting GITREV and
GITBRANCH.

Sponsored by:	Rubicon Communications, LLC (netgate.com)
2020-08-25 18:30:12 +00:00
gjb
ac09ebbd94 Remove an escape that does not belong.
Sponsored by:	Rubicon Communications, LLC (netgate.com)
2020-08-24 19:00:57 +00:00
gjb
576c0d6e49 MFH
Sponsored by:	Rubicon Communications, LLC (netgate.com)
2020-08-12 17:16:26 +00:00
gjb
4ddc6b9a1a release: update to use git instead of svn:
Makefile.* (cloudware):
 - Consistify setting the BUILDDATE for snapshots.
   (Missed a spot)

Sponsored by:	Rubicon Communications, LLC (netgate.com)
2020-08-12 16:30:33 +00:00
gjb
2349eb10aa release: update to use git instead of svn:
Makefile.* (cloudware):
 - Consistify setting the BUILDDATE for snapshots.

release.conf.sample/release.sh:
 - Run 'git clone' in 'quiet' mode.

Makefile.inc1:
 - Set BUILDDATE and export the variable.

Sponsored by:	Rubicon Communications, LLC (netgate.com)
2020-08-12 16:25:25 +00:00
manu
ec1212e9be pkgbase: Replace / with | for PKG_WWW
PKG_WWW contain / char, replace the delimiter by a '|'.

Reported by:	0mp
2020-08-11 10:07:59 +00:00
manu
74f10f6149 pkgbase: Add PKG_NAME_PREFIX, PKG_MAINTAINER and PKG_WWW
This is useful for downstream users to customize the packages.
Reviewed by:	emaste
Differential Revision:	https://reviews.freebsd.org/D26019
2020-08-11 08:42:24 +00:00
manu
9f1f353e19 release: RPI3: Add the RPI2 DTB
The RPI2 v1.2 is using the same SoC as the RPI3 so it can boot this image
but needs the RPI2 dtb.

MFC after:	3 days
2020-08-08 16:56:20 +00:00