diff --git a/LICENSE b/LICENSE index f11ab4e..380d5cb 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2014-2018 Franco Fichtner +Copyright (c) 2014-2020 Franco Fichtner Copyright (c) 2015-2017 The FreeBSD Foundation Copyright (c) 2004-2011 Scott Ullrich All rights reserved. diff --git a/README.md b/README.md index 73d80ae..21992d4 100644 --- a/README.md +++ b/README.md @@ -246,7 +246,7 @@ Using signatures to verify integrity Signing for all sets can be redone or applied to a previous run that did not sign by invoking: - # make sign + # make sign-base,kernel,packages A verification of all available set signatures is done via: diff --git a/build/sign.sh b/build/sign.sh index 69714b2..ffc8494 100644 --- a/build/sign.sh +++ b/build/sign.sh @@ -1,6 +1,6 @@ #!/bin/sh -# Copyright (c) 2016-2019 Franco Fichtner +# Copyright (c) 2016-2020 Franco Fichtner # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions @@ -31,19 +31,39 @@ SELF=sign . ./common.sh -BASE_SET=$(find ${SETSDIR} -name "base-*-${PRODUCT_ARCH}${PRODUCT_DEVICE+"-${PRODUCT_DEVICE}"}.txz") -if [ -f "${BASE_SET}" ]; then - generate_signature ${BASE_SET} -fi +VERSIONDIR="/usr/local/opnsense/version" -KERNEL_SET=$(find ${SETSDIR} -name "kernel-*-${PRODUCT_ARCH}${PRODUCT_DEVICE+"-${PRODUCT_DEVICE}"}.txz") -if [ -f "${KERNEL_SET}" ]; then - generate_signature ${KERNEL_SET} -fi - -PKGS_SET=$(find ${SETSDIR} -name "packages-*-${PRODUCT_FLAVOUR}-${PRODUCT_ARCH}.tar") -if [ -f "${PKGS_SET}" ]; then - setup_stage ${STAGEDIR} - extract_packages ${STAGEDIR} - bundle_packages ${STAGEDIR} ${SELF} -fi +for ARG in ${@}; do + case ${ARG} in + base) + BASE_SET=$(find ${SETSDIR} -name "base-*-${PRODUCT_ARCH}${PRODUCT_DEVICE+"-${PRODUCT_DEVICE}"}.txz") + if [ -f "${BASE_SET}" ]; then + setup_stage ${STAGEDIR} + setup_set ${STAGEDIR} ${BASE_SET} + generate_signature ${STAGEDIR}${VERSIONDIR}/base.mtree + rm ${BASE_SET} + generate_set ${STAGEDIR} ${BASE_SET} + generate_signature ${BASE_SET} + fi + ;; + kernel) + KERNEL_SET=$(find ${SETSDIR} -name "kernel-*-${PRODUCT_ARCH}${PRODUCT_DEVICE+"-${PRODUCT_DEVICE}"}.txz") + if [ -f "${KERNEL_SET}" ]; then + setup_stage ${STAGEDIR} + setup_set ${STAGEDIR} ${KERNEL_SET} + generate_signature ${STAGEDIR}${VERSIONDIR}/kernel.mtree + rm ${KERNEL_SET} + generate_set ${STAGEDIR} ${KERNEL_SET} + generate_signature ${KERNEL_SET} + fi + ;; + packages) + PKGS_SET=$(find ${SETSDIR} -name "packages-*-${PRODUCT_FLAVOUR}-${PRODUCT_ARCH}.tar") + if [ -f "${PKGS_SET}" ]; then + setup_stage ${STAGEDIR} + extract_packages ${STAGEDIR} + bundle_packages ${STAGEDIR} ${SELF} + fi + ;; + esac +done