Re: Building VM-IMAGE(s) from Source

Anthony Pankov <[email protected]>
Newsgroups gmane.os.freebsd.devel.hackers,gmane.os.freebsd.stable,gmane.os.freebsd.current
Message-ID <[email protected]>

Thursday, April 16, 2026, 3:44:54 PM, you wrote:

> Yes and no.

> For a start - I do not see options for PKGBASE in the poudriere-image(8) man page ... so I am not sure if I end up with PKGBASE system (probably not) or classic Distribution Sets system - but that can (can?) be probably configured some undocumented way.

> I already have a system that builds packages - so 3rd party packages are ready in some repo.

> I also already have a system that builds PKGBASE repo - so PKGBASE packages are ready.

> So when I will try to use poudriere-image(8) instead of verimg(8) I would have these downgrades:

> - I need to build PKGBASE FreeBSD 'Base System' everytime from source (which I do not need/want).

> - I need to build 3rd party pkg(8) packages from FreeBSD Ports (which I do not need/want).

> - I can not create custom/additional ZFS datasets and custom ZFS filesystem sizes.

> - I can not create additional FAT32 filesystems with configs for cloud-init(1) use.

> - I am not sure if poudriere-image(8) supports geli(8) - which I also sometimes need in images - and I plan to add geli(8) support to verimg(8) ... and I doubt it will be added to poudriere-image(8) anytime soon.

> With verimg(8) I just use PKGBASE packages as 'Base System' from repo I previously built and then add 3rd party pkg(8) packages from other repo that I already built. That way I 'suffer' once and then I can build various images in minutes/seconds - not in long hours compiling everything each time.

> One can also as a question ... why FreeBSD as a project maintains 3 different 'building systems'?

> 1. We have 'classic' # make buildworld buildkernel update-packages at /usr/src dir.

> 2. We have 'release.sh' inside /usr/src/release dir.

> 3. We have poudriere-image(8) for similar purposes.

> 4. We also have mkimg(8) which is used by both 'release.sh' and poudriere-image(8) tools.

> But as they exists ... so I can only assume that they all are needed.

Just for note. I also ended with self-made script. It relies on  "prepared system directory". Directory with extracted pkgbase and other things. It usages looks like:

#
Make virtual machine image from prepared system
Usage
  mkvm [options] -o image_file system_dir {extra_dir}

  where:
    image_file     - target VM image file
                     (dir of this file will be used for temporary flies)
    system_dir     - dir of prepared (installed) system
    extra_dir      - optional one or more directories which will be
                     merged over system_dir during
                     root filesystem creation
#



-- 
Best regards,
Anthony
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.