Skip site navigation (1)Skip section navigation (2)
Message-ID:  <vsrnpptctovresbxatrz@hovo>

index | next in thread | raw e-mail

Hi,

I want to build VM images from source, the same ones that are here:
- https://download.freebsd.org/releases/VM-IMAGES/15.0-RELEASE/amd64/Latest/

What I did:


host # pkg install gitup

host # vi /usr/local/etc/gitup.conf

host # grep -A 7 release /usr/local/etc/gitup.conf
	"release" : {
		"repository_path"  : "/src.git",
		"branch"           : "releng/15.0",
		"target_directory" : "/usr/src",
		"ignores"          : [
			"sys/[^\/]+/conf",
		],
	},

host # gitup release
# Host: git.freebsd.org
# Port: 443
# Repository Path: /src.git
# Target Directory: /usr/src
# Want: 0730d5233286ff35e9fa83309faa1b2d52fe9a65
# Branch: releng/15.0
# Action: clone
 + /usr/src/.arcconfig
 + /usr/src/.arclint
 + /usr/src/.cirrus-ci/pkg-install.sh
(...)
 + /usr/src/usr.sbin/zzz/Makefile.depend
 + /usr/src/usr.sbin/zzz/zzz.8
 + /usr/src/usr.sbin/zzz/zzz.sh
#
# Please review the following file(s) for important changes.
#	/usr/src/UPDATING
#
# Done.

host # gitup ports 
# Host: git.freebsd.org
# Port: 443
# Repository Path: /ports.git
# Target Directory: /usr/ports
# Want: 799ba8473b623f60d69693f6338fdefdb7d9b298
# Branch: main
# Host: git.freebsd.org/s now  
# Port: 443
# Repository Path: /src.git
# Target Directory: /usr/src
# Want: 0730d5233286ff35e9fa83309faa1b2d52fe9a65
# Branch: releng/15.0
(...)
# Done.

host # cd /usr/src
host # make -j 24 buildworld buildkernel
(...)
--------------------------------------------------------------
>>> Kernel build for GENERIC completed on Wed Apr  8 01:15:27 CEST
2026
--------------------------------------------------------------
>>> Kernel(s)  GENERIC built in 147 seconds, ncpu: 72, make -j24
--------------------------------------------------------------

host # cd /usr/src
host # make update-packages

host # cd /usr/src/release

host # cp release.conf.sample custom.conf

host #:/usr/src/release # cat custom.conf 
#!/bin/sh

# DIRECTORY WITHIN WHICH RELEASE WILL BE BUILT
  CHROOTDIR="/scratch"

# VERSION CONTROL SYSTEM
  GITROOT="https://git.freebsd.org/";
  GITSRC="src.git"
  GITPORTS="ports.git"

# SET src/ports/doc BRANCHES
  SRCBRANCH="release/15"
  PORTBRANCH="main"

# TARGET ARCHITECTURE
  TARGET="amd64"
  TARGET_ARCH="amd64"
  KERNEL="GENERIC"

# SPECIFY CUSTOM make.conf AND/OR src.conf
# MAKE_CONF="/etc/local/make.conf"
# SRC_CONF="/etc/local/src.conf"

# USE make(1) FLAGS
# MAKE_FLAGS="-s"
# WORLD_FLAGS="-j $(nproc)"
# KERNEL_FLAGS="-j $(nproc)"

# MISCELLANEOUS 'make release' SETTINGS
# NOPORTS=
# NOSRC=
# WITH_DVD=
# WITH_COMPRESSED_IMAGES=

# SET '1' TO DISABLE MULTI THREADED xz(1) COMPRESSION
# XZ_THREADS=0

# SET TO NON-EMPTY VALUE TO SKIP CHECKOUT /usr/src IN chroot(8)
# INTENDED FOR USE WHEN /usr/src ALREADY EXISTS
  SRC_UPDATE_SKIP=skip

# SET TO NON-EMPTY VALUE TO SKIP CHECKOUT /usr/ports in chroot(8)
# INTENDED FOR USE WHEN /usr/ports ALREADY EXISTS
  PORTS_UPDATE_SKIP=skip

# SET TO NON-EMPTY VALUE TO BUILD VM IMAGES
  WITH_VMIMAGES=yes

# SET TO NON-EMPTY VALUE TO COMPRESS VM IMAGES WITH xz(1)
# WITH_COMPRESSED_VMIMAGES=

# IF 'WITH_VMIMAGES' SET - USE FOR NAME OF VM FILE
  VMBASE="custom-vm"

# IF 'WITH_VMIMAGES' SET - SET SIZE OF VM FILE
  VMSIZE="10g"

# IF 'WITH_VMIMAGES' SET - SET NEEDED FORMATS
  VMFORMATS="vhdf vmdk qcow2 raw"

# SET TO NON-EMPTY VALUE TO BUILD CLOUD VMS 
# WITH_CLOUDWARE=yes

# IF 'WITH_CLOUDWARE' set - SPECIFY CLOUD PROVIDERS
# CLOUDWARE="EC2 GCE ORACLE VAGRANT-VIRTUALBOX VAGRANT-VMWARE"

# IF 'WITH_OCIIMAGES' SET BUILD 'Open Container
Initiative' (OCI) IMAGES
# WITH_OCIIMAGES=

# USE pkgbase(7) OR NOT
  WITH_PKGBASE=yes

host # pkg install pkg-provides

host # cat << EOF >> /usr/local/etc/pkg.conf
PKG_PLUGINS_DIR = "/usr/local/lib/pkg/";
PKG_ENABLE_PLUGINS = true;
PLUGINS [ provides ];
EOF

host # pkg plugins
NAME       DESC                                          VERSION   
provides   A plugin for querying which package provides a particular file
0.7.4 

host # pkg update -f

Now ...

This command exists with (0) exit status w/o doing anything:

host # make release.conf=custom.conf vm-release

Same for these:

host # make release.conf=custom.conf vm-image
host # make release.conf=custom.conf vm-images

I even traced with truss(1) what binaries are missing and found them and installed them:

host # truss make release.conf=custom.conf vm-release 2>&1 | grep 'No such' | grep bin/ | awk -F '"' '{print $2}' | while read I; do pkg provides "${I}$"; done
Name    : git-tiny-2.53.0
Comment : Distributed source code management tool (tiny flavor)
Repo    : FreeBSD-ports
Filename: usr/local/bin/git

Name    : git-lite-2.53.0
Comment : Distributed source code management tool (lite flavor)
Repo    : FreeBSD-ports
Filename: usr/local/bin/git

Name    : git-2.53.0
Comment : Distributed source code management tool 
Repo    : FreeBSD-ports
Filename: usr/local/bin/git
Name    : py311-azure-cli-2.55.0_6
Comment : Microsoft Azure Command-Line Tools
Repo    : FreeBSD-ports
Filename: usr/local/bin/az
Name    : bsdec2-image-upload-1.4.10
Comment : Tool for creating Amazon EC2 AMIs
Repo    : FreeBSD-ports
Filename: usr/local/bin/bsdec2-image-upload
Name    : bsdec2-image-upload-1.4.10
Comment : Tool for creating Amazon EC2 AMIs
Repo    : FreeBSD-ports
Filename: usr/local/bin/bsdec2-image-upload
Name    : google-cloud-sdk-563.0.0
Comment : Google Cloud SDK for Google Cloud Platform
Repo    : FreeBSD-ports
Filename: usr/local/bin/gcloud
Name    : qemu-tools-10.2.2
Comment : QEMU CPU Emulator (tools only)
Repo    : FreeBSD-ports
Filename: usr/local/bin/qemu-img

Name    : qemu-nox11-10.2.2
Comment : QEMU CPU Emulator (without X11)
Repo    : FreeBSD-ports
Filename: usr/local/bin/qemu-img

Name    : qemu-devel-10.1.20251130_1
Comment : QEMU CPU Emulator - development version
Repo    : FreeBSD-ports
Filename: usr/local/bin/qemu-img

Name    : qemu-10.2.2
Comment : QEMU CPU Emulator 
Repo    : FreeBSD-ports
Filename: usr/local/bin/qemu-img
Name    : qemu-tools-10.2.2
Comment : QEMU CPU Emulator (tools only)
Repo    : FreeBSD-ports
Filename: usr/local/bin/qemu-img

Name    : qemu-nox11-10.2.2
Comment : QEMU CPU Emulator (without X11)
Repo    : FreeBSD-ports
Filename: usr/local/bin/qemu-img

Name    : qemu-devel-10.1.20251130_1
Comment : QEMU CPU Emulator - development version
Repo    : FreeBSD-ports
Filename: usr/local/bin/qemu-img

Name    : qemu-10.2.2
Comment : QEMU CPU Emulator 
Repo    : FreeBSD-ports
Filename: usr/local/bin/qemu-img
Name    : git-tiny-2.53.0
Comment : Distributed source code management tool (tiny flavor)
Repo    : FreeBSD-ports
Filename: usr/local/bin/git

Name    : git-lite-2.53.0
Comment : Distributed source code management tool (lite flavor)
Repo    : FreeBSD-ports
Filename: usr/local/bin/git

Name    : git-2.53.0
Comment : Distributed source code management tool 
Repo    : FreeBSD-ports
Filename: usr/local/bin/git

host # pkg install git py311-azure-cli bsdec2-image-upload google-cloud-sdk qemu-nox11

The 'make release' works:

host # make -j 24 release.conf=custom.conf release
(...)
--- memstick.img ---
     192, 1760768
Populating `../memstick.img.part'
Image `../memstick.img.part' complete
Creating `/tmp/efiboot.bfoUNW'
/tmp/efiboot.bfoUNW: 65528 sectors in 65528 FAT32 clusters (512
bytes/cluster)
BytesPerSec=512 SecPerClust=1 ResSectors=32 FATs=2 Media=0xf0
SecPerTrack=63 Heads=255 HiddenSecs=0 HugeSectors=66584 FATsecs=512
RootCluster=2 FSInfo=1 Backup=2
Populating `/tmp/efiboot.bfoUNW'
Image `/tmp/efiboot.bfoUNW' complete
--- disc1.iso ---
1+0 records in
1+0 records out
32768 bytes transferred in 0.000102 secs (321466061 bytes/sec)
--- release ---
make -C /usr/src/release  -j 24 -J 15,16 release-done
--- release-done ---
touch release
true

... but the VMIMAGES are not built ... or maybe I am doing something wrong.

The contents in /usr/src/release/Makefile and release(7) are alsoe different.

Please advice.

Thanks,
vermaden








home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?vsrnpptctovresbxatrz>