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 mtree -deU -p $m/ -f ${srcdir}/etc/mtree/BSD.root.dist > /dev/null 12 mtree -deU -p $m/var -f ${srcdir}/etc/mtree/BSD.var.dist > /dev/null 13 mtree -deU -p $m/usr -f ${srcdir}/etc/mtree/BSD.usr.dist > /dev/null 14 mtree -deU -p $m/usr/include -f ${srcdir}/etc/mtree/BSD.include.dist > /dev/null 15 mtree -deU -p $m/usr/lib -f ${srcdir}/etc/mtree/BSD.debug.dist > /dev/null 16 install_packages ${abi} ${workdir} $m FreeBSD-caroot FreeBSD-zoneinfo 17 cp ${srcdir}/etc/master.passwd $m/etc 18 pwd_mkdb -p -d $m/etc $m/etc/master.passwd || return $? 19 cp ${srcdir}/etc/group $m/etc || return $? 20 # termcap.small is generated so we get it from OBJDIR - make sets our 21 # working directory to OBJDIR/release 22 cp ../etc/termcap/termcap.small $m/etc/termcap.small || return $? 23 cp ../etc/termcap/termcap.small $m/usr/share/misc/termcap || return $? 24 env DESTDIR=$m /usr/sbin/certctl rehash 25 # Generate a suitable repo config for pkgbase 26 case ${branch} in 27 CURRENT|STABLE|BETA*) 28 repo=base_latest 29 ;; 30 *) 31 repo=base_release_${minor} 32 ;; 33 esac 34 mkdir -p $m/usr/local/etc/pkg/repos 35 cat > $m/usr/local/etc/pkg/repos/base.conf <<EOF 36FreeBSD-base: { 37 url: "https://pkg.FreeBSD.org/\${ABI}/${repo}", 38 mirror_type: "srv", 39 signature_type: "fingerprints", 40 fingerprints: "/usr/share/keys/pkg", 41 enabled: yes 42} 43EOF 44 45} 46