Sync with portage [Mon Mar 25 20:38:59 MSK 2024].

master 2550
root 1 month ago
parent a425e8ef6b
commit 34439d1fa9

Binary file not shown.

Binary file not shown.

@ -7,5 +7,6 @@
</maintainer>
<upstream>
<bugs-to>https://bugs.kde.org/</bugs-to>
<remote-id type="kde-invent">accessibility/kontrast</remote-id>
</upstream>
</pkgmetadata>

Binary file not shown.

@ -1,4 +1,4 @@
# Copyright 1999-2023 Gentoo Authors
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@ -14,7 +14,7 @@ S="${WORKDIR}/${P^}"
LICENSE="GPL-3"
SLOT="0"
KEYWORDS="~amd64 ~arm ~arm64"
KEYWORDS="amd64 ~arm ~arm64"
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
RDEPEND="${PYTHON_DEPS}

@ -1,7 +1,3 @@
DIST aws-cli-1.32.54.gh.tar.gz 2656395 BLAKE2B 7f41ac7bb0b11ef851cbc1793c202dd38045fda6af3694e1d2c29f2aa07047f116c6bceb5aec72e805494647f801b1523dadef5301322ed9c25426aaccc1289e SHA512 29e591d8f06091cd138c3ff10b15cd0344b5f12e6a4452ce1cde3e6439e1b70ded7f1b60c96c53a6ad699a3e6b49591e5d26b0190d7d6268792b77a883faa6fc
DIST aws-cli-1.32.59.gh.tar.gz 2660092 BLAKE2B 560bd7b69822af18f33e91d7586da20b6bf955070e524b66da2a987a6305298a2e566749cf50ac21907ca6fa97eb4a3f1475625f23bdd27874aab63f5b8f8cf9 SHA512 a4efcec4db472891bf856bbdb2b6a8e98e3b74f0db88c04c284d62d65650339f4c1f37cef92b4a5e8b06b75f8aaa7882d6cfe319cf5c25cd8961a0cac0d0f2b1
DIST aws-cli-1.32.64.gh.tar.gz 2672156 BLAKE2B 6707984b03e004ed8672b35694c9e4be7d2543c040a64778c0ad43a4e011f07506eb5e3f9791a5b0e23bc5bd222b625daa078f9e42cfbf6d71b7887d675c1a5a SHA512 f39472bb1ad75cbfc4bf775aee9a003a884d7423e10d9ff96f90ebe7dbd97c0db4bbd4d52f1d918372ec880d1dea8f5cf82db31118a7c29973d42149064fd8a3
DIST aws-cli-1.32.65.gh.tar.gz 2672697 BLAKE2B 209f59887a7b7841ab3e9d502365b47f390516351cb055c8e89e10a1d83e259c9938a0a967d8b436814c637ed88ba853e75813b7ab8d7632d97fe6020392638d SHA512 924bb324ac513d3228d7e287b0a55537a1b0c53615673516edd69f2743d67b7746976c23fe6a455e0b265eee957dceaa750e556ede98f2f530e2a3373713817c
DIST aws-cli-1.32.66.gh.tar.gz 2674255 BLAKE2B a636728892756c9ae0837f470f74fb9a231302962a3ffe3c68ffeafa082342bbab8f4a32268c45a56ba0a34b3d5ca3e1f2e9ec53687515354b20af7accdae142 SHA512 f46da9511837956ff9584b25fd563f78fd02865b3f165e3d641bf725305bca4ae78865570c9f4ff92cdf36f9c25bd59f2543278781a09d95d07fb343cb9c535f
DIST aws-cli-1.32.67.gh.tar.gz 2674997 BLAKE2B e852fbb594aad6f3879ffdcbee5135b7cc635a13fc4f12d05f9862cec43bcfe26701171da1baae0e3f8324534cd0bcb8ce7857a9d1add888066a24fc44f8bc02 SHA512 f619e46c75efa684219451a5adb89adcaccc88b149b8c240d3405507887ee734779d7097bb80a4f0e1d973f544f8b3743c6900c7e3f19e4b3cf1793da880748f
DIST aws-cli-1.32.68.gh.tar.gz 2675098 BLAKE2B 68b4012094bca59166ec7c8d7cd4622b5dcf4787db81322aad1b4d7031f7bf6ad1805dc2c87f6f16da911454a479768e30d55fae8a5fc7b3ffa1851268abe2c7 SHA512 bd99a72a892a854d57f8359bdb7306dbf64e46b309738c9d6ae1b2bb8413080e9d72c3a7e145b8e9eea4b94bf3e08bf62a6fe3db3e552c38e72dca92ba528daa
DIST aws-cli-1.32.69.gh.tar.gz 2675479 BLAKE2B 7a8ec84c029662145aaf49afd1b9194a7a021249ee7bff2f5c5b704703e54ee6f09c94cd0ccf85a968187f3e8e6c85a18fa31592f6bc82dc5c2aac9aaa02a643 SHA512 09f5929fcec0ec263f80b377ee21d256c52547f9f71b8a38382b0a9d39371646d0afcc3650079147f0dc8f6fa11d33cb4a9f3977c023be37851fca761ef6ac56

@ -1,90 +0,0 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DISTUTILS_USE_PEP517=setuptools
PYTHON_COMPAT=( python3_{10..12} )
inherit bash-completion-r1 distutils-r1
MY_P=aws-cli-${PV}
DESCRIPTION="Universal Command Line Environment for AWS"
HOMEPAGE="
https://github.com/aws/aws-cli/
https://pypi.org/project/awscli/
"
SRC_URI="
https://github.com/aws/aws-cli/archive/${PV}.tar.gz
-> ${MY_P}.gh.tar.gz
"
S=${WORKDIR}/${MY_P}
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="amd64 arm arm64 ppc ppc64 ~riscv sparc x86"
# botocore is x.(y+2).z
BOTOCORE_PV="$(ver_cut 1).$(( $(ver_cut 2) + 2)).$(ver_cut 3-)"
RDEPEND="
>=dev-python/botocore-${BOTOCORE_PV}[${PYTHON_USEDEP}]
dev-python/colorama[${PYTHON_USEDEP}]
dev-python/docutils[${PYTHON_USEDEP}]
dev-python/rsa[${PYTHON_USEDEP}]
>=dev-python/s3transfer-0.10.0[${PYTHON_USEDEP}]
dev-python/pyyaml[${PYTHON_USEDEP}]
!app-admin/awscli-bin
"
BDEPEND="
test? (
dev-python/packaging[${PYTHON_USEDEP}]
dev-python/pytest-forked[${PYTHON_USEDEP}]
)
"
EPYTEST_XDIST=1
distutils_enable_tests pytest
src_prepare() {
# do not rely on bundled deps in botocore (sic!)
find -name '*.py' -exec sed -i \
-e 's:from botocore[.]vendored import:import:' \
-e 's:from botocore[.]vendored[.]:from :' \
{} + || die
# strip overzealous upper bounds on requirements
sed -i -e 's:,<[0-9.]*::' -e 's:==:>=:' setup.py || die
distutils-r1_src_prepare
}
python_test() {
local serial_tests=(
tests/functional/ecs/test_execute_command.py::TestExecuteCommand::test_execute_command_success
tests/functional/ssm/test_start_session.py::TestSessionManager::test_start_session_{fails,success}
tests/functional/ssm/test_start_session.py::TestSessionManager::test_start_session_with_new_version_plugin_success
tests/unit/customizations/codeartifact/test_adapter_login.py::TestDotNetLogin::test_login_dotnet_sources_listed_with_backtracking
tests/unit/customizations/codeartifact/test_adapter_login.py::TestDotNetLogin::test_login_dotnet_sources_listed_with_backtracking_windows
tests/unit/customizations/codeartifact/test_adapter_login.py::TestNuGetLogin::test_login_nuget_sources_listed_with_backtracking
tests/unit/customizations/ecs/test_executecommand_startsession.py::TestExecuteCommand::test_execute_command_success
tests/unit/customizations/test_sessionmanager.py
tests/unit/test_compat.py::TestIgnoreUserSignals
tests/unit/test_help.py
tests/unit/test_utils.py::TestIgnoreCtrlC::test_ctrl_c_is_ignored
)
local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
EPYTEST_XDIST= epytest "${serial_tests[@]}"
local EPYTEST_DESELECT=( "${serial_tests[@]}" )
# integration tests require AWS credentials and Internet access
epytest tests/{functional,unit}
}
python_install_all() {
newbashcomp bin/aws_bash_completer aws
insinto /usr/share/zsh/site-functions
newins bin/aws_zsh_completer.sh _aws
distutils-r1_python_install_all
rm "${ED}"/usr/bin/{aws.cmd,aws_bash_completer,aws_zsh_completer.sh} || die
}

@ -22,7 +22,7 @@ S=${WORKDIR}/${MY_P}
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86"
KEYWORDS="amd64 arm arm64 ppc ppc64 ~riscv sparc x86"
# botocore is x.(y+2).z
BOTOCORE_PV="$(ver_cut 1).$(( $(ver_cut 2) + 2)).$(ver_cut 3-)"

@ -1,90 +0,0 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DISTUTILS_USE_PEP517=setuptools
PYTHON_COMPAT=( python3_{10..12} )
inherit bash-completion-r1 distutils-r1
MY_P=aws-cli-${PV}
DESCRIPTION="Universal Command Line Environment for AWS"
HOMEPAGE="
https://github.com/aws/aws-cli/
https://pypi.org/project/awscli/
"
SRC_URI="
https://github.com/aws/aws-cli/archive/${PV}.tar.gz
-> ${MY_P}.gh.tar.gz
"
S=${WORKDIR}/${MY_P}
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86"
# botocore is x.(y+2).z
BOTOCORE_PV="$(ver_cut 1).$(( $(ver_cut 2) + 2)).$(ver_cut 3-)"
RDEPEND="
>=dev-python/botocore-${BOTOCORE_PV}[${PYTHON_USEDEP}]
dev-python/colorama[${PYTHON_USEDEP}]
dev-python/docutils[${PYTHON_USEDEP}]
dev-python/rsa[${PYTHON_USEDEP}]
>=dev-python/s3transfer-0.10.0[${PYTHON_USEDEP}]
dev-python/pyyaml[${PYTHON_USEDEP}]
!app-admin/awscli-bin
"
BDEPEND="
test? (
dev-python/packaging[${PYTHON_USEDEP}]
dev-python/pytest-forked[${PYTHON_USEDEP}]
)
"
EPYTEST_XDIST=1
distutils_enable_tests pytest
src_prepare() {
# do not rely on bundled deps in botocore (sic!)
find -name '*.py' -exec sed -i \
-e 's:from botocore[.]vendored import:import:' \
-e 's:from botocore[.]vendored[.]:from :' \
{} + || die
# strip overzealous upper bounds on requirements
sed -i -e 's:,<[0-9.]*::' -e 's:==:>=:' setup.py || die
distutils-r1_src_prepare
}
python_test() {
local serial_tests=(
tests/functional/ecs/test_execute_command.py::TestExecuteCommand::test_execute_command_success
tests/functional/ssm/test_start_session.py::TestSessionManager::test_start_session_{fails,success}
tests/functional/ssm/test_start_session.py::TestSessionManager::test_start_session_with_new_version_plugin_success
tests/unit/customizations/codeartifact/test_adapter_login.py::TestDotNetLogin::test_login_dotnet_sources_listed_with_backtracking
tests/unit/customizations/codeartifact/test_adapter_login.py::TestDotNetLogin::test_login_dotnet_sources_listed_with_backtracking_windows
tests/unit/customizations/codeartifact/test_adapter_login.py::TestNuGetLogin::test_login_nuget_sources_listed_with_backtracking
tests/unit/customizations/ecs/test_executecommand_startsession.py::TestExecuteCommand::test_execute_command_success
tests/unit/customizations/test_sessionmanager.py
tests/unit/test_compat.py::TestIgnoreUserSignals
tests/unit/test_help.py
tests/unit/test_utils.py::TestIgnoreCtrlC::test_ctrl_c_is_ignored
)
local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
EPYTEST_XDIST= epytest "${serial_tests[@]}"
local EPYTEST_DESELECT=( "${serial_tests[@]}" )
# integration tests require AWS credentials and Internet access
epytest tests/{functional,unit}
}
python_install_all() {
newbashcomp bin/aws_bash_completer aws
insinto /usr/share/zsh/site-functions
newins bin/aws_zsh_completer.sh _aws
distutils-r1_python_install_all
rm "${ED}"/usr/bin/{aws.cmd,aws_bash_completer,aws_zsh_completer.sh} || die
}

@ -1,90 +0,0 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DISTUTILS_USE_PEP517=setuptools
PYTHON_COMPAT=( python3_{10..12} )
inherit bash-completion-r1 distutils-r1
MY_P=aws-cli-${PV}
DESCRIPTION="Universal Command Line Environment for AWS"
HOMEPAGE="
https://github.com/aws/aws-cli/
https://pypi.org/project/awscli/
"
SRC_URI="
https://github.com/aws/aws-cli/archive/${PV}.tar.gz
-> ${MY_P}.gh.tar.gz
"
S=${WORKDIR}/${MY_P}
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86"
# botocore is x.(y+2).z
BOTOCORE_PV="$(ver_cut 1).$(( $(ver_cut 2) + 2)).$(ver_cut 3-)"
RDEPEND="
>=dev-python/botocore-${BOTOCORE_PV}[${PYTHON_USEDEP}]
dev-python/colorama[${PYTHON_USEDEP}]
dev-python/docutils[${PYTHON_USEDEP}]
dev-python/rsa[${PYTHON_USEDEP}]
>=dev-python/s3transfer-0.10.0[${PYTHON_USEDEP}]
dev-python/pyyaml[${PYTHON_USEDEP}]
!app-admin/awscli-bin
"
BDEPEND="
test? (
dev-python/packaging[${PYTHON_USEDEP}]
dev-python/pytest-forked[${PYTHON_USEDEP}]
)
"
EPYTEST_XDIST=1
distutils_enable_tests pytest
src_prepare() {
# do not rely on bundled deps in botocore (sic!)
find -name '*.py' -exec sed -i \
-e 's:from botocore[.]vendored import:import:' \
-e 's:from botocore[.]vendored[.]:from :' \
{} + || die
# strip overzealous upper bounds on requirements
sed -i -e 's:,<[0-9.]*::' -e 's:==:>=:' setup.py || die
distutils-r1_src_prepare
}
python_test() {
local serial_tests=(
tests/functional/ecs/test_execute_command.py::TestExecuteCommand::test_execute_command_success
tests/functional/ssm/test_start_session.py::TestSessionManager::test_start_session_{fails,success}
tests/functional/ssm/test_start_session.py::TestSessionManager::test_start_session_with_new_version_plugin_success
tests/unit/customizations/codeartifact/test_adapter_login.py::TestDotNetLogin::test_login_dotnet_sources_listed_with_backtracking
tests/unit/customizations/codeartifact/test_adapter_login.py::TestDotNetLogin::test_login_dotnet_sources_listed_with_backtracking_windows
tests/unit/customizations/codeartifact/test_adapter_login.py::TestNuGetLogin::test_login_nuget_sources_listed_with_backtracking
tests/unit/customizations/ecs/test_executecommand_startsession.py::TestExecuteCommand::test_execute_command_success
tests/unit/customizations/test_sessionmanager.py
tests/unit/test_compat.py::TestIgnoreUserSignals
tests/unit/test_help.py
tests/unit/test_utils.py::TestIgnoreCtrlC::test_ctrl_c_is_ignored
)
local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
EPYTEST_XDIST= epytest "${serial_tests[@]}"
local EPYTEST_DESELECT=( "${serial_tests[@]}" )
# integration tests require AWS credentials and Internet access
epytest tests/{functional,unit}
}
python_install_all() {
newbashcomp bin/aws_bash_completer aws
insinto /usr/share/zsh/site-functions
newins bin/aws_zsh_completer.sh _aws
distutils-r1_python_install_all
rm "${ED}"/usr/bin/{aws.cmd,aws_bash_completer,aws_zsh_completer.sh} || die
}

@ -1,90 +0,0 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DISTUTILS_USE_PEP517=setuptools
PYTHON_COMPAT=( python3_{10..12} )
inherit bash-completion-r1 distutils-r1
MY_P=aws-cli-${PV}
DESCRIPTION="Universal Command Line Environment for AWS"
HOMEPAGE="
https://github.com/aws/aws-cli/
https://pypi.org/project/awscli/
"
SRC_URI="
https://github.com/aws/aws-cli/archive/${PV}.tar.gz
-> ${MY_P}.gh.tar.gz
"
S=${WORKDIR}/${MY_P}
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86"
# botocore is x.(y+2).z
BOTOCORE_PV="$(ver_cut 1).$(( $(ver_cut 2) + 2)).$(ver_cut 3-)"
RDEPEND="
>=dev-python/botocore-${BOTOCORE_PV}[${PYTHON_USEDEP}]
dev-python/colorama[${PYTHON_USEDEP}]
dev-python/docutils[${PYTHON_USEDEP}]
dev-python/rsa[${PYTHON_USEDEP}]
>=dev-python/s3transfer-0.10.0[${PYTHON_USEDEP}]
dev-python/pyyaml[${PYTHON_USEDEP}]
!app-admin/awscli-bin
"
BDEPEND="
test? (
dev-python/packaging[${PYTHON_USEDEP}]
dev-python/pytest-forked[${PYTHON_USEDEP}]
)
"
EPYTEST_XDIST=1
distutils_enable_tests pytest
src_prepare() {
# do not rely on bundled deps in botocore (sic!)
find -name '*.py' -exec sed -i \
-e 's:from botocore[.]vendored import:import:' \
-e 's:from botocore[.]vendored[.]:from :' \
{} + || die
# strip overzealous upper bounds on requirements
sed -i -e 's:,<[0-9.]*::' -e 's:==:>=:' setup.py || die
distutils-r1_src_prepare
}
python_test() {
local serial_tests=(
tests/functional/ecs/test_execute_command.py::TestExecuteCommand::test_execute_command_success
tests/functional/ssm/test_start_session.py::TestSessionManager::test_start_session_{fails,success}
tests/functional/ssm/test_start_session.py::TestSessionManager::test_start_session_with_new_version_plugin_success
tests/unit/customizations/codeartifact/test_adapter_login.py::TestDotNetLogin::test_login_dotnet_sources_listed_with_backtracking
tests/unit/customizations/codeartifact/test_adapter_login.py::TestDotNetLogin::test_login_dotnet_sources_listed_with_backtracking_windows
tests/unit/customizations/codeartifact/test_adapter_login.py::TestNuGetLogin::test_login_nuget_sources_listed_with_backtracking
tests/unit/customizations/ecs/test_executecommand_startsession.py::TestExecuteCommand::test_execute_command_success
tests/unit/customizations/test_sessionmanager.py
tests/unit/test_compat.py::TestIgnoreUserSignals
tests/unit/test_help.py
tests/unit/test_utils.py::TestIgnoreCtrlC::test_ctrl_c_is_ignored
)
local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
EPYTEST_XDIST= epytest "${serial_tests[@]}"
local EPYTEST_DESELECT=( "${serial_tests[@]}" )
# integration tests require AWS credentials and Internet access
epytest tests/{functional,unit}
}
python_install_all() {
newbashcomp bin/aws_bash_completer aws
insinto /usr/share/zsh/site-functions
newins bin/aws_zsh_completer.sh _aws
distutils-r1_python_install_all
rm "${ED}"/usr/bin/{aws.cmd,aws_bash_completer,aws_zsh_completer.sh} || die
}

@ -1 +1,2 @@
DIST calamares-3.2.60.tar.gz 4260547 BLAKE2B edf300ce9d534cd506b2341b3ce314bbde7fcc6dac40ad2307e549bbeab7a63ddfe6d7ae8c8176ee1ad4e4b02c9eadcd5efc66872e1f464c39200d8d117dca80 SHA512 dfc01212f74694f10d40dd1d1ad61db384c83021dc9cd4753027a9cf40b92c8e8b2d5032df76533a8f22c05448aba546c9bb21c38c03fb0cb8d7de35fb79fb7f
DIST calamares-3.3.5.tar.gz 4722988 BLAKE2B bc3270fbc2f804c46008f1f0a106719b779a07d7d5d3cc9f1ab17da7597ebb5dfebc8793036e19570b0048afb667df4b9fed55e813374d7465513ea048e00ffc SHA512 6846e13455e4fa38bd4d5061eece1baf5a972700f489dc1e35d988cfb5359650c63f79f9453431f1aff722af696260504c27f0c000490d781ab5fe03a5c46cf2

@ -0,0 +1,167 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
ECM_TEST="true"
PYTHON_COMPAT=( python3_{10..11} )
inherit ecm python-single-r1
DESCRIPTION="Distribution-independent installer framework"
HOMEPAGE="https://calamares.io"
SRC_URI="https://github.com/${PN}/${PN}/releases/download/v${PV}/${P}.tar.gz"
LICENSE="GPL-3"
SLOT="5"
KEYWORDS="~amd64"
IUSE="+networkmanager qt6 +upower"
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
QT5_MIN="5.15.0"
KF_QT5_MIN="5.78"
QT6_MIN="6.5.0"
KF_QT6_MIN="5.240"
BDEPEND="
qt6? (
>=dev-qt/qttools-${QT6_MIN}:6[linguist]
>=kde-frameworks/extra-cmake-modules-${KF_QT6_MIN}
)
!qt6? (
>=dev-qt/linguist-tools-${QT5_MIN}:5
>=kde-frameworks/extra-cmake-modules-${KF_QT5_MIN}
)
"
COMMON_DEPEND="${PYTHON_DEPS}
dev-cpp/yaml-cpp:=
$(python_gen_cond_dep '
>=dev-libs/boost-1.72.0:=[python,${PYTHON_USEDEP}]
dev-libs/libpwquality[${PYTHON_USEDEP}]
')
qt6? (
>=dev-qt/qtbase-${QT6_MIN}:6[concurrent,dbus,gui,network,widgets,xml]
>=dev-qt/qtdeclarative-${QT6_MIN}:6
>=dev-qt/qtsvg-${QT6_MIN}:6
>=dev-qt/qtwebengine-${QT6_MIN}:6[widgets]
dev-qt/kdsingleapplication[qt6]
>=kde-frameworks/kconfig-${KF_QT6_MIN}:6
>=kde-frameworks/kcoreaddons-${KF_QT6_MIN}:6
>=kde-frameworks/kcrash-${KF_QT6_MIN}:6
>=kde-frameworks/ki18n-${KF_QT6_MIN}:6
>=kde-frameworks/kpackage-${KF_QT6_MIN}:6
>=kde-frameworks/kparts-${KF_QT6_MIN}:6
>=kde-frameworks/kservice-${KF_QT6_MIN}:6
>=kde-frameworks/kwidgetsaddons-${KF_QT6_MIN}:6
sys-auth/polkit-qt[qt6(-)]
>=sys-libs/kpmcore-24.01.75:6=
)
!qt6? (
>=dev-qt/qtconcurrent-${QT5_MIN}:5
>=dev-qt/qtdbus-${QT5_MIN}:5
>=dev-qt/qtdeclarative-${QT5_MIN}:5
>=dev-qt/qtgui-${QT5_MIN}:5
>=dev-qt/qtnetwork-${QT5_MIN}:5
>=dev-qt/qtsvg-${QT5_MIN}:5
>=dev-qt/qtwebengine-${QT5_MIN}:5[widgets]
>=dev-qt/qtwidgets-${QT5_MIN}:5
>=dev-qt/qtxml-${QT5_MIN}:5
dev-qt/kdsingleapplication[-qt6]
>=kde-frameworks/kconfig-${KF_QT5_MIN}:5
>=kde-frameworks/kcoreaddons-${KF_QT5_MIN}:5
>=kde-frameworks/kcrash-${KF_QT5_MIN}:5
>=kde-frameworks/ki18n-${KF_QT5_MIN}:5
>=kde-frameworks/kpackage-${KF_QT5_MIN}:5
>=kde-frameworks/kparts-${KF_QT5_MIN}:5
>=kde-frameworks/kservice-${KF_QT5_MIN}:5
>=kde-frameworks/kwidgetsaddons-${KF_QT5_MIN}:5
sys-auth/polkit-qt[qt5(+)]
>=sys-libs/kpmcore-20.04.0:5=
)
sys-apps/dbus
sys-apps/dmidecode
virtual/libcrypt:=
"
DEPEND="${COMMON_DEPEND}
test? (
!qt6? ( dev-qt/qttest:5 )
)
"
RDEPEND="${COMMON_DEPEND}
app-admin/sudo
dev-libs/libatasmart
net-misc/rsync
|| (
sys-boot/grub:2
sys-apps/systemd[boot(-)]
sys-apps/systemd-utils[boot]
)
sys-boot/os-prober
sys-fs/squashfs-tools
sys-libs/timezone-data
virtual/udev
networkmanager? ( net-misc/networkmanager )
upower? ( sys-power/upower )
"
src_prepare() {
ecm_src_prepare
export PYTHON_INCLUDE_DIRS="$(python_get_includedir)" \
PYTHON_INCLUDE_PATH="$(python_get_library_path)"\
PYTHON_CFLAGS="$(python_get_CFLAGS)"\
PYTHON_LIBS="$(python_get_LIBS)"
sed -i -e 's:pkexec /usr/bin/calamares:calamares-pkexec:' \
calamares.desktop || die
sed -i -e 's:Icon=calamares:Icon=drive-harddisk:' \
calamares.desktop || die
cp "${FILESDIR}/calamares-gentoo-branding.desc" src/branding/default/branding.desc || die "Failed to overwrite branding file"
}
src_configure() {
local mycmakeargs=(
-DINSTALL_CONFIG=ON
-DINSTALL_COMPLETION=ON
-DINSTALL_POLKIT=ON
-DCMAKE_DISABLE_FIND_PACKAGE_LIBPARTED=ON
-DWITH_PYTHON=ON
# Use system instead
-DWITH_PYBIND11=OFF
-DBUILD_APPDATA=ON
-DWITH_QT6="$(usex qt6)"
)
ecm_src_configure
}
src_test() {
local myctestargs=(
# Skipped tests:
# load-dracut: tries and fails to find Dracut config
# libcalamaresnetworktest: needs network
# libcalamaresutilstest: inspects /tmp (expects namespace?)
#
# Need investigation:
# test_libcalamaresuipaste
# validate-netinstall
# validate-services-systemd
# localetest
# machineidtest
# packagechoosertest
#
# Requires removed dev-python/toml
# lint-displaymanager
#
# E1101
# lint-dummypython
-E "(load-dracut|libcalamaresnetworktest|libcalamaresutilstest|test_libcalamaresuipaste|validate-netinstall|validate-services-systemd|localetest|machineidtest|packagechoosertest|lint-displaymanager|lint-dummypython)"
)
cmake_src_test
}
src_install() {
ecm_src_install
dobin "${FILESDIR}"/calamares-pkexec
}

@ -0,0 +1,239 @@
# SPDX-FileCopyrightText: no
# SPDX-License-Identifier: CC0-1.0
#
# Product branding information. This influences some global
# user-visible aspects of Calamares, such as the product
# name, window behavior, and the slideshow during installation.
#
# Additional styling can be done using the stylesheet.qss
# file, also in the branding directory.
---
componentName: default
### WELCOME / OVERALL WORDING
#
# These settings affect some overall phrasing and looks,
# which are most visible in the welcome page.
# This selects between different welcome texts. When false, uses
# the traditional "Welcome to the %1 installer.", and when true,
# uses "Welcome to the Calamares installer for %1." This allows
# to distinguish this installer from other installers for the
# same distribution.
welcomeStyleCalamares: true
# Should the welcome image (productWelcome, below) be scaled
# up beyond its natural size? If false, the image does not grow
# with the window but remains the same size throughout (this
# may have surprising effects on HiDPI monitors).
welcomeExpandingLogo: true
### WINDOW CONFIGURATION
#
# The settings here affect the placement of the Calamares
# window through hints to the window manager and initial
# sizing of the Calamares window.
# Size and expansion policy for Calamares.
# - "normal" or unset, expand as needed, use *windowSize*
# - "fullscreen", start as large as possible, ignore *windowSize*
# - "noexpand", don't expand automatically, use *windowSize*
windowExpanding: normal
# Size of Calamares window, expressed as w,h. Both w and h
# may be either pixels (suffix px) or font-units (suffix em).
# e.g. "800px,600px"
# "60em,480px"
# This setting is ignored if "fullscreen" is selected for
# *windowExpanding*, above. If not set, use constants defined
# in CalamaresUtilsGui, 800x520.
windowSize: 800px,520px
# Placement of Calamares window. Either "center" or "free".
# Whether "center" actually works does depend on the window
# manager in use (and only makes sense if you're not using
# *windowExpanding* set to "fullscreen").
windowPlacement: center
### PANELS CONFIGURATION
#
# Calamares has a main content area, and two panels (navigation
# and progress / sidebar). The panels can be controlled individually,
# or switched off. If both panels are switched off, the layout of
# the main content area loses its margins, on the assumption that
# you're doing something special.
# Kind of sidebar (panel on the left, showing progress).
# - "widget" or unset, use traditional sidebar (logo, items)
# - "none", hide it entirely
# - "qml", use calamares-sidebar.qml from branding folder
# In addition, you **may** specify a side, separated by a comma,
# from the kind. Valid sides are:
# - "left" (if not specified, uses this)
# - "right"
# - "top"
# - "bottom"
# For instance, "widget,right" is valid; so is "qml", which defaults
# to putting the sidebar on the left. Also valid is "qml,top".
# While "widget,top" is valid, the widgets code is **not** flexible
# and results will be terrible.
sidebar: widget
# Kind of navigation (button panel on the bottom).
# - "widget" or unset, use traditional navigation
# - "none", hide it entirely
# - "qml", use calamares-navigation.qml from branding folder
# In addition, you **may** specify a side, separated by a comma,
# from the kind. The same sides are valid as for *sidebar*,
# except the default is *bottom*.
navigation: widget
### STRINGS, IMAGES AND COLORS
#
# This section contains the "branding proper" of names
# and images, rather than global-look settings.
# These are strings shown to the user in the user interface.
# There is no provision for translating them -- since they
# are names, the string is included as-is.
#
# The four Url strings are the Urls used by the buttons in
# the welcome screen, and are not shown to the user. Clicking
# on the "Support" button, for instance, opens the link supportUrl.
# If a Url is empty, the corresponding button is not shown.
#
# bootloaderEntryName is how this installation / distro is named
# in the boot loader (e.g. in the GRUB menu).
#
# These strings support substitution from /etc/os-release
# if KDE Frameworks 5.58 are available at build-time. When
# enabled, ${varname} is replaced by the equivalent value
# from os-release. All the supported var-names are in all-caps,
# and are listed on the FreeDesktop.org site,
# https://www.freedesktop.org/software/systemd/man/os-release.html
# Note that ANSI_COLOR and CPE_NAME don't make sense here, and
# are not supported (the rest are). Remember to quote the string
# if it contains substitutions, or you'll get YAML exceptions.
#
# The *Url* entries are used on the welcome page, and they
# are visible as buttons there if the corresponding *show* keys
# are set to "true" (they can also be overridden).
strings:
productName: ${PRETTY_NAME}
shortProductName: ${NAME}
version: ${VERSION_ID}
shortVersion: ${VERSION_ID}
versionedName: ${PRETTY_NAME} ${VERSION_ID}
shortVersionedName: ${NAME} ${VERSION_ID}
bootloaderEntryName: ${NAME}
productUrl: ${HOME_URL}
supportUrl: ${SUPPORT_URL}
knownIssuesUrl: ${BUG_REPORT_URL}
releaseNotesUrl: ${HOME_URL}
donateUrl: ${HOME_URL}
# These images are loaded from the branding module directory.
#
# productBanner is an optional image, which if present, will be shown
# on the welcome page of the application, above the welcome text.
# It is intended to have a width much greater than height.
# It is displayed at 64px height (also on HiDPI).
# Recommended size is 64px tall, and up to 460px wide.
# productIcon is used as the window icon, and will (usually) be used
# by the window manager to represent the application. This image
# should be square, and may be displayed by the window manager
# as small as 16x16 (but possibly larger).
# productLogo is used as the logo at the top of the left-hand column
# which shows the steps to be taken. The image should be square,
# and is displayed at 80x80 pixels (also on HiDPI).
# productWallpaper is an optional image, which if present, will replace
# the normal solid background on every page of the application.
# It can be any size and proportion,
# and will be tiled to fit the entire window.
# For a non-tiled wallpaper, the size should be the same as
# the overall window, see *windowSize* above (800x520).
# productWelcome is shown on the welcome page of the application in
# the middle of the window, below the welcome text. It can be
# any size and proportion, and will be scaled to fit inside
# the window. Use `welcomeExpandingLogo` to make it non-scaled.
# Recommended size is 320x150.
#
# These filenames can also use substitutions from os-release (see above).
images:
# productBanner: "banner.png"
productIcon: "squid.png"
productLogo: "squid.png"
# productWallpaper: "wallpaper.png"
productWelcome: "languages.png"
# Colors for text and background components.
#
# - SidebarBackground is the background of the sidebar
# - SidebarText is the (foreground) text color
# - SidebarBackgroundCurrent sets the background of the current step.
# Optional, and defaults to the application palette.
# - SidebarTextCurrent is the text color of the current step.
#
# These colors can **also** be set through the stylesheet, if the
# branding component also ships a stylesheet.qss. Then they are
# the corresponding CSS attributes of #sidebarApp.
style:
SidebarBackground: "#292F34"
SidebarText: "#FFFFFF"
SidebarTextCurrent: "#292F34"
SidebarBackgroundCurrent: "#D35400"
### SLIDESHOW
#
# The slideshow is displayed during execution steps (e.g. when the
# installer is actually writing to disk and doing other slow things).
# The slideshow can be a QML file (recommended) which can display
# arbitrary things -- text, images, animations, or even play a game --
# during the execution step. The QML **is** abruptly stopped when the
# execution step is done, though, so maybe a game isn't a great idea.
#
# The slideshow can also be a sequence of images (not recommended unless
# you don't want QML at all in your Calamares). The images are displayed
# at a rate of 1 every 2 seconds during the execution step.
#
# To configure a QML file, list a single filename:
# slideshow: "show.qml"
# To configure images, like the filenames (here, as an inline list):
# slideshow: [ "/etc/calamares/slideshow/0.png", "/etc/logo.png" ]
slideshow: "show.qml"
# There are two available APIs for a QML slideshow:
# - 1 (the default) loads the entire slideshow when the installation-
# slideshow page is shown and starts the QML then. The QML
# is never stopped (after installation is done, times etc.
# continue to fire).
# - 2 loads the slideshow on startup and calls onActivate() and
# onLeave() in the root object. After the installation is done,
# the show is stopped (first by calling onLeave(), then destroying
# the QML components).
#
# An image slideshow does not need to have the API defined.
slideshowAPI: 2
# These options are to customize online uploading of logs to pastebins:
# - type : Defines the kind of pastebin service to be used. Currently
# it accepts two values:
# - none : disables the pastebin functionality
# - fiche : use fiche pastebin server
# - url : Defines the address of pastebin service to be used.
# Takes string as input. Important bits are the host and port,
# the scheme is not used.
# - sizeLimit : Defines maximum size limit (in KiB) of log file to be pasted.
# The option must be set, to have the log option work.
# Takes integer as input. If < 0, no limit will be forced,
# else only last (approximately) 'n' KiB of log file will be pasted.
# Please note that upload size may be slightly over the limit (due
# to last minute logging), so provide a suitable value.
uploadServer :
type : "fiche"
url : "http://termbin.com:9999"
sizeLimit : -1

@ -1,4 +1,4 @@
# Copyright 1999-2023 Gentoo Authors
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@ -12,9 +12,7 @@ SRC_URI="https://github.com/drush-ops/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="amd64 x86"
IUSE=""
DEPEND=""
RDEPEND="dev-lang/php[cli,ctype,json(+),simplexml]
dev-php/PEAR-Console_Table"

@ -1,4 +1,4 @@
# Copyright 1999-2022 Gentoo Authors
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@ -11,10 +11,8 @@ SRC_URI="https://github.com/drush-ops/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="amd64 x86"
IUSE=""
KEYWORDS="~amd64 ~x86"
DEPEND=""
RDEPEND="dev-lang/php[cli,ctype,json(+),simplexml]
dev-php/PEAR-Console_Table"
@ -23,6 +21,8 @@ PATCHES=(
"${FILESDIR}/array-syntax.patch"
"${FILESDIR}/${P}-php8.0.patch"
"${FILESDIR}/${P}-gzip-mime.patch"
"${FILESDIR}/${P}-dont-pass-null-to-strtoupper.patch"
"${FILESDIR}/${P}-batch-signature-fix-r1.patch"
)
src_prepare() {

@ -0,0 +1,46 @@
From 1acd52cff0d516ebfa7f177c38ed7f851c4f472a Mon Sep 17 00:00:00 2001
From: Michael Orlitzky <michael@orlitzky.com>
Date: Wed, 16 Aug 2023 21:21:39 -0400
Subject: [PATCH] includes/batch.inc: synchronize sub and superclass signatures
The DrushBatchContext class overrides the offsetSet() method of its
superclass, ArrayObject, but changes its signature:
Error: Return type of DrushBatchContext::offsetSet($name, $value)
should either be compatible with ArrayObject::offsetSet(mixed $key,
mixed $value): void, or the #[\ReturnTypeWillChange] attribute should
be used to temporarily suppress the notice in .../batch.inc, line 37
Renaming the parameter to $key and adding type hints fixes the issue.
Signed-off-by: Michael Orlitzky <michael@orlitzky.com>
---
includes/batch.inc | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/includes/batch.inc b/includes/batch.inc
index dd4adc9..d26fabb 100644
--- a/includes/batch.inc
+++ b/includes/batch.inc
@@ -34,14 +34,14 @@
* @see _drush_batch_worker().
*/
class DrushBatchContext extends ArrayObject {
- function offsetSet($name, $value) {
- if ($name == 'message') {
+ function offsetSet(mixed $key, mixed $value): void {
+ if ($key == 'message') {
drush_log(strip_tags($value), 'ok');
}
- elseif ($name == 'error_message') {
+ elseif ($key == 'error_message') {
drush_set_error('DRUSH_BATCH_ERROR', strip_tags($value));
}
- parent::offsetSet($name, $value);
+ parent::offsetSet($key, $value);
}
}
--
2.43.2

@ -1,2 +1 @@
DIST fifo-cronolog-1.1.1.tar.bz2 3124 BLAKE2B 6e9cb35e0ed1b54c3baed4451742840dc1144294fc675822c1260d4d7d885a52f8835e60dcbed57c714e40e94e6d51b3ba78af9b9892883f5f520a7c57d30df8 SHA512 3ac809d5cfc951764aaf31d50ee394b0dde9ced16f53daa91c81bdb218af2bab410ff945ebfdeb8307a55bda3292c0a55eb500c3cb73595e17228ef739455d90
DIST fifo-cronolog-1.2.3.tar.gz 4518 BLAKE2B c227304d98b2467a1ed7352399b1e53aba4dc005fa30a1be73b8cc96d61ee49d5f6a3703ccddd1ffef652c4090e9b5dfed9cce3f1254b959a1ccc07aac78b3f6 SHA512 557be1a663c5754a293092078b8a3710474bb1939c1ee65e4c560056238ca646e941e4ad82c0a90c02834fc90ddb2aae9047a4e73d42cf8c2c013f2a5d2c839c

@ -1,29 +0,0 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DESCRIPTION="cronolog wrapper for use with dumb daemons like squid, varnish and so on"
HOMEPAGE="https://cgit.gentoo.org/proj/fifo-cronolog.git"
SRC_URI="http://dev.gentoo.org/~robbat2/distfiles/${P}.tar.bz2"
LICENSE="BSD-2 GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~x86"
RDEPEND="app-admin/cronolog"
src_install() {
dosbin fifo-cronolog
newinitd fifo-cronolog.initd fifo-cronolog
newconfd fifo-cronolog.confd fifo-cronolog
dosym fifo-cronolog /usr/sbin/squid-cronolog
}
pkg_postinst() {
elog "Warning: app-admin/squid-cronolog has been renamed to app-admin/fifo-cronolog."
elog "This also applies to the binary 'squid-cronolog' but there is a symlink for now"
elog "Please fix your scripts/configs."
}

@ -27,7 +27,7 @@ src_install() {
newinitd openrc/fifo-cronolog.initd fifo-cronolog
newconfd openrc/fifo-cronolog.confd fifo-cronolog
systemd_douserunit systemd/fifo-cronolog@.service
systemd_dounit systemd/fifo-cronolog@.service
dodoc README.md systemd/fifo-cronolog@example.service.env
}

@ -1,3 +1 @@
DIST hcloud-1.37.0.tar.xz 1868892 BLAKE2B 40268017c28877a5d26cb752e28511de591ca8dac9ab834b8ad5d15005306910a80501659ed1f827ca7184f1399a054519360c3a27d4081d08346bca53978537 SHA512 c785851a2085511bfb9b257a7267f51b4c8bcc9d14f6b595d772712aeb99c1d9db99a481b211bf110ee5c0fd260cc5a98d3dc5445a68807d5abeb050d0e89b81
DIST hcloud-1.41.1.tar.xz 1869464 BLAKE2B 4ce755ae14bdfe5e90b673a31f3002ae812449593c3ba4fb08ec3ad0fe21cb2d57bf1dbe0f744d39b4844b165e49a86663a20bad1389d1468e052dbb6163deed SHA512 0e2236d0c4efabccca090866a87d7938d2eb39885b7901e3874c40e1ce672515376edc69471b411e862b1269ac538db380347738362bed1464064c4f6799f933
DIST hcloud-1.42.0.tar.xz 1876444 BLAKE2B e7ed2e01a7c6bb106a5c46e21e26d8b6bdd7636b64c7b354674364c3db8c1776f09f199ea022e2f311e873490b737490ea22045aa00147c6066ff0a7fb96d563 SHA512 dab916666ec17b9675ba0a559170859779289c36739ac4c3d72445c87fb440df475e55e52ed628fd8d1a52421c6df4d47b0b51713e476753a66da74b3a7bf11c

@ -1,34 +0,0 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
DESCRIPTION="A command-line interface for Hetzner Cloud"
HOMEPAGE="https://github.com/hetznercloud/cli"
SRC_URI="https://dev.gentoo.org/~ago/distfiles/${P}.tar.xz"
LICENSE="MIT"
SLOT="0"
KEYWORDS="amd64"
IUSE=""
DEPEND=">=dev-lang/go-1.18:="
RESTRICT="strip"
QA_FLAGS_IGNORED=".*"
src_compile() {
go build -mod vendor -o ${PN} -ldflags "-w -X github.com/hetznercloud/cli/internal/version.Version=${PV}-gentoo" ./cmd/${PN} || die "build failed"
}
src_test() {
# For upstream a simple test is run 'hcloud version'
./hcloud version
if [[ $? -ne 0 ]]
then
die "Test failed"
fi
}
src_install() {
dobin ${PN}
}

@ -1,34 +0,0 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
DESCRIPTION="A command-line interface for Hetzner Cloud"
HOMEPAGE="https://github.com/hetznercloud/cli"
SRC_URI="https://dev.gentoo.org/~ago/distfiles/${P}.tar.xz"
LICENSE="MIT"
SLOT="0"
KEYWORDS="~amd64"
IUSE=""
DEPEND=">=dev-lang/go-1.18:="
RESTRICT="strip"
QA_FLAGS_IGNORED=".*"
src_compile() {
go build -mod vendor -o ${PN} -ldflags "-w -X github.com/hetznercloud/cli/internal/version.Version=${PV}-gentoo" ./cmd/${PN} || die "build failed"
}
src_test() {
# For upstream a simple test is run 'hcloud version'
./hcloud version
if [[ $? -ne 0 ]]
then
die "Test failed"
fi
}
src_install() {
dobin ${PN}
}

@ -11,9 +11,7 @@ SRC_URI="https://dev.gentoo.org/~ago/distfiles/${P}.tar.xz"
LICENSE="MIT"
SLOT="0"
KEYWORDS="~amd64"
IUSE=""
KEYWORDS="amd64"
src_compile() {
ego build -o ${PN} -ldflags "-w -X github.com/hetznercloud/cli/internal/version.Version=${PV}-gentoo" ./cmd/${PN}

@ -1,2 +1 @@
DIST pwman3-0.11.1.tar.gz 76992 BLAKE2B cd7289781436f0f8b941d587c61b2d8a5cad52f3d57d01106d73b3da5930de2bd2df15fe5a4bcfbdce5e5733b7328764d6e4e2d18cba8a575cadad8835218e75 SHA512 111713e23b64a7492b5e2735b0d0117a81759bd9f25a87327a2aa4a465fbbc8a0aa0fbfa86b84cbcd40eb1540d05cdbc6fb81982fe61953df91979e674ce5640
DIST pwman3-0.12.2.tar.gz 76744 BLAKE2B 5223169a267f0c35bcb26499138c9b768c6e29c4ce39d4fb89c56eb72d24a9729159bed93af24e12f1e0e6c1569586772eb36954afd51afc7c97c9de898346e5 SHA512 587839e7d532ef3c53e2c429b086eb6bd59290ce43687034400f8e0772cc4e97c9296694ad83c5fa3fdde37b8d8fef5bc150e9f81fcb9fe8712ffafb4be8b400

@ -1,31 +0,0 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
PYTHON_COMPAT=( python3_{9..10} )
PYTHON_REQ_USE="sqlite"
inherit distutils-r1 optfeature
DESCRIPTION="A lightweight password-manager with multiple database backends"
HOMEPAGE="https://pwman3.github.io/pwman3/"
SRC_URI="https://github.com/pwman3/pwman3/archive/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="GPL-3+"
SLOT="0"
KEYWORDS="~amd64"
RESTRICT="!test? ( test )"
RDEPEND="
>=dev-python/cryptography-2.3[${PYTHON_USEDEP}]
>=dev-python/colorama-0.3.0[${PYTHON_USEDEP}]
"
BDEPEND="test? ( dev-python/pexpect[${PYTHON_USEDEP}] )"
distutils_enable_tests setup.py
pkg_postinst() {
optfeature "Support for mongodb" dev-python/pymongo
optfeature "Support for postgresql" dev-python/psycopg:2
optfeature "Support for mysql" dev-python/pymysql
}

@ -1,9 +1,9 @@
# Copyright 1999-2023 Gentoo Authors
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{9..11} )
PYTHON_COMPAT=( python3_{10..12} )
PYTHON_REQ_USE="sqlite"
DISTUTILS_USE_PEP517=setuptools
@ -16,15 +16,22 @@ SRC_URI="https://github.com/pwman3/pwman3/archive/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="GPL-3+"
SLOT="0"
KEYWORDS="~amd64"
IUSE="test"
RESTRICT="!test? ( test )"
RDEPEND="
>=dev-python/cryptography-2.3[${PYTHON_USEDEP}]
>=dev-python/colorama-0.4.0[${PYTHON_USEDEP}]
"
BDEPEND="test? ( dev-python/pexpect[${PYTHON_USEDEP}] )"
BDEPEND="
test? (
dev-python/pexpect[${PYTHON_USEDEP}]
)
"
distutils_enable_tests setup.py
python_test() {
"${EPYTHON}" -m tests.test_pwman || die "Tests fail with ${EPYTHON}"
}
pkg_postinst() {
optfeature "Support for mongodb" dev-python/pymongo

Binary file not shown.

@ -1,204 +0,0 @@
From b9e2714d5b42ad9a0742746996b989400c794adb Mon Sep 17 00:00:00 2001
From: Michael Orlitzky <michael@orlitzky.com>
Date: Fri, 4 Nov 2022 19:31:15 -0400
Subject: [PATCH 1/2] clamonacc/c-thread-pool/thpool.c: define _GNU_SOURCE for
syscall().
On Linux, thpool.c uses syscall() from unistd.h, but that function is
not defined without _GNU_SOURCE:
c-thread-pool/thpool.c: In function 'jobqueue_pull':
c-thread-pool/thpool.c:474:105: error: implicit declaration of function
'syscall' [-Werror=implicit-function-declaration]
In general that's not great, because it hinders some compiler diagnostics,
but it will also cause problems down the road if (for example) clang-16
decides to enable -Werror=implicit-function-declaration by default.
This commit changes the _POSIX_C_SOURCE definition at the top of
thpool.c to _GNU_SOURCE, as in the syscall(2) man page.
---
clamonacc/c-thread-pool/thpool.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/clamonacc/c-thread-pool/thpool.c b/clamonacc/c-thread-pool/thpool.c
index 46572da5f4..27c5103ff1 100644
--- a/clamonacc/c-thread-pool/thpool.c
+++ b/clamonacc/c-thread-pool/thpool.c
@@ -8,7 +8,7 @@
*
********************************/
-#define _POSIX_C_SOURCE 200809L
+#define _GNU_SOURCE
#include <unistd.h>
#include <signal.h>
#include <stdio.h>
From 7e3425ab701141064d179c45af2251f61af4ccc7 Mon Sep 17 00:00:00 2001
From: Michael Orlitzky <michael@orlitzky.com>
Date: Fri, 4 Nov 2022 20:08:30 -0400
Subject: [PATCH 2/2] */*: fix invalid prototypes.
Prototypes (or the declarations themselves, if there is no
corresponding prototype) for functions that take no arguments are
required by the C standard to specify (void) as their argument list;
for example,
regex_pcre.h:79:1: error: function declaration isn't a prototype
[-Werror=strict-prototypes]
79 | cl_error_t cli_pcre_init_internal();
Future versions of clang may become strict about this, and there's no
harm in conforming to the standard right now, so we fix all such
instances in this commit.
---
clamonacc/clamonacc.c | 2 +-
clamonacc/client/socket.h | 2 +-
clamonacc/inotif/hash.c | 2 +-
clamonacc/inotif/inotif.c | 2 +-
clamonacc/scan/onas_queue.c | 6 +++---
libclamav/matcher-pcre.h | 6 +++---
libclamav/regex_pcre.h | 2 +-
m4/reorganization/compiler_checks.m4 | 2 +-
shared/misc.h | 2 +-
9 files changed, 13 insertions(+), 13 deletions(-)
diff --git a/clamonacc/clamonacc.c b/clamonacc/clamonacc.c
index ba986ef06c..c020897908 100644
--- a/clamonacc/clamonacc.c
+++ b/clamonacc/clamonacc.c
@@ -61,7 +61,7 @@
pthread_t ddd_pid = 0;
pthread_t scan_queue_pid = 0;
-static void onas_handle_signals();
+static void onas_handle_signals(void);
static int startup_checks(struct onas_context *ctx);
static struct onas_context *g_ctx = NULL;
diff --git a/clamonacc/client/socket.h b/clamonacc/client/socket.h
index 915f9086ca..ea84fb4c41 100644
--- a/clamonacc/client/socket.h
+++ b/clamonacc/client/socket.h
@@ -31,4 +31,4 @@ struct onas_sock_t {
};
cl_error_t onas_set_sock_only_once(struct onas_context *ctx);
-int onas_get_sockd();
+int onas_get_sockd(void);
diff --git a/clamonacc/inotif/hash.c b/clamonacc/inotif/hash.c
index e4b3f1f983..2bbc4cdbb4 100644
--- a/clamonacc/inotif/hash.c
+++ b/clamonacc/inotif/hash.c
@@ -58,7 +58,7 @@
#if defined(HAVE_SYS_FANOTIFY_H)
-static struct onas_bucket *onas_bucket_init();
+static struct onas_bucket *onas_bucket_init(void);
static void onas_free_bucket(struct onas_bucket *bckt);
static int onas_bucket_insert(struct onas_bucket *bckt, struct onas_element *elem);
static int onas_bucket_remove(struct onas_bucket *bckt, struct onas_element *elem);
diff --git a/clamonacc/inotif/inotif.c b/clamonacc/inotif/inotif.c
index 7799ae4889..b8680e9856 100644
--- a/clamonacc/inotif/inotif.c
+++ b/clamonacc/inotif/inotif.c
@@ -66,7 +66,7 @@
static int onas_ddd_init_ht(uint32_t ht_size);
static int onas_ddd_init_wdlt(uint64_t nwatches);
-static int onas_ddd_grow_wdlt();
+static int onas_ddd_grow_wdlt(void);
static int onas_ddd_watch(const char *pathname, int fan_fd, uint64_t fan_mask, int in_fd, uint64_t in_mask);
static int onas_ddd_watch_hierarchy(const char *pathname, size_t len, int fd, uint64_t mask, uint32_t type);
diff --git a/clamonacc/scan/onas_queue.c b/clamonacc/scan/onas_queue.c
index d279df7415..6fa7df6e96 100644
--- a/clamonacc/scan/onas_queue.c
+++ b/clamonacc/scan/onas_queue.c
@@ -82,7 +82,7 @@ static cl_error_t onas_new_event_queue_node(struct onas_event_queue_node **node)
return CL_SUCCESS;
}
-static void *onas_init_event_queue()
+static void *onas_init_event_queue(void)
{
if (CL_EMEM == onas_new_event_queue_node(&g_onas_event_queue_head)) {
@@ -122,7 +122,7 @@ static void onas_destroy_event_queue_node(struct onas_event_queue_node *node)
return;
}
-static void onas_destroy_event_queue()
+static void onas_destroy_event_queue(void)
{
if (NULL == g_onas_event_queue_head) {
@@ -200,7 +200,7 @@ void *onas_scan_queue_th(void *arg)
pthread_cleanup_pop(1);
}
-static int onas_queue_is_b_empty()
+static int onas_queue_is_b_empty(void)
{
if (g_onas_event_queue.head->next == g_onas_event_queue.tail) {
diff --git a/libclamav/matcher-pcre.h b/libclamav/matcher-pcre.h
index 5ffc88fb26..b0bd51852b 100644
--- a/libclamav/matcher-pcre.h
+++ b/libclamav/matcher-pcre.h
@@ -68,11 +68,11 @@ struct cli_pcre_meta {
};
/* PCRE PERFORMANCE DECLARATIONS */
-void cli_pcre_perf_print();
-void cli_pcre_perf_events_destroy();
+void cli_pcre_perf_print(void);
+void cli_pcre_perf_events_destroy(void);
/* PCRE MATCHER DECLARATIONS */
-int cli_pcre_init();
+int cli_pcre_init(void);
cl_error_t cli_pcre_addpatt(struct cli_matcher *root, const char *virname, const char *trigger, const char *pattern, const char *cflags, const char *offset, const uint32_t *lsigid, unsigned int options);
cl_error_t cli_pcre_build(struct cli_matcher *root, long long unsigned match_limit, long long unsigned recmatch_limit, const struct cli_dconf *dconf);
cl_error_t cli_pcre_recaloff(struct cli_matcher *root, struct cli_pcre_off *data, struct cli_target_info *info, cli_ctx *ctx);
diff --git a/libclamav/regex_pcre.h b/libclamav/regex_pcre.h
index d1f4127984..52653431d4 100644
--- a/libclamav/regex_pcre.h
+++ b/libclamav/regex_pcre.h
@@ -76,7 +76,7 @@ struct cli_pcre_results {
};
#endif
-cl_error_t cli_pcre_init_internal();
+cl_error_t cli_pcre_init_internal(void);
cl_error_t cli_pcre_addoptions(struct cli_pcre_data *pd, const char **opt, int errout);
cl_error_t cli_pcre_compile(struct cli_pcre_data *pd, long long unsigned match_limit, long long unsigned match_limit_recursion, unsigned int options, int opt_override);
int cli_pcre_match(struct cli_pcre_data *pd, const unsigned char *buffer, size_t buflen, size_t override_offset, int options, struct cli_pcre_results *results);
diff --git a/m4/reorganization/compiler_checks.m4 b/m4/reorganization/compiler_checks.m4
index f7984f4cb2..80c81e1d30 100644
--- a/m4/reorganization/compiler_checks.m4
+++ b/m4/reorganization/compiler_checks.m4
@@ -121,7 +121,7 @@ extern void abort(void);
((bb_size) > 0 && (sb_size) > 0 && (size_t)(sb_size) <= (size_t)(bb_size) \
&& (sb) >= (bb) && ((sb) + (sb_size)) <= ((bb) + (bb_size)) && ((sb) + (sb_size)) > (bb) && (sb) < ((bb) + (bb_size)))
-int crashtest()
+int crashtest(void)
{
unsigned int backsize, dcur;
int dval=0x12000, unp_offset;
diff --git a/shared/misc.h b/shared/misc.h
index 436c73117b..63fdea0f50 100644
--- a/shared/misc.h
+++ b/shared/misc.h
@@ -72,7 +72,7 @@ int daemonize(void);
/*closes stdin, stdout, stderr. This is called by daemonize, but not
* daemonize_all_return. Users of daemonize_all_return should call this
* when initialization is complete.*/
-int close_std_descriptors();
+int close_std_descriptors(void);
/*Returns the return value of fork. All processes return */
int daemonize_all_return(void);

Binary file not shown.

@ -1 +1,2 @@
DIST file-roller-43.1.tar.xz 898216 BLAKE2B 1a48f642a6436e2cc34cc4629ac24ab984b382a0df0895b20b2c6e89f0c65c2b29360cffd2d5cd9e3542c7479e7588211fa38b31aaca2afbcef8391b9b4afdc7 SHA512 444467c2bf9c2aa885fad5119069232ea92872c1f08fc7cd517e2e64faef924f0b4a9195acbe042e535588ccd86b5147afa041f9ea355f480507c3743a2bb934
DIST file-roller-44.tar.xz 924236 BLAKE2B 12eebd312afdec8f87141d384d1476be7296073f911791328158af1ab93fcb4092ee79e0c65743c36eaa28e06b5b59503357b6c4cff87b4896d3969a67d08e45 SHA512 d40ac036161397828ded2bab7bdf1c029ef0b53fad65e0922e6eeec40442eb7a9898a7d5c3208f6dfda3ad6f51b0771f248ab64c177769b655493a44c403f824

@ -0,0 +1,103 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit gnome.org gnome2-utils meson readme.gentoo-r1 xdg
DESCRIPTION="Archive manager for GNOME"
HOMEPAGE="https://wiki.gnome.org/Apps/FileRoller"
LICENSE="GPL-2+ CC-BY-SA-3.0"
SLOT="0"
KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86 ~amd64-linux ~x86-linux"
IUSE="gtk-doc +introspection nautilus"
REQUIRED_USE="gtk-doc? ( introspection )"
# gdk-pixbuf used extensively in the source
# cairo used in eggtreemultidnd.c
# pango used in fr-window
RDEPEND="
>=dev-libs/glib-2.38:2
>=gui-libs/gtk-4.8.1:4[introspection?]
>=gui-libs/libadwaita-1.2:1
nautilus? ( >=gnome-base/nautilus-43.0 )
>=dev-libs/json-glib-0.14
>=app-arch/libarchive-3.2:=
introspection? ( dev-libs/gobject-introspection )
x11-libs/cairo
x11-libs/gdk-pixbuf:2
x11-libs/pango
"
DEPEND="${RDEPEND}"
BDEPEND="
dev-util/glib-utils
dev-util/itstool
>=sys-devel/gettext-0.19.8
virtual/pkgconfig
gtk-doc? ( dev-util/gi-docgen )
"
DISABLE_AUTOFORMATTING="yes"
DOC_CONTENTS="
${PN} is a frontend for several archiving utilities. If you want a
particular archive format support, see ${HOMEPAGE}
and install the relevant package. For example:
7-zip - app-arch/p7zip
ace - app-arch/unace
arj - app-arch/arj
brotli - app-arch/brotli
cpio - app-alternatives/cpio
deb - app-arch/dpkg
iso - app-cdr/cdrtools
jar,zip - app-arch/zip and app-arch/unzip
lha - app-arch/lha
lzop - app-arch/lzop
lz4 - app-arch/lz4
rar - app-arch/unrar or app-arch/unar
rpm - app-arch/rpm
unstuff - app-arch/stuffit
zstd - app-arch/zstd
zoo - app-arch/zoo"
src_prepare() {
# File providing Gentoo package names for various archivers
cp -v "${FILESDIR}"/3.36-packages.match data/packages.match || die
default
xdg_environment_reset
}
src_configure() {
local emesonargs=(
-Drun-in-place=false
$(meson_feature nautilus nautilus-actions)
-Dnotification=enabled
-Duse_native_appchooser=false
-Dpackagekit=false
-Dlibarchive=enabled
$(meson_feature introspection)
$(meson_feature gtk-doc api_docs)
)
meson_src_configure
}
src_install() {
meson_src_install
if use gtk-doc; then
mkdir -p "${ED}"/usr/share/gtk-doc/ || die
mv "${ED}"/usr/share/doc/file-roller "${ED}"/usr/share/gtk-doc/file-roller || die
fi
readme.gentoo_create_doc
}
pkg_postinst() {
xdg_pkg_postinst
gnome2_schemas_update
readme.gentoo_print_elog
}
pkg_postrm() {
xdg_pkg_postrm
gnome2_schemas_update
}

@ -138,6 +138,13 @@ src_test() {
mkdir -p "${T}"/bin || die
# tests fail when lbzip2[symlink] is used in place of ref bunzip2
ln -s "${BROOT}/bin/bunzip2" "${T}"/bin || die
# workaround lrzip broken on 32-bit arches with >= 10 threads
# https://bugs.gentoo.org/927766
cat > "${T}"/bin/lrzip <<-EOF || die
#!/bin/sh
exec "$(type -P lrzip)" -p1 "\${@}"
EOF
chmod +x "${T}/bin/lrzip" || die
local -x PATH=${T}/bin:${PATH}
multilib-minimal_src_test
}

@ -14,7 +14,7 @@ S="${WORKDIR}/${P/_/-}"
LICENSE="GPL-2+"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
BDEPEND="verify-sig? ( sec-keys/openpgp-keys-antoniodiazdiaz )"

@ -1,4 +1,4 @@
# Copyright 1999-2022 Gentoo Authors
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@ -36,6 +36,12 @@ DEPEND="
src_prepare() {
default
# We're not interested in linting tests for our purposes (bug #915008)
cat > test/cppcheck-src.sh <<-EOF || die
#!/bin/sh
exit 77
EOF
[[ ${PV} == "9999" ]] && eautoreconf
}

@ -1,4 +1,4 @@
# Copyright 1999-2022 Gentoo Authors
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@ -36,6 +36,12 @@ DEPEND="
src_prepare() {
default
# We're not interested in linting tests for our purposes (bug #915008)
cat > test/cppcheck-src.sh <<-EOF || die
#!/bin/sh
exit 77
EOF
[[ ${PV} == "9999" ]] && eautoreconf
}

@ -18,7 +18,7 @@ SRC_URI="
LICENSE="GPL-2 LGPL-2"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~loong ~riscv ~x86"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~riscv ~s390 ~x86"
IUSE="acl audit caps +berkdb doc dbus nls openmp python readline selinux +sequoia +sqlite"
REQUIRED_USE="
${LUA_REQUIRED_USE}

@ -35,7 +35,7 @@ else
"
if [[ ${PV} != *_alpha* && ${PV} != *_beta* ]] ; then
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
fi
S="${WORKDIR}/${MY_P}"

Binary file not shown.

@ -1 +1,2 @@
DIST borgmatic-1.8.8.tar.gz 589575 BLAKE2B 09a3ca616bd1cf5fcc6c773d8066357d764b44230d691b7afa90bb1fdbce3aa3bfaac509e921adaa9086ba60310b24d1f2ba186849853c8f04e2a85c4b0ec94f SHA512 3984f6e34f8aed5c57df22799e60724903bfcec833e5c3215ad731977b7d376f36129fabd489c166f945d7103f272bcc132a9ea49010552001794b57f27fb5d5
DIST borgmatic-1.8.9.tar.gz 592715 BLAKE2B 3586404985b8cc0d5575f570ba6679c406e95b83453a7c2414872049067b1736010b9f8498fa92e91d281b1cdf75882bc09e40d6d9e443bff33c399ee1392ff9 SHA512 05386f6321d78e304030ebb78c495aee53a1b6f17241f101e73a097aa4208ac641d6105b1e8161cf714b2eab7c34fe682e082e9e997dc4ac6a6a4207253e8421

@ -0,0 +1,79 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{10..12} )
DISTUTILS_SINGLE_IMPL=1
DISTUTILS_USE_PEP517=setuptools
inherit distutils-r1 systemd pypi
DESCRIPTION="Automatically create, prune and verify backups with borgbackup"
HOMEPAGE="https://torsion.org/borgmatic/"
LICENSE="GPL-3"
SLOT="0"
KEYWORDS="~amd64 ~arm ~arm64 ~riscv"
IUSE="apprise"
REQUIRED_USE="test? ( apprise )"
# borg is called as an external tool, hence no pythonic stuff
RDEPEND="app-backup/borgbackup
$(python_gen_cond_dep '
<dev-python/colorama-0.5[${PYTHON_USEDEP}]
dev-python/jsonschema[${PYTHON_USEDEP}]
dev-python/packaging[${PYTHON_USEDEP}]
dev-python/requests[${PYTHON_USEDEP}]
dev-python/ruamel-yaml[${PYTHON_USEDEP}]
')
apprise? ( $(python_gen_cond_dep '
dev-python/apprise[${PYTHON_USEDEP}]
') )"
BDEPEND="
test? (
$(python_gen_cond_dep '
>=dev-python/flexmock-0.10.10[${PYTHON_USEDEP}]
')
)"
PATCHES=(
"${FILESDIR}"/${PN}-1.7.13-no_test_coverage.patch
"${FILESDIR}"/${PN}-1.7.14-systemd_service_bin_path.patch
)
# A fragile test whose only purpose is to make sure the NEWS file
# has been updated for the current version.
EPYTEST_DESELECT=(
tests/integration/commands/test_borgmatic.py::test_borgmatic_version_matches_news_version
)
distutils_enable_tests pytest
src_install() {
distutils-r1_src_install
systemd_dounit sample/systemd/borgmatic.{service,timer}
keepdir /etc/borgmatic
}
pkg_postinst() {
if [[ -z "${REPLACING_VERSIONS}" ]]; then
elog "To generate a sample configuration file, run:"
elog " ${PN} config generate"
else
local oldver
for oldver in ${REPLACING_VERSIONS}; do
if ver_test "${oldver}" -lt 1.8.0; then
ewarn "Please be warned that ${PN}-1.8.0 has introduced several breaking changes."
ewarn "For details, please see"
ewarn
ewarn " https://github.com/borgmatic-collective/borgmatic/releases/tag/1.8.0"
ewarn
break
fi
done
fi
elog
elog "Systemd users wishing to periodically run ${PN} can use the provided timer and service units."
}

@ -1 +1,2 @@
DIST dar-2.7.13.tar.gz 2425559 BLAKE2B 321a43b04553505279de6f6b27e332883f4209bbe81e24c418188f028b7ba7a794d4e0f510f2c6a22a57fbdbc0501d4fcf7201aadb8cca3e65c6649bff7cfedf SHA512 e7a4bd89ccefaca1d9251d05c39e80f9861b8154f414cd578ba98c3cf3a9f945738c6225fd007b5e73c2d7c2e4abe547e9a2e2deec2cb7e0ec5860603add64fb
DIST dar-2.7.14.tar.gz 2443548 BLAKE2B a68ad06a2bf53b25a0b393f3e85eef5676382d63bfd86ba77696667786a688e326c118d937cd5dae6b1e78410e40295c67d8ba4677c37f7139bbdd2794c4efeb SHA512 0436c67e0dbd8f5e96e01a0db48a469d80fb81a7c7f37aed98308bd55d60d699b21c755d95fa83891690231fd2510eaa6c6652fb99a1bad9c8210084031391d4

@ -0,0 +1,97 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit flag-o-matic
DESCRIPTION="A full featured backup tool, aimed for disks"
HOMEPAGE="http://dar.linux.free.fr/"
SRC_URI="https://downloads.sourceforge.net/project/dar/dar/${PV}/${P}.tar.gz"
LICENSE="GPL-2+"
SLOT="0"
KEYWORDS="~amd64 ~ppc ~sparc ~x86 ~amd64-linux"
IUSE="argon2 curl dar32 dar64 doc gcrypt gpg lz4 lzo nls rsync xattr"
REQUIRED_USE="
?? ( dar32 dar64 )
gpg? ( gcrypt )
"
RESTRICT="test" # need to be run as root
RDEPEND="
app-arch/bzip2:=
app-arch/xz-utils
app-arch/zstd:=
dev-libs/libthreadar
sys-libs/libcap
>=sys-libs/zlib-1.2.3:=
argon2? ( app-crypt/argon2:= )
curl? ( net-misc/curl )
gcrypt? (
dev-libs/libgcrypt:0=
dev-libs/libgpg-error
)
gpg? (
app-crypt/gpgme:=
dev-libs/libassuan
)
lz4? ( app-arch/lz4:= )
lzo? ( dev-libs/lzo:2 )
nls? ( virtual/libintl )
rsync? ( net-libs/librsync:= )
xattr? ( sys-apps/attr )
"
DEPEND="${RDEPEND}"
BDEPEND="
doc? ( app-text/doxygen )
nls? ( sys-devel/gettext )
"
QA_PKGCONFIG_VERSION="" #862025 - upstream has a different numbering scheme for libdar
src_configure() {
# configure.ac is totally funked up regarding the AC_ARG_ENABLE
# logic.
# For example "--enable-dar-static" causes configure to DISABLE
# static builds of dar.
# Do _not_ use $(use_enable) until you have verified that the
# logic has been fixed by upstream.
local myconf=(
--disable-dar-static
--disable-python-binding
--disable-upx
$(usev !argon2 --disable-libargon2-linking)
$(usev !curl --disable-libcurl-linking)
$(usev dar32 --enable-mode=32)
$(usev dar64 --enable-mode=64)
$(usev !doc --disable-build-html)
$(usev !gcrypt --disable-libgcrypt-linking)
$(usev !gpg --disable-gpgme-linking)
$(usev !lz4 --disable-liblz4-linking)
$(usev !lzo --disable-liblzo2-linking)
$(usev !nls --disable-nls)
$(usev !rsync --disable-librsync-linking)
$(usev !xattr --disable-ea-support)
)
# Bug 103741
filter-flags -fomit-frame-pointer
econf "${myconf[@]}"
}
src_install() {
emake DESTDIR="${D}" pkgdatadir="${EPREFIX}"/usr/share/doc/${PF}/html install
einstalldocs
find "${ED}" -name "*.la" -delete || die
# Bug 729150
rm "${ED}/usr/share/doc/${PF}/html/samples/MyBackup.sh.tar.gz" || die
}

@ -1,4 +1,4 @@
# Copyright 1999-2023 Gentoo Authors
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@ -13,7 +13,7 @@ HOMEPAGE="https://duplicity.gitlab.io/"
LICENSE="GPL-3"
SLOT="0"
KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux ~x64-macos"
KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux ~x64-macos"
IUSE="s3 test"
CDEPEND="

@ -7,5 +7,6 @@
</maintainer>
<upstream>
<bugs-to>https://bugs.kde.org/</bugs-to>
<remote-id type="kde-invent">system/kup</remote-id>
</upstream>
</pkgmetadata>

Binary file not shown.

@ -1,5 +1,6 @@
DIST buildah-1.33.5.tar.gz 18579521 BLAKE2B a59bfda3dea1f588a2f77a26b942da6ae02a00f1169008f776a2d7699b6b14f38ab29b46b7d0651e9fff3f007e5f95caed99952cc7585c25ea2a3153402958e9 SHA512 82ddfacd69918fb4ca8110d7d5279f4075385e5db5b64b58cf41a90c47e16093f1e65d8ef20136a4cd8f5c23ea8da7f35fb72581cec6472497b9c5b458023e9c
DIST buildah-1.33.6.tar.gz 18585405 BLAKE2B 4a6f6ebfce7799a45b0984b6f9a319becfed87d5acf5f1f784249ff6e5397495ac72c00a22ff0bcc68fd94f1d0a591fa4ac5f0f88bcc9c0a6cdefe117166b4ec SHA512 86eab18af459b0b92361d6e9f56ebe9dab65527d829e7771c13b6c574ef45746a7f53520783ff52978b14aac0d6ee8de32cdabf807666a96dcf46e07e36157e2
DIST buildah-1.33.7.tar.gz 18604354 BLAKE2B d2788096d8d6fd6cc528e8f33edc577778a2775a561ea3c4a983eb4a6fa1d5b570f6d8dc0f77e464d0c242add5d641e20afce83c9f5157021fbc82a009ea47c9 SHA512 1248ad1dcf0d10608674543caf4d78f5052db7932102226e23b73add5e129bd8c614672f3d06aa8052675dd83fa83ef2742ef08fe1a883037b41df8fde893ea1
DIST buildah-1.34.0.tar.gz 18751419 BLAKE2B 6584c5234e849f9b8cde5e4188791024c8ac5c0ba85859e289f3eb2ec32f97f722ebf25f1291f29e14edf4adc14e19d6a6a76630c820085e9f345736aeb3d4eb SHA512 a3836ce540058f418131969e157d548864727398535e4e99a693d883419b8d764da7166f9b9376c2b9686d8beac101687843c2e93198b16328ef333ad96d55db
DIST buildah-1.34.1.tar.gz 18838539 BLAKE2B de11f64a54fa24c8aa543dd44e6a3fca9df62eecf39541fa37c22a2dc64560d056f638a6b1f8aa564a09f0594a5e7150ef14fd9ab8cc61390dc6d7d8afa5545b SHA512 2d229ead1149b66d1b7d91f596809e97e5316356ab0997ea335eb3e246ed8bc6879e0e260bb478b4d7ec7c42c7dbf33d0e91086a34e89a3b79eb27322da06c1e
DIST buildah-1.35.0.tar.gz 19353483 BLAKE2B 806c098d557480b6d6e92e6da61c32e48dfd6c1bfa4926a2871a8f41a3ef5f35d91381e51d33636a892bce930eabfda509e97e9efa60ba5c4feab75781d027ee SHA512 b4dd30b4d8087bbd0bbfd9a7b9791afc015a0c489041b38d6b6241df27a97286083dcf7b25102ce1fa1080265378442be73313e301c22660f21d8e4f39bb3aa4
DIST buildah-1.34.3.tar.gz 18856476 BLAKE2B c91c995a2ff4be8b4e84a70c581a817cb2f1333b08ca297163d218f80d538905c41718cfc267c03173330234c3476344be44df799eaaac891395a22bc7a020b3 SHA512 26d5c48cb5b056a274c1a9c6820a6076337f625fc6dd6683000db871f3de9d37907bd962ced3400334bfc230718219cda2108e2e984be5f8c76ecfa4a2f1e1ac
DIST buildah-1.35.1.tar.gz 19349661 BLAKE2B 31b633f35f937364816dac65e7a801676043630bc3c00ac445ad67afea04142748f76c4aed16690aa990e2c15ed220bdb42b96c6dd9bb0dac9c9d16fc2a27ddc SHA512 3e5af28b3d45e51674d08bef9a92cd64589026d9c6ebee51156738151681395860e372bba2667815e0f90e37984eb9dfdc9b8ad0675b62c8751582b29485d159

@ -14,12 +14,10 @@ LICENSE="Apache-2.0"
LICENSE+=" BSD BSD-2 CC-BY-SA-4.0 ISC MIT MPL-2.0"
SLOT="0"
IUSE="apparmor btrfs +seccomp systemd doc test"
IUSE="apparmor btrfs +seccomp systemd test"
RESTRICT="test"
EXTRA_DOCS=(
DOCS=(
"CHANGELOG.md"
"CONTRIBUTING.md"
"install.md"
"troubleshooting.md"
"docs/tutorials"
)
@ -29,7 +27,7 @@ if [[ ${PV} == 9999* ]]; then
EGIT_REPO_URI="https://github.com/containers/buildah.git"
else
SRC_URI="https://github.com/containers/buildah/archive/v${PV}.tar.gz -> ${P}.tar.gz"
KEYWORDS="~amd64 ~arm64"
KEYWORDS="amd64 ~arm64"
fi
RDEPEND="
@ -121,5 +119,4 @@ src_test() {
src_install() {
emake DESTDIR="${ED}" install install.completions
einstalldocs
use doc && dodoc -r "${EXTRA_DOCS[@]}"
}

@ -0,0 +1,122 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit go-module linux-info
DESCRIPTION="A tool that facilitates building OCI images"
HOMEPAGE="https://github.com/containers/buildah"
# main pkg
LICENSE="Apache-2.0"
# deps
LICENSE+=" BSD BSD-2 CC-BY-SA-4.0 ISC MIT MPL-2.0"
SLOT="0"
IUSE="apparmor btrfs +seccomp systemd test"
RESTRICT="test"
DOCS=(
"CHANGELOG.md"
"troubleshooting.md"
"docs/tutorials"
)
if [[ ${PV} == 9999* ]]; then
inherit git-r3
EGIT_REPO_URI="https://github.com/containers/buildah.git"
else
SRC_URI="https://github.com/containers/buildah/archive/v${PV}.tar.gz -> ${P}.tar.gz"
KEYWORDS="amd64 ~arm64"
fi
RDEPEND="
systemd? ( sys-apps/systemd )
btrfs? ( sys-fs/btrfs-progs )
seccomp? ( sys-libs/libseccomp:= )
apparmor? ( sys-libs/libapparmor:= )
app-containers/containers-common
app-crypt/gpgme:=
dev-libs/libgpg-error:=
dev-libs/libassuan:=
sys-apps/shadow:=
"
DEPEND="${RDEPEND}"
pkg_pretend() {
local CONFIG_CHECK=""
use btrfs && CONFIG_CHECK+=" ~BTRFS_FS"
check_extra_config
linux_config_exists || ewarn "Cannot determine configuration of your kernel."
}
src_prepare() {
default
# ensure all necessary files are there
local file
for file in docs/Makefile hack/libsubid_tag.sh hack/apparmor_tag.sh \
hack/systemd_tag.sh btrfs_installed_tag.sh btrfs_tag.sh; do
[[ -f "${file}" ]] || die
done
sed -i -e "s|/usr/local|/usr|g" Makefile docs/Makefile || die
echo -e '#!/usr/bin/env bash\necho libsubid' > hack/libsubid_tag.sh || die
cat <<-EOF > hack/apparmor_tag.sh || die
#!/usr/bin/env bash
$(usex apparmor 'echo apparmor' echo)
EOF
use seccomp || {
cat <<-'EOF' > "${T}/disable_seccomp.patch"
--- a/Makefile
+++ b/Makefile
@@ -5 +5 @@
-SECURITYTAGS ?= seccomp $(APPARMORTAG)
+SECURITYTAGS ?= $(APPARMORTAG)
EOF
eapply "${T}/disable_seccomp.patch" || die
}
cat <<-EOF > hack/systemd_tag.sh || die
#!/usr/bin/env bash
$(usex systemd 'echo systemd' echo)
EOF
echo -e "#!/usr/bin/env bash\n echo" > btrfs_installed_tag.sh || die
cat <<-EOF > btrfs_tag.sh || die
#!/usr/bin/env bash
$(usex btrfs echo 'echo exclude_graphdriver_btrfs btrfs_noversion')
EOF
use test || {
cat <<-'EOF' > "${T}/disable_tests.patch"
--- a/Makefile
+++ b/Makefile
@@ -54 +54 @@
-all: bin/buildah bin/imgtype bin/copy bin/tutorial docs
+all: bin/buildah docs
EOF
eapply "${T}/disable_tests.patch" || die
}
}
src_compile() {
# For non-live versions, prevent git operations which causes sandbox violations
# https://github.com/gentoo/gentoo/pull/33531#issuecomment-1786107493
[[ ${PV} != 9999* ]] && export COMMIT_NO="" GIT_COMMIT=""
default
}
src_test() {
emake test-unit
}
src_install() {
emake DESTDIR="${ED}" install install.completions
einstalldocs
}

@ -35,7 +35,7 @@ RDEPEND="
btrfs? ( sys-fs/btrfs-progs )
seccomp? ( sys-libs/libseccomp:= )
apparmor? ( sys-libs/libapparmor:= )
app-containers/containers-common
>=app-containers/containers-common-0.58.0-r1
app-crypt/gpgme:=
dev-libs/libgpg-error:=
dev-libs/libassuan:=

@ -0,0 +1,75 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit readme.gentoo-r1
DESCRIPTION="Common config files and docs for Containers stack"
HOMEPAGE="https://github.com/containers/common"
if [[ ${PV} == 9999* ]]; then
inherit git-r3
EGIT_REPO_URI="https://github.com/containers/common.git"
else
SRC_URI="https://github.com/containers/common/archive/v${PV}.tar.gz -> ${P}.tar.gz"
S="${WORKDIR}/${P#containers-}"
KEYWORDS="~amd64 ~arm64 ~riscv"
fi
LICENSE="Apache-2.0"
SLOT="0"
RESTRICT="test"
RDEPEND="
>=app-containers/aardvark-dns-1.10.0
>=app-containers/crun-1.14.3
>=app-containers/containers-image-5.30.0
>=app-containers/containers-storage-1.53.0
app-containers/containers-shortnames
>=app-containers/netavark-1.10.3
net-firewall/nftables
net-firewall/iptables[nftables]
>=net-misc/passt-2024.03.20
>=sys-fs/fuse-overlayfs-1.13
"
BDEPEND="
>=dev-go/go-md2man-2.0.3
"
PATCHES=(
"${FILESDIR}/examplify-mounts-conf.patch"
)
DOC_CONTENTS="\n
For rootless operations, one needs to configure subuid(5) and subgid(5)\n
See /etc/sub{uid,gid} to check whether rootless user is already configured\n
If not, quickly configure it with:\n
usermod --add-subuids 1065536-1131071 <rootless user>\n
usermod --add-subgids 1065536-1131071 <rootless user>\n
"
src_prepare() {
default
[[ -f docs/Makefile && -f Makefile ]] || die
sed -i -e 's|/usr/local|/usr|g;' docs/Makefile Makefile || die
}
src_compile() {
emake docs
}
src_install() {
emake DESTDIR="${ED}" install
readme.gentoo_create_doc
insinto /usr/share/containers
doins pkg/seccomp/seccomp.json pkg/subscriptions/mounts.conf
keepdir /etc/containers/certs.d /etc/containers/oci/hooks.d /etc/containers/systemd /var/lib/containers/sigstore
}
pkg_postinst() {
readme.gentoo_print_elog
}

@ -3,6 +3,8 @@
EAPI=8
inherit readme.gentoo-r1
DESCRIPTION="Common config files and docs for Containers stack"
HOMEPAGE="https://github.com/containers/common"
@ -19,16 +21,16 @@ LICENSE="Apache-2.0"
SLOT="0"
RESTRICT="test"
RDEPEND="
app-containers/containers-image
app-containers/containers-storage
>=app-containers/aardvark-dns-1.10.0
>=app-containers/crun-1.14.3
>=app-containers/containers-image-5.30.0
>=app-containers/containers-storage-1.53.0
app-containers/containers-shortnames
>=app-containers/netavark-1.10.3
net-firewall/nftables
net-firewall/iptables[nftables]
|| ( app-containers/crun app-containers/runc )
|| (
( >=app-containers/netavark-1.6.0 >=app-containers/aardvark-dns-1.6.0 )
>=app-containers/cni-plugins-0.9.1
)
>=net-misc/passt-2024.03.20
>=sys-fs/fuse-overlayfs-1.13
"
BDEPEND="
@ -39,6 +41,14 @@ PATCHES=(
"${FILESDIR}/examplify-mounts-conf.patch"
)
DOC_CONTENTS="\n
For rootless operations, one needs to configure subuid(5) and subgid(5)\n
See /etc/sub{uid,gid} to check whether rootless user is already configured\n
If not, quickly configure it with:\n
usermod --add-subuids 1065536-1131071 <rootless user>\n
usermod --add-subgids 1065536-1131071 <rootless user>\n
"
src_prepare() {
default
@ -52,9 +62,14 @@ src_compile() {
src_install() {
emake DESTDIR="${ED}" install
readme.gentoo_create_doc
insinto /usr/share/containers
doins pkg/seccomp/seccomp.json pkg/subscriptions/mounts.conf
keepdir /etc/containers/certs.d /etc/containers/oci/hooks.d /etc/containers/systemd /var/lib/containers/sigstore
}
pkg_postinst() {
readme.gentoo_print_elog
}

@ -1,3 +1,3 @@
DIST devcontainer-0.56.1.tgz 604649 BLAKE2B 887a034a9771843ce84be1b78d00ba7b52d09b64861f113d27e0dd662acabf175d4e7922a25826f2bf500ecc380473381ec05e307af0b7655535188240582700 SHA512 22f2d911b021f16181a1d954b31beaf323a84296be03489b6375729ea3ebcb198d58d3f731c40b8ec5ee20bfe26a933db1328a2d5278fa76686d965487924261
DIST devcontainer-0.56.2.tgz 617293 BLAKE2B 33eb4ae861934e78b9e73e77ed23ec1177e09785cf72dbdeb07e3d80e86ba1ac69f26bc01e150609cd20bc6c7895afc9b6118ae4d5007413b066986c75850a11 SHA512 188fdddad81a7f8cc5409e646c467fdc0722f0d7e45f3b24ea0614a9007c714ac9f8aff13f0e8a65f6c0e06e8769b1a4cba792a5575ce0733379ade45998fd27
DIST devcontainer-0.57.0.tgz 617323 BLAKE2B 74dd49c0e741715e34dce79cdc73617f4bed68b87f11fafa403a9548b334ecff1af8e2e3705c57c31ca057e12b19094a75a3a3e339cac3b6d005e00e7e08b433 SHA512 7b5680d003630af459d5bf12f6873ea990a67b5f16888317a27d7197799d9ff1cd802834e669c4e1c601780fa8a07c38ec4dab77e7bf64de08406403e163e954
DIST devcontainer-0.58.0.tgz 618922 BLAKE2B e0962e273f6a28d4c6897523b565634d7849a37ed5866e47430080ac8e42026e888ba2a13cbcbb62dd6974f753383882b66b0129d1e7aad8321c938c58ffec58 SHA512 57beb86d4fcefddbaa4f13612cca0538b2449932164c062082a8ef62f3a7bd57ed6f7bb09e5954fe479c6da9caebc0b3075783fb3ba3391381ab7ce9027e5f08

@ -12,7 +12,7 @@ S="${WORKDIR}/package"
LICENSE="MIT"
SLOT="0"
KEYWORDS="amd64 ~x86"
KEYWORDS="~amd64 ~x86"
RDEPEND="
net-libs/nodejs

@ -1,3 +1,2 @@
DIST distrobox-1.6.0.1.tar.gz 6751373 BLAKE2B 9d82f33e15be8a2c17b7716ddbecf4fc533f971924c36ba8fa009dac7a87fbc26075ca98d6c58c5974fa1a02657419f26b415925d71f6577a8897a9e199950fc SHA512 cc7bd42b1c7e198eb255b6bdd90a76fa25700edc274b14379ffe3199c8a8cadc9ab27c94f43ee4a92d270b65df7b04e6c11441eb68456fe7ec3d56b2879534f2
DIST distrobox-1.7.0.1.tar.gz 6756031 BLAKE2B 320dde2bdf005c5bd66954f212547adb6bbd6d06611272c6a1b1859eef7ad47dbbbf300baaef555e2bf9a750def117ec69418affb75514652aa0e366314fbaf2 SHA512 971a3f15216d2dfa2829a1ea085c7579c4f0bf0e57678474f83df05ae8c897db8a8cd477a429d0126cad11ac0379029b9c759944cea8649971e67f20a3e18328
DIST distrobox-1.7.0.tar.gz 6755733 BLAKE2B 27bd75046d0b221543c4870bc49305c62da03343f4a602a87a50fac9a1d5b428a040099fbea8730fe2eba0b96eb90b966bc15d5ad46d62d79157047a2048f23c SHA512 5e29a5bb4a9fca4e54df979b304c2c23af93a5326383245183fee9bc7fbf6265128e1690c653410cb3063fabc522cf38bfa041dba7b921146010f7e43630613c

@ -15,7 +15,7 @@ else
SRC_URI="https://github.com/89luca89/${PN}/archive/${PV}.tar.gz
-> ${P}.tar.gz"
KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86"
KEYWORDS="amd64 ~arm ~arm64 ~riscv ~x86"
fi
LICENSE="GPL-3" # GPL-3.0-only !

@ -1,35 +0,0 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DESCRIPTION="Use any Linux distribution inside your terminal (powered by docker/podman)"
HOMEPAGE="https://distrobox.privatedns.org/
https://github.com/89luca89/distrobox/"
if [[ "${PV}" == *9999* ]] ; then
inherit git-r3
EGIT_REPO_URI="https://github.com/89luca89/${PN}.git"
else
SRC_URI="https://github.com/89luca89/${PN}/archive/${PV}.tar.gz
-> ${P}.tar.gz"
KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86"
fi
LICENSE="GPL-3" # GPL-3.0-only !
SLOT="0"
RDEPEND="
|| (
app-containers/docker
app-containers/podman
)
"
src_install() {
sh ./install --prefix "${ED}/usr" || die "${PN} install script failed"
dodoc *.md
}

@ -15,7 +15,7 @@ SRC_URI="https://github.com/docker/compose/archive/${MY_PV}.tar.gz -> ${P}.gh.ta
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="~amd64 ~arm64"
KEYWORDS="amd64 arm64"
RDEPEND="
>=dev-python/distro-1.5.0[${PYTHON_USEDEP}]

@ -1,4 +1,4 @@
DIST nerdctl-1.4.0-go-mod-vendor.tar.gz 6711566 BLAKE2B 242648545d82bfcdde6dd5056e4225d9b37021a6b210632ad112e18659d3f6f89bb53e31aee55106b5654080fab8dfd33268138b5f0a0b36d425395e1be89728 SHA512 fd2b3d30c35dee73eb2325188477659fc08a974737b8f555275524368aa59583987b04f19057cbd4c03c0bf7df89f38e3d115c36da2f089ac9d908bf77e774b8
DIST nerdctl-1.4.0.tar.gz 515068 BLAKE2B 68daacc251322b5efe0591fe6cd615cd7a11df803a66a3a151b3ae46e1a3b22bfbde7726bf4418b0df988965578cecd3dc2fac67b45b1d765d059c92aab1ec12 SHA512 b14cd92b76d9699b4042fcd7a6906b1c714221b30cff1074a1d59ea038cf74ea6437d4a4d9a265e7b0f4c96397c82d53856f9e43d08aa8abcb98af5e9fb6e8dc
DIST nerdctl-1.7.4-go-mod-vendor.tar.gz 7197938 BLAKE2B 14a95cd634acc652d5532d1c6aa28abf24c1cf26393d63fd627e864ba73e5f3355832afd8c3c31eb0dcef9ae1d82c35a7df49c017c5719b45145496ec9243e79 SHA512 aefc9d23114bb2ca0a640287ed27e2afeeb9075a4fdfa33817310300ac8a1ca492defd4a5436f71f4f06a2b8916a75793ce846eac0878a8e51e1accadd21d13f
DIST nerdctl-1.7.4.tar.gz 516231 BLAKE2B 3f1726945c5b816b4ca922187ae0bde0af82ca38227fe3ad2509b8b1654a2ee22d3929296d9633275cc7c3495202c66d90a956ac92c790f17eb2d1254bdb2c17 SHA512 a2cf60e2d704bef6a9c2abc697ef44a6a833b5fcc276bbffec503437281c830e2cd73fc541ef85be2444bad8f2b827c832b7685a3c74ebba503019ed39a19d75
DIST nerdctl-1.7.5-go-mod-vendor.tar.gz 7229228 BLAKE2B 24dd81b3b54542e8723c44d75e653414c75be9e0e56095e7afe6886d2bde6febdc91b7ef903009145c77a57dd4780bbceda58851b39e7375141066abc20f2f1f SHA512 265d9ae58ec221611c9f7666de2748bf8519a7ba8b3bc0bd3b1e97d671bfc11c7d51cd4512d52000a579c8f5e4bd7e4c5a4bf469853b481c838262001bd9dd65
DIST nerdctl-1.7.5.tar.gz 517127 BLAKE2B 800fc487c60ea62641b26a1b41f95747bd39467d8e1c7fd7b5302c5d515c2e6765fcf7ef8860b3cbfe04428fe849a7293ec914bae3da65ac6418a1f5c789d832 SHA512 3e35c5e3c68c675d23c1a106d267f62c2e36cd8026308ac6237fa5aa2f3ebaea0f47888e6702290f40c26f543e90bca91d76cae28b74732e8fb351f6ef2441f9

@ -1,11 +1,11 @@
# Copyright 2021-2023 Gentoo Authors
# Copyright 2021-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit go-module
EGIT_COMMIT="7e8114a82da342cdbec9a518c5c6a1cce58105e9"
EGIT_COMMIT="cffed372371dcbea3dc9a646ce5a913fc1c09513"
DESCRIPTION="Docker-compatible CLI for containerd, with support for Compose"
HOMEPAGE="https://github.com/containerd/nerdctl"
@ -14,9 +14,19 @@ SRC_URI="
https://github.com/containerd/${PN}/releases/download/v${PV}/${P}-go-mod-vendor.tar.gz
"
LICENSE="Apache-2.0 BSD BSD-2 ISC MIT"
LICENSE="Apache-2.0"
LICENSE+=" BSD BSD-2 ISC MIT"
SLOT="0"
KEYWORDS="~amd64"
IUSE="rootless"
DEPEND="
rootless? (
app-containers/slirp4netns
sys-apps/rootlesskit
)
"
RDEPEND="${DEPEND}"
src_unpack() {
unpack "${P}.tar.gz"
@ -29,7 +39,15 @@ src_compile() {
}
src_install() {
emake DESTDIR="${D}" VERSION=v${PV} REVISION="${EGIT_COMMIT}" BINDIR="/usr/bin" install
local emake_args=(
DESTDIR="${D}"
VERSION=v${PV}
REVISION="${EGIT_COMMIT}"
DOCDIR="${EPREFIX}/usr/share/doc/${PF}"
PREFIX="${EPREFIX}/usr"
install
)
emake "${emake_args[@]}"
DOCS=( README.md docs/* examples )
einstalldocs
}

@ -1,3 +1,4 @@
DIST podman-tui-0.14.0.tar.gz 15857429 BLAKE2B c1a6f056b45d4fa9e0cd749570275da1d98d3f8477a1e85a151afd1cecc9506555c55e065b86d9c49acde36a27c3dac960530218022672fc8044dee0d2284c62 SHA512 d79e5b0cabed6873ff90e4e36fec841b74d53b0e876f6449c9b5512c8a92d7d4bcf733e23abc92a6344d6dcd72957929fde48b4e16dcb1cc33cf10f33074171a
DIST podman-tui-0.17.0.tar.gz 15853215 BLAKE2B bfdaf085837497c8ce1525eccb04fc977472291e45417a3993a3e9bc2a742e132d14bce7580c0126be94262a10999da2b81edd6997b8c377a3de8a4da20c153f SHA512 137740737e4fe5138198923fb5db6dc6ca901ed7739af09c19bcb0a60fdfe0db79d7c2ac83157675ec478ab8e9dc9b1348cd8aa9f0e5298f8d20ff6cf0284afc
DIST podman-tui-0.18.0.tar.gz 15928626 BLAKE2B 80fd4f826a407b4eeeb664c065f836f12dd85cacab35003ad8fbcabf3eb69b3838bf02fb76269124d18c110370e42556cff8e348caabb100aa88a1994f99d4cc SHA512 77107a9e64b12fd5065698b7065909d5aa45ca49d749056cfb0f76aa2fd0f269708d3d75ecb4cab7939c30571510cdacebcdaac67549979873e3656e1af4db9f
DIST podman-tui-1.0.0.tar.gz 16208356 BLAKE2B c5ae4274cdc6c4d5abb9f9a18c82949a40a9f2894a9127d8bdf89b8a9445716cc985d8400833c890dec4524fd617babd5791e3062e9e7654ea93d66c34dfe181 SHA512 918b3efb823a543a439ae0f56c59ee2689961ac6e39a40054a7971ddf02056ca50c7c681ca03c45590e9fdfce1822f406bbf90f9b25563a0ef9ae75b88235a8c

@ -0,0 +1,34 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit go-module
DESCRIPTION="Terminal UI frontend for Podman"
HOMEPAGE="https://github.com/containers/podman-tui"
if [[ ${PV} == 9999* ]]; then
inherit git-r3
EGIT_REPO_URI="https://github.com/containers/podman-tui.git"
else
SRC_URI="https://github.com/containers/podman-tui/archive/v${PV}.tar.gz -> ${P}.tar.gz"
KEYWORDS="~amd64"
fi
# main pkg
LICENSE="Apache-2.0"
# deps
LICENSE+=" BSD-2 BSD MIT MPL-2.0"
SLOT="0"
RESTRICT="test"
src_compile() {
# parse tags from Makefile & make them comma-seperated as space-seperated list is deprecated
local BUILDTAGS=$(grep 'BUILDTAGS :=' Makefile | awk -F\" '{ print $2; }' | sed -e 's| |,|g;')
ego build -tags "${BUILDTAGS}"
}
src_install() {
dobin "${PN}"
einstalldocs
}

@ -1,4 +1,2 @@
DIST podman-4.8.3.tar.gz 21565162 BLAKE2B 13d2e5800dce96ba8c1671f251c2809dc0166198b807978d44b6f10b4dd2095e909678a12518fed84a0a1b5eee5a71e944170eb55350c3af945a63910f9c8082 SHA512 13ade866b888d32ada3b38130d7cc4677591136e25234e040b478c5d002d1b7907ed46731996d25cc41b992b98b75f109c6e6eea44251f4ad89162b20266976d
DIST podman-4.9.3.tar.gz 21727849 BLAKE2B 9a67ba4266a8a0e20d165ba2bae00dcf146724ee976838d5e3310b094155ffa89bff526e8ae72864dc100d1e6878d5519d53581dc7e034982a4f2b364e4c8feb SHA512 395014bbe70923f1444d2f33440013a16e9c339b70be5e6a9c7026617a40795a1c0e410c08a52fba46b9f5e853d853ce4133db36167a3c5ace7d325f8b3a3327
DIST podman-5.0.0_rc5.tar.gz 21856941 BLAKE2B 7800ad4d928bcc19c223a4dc6a84c32b32f8655753a8a77cca57d78b351bac911c7cf72d5425242ad93d165b620b7060e852a9b8816196136767bc500b5881f9 SHA512 a3ccd6eb53d66297be30ec66efa0a5fa5f5050a647c6bc5cdb2fd4cd9dd5638c42328bf1429a2fa3f8dcc84bb7d1ffbdd9c6bf06862993277f5b60d740d91c1b
DIST podman-5.0.0_rc7.tar.gz 21865293 BLAKE2B 36462bab50a322942053d301e9bc8d75f4b7ef9776d73c1fbf30f37eb538e98c85ddae42d8ab3cd3183b85985716d1c42b94dacf9881a74046c75e45697c0c24 SHA512 ce66a6a061511bcb1e2e0044dbae50a421719974bc1126cc54c725d2d72282718e7cea8a5e0013b5e10b6d3ea9efb3d84716b4906312ed0190d6e5036dcd4f97
DIST podman-5.0.0.tar.gz 21861935 BLAKE2B 1ec7006f272f5da7f93929bc543cd8988d6f9596cb868e9561578ebef85d51cbd6baa4b66571872fc9748c639ca636ce27f6d90303707f04caa321c7b71db81a SHA512 8800d96d668cbc7a7ff85a09c71b3307a280c124513fd02fe478f415cf8db43ee47dc7e9c3b75046c6bda9f916937a2cc59887c2c4b26766c2f770abb87fd7ce

@ -0,0 +1,5 @@
#!/bin/sh
# podman-auto-update(1)
# uncomment following to auto update containers according to their auto-update policy
# /usr/bin/podman auto-update && /usr/bin/podman image prune -f

@ -1,7 +0,0 @@
#!/bin/sh
set -e
# mimicking behaviour of podman-auto-update.service
if [ -x /usr/bin/podman ]; then
/usr/bin/podman auto-update && /usr/bin/podman image prune -f
fi

@ -24,15 +24,11 @@
</longdescription>
<use>
<flag name="btrfs">
Enables dependencies for the "btrfs" graph driver, including
necessary kernel flags.
Enables btrfs support (graph driver) in Podman
</flag>
<flag name="cgroup-hybrid">
Use legacy (hybrid) cgroups instead of modern (unified) cgroups
</flag>
<flag name="cron">
Runs `podman auto-update` daily. See podman-auto-update(1)
</flag>
<flag name="fuse">
Enables fuse dependencies (fuse-overlayfs is especially useful
for rootless mode).

@ -3,7 +3,9 @@
EAPI=8
inherit go-module tmpfiles linux-info
PYTHON_COMPAT=( python3_{11,12} )
inherit go-module python-any-r1 tmpfiles linux-info
DESCRIPTION="A tool for managing OCI containers and pods with Docker-compatible CLI"
HOMEPAGE="https://github.com/containers/podman/ https://podman.io/"
@ -14,7 +16,8 @@ if [[ ${PV} == 9999* ]]; then
else
SRC_URI="https://github.com/containers/podman/archive/v${PV/_rc/-rc}.tar.gz -> ${P}.tar.gz"
S="${WORKDIR}/${P/_rc/-rc}"
KEYWORDS="amd64 arm64 ~riscv"
[[ ${PV} != *rc* ]] && \
KEYWORDS="~amd64 ~arm64 ~riscv"
fi
# main pkg
@ -22,31 +25,28 @@ LICENSE="Apache-2.0"
# deps
LICENSE+=" BSD BSD-2 CC-BY-SA-4.0 ISC MIT MPL-2.0"
SLOT="0"
IUSE="apparmor btrfs cgroup-hybrid wrapper +fuse +init +rootless +seccomp selinux systemd"
IUSE="apparmor btrfs +seccomp selinux systemd wrapper"
RESTRICT="test"
RDEPEND="
app-containers/catatonit
>=app-containers/conmon-2.1.10
>=app-containers/containers-common-0.58.0-r1
app-crypt/gpgme:=
>=app-containers/conmon-2.0.0
>=app-containers/containers-common-0.56.0
dev-libs/libassuan:=
dev-libs/libgpg-error:=
sys-apps/shadow:=
apparmor? ( sys-libs/libapparmor )
btrfs? ( sys-fs/btrfs-progs )
cgroup-hybrid? ( >=app-containers/runc-1.0.0_rc6 )
!cgroup-hybrid? ( app-containers/crun )
wrapper? ( !app-containers/docker-cli )
fuse? ( sys-fs/fuse-overlayfs )
init? ( app-containers/catatonit )
rootless? ( app-containers/slirp4netns )
seccomp? ( sys-libs/libseccomp:= )
selinux? ( sec-policy/selinux-podman sys-libs/libselinux:= )
systemd? ( sys-apps/systemd:= )
"
DEPEND="${RDEPEND}"
BDEPEND="
${PYTHON_DEPS}
dev-go/go-md2man
"
@ -61,6 +61,7 @@ CONFIG_CHECK="
pkg_setup() {
use btrfs && CONFIG_CHECK+=" ~BTRFS_FS"
linux-info_pkg_setup
python-any-r1_pkg_setup
}
src_prepare() {
@ -90,50 +91,38 @@ src_prepare() {
src_compile() {
export PREFIX="${EPREFIX}/usr"
# bug 906073
use elibc_musl && export CGO_CFLAGS="-D_LARGEFILE64_SOURCE"
# For non-live versions, prevent git operations which causes sandbox violations
# https://github.com/gentoo/gentoo/pull/33531#issuecomment-1786107493
[[ ${PV} != 9999* ]] && export COMMIT_NO="" GIT_COMMIT=""
[[ ${PV} != 9999* ]] && export COMMIT_NO="" GIT_COMMIT="" EPOCH_TEST_COMMIT=""
# BUILD_SECCOMP is used in the patch to toggle seccomp
emake BUILDFLAGS="-v -work -x" GOMD2MAN="go-md2man" BUILD_SECCOMP="$(usex seccomp)" all $(usev wrapper docker-docs)
emake BUILDFLAGS="-v -work -x" GOMD2MAN="go-md2man" BUILD_SECCOMP="$(usex seccomp)" \
all $(usev wrapper docker-docs)
}
src_install() {
emake DESTDIR="${D}" install install.completions $(usev wrapper install.docker-full)
insinto /etc/cni/net.d
doins cni/87-podman-bridge.conflist
if use !systemd; then
newconfd "${FILESDIR}"/podman-5.0.0_rc4.confd podman
newinitd "${FILESDIR}"/podman-5.0.0_rc4.initd podman
newconfd "${FILESDIR}"/podman.confd podman
newinitd "${FILESDIR}"/podman.initd podman
newinitd "${FILESDIR}"/podman-restart-5.0.0_rc4.initd podman-restart
newconfd "${FILESDIR}"/podman-restart-5.0.0_rc4.confd podman-restart
insinto /etc/logrotate.d
newins "${FILESDIR}/podman.logrotated" podman
newinitd "${FILESDIR}"/podman-clean-transient-5.0.0_rc6.initd podman-clean-transient
newconfd "${FILESDIR}"/podman-clean-transient-5.0.0_rc6.confd podman-clean-transient
keepdir /var/lib/containers
}
exeinto /etc/cron.daily
newexe "${FILESDIR}"/podman-auto-update-5.0.0.cron podman-auto-update
pkg_preinst() {
PODMAN_ROOTLESS_UPGRADE=false
if use rootless; then
has_version 'app-containers/podman[rootless]' || PODMAN_ROOTLESS_UPGRADE=true
insinto /etc/logrotate.d
newins "${FILESDIR}/podman.logrotated" podman
fi
keepdir /var/lib/containers
}
pkg_postinst() {
tmpfiles_process podman.conf $(usev wrapper podman-docker.conf)
local want_newline=false
if [[ ${PODMAN_ROOTLESS_UPGRADE} == true ]] ; then
${want_newline} && elog ""
elog "For rootless operation, you need to configure subuid/subgid"
elog "for user running podman. In case subuid/subgid has only been"
elog "configured for root, run:"
elog "usermod --add-subuids 1065536-1131071 <user>"
elog "usermod --add-subgids 1065536-1131071 <user>"
want_newline=true
fi
}

@ -1,148 +0,0 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit go-module tmpfiles linux-info
DESCRIPTION="A tool for managing OCI containers and pods with Docker-compatible CLI"
HOMEPAGE="https://github.com/containers/podman/ https://podman.io/"
if [[ ${PV} == 9999* ]]; then
inherit git-r3
EGIT_REPO_URI="https://github.com/containers/podman.git"
else
SRC_URI="https://github.com/containers/podman/archive/v${PV/_rc/-rc}.tar.gz -> ${P}.tar.gz"
S="${WORKDIR}/${P/_rc/-rc}"
if [[ ${PV} != *rc* ]] ; then
KEYWORDS="~amd64 ~arm64 ~riscv"
fi
fi
# main pkg
LICENSE="Apache-2.0"
# deps
LICENSE+=" BSD BSD-2 CC-BY-SA-4.0 ISC MIT MPL-2.0"
SLOT="0"
IUSE="apparmor btrfs cgroup-hybrid cron wrapper +fuse +init +rootless +seccomp selinux systemd"
RESTRICT="test"
RDEPEND="
app-crypt/gpgme:=
>=app-containers/conmon-2.0.0
>=app-containers/containers-common-0.56.0
dev-libs/libassuan:=
dev-libs/libgpg-error:=
sys-apps/shadow:=
apparmor? ( sys-libs/libapparmor )
btrfs? ( sys-fs/btrfs-progs )
cgroup-hybrid? ( >=app-containers/runc-1.0.0_rc6 )
!cgroup-hybrid? ( app-containers/crun )
cron? ( virtual/cron )
wrapper? ( !app-containers/docker-cli )
fuse? ( sys-fs/fuse-overlayfs )
init? ( app-containers/catatonit )
rootless? ( app-containers/slirp4netns )
seccomp? ( sys-libs/libseccomp:= )
selinux? ( sec-policy/selinux-podman sys-libs/libselinux:= )
systemd? ( sys-apps/systemd:= )
"
DEPEND="${RDEPEND}"
BDEPEND="
dev-go/go-md2man
"
PATCHES=(
"${FILESDIR}/seccomp-toggle-4.7.0.patch"
)
CONFIG_CHECK="
~USER_NS
"
pkg_setup() {
use btrfs && CONFIG_CHECK+=" ~BTRFS_FS"
linux-info_pkg_setup
}
src_prepare() {
default
# assure necessary files are present
local file
for file in apparmor_tag btrfs_installed_tag btrfs_tag systemd_tag; do
[[ -f hack/"${file}".sh ]] || die
done
local feature
for feature in apparmor systemd; do
cat <<-EOF > hack/"${feature}"_tag.sh || die
#!/usr/bin/env bash
$(usex ${feature} "echo ${feature}" echo)
EOF
done
echo -e "#!/usr/bin/env bash\n echo" > hack/btrfs_installed_tag.sh || die
cat <<-EOF > hack/btrfs_tag.sh || die
#!/usr/bin/env bash
$(usex btrfs echo 'echo exclude_graphdriver_btrfs btrfs_noversion')
EOF
}
src_compile() {
export PREFIX="${EPREFIX}/usr"
# bug 906073
use elibc_musl && export CGO_CFLAGS="-D_LARGEFILE64_SOURCE"
# For non-live versions, prevent git operations which causes sandbox violations
# https://github.com/gentoo/gentoo/pull/33531#issuecomment-1786107493
[[ ${PV} != 9999* ]] && export COMMIT_NO="" GIT_COMMIT=""
# BUILD_SECCOMP is used in the patch to toggle seccomp
emake BUILDFLAGS="-v -work -x" GOMD2MAN="go-md2man" BUILD_SECCOMP="$(usex seccomp)" all $(usev wrapper docker-docs)
}
src_install() {
emake DESTDIR="${D}" install install.completions $(usev wrapper install.docker-full)
insinto /etc/cni/net.d
doins cni/87-podman-bridge.conflist
newconfd "${FILESDIR}"/podman-5.0.0_rc4.confd podman
newinitd "${FILESDIR}"/podman-5.0.0_rc4.initd podman
newinitd "${FILESDIR}"/podman-restart-5.0.0_rc4.initd podman-restart
newconfd "${FILESDIR}"/podman-restart-5.0.0_rc4.confd podman-restart
use cron && \
{ exeinto /etc/cron.daily && newexe "${FILESDIR}"/podman-auto-update-5.0.0_rc4.cron podman-auto-update; }
insinto /etc/logrotate.d
newins "${FILESDIR}/podman.logrotated" podman
keepdir /var/lib/containers
}
pkg_preinst() {
PODMAN_ROOTLESS_UPGRADE=false
if use rootless; then
has_version 'app-containers/podman[rootless]' || PODMAN_ROOTLESS_UPGRADE=true
fi
}
pkg_postinst() {
tmpfiles_process podman.conf $(usev wrapper podman-docker.conf)
local want_newline=false
if [[ ${PODMAN_ROOTLESS_UPGRADE} == true ]] ; then
${want_newline} && elog ""
elog "For rootless operation, you need to configure subuid/subgid"
elog "for user running podman. In case subuid/subgid has only been"
elog "configured for root, run:"
elog "usermod --add-subuids 1065536-1131071 <user>"
elog "usermod --add-subgids 1065536-1131071 <user>"
want_newline=true
fi
}

@ -1,151 +0,0 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit go-module tmpfiles linux-info
DESCRIPTION="A tool for managing OCI containers and pods with Docker-compatible CLI"
HOMEPAGE="https://github.com/containers/podman/ https://podman.io/"
if [[ ${PV} == 9999* ]]; then
inherit git-r3
EGIT_REPO_URI="https://github.com/containers/podman.git"
else
SRC_URI="https://github.com/containers/podman/archive/v${PV/_rc/-rc}.tar.gz -> ${P}.tar.gz"
S="${WORKDIR}/${P/_rc/-rc}"
if [[ ${PV} != *rc* ]] ; then
KEYWORDS="~amd64 ~arm64 ~riscv"
fi
fi
# main pkg
LICENSE="Apache-2.0"
# deps
LICENSE+=" BSD BSD-2 CC-BY-SA-4.0 ISC MIT MPL-2.0"
SLOT="0"
IUSE="apparmor btrfs cgroup-hybrid cron wrapper +fuse +init +rootless +seccomp selinux systemd"
RESTRICT="test"
RDEPEND="
app-crypt/gpgme:=
>=app-containers/conmon-2.0.0
>=app-containers/containers-common-0.56.0
dev-libs/libassuan:=
dev-libs/libgpg-error:=
sys-apps/shadow:=
apparmor? ( sys-libs/libapparmor )
btrfs? ( sys-fs/btrfs-progs )
cgroup-hybrid? ( >=app-containers/runc-1.0.0_rc6 )
!cgroup-hybrid? ( app-containers/crun )
cron? ( virtual/cron )
wrapper? ( !app-containers/docker-cli )
fuse? ( sys-fs/fuse-overlayfs )
init? ( app-containers/catatonit )
rootless? ( app-containers/slirp4netns )
seccomp? ( sys-libs/libseccomp:= )
selinux? ( sec-policy/selinux-podman sys-libs/libselinux:= )
systemd? ( sys-apps/systemd:= )
"
DEPEND="${RDEPEND}"
BDEPEND="
dev-go/go-md2man
"
PATCHES=(
"${FILESDIR}/seccomp-toggle-4.7.0.patch"
)
CONFIG_CHECK="
~USER_NS
"
pkg_setup() {
use btrfs && CONFIG_CHECK+=" ~BTRFS_FS"
linux-info_pkg_setup
}
src_prepare() {
default
# assure necessary files are present
local file
for file in apparmor_tag btrfs_installed_tag btrfs_tag systemd_tag; do
[[ -f hack/"${file}".sh ]] || die
done
local feature
for feature in apparmor systemd; do
cat <<-EOF > hack/"${feature}"_tag.sh || die
#!/usr/bin/env bash
$(usex ${feature} "echo ${feature}" echo)
EOF
done
echo -e "#!/usr/bin/env bash\n echo" > hack/btrfs_installed_tag.sh || die
cat <<-EOF > hack/btrfs_tag.sh || die
#!/usr/bin/env bash
$(usex btrfs echo 'echo exclude_graphdriver_btrfs btrfs_noversion')
EOF
}
src_compile() {
export PREFIX="${EPREFIX}/usr"
# bug 906073
use elibc_musl && export CGO_CFLAGS="-D_LARGEFILE64_SOURCE"
# For non-live versions, prevent git operations which causes sandbox violations
# https://github.com/gentoo/gentoo/pull/33531#issuecomment-1786107493
[[ ${PV} != 9999* ]] && export COMMIT_NO="" GIT_COMMIT=""
# BUILD_SECCOMP is used in the patch to toggle seccomp
emake BUILDFLAGS="-v -work -x" GOMD2MAN="go-md2man" BUILD_SECCOMP="$(usex seccomp)" all $(usev wrapper docker-docs)
}
src_install() {
emake DESTDIR="${D}" install install.completions $(usev wrapper install.docker-full)
insinto /etc/cni/net.d
doins cni/87-podman-bridge.conflist
newconfd "${FILESDIR}"/podman-5.0.0_rc4.confd podman
newinitd "${FILESDIR}"/podman-5.0.0_rc4.initd podman
newinitd "${FILESDIR}"/podman-restart-5.0.0_rc4.initd podman-restart
newconfd "${FILESDIR}"/podman-restart-5.0.0_rc4.confd podman-restart
newinitd "${FILESDIR}"/podman-clean-transient-5.0.0_rc6.initd podman-clean-transient
newconfd "${FILESDIR}"/podman-clean-transient-5.0.0_rc6.confd podman-clean-transient
use cron && \
{ exeinto /etc/cron.daily && newexe "${FILESDIR}"/podman-auto-update-5.0.0_rc4.cron podman-auto-update; }
insinto /etc/logrotate.d
newins "${FILESDIR}/podman.logrotated" podman
keepdir /var/lib/containers
}
pkg_preinst() {
PODMAN_ROOTLESS_UPGRADE=false
if use rootless; then
has_version 'app-containers/podman[rootless]' || PODMAN_ROOTLESS_UPGRADE=true
fi
}
pkg_postinst() {
tmpfiles_process podman.conf $(usev wrapper podman-docker.conf)
local want_newline=false
if [[ ${PODMAN_ROOTLESS_UPGRADE} == true ]] ; then
${want_newline} && elog ""
elog "For rootless operation, you need to configure subuid/subgid"
elog "for user running podman. In case subuid/subgid has only been"
elog "configured for root, run:"
elog "usermod --add-subuids 1065536-1131071 <user>"
elog "usermod --add-subgids 1065536-1131071 <user>"
want_newline=true
fi
}

@ -3,7 +3,9 @@
EAPI=8
inherit go-module tmpfiles linux-info
PYTHON_COMPAT=( python3_{11,12} )
inherit go-module python-any-r1 tmpfiles linux-info
DESCRIPTION="A tool for managing OCI containers and pods with Docker-compatible CLI"
HOMEPAGE="https://github.com/containers/podman/ https://podman.io/"
@ -14,9 +16,8 @@ if [[ ${PV} == 9999* ]]; then
else
SRC_URI="https://github.com/containers/podman/archive/v${PV/_rc/-rc}.tar.gz -> ${P}.tar.gz"
S="${WORKDIR}/${P/_rc/-rc}"
if [[ ${PV} != *rc* ]] ; then
[[ ${PV} != *rc* ]] && \
KEYWORDS="~amd64 ~arm64 ~riscv"
fi
fi
# main pkg
@ -24,32 +25,28 @@ LICENSE="Apache-2.0"
# deps
LICENSE+=" BSD BSD-2 CC-BY-SA-4.0 ISC MIT MPL-2.0"
SLOT="0"
IUSE="apparmor btrfs cgroup-hybrid cron wrapper +fuse +init +rootless +seccomp selinux systemd"
IUSE="apparmor btrfs +seccomp selinux systemd wrapper"
RESTRICT="test"
RDEPEND="
app-containers/catatonit
>=app-containers/conmon-2.1.10
>=app-containers/containers-common-0.58.0-r1
app-crypt/gpgme:=
>=app-containers/conmon-2.0.0
>=app-containers/containers-common-0.56.0
dev-libs/libassuan:=
dev-libs/libgpg-error:=
sys-apps/shadow:=
apparmor? ( sys-libs/libapparmor )
btrfs? ( sys-fs/btrfs-progs )
cgroup-hybrid? ( >=app-containers/runc-1.0.0_rc6 )
!cgroup-hybrid? ( app-containers/crun )
cron? ( virtual/cron )
wrapper? ( !app-containers/docker-cli )
fuse? ( sys-fs/fuse-overlayfs )
init? ( app-containers/catatonit )
rootless? ( app-containers/slirp4netns )
seccomp? ( sys-libs/libseccomp:= )
selinux? ( sec-policy/selinux-podman sys-libs/libselinux:= )
systemd? ( sys-apps/systemd:= )
"
DEPEND="${RDEPEND}"
BDEPEND="
${PYTHON_DEPS}
dev-go/go-md2man
"
@ -64,6 +61,7 @@ CONFIG_CHECK="
pkg_setup() {
use btrfs && CONFIG_CHECK+=" ~BTRFS_FS"
linux-info_pkg_setup
python-any-r1_pkg_setup
}
src_prepare() {
@ -93,59 +91,38 @@ src_prepare() {
src_compile() {
export PREFIX="${EPREFIX}/usr"
# bug 906073
use elibc_musl && export CGO_CFLAGS="-D_LARGEFILE64_SOURCE"
# For non-live versions, prevent git operations which causes sandbox violations
# https://github.com/gentoo/gentoo/pull/33531#issuecomment-1786107493
[[ ${PV} != 9999* ]] && export COMMIT_NO="" GIT_COMMIT=""
[[ ${PV} != 9999* ]] && export COMMIT_NO="" GIT_COMMIT="" EPOCH_TEST_COMMIT=""
# BUILD_SECCOMP is used in the patch to toggle seccomp
emake BUILDFLAGS="-v -work -x" GOMD2MAN="go-md2man" BUILD_SECCOMP="$(usex seccomp)" all $(usev wrapper docker-docs)
emake BUILDFLAGS="-v -work -x" GOMD2MAN="go-md2man" BUILD_SECCOMP="$(usex seccomp)" \
all $(usev wrapper docker-docs)
}
src_install() {
emake DESTDIR="${D}" install install.completions $(usev wrapper install.docker-full)
insinto /etc/cni/net.d
doins cni/87-podman-bridge.conflist
if use !systemd; then
newconfd "${FILESDIR}"/podman-5.0.0_rc4.confd podman
newinitd "${FILESDIR}"/podman-5.0.0_rc4.initd podman
newconfd "${FILESDIR}"/podman-5.0.0_rc4.confd podman
newinitd "${FILESDIR}"/podman-5.0.0_rc4.initd podman
newinitd "${FILESDIR}"/podman-restart-5.0.0_rc4.initd podman-restart
newconfd "${FILESDIR}"/podman-restart-5.0.0_rc4.confd podman-restart
newinitd "${FILESDIR}"/podman-restart-5.0.0_rc4.initd podman-restart
newconfd "${FILESDIR}"/podman-restart-5.0.0_rc4.confd podman-restart
newinitd "${FILESDIR}"/podman-clean-transient-5.0.0_rc6.initd podman-clean-transient
newconfd "${FILESDIR}"/podman-clean-transient-5.0.0_rc6.confd podman-clean-transient
newinitd "${FILESDIR}"/podman-clean-transient-5.0.0_rc6.initd podman-clean-transient
newconfd "${FILESDIR}"/podman-clean-transient-5.0.0_rc6.confd podman-clean-transient
exeinto /etc/cron.daily
newexe "${FILESDIR}"/podman-auto-update-5.0.0.cron podman-auto-update
use cron && \
{ exeinto /etc/cron.daily && newexe "${FILESDIR}"/podman-auto-update-5.0.0_rc4.cron podman-auto-update; }
insinto /etc/logrotate.d
newins "${FILESDIR}/podman.logrotated" podman
insinto /etc/logrotate.d
newins "${FILESDIR}/podman.logrotated" podman
fi
keepdir /var/lib/containers
}
pkg_preinst() {
PODMAN_ROOTLESS_UPGRADE=false
if use rootless; then
has_version 'app-containers/podman[rootless]' || PODMAN_ROOTLESS_UPGRADE=true
fi
}
pkg_postinst() {
tmpfiles_process podman.conf $(usev wrapper podman-docker.conf)
local want_newline=false
if [[ ${PODMAN_ROOTLESS_UPGRADE} == true ]] ; then
${want_newline} && elog ""
elog "For rootless operation, you need to configure subuid/subgid"
elog "for user running podman. In case subuid/subgid has only been"
elog "configured for root, run:"
elog "usermod --add-subuids 1065536-1131071 <user>"
elog "usermod --add-subgids 1065536-1131071 <user>"
want_newline=true
fi
}

Binary file not shown.

@ -1,4 +1,4 @@
# Copyright 1999-2023 Gentoo Authors
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@ -23,10 +23,10 @@ src_prepare() {
}
src_configure() {
export PREFIX="${EPREFIX}"/usr
export LIBDIR=${PREFIX}/$(get_libdir)
export CFLAGS_EXTRA="${CFLAGS}"
export LDFLAGS_EXTRA="${LDFLAGS}"
export PREFIX=/usr
unset CFLAGS
unset LDFLAGS
}

@ -1,3 +1,2 @@
DIST mkp224o-1.6.1-src.tar.gz 1387615 BLAKE2B 271424dcee44b5b1e1a35346a0cc1c37ee5d430231fe93e0b936ac994c892f0406ea361be763732db8a8397684ecad70e26c34f5553a415e7ed0592417672310 SHA512 d0c21ee5fb5f7b2950e1c39af5dc62b1e26aef0917b53169e9c3f9a99a7febe70bb2f96ada612c71bdbdbf8cad9c1f407d175af49fca40eedd68bbe8112970a5
DIST mkp224o-1.7.0-src.tar.gz 1388765 BLAKE2B 63b99d29ec1f1e971926417c14a77aa32f620dc0983eec4761ac9a40aa55ff6fb6182554377b4629e90c157de6eee25c9fac7250b55e51e1c7d68e705631d8d5 SHA512 3585a6708b32420f594b4aa27db2ad4aaeb84dedd5b6109b3440b575e4573909079f0ac477b709af6b5e33084b2098cff5fb59101155d9e905da2caf215856c8
DIST mkp224o-1.7.0-src.tar.gz.sig 585 BLAKE2B 0454257e35fd9433374551416ece13fd5f7e0ae5fc50c4ad10d336768afbde231090bf1355c750f7302f753f2a2dcc25be6433afc18ad4d015cad9aadd0d5fa3 SHA512 906972a347e8b8111adf80bd358da007b71d8deab2d55a6f78d84793f1f91001d0e807d0f09fe429d03bc3a0ea610792ea58bdcd347fb0d1a360600f1be7df2e

@ -1,36 +0,0 @@
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DESCRIPTION="Vanity address generator for v3 Tor hidden service addresses"
HOMEPAGE="https://github.com/cathugger/mkp224o"
SRC_URI="https://github.com/cathugger/${PN}/releases/download/v${PV}/${PN}-${PV}-src.tar.gz"
LICENSE="CC0-1.0"
SLOT="0"
KEYWORDS="amd64"
IUSE="cpu_flags_x86_sse2 pcre"
DEPEND="
dev-libs/libsodium:=
pcre? ( dev-libs/libpcre2:= )
"
RDEPEND="${DEPEND}"
DOCS=( OPTIMISATION.txt README.md )
src_configure() {
local myeconfargs=(
--enable-regex=$(usex pcre)
--enable-statistics
)
use cpu_flags_x86_sse2 && myeconfargs+=( --enable-donna-sse2 )
econf "${myeconfargs[@]}"
}
src_install() {
einstalldocs
dobin ${PN}
}

@ -253,7 +253,7 @@ LICENSE+="
|| ( GPL-2 GPL-3 LGPL-3 )
"
SLOT="0"
KEYWORDS="~amd64 ~loong ~x86"
KEYWORDS="~amd64 ~arm ~arm64 ~loong ~x86"
IUSE="nettle +openssl"
REQUIRED_USE="^^ ( nettle openssl )"

Binary file not shown.

@ -0,0 +1,2 @@
DIST audacity-manual-3.3.3.tar.gz 22938196 BLAKE2B b2646c84859a10e2f2d80abe44c3dc33021fda92b9e60e746fdae95ea7b32003d2a804c7ef8f88b3c3e3efdce8e0f3b2acf846753bede9d05dbbb92777c1055c SHA512 d522b94157f091206341a05b67dbf3c776fedb5a8329f4301244a9ad9cb5f638d49dda11fbb11d376f8f5c4509f1984933d388c44830c8c2ce0c2b59ee7607f9
DIST audacity-manual-3.4.2.tar.gz 23305736 BLAKE2B 641c4d0fc70eece83906d4c2df427037ff675cab179860f4d637ffcb38b9390409557bcc11e819657c86ff99c3fce513b1f877a1e9c5597157881392e5dc3ce7 SHA512 0664d7c925c9e2c3a15e7b403ef2b8752ce219c40f16e361fc567794ddac92d94bdc93ddb73ac9e4251ab26c352cf072d62f765b5644df3a53febb1babfd6fbe

@ -0,0 +1,26 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DESCRIPTION="HTML reference manual for Audacity"
HOMEPAGE="https://www.audacityteam.org/"
if [[ ${PV} = 9999* ]]; then
inherit git-r3
EGIT_REPO_URI="https://github.com/audacity/audacity-manual.git"
else
KEYWORDS="~amd64"
S="${WORKDIR}/help"
SRC_URI="amd64? ( https://github.com/audacity/audacity-manual/releases/download/v${PV}/audacity-manual-${PV}.tar.gz )"
fi
LICENSE="CC-BY-3.0"
SLOT="0"
src_install() {
docinto html
dodoc -r "${S}"/manual/{m,man}
dodoc "${S}"/manual/{favicon.ico,index.html,quick_help.html}
dosym ../../doc/${PF}/html /usr/share/${PN}/help/manual
}

@ -0,0 +1,26 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DESCRIPTION="HTML reference manual for Audacity"
HOMEPAGE="https://www.audacityteam.org/"
if [[ ${PV} = 9999* ]]; then
inherit git-r3
EGIT_REPO_URI="https://github.com/audacity/audacity-manual.git"
else
KEYWORDS="~amd64"
S="${WORKDIR}/help"
SRC_URI="amd64? ( https://github.com/audacity/audacity-manual/releases/download/v${PV}/audacity-manual-${PV}.tar.gz )"
fi
LICENSE="CC-BY-3.0"
SLOT="0"
src_install() {
docinto html
dodoc -r "${S}"/manual/{m,man}
dodoc "${S}"/manual/{favicon.ico,index.html,quick_help.html}
dosym ../../doc/${PF}/html /usr/share/${PN}/help/manual
}

@ -0,0 +1,26 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DESCRIPTION="HTML reference manual for Audacity"
HOMEPAGE="https://www.audacityteam.org/"
if [[ ${PV} = 9999* ]]; then
inherit git-r3
EGIT_REPO_URI="https://github.com/audacity/audacity-manual.git"
else
KEYWORDS="~amd64"
S="${WORKDIR}/help"
SRC_URI="amd64? ( https://github.com/audacity/audacity-manual/releases/download/v${PV}/audacity-manual-${PV}.tar.gz )"
fi
LICENSE="CC-BY-3.0"
SLOT="0"
src_install() {
docinto html
dodoc -r "${S}"/manual/{m,man}
dodoc "${S}"/manual/{favicon.ico,index.html,quick_help.html}
dosym ../../doc/${PF}/html /usr/share/${PN}/help/manual
}

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person" proxied="yes">
<email>mehw.is.me@inventati.org</email>
<name>Matthew White</name>
</maintainer>
<maintainer type="project" proxied="proxy">
<email>proxy-maint@gentoo.org</email>
<name>Proxy Maintainers</name>
</maintainer>
<maintainer type="project">
<email>proaudio@gentoo.org</email>
<name>Gentoo ProAudio Project</name>
</maintainer>
<upstream>
<remote-id type="github">audacity/audacity-manual</remote-id>
</upstream>
</pkgmetadata>

Binary file not shown.

@ -1,10 +1,15 @@
DIST emacs-18.59-patches-15.tar.xz 34104 BLAKE2B 9d14004d5188ec0ffe11099ae1beb431adfe159d220fc1b6f1d0be67da19b88911b66a206386beee9498bdcaa48e40a185755734cad2d60927c79bc8ddf0fa7d SHA512 c82cd8e81acf63addd137716a60191b916ee9ac9f8176661be1e8dd0f347f63f8ca8bf9d4d225141499dcbf4c20444eb6526cc3a3912a2d4136fb2bd295e2c26
DIST emacs-18.59.tar.gz 2962652 BLAKE2B d617636daff41e672af2dcda26ec24b2495cf0a3e6373561ee26a2a922b7252c074dd6b79289d771853a4720c60f084f5726b904bf65989718173232ac874b0b SHA512 03ce565e346e89b7aacb1852f4783e8907f394de7da0c543b475cb038eb89b87f980d0f7ca1841b1d2108b20f211e95113c7214e4a33e5767a1827ff43173f33
DIST emacs-26.3-patches-6.tar.xz 6264 BLAKE2B 0973df2f34d623a5478a01ab18c80d38e864d7bfb15bc5d3dac3ecb31911eb9edfc622f5ed407d9f418ed6d85e96d5881ffb53a94766aec144a3089ac1332bbf SHA512 b9c833ccd0505f2b78e30c17b43549fcaca3bc767b18e5260160a3aa7063504030e58e848a78f83e76ace7d64db13bfbc69281c3eab9c6e413c3adef06803c9d
DIST emacs-26.3-patches-7.tar.xz 6724 BLAKE2B df984126b09099b625ae4b2e8eae0f38dcea0b1395752924a1f19beab1f2dfe46e04af74e0cc4c1f5893f4f67bbdcbc5c47852e72fc5e6bea39538c06d9bec98 SHA512 22d864713b60ddc535e815c0c24161dbf35bf0a8df8ea5f9b57c91a2ff1f659c662247c8ce3be9ddef361f3608269e5099b1ef98a344e20427ec23f58155692a
DIST emacs-26.3.tar.xz 44415140 BLAKE2B aa8434e6431992ee40402f03a890dd2c49784ee76f437888efe61d66b9aa2bdb816eb0bfe1055e9e154a8bb3ed065fee71623741b474d465a96964618ec775e3 SHA512 4d5a4319253afb081e105a3697eb6eeb8d8a0da18cd41346e376ca5af1e180a26e641f76c64fad1b0253168f14a511f0a4d9d4141524fb1cf4d04f25b05a76e9
DIST emacs-27.2-patches-7.tar.xz 12356 BLAKE2B 8d991bd3e87d2fc0086b535d481dbe8399e42d15b21417d19341c5ef8426c65cb471f23eb6e41067750a1ad6dced8cb7b2fd4a6b34bd911913ccfe858e9257f9 SHA512 285c0ca69fc5c7fd398d4ca0a8c5a2a4412a858504445c415cb6eeca9eb170680f6d9bf0dfcd2ae4925e75f01d1d1858c194760a22ee98ad16ebcc347fa588ec
DIST emacs-27.2-patches-8.tar.xz 13884 BLAKE2B 0adfac5586134eea17ed3f333fa21f70d93ecb4569d2bcb06959236c14e7519cd64594859cb6abac9635526b737eee8aaaa8f40915213d2ce671d5eb3464ce5e SHA512 0b50b3c36bdeb678bd08f31fc37ecf96491522cde4b74b8c1b657e52e269077e2f87beaa2a60c82986680e48f4c62375c6a53e9891bcb7a77720d6a976027734
DIST emacs-27.2.tar.xz 44624480 BLAKE2B 245ea96004b90f81ac74de74521cbbe086caf1176937e08157eae12cdde5a0f35fc77f7119272ed812974358e5e95abb05e1c2e4f3b501cf5401ea9274f62156 SHA512 0f63a5a8709b113ef790c1a64845dad05ead096f93f62164ff221c517a35b91ea7bced75a992d794981a85382cda03cca7338da2f5ef8f6ef1459b88018a4ce9
DIST emacs-28.2-patches-5.tar.xz 6932 BLAKE2B 1cf79142b3031d377b5ba56996a41c44801a114e993ed7e93f937fd88cd35cf142fbc8d98c7970984f44df9fd267d8032f9c6e559d69c18c945510b2e93029bd SHA512 9a246680045868029d9f67652d60d0859d44c3f016ba57cae5ba991c138ece39890230ad303220e2558ccca904b2053b691874da04c6529faa0e8e4f6ea4b6f2
DIST emacs-28.2-patches-6.tar.xz 9068 BLAKE2B 267f9ade4fb36cdf336c684ceca95fe636cc9ab2f50742442b957504ddaa7a144950926095c75edef5f39cc3dbaf580831129c7004fe906f78b8a97250540c72 SHA512 abba35ee23e4f01100b443d2442ed4323a8d67b993f51b1822ce8e369c11e98a44b760a257e6373287975575b40b92046a4157c84d79cff1db0928e28c315a25
DIST emacs-28.2.tar.xz 47722600 BLAKE2B a7e4990658b5e7306510f8dded93aaf0b82cdd9306df8b786526d038c3249ef9579287075f2235eb01a71ae1699db555254f137b86ab2d2305b45895053df552 SHA512 a7cec7e3e82367815a1442f69af54102dbfc434069810a9dec5938a6660cb8b076e6f1fb0bfff9695b15603dbbe05eb9c7dfd92e90cf40fc4d1e5746bce83bd8
DIST emacs-29.2-patches-2.tar.xz 2232 BLAKE2B 5a74b286a47a03a7b24298fb9da69135485a25351a1451351412825f7b570e9ab40e988e03218eef8b6345124b982a6ea7c67ac03adbb72061e74438a5910836 SHA512 efc5855a66b1895145b9eb792c790850f319cdfaf8c03579aecfc51940a3e010d825e68003d218929278c9cbfa7e0039a8244838126e67db15cb52718dddf35c
DIST emacs-29.2.tar.xz 52162080 BLAKE2B d634fbd94a2fde4824daf5d4d44d6f9e9693900af9ebeda75488fd4d14b7f6cd22e0c9fc15a4c73b4b90843aa782dbd698ba0d40c50465eb4b902105cd9e2c2c SHA512 293fdc2387d58dfa506ae1960b05ccdb4c16ec53c4f55a1a6b665a4fe2815cabfad6257f2b62231040889ab3843d56a01ef62fc9efc1118bf833d7773c64820a
DIST emacs-29.3-patches-1.tar.xz 1552 BLAKE2B 5f9ddd816b03b4a2fe077cef23d76b0c41e2e7dafac35d0dd718ee406e6e57dcb102223251dddc68280f9f2bd41f5b141cda46dca8ccc78258d5939a84ee1665 SHA512 d61dfc6944d58b6ea5749f3089e5c575cf60c8138962aa5c8131274504124505db87489a4d3806e69b646ffffd4c924ef94018c4d7bdcbb2c84322fad6441ffc
DIST emacs-29.3.tar.xz 52203168 BLAKE2B 73651c52e508d5341f66659bbaf98e839040239198cb66f62239f489a961794adf837d9a14e9b605f059b7b612803e0ce5998ec47100ba545db642baacdb55ec SHA512 efaecfc46a0b88f61de477d92c08ee592b8838e6c34724151a3b1502efa7ebd4d4837733c694807e6de1ba4b8d37d2ec382c6bb2ed000b67ad8f0e11c7df2a6b

@ -9,6 +9,11 @@ DESCRIPTION="The extensible, customizable, self-documenting real-time display ed
HOMEPAGE="https://www.gnu.org/software/emacs/"
SRC_URI="mirror://gnu/emacs/${P}.tar.xz
https://dev.gentoo.org/~ulm/emacs/${P}-patches-6.tar.xz"
# FULL_VERSION keeps the full version number, which is needed in
# order to determine some path information correctly for copy/move
# operations later on
FULL_VERSION="${PV%%_*}"
S="${WORKDIR}/emacs-${FULL_VERSION}"
LICENSE="GPL-3+ FDL-1.3+ BSD HPND MIT W3C unicode PSF-2"
SLOT="26"
@ -103,11 +108,6 @@ RDEPEND+=" ${IDEPEND}"
EMACS_SUFFIX="emacs-${SLOT}"
SITEFILE="20${EMACS_SUFFIX}-gentoo.el"
# FULL_VERSION keeps the full version number, which is needed in
# order to determine some path information correctly for copy/move
# operations later on
FULL_VERSION="${PV%%_*}"
S="${WORKDIR}/emacs-${FULL_VERSION}"
PATCHES=("${WORKDIR}/patch")
# Suppress false positive QA warnings #898304

@ -0,0 +1,379 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit autotools elisp-common flag-o-matic readme.gentoo-r1
DESCRIPTION="The extensible, customizable, self-documenting real-time display editor"
HOMEPAGE="https://www.gnu.org/software/emacs/"
SRC_URI="mirror://gnu/emacs/${P}.tar.xz
https://dev.gentoo.org/~ulm/emacs/${P}-patches-7.tar.xz"
# FULL_VERSION keeps the full version number, which is needed in
# order to determine some path information correctly for copy/move
# operations later on
FULL_VERSION="${PV%%_*}"
S="${WORKDIR}/emacs-${FULL_VERSION}"
LICENSE="GPL-3+ FDL-1.3+ BSD HPND MIT W3C unicode PSF-2"
SLOT="26"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
IUSE="acl alsa aqua athena cairo dbus dynamic-loading games gfile gif gpm gsettings gtk gui gzip-el imagemagick +inotify jpeg kerberos lcms libxml2 livecd m17n-lib mailutils motif png selinux sound source ssl svg systemd +threads tiff toolkit-scroll-bars valgrind wide-int Xaw3d xft +xpm xwidgets zlib"
RDEPEND="app-emacs/emacs-common[games?,gui(-)?]
sys-libs/ncurses:0=
acl? ( virtual/acl )
alsa? ( media-libs/alsa-lib )
dbus? ( sys-apps/dbus )
games? ( acct-group/gamestat )
gpm? ( sys-libs/gpm )
!inotify? ( gfile? ( >=dev-libs/glib-2.28.6 ) )
kerberos? ( virtual/krb5 )
lcms? ( media-libs/lcms:2 )
libxml2? ( >=dev-libs/libxml2-2.2.0 )
mailutils? ( net-mail/mailutils[clients] )
!mailutils? ( acct-group/mail net-libs/liblockfile )
selinux? ( sys-libs/libselinux )
ssl? ( net-libs/gnutls:0= )
systemd? ( sys-apps/systemd )
valgrind? ( dev-debug/valgrind )
zlib? ( sys-libs/zlib )
gui? ( !aqua? (
x11-libs/libICE
x11-libs/libSM
x11-libs/libX11
x11-libs/libXext
x11-libs/libXfixes
x11-libs/libXinerama
x11-libs/libXrandr
x11-libs/libxcb
x11-misc/xbitmaps
gsettings? ( >=dev-libs/glib-2.28.6 )
gif? ( media-libs/giflib:0= )
jpeg? ( media-libs/libjpeg-turbo:0= )
png? ( >=media-libs/libpng-1.4:0= )
svg? ( >=gnome-base/librsvg-2.0 )
tiff? ( media-libs/tiff:= )
xpm? ( x11-libs/libXpm )
imagemagick? ( media-gfx/imagemagick:0=[jpeg?,png?,svg?,tiff?] )
xft? (
media-libs/fontconfig
media-libs/freetype
x11-libs/libXft
x11-libs/libXrender
cairo? ( >=x11-libs/cairo-1.12.18[X] )
m17n-lib? (
>=dev-libs/libotf-0.9.4
>=dev-libs/m17n-lib-1.5.1
)
)
gtk? (
x11-libs/gtk+:3
xwidgets? (
net-libs/webkit-gtk:4.1=
x11-libs/libXcomposite
)
)
!gtk? (
motif? (
>=x11-libs/motif-2.3:0
x11-libs/libXpm
x11-libs/libXmu
x11-libs/libXt
)
!motif? (
Xaw3d? (
x11-libs/libXaw3d
x11-libs/libXmu
x11-libs/libXt
)
!Xaw3d? ( athena? (
x11-libs/libXaw
x11-libs/libXmu
x11-libs/libXt
) )
)
)
) )"
DEPEND="${RDEPEND}
gui? ( !aqua? ( x11-base/xorg-proto ) )"
BDEPEND="virtual/pkgconfig
gzip-el? ( app-arch/gzip )"
IDEPEND="app-eselect/eselect-emacs"
RDEPEND+=" ${IDEPEND}"
EMACS_SUFFIX="emacs-${SLOT}"
SITEFILE="20${EMACS_SUFFIX}-gentoo.el"
PATCHES=("${WORKDIR}/patch")
# Suppress false positive QA warnings #898304
QA_CONFIG_IMPL_DECL_SKIP=( malloc_{set,get}_state MIN )
src_prepare() {
default
# Fix filename reference in redirected man page
sed -i -e "/^\\.so/s/etags/&-${EMACS_SUFFIX}/" doc/man/ctags.1 || die
AT_M4DIR=m4 eautoreconf
}
src_configure() {
strip-flags
filter-flags -pie #526948
if use ia64; then
replace-flags "-O[2-9]" -O1 #325373
else
replace-flags "-O[3-9]" -O2
fi
local myconf
if use alsa; then
use sound || ewarn \
"USE flag \"alsa\" overrides \"-sound\"; enabling sound support."
myconf+=" --with-sound=alsa"
else
myconf+=" --with-sound=$(usex sound oss)"
fi
if ! use gui; then
einfo "Configuring to build without window system support"
myconf+=" --without-x --without-ns"
elif use aqua; then
einfo "Configuring to build with Nextstep (Macintosh Cocoa) support"
myconf+=" --with-ns --disable-ns-self-contained"
myconf+=" --without-x"
else
myconf+=" --with-x --without-ns"
myconf+=" --without-gconf"
myconf+=" $(use_with gsettings)"
myconf+=" $(use_with toolkit-scroll-bars)"
myconf+=" $(use_with gif)"
myconf+=" $(use_with jpeg)"
myconf+=" $(use_with png)"
myconf+=" $(use_with svg rsvg)"
myconf+=" $(use_with tiff)"
myconf+=" $(use_with xpm)"
myconf+=" $(use_with imagemagick)"
if use xft; then
myconf+=" --with-xft"
myconf+=" $(use_with cairo)"
myconf+=" $(use_with m17n-lib libotf)"
myconf+=" $(use_with m17n-lib m17n-flt)"
else
myconf+=" --without-xft"
myconf+=" --without-cairo"
myconf+=" --without-libotf --without-m17n-flt"
use cairo && ewarn \
"USE flag \"cairo\" has no effect if \"xft\" is not set."
use m17n-lib && ewarn \
"USE flag \"m17n-lib\" has no effect if \"xft\" is not set."
fi
local f line
if use gtk; then
einfo "Configuring to build with GIMP Toolkit (GTK+)"
while read line; do ewarn "${line}"; done <<-EOF
Your version of GTK+ will have problems with closing open
displays. This is no problem if you just use one display, but
if you use more than one and close one of them Emacs may crash.
See <https://gitlab.gnome.org/GNOME/gtk/-/issues/221> and
<https://gitlab.gnome.org/GNOME/gtk/-/issues/2315>.
If you intend to use more than one display, then it is strongly
recommended that you compile Emacs with the Athena/Lucid or the
Motif toolkit instead.
EOF
myconf+=" --with-x-toolkit=gtk3 $(use_with xwidgets)"
for f in motif Xaw3d athena; do
use ${f} && ewarn \
"USE flag \"${f}\" has no effect if \"gtk\" is set."
done
elif use motif; then
einfo "Configuring to build with Motif toolkit"
myconf+=" --with-x-toolkit=motif"
for f in Xaw3d athena; do
use ${f} && ewarn \
"USE flag \"${f}\" has no effect if \"motif\" is set."
done
elif use athena || use Xaw3d; then
einfo "Configuring to build with Athena/Lucid toolkit"
myconf+=" --with-x-toolkit=lucid $(use_with Xaw3d xaw3d)"
else
einfo "Configuring to build with no toolkit"
myconf+=" --with-x-toolkit=no"
fi
! use gtk && use xwidgets && ewarn \
"USE flag \"xwidgets\" has no effect if \"gtk\" is not set."
fi
econf \
--program-suffix="-${EMACS_SUFFIX}" \
--includedir="${EPREFIX}"/usr/include/${EMACS_SUFFIX} \
--infodir="${EPREFIX}"/usr/share/info/${EMACS_SUFFIX} \
--localstatedir="${EPREFIX}"/var \
--enable-locallisppath="${EPREFIX}/etc/emacs:${EPREFIX}${SITELISP}" \
--without-compress-install \
--without-hesiod \
--without-pop \
--with-file-notification=$(usev inotify || usev gfile || echo no) \
$(use_enable acl) \
$(use_with dbus) \
$(use_with dynamic-loading modules) \
$(use_with games gameuser ":gamestat") \
$(use_with gpm) \
$(use_with kerberos) $(use_with kerberos kerberos5) \
$(use_with lcms lcms2) \
$(use_with libxml2 xml2) \
$(use_with mailutils) \
$(use_with selinux) \
$(use_with ssl gnutls) \
$(use_with systemd libsystemd) \
$(use_with threads) \
$(use_with wide-int) \
$(use_with zlib) \
${myconf}
}
src_compile() {
export ac_cv_header_valgrind_valgrind_h=$(usex valgrind)
# Disable sandbox when dumping. For the unbelievers, see bug #131505
emake RUN_TEMACS="SANDBOX_ON=0 LD_PRELOAD= env ./temacs"
}
src_install() {
emake DESTDIR="${D}" NO_BIN_LINK=t BLESSMAIL_TARGET= install
mv "${ED}"/usr/bin/{emacs-${FULL_VERSION}-,}${EMACS_SUFFIX} || die
mv "${ED}"/usr/share/man/man1/{emacs-,}${EMACS_SUFFIX}.1 || die
mv "${ED}"/usr/share/metainfo/{emacs-,}${EMACS_SUFFIX}.appdata.xml || die
# dissuade Portage from removing our dir file #257260
touch "${ED}"/usr/share/info/${EMACS_SUFFIX}/.keepinfodir
docompress -x /usr/share/info/${EMACS_SUFFIX}/dir
# movemail must be setgid mail
if ! use mailutils; then
fowners root:mail /usr/libexec/emacs/${FULL_VERSION}/${CHOST}/movemail
fperms 2751 /usr/libexec/emacs/${FULL_VERSION}/${CHOST}/movemail
fi
# avoid collision between slots, see bug #169033 e.g.
rm "${ED}"/usr/share/emacs/site-lisp/subdirs.el || die
rm -rf "${ED}"/usr/share/{applications,icons} || die
rm -rf "${ED}/usr/$(get_libdir)" || die
rm -rf "${ED}"/var || die
# remove unused <version>/site-lisp dir
rm -rf "${ED}"/usr/share/emacs/${FULL_VERSION}/site-lisp || die
# remove COPYING file (except for etc/COPYING used by describe-copying)
rm "${ED}"/usr/share/emacs/${FULL_VERSION}/lisp/COPYING || die
if use systemd; then
insinto /usr/lib/systemd/user
sed -e "/^##/d" \
-e "/^ExecStart/s,emacs,${EPREFIX}/usr/bin/${EMACS_SUFFIX}," \
-e "/^ExecStop/s,emacsclient,${EPREFIX}/usr/bin/&-${EMACS_SUFFIX}," \
etc/emacs.service | newins - ${EMACS_SUFFIX}.service
assert
fi
if use gzip-el; then
# compress .el files when a corresponding .elc exists
find "${ED}"/usr/share/emacs/${FULL_VERSION}/lisp -type f \
-name "*.elc" -print | sed 's/\.elc$/.el/' | xargs gzip -9n
assert "gzip .el failed"
fi
local cdir
if use source; then
cdir="/usr/share/emacs/${FULL_VERSION}/src"
insinto "${cdir}"
# This is not meant to install all the source -- just the
# C source you might find via find-function
doins src/*.{c,h,m}
elif has installsources ${FEATURES}; then
cdir="/usr/src/debug/${CATEGORY}/${PF}/${S#"${WORKDIR}/"}/src"
fi
sed -e "${cdir:+#}/^Y/d" -e "s/^[XY]//" >"${T}/${SITEFILE}" <<-EOF || die
X
;;; ${EMACS_SUFFIX} site-lisp configuration
X
(when (string-match "\\\\\`${FULL_VERSION//./\\\\.}\\\\>" emacs-version)
Y (setq find-function-C-source-directory
Y "${EPREFIX}${cdir}")
X (let ((path (getenv "INFOPATH"))
X (dir "${EPREFIX}/usr/share/info/${EMACS_SUFFIX}")
X (re "\\\\\`${EPREFIX}/usr/share\\\\>"))
X (and path
X ;; move Emacs Info dir before anything else in /usr/share
X (let* ((p (cons nil (split-string path ":" t))) (q p))
X (while (and (cdr q) (not (string-match re (cadr q))))
X (setq q (cdr q)))
X (setcdr q (cons dir (delete dir (cdr q))))
X (setenv "INFOPATH" (mapconcat 'identity (cdr p) ":"))))))
EOF
elisp-site-file-install "${T}/${SITEFILE}" || die
dodoc README BUGS CONTRIBUTE
if use gui && use aqua; then
dodir /Applications/Gentoo
rm -rf "${ED}"/Applications/Gentoo/${EMACS_SUFFIX^}.app || die
mv nextstep/Emacs.app \
"${ED}"/Applications/Gentoo/${EMACS_SUFFIX^}.app || die
fi
local DOC_CONTENTS="You can set the version to be started by
/usr/bin/emacs through the Emacs eselect module, which also
redirects man and info pages. Therefore, several Emacs versions can
be installed at the same time. \"man emacs.eselect\" for details.
\\n\\nIf you upgrade from a previous major version of Emacs, then
it is strongly recommended that you use app-admin/emacs-updater
to rebuild all byte-compiled elisp files of the installed Emacs
packages."
if use gui; then
DOC_CONTENTS+="\\n\\nYou need to install some fonts for Emacs.
Installing media-fonts/font-adobe-{75,100}dpi on the X server's
machine would satisfy basic Emacs requirements under X11.
See also https://wiki.gentoo.org/wiki/Xft_support_for_GNU_Emacs
for how to enable anti-aliased fonts."
use aqua && DOC_CONTENTS+="\\n\\n${EMACS_SUFFIX^}.app is in
\"${EPREFIX}/Applications/Gentoo\". You may want to copy or
symlink it into /Applications by yourself."
fi
readme.gentoo_create_doc
}
pkg_preinst() {
# verify that the PM hasn't removed our Info directory index #257260
local infodir="${ED}/usr/share/info/${EMACS_SUFFIX}"
[[ -f ${infodir}/dir || ! -d ${infodir} ]] || die
}
pkg_postinst() {
elisp-site-regen
readme.gentoo_print_elog
if use livecd; then
# force an update of the emacs symlink for the livecd/dvd,
# because some microemacs packages set it with USE=livecd
eselect emacs update
else
eselect emacs update ifunset
fi
}
pkg_postrm() {
elisp-site-regen
eselect emacs update ifunset
}

@ -0,0 +1,445 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit autotools elisp-common readme.gentoo-r1 toolchain-funcs
if [[ ${PV##*.} = 9999 ]]; then
inherit git-r3
EGIT_REPO_URI="https://git.savannah.gnu.org/git/emacs.git"
EGIT_BRANCH="emacs-27"
EGIT_CHECKOUT_DIR="${WORKDIR}/emacs"
S="${EGIT_CHECKOUT_DIR}"
SLOT="${PV%%.*}-vcs"
else
# FULL_VERSION keeps the full version number, which is needed in
# order to determine some path information correctly for copy/move
# operations later on
FULL_VERSION="${PV%%_*}"
SRC_URI="mirror://gnu/emacs/${P}.tar.xz"
S="${WORKDIR}/emacs-${FULL_VERSION}"
# PV can be in any of the following formats:
# 27.1 released version (slot 27)
# 27.1_rc1 upstream release candidate (27)
# 27.0.9999 live ebuild (slot 27-vcs)
# 27.0.90 upstream prerelease snapshot (27-vcs)
# 27.0.50_pre20191223 snapshot by Gentoo developer (27-vcs)
if [[ ${PV} == *_pre* ]]; then
SRC_URI="https://dev.gentoo.org/~ulm/distfiles/${P}.tar.xz"
S="${WORKDIR}/emacs"
elif [[ ${PV//[0-9]} != "." ]]; then
SRC_URI="https://alpha.gnu.org/gnu/emacs/pretest/${PN}-${PV/_/-}.tar.xz"
fi
# Patchset from proj/emacs-patches.git
SRC_URI+=" https://dev.gentoo.org/~ulm/emacs/${P}-patches-8.tar.xz"
PATCHES=("${WORKDIR}/patch")
SLOT="${PV%%.*}"
[[ ${PV} == *.*.* ]] && SLOT+="-vcs"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
fi
DESCRIPTION="The extensible, customizable, self-documenting real-time display editor"
HOMEPAGE="https://www.gnu.org/software/emacs/"
LICENSE="GPL-3+ FDL-1.3+ BSD HPND MIT W3C unicode PSF-2"
IUSE="acl alsa aqua athena cairo dbus dynamic-loading games gfile gif +gmp gpm gsettings gtk gui gzip-el harfbuzz imagemagick +inotify jpeg json kerberos lcms libxml2 livecd m17n-lib mailutils motif png selinux sound source ssl svg systemd +threads tiff toolkit-scroll-bars valgrind wide-int Xaw3d xft +xpm xwidgets zlib"
RESTRICT="test"
RDEPEND="app-emacs/emacs-common[games?,gui(-)?]
sys-libs/ncurses:0=
acl? ( virtual/acl )
alsa? ( media-libs/alsa-lib )
dbus? ( sys-apps/dbus )
games? ( acct-group/gamestat )
gmp? ( dev-libs/gmp:0= )
gpm? ( sys-libs/gpm )
!inotify? ( gfile? ( >=dev-libs/glib-2.28.6 ) )
json? ( dev-libs/jansson:= )
kerberos? ( virtual/krb5 )
lcms? ( media-libs/lcms:2 )
libxml2? ( >=dev-libs/libxml2-2.2.0 )
mailutils? ( net-mail/mailutils[clients] )
!mailutils? ( acct-group/mail net-libs/liblockfile )
selinux? ( sys-libs/libselinux )
ssl? ( net-libs/gnutls:0= )
systemd? ( sys-apps/systemd )
valgrind? ( dev-debug/valgrind )
zlib? ( sys-libs/zlib )
gui? ( !aqua? (
x11-libs/libICE
x11-libs/libSM
x11-libs/libX11
x11-libs/libXext
x11-libs/libXfixes
x11-libs/libXinerama
x11-libs/libXrandr
x11-libs/libxcb
x11-misc/xbitmaps
gsettings? ( >=dev-libs/glib-2.28.6 )
gif? ( media-libs/giflib:0= )
jpeg? ( media-libs/libjpeg-turbo:0= )
png? ( >=media-libs/libpng-1.4:0= )
svg? ( >=gnome-base/librsvg-2.0 )
tiff? ( media-libs/tiff:= )
xpm? ( x11-libs/libXpm )
imagemagick? ( media-gfx/imagemagick:0=[jpeg?,png?,svg?,tiff?] )
xft? (
media-libs/fontconfig
media-libs/freetype
x11-libs/libXrender
cairo? ( >=x11-libs/cairo-1.12.18[X] )
!cairo? ( x11-libs/libXft )
harfbuzz? ( media-libs/harfbuzz:0= )
m17n-lib? (
>=dev-libs/libotf-0.9.4
>=dev-libs/m17n-lib-1.5.1
)
)
gtk? (
x11-libs/gtk+:3
xwidgets? (
net-libs/webkit-gtk:4.1=
x11-libs/libXcomposite
)
)
!gtk? (
motif? (
>=x11-libs/motif-2.3:0
x11-libs/libXpm
x11-libs/libXmu
x11-libs/libXt
)
!motif? (
Xaw3d? (
x11-libs/libXaw3d
x11-libs/libXmu
x11-libs/libXt
)
!Xaw3d? ( athena? (
x11-libs/libXaw
x11-libs/libXmu
x11-libs/libXt
) )
)
)
) )"
DEPEND="${RDEPEND}
gui? ( !aqua? ( x11-base/xorg-proto ) )"
BDEPEND="sys-apps/texinfo
virtual/pkgconfig
gzip-el? ( app-arch/gzip )"
IDEPEND="app-eselect/eselect-emacs"
RDEPEND+=" ${IDEPEND}"
EMACS_SUFFIX="emacs-${SLOT}"
SITEFILE="20${EMACS_SUFFIX}-gentoo.el"
# Suppress false positive QA warnings #898304 #925449
QA_CONFIG_IMPL_DECL_SKIP=(
malloc_set_state malloc_get_state MIN
statvfs64 re_set_syntax re_compile_pattern re_search re_match
)
src_prepare() {
if [[ ${PV##*.} = 9999 ]]; then
FULL_VERSION=$(sed -n 's/^AC_INIT([^,]*,[ \t]*\([^ \t,)]*\).*/\1/p' \
configure.ac)
[[ ${FULL_VERSION} ]] || die "Cannot determine current Emacs version"
einfo "Emacs branch: ${EGIT_BRANCH}"
einfo "Commit: ${EGIT_VERSION}"
einfo "Emacs version number: ${FULL_VERSION}"
[[ ${FULL_VERSION} =~ ^${PV%.*}(\..*)?$ ]] \
|| die "Upstream version number changed to ${FULL_VERSION}"
fi
default
# Fix filename reference in redirected man page
sed -i -e "/^\\.so/s/etags/&-${EMACS_SUFFIX}/" doc/man/ctags.1 || die
AT_M4DIR=m4 eautoreconf
}
src_configure() {
local myconf
if use alsa; then
use sound || ewarn \
"USE flag \"alsa\" overrides \"-sound\"; enabling sound support."
myconf+=" --with-sound=alsa"
else
myconf+=" --with-sound=$(usex sound oss)"
fi
if ! use gui; then
einfo "Configuring to build without window system support"
myconf+=" --without-x --without-ns"
elif use aqua; then
einfo "Configuring to build with Nextstep (Macintosh Cocoa) support"
myconf+=" --with-ns --disable-ns-self-contained"
myconf+=" --without-x"
else
myconf+=" --with-x --without-ns"
myconf+=" --without-gconf"
myconf+=" $(use_with gsettings)"
myconf+=" $(use_with toolkit-scroll-bars)"
myconf+=" $(use_with gif)"
myconf+=" $(use_with jpeg)"
myconf+=" $(use_with png)"
myconf+=" $(use_with svg rsvg)"
myconf+=" $(use_with tiff)"
myconf+=" $(use_with xpm)"
myconf+=" $(use_with imagemagick)"
if use xft; then
myconf+=" --with-xft"
myconf+=" $(use_with cairo)"
myconf+=" $(use_with harfbuzz)"
myconf+=" $(use_with m17n-lib libotf)"
myconf+=" $(use_with m17n-lib m17n-flt)"
else
myconf+=" --without-xft"
myconf+=" --without-cairo"
myconf+=" --without-libotf --without-m17n-flt"
use cairo && ewarn \
"USE flag \"cairo\" has no effect if \"xft\" is not set."
use m17n-lib && ewarn \
"USE flag \"m17n-lib\" has no effect if \"xft\" is not set."
fi
local f line
if use gtk; then
einfo "Configuring to build with GIMP Toolkit (GTK+)"
while read line; do ewarn "${line}"; done <<-EOF
Your version of GTK+ will have problems with closing open
displays. This is no problem if you just use one display, but
if you use more than one and close one of them Emacs may crash.
See <https://gitlab.gnome.org/GNOME/gtk/-/issues/221> and
<https://gitlab.gnome.org/GNOME/gtk/-/issues/2315>.
If you intend to use more than one display, then it is strongly
recommended that you compile Emacs with the Athena/Lucid or the
Motif toolkit instead.
EOF
myconf+=" --with-x-toolkit=gtk3 $(use_with xwidgets)"
for f in motif Xaw3d athena; do
use ${f} && ewarn \
"USE flag \"${f}\" has no effect if \"gtk\" is set."
done
elif use motif; then
einfo "Configuring to build with Motif toolkit"
myconf+=" --with-x-toolkit=motif"
for f in Xaw3d athena; do
use ${f} && ewarn \
"USE flag \"${f}\" has no effect if \"motif\" is set."
done
elif use athena || use Xaw3d; then
einfo "Configuring to build with Athena/Lucid toolkit"
myconf+=" --with-x-toolkit=lucid $(use_with Xaw3d xaw3d)"
else
einfo "Configuring to build with no toolkit"
myconf+=" --with-x-toolkit=no"
fi
! use gtk && use xwidgets && ewarn \
"USE flag \"xwidgets\" has no effect if \"gtk\" is not set."
fi
if tc-is-cross-compiler; then
# Configure a CBUILD directory when cross-compiling to make tools
mkdir "${S}-build" && pushd "${S}-build" >/dev/null || die
ECONF_SOURCE="${S}" econf_build --without-all --without-x-toolkit
popd >/dev/null || die
# Don't try to execute the binary for dumping during the build
myconf+=" --with-dumping=none"
elif use m68k; then
# Workaround for https://debbugs.gnu.org/44531
myconf+=" --with-dumping=unexec"
else
myconf+=" --with-dumping=pdumper"
fi
econf \
--program-suffix="-${EMACS_SUFFIX}" \
--includedir="${EPREFIX}"/usr/include/${EMACS_SUFFIX} \
--infodir="${EPREFIX}"/usr/share/info/${EMACS_SUFFIX} \
--localstatedir="${EPREFIX}"/var \
--enable-locallisppath="${EPREFIX}/etc/emacs:${EPREFIX}${SITELISP}" \
--without-compress-install \
--without-hesiod \
--without-pop \
--with-file-notification=$(usev inotify || usev gfile || echo no) \
--with-pdumper \
$(use_enable acl) \
$(use_with dbus) \
$(use_with dynamic-loading modules) \
$(use_with games gameuser ":gamestat") \
$(use_with gmp libgmp) \
$(use_with gpm) \
$(use_with json) \
$(use_with kerberos) $(use_with kerberos kerberos5) \
$(use_with lcms lcms2) \
$(use_with libxml2 xml2) \
$(use_with mailutils) \
$(use_with selinux) \
$(use_with ssl gnutls) \
$(use_with systemd libsystemd) \
$(use_with threads) \
$(use_with wide-int) \
$(use_with zlib) \
${myconf}
}
src_compile() {
export ac_cv_header_valgrind_valgrind_h=$(usex valgrind)
if tc-is-cross-compiler; then
# Build native tools for compiling lisp etc.
emake -C "${S}-build" src
emake lib # Cross-compile dependencies first for timestamps
# Save native build tools in the cross-directory
cp "${S}-build"/lib-src/make-{docfile,fingerprint} lib-src || die
# Specify the native Emacs to compile lisp
emake -C lisp all EMACS="${S}-build/src/emacs"
fi
emake
}
src_install() {
emake DESTDIR="${D}" NO_BIN_LINK=t BLESSMAIL_TARGET= install
mv "${ED}"/usr/bin/{emacs-${FULL_VERSION}-,}${EMACS_SUFFIX} || die
mv "${ED}"/usr/share/man/man1/{emacs-,}${EMACS_SUFFIX}.1 || die
mv "${ED}"/usr/share/metainfo/{emacs-,}${EMACS_SUFFIX}.appdata.xml || die
# dissuade Portage from removing our dir file #257260
touch "${ED}"/usr/share/info/${EMACS_SUFFIX}/.keepinfodir
docompress -x /usr/share/info/${EMACS_SUFFIX}/dir
# movemail must be setgid mail
if ! use mailutils; then
fowners root:mail /usr/libexec/emacs/${FULL_VERSION}/${CHOST}/movemail
fperms 2751 /usr/libexec/emacs/${FULL_VERSION}/${CHOST}/movemail
fi
# avoid collision between slots, see bug #169033 e.g.
rm "${ED}"/usr/share/emacs/site-lisp/subdirs.el || die
rm -rf "${ED}"/usr/share/{applications,icons} || die
rm -rf "${ED}/usr/$(get_libdir)" || die
rm -rf "${ED}"/var || die
# remove unused <version>/site-lisp dir
rm -rf "${ED}"/usr/share/emacs/${FULL_VERSION}/site-lisp || die
# remove COPYING file (except for etc/COPYING used by describe-copying)
rm "${ED}"/usr/share/emacs/${FULL_VERSION}/lisp/COPYING || die
if use systemd; then
insinto /usr/lib/systemd/user
sed -e "/^##/d" \
-e "/^ExecStart/s,emacs,${EPREFIX}/usr/bin/${EMACS_SUFFIX}," \
-e "/^ExecStop/s,emacsclient,${EPREFIX}/usr/bin/&-${EMACS_SUFFIX}," \
etc/emacs.service | newins - ${EMACS_SUFFIX}.service
assert
fi
if use gzip-el; then
# compress .el files when a corresponding .elc exists
find "${ED}"/usr/share/emacs/${FULL_VERSION}/lisp -type f \
-name "*.elc" -print | sed 's/\.elc$/.el/' | xargs gzip -9n
assert "gzip .el failed"
fi
local cdir
if use source; then
cdir="/usr/share/emacs/${FULL_VERSION}/src"
insinto "${cdir}"
# This is not meant to install all the source -- just the
# C source you might find via find-function
doins src/*.{c,h,m}
elif has installsources ${FEATURES}; then
cdir="/usr/src/debug/${CATEGORY}/${PF}/${S#"${WORKDIR}/"}/src"
fi
sed -e "${cdir:+#}/^Y/d" -e "s/^[XY]//" >"${T}/${SITEFILE}" <<-EOF || die
X
;;; ${EMACS_SUFFIX} site-lisp configuration
X
(when (string-match "\\\\\`${FULL_VERSION//./\\\\.}\\\\>" emacs-version)
Y (setq find-function-C-source-directory
Y "${EPREFIX}${cdir}")
X (let ((path (getenv "INFOPATH"))
X (dir "${EPREFIX}/usr/share/info/${EMACS_SUFFIX}")
X (re "\\\\\`${EPREFIX}/usr/share\\\\>"))
X (and path
X ;; move Emacs Info dir before anything else in /usr/share
X (let* ((p (cons nil (split-string path ":" t))) (q p))
X (while (and (cdr q) (not (string-match re (cadr q))))
X (setq q (cdr q)))
X (setcdr q (cons dir (delete dir (cdr q))))
X (setenv "INFOPATH" (mapconcat 'identity (cdr p) ":"))))))
EOF
elisp-site-file-install "${T}/${SITEFILE}" || die
dodoc README BUGS CONTRIBUTE
if use gui && use aqua; then
dodir /Applications/Gentoo
rm -rf "${ED}"/Applications/Gentoo/${EMACS_SUFFIX^}.app || die
mv nextstep/Emacs.app \
"${ED}"/Applications/Gentoo/${EMACS_SUFFIX^}.app || die
fi
local DOC_CONTENTS="You can set the version to be started by
/usr/bin/emacs through the Emacs eselect module, which also
redirects man and info pages. Therefore, several Emacs versions can
be installed at the same time. \"man emacs.eselect\" for details.
\\n\\nIf you upgrade from a previous major version of Emacs, then
it is strongly recommended that you use app-admin/emacs-updater
to rebuild all byte-compiled elisp files of the installed Emacs
packages."
if use gui; then
DOC_CONTENTS+="\\n\\nYou need to install some fonts for Emacs.
Installing media-fonts/font-adobe-{75,100}dpi on the X server's
machine would satisfy basic Emacs requirements under X11.
See also https://wiki.gentoo.org/wiki/Xft_support_for_GNU_Emacs
for how to enable anti-aliased fonts."
use aqua && DOC_CONTENTS+="\\n\\n${EMACS_SUFFIX^}.app is in
\"${EPREFIX}/Applications/Gentoo\". You may want to copy or
symlink it into /Applications by yourself."
fi
tc-is-cross-compiler && DOC_CONTENTS+="\\n\\nEmacs did not write
a portable dump file due to being cross-compiled.
To create this file at run time, execute the following command:
\\n${EMACS_SUFFIX} --batch -Q --eval='(dump-emacs-portable
\"/usr/libexec/emacs/${FULL_VERSION}/${CHOST}/emacs.pdmp\")'"
readme.gentoo_create_doc
}
pkg_preinst() {
# verify that the PM hasn't removed our Info directory index #257260
local infodir="${ED}/usr/share/info/${EMACS_SUFFIX}"
[[ -f ${infodir}/dir || ! -d ${infodir} ]] || die
}
pkg_postinst() {
elisp-site-regen
readme.gentoo_print_elog
if use livecd; then
# force an update of the emacs symlink for the livecd/dvd,
# because some microemacs packages set it with USE=livecd
eselect emacs update
else
eselect emacs update ifunset
fi
}
pkg_postrm() {
elisp-site-regen
eselect emacs update ifunset
}

@ -0,0 +1,536 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit autotools elisp-common flag-o-matic readme.gentoo-r1 toolchain-funcs
if [[ ${PV##*.} = 9999 ]]; then
inherit git-r3
EGIT_REPO_URI="https://git.savannah.gnu.org/git/emacs.git"
EGIT_BRANCH="emacs-28"
EGIT_CHECKOUT_DIR="${WORKDIR}/emacs"
S="${EGIT_CHECKOUT_DIR}"
SLOT="${PV%%.*}-vcs"
else
# FULL_VERSION keeps the full version number, which is needed in
# order to determine some path information correctly for copy/move
# operations later on
FULL_VERSION="${PV%%_*}"
SRC_URI="mirror://gnu/emacs/${P}.tar.xz"
S="${WORKDIR}/emacs-${FULL_VERSION}"
# PV can be in any of the following formats:
# 27.1 released version (slot 27)
# 27.1_rc1 upstream release candidate (27)
# 27.0.9999 live ebuild (slot 27-vcs)
# 27.0.90 upstream prerelease snapshot (27-vcs)
# 27.0.50_pre20191223 snapshot by Gentoo developer (27-vcs)
if [[ ${PV} == *_pre* ]]; then
SRC_URI="https://dev.gentoo.org/~ulm/distfiles/${P}.tar.xz"
S="${WORKDIR}/emacs"
elif [[ ${PV//[0-9]} != "." ]]; then
SRC_URI="https://alpha.gnu.org/gnu/emacs/pretest/${PN}-${PV/_/-}.tar.xz"
fi
# Patchset from proj/emacs-patches.git
SRC_URI+=" https://dev.gentoo.org/~ulm/emacs/${P}-patches-6.tar.xz"
PATCHES=("${WORKDIR}/patch")
SLOT="${PV%%.*}"
[[ ${PV} == *.*.* ]] && SLOT+="-vcs"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
fi
DESCRIPTION="The extensible, customizable, self-documenting real-time display editor"
HOMEPAGE="https://www.gnu.org/software/emacs/"
LICENSE="GPL-3+ FDL-1.3+ BSD HPND MIT W3C unicode PSF-2"
IUSE="acl alsa aqua athena cairo dbus dynamic-loading games gfile gif +gmp gpm gsettings gtk gui gzip-el harfbuzz imagemagick +inotify jit jpeg json kerberos lcms libxml2 livecd m17n-lib mailutils motif png selinux sound source ssl svg systemd +threads tiff toolkit-scroll-bars valgrind wide-int Xaw3d xft +xpm xwidgets zlib"
RDEPEND="app-emacs/emacs-common[games?,gui(-)?]
sys-libs/ncurses:0=
acl? ( virtual/acl )
alsa? ( media-libs/alsa-lib )
dbus? ( sys-apps/dbus )
games? ( acct-group/gamestat )
gmp? ( dev-libs/gmp:0= )
gpm? ( sys-libs/gpm )
!inotify? ( gfile? ( >=dev-libs/glib-2.28.6 ) )
jit? (
sys-devel/gcc:=[jit(-)]
sys-libs/zlib
)
json? ( dev-libs/jansson:= )
kerberos? ( virtual/krb5 )
lcms? ( media-libs/lcms:2 )
libxml2? ( >=dev-libs/libxml2-2.2.0 )
mailutils? ( net-mail/mailutils[clients] )
!mailutils? ( acct-group/mail net-libs/liblockfile )
selinux? ( sys-libs/libselinux )
ssl? ( net-libs/gnutls:0= )
systemd? ( sys-apps/systemd )
valgrind? ( dev-debug/valgrind )
zlib? ( sys-libs/zlib )
gui? ( !aqua? (
x11-libs/libICE
x11-libs/libSM
x11-libs/libX11
x11-libs/libXext
x11-libs/libXfixes
x11-libs/libXinerama
x11-libs/libXrandr
x11-libs/libxcb
x11-misc/xbitmaps
gsettings? ( >=dev-libs/glib-2.28.6 )
gif? ( media-libs/giflib:0= )
jpeg? ( media-libs/libjpeg-turbo:0= )
png? ( >=media-libs/libpng-1.4:0= )
svg? ( >=gnome-base/librsvg-2.0 )
tiff? ( media-libs/tiff:= )
xpm? ( x11-libs/libXpm )
imagemagick? ( media-gfx/imagemagick:0=[jpeg?,png?,svg?,tiff?] )
xft? (
media-libs/fontconfig
media-libs/freetype
x11-libs/libXrender
cairo? ( >=x11-libs/cairo-1.12.18[X] )
!cairo? ( x11-libs/libXft )
harfbuzz? ( media-libs/harfbuzz:0= )
m17n-lib? (
>=dev-libs/libotf-0.9.4
>=dev-libs/m17n-lib-1.5.1
)
)
gtk? (
x11-libs/gtk+:3
xwidgets? (
net-libs/webkit-gtk:4.1=
x11-libs/libXcomposite
)
)
!gtk? (
motif? (
>=x11-libs/motif-2.3:0
x11-libs/libXpm
x11-libs/libXmu
x11-libs/libXt
)
!motif? (
Xaw3d? (
x11-libs/libXaw3d
x11-libs/libXmu
x11-libs/libXt
)
!Xaw3d? ( athena? (
x11-libs/libXaw
x11-libs/libXmu
x11-libs/libXt
) )
)
)
) )"
DEPEND="${RDEPEND}
gui? ( !aqua? ( x11-base/xorg-proto ) )"
BDEPEND="sys-apps/texinfo
virtual/pkgconfig
gzip-el? ( app-arch/gzip )"
IDEPEND="app-eselect/eselect-emacs"
RDEPEND+=" ${IDEPEND}"
EMACS_SUFFIX="emacs-${SLOT}"
SITEFILE="20${EMACS_SUFFIX}-gentoo.el"
# Suppress false positive QA warnings #898304 #925449
QA_CONFIG_IMPL_DECL_SKIP=(
malloc_set_state malloc_get_state MIN
statvfs64 re_set_syntax re_compile_pattern re_search re_match
)
src_prepare() {
if [[ ${PV##*.} = 9999 ]]; then
FULL_VERSION=$(sed -n 's/^AC_INIT([^,]*,[^0-9.]*\([0-9.]*\).*/\1/p' \
configure.ac)
[[ ${FULL_VERSION} ]] || die "Cannot determine current Emacs version"
einfo "Emacs branch: ${EGIT_BRANCH}"
einfo "Commit: ${EGIT_VERSION}"
einfo "Emacs version number: ${FULL_VERSION}"
[[ ${FULL_VERSION} =~ ^${PV%.*}(\..*)?$ ]] \
|| die "Upstream version number changed to ${FULL_VERSION}"
fi
if use jit; then
export NATIVE_FULL_AOT=1
find lisp -type f -name "*.elc" -delete || die
# These files ignore LDFLAGS. We assign the variable here, because
# for live ebuilds FULL_VERSION doesn't exist in global scope
QA_FLAGS_IGNORED="usr/$(get_libdir)/emacs/${FULL_VERSION}/native-lisp/.*"
# gccjit doesn't play well with ccache or distcc #801580
# For now, work around the problem with an explicit LIBRARY_PATH
has ccache ${FEATURES} || has distcc ${FEATURES} && tc-is-gcc \
&& export LIBRARY_PATH=$("$(tc-getCC)" -print-search-dirs \
| sed -n '/^libraries:/{s:^[^/]*::;p}')
fi
default
# Fix filename reference in redirected man page
sed -i -e "/^\\.so/s/etags/&-${EMACS_SUFFIX}/" doc/man/ctags.1 || die
# Tests that use bubblewrap don't work in the sandbox:
# "bwrap: setting up uid map: Permission denied"
# So, disrupt the search for the bwrap executable.
sed -i -e 's/(executable-find "bwrap")/nil/' test/src/emacs-tests.el \
test/lisp/emacs-lisp/bytecomp-tests.el || die
AT_M4DIR=m4 eautoreconf
}
src_configure() {
local myconf
# Prevents e.g. tests interfering with running Emacs.
unset EMACS_SOCKET_NAME
if use alsa; then
use sound || ewarn \
"USE flag \"alsa\" overrides \"-sound\"; enabling sound support."
myconf+=" --with-sound=alsa"
else
myconf+=" --with-sound=$(usex sound oss)"
fi
if use jit; then
use zlib || ewarn \
"USE flag \"jit\" overrides \"-zlib\"; enabling zlib support."
myconf+=" --with-zlib"
else
myconf+=" $(use_with zlib)"
fi
if ! use gui; then
einfo "Configuring to build without window system support"
myconf+=" --without-x --without-ns"
elif use aqua; then
einfo "Configuring to build with Nextstep (Macintosh Cocoa) support"
myconf+=" --with-ns --disable-ns-self-contained"
myconf+=" --without-x"
else
myconf+=" --with-x --without-ns"
myconf+=" --without-gconf"
myconf+=" $(use_with gsettings)"
myconf+=" $(use_with toolkit-scroll-bars)"
myconf+=" $(use_with gif)"
myconf+=" $(use_with jpeg)"
myconf+=" $(use_with png)"
myconf+=" $(use_with svg rsvg)"
myconf+=" $(use_with tiff)"
myconf+=" $(use_with xpm)"
myconf+=" $(use_with imagemagick)"
if use xft; then
myconf+=" --with-xft"
myconf+=" $(use_with cairo)"
myconf+=" $(use_with harfbuzz)"
myconf+=" $(use_with m17n-lib libotf)"
myconf+=" $(use_with m17n-lib m17n-flt)"
else
myconf+=" --without-xft"
myconf+=" --without-cairo"
myconf+=" --without-libotf --without-m17n-flt"
use cairo && ewarn \
"USE flag \"cairo\" has no effect if \"xft\" is not set."
use m17n-lib && ewarn \
"USE flag \"m17n-lib\" has no effect if \"xft\" is not set."
fi
local f line
if use gtk; then
einfo "Configuring to build with GIMP Toolkit (GTK+)"
while read line; do ewarn "${line}"; done <<-EOF
Your version of GTK+ will have problems with closing open
displays. This is no problem if you just use one display, but
if you use more than one and close one of them Emacs may crash.
See <https://gitlab.gnome.org/GNOME/gtk/-/issues/221> and
<https://gitlab.gnome.org/GNOME/gtk/-/issues/2315>.
If you intend to use more than one display, then it is strongly
recommended that you compile Emacs with the Athena/Lucid or the
Motif toolkit instead.
EOF
myconf+=" --with-x-toolkit=gtk3 $(use_with xwidgets)"
for f in motif Xaw3d athena; do
use ${f} && ewarn \
"USE flag \"${f}\" has no effect if \"gtk\" is set."
done
elif use motif; then
einfo "Configuring to build with Motif toolkit"
myconf+=" --with-x-toolkit=motif"
for f in Xaw3d athena; do
use ${f} && ewarn \
"USE flag \"${f}\" has no effect if \"motif\" is set."
done
elif use athena || use Xaw3d; then
einfo "Configuring to build with Athena/Lucid toolkit"
myconf+=" --with-x-toolkit=lucid $(use_with Xaw3d xaw3d)"
else
einfo "Configuring to build with no toolkit"
myconf+=" --with-x-toolkit=no"
fi
! use gtk && use xwidgets && ewarn \
"USE flag \"xwidgets\" has no effect if \"gtk\" is not set."
fi
if tc-is-cross-compiler; then
# Configure a CBUILD directory when cross-compiling to make tools
mkdir "${S}-build" && pushd "${S}-build" >/dev/null || die
ECONF_SOURCE="${S}" econf_build --without-all --without-x-toolkit
popd >/dev/null || die
# Don't try to execute the binary for dumping during the build
myconf+=" --with-dumping=none"
elif use m68k; then
# Workaround for https://debbugs.gnu.org/44531
myconf+=" --with-dumping=unexec"
else
myconf+=" --with-dumping=pdumper"
fi
econf \
--program-suffix="-${EMACS_SUFFIX}" \
--includedir="${EPREFIX}"/usr/include/${EMACS_SUFFIX} \
--infodir="${EPREFIX}"/usr/share/info/${EMACS_SUFFIX} \
--localstatedir="${EPREFIX}"/var \
--enable-locallisppath="${EPREFIX}/etc/emacs:${EPREFIX}${SITELISP}" \
--without-compress-install \
--without-hesiod \
--without-pop \
--with-file-notification=$(usev inotify || usev gfile || echo no) \
--with-pdumper \
$(use_enable acl) \
$(use_with dbus) \
$(use_with dynamic-loading modules) \
$(use_with games gameuser ":gamestat") \
$(use_with gmp libgmp) \
$(use_with gpm) \
$(use_with jit native-compilation) \
$(use_with json) \
$(use_with kerberos) $(use_with kerberos kerberos5) \
$(use_with lcms lcms2) \
$(use_with libxml2 xml2) \
$(use_with mailutils) \
$(use_with selinux) \
$(use_with ssl gnutls) \
$(use_with systemd libsystemd) \
$(use_with threads) \
$(use_with wide-int) \
${myconf}
}
src_compile() {
export ac_cv_header_valgrind_valgrind_h=$(usex valgrind)
append-cppflags -DUSE_VALGRIND=$(usex valgrind)
if tc-is-cross-compiler; then
# Build native tools for compiling lisp etc.
emake -C "${S}-build" src
emake lib # Cross-compile dependencies first for timestamps
# Save native build tools in the cross-directory
cp "${S}-build"/lib-src/make-{docfile,fingerprint} lib-src || die
# Specify the native Emacs to compile lisp
emake -C lisp all EMACS="${S}-build/src/emacs"
fi
emake
}
src_test() {
# List .el test files with a comment above listing the exact
# subtests which caused failure. Elements should begin with a %.
# e.g. %lisp/gnus/mml-sec-tests.el.
local exclude_tests=(
# Reason: not yet known
# mml-secure-en-decrypt-{1,2,3,4}
# mml-secure-find-usable-keys-{1,2}
# mml-secure-key-checks
# mml-secure-select-preferred-keys-4
# mml-secure-sign-verify-1
%lisp/gnus/mml-sec-tests.el
# Reason: race condition
# Looks like it should be fixed in 29.x at least:
# https://debbugs.gnu.org/cgi/bugreport.cgi?bug=55706
# files-tests-file-name-non-special-file-in-directory-p
%lisp/files-tests.el
# Reason: permission denied on /nonexistent
# (vc-*-bzr only fails if breezy is installed, as they
# try to access cache dirs under /nonexistent)
#
# rmail-undigest-test-multipart-mixed-digest
# rmail-undigest-test-rfc1153-less-strict-digest
# rmail-undigest-test-rfc1153-sloppy-digest
# rmail-undigest-test-rfc934-digest
# vc-test-bzr02-state
# vc-test-bzr05-rename-file
# vc-test-bzr06-version-diff
# vc-bzr-test-bug9781
%lisp/mail/undigest-tests.el
%lisp/vc/vc-tests.el
%lisp/vc/vc-bzr-tests.el
# Reason: some copyright years differ
%lisp/emacs-lisp/copyright-tests.el
# Reason: quoting issues (fixed in Emacs 29)
%lib-src/emacsclient-tests.el
)
use threads || exclude_tests+=(
%src/emacs-module-tests.el
%src/keyboard-tests.el
%src/thread-tests.el
)
# See test/README for possible options
emake \
EMACS_TEST_VERBOSE=1 \
EXCLUDE_TESTS="${exclude_tests[*]}" \
TEST_BACKTRACE_LINE_LENGTH=nil \
check
}
src_install() {
emake DESTDIR="${D}" NO_BIN_LINK=t BLESSMAIL_TARGET= install
mv "${ED}"/usr/bin/{emacs-${FULL_VERSION}-,}${EMACS_SUFFIX} || die
mv "${ED}"/usr/share/man/man1/{emacs-,}${EMACS_SUFFIX}.1 || die
mv "${ED}"/usr/share/metainfo/{emacs-,}${EMACS_SUFFIX}.metainfo.xml || die
# dissuade Portage from removing our dir file #257260
touch "${ED}"/usr/share/info/${EMACS_SUFFIX}/.keepinfodir
docompress -x /usr/share/info/${EMACS_SUFFIX}/dir
# movemail must be setgid mail
if ! use mailutils; then
fowners root:mail /usr/libexec/emacs/${FULL_VERSION}/${CHOST}/movemail
fperms 2751 /usr/libexec/emacs/${FULL_VERSION}/${CHOST}/movemail
fi
# avoid collision between slots, see bug #169033 e.g.
rm "${ED}"/usr/share/emacs/site-lisp/subdirs.el || die
rm -rf "${ED}"/usr/share/{applications,icons} || die
rm -rf "${ED}/usr/$(get_libdir)/systemd" || die
rm -rf "${ED}"/var || die
# remove unused <version>/site-lisp dir
rm -rf "${ED}"/usr/share/emacs/${FULL_VERSION}/site-lisp || die
# remove COPYING file (except for etc/COPYING used by describe-copying)
rm "${ED}"/usr/share/emacs/${FULL_VERSION}/lisp/COPYING || die
if use systemd; then
insinto /usr/lib/systemd/user
sed -e "/^##/d" \
-e "/^ExecStart/s,emacs,${EPREFIX}/usr/bin/${EMACS_SUFFIX}," \
-e "/^ExecStop/s,emacsclient,${EPREFIX}/usr/bin/&-${EMACS_SUFFIX}," \
etc/emacs.service | newins - ${EMACS_SUFFIX}.service
assert
fi
if use gzip-el; then
# compress .el files when a corresponding .elc exists
find "${ED}"/usr/share/emacs/${FULL_VERSION}/lisp -type f \
-name "*.elc" -print | sed 's/\.elc$/.el/' | xargs gzip -9n
assert "gzip .el failed"
fi
local cdir
if use source; then
cdir="/usr/share/emacs/${FULL_VERSION}/src"
insinto "${cdir}"
# This is not meant to install all the source -- just the
# C source you might find via find-function
doins src/*.{c,h,m}
elif has installsources ${FEATURES}; then
cdir="/usr/src/debug/${CATEGORY}/${PF}/${S#"${WORKDIR}/"}/src"
fi
sed -e "${cdir:+#}/^Y/d" -e "s/^[XY]//" >"${T}/${SITEFILE}" <<-EOF || die
X
;;; ${EMACS_SUFFIX} site-lisp configuration
X
(when (string-match "\\\\\`${FULL_VERSION//./\\\\.}\\\\>" emacs-version)
Y (setq find-function-C-source-directory
Y "${EPREFIX}${cdir}")
X (let ((path (getenv "INFOPATH"))
X (dir "${EPREFIX}/usr/share/info/${EMACS_SUFFIX}")
X (re "\\\\\`${EPREFIX}/usr/share\\\\>"))
X (and path
X ;; move Emacs Info dir before anything else in /usr/share
X (let* ((p (cons nil (split-string path ":" t))) (q p))
X (while (and (cdr q) (not (string-match re (cadr q))))
X (setq q (cdr q)))
X (setcdr q (cons dir (delete dir (cdr q))))
X (setenv "INFOPATH" (mapconcat 'identity (cdr p) ":"))))))
EOF
elisp-site-file-install "${T}/${SITEFILE}" || die
dodoc README BUGS CONTRIBUTE
if use gui && use aqua; then
dodir /Applications/Gentoo
rm -rf "${ED}"/Applications/Gentoo/${EMACS_SUFFIX^}.app || die
mv nextstep/Emacs.app \
"${ED}"/Applications/Gentoo/${EMACS_SUFFIX^}.app || die
fi
local DOC_CONTENTS="You can set the version to be started by
/usr/bin/emacs through the Emacs eselect module, which also
redirects man and info pages. Therefore, several Emacs versions can
be installed at the same time. \"man emacs.eselect\" for details.
\\n\\nIf you upgrade from a previous major version of Emacs, then
it is strongly recommended that you use app-admin/emacs-updater
to rebuild all byte-compiled elisp files of the installed Emacs
packages."
if use gui; then
DOC_CONTENTS+="\\n\\nYou need to install some fonts for Emacs.
Installing media-fonts/font-adobe-{75,100}dpi on the X server's
machine would satisfy basic Emacs requirements under X11.
See also https://wiki.gentoo.org/wiki/Xft_support_for_GNU_Emacs
for how to enable anti-aliased fonts."
use aqua && DOC_CONTENTS+="\\n\\n${EMACS_SUFFIX^}.app is in
\"${EPREFIX}/Applications/Gentoo\". You may want to copy or
symlink it into /Applications by yourself."
fi
tc-is-cross-compiler && DOC_CONTENTS+="\\n\\nEmacs did not write
a portable dump file due to being cross-compiled.
To create this file at run time, execute the following command:
\\n${EMACS_SUFFIX} --batch -Q --eval='(dump-emacs-portable
\"/usr/libexec/emacs/${FULL_VERSION}/${CHOST}/emacs.pdmp\")'"
readme.gentoo_create_doc
}
pkg_preinst() {
# verify that the PM hasn't removed our Info directory index #257260
local infodir="${ED}/usr/share/info/${EMACS_SUFFIX}"
[[ -f ${infodir}/dir || ! -d ${infodir} ]] || die
}
pkg_postinst() {
elisp-site-regen
readme.gentoo_print_elog
if use livecd; then
# force an update of the emacs symlink for the livecd/dvd,
# because some microemacs packages set it with USE=livecd
eselect emacs update
else
eselect emacs update ifunset
fi
}
pkg_postrm() {
elisp-site-regen
eselect emacs update ifunset
}

@ -0,0 +1,619 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit autotools elisp-common flag-o-matic readme.gentoo-r1 toolchain-funcs
if [[ ${PV##*.} = 9999 ]]; then
inherit git-r3
EGIT_REPO_URI="https://git.savannah.gnu.org/git/emacs.git"
EGIT_BRANCH="emacs-29"
EGIT_CHECKOUT_DIR="${WORKDIR}/emacs"
S="${EGIT_CHECKOUT_DIR}"
SLOT="${PV%%.*}-vcs"
else
# FULL_VERSION keeps the full version number, which is needed in
# order to determine some path information correctly for copy/move
# operations later on
FULL_VERSION="${PV%%_*}"
SRC_URI="mirror://gnu/emacs/${P}.tar.xz"
S="${WORKDIR}/emacs-${FULL_VERSION}"
# PV can be in any of the following formats:
# 27.1 released version (slot 27)
# 27.1_rc1 upstream release candidate (27)
# 27.0.9999 live ebuild (slot 27-vcs)
# 27.0.90 upstream prerelease snapshot (27-vcs)
# 27.0.50_pre20191223 snapshot by Gentoo developer (27-vcs)
if [[ ${PV} == *_pre* ]]; then
SRC_URI="https://dev.gentoo.org/~ulm/distfiles/${P}.tar.xz"
S="${WORKDIR}/emacs"
elif [[ ${PV//[0-9]} != "." ]]; then
SRC_URI="https://alpha.gnu.org/gnu/emacs/pretest/${PN}-${PV/_/-}.tar.xz"
fi
# Patchset from proj/emacs-patches.git
SRC_URI+=" https://dev.gentoo.org/~ulm/emacs/${P}-patches-1.tar.xz"
PATCHES=("${WORKDIR}/patch")
SLOT="${PV%%.*}"
[[ ${PV} == *.*.* ]] && SLOT+="-vcs"
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
fi
DESCRIPTION="The extensible, customizable, self-documenting real-time display editor"
HOMEPAGE="https://www.gnu.org/software/emacs/"
LICENSE="GPL-3+ FDL-1.3+ BSD HPND MIT W3C unicode PSF-2"
IUSE="acl alsa aqua athena cairo dbus dynamic-loading games gfile gif +gmp gpm gsettings gtk gui gzip-el harfbuzz imagemagick +inotify jit jpeg json kerberos lcms libxml2 livecd m17n-lib mailutils motif png selinux sound source sqlite ssl svg systemd +threads tiff toolkit-scroll-bars tree-sitter valgrind webp wide-int +X Xaw3d xft +xpm xwidgets zlib"
X_DEPEND="x11-libs/libICE
x11-libs/libSM
x11-libs/libX11
x11-libs/libXcomposite
x11-libs/libXext
x11-libs/libXfixes
x11-libs/libXi
x11-libs/libXinerama
x11-libs/libXrandr
x11-libs/libxcb
x11-libs/xcb-util
x11-misc/xbitmaps
xpm? ( x11-libs/libXpm )
xft? (
media-libs/fontconfig
media-libs/freetype
x11-libs/libXrender
cairo? ( >=x11-libs/cairo-1.12.18[X] )
!cairo? ( x11-libs/libXft )
harfbuzz? ( media-libs/harfbuzz:0= )
m17n-lib? (
>=dev-libs/libotf-0.9.4
>=dev-libs/m17n-lib-1.5.1
)
)
gtk? (
x11-libs/gtk+:3
xwidgets? (
net-libs/webkit-gtk:4.1=
x11-libs/libXcomposite
)
)
!gtk? (
motif? (
>=x11-libs/motif-2.3:0
x11-libs/libXpm
x11-libs/libXmu
x11-libs/libXt
)
!motif? (
Xaw3d? (
x11-libs/libXaw3d
x11-libs/libXmu
x11-libs/libXt
)
!Xaw3d? ( athena? (
x11-libs/libXaw
x11-libs/libXmu
x11-libs/libXt
) )
)
)"
RDEPEND="app-emacs/emacs-common[games?,gui(-)?]
sys-libs/ncurses:0=
acl? ( virtual/acl )
alsa? ( media-libs/alsa-lib )
dbus? ( sys-apps/dbus )
games? ( acct-group/gamestat )
gmp? ( dev-libs/gmp:0= )
gpm? ( sys-libs/gpm )
!inotify? ( gfile? ( >=dev-libs/glib-2.28.6 ) )
jit? (
sys-devel/gcc:=[jit(-)]
sys-libs/zlib
)
json? ( dev-libs/jansson:= )
kerberos? ( virtual/krb5 )
lcms? ( media-libs/lcms:2 )
libxml2? ( >=dev-libs/libxml2-2.2.0 )
mailutils? ( net-mail/mailutils[clients] )
!mailutils? ( acct-group/mail net-libs/liblockfile )
selinux? ( sys-libs/libselinux )
sqlite? ( dev-db/sqlite:3 )
ssl? ( net-libs/gnutls:0= )
systemd? ( sys-apps/systemd )
tree-sitter? ( dev-libs/tree-sitter )
valgrind? ( dev-debug/valgrind )
zlib? ( sys-libs/zlib )
gui? (
gif? ( media-libs/giflib:0= )
jpeg? ( media-libs/libjpeg-turbo:0= )
png? ( >=media-libs/libpng-1.4:0= )
svg? ( >=gnome-base/librsvg-2.0 )
tiff? ( media-libs/tiff:= )
webp? ( media-libs/libwebp:0= )
imagemagick? ( media-gfx/imagemagick:0=[jpeg?,png?,svg?,tiff?] )
!aqua? (
gsettings? (
app-emacs/emacs-common[gsettings(-)]
>=dev-libs/glib-2.28.6
)
gtk? ( !X? (
media-libs/fontconfig
media-libs/freetype
>=x11-libs/cairo-1.12.18
x11-libs/gtk+:3
harfbuzz? ( media-libs/harfbuzz:0= )
m17n-lib? (
>=dev-libs/libotf-0.9.4
>=dev-libs/m17n-lib-1.5.1
)
xwidgets? ( net-libs/webkit-gtk:4.1= )
) )
!gtk? ( ${X_DEPEND} )
X? ( ${X_DEPEND} )
)
)"
DEPEND="${RDEPEND}
gui? ( !aqua? (
!gtk? ( x11-base/xorg-proto )
X? ( x11-base/xorg-proto )
) )"
BDEPEND="sys-apps/texinfo
virtual/pkgconfig
gzip-el? ( app-arch/gzip )"
IDEPEND="app-eselect/eselect-emacs"
RDEPEND+=" ${IDEPEND}"
EMACS_SUFFIX="emacs-${SLOT}"
SITEFILE="20${EMACS_SUFFIX}-gentoo.el"
# Suppress false positive QA warnings #898304 #925091
QA_CONFIG_IMPL_DECL_SKIP=(
malloc_set_state malloc_get_state MIN static_assert alignof
statvfs64 re_set_syntax re_compile_pattern re_search re_match
)
src_prepare() {
if [[ ${PV##*.} = 9999 ]]; then
FULL_VERSION=$(sed -n 's/^AC_INIT([^,]*,[^0-9.]*\([0-9.]*\).*/\1/p' \
configure.ac)
[[ ${FULL_VERSION} ]] || die "Cannot determine current Emacs version"
einfo "Emacs branch: ${EGIT_BRANCH}"
einfo "Commit: ${EGIT_VERSION}"
einfo "Emacs version number: ${FULL_VERSION}"
[[ ${FULL_VERSION} =~ ^${PV%.*}(\..*)?$ ]] \
|| die "Upstream version number changed to ${FULL_VERSION}"
fi
default
if use jit; then
find lisp -type f -name "*.elc" -delete || die
# These files ignore LDFLAGS. We assign the variable here, because
# for live ebuilds FULL_VERSION doesn't exist in global scope
QA_FLAGS_IGNORED="usr/$(get_libdir)/emacs/${FULL_VERSION}/native-lisp/.*"
# gccjit doesn't play well with ccache or distcc #801580
# For now, work around the problem with an explicit LIBRARY_PATH
has ccache ${FEATURES} || has distcc ${FEATURES} && tc-is-gcc \
&& export LIBRARY_PATH=$("$(tc-getCC)" -print-search-dirs \
| sed -n '/^libraries:/{s:^[^/]*::;p}')
fi
# Fix filename reference in redirected man page
sed -i -e "/^\\.so/s/etags/&-${EMACS_SUFFIX}/" doc/man/ctags.1 || die
# libseccomp is detected by configure but doesn't appear to have any
# effect on the installed image. Suppress it by supplying pkg-config
# with a wrong library name.
sed -i -e "/CHECK_MODULES/s/libseccomp/DiSaBlE&/" configure.ac || die
# Tests that use bubblewrap don't work in the sandbox:
# "bwrap: setting up uid map: Permission denied"
# So, disrupt the search for the bwrap executable.
sed -i -e 's/(executable-find "bwrap")/nil/' test/src/emacs-tests.el \
test/lisp/emacs-lisp/bytecomp-tests.el || die
AT_M4DIR=m4 eautoreconf
}
src_configure() {
local myconf
# Prevents e.g. tests interfering with running Emacs.
unset EMACS_SOCKET_NAME
if use alsa; then
use sound || ewarn \
"USE flag \"alsa\" overrides \"-sound\"; enabling sound support."
myconf+=" --with-sound=alsa"
else
myconf+=" --with-sound=$(usex sound oss)"
fi
if use jit; then
use zlib || ewarn \
"USE flag \"jit\" overrides \"-zlib\"; enabling zlib support."
myconf+=" --with-zlib"
else
myconf+=" $(use_with zlib)"
fi
# Emacs supports these window systems:
# X11, pure GTK (without X11), or Nextstep (Aqua/Cocoa).
# General GUI support is enabled by the "gui" USE flag, then
# the window system is selected as follows:
# "aqua" -> Nextstep
# "gtk -X" -> pure GTK
# otherwise -> X11
# For X11 there is the further choice of toolkits GTK, Motif,
# Athena (Lucid), or no toolkit. They are enabled (in order of
# preference) with the "gtk", "motif", "Xaw3d", and "athena" flags.
if ! use gui; then
einfo "Configuring to build without window system support"
myconf+=" --without-x --without-pgtk --without-ns"
elif use aqua; then
einfo "Configuring to build with Nextstep (Macintosh Cocoa) support"
myconf+=" --with-ns --disable-ns-self-contained"
myconf+=" --without-x --without-pgtk"
elif use gtk && ! use X; then
einfo "Configuring to build with pure GTK (without X11) support"
myconf+=" --with-pgtk --without-x --without-ns"
myconf+=" --with-toolkit-scroll-bars" #836392
myconf+=" --without-gconf"
myconf+=" $(use_with gsettings)"
myconf+=" $(use_with harfbuzz)"
myconf+=" $(use_with m17n-lib libotf)"
myconf+=" $(use_with m17n-lib m17n-flt)"
myconf+=" $(use_with xwidgets)"
else
# X11
myconf+=" --with-x --without-pgtk --without-ns"
myconf+=" --without-gconf"
myconf+=" $(use_with gsettings)"
myconf+=" $(use_with toolkit-scroll-bars)"
myconf+=" $(use_with xpm)"
if use xft; then
myconf+=" --with-xft"
myconf+=" $(use_with cairo)"
myconf+=" $(use_with harfbuzz)"
myconf+=" $(use_with m17n-lib libotf)"
myconf+=" $(use_with m17n-lib m17n-flt)"
else
myconf+=" --without-xft"
myconf+=" --without-cairo"
myconf+=" --without-libotf --without-m17n-flt"
use cairo && ewarn \
"USE flag \"cairo\" has no effect if \"xft\" is not set."
use m17n-lib && ewarn \
"USE flag \"m17n-lib\" has no effect if \"xft\" is not set."
fi
local f line
if use gtk; then
einfo "Configuring to build with GIMP Toolkit (GTK+)"
while read line; do ewarn "${line}"; done <<-EOF
Your version of GTK+ will have problems with closing open
displays. This is no problem if you just use one display, but
if you use more than one and close one of them Emacs may crash.
See <https://gitlab.gnome.org/GNOME/gtk/-/issues/221> and
<https://gitlab.gnome.org/GNOME/gtk/-/issues/2315>.
If you intend to use more than one display, then it is strongly
recommended that you compile Emacs with the Athena/Lucid or the
Motif toolkit instead.
EOF
myconf+=" --with-x-toolkit=gtk3 $(use_with xwidgets)"
for f in motif Xaw3d athena; do
use ${f} && ewarn \
"USE flag \"${f}\" has no effect if \"gtk\" is set."
done
elif use motif; then
einfo "Configuring to build with Motif toolkit"
myconf+=" --with-x-toolkit=motif"
for f in Xaw3d athena; do
use ${f} && ewarn \
"USE flag \"${f}\" has no effect if \"motif\" is set."
done
elif use athena || use Xaw3d; then
einfo "Configuring to build with Athena/Lucid toolkit"
myconf+=" --with-x-toolkit=lucid $(use_with Xaw3d xaw3d)"
else
einfo "Configuring to build with no toolkit"
myconf+=" --with-x-toolkit=no"
fi
! use gtk && use xwidgets && ewarn \
"USE flag \"xwidgets\" has no effect if \"gtk\" is not set."
fi
if use gui; then
# Common flags recognised for all GUIs
myconf+=" $(use_with gif)"
myconf+=" $(use_with jpeg)"
myconf+=" $(use_with png)"
myconf+=" $(use_with svg rsvg)"
myconf+=" $(use_with tiff)"
myconf+=" $(use_with webp)"
myconf+=" $(use_with imagemagick)"
fi
if tc-is-cross-compiler; then
# Configure a CBUILD directory when cross-compiling to make tools
mkdir "${S}-build" && pushd "${S}-build" >/dev/null || die
ECONF_SOURCE="${S}" econf_build --without-all --without-x-toolkit
popd >/dev/null || die
# Don't try to execute the binary for dumping during the build
myconf+=" --with-dumping=none"
elif use m68k; then
# Workaround for https://debbugs.gnu.org/44531
myconf+=" --with-dumping=unexec"
else
myconf+=" --with-dumping=pdumper"
fi
econf \
--program-suffix="-${EMACS_SUFFIX}" \
--includedir="${EPREFIX}"/usr/include/${EMACS_SUFFIX} \
--infodir="${EPREFIX}"/usr/share/info/${EMACS_SUFFIX} \
--localstatedir="${EPREFIX}"/var \
--enable-locallisppath="${EPREFIX}/etc/emacs:${EPREFIX}${SITELISP}" \
--without-compress-install \
--without-hesiod \
--without-pop \
--with-file-notification=$(usev inotify || usev gfile || echo no) \
--with-pdumper \
$(use_enable acl) \
$(use_with dbus) \
$(use_with dynamic-loading modules) \
$(use_with games gameuser ":gamestat") \
$(use_with gmp libgmp) \
$(use_with gpm) \
$(use_with jit native-compilation aot) \
$(use_with json) \
$(use_with kerberos) $(use_with kerberos kerberos5) \
$(use_with lcms lcms2) \
$(use_with libxml2 xml2) \
$(use_with mailutils) \
$(use_with selinux) \
$(use_with sqlite sqlite3) \
$(use_with ssl gnutls) \
$(use_with systemd libsystemd) \
$(use_with threads) \
$(use_with tree-sitter) \
$(use_with wide-int) \
${myconf}
}
src_compile() {
export ac_cv_header_valgrind_valgrind_h=$(usex valgrind)
append-cppflags -DUSE_VALGRIND=$(usex valgrind)
if tc-is-cross-compiler; then
# Build native tools for compiling lisp etc.
emake -C "${S}-build" src
emake lib # Cross-compile dependencies first for timestamps
# Save native build tools in the cross-directory
cp "${S}-build"/lib-src/make-{docfile,fingerprint} lib-src || die
# Specify the native Emacs to compile lisp
EMACS_EMAKE_ARGS=( EMACS="${S}-build/src/emacs" )
emake "${EMACS_EMAKE_ARGS[@]}" actual-all
else
EMACS_EMAKE_ARGS=()
emake
fi
}
src_test() {
# List .el test files with a comment above listing the exact
# subtests which caused failure. Elements should begin with a %.
# e.g. %lisp/gnus/mml-sec-tests.el.
local exclude_tests=(
# Reason: permission denied on /nonexistent
# (vc-*-bzr only fails if breezy is installed, as they
# try to access cache dirs under /nonexistent)
#
# rmail-undigest-test-multipart-mixed-digest
# rmail-undigest-test-rfc1153-less-strict-digest
# rmail-undigest-test-rfc1153-sloppy-digest
# rmail-undigest-test-rfc934-digest
# vc-test-bzr02-state
# vc-test-bzr05-rename-file
# vc-test-bzr06-version-diff
# vc-bzr-test-bug9781
%lisp/mail/undigest-tests.el
%lisp/vc/vc-tests.el
%lisp/vc/vc-bzr-tests.el
# Reason: tries to access network
# internet-is-working
%src/process-tests.el
# Reason: fails with stable version of tree-sitter-json due to
# ast changes. Bug #922525
%src/treesit-tests.log
# Reason: test is not skipped if tree-sitter-tsx is not installed
# Bug #922525
%lisp/progmodes/typescript-ts-mode-tests.el
)
use threads || exclude_tests+=(
%lisp/server-tests.el
%lisp/progmodes/eglot-tests.el
%src/emacs-module-tests.el
%src/keyboard-tests.el
)
use xpm || exclude_tests+=( %src/image-tests.el )
# Some tests hang with gnupg-2.2.42
local gpgver=$(best_version app-crypt/gnupg)
gpgver=${gpgver#*gnupg-}
[[ -n ${gpgver} ]] \
&& ver_test "${gpgver}" -ge 2.2.42 && ver_test "${gpgver}" -lt 2.3 \
&& exclude_tests+=(
%lisp/epg-tests.el
%lisp/gnus/mml-sec-tests.el
)
# Redirect GnuPG's sockets, in order not to exceed the 108 char limit
# for socket paths on Linux.
mkdir "${T}"/gpg || die
local f
for f in browser extra ssh; do
printf "%%Assuan%%\nsocket=%s\n" "${T}/gpg/S.${f}" \
> "test/lisp/gnus/mml-sec-resources/S.gpg-agent.${f}" || die
done
# See test/README for possible options
emake \
EMACS_TEST_VERBOSE=1 \
EXCLUDE_TESTS="${exclude_tests[*]}" \
TEST_BACKTRACE_LINE_LENGTH=nil \
check
}
src_install() {
emake \
"${EMACS_EMAKE_ARGS[@]}" \
DESTDIR="${D}" \
NO_BIN_LINK=t \
BLESSMAIL_TARGET="" \
install
mv "${ED}"/usr/bin/{emacs-${FULL_VERSION}-,}${EMACS_SUFFIX} || die
mv "${ED}"/usr/share/man/man1/{emacs-,}${EMACS_SUFFIX}.1 || die
mv "${ED}"/usr/share/metainfo/{emacs-,}${EMACS_SUFFIX}.metainfo.xml || die
# dissuade Portage from removing our dir file #257260
touch "${ED}"/usr/share/info/${EMACS_SUFFIX}/.keepinfodir
docompress -x /usr/share/info/${EMACS_SUFFIX}/dir
# movemail must be setgid mail
if ! use mailutils; then
fowners root:mail /usr/libexec/emacs/${FULL_VERSION}/${CHOST}/movemail
fperms 2751 /usr/libexec/emacs/${FULL_VERSION}/${CHOST}/movemail
fi
# avoid collision between slots, see bug #169033 e.g.
rm "${ED}"/usr/share/emacs/site-lisp/subdirs.el || die
rm -rf "${ED}"/usr/share/{applications,icons} || die
rm -rf "${ED}"/usr/share/glib-2.0 || die #911117
rm -rf "${ED}/usr/$(get_libdir)/systemd" || die
rm -rf "${ED}"/var || die
# remove unused <version>/site-lisp dir
rm -rf "${ED}"/usr/share/emacs/${FULL_VERSION}/site-lisp || die
# remove COPYING file (except for etc/COPYING used by describe-copying)
rm "${ED}"/usr/share/emacs/${FULL_VERSION}/lisp/COPYING || die
if use systemd; then
insinto /usr/lib/systemd/user
sed -e "/^##/d" \
-e "/^ExecStart/s,emacs,${EPREFIX}/usr/bin/${EMACS_SUFFIX}," \
-e "/^ExecStop/s,emacsclient,${EPREFIX}/usr/bin/&-${EMACS_SUFFIX}," \
etc/emacs.service | newins - ${EMACS_SUFFIX}.service
assert
fi
if use gzip-el; then
# compress .el files when a corresponding .elc exists
find "${ED}"/usr/share/emacs/${FULL_VERSION}/lisp -type f \
-name "*.elc" -print | sed 's/\.elc$/.el/' | xargs gzip -9n
assert "gzip .el failed"
fi
local cdir
if use source; then
cdir="/usr/share/emacs/${FULL_VERSION}/src"
insinto "${cdir}"
# This is not meant to install all the source -- just the
# C source you might find via find-function
doins src/*.{c,h,m}
elif has installsources ${FEATURES}; then
cdir="/usr/src/debug/${CATEGORY}/${PF}/${S#"${WORKDIR}/"}/src"
fi
sed -e "${cdir:+#}/^Y/d" -e "s/^[XY]//" >"${T}/${SITEFILE}" <<-EOF || die
X
;;; ${EMACS_SUFFIX} site-lisp configuration
X
(when (string-match "\\\\\`${FULL_VERSION//./\\\\.}\\\\>" emacs-version)
Y (setq find-function-C-source-directory
Y "${EPREFIX}${cdir}")
X (let ((path (getenv "INFOPATH"))
X (dir "${EPREFIX}/usr/share/info/${EMACS_SUFFIX}")
X (re "\\\\\`${EPREFIX}/usr/share\\\\>"))
X (and path
X ;; move Emacs Info dir before anything else in /usr/share
X (let* ((p (cons nil (split-string path ":" t))) (q p))
X (while (and (cdr q) (not (string-match re (cadr q))))
X (setq q (cdr q)))
X (setcdr q (cons dir (delete dir (cdr q))))
X (setenv "INFOPATH" (mapconcat 'identity (cdr p) ":"))))))
EOF
elisp-site-file-install "${T}/${SITEFILE}" || die
dodoc README BUGS CONTRIBUTE
if use gui && use aqua; then
dodir /Applications/Gentoo
rm -rf "${ED}"/Applications/Gentoo/${EMACS_SUFFIX^}.app || die
mv nextstep/Emacs.app \
"${ED}"/Applications/Gentoo/${EMACS_SUFFIX^}.app || die
fi
local DOC_CONTENTS="You can set the version to be started by
/usr/bin/emacs through the Emacs eselect module, which also
redirects man and info pages. Therefore, several Emacs versions can
be installed at the same time. \"man emacs.eselect\" for details.
\\n\\nIf you upgrade from a previous major version of Emacs, then
it is strongly recommended that you use app-admin/emacs-updater
to rebuild all byte-compiled elisp files of the installed Emacs
packages."
if use gui; then
DOC_CONTENTS+="\\n\\nYou need to install some fonts for Emacs.
Installing media-fonts/font-adobe-{75,100}dpi on the X server's
machine would satisfy basic Emacs requirements under X11.
See also https://wiki.gentoo.org/wiki/Xft_support_for_GNU_Emacs
for how to enable anti-aliased fonts."
use aqua && DOC_CONTENTS+="\\n\\n${EMACS_SUFFIX^}.app is in
\"${EPREFIX}/Applications/Gentoo\". You may want to copy or
symlink it into /Applications by yourself."
fi
tc-is-cross-compiler && DOC_CONTENTS+="\\n\\nEmacs did not write
a portable dump file due to being cross-compiled.
To create this file at run time, execute the following command:
\\n${EMACS_SUFFIX} --batch -Q --eval='(dump-emacs-portable
\"/usr/libexec/emacs/${FULL_VERSION}/${CHOST}/emacs.pdmp\")'"
readme.gentoo_create_doc
}
pkg_preinst() {
# verify that the PM hasn't removed our Info directory index #257260
local infodir="${ED}/usr/share/info/${EMACS_SUFFIX}"
[[ -f ${infodir}/dir || ! -d ${infodir} ]] || die
}
pkg_postinst() {
elisp-site-regen
readme.gentoo_print_elog
if use livecd; then
# force an update of the emacs symlink for the livecd/dvd,
# because some microemacs packages set it with USE=livecd
eselect emacs update
else
eselect emacs update ifunset
fi
}
pkg_postrm() {
elisp-site-regen
eselect emacs update ifunset
}

@ -1,2 +1,3 @@
DIST ghex-44.2.tar.xz 897944 BLAKE2B 0db001b90390f7747792ac89a5daaf9d38165b72dce77c3a2fd41914a4386001b9f15aaf4352a3b41a204a9104a5234a6ac50a3a7269e10a151c000d57228480 SHA512 a06876e06488bb25b17fbdf17ea73e57f563fe49a414c173d680a6bf4db9b66b40fce90ad67cfb73c62f25d88f436a58b7e0fd588c7a664faf78c5058524cabf
DIST ghex-45.0.tar.xz 902480 BLAKE2B 9001be3c01a3f5974606180cede15e753ccda0ec6f4fa77cdaf3aea5030117d303b5cb4fb68dfb09de6aee87d76baf689ae250be457c41b8e4c9d3387b691e90 SHA512 1f6fa7da2e4cfcb89113780d2a0333ee322d608be3e7fccb958ea19a3c3fc368363597b99ff27bd54c929ab3e3afdb5d5f1dbe810d3ec04d9dd2c114bfc71c0f
DIST ghex-45.2.tar.xz 902616 BLAKE2B 24e42b6d719280ab459d0ed7b96a502df7a5502e3d6cf385c0aa73b11808e40cac6112a3e0c3a228d5363578ccb875836efd8a13d6fc6c7e8ea4fe5a76bdb9c7 SHA512 2843b23a0673457ec72bd2aad20888fbc2ca890d3d859e6c2657af24cedc6185f6e11244574b603c0e32db2f54968e6584adf2c7e5abee84521c55148f536496

@ -0,0 +1,66 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit gnome.org gnome2-utils meson xdg
DESCRIPTION="GNOME hexadecimal editor"
HOMEPAGE="https://wiki.gnome.org/Apps/Ghex"
if [[ ${PV} == 9999 ]]; then
inherit git-r3
EGIT_REPO_URI="https://gitlab.gnome.org/GNOME/ghex.git"
SRC_URI=""
else
KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86 ~amd64-linux ~x86-linux"
fi
LICENSE="GPL-2+ FDL-1.1+"
IUSE="gtk-doc test"
RESTRICT="!test? ( test )"
SLOT="4"
RDEPEND="
>=dev-libs/glib-2.68.0:2
>=gui-libs/gtk-4.4.0:4[introspection]
gui-libs/libadwaita:1
dev-libs/gobject-introspection
!app-editors/ghex:2
"
DEPEND="${RDEPEND}"
BDEPEND="
gtk-doc? ( dev-util/gi-docgen )
test? (
dev-util/desktop-file-utils
dev-libs/appstream-glib
)
dev-util/gtk-update-icon-cache
dev-util/itstool
>=sys-devel/gettext-0.19.8
virtual/pkgconfig
"
src_configure() {
local emesonargs=(
-Ddocdir="${EPREFIX}"/usr/share/gtk-doc/
-Ddevelopment=false
-Dmmap-buffer-backend=true
-Ddirect-buffer-backend=true
-Dintrospection=enabled
$(meson_use gtk-doc gtk_doc)
-Dstatic-html-help=false
-Dvapi=false
)
meson_src_configure
}
pkg_postinst() {
xdg_pkg_postinst
gnome2_schemas_update
}
pkg_postrm() {
xdg_pkg_postrm
gnome2_schemas_update
}

@ -14,7 +14,7 @@ HOMEPAGE="https://ghostwriter.kde.org/"
LICENSE="GPL-3+"
SLOT="0"
KEYWORDS="amd64 arm64 ~ppc64 ~x86"
KEYWORDS="amd64 arm64 ~x86"
IUSE=""
RDEPEND="

@ -14,7 +14,7 @@ HOMEPAGE="https://ghostwriter.kde.org/"
LICENSE="GPL-3+"
SLOT="0"
KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
KEYWORDS="~amd64 ~arm64 ~x86"
IUSE=""
RDEPEND="

Binary file not shown.

@ -1,3 +1,2 @@
DIST cmake-3.28.1.tar.gz 11065923 BLAKE2B 7c6d3876633024b8a22dd6aca078e4bd7649c18a810ada68378435e9cfc30878b89529dc69e6e2dcecd114c9686fe6ce937fa5587e47f00128504349cecb967b SHA512 62693c423dd46d252d046662ac34cf9c927b7ec23c213c6b5cd1683636b8bbb5326698af1e7f851f3c01fe3f14dd769b9a8bd405f8f9e73e6d8defae7517cbcb
DIST cmake-3.28.2.tar.gz 11067468 BLAKE2B 59941152814af141cdbea5a649d809cb86edaf2f460a493278872cb0dcff45ea2c68d7e783cd4bc4b369bf4d41175aee6d49a4e2b983877700be933340f6596b SHA512 225f6d3eb56d41c449a32f7c3e0f8f3ffafbbf45474e29ad86e965a87f8d95e55e87affc62ef0a7b25c9fb070c6fca08e9838539e5f7011dc3ee83787025151b
DIST cmake-3.28.3.tar.gz 11067653 BLAKE2B a329c7cd80e8e74d11ec2a8b377857b1ae8c4c50a792f982803fcc6a00f531ecb7ac2dd7ccad34968b3e3efc14933085b51425974fc5ee29b6c49c2da5ceeaf4 SHA512 66e923925b764e1fe3d150c69dab3e0abd9e0c90d8e30cab63c3a1f70c3e37df0a5e3ff12b378eeae3bdc6608495f41399e6f81602e26b513b19fa19ff6c48fc
DIST cmake-3.29.0.tar.gz 11244341 BLAKE2B 76244cfc6222ce23dbddc9bb3aa51d98d00826d6fa19d86b836f63977c56f0cae11cd592efa1c727e8872fea1e6365a3b67a37e80e588fbf4189f7ec07c2f6e1 SHA512 abcca7a4db221d98864b77220445f0b70f87149626d3162ed49636862b87514b2640318438c0c711bfaafa1aba4d049b55f98e6ac28c44545543986c35fbd062

@ -1,29 +0,0 @@
# Copyright 2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit elisp
MY_P="${P/-mode}"
MY_P="${MY_P/_/-}"
DESCRIPTION="GNU Emacs mode for handling CMake build files"
HOMEPAGE="https://cmake.org/"
SRC_URI="https://cmake.org/files/v$(ver_cut 1-2)/${MY_P}.tar.gz"
S="${WORKDIR}"/${P/-mode}/Auxiliary
LICENSE="BSD"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
RDEPEND="!dev-build/cmake[emacs(-)]"
DOCS=()
SITEFILE="50${PN/-mode}-gentoo.el"
src_install() {
elisp_src_install
elisp-site-file-install "${FILESDIR}/${SITEFILE}"
}

@ -1 +1,2 @@
DIST company-mode-0.10.1.tar.gz 2199879 BLAKE2B 01001537447849ea6a83bc90096945deef76e8b68d2d9d576e4de0742b84ceb4043db5556d548fe3e9d1b187c2dad577fa7364007958e848f52af7f105226348 SHA512 38abeab8a107b36a8ff69c981099d970eb4a9c9004d95414e65510200b9e6ec034b2ed1dc91e2a3cdac620db605297ae090fe75af152be725bc610e582c76e06
DIST company-mode-0.10.2.tar.gz 2199965 BLAKE2B f5c931fd128543780a3f61f7f25bc0ac58bdc2e974390482374728b9a6059f35562cc2a201484cb3670bdc6dec63eb423b0c7714605df6457da0fa54008a5a4a SHA512 343ddc7cdeb1b6705a4a2a44979f3940034b32c8725eda2cc29673669737dc8d96d266bd2d44755901665706d0b34abc9e3665e24016f55c1646219029796ade

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save