mirror of
https://github.com/flatcar/scripts.git
synced 2025-08-07 13:06:59 +02:00
make.conf should live in /etc/portage these days Change-Id: I55372ae3ee6a4ae7abf6873c08c1fcef46d7cd53
110 lines
3.3 KiB
Bash
110 lines
3.3 KiB
Bash
# Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
|
|
# Use of this source code is governed by a BSD-style license that can be
|
|
# found in the LICENSE file.
|
|
|
|
# When bootstrapping the chroot, only wget is available, and we must
|
|
# disable certificate checking. Once the chroot is fully
|
|
# initialized, we can switch to curl, and re-enable the certificate
|
|
# checks. See http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=409938
|
|
#
|
|
# Usage:
|
|
# $1 - 'wget' requests the bootstrap special content; otherwise
|
|
# uses 'curl'.
|
|
_make_conf_fetchcommand() {
|
|
local cmd options output_opt resume_opt
|
|
local fileref='\"\${DISTDIR}/\${FILE}\"'
|
|
local uri_ref='\"\${URI}\"'
|
|
|
|
if [ "$1" = "wget" ] ; then
|
|
cmd=/usr/bin/wget
|
|
options="-t 5 -T 60 --no-check-certificate --passive-ftp"
|
|
resume_opt="-c"
|
|
output_opt="-O"
|
|
else
|
|
cmd=curl
|
|
options="-f -y 30 --retry 9 -L"
|
|
resume_opt="-C -"
|
|
output_opt="--output"
|
|
fi
|
|
|
|
local args="$options $output_opt $fileref $uri_ref"
|
|
echo FETCHCOMMAND=\"$cmd $args\"
|
|
echo RESUMECOMMAND=\"$cmd $resume_opt $args\"
|
|
echo
|
|
}
|
|
|
|
# The default PORTAGE_BINHOST setting selects the preflight
|
|
# binhosts. We override the setting if the build environment
|
|
# requests it.
|
|
_make_conf_prebuilt() {
|
|
if [[ -n "$IGNORE_PREFLIGHT_BINHOST" ]]; then
|
|
echo 'PORTAGE_BINHOST="$FULL_BINHOST"'
|
|
echo
|
|
fi
|
|
}
|
|
|
|
# Include configuration settings for building private overlay
|
|
# packages, if the overlay is present.
|
|
#
|
|
# N.B. We explicitly disallow creating content for the private
|
|
# overlay during bootstrapping, as it's not currently required,
|
|
# and at least a minor nuisance to implement. Note also that the
|
|
# use of an inside-the-chroot path is based on the (currently true)
|
|
# assumption that bootstrapping use is outside the chroot, and
|
|
# non-bootstrapping use is inside the chroot.
|
|
_make_conf_private() {
|
|
if [ "$1" = "wget" ] ; then
|
|
return
|
|
fi
|
|
local chromeos_overlay="src/private-overlays/chromeos-overlay"
|
|
chromeos_overlay="$CHROOT_TRUNK_DIR/$chromeos_overlay"
|
|
if [ -d "$chromeos_overlay" ]; then
|
|
local boto_config="$chromeos_overlay/googlestorage_account.boto"
|
|
local gsutil_cmd='gsutil cp \"${URI}\" \"${DISTDIR}/${FILE}\"'
|
|
cat <<EOF
|
|
source $chromeos_overlay/make.conf
|
|
|
|
FETCHCOMMAND_GS="bash -c 'BOTO_CONFIG=$boto_config $gsutil_cmd'"
|
|
RESUMECOMMAND_GS="$FETCHCOMMAND_GS"
|
|
|
|
PORTDIR_OVERLAY="\$PORTDIR_OVERLAY $chromeos_overlay"
|
|
|
|
EOF
|
|
fi
|
|
}
|
|
|
|
# Create /etc/make.conf.host_setup according to parameters.
|
|
#
|
|
# Usage:
|
|
# $1 - 'wget' for bootstrapping; 'curl' otherwise.
|
|
# $2 - When outside the chroot, path to the chroot. Empty when
|
|
# inside the chroot.
|
|
_create_host_setup() {
|
|
local fetchtype="$1"
|
|
local host_setup="$2/etc/portage/make.conf.host_setup"
|
|
( echo "# Automatically generated. EDIT THIS AND BE SORRY."
|
|
echo
|
|
_make_conf_fetchcommand "$fetchtype"
|
|
_make_conf_private "$fetchtype"
|
|
_make_conf_prebuilt
|
|
echo 'MAKEOPTS="-j'${NUM_JOBS}'"' ) | sudo_clobber "$host_setup"
|
|
sudo chmod 644 "$host_setup"
|
|
}
|
|
|
|
|
|
# Create /etc/make.conf.host_setup for early bootstrapping of the
|
|
# chroot. This is done early in make_chroot, and the results are
|
|
# overwritten later in the process.
|
|
#
|
|
# Usage:
|
|
# $1 - Path to chroot as seen from outside
|
|
create_bootstrap_host_setup() {
|
|
_create_host_setup wget "$@"
|
|
}
|
|
|
|
|
|
# Create /etc/make.conf.host_setup for normal usage.
|
|
create_host_setup() {
|
|
_create_host_setup curl ''
|
|
}
|