commit: 7e877c4f3454732da1fe75b319e4830bcc0433b7 Author: James Le Cuirot <chewi <AT> gentoo <DOT> org> AuthorDate: Mon Dec 15 15:20:09 2025 +0000 Commit: James Le Cuirot <chewi <AT> gentoo <DOT> org> CommitDate: Mon Jan 5 09:44:19 2026 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7e877c4f
branding.eclass: New eclass for applying branding to various packages Closes: https://codeberg.org/gentoo/gentoo/pulls/6 Signed-off-by: James Le Cuirot <chewi <AT> gentoo.org> eclass/branding.eclass | 87 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) diff --git a/eclass/branding.eclass b/eclass/branding.eclass new file mode 100644 index 000000000000..8287f823e497 --- /dev/null +++ b/eclass/branding.eclass @@ -0,0 +1,87 @@ +# Copyright 2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# @ECLASS: branding.eclass +# @MAINTAINER: +# James Le Cuirot <[email protected]> +# @AUTHOR: +# James Le Cuirot <[email protected]> +# @SUPPORTED_EAPIS: 8 9 +# @BLURB: Branding variables with Gentoo defaults +# @DESCRIPTION: +# This defines a set of variables for appling branding to various packages. The +# variables default to Gentoo values. These can be overridden by downstream +# distributions. + +case ${EAPI} in + 8|9) ;; + *) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;; +esac + +# @ECLASS_VARIABLE: BRANDING_OS_NAME +# @OUTPUT_VARIABLE +# @DESCRIPTION: +# Corresponds to os-release's NAME. See os-release(5). +: "${BRANDING_OS_NAME:=Gentoo}" + +# @ECLASS_VARIABLE: BRANDING_OS_ID +# @OUTPUT_VARIABLE +# @DESCRIPTION: +# Corresponds to os-release's ID. See os-release(5). This variable has strict +# formatting requirements. +: "${BRANDING_OS_ID:=gentoo}" + +# @ECLASS_VARIABLE: BRANDING_OS_ID_LIKE +# @OUTPUT_VARIABLE +# @DEFAULT_UNSET +# @DESCRIPTION: +# Corresponds to os-release's ID_LIKE. See os-release(5). + +# @ECLASS_VARIABLE: BRANDING_OS_HOME_URL +# @OUTPUT_VARIABLE +# @DESCRIPTION: +# Corresponds to os-release's HOME_URL. See os-release(5). +: "${BRANDING_OS_HOME_URL:=https://www.gentoo.org/}" + +# @ECLASS_VARIABLE: BRANDING_OS_SUPPORT_URL +# @OUTPUT_VARIABLE +# @DESCRIPTION: +# Corresponds to os-release's SUPPORT_URL. See os-release(5). +: "${BRANDING_OS_SUPPORT_URL:=https://www.gentoo.org/support/}" + +# @ECLASS_VARIABLE: BRANDING_OS_BUG_REPORT_URL +# @OUTPUT_VARIABLE +# @DESCRIPTION: +# Corresponds to os-release's BUG_REPORT_URL. See os-release(5). +: "${BRANDING_OS_BUG_REPORT_URL:=https://bugs.gentoo.org/}" + +# @ECLASS_VARIABLE: BRANDING_OS_VERSION +# @OUTPUT_VARIABLE +# @DEFAULT_UNSET +# @DESCRIPTION: +# Corresponds to os-release's VERSION. See os-release(5). This is typically set +# by sys-apps/baselayout to PV when creating /etc/os-release. As such, it is not +# readable by other packages unless overridden globally, but baselayout's PV has +# little relevance to other packages anyway. + +# @ECLASS_VARIABLE: BRANDING_OS_VERSION_ID +# @OUTPUT_VARIABLE +# @DEFAULT_UNSET +# @DESCRIPTION: +# Corresponds to os-release's VERSION_ID. See os-release(5). This variable has +# strict formatting requirements. Like BRANDING_OS_VERSION above, this is also +# set by baselayout to PV. + +# @ECLASS_VARIABLE: BRANDING_OS_PRETTY_NAME +# @OUTPUT_VARIABLE +# @DESCRIPTION: +# Corresponds to os-release's PRETTY_NAME. See os-release(5). If completely +# unset, defaults to "Gentoo Linux". If set but blank, defaults to the +# concatenation of BRANDING_OS_NAME and BRANDING_OS_VERSION. +: "${BRANDING_OS_PRETTY_NAME=Gentoo Linux}" +: "${BRANDING_OS_PRETTY_NAME:=${BRANDING_OS_NAME}${BRANDING_OS_VERSION:+ }${BRANDING_OS_VERSION}}" + +# These variables are recognised by GNU's version-etc.m4. +export with_packager="${BRANDING_OS_NAME}" +export with_packager_bug_reports="${BRANDING_OS_BUG_REPORT_URL}" +export with_packager_version="${PVR}"
