1#! /bin/sh 2 3# Build Open Container Initiative (OCI) container image suitable as a base for 4# static-linked workloads. This contains mtree directories, SSL certificates and 5# a few other config files. 6 7OCI_BASE_IMAGE= 8 9oci_image_build() { 10 local srcdir=${curdir}/.. 11 local m=${workdir}/rootfs 12 mtree -deU -p $m/ -f ${srcdir}/etc/mtree/BSD.root.dist > /dev/null 13 mtree -deU -p $m/var -f ${srcdir}/etc/mtree/BSD.var.dist > /dev/null 14 mtree -deU -p $m/usr -f ${srcdir}/etc/mtree/BSD.usr.dist > /dev/null 15 mtree -deU -p $m/usr/include -f ${srcdir}/etc/mtree/BSD.include.dist > /dev/null 16 mtree -deU -p $m/usr/lib -f ${srcdir}/etc/mtree/BSD.debug.dist > /dev/null 17 install_packages ${abi} ${workdir} FreeBSD-caroot FreeBSD-zoneinfo 18 cp ${srcdir}/etc/master.passwd $m/etc 19 pwd_mkdb -p -d $m/etc $m/etc/master.passwd || return $? 20 cp ${srcdir}/etc/group $m/etc || return $? 21 # termcap.small is generated so we get it from OBJDIR - make sets our 22 # working directory to OBJDIR/release 23 cp ../etc/termcap/termcap.small $m/etc/termcap.small || return $? 24 cp ../etc/termcap/termcap.small $m/usr/share/misc/termcap || return $? 25 env DESTDIR=$m /usr/sbin/certctl rehash 26 # Generate a suitable repo config for pkgbase 27 case ${branch} in 28 CURRENT|STABLE|BETA*) 29 repo=base_latest 30 ;; 31 *) 32 repo=base_release_${minor} 33 ;; 34 esac 35 mkdir -p $m/usr/local/etc/pkg/repos 36 cat > $m/usr/local/etc/pkg/repos/base.conf <<EOF 37FreeBSD-base: { 38 url: "https://pkg.FreeBSD.org/\${ABI}/${repo}", 39 mirror_type: "srv", 40 signature_type: "fingerprints", 41 fingerprints: "/usr/share/keys/pkg", 42 enabled: yes 43} 44EOF 45 46} 47