build/kernel: (re)generate mtree file for later use
This commit is contained in:
parent
1ca88f0d6c
commit
f90365b32b
|
@ -493,6 +493,27 @@ build_marker()
|
|||
echo "${REPO_VERSION}-${PRODUCT_ARCH}" > "${MARKER}/${1}"
|
||||
}
|
||||
|
||||
setup_version()
|
||||
{
|
||||
VERSIONDIR="${1}/${2}/usr/local/opnsense/version"
|
||||
|
||||
# clear previous in case of rename
|
||||
rm -rf ${VERSIONDIR}
|
||||
mkdir -p ${VERSIONDIR}
|
||||
|
||||
if [ ${2} = "base" ]; then
|
||||
# XXX obsolete file handling
|
||||
fi
|
||||
|
||||
# embed version info into target file
|
||||
echo ${REPO_VERSION}-${PRODUCT_ARCH} > ${VERSIONDIR}/${3}
|
||||
|
||||
# mtree generation must come LAST
|
||||
mtree -c -k uid,gid,mode,size,sha256digest -p ${1}/${2} > ${1}/mtree
|
||||
mv ${1}/mtree ${VERSIONDIR}/${3}.mtree
|
||||
chmod 600 ${VERSIONDIR}/${3}.mtree
|
||||
}
|
||||
|
||||
setup_base()
|
||||
{
|
||||
echo ">>> Setting up world in ${1}"
|
||||
|
|
|
@ -60,34 +60,42 @@ __MAKE_CONF=
|
|||
${ENV_FILTER} make -s -C${SRCDIR} -j${CPUS} buildkernel ${MAKE_ARGS} NO_KERNELCLEAN=yes
|
||||
${ENV_FILTER} make -s -C${SRCDIR}/release obj ${MAKE_ARGS}
|
||||
|
||||
# XXX remove me later
|
||||
build_marker kernel
|
||||
# reset the distribution directory
|
||||
KERNEL_DISTDIR="$(make -C${SRCDIR}/release -V DISTDIR)/${SELF}"
|
||||
KERNEL_OBJDIR="$(make -C${SRCDIR}/release -V .OBJDIR)"
|
||||
setup_stage "${KERNEL_OBJDIR}/${KERNEL_DISTDIR}"
|
||||
|
||||
# remove older object archives, too
|
||||
KERNEL_OBJ=$(make -C${SRCDIR}/release -V .OBJDIR)/kernel.txz
|
||||
DEBUG_OBJ=$(make -C${SRCDIR}/release -V .OBJDIR)/kernel-dbg.txz
|
||||
|
||||
rm -f ${KERNEL_OBJ} ${DEBUG_OBJ}
|
||||
|
||||
# We used kernel.txz because we did not rewrite it,
|
||||
# but as time went on and version info was embedded
|
||||
# for tighter signature verification handling it is
|
||||
# a convoluted action, but the archive gives us a
|
||||
# full update set so we repack it instead of using
|
||||
# src-related commands here too loosely...
|
||||
${ENV_FILTER} make -s -C${SRCDIR}/release kernel.txz ${MAKE_ARGS}
|
||||
|
||||
sh ./clean.sh ${SELF}
|
||||
|
||||
setup_stage ${STAGEDIR} work
|
||||
|
||||
tar -C ${STAGEDIR}/work -xjpf ${KERNEL_OBJ}
|
||||
echo ">>> Generating kernel set:"
|
||||
|
||||
if [ -z "$(test -f ${DEBUG_OBJ} && tar -tf ${DEBUG_OBJ})" ]; then
|
||||
echo ">>> Generating release kernel set:"
|
||||
KERNEL_SET=${KERNEL_RELEASE_SET}
|
||||
else
|
||||
tar -C ${STAGEDIR}/work -xjpf ${DEBUG_OBJ}
|
||||
echo ">>> Generating debug kernel set:"
|
||||
tar -C ${STAGEDIR}/work -xJpf ${KERNEL_OBJ}
|
||||
|
||||
KERNEL_SET=${KERNEL_RELEASE_SET}
|
||||
|
||||
if [ -n "$(test -f ${DEBUG_OBJ} && tar -tf ${DEBUG_OBJ})" ]; then
|
||||
tar -C ${STAGEDIR}/work -xJpf ${DEBUG_OBJ}
|
||||
KERNEL_SET=${KERNEL_DEBUG_SET}
|
||||
fi
|
||||
|
||||
setup_version ${STAGEDIR} work ${SELF}
|
||||
|
||||
rm -f ${KERNEL_OBJ} ${DEBUG_OBJ}
|
||||
|
||||
# XXX mtree magic
|
||||
|
||||
tar -C ${STAGEDIR}/work -cvf - . | xz > ${KERNEL_SET}
|
||||
|
||||
generate_signature ${KERNEL_SET}
|
||||
|
|
|
@ -39,14 +39,14 @@ for ARG in ${@}; do
|
|||
${IMAGESDIR}/${PRODUCT_NAME}${PRODUCT_SUFFIX}-${PRODUCT_VERSION}-${PRODUCT_FLAVOUR}-arm-${PRODUCT_ARCH}.img
|
||||
;;
|
||||
base)
|
||||
setup_stage ${STAGEDIR}
|
||||
setup_stage ${STAGEDIR} work
|
||||
echo ">>> Repacking base set..."
|
||||
BASE_SET=$(find ${SETSDIR} -name "base-*-${PRODUCT_ARCH}.txz")
|
||||
tar -C ${STAGEDIR} -xjf ${BASE_SET}
|
||||
echo ${PRODUCT_VERSION}-${PRODUCT_ARCH} > \
|
||||
${STAGEDIR}/usr/local/opnsense/version/base
|
||||
tar -C ${STAGEDIR}/work -xJpf ${BASE_SET}
|
||||
REPO_VERSION=${PRODUCT_VERSION}
|
||||
setup_version ${STAGEDIR} work ${ARG}
|
||||
rm ${BASE_SET}
|
||||
tar -C ${STAGEDIR} -cvf - . | xz > ${BASE_SET}
|
||||
tar -C ${STAGEDIR}/work -cvf - . | xz > ${BASE_SET}
|
||||
generate_signature ${BASE_SET}
|
||||
echo ">>> Renaming base set: ${PRODUCT_VERSION}"
|
||||
for FILE in $(find ${SETSDIR} -name \
|
||||
|
@ -65,14 +65,14 @@ for ARG in ${@}; do
|
|||
${IMAGESDIR}/${PRODUCT_NAME}${PRODUCT_SUFFIX}-${PRODUCT_VERSION}-${PRODUCT_FLAVOUR}-dvd-${PRODUCT_ARCH}.iso
|
||||
;;
|
||||
kernel)
|
||||
setup_stage ${STAGEDIR}
|
||||
setup_stage ${STAGEDIR} work
|
||||
echo ">>> Repacking kernel set..."
|
||||
KERNEL_SET=$(find ${SETSDIR} -name "kernel-*-${PRODUCT_ARCH}.txz")
|
||||
tar -C ${STAGEDIR} -xjf ${KERNEL_SET}
|
||||
echo ${PRODUCT_VERSION}-${PRODUCT_ARCH} > \
|
||||
${STAGEDIR}/usr/local/opnsense/version/kernel
|
||||
tar -C ${STAGEDIR}/work -xJpf ${KERNEL_SET}
|
||||
REPO_VERSION=${PRODUCT_VERSION}
|
||||
setup_version ${STAGEDIR} work ${ARG}
|
||||
rm ${KERNEL_SET}
|
||||
tar -C ${STAGEDIR} -cvf - . | xz > ${KERNEL_SET}
|
||||
tar -C ${STAGEDIR}/work -cvf - . | xz > ${KERNEL_SET}
|
||||
generate_signature ${KERNEL_SET}
|
||||
echo ">>> Renaming kernel set: ${PRODUCT_VERSION}"
|
||||
for FILE in $(find ${SETSDIR} -name \
|
||||
|
|
Loading…
Reference in New Issue