GentooRepository/eclass
Sam James 8029ca0fcc
eutils.eclass: fix @DEAD tag
```
eutils.eclass:
   error:10: eutils.eclass: unknown keyword @DEAD
```

Signed-off-by: Sam James <sam@gentoo.org>
2024-04-23 22:40:57 +01:00
..
tests llvm-r1.eclass: Initial version 2024-02-10 11:47:23 +01:00
acct-group.eclass
acct-user.eclass acct-user.eclass: Warn when the user is removed from a group 2023-11-08 08:39:44 +01:00
ada.eclass dev-ada/gprconfig: MissingInherits 2024-03-13 20:31:58 +01:00
alternatives.eclass
ant-tasks.eclass ant-tasks.eclass: mark ant-tasks.eclass dead 2024-04-13 22:03:08 +02:00
apache-2.eclass eclass/apache-2.eclass: select compatible rustls-ffi version 2024-04-05 11:44:11 +02:00
apache-module.eclass eclass/apache-module.eclass: enable EAPI 8 2023-10-08 12:03:34 +02:00
app-alternatives.eclass
aspell-dict-r1.eclass aspell-dict-r1.eclass: drop usage of which 2023-11-26 18:30:01 +00:00
autotools.eclass autotools.eclass: require >=dev-build/libtool-2.4.7-r3 2024-03-24 09:08:48 +00:00
bash-completion-r1.eclass
bzr.eclass
cargo.eclass cargo.eclass: Output only the first crate URI when PKGBUMPING 2024-01-31 14:59:19 +01:00
cdrom.eclass
check-reqs.eclass
chromium-2.eclass
cmake-multilib.eclass
cmake.eclass Move {dev-util → dev-build}/cmake 2024-01-14 20:23:32 +01:00
common-lisp-3.eclass
cron.eclass
crossdev.eclass
cuda.eclass cuda.eclass: fix typo 2023-11-10 17:19:32 +01:00
cvs.eclass
db-use.eclass
db.eclass
depend.apache.eclass eclass/depend.apache: enable EAPI 8 2023-10-08 12:03:29 +02:00
desktop.eclass
dist-kernel-utils.eclass eclass/(dist-)kernel-*.eclass: drop installkernel-gentoo-7 2024-01-07 18:28:56 +01:00
distutils-r1.eclass distutils-r1.eclass: Pass arguments to scikit-build-core 2024-04-19 20:46:46 +02:00
docs.eclass Move {app-doc → app-text}/doxygen 2024-01-12 15:36:00 +01:00
dotnet-pkg-base.eclass eclass/dotnet-pkg-base.eclass: set DOTNET_ROOT 2024-02-10 17:24:45 +01:00
dotnet-pkg.eclass eclass/dotnet-pkg.eclass: prepare for safely using Nuget 2024-02-10 17:24:46 +01:00
dotnet.eclass
dune.eclass
eapi7-ver.eclass
eapi8-dosym.eclass
ecm.eclass Move {app-doc → app-text}/doxygen 2024-01-12 15:36:00 +01:00
edo.eclass
edos2unix.eclass
elisp-common.eclass elisp-common.eclass: Drop test for existence of ${T} 2024-04-04 19:33:01 +02:00
elisp.eclass
emboss-r3.eclass
epatch.eclass
eqawarn.eclass
estack.eclass
eutils.eclass eutils.eclass: fix @DEAD tag 2024-04-23 22:40:57 +01:00
fcaps.eclass
findlib.eclass
fixheadtails.eclass
flag-o-matic.eclass flag-o-matic.eclass: simplify implementation and work in all cases 2024-03-29 18:45:05 +00:00
font-ebdftopcf.eclass
font.eclass
fortran-2.eclass
frameworks.kde.org.eclass frameworks.kde.org.eclass: Unsupport unstable release SRC_URIs 2024-02-28 14:53:40 +01:00
freedict.eclass eclass/freedict: use HTTPS 2024-01-20 22:21:47 +01:00
gap-pkg.eclass gap-pkg.eclass: enable pipefail when piping tests through tee 2024-01-24 10:54:40 -05:00
gear.kde.org.eclass kde-apps/ffmpegthumbs: Switch 24.02.0 to KF6 2024-03-03 19:11:55 +01:00
ghc-package.eclass ghc-package.eclass: Fix typos 2023-12-11 08:30:57 +01:00
git-r3.eclass git-r3.eclass: Add the ability to checkout ignored submodules. 2024-04-01 11:36:28 +02:00
gkrellm-plugin.eclass
gnome.org.eclass
gnome2-utils.eclass gnome2-utils.eclass: Make *_gdk_pixbuf_update work unconditionally 2024-02-06 04:07:32 +01:00
gnome2.eclass gnome2.eclass: Make gnome2_gdk_pixbuf_update call conditional 2024-02-06 04:07:33 +01:00
gnuconfig.eclass
gnustep-2.eclass gnustep-*.eclass: Drop support for EAPI 6 2024-04-10 19:55:37 +02:00
gnustep-base.eclass gnustep-*.eclass: Drop support for EAPI 6 2024-04-10 19:55:37 +02:00
go-env.eclass go-env.eclass: filter LTO temporarily for gcc 14.0.1 2024-03-16 04:43:53 +00:00
go-module.eclass go-module.eclass: update dev-go/golicense -> dev-go/lichen 2024-02-27 23:53:31 +00:00
golang-base.eclass
golang-build.eclass
golang-vcs-snapshot.eclass eclass/golang-vcs-snapshot.eclass: set up compile env 2023-11-20 23:25:29 +00:00
golang-vcs.eclass eclass/golang-vcs.eclass: set up compile env 2023-11-20 23:25:32 +00:00
gstreamer-meson.eclass gstreamer-meson.eclass: depend on glib-utils for -base and -bad splits 2024-04-01 22:53:41 +03:00
haskell-cabal.eclass haskell-cabal.eclass: Fix typos 2023-12-11 08:30:56 +01:00
java-ant-2.eclass java-ant-2.eclass: drop EAPI 6 2024-04-11 09:48:21 +02:00
java-osgi.eclass
java-pkg-2.eclass java-pkg-2.eclass: Use standard EAPI guard 2023-12-09 11:01:28 +01:00
java-pkg-opt-2.eclass java-pkg-opt-2.eclass: Drop redundant EAPI conditional 2023-12-09 11:01:29 +01:00
java-pkg-simple.eclass java-pkg-simple.eclass: use --module-path for ejavadoc when applicable 2024-04-10 10:11:04 +02:00
java-utils-2.eclass java-utils-2.eclass: default to default_src_prepare for future EAPI 2024-01-20 11:08:07 +01:00
java-vm-2.eclass java-vm-2.eclass: drop EAPI 6 2024-04-08 09:14:41 +02:00
kde.org.eclass kde.org.eclass: Add KDE_ORG_TAR_PN override variable 2023-12-15 17:21:03 +01:00
kernel-2.eclass kernel-2.eclass: add installkernel as optfeature 2024-02-02 07:16:16 +01:00
kernel-build.eclass kernel-build.eclass: install vmlinu{x,z} symlink 2024-02-11 13:11:15 +01:00
kernel-install.eclass kernel-install.eclass: explicitly set kernel image to 644 2024-02-11 13:11:17 +01:00
kodi-addon.eclass
latex-package.eclass
libretro-core.eclass
libtool.eclass libtool.eclass: depend on newer >=app-portage/elt-patches-20240116 2024-03-24 09:32:09 +00:00
linux-info.eclass linux-info.eclass: improve binpkg handling 2024-03-11 20:38:27 -04:00
linux-mod-r1.eclass linux-mod-r1.eclass: warn if KV does not match virtual/dist-kernel 2024-01-30 12:08:45 +01:00
linux-mod.eclass linux-mod.eclass: Fix xz compression options 2023-12-30 17:19:09 +01:00
llvm-r1.eclass llvm-r1.eclass: Initial version 2024-02-10 11:47:23 +01:00
llvm-utils.eclass llvm-utils.eclass: Fix llvm_prepend_path to avoid duplicates 2024-02-10 11:47:21 +01:00
llvm.eclass llvm-utils.eclass: Split out PATH prepending logic 2024-02-10 11:47:21 +01:00
llvm.org.eclass llvm.org.eclass: Add 19.0.0_pre20240420 snapshot 2024-04-20 11:38:23 +02:00
ltprune.eclass
lua-single.eclass
lua-utils.eclass
lua.eclass
mate-desktop.org.eclass
mate.eclass
mercurial.eclass
meson-multilib.eclass
meson.eclass meson.eclass: preserve exit status in phase funcs 2024-04-19 19:10:45 -04:00
mono-env.eclass
mono.eclass
mount-boot.eclass
mozcoreconf-v6.eclass
mozextension.eclass
mozlinguas-v2.eclass
multibuild.eclass multibuild.eclass: Fix passing return value from variants 2023-11-23 15:57:11 +01:00
multilib-build.eclass
multilib-minimal.eclass
multilib.eclass
multiprocessing.eclass multiprocessing.eclass: consider (GNU)MAKEFLAGS, add get_makeopts_{jobs,loadavg} 2023-10-09 12:54:06 +02:00
myspell-r2.eclass
netsurf.eclass
ninja-utils.eclass ninja-utils.eclass: dev-util/ninja -> app-alternatives/ninja 2024-01-08 12:01:25 +00:00
nuget.eclass eclass/dotnet-pkg.eclass: prepare for safely using Nuget 2024-02-10 17:24:46 +01:00
office-ext-r1.eclass
opam.eclass
optfeature.eclass
out-of-source-utils.eclass
out-of-source.eclass
pam.eclass
pax-utils.eclass
perl-functions.eclass
perl-module.eclass perl-module.eclass: extend DIST_TEST="do" to cover make-based tests 2023-10-16 10:26:14 +01:00
php-ext-pecl-r3.eclass
php-ext-source-r3.eclass Move {sys-devel → dev-build}/libtool 2024-01-15 16:58:27 +01:00
php-pear-r2.eclass
plasma-mobile.kde.org.eclass
plasma.kde.org.eclass plasma.kde.org.eclass: Unsupport versioning scheme of Plasma 6 Betas 2024-02-28 14:53:40 +01:00
plocale.eclass
portability.eclass Move {sys-devel → dev-build}/pmake 2024-01-13 18:53:17 +01:00
postgres-multi.eclass
postgres.eclass postgres.eclass: Drop postgresql:11 support 2024-01-19 09:51:51 +00:00
prefix.eclass
preserve-libs.eclass
pypi.eclass
python-any-r1.eclass
python-r1.eclass
python-single-r1.eclass
python-utils-r1.eclass python-utils-r1.eclass: epytest, error out on missing async plugin 2024-04-01 11:36:35 +02:00
qmail.eclass
qmake-utils.eclass
qt5-build.eclass qt5-build.eclass: Move append-ldflags and filter-lto to src_prepare 2024-01-10 12:00:52 +01:00
qt6-build.eclass qt6-build.eclass: sort eclass variables 2024-04-20 10:19:54 -04:00
readme.gentoo-r1.eclass
rebar.eclass
rocm.eclass rocm.eclass: add ROCM_SKIP_GLOBALS for the USE-flags exposure. 2023-12-14 22:51:04 +08:00
rpm.eclass rpm.eclass: Drop support for EAPI 6 2024-04-13 20:31:52 +02:00
ruby-fakegem.eclass
ruby-ng-gnome2.eclass
ruby-ng.eclass eclass/ruby-ng.eclass: add ruby30 to removed implementations 2023-09-23 08:29:56 +02:00
ruby-single.eclass
ruby-utils.eclass eclass/ruby-utils.eclass: prepare for ruby33 2023-12-25 10:02:42 +01:00
rust-toolchain.eclass
s6.eclass
savedconfig.eclass
scons-utils.eclass Move {dev-util → dev-build}/scons 2024-01-17 18:14:49 +01:00
secureboot.eclass
selinux-policy-2.eclass
sgml-catalog-r1.eclass
shell-completion.eclass
ssl-cert.eclass ssl-cert.eclass: Drop openssl slot dependency 2023-12-30 16:33:44 +01:00
stardict.eclass
strip-linguas.eclass
subversion.eclass
systemd.eclass systemd.eclass: add systemd_install_dropin 2023-10-01 14:16:06 -04:00
texlive-common.eclass texlive-common_update_tlpdb: only run find if tlpobj dir exists 2024-04-05 18:04:13 +02:00
texlive-module.eclass texlive-*.eclass: move update_tldb from texlive-module to texlive-common 2024-04-04 10:17:55 +02:00
tmpfiles.eclass
toolchain-autoconf.eclass toolchain-autoconf.eclass: compress slotted info pages 2024-01-23 05:58:14 +00:00
toolchain-funcs.eclass toolchain-funcs.eclass: Add tc-is-lto function 2023-12-26 15:02:09 +01:00
toolchain.eclass toolchain.eclass: propagate USE=zstd to libgccjit build 2024-04-22 04:13:52 +01:00
tree-sitter-grammar.eclass tree-sitter-grammar.eclass: don't pre-strip library 2024-03-23 16:29:55 +02:00
udev.eclass
unpacker.eclass unpacker.eclass: app-arch/cpio -> app-alternatives/cpio 2024-01-08 12:01:21 +00:00
user-info.eclass
usr-ldscript.eclass
vala.eclass vala.eclass: adapt modern c workaround for gcc 2023-12-04 07:32:13 +00:00
vcs-clean.eclass
vcs-snapshot.eclass
vdr-plugin-2.eclass */*: Remove dependency on virtual/linuxtv-dvb-headers 2024-03-03 17:35:22 +01:00
verify-sig.eclass verify-sig.eclass: Accept 1-out-of-n sigs on multisig files 2024-01-08 15:48:15 +01:00
versionator.eclass
vim-doc.eclass
vim-plugin.eclass
vim-spell.eclass
virtualx.eclass
waf-utils.eclass
webapp.eclass webapp.eclass: optimize webapp_serverowned() and inline webapp_strip_*() 2023-10-18 14:10:37 +02:00
wrapper.eclass
wxwidgets.eclass
xdg-utils.eclass
xdg.eclass
xemacs-packages.eclass
xorg-3.eclass Move {sys-devel → dev-build}/libtool 2024-01-15 16:58:27 +01:00

readme.gentoo-r1.eclass

# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

# @ECLASS: readme.gentoo-r1.eclass
# @MAINTAINER:
# Pacho Ramos <pacho@gentoo.org>
# @AUTHOR:
# Author: Pacho Ramos <pacho@gentoo.org>
# @SUPPORTED_EAPIS: 6 7 8
# @BLURB: install a doc file shown via elog messages
# @DESCRIPTION:
# An eclass for installing a README.gentoo doc file recording tips
# shown via elog messages. With this eclass, those elog messages will only be
# shown at first package installation and a file for later reviewing will be
# installed under /usr/share/doc/${PF}
#
# You need to call readme.gentoo_create_doc in src_install phase and
# readme.gentoo_print_elog in pkg_postinst

if [[ -z ${_README_GENTOO_ECLASS} ]]; then
_README_GENTOO_ECLASS=1

case ${EAPI} in
	6|7|8) ;;
	*) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;;
esac

# @ECLASS_VARIABLE: DOC_CONTENTS
# @DEFAULT_UNSET
# @DESCRIPTION:
# The information that is used to create the README.gentoo file.

# @ECLASS_VARIABLE: DISABLE_AUTOFORMATTING
# @DEFAULT_UNSET
# @DESCRIPTION:
# If non-empty, DOC_CONTENTS information will be strictly respected,
# not getting it automatically formatted by fmt. If empty, it will
# rely on fmt for formatting and 'echo -e' options to tweak lines a bit.

# @ECLASS_VARIABLE: FORCE_PRINT_ELOG
# @DEFAULT_UNSET
# @DESCRIPTION:
# If non-empty this variable forces elog messages to be printed.

# @ECLASS_VARIABLE: README_GENTOO_SUFFIX
# @DESCRIPTION:
# If you want to specify a suffix for README.gentoo file please export it.
: "${README_GENTOO_SUFFIX:=""}"

# @FUNCTION: readme.gentoo_create_doc
# @DESCRIPTION:
# Create doc file with ${DOC_CONTENTS} variable (preferred) and, if not set,
# look for "${FILESDIR}/README.gentoo" contents. You can use
# ${FILESDIR}/README.gentoo-${SLOT} also.
# Usually called at src_install phase.
readme.gentoo_create_doc() {
	debug-print-function ${FUNCNAME} "${@}"

	if [[ -n "${DOC_CONTENTS}" ]]; then
		if [[ -n "${DISABLE_AUTOFORMATTING}" ]]; then
			echo "${DOC_CONTENTS}" > "${T}"/README.gentoo || die
		else
			local saved_flags=$-
			set -f				# disable filename expansion in echo arguments
			echo -e ${DOC_CONTENTS} | fold -s -w 70 \
				| sed 's/[[:space:]]*$//' > "${T}"/README.gentoo
			assert
			set +f -${saved_flags}
		fi
	elif [[ -f "${FILESDIR}/README.gentoo-${SLOT%/*}" ]]; then
		cp "${FILESDIR}/README.gentoo-${SLOT%/*}" "${T}"/README.gentoo || die
	elif [[ -f "${FILESDIR}/README.gentoo${README_GENTOO_SUFFIX}" ]]; then
		cp "${FILESDIR}/README.gentoo${README_GENTOO_SUFFIX}" "${T}"/README.gentoo || die
	else
		die "You are not specifying README.gentoo contents!"
	fi

	( # subshell to avoid pollution of calling environment
		docinto .
		dodoc "${T}"/README.gentoo
	) || die
	README_GENTOO_DOC_VALUE=$(< "${T}/README.gentoo")
}

# @FUNCTION: readme.gentoo_print_elog
# @DESCRIPTION:
# Print elog messages with "${T}"/README.gentoo contents. They will be
# shown only when package is installed at first time.
# Usually called at pkg_postinst phase.
#
# If you want to show them always, please set FORCE_PRINT_ELOG to a non empty
# value in your ebuild before this function is called.
# This can be useful when, for example, DOC_CONTENTS is modified, then, you can
# rely on specific REPLACING_VERSIONS handling in your ebuild to print messages
# when people update from versions still providing old message.
readme.gentoo_print_elog() {
	debug-print-function ${FUNCNAME} "${@}"

	if [[ -z "${README_GENTOO_DOC_VALUE}" ]]; then
		die "readme.gentoo_print_elog invoked without matching readme.gentoo_create_doc call!"
	elif ! [[ -n "${REPLACING_VERSIONS}" ]] || [[ -n "${FORCE_PRINT_ELOG}" ]]; then
		echo -e "${README_GENTOO_DOC_VALUE}" | while read -r ELINE; do elog "${ELINE}"; done
		elog ""
		elog "(Note: Above message is only printed the first time package is"
		elog "installed. Please look at ${EPREFIX}/usr/share/doc/${PF}/README.gentoo*"
		elog "for future reference)"
	fi
}

fi