# Copyright 2014 The ChromiumOS Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# Settings that are common to all targets and the host sdk.  Do not place any
# settings in here that are specific to the sdk or cross-compiling for boards.
#
# See "man make.conf" for the available options.

LDFLAGS="-Wl,-O2 -Wl,--as-needed ${LDFLAGS}"

PORTDIR="/mnt/host/source/src/third_party/portage-stable"

# Adding packages to the @world set causes people more trouble than it's
# worth in our setup -- we rarely have people add custom packages outside
# of the ChromiumOS set.  You can use "--select" to override this.
EMERGE_DEFAULT_OPTS="--oneshot --autounmask-backtrack=y --autounmask=n"

# Compression settings for creating binpkgs.
# NB: BINPKG_COMPRESS selects an algorithm, not a command.
BINPKG_COMPRESS="zstd"
BINPKG_COMPRESS_FLAGS="-T0 -3"

# Command for compressing installed documentation, including man pages.
# That means compression algorithm selection is restricted by whatever man-db
# supports, and currently that is gzip/bzip2/xz/lzip.
# We don't need high compression levels here as the amount of documentation
# in total is not huge (<500 MB uncompressed), so a smallish & fast approach
# works well enough.
PORTAGE_COMPRESS="pigz"
# --no-name will prevent a timestamp from being written into the file.
# This results in hermetic output.
PORTAGE_COMPRESS_FLAGS="-3 --no-name"

# Use parallel bzip2 for portage whenever bzip2 is needed.
# This is usually for decompressing source archives.
PORTAGE_BZIP2_COMMAND="lbzip2 -z"
PORTAGE_BUNZIP2_COMMAND="lbzip2 -d"

# Copying xattrs to overlayfs fails (for CoG work).
PORTAGE_XATTR_EXCLUDE="${PORTAGE_XATTR_EXCLUDE} git.*"
PORTAGE_XATTR_EXCLUDE="${PORTAGE_XATTR_EXCLUDE} google.*"

FETCHCOMMAND_GS='/mnt/host/source/chromite/bin/gs_fetch_binpkg --boto "/home/${PORTAGE_USERNAME}/.boto" "\${URI}" "\${DISTDIR}/\${FILE}"'
RESUMECOMMAND_GS="${FETCHCOMMAND_GS}"

FETCHCOMMAND_AB='/mnt/host/source/chromite/bin/abutil fetch "\${URI}" "\${DISTDIR}/\${FILE}"'
RESUMECOMMAND_AB="${FETCHCOMMAND_AB}"

FETCHCOMMAND='curl -y 30 -f --retry 9 -L --output \${DISTDIR}/\${FILE} \${URI}'
RESUMECOMMAND='curl -y 30 -f -C - --retry 9 -L --output \${DISTDIR}/\${FILE} \${URI}'

FETCHCOMMAND_CIPD='/mnt/host/source/chromite/bin/fetch_cipd "\${URI}" "\${DISTDIR}/\${FILE}"'
RESUMECOMMAND_CIPD="${FETCHCOMMAND_CIPD}"

# Delete these once ebeep/epause no longer exist in eutils.eclass.
EBEEP_IGNORE="1"
EPAUSE_IGNORE="1"

CHROMEOS_CI_USERNAME=chrome-bot
