# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2

# For details on this file, see the layout.conf section of the
# portage(5) man page.

# This went live Wednesday, July 4, 2012 at 10:00 UTC
# https://archives.gentoo.org/gentoo-dev-announce/message/a15cbea85dd089c99302f949b4072c20
# https://wiki.gentoo.org/wiki/GLEP:59
manifest-hashes = SHA256 SHA512 WHIRLPOOL

# 2013-04-09 gentoo's council says to deprecate EAPIs 1 and 2 (bug #470670).
# 2014-02-25 council meeting deprecated EAPIs 0 and 3.
# 2015-10-11 council meeting deprecated EAPI 4.
#eapis-banned = 1
eapis-deprecated = 0 1 2 3 4

# Bug #337853 - gentoo's council says to enable
# --echangelog by default for the "gentoo" repo
# INFRA NOTE 2015/08/08: No more old ChangeLogs in Git
update-changelog = false

# Make egencache generate newer (more reliable)
# md5-dict cache format (see bug #409445).
# NOTE: list md5-dict first so clients prefer it
# INFRA NOTE: Format 'pms' was removed on Aug 6 2012. (Announced prior as Aug 1
# 2012 was the removal date)
cache-formats = md5-dict

# Support for implicit masters is deprecated, so we need to explicitly
# specify that this repo does not dependent on any masters, in order
# to distinguish it from repos that rely on the deprecated behavior.
masters =

# Use thin Manifests for Git
thin-manifests = true

# Sign Git commits, and NOT Manifests
sign-commits = true
sign-manifests = false
