Lines Matching +full:build +full:- +full:release
29 .Nm release
30 .Nd "release building infrastructure"
33 provides a complete build environment suitable for users to make
37 All of the tools necessary to build a release are available from the
40 .Pa src/release .
41 A complete release can be built with only a single command,
42 including the creation of ISO images suitable for burning to CD-ROM,
45 .Dq Li "make release" .
48 build environment, with no local modifications to the source tree or to
53 .Pq Pa src/release/release.sh
55 .Dq Li "make release"
59 Before attempting to build a release, the user is expected to be
61 .Xr build 7 ,
64 The release build process requires that
70 This is necessary to provide the object files for the release or, when
72 .Pa release.sh ,
77 If the target release build is for a different architecture or machine type,
84 .Fa release.conf
87 The release procedure on some architectures may also require that the
93 assurance, or other aspects of the release engineering process.
94 .Sh CLEAN RELEASE GENERATION
106 .Pa src/release/release.sh .
108 .Ic release.sh
109 .Op Fl c Ar release.conf
111 .Ic release.sh
127 .Dq Li "make release"
134 .Fa release.conf
136 .Bl -tag -width Ev
138 The directory within which the release will be built.
143 tuning of the build chroot.
167 The target machine type for cross-building a release.
169 The target machine architecture for cross-building a release.
178 .Xr build 7 .
189 to use for the release build.
192 to prevent polluting the release with local system changes.
196 to use for the release build.
199 to prevent polluting the release with local system changes.
212 .Pq Ar -j
213 to the number of CPUs available on a SMP-capable system.
223 .Pq Ar -j
224 to half the number of CPUs available on a SMP-capable system.
226 Set to a non-empty value to skip the
235 Set to a non-empty value to include the
239 Set to a non-empty value to compress the release images with
265 build environment setup are skipped.
270 Set to a non-empty value to prevent checkout or update of
278 Set to a non-empty value to prevent checkout or update of
288 .Fa release.conf
289 variables are relevant only to release builds for embedded systems:
290 .Bl -tag -width Ev
292 Set to a non-null value to enable functionality for embedded device
293 release builds.
303 When the build environment is created,
304 .Fa release.sh
305 runs a separate build script located in an architecture-specific
307 .Pa src/release/${EMBEDDED_TARGET}/ .
318 to cross build the target userland.
325 to cross build the target userland.
329 .Fa release.conf
331 .Bl -tag -width Ev
333 Set to a non-null value to build virtual machine disk images as part
334 of the release build.
339 Set to a non-null value to compress the virtual machine disk images with
370 is linked to the historical non-filesystem-labelled file name.
378 Set to specify the list of file system types to build images for.
402 .Bd -literal -offset indent
404 make -C release list-vmtargets
409 release build tools support building virtual machine images for various
416 .Bl -tag -width Ev
423 Set to a non-empty value to enable building virtual machine images
435 .Pa release.conf ,
437 .Pa release.sh .
442 .Bd -literal -offset indent
444 make -C release list-cloudware
449 release build tools have experimental support for building
452 .Fa release.conf
454 .Bl -tag -width Ev
456 Set to a non-null value to build OCI base images.
459 The release makefile
460 .Pq Pa src/release/Makefile
463 .Cm release
468 .Bl -tag -width ".Cm packagesystem"
469 .It Cm release
470 Meta-target to build all release media and distributions applicable to this
473 Copy all produced release media to
476 Builds installation CD-ROM images.
487 Builds installation DVD-ROM images.
504 .It Cm mini-memstick
514 .It Cm vm-image
517 .Cm vm-image
521 environment variable to be set to a non-null value.
522 .It Cm vm-cloudware
529 .It Cm list-cloudware
533 .It Cm list-vmtargets
542 .Bl -tag -width ".Cm packagesystem"
558 Builds the release documentation.
559 This includes the release notes,
569 .Bl -tag -width ".Ev TARGET_ARCH"
574 .Pq e.g., FreeBSD-12.1-RELEASE-amd64 .
576 .Ic `uname -s`-`uname -r`-`uname -p`
587 If it is unset or cannot be found, ports will not be included in the release.
589 If defined, the Ports Collection will be omitted from the release.
591 If set, do not include system source code in the release.
597 This is necessary to cross-build some target architectures.
598 For example, cross-building for ARM64 machines requires
610 Set this to cross-build for a different architecture.
621 .Bl -tag -compact -width Pa
629 .It Pa /usr/src/release/Makefile
630 .It Pa /usr/src/release/Makefile.vm
631 .It Pa /usr/src/release/release.sh
632 .It Pa /usr/src/release/release.conf.sample
633 .It Pa /usr/src/release/tools/*.conf
634 .It Pa /usr/src/release/tools/vmimage.subr
637 The following sequence of commands can be used to build a
638 .Dq "-CURRENT snapshot":
639 .Bd -literal -offset indent
641 git clone -b main https://git.freebsd.org/src.git src
644 cd release
646 make release
647 make install DESTDIR=/var/freebsd-snapshot
651 for FTP, CD-ROM images, etc.) are available in the
652 .Pa /var/freebsd-snapshot
655 The following sequence of commands can be used to build a
656 .Dq "-CURRENT snapshot"
658 .Bd -literal -offset indent
659 cd /usr/src/release
660 sh release.sh
663 Optionally, a configuration file can be used to customize the release build:
664 .Bd -literal -offset indent
665 cd /usr/src/release
666 sh release.sh -c $HOME/release.conf
674 For example, to build an image for the Raspberry Pi:
675 .Bd -literal -offset indent
676 cd /usr/src/release
677 sh release.sh -c arm/RPI-B.conf
680 To build an image for the Raspberry Pi 3:
681 .Bd -literal -offset indent
682 cd /usr/src/release
683 sh release.sh -c arm64/RPI3.conf
686 After running these commands, all prepared release files are available in the
692 .Li release.conf .
710 .Xr build 7 ,
716 .%T "FreeBSD Release Engineering"
717 .%U https://docs.freebsd.org/en/articles/freebsd-releng/
721 .%U https://docs.freebsd.org/en/books/developers-handbook/
728 to produce a release.
734 release engineering effort, significant
736 .Pa src/release/Makefile
738 of building a release in a sterile environment.
742 release,
743 .Pa src/release/Makefile
745 .Pa src/release/generate-release.sh
750 release,
751 .Pa src/release/release.sh
752 was introduced to support per-build configuration files.
753 .Pa src/release/release.sh
755 .Pa src/release/generate-release.sh
761 .Pa src/release/Makefile
763 of the hardships release engineers go through.
765 .Pa src/release/Makefile
767 .An -nosplit
771 .An Poul-Henning Kamp .
779 .Fa generate-release.sh
782 release cycle.
787 .Fa release.sh
790 release cycle.