diff --git a/Makefile b/Makefile index cc26bf1..16bb4ae 100644 --- a/Makefile +++ b/Makefile @@ -24,8 +24,8 @@ # SUCH DAMAGE. STEPS= arm base boot chroot clean compress confirm core distfiles \ - download dvd fingerprint info kernel nano plugins ports \ - prefetch print rebase release rename rewind serial sign \ + download dvd fingerprint info kernel nano packages plugins \ + ports prefetch print rebase release rename rewind serial sign \ skim test update upload verify vga vm xtools SCRIPTS= batch hotfix nightly diff --git a/build/distfiles.sh b/build/distfiles.sh index 02ea169..b6a7f9c 100644 --- a/build/distfiles.sh +++ b/build/distfiles.sh @@ -33,7 +33,7 @@ SELF=distfiles if [ -z "${PORTS_LIST}" ]; then PORTS_LIST=$( -cat ${CONFIGDIR}/skim.conf ${CONFIGDIR}/ports.conf | \ +cat ${CONFIGDIR}/skim.conf ${CONFIGDIR}/aux.conf ${CONFIGDIR}/ports.conf | \ while read PORT_ORIGIN PORT_IGNORE; do eval PORT_ORIGIN=${PORT_ORIGIN} if [ "$(echo ${PORT_ORIGIN} | colrm 2)" = "#" ]; then diff --git a/build/packages.sh b/build/packages.sh new file mode 100644 index 0000000..bd2c29d --- /dev/null +++ b/build/packages.sh @@ -0,0 +1,74 @@ +#!/bin/sh + +# Copyright (c) 2019 Franco Fichtner +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +# SUCH DAMAGE. + +set -e + +SELF=packages + +. ./common.sh + +AUX_LIST=$( +cat ${CONFIGDIR}/aux.conf | while read PORT_ORIGIN PORT_IGNORE; do + eval PORT_ORIGIN=${PORT_ORIGIN} + if [ "$(echo ${PORT_ORIGIN} | colrm 2)" = "#" ]; then + continue + fi + if [ -n "${PORT_IGNORE}" ]; then + for PORT_QUIRK in $(echo ${PORT_IGNORE} | tr ',' ' '); do + if [ ${PORT_QUIRK} = ${PRODUCT_TARGET} -o \ + ${PORT_QUIRK} = ${PRODUCT_ARCH} -o \ + ${PORT_QUIRK} = ${PRODUCT_FLAVOUR} ]; then + continue 2 + fi + done + fi + echo ${PORT_ORIGIN} +done +) + +setup_stage ${STAGEDIR} +setup_base ${STAGEDIR} +extract_packages ${STAGEDIR} + +# The goal for aux packages is that they are part of the packages +# set for nightly builds until they are officially built using the +# "packages" target in which case the only thing that needs to be +# done is stripping the auxiliary packages that are only needed for +# the build and further testing. Small lookup and delete code... +for AUX in ${AUX_LIST}; do + for PKG in $(cd ${STAGEDIR}; find .${PACKAGESDIR}/All -type f); do + PKGORIGIN=$(pkg -c ${STAGEDIR} info -F ${PKG} | \ + grep ^Origin | awk '{ print $3; }') + + if [ "${AUX}" = "${PKGORIGIN}" ]; then + rm -f ${STAGEDIR}/${PKG} + break; + fi + done +done + +bundle_packages ${STAGEDIR} ${SELF} diff --git a/build/ports.sh b/build/ports.sh index a932157..e0b4391 100644 --- a/build/ports.sh +++ b/build/ports.sh @@ -33,7 +33,7 @@ SELF=ports if [ -z "${PORTS_LIST}" ]; then PORTS_LIST=$( -cat ${CONFIGDIR}/ports.conf | while read PORT_ORIGIN PORT_IGNORE; do +cat ${CONFIGDIR}/aux.conf ${CONFIGDIR}/ports.conf | while read PORT_ORIGIN PORT_IGNORE; do eval PORT_ORIGIN=${PORT_ORIGIN} if [ "$(echo ${PORT_ORIGIN} | colrm 2)" = "#" ]; then continue diff --git a/build/skim.sh b/build/skim.sh index bf0d137..a5dbd4b 100644 --- a/build/skim.sh +++ b/build/skim.sh @@ -1,6 +1,6 @@ #!/bin/sh -# Copyright (c) 2015-2018 Franco Fichtner +# Copyright (c) 2015-2019 Franco Fichtner # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions @@ -35,7 +35,7 @@ setup_stage ${STAGEDIR} if [ -z "${PORTS_LIST}" ]; then PORTS_LIST=$( -cat ${CONFIGDIR}/skim.conf ${CONFIGDIR}/ports.conf | \ +cat ${CONFIGDIR}/skim.conf ${CONFIGDIR}/aux.conf ${CONFIGDIR}/ports.conf | \ while read PORT_ORIGIN PORT_IGNORE; do eval PORT_ORIGIN=${PORT_ORIGIN} if [ "$(echo ${PORT_ORIGIN} | colrm 2)" = "#" ]; then diff --git a/config/19.7/aux.conf b/config/19.7/aux.conf new file mode 100644 index 0000000..2c17150 --- /dev/null +++ b/config/19.7/aux.conf @@ -0,0 +1,3 @@ +#ORIGIN IGNORE +lang/go arm,arm64,i386 +lang/rust arm,arm64 diff --git a/config/19.7/ports.conf b/config/19.7/ports.conf index baa8918..60d14df 100644 --- a/config/19.7/ports.conf +++ b/config/19.7/ports.conf @@ -68,7 +68,6 @@ lang/php${PRODUCT_PHP} lang/python${PRODUCT_PYTHON2} lang/python${PRODUCT_PYTHON3} lang/ruby${PRODUCT_RUBY} arm,arm64 -#lang/rust arm,arm64,i386,LibreSSL mail/pecl-mailparse arm,arm64 mail/phpmailer arm,arm64 mail/postfix-sasl arm,arm64 diff --git a/config/20.1/aux.conf b/config/20.1/aux.conf new file mode 100644 index 0000000..1c79c13 --- /dev/null +++ b/config/20.1/aux.conf @@ -0,0 +1,3 @@ +#ORIGIN IGNORE +lang/go arm,arm64 +lang/rust arm,arm64 diff --git a/config/20.1/ports.conf b/config/20.1/ports.conf index aef72f5..b094282 100644 --- a/config/20.1/ports.conf +++ b/config/20.1/ports.conf @@ -62,7 +62,6 @@ lang/perl${PRODUCT_PERL} lang/php${PRODUCT_PHP} lang/python${PRODUCT_PYTHON3} lang/ruby${PRODUCT_RUBY} arm,arm64 -#lang/rust arm,arm64,LibreSSL mail/pecl-mailparse arm,arm64 mail/phpmailer arm,arm64 mail/postfix-sasl arm,arm64