parent
ca2aac94e3
commit
45d612401c
Binary file not shown.
Binary file not shown.
@ -1,3 +1,6 @@
|
||||
DIST aws-cli-1.32.74.gh.tar.gz 2682208 BLAKE2B aba8be6e597a6d07197bd06d51f167f7a2dbed317c630572585cd006f6edfceac054726a20afe20faf6de381cbb75e352a7d6ab9e232b6e669fd59ca5888e122 SHA512 2f19b7c383c91528f15b93b00df285bdf32685c08e41e4f8f3a62cbbd5cff2615ca98c5eb925a5a2a2d13b452a0a08658749f4f7a48045a537ee7ec7e23cd663
|
||||
DIST aws-cli-1.32.79.gh.tar.gz 2685785 BLAKE2B 3bbfad927d9d882e6b502f47919ce963df498c614a92730c5d6b1fb4efd7a8bd805a5c8cc82c705b97d8ee0ddbee4d6ddfa9cb46661fe7e9337add53bda3d9a1 SHA512 e0e369b6a5fca4d72365e54ef99c862e2d6f68caed61ac431516777e82ec8b292cf50516f379d8e94787b2a0ee58ad6e68d0951624f1ed742079295c4d2987ce
|
||||
DIST aws-cli-1.32.84.gh.tar.gz 2691519 BLAKE2B 4cb78f14975d74013803af0f6397d959294cca6046ee19c1a907ca3e60fd224539d39535416ddcc2713b1de653b78ba03965dc78415dd915e80d11fcd6fbe02f SHA512 19d2030201806b336ede2c5e09f761e39959a156057d68316180145232e54013f2e5fa57023146488d407aa7e655fdb2245058e45eb5c4d6778eecd867f6eac1
|
||||
DIST aws-cli-1.32.85.gh.tar.gz 2692681 BLAKE2B 1b74cd51dd71ce01b492f21de40d25e7ea4b2e3e3572cf2346b0fd293a4ba2dbb870acb1f0b2f41494f5fb065d5eb20c6e3f98a4035d7426bf6926535c8ef83e SHA512 7f471978f4a306944d30ad2cacd3feaea6a821be79aa814300a2833824328414f878ee2d0a6d42371d38e3d841530be7f25f0e14b81360e81182d9c9e35227b5
|
||||
DIST aws-cli-1.32.86.gh.tar.gz 2692809 BLAKE2B b0c9956d7b2b81f05b8f59ccbcd14baca3acb9f006ac965d0df06d86309bdd4d71c430514d22ef5c5c871e6009a174e8abc25b47ab8cd4471230e301bc0e50a1 SHA512 ab689fc5997bd14223e76307c1c4609950b5e4a62932163bd68d8a4d7a9c09db55b17c4377cba3901cd9518ac2b6ccc191fd9c7692dd0e188bfdd475bfcfc0ac
|
||||
DIST aws-cli-1.32.87.gh.tar.gz 2692945 BLAKE2B 5c22caaad9f9134013e96a665681de698510b77048dbbd2f84748b5dc3283dfc2f34aa62e8669265fe8e686e8497ab72d67bb401a343d9f036eb6ba2558cd0ff SHA512 48779efe4d2ee34e5f145fdf753619fd39ef48085705d7fe67e6b0d51c70fc2b0a43eb4a7d07c4d9befeb596d9c59b8725eea9b9619ac614b4cdd6dbdacc81a4
|
||||
|
@ -0,0 +1,90 @@
|
||||
# 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
|
||||
}
|
@ -0,0 +1,90 @@
|
||||
# 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
|
||||
}
|
@ -0,0 +1,90 @@
|
||||
# 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,2 +1,3 @@
|
||||
DIST Bitwarden-2024.2.0-amd64.deb 79917282 BLAKE2B 2066dc71bed9cddbcedccfd9129e3e81ac9f8a71217d2c651fb8a067b3e318574e26104b447a7ccd6734efded64ef3620cf4a7e36f0a577ed98f5468839540cb SHA512 c9394914fd6c82096fc5336e73b539e250727c6917af97961df0bd7de241f955b9eb87da154f32972c73ea1ce59bf0d79660658277185c89e099360ec4c3ea26
|
||||
DIST Bitwarden-2024.3.0-amd64.deb 80463348 BLAKE2B 668fd4c18507b349e5892e7511b4898764a33d9da0a837379c7856caa054782fbf6a3337b03a779a8c8111d2458f560b31c32856850ff931694a8f18d889bdc9 SHA512 9297367e82e76870b7f12becfca6ec3bc0ce8f6515f4e17e9830d4df599891c839a8f5990c97b684528c8a4ad1c24ddd3bc99c1552620aee84b81c1cbf115771
|
||||
DIST Bitwarden-2024.4.1-amd64.deb 80470012 BLAKE2B 64b451c3fbbac303782c68a366c66c32c49d0ecb52bcbc085451157216cc99fa888941e8c911c14f6a68aa6bb0413463b4296f108386e7b5b3ca8925c6dcc871 SHA512 e6edcd84f44062ccfa4152baf7dab230915d006f7f31de0ffcbe1acb62525777c7d653a7cb7c51509fb9ebcf5ba4219df97e5128853813a54aadbfd92ff2c819
|
||||
|
@ -0,0 +1,87 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit desktop unpacker xdg-utils
|
||||
|
||||
MY_PN="Bitwarden"
|
||||
|
||||
DESCRIPTION="Bitwarden password manager desktop client"
|
||||
HOMEPAGE="https://bitwarden.com/"
|
||||
SRC_URI="https://github.com/bitwarden/clients/releases/download/desktop-v${PV}/Bitwarden-${PV}-amd64.deb"
|
||||
S="${WORKDIR}"
|
||||
|
||||
LICENSE="GPL-3"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64"
|
||||
|
||||
RDEPEND="
|
||||
>=app-accessibility/at-spi2-core-2.46.0:2
|
||||
app-crypt/libsecret
|
||||
dev-libs/expat
|
||||
dev-libs/glib
|
||||
dev-libs/nspr
|
||||
dev-libs/nss
|
||||
dev-libs/wayland
|
||||
media-libs/alsa-lib
|
||||
media-libs/mesa
|
||||
net-print/cups
|
||||
sys-apps/dbus
|
||||
sys-apps/util-linux
|
||||
sys-libs/glibc
|
||||
x11-libs/cairo
|
||||
x11-libs/gdk-pixbuf:2
|
||||
x11-libs/gtk+:3
|
||||
x11-libs/libdrm
|
||||
x11-libs/libX11
|
||||
x11-libs/libxcb
|
||||
x11-libs/libXcomposite
|
||||
x11-libs/libXcursor
|
||||
x11-libs/libXdamage
|
||||
x11-libs/libXext
|
||||
x11-libs/libXfixes
|
||||
x11-libs/libXi
|
||||
x11-libs/libxkbcommon
|
||||
x11-libs/libXrandr
|
||||
x11-libs/libXrender
|
||||
x11-libs/libXScrnSaver
|
||||
x11-libs/libxshmfence
|
||||
x11-libs/libXtst
|
||||
x11-libs/pango
|
||||
"
|
||||
IDEPEND="
|
||||
dev-util/desktop-file-utils
|
||||
dev-util/gtk-update-icon-cache
|
||||
"
|
||||
|
||||
QA_PREBUILT="
|
||||
opt/Bitwarden/*.so*
|
||||
opt/Bitwarden/bitwarden
|
||||
opt/Bitwarden/chrome-sandbox
|
||||
opt/Bitwarden/chrome_crashpad_handler
|
||||
"
|
||||
|
||||
src_install() {
|
||||
insinto /opt
|
||||
doins -r opt/${MY_PN}
|
||||
fperms 755 /opt/Bitwarden/bitwarden
|
||||
fperms 4755 /opt/Bitwarden/chrome-sandbox
|
||||
|
||||
domenu usr/share/applications/bitwarden.desktop
|
||||
|
||||
local x
|
||||
for x in 16 32 64 128 256 512; do
|
||||
doicon -s ${x} usr/share/icons/hicolor/${x}*/*
|
||||
done
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
xdg_desktop_database_update
|
||||
xdg_icon_cache_update
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
xdg_desktop_database_update
|
||||
xdg_icon_cache_update
|
||||
}
|
@ -1,2 +1,3 @@
|
||||
DIST linode-cli-5.47.1.tar.gz 128364 BLAKE2B db21cdd9a1bfbe17fb17b8b0e27ca36bb15c7d3b16ddde4dcc59a9ce64cd34d644d3d5d120efb88bb146767cf9b2c3ee820a847a2fcff487a11bc3abd6973870 SHA512 b61ac1e7c97a1395b150227fe822bc2e7199ed15a44c6d93d71bfdbc2f919827e87e89cf41a47b069be06144a849f5ab11c9dd7f38d138f80ce80563f55bf75a
|
||||
DIST linode-cli-5.48.3.tar.gz 142927 BLAKE2B 48ae197d780f77a7a4dbf54d4e9959d28c117d90e052f401f563f1557dc11155afc5d16da1140e9ed2828fa3e19243e91205759636247d2fb893383975d89f43 SHA512 9efd3f0392848ebcd896becff191e94c90cbec01cc2b805c0262ecb3c40c51346d0b42891ddaadb9191d75e379083f68e4c9aa35f9ba7c6309c74ae3febbde7a
|
||||
DIST linode_cli-5.48.4.tar.gz 142928 BLAKE2B 28b1c90bb0709afc594b7023ef846b6d59e0376730f05d9701ebbc6744376f33536ad5a6f53b7b26a25805b258dc58378a76b0e6a4157e149f83e691d862dec8 SHA512 b07a3612afc329fc346b523412ac03932c84213d6bc23726f4c0e5edc737100bf65ec84f8131943439444fee268646789dc4d135cd61b2362311d1ab18601c3e
|
||||
|
@ -0,0 +1,30 @@
|
||||
# Copyright 2023-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
PYTHON_COMPAT=( python3_{10..12} )
|
||||
DISTUTILS_USE_PEP517=setuptools
|
||||
inherit distutils-r1 pypi
|
||||
|
||||
DESCRIPTION="Linode Command Line Interface"
|
||||
HOMEPAGE="https://github.com/linode/linode-cli https://www.linode.com/"
|
||||
|
||||
LICENSE="BSD"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64"
|
||||
|
||||
# Tests require network, a linode account and an API key.
|
||||
# WARNING: tests will incur costs and will wipe the account.
|
||||
RESTRICT="test"
|
||||
|
||||
RDEPEND="
|
||||
dev-python/boto3[${PYTHON_USEDEP}]
|
||||
dev-python/linode-metadata[${PYTHON_USEDEP}]
|
||||
dev-python/openapi3[${PYTHON_USEDEP}]
|
||||
dev-python/packaging[${PYTHON_USEDEP}]
|
||||
dev-python/pyyaml[${PYTHON_USEDEP}]
|
||||
dev-python/requests[${PYTHON_USEDEP}]
|
||||
dev-python/rich[${PYTHON_USEDEP}]
|
||||
<dev-python/urllib3-3[${PYTHON_USEDEP}]
|
||||
"
|
@ -0,0 +1,11 @@
|
||||
--- a/WebappConfig/protect.py
|
||||
+++ b/WebappConfig/protect.py
|
||||
@@ -78,7 +78,7 @@
|
||||
|
||||
numbers = []
|
||||
prefix = self.protect_prefix
|
||||
- rep = re.compile(prefix.replace('.','\.') + '(\d{4})_')
|
||||
+ rep = re.compile(prefix.replace('.',r'\.') + r'(\d{4})_')
|
||||
|
||||
for i in entries:
|
||||
rem = rep.match(i)
|
@ -0,0 +1,91 @@
|
||||
# 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 distutils-r1 prefix
|
||||
|
||||
if [[ ${PV} = 9999* ]]
|
||||
then
|
||||
EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/${PN}.git"
|
||||
inherit git-r3
|
||||
else
|
||||
SRC_URI="https://dev.gentoo.org/~ceamac/${CATEGORY}/${PN}/${P}.tar.bz2"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
|
||||
fi
|
||||
|
||||
DESCRIPTION="Gentoo's installer for web-based applications"
|
||||
HOMEPAGE="https://sourceforge.net/projects/webapp-config/"
|
||||
|
||||
LICENSE="GPL-2"
|
||||
SLOT="0"
|
||||
IUSE="+portage"
|
||||
|
||||
DEPEND="app-text/xmlto
|
||||
sys-apps/gentoo-functions"
|
||||
RDEPEND="
|
||||
portage? ( sys-apps/portage[${PYTHON_USEDEP}] )"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/webapp-config-1.55-py3.122-invalid-escape-sequence.patch
|
||||
)
|
||||
|
||||
python_prepare_all() {
|
||||
# make the source from svn mirror the one in the tarball
|
||||
if [[ ${PV} == 9999* ]]; then
|
||||
mkdir ../webapp-config || die "Cannot create temp directory."
|
||||
cp -r * ../webapp-config || die "Cannot copy all into the temp directory."
|
||||
mv ../webapp-config . || die "Cannot move temp directory to its final position."
|
||||
|
||||
# Installation fails if version is 1.55-git
|
||||
sed -e 's/-git//' \
|
||||
-i webapp-config/WebappConfig/version.py \
|
||||
-i WebappConfig/version.py || die "Cannot fix version."
|
||||
fi
|
||||
|
||||
distutils-r1_python_prepare_all
|
||||
eprefixify WebappConfig/eprefix.py config/webapp-config
|
||||
}
|
||||
|
||||
python_compile_all() {
|
||||
emake -C doc/
|
||||
}
|
||||
|
||||
python_test() {
|
||||
PYTHONPATH="." "${EPYTHON}" WebappConfig/tests/external.py -v ||
|
||||
die "Testing failed with ${EPYTHON}"
|
||||
}
|
||||
|
||||
python_install() {
|
||||
# According to this discussion:
|
||||
# http://mail.python.org/pipermail/distutils-sig/2004-February/003713.html
|
||||
# distutils does not provide for specifying two different script install
|
||||
# locations. Since we only install one script here the following should
|
||||
# be ok
|
||||
distutils-r1_python_install --install-scripts="${EPREFIX}/usr/sbin"
|
||||
}
|
||||
|
||||
python_install_all() {
|
||||
distutils-r1_python_install_all
|
||||
|
||||
# distutils-r1 installs the scripts in /usr/bin in PEP517 mode
|
||||
mv "${ED}"/usr/bin "${ED}"/usr/sbin || die "Cannot rename scripts directory to /usr/sbin"
|
||||
|
||||
insinto /etc/vhosts
|
||||
doins config/webapp-config
|
||||
|
||||
keepdir /usr/share/webapps
|
||||
keepdir /var/db/webapps
|
||||
|
||||
dodoc AUTHORS
|
||||
doman doc/*.[58]
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
elog "Now that you have upgraded webapp-config, you **must** update your"
|
||||
elog "config files in /etc/vhosts/webapp-config before you emerge any"
|
||||
elog "packages that use webapp-config."
|
||||
}
|
@ -1,13 +0,0 @@
|
||||
diff --git a/setup.py b/setup.py
|
||||
index 2f35f86..eed1e7b 100644
|
||||
--- a/setup.py
|
||||
+++ b/setup.py
|
||||
@@ -11,7 +11,7 @@ setup(
|
||||
description='Generate secure multiword passwords/passphrases, inspired by XKCD',
|
||||
long_description=open('README.rst', encoding='utf-8').read(),
|
||||
#packages=['xkcdpass'],
|
||||
- packages=find_namespace_packages(exclude=["*.tests", "*.tests.*", "tests.*", "tests"]),
|
||||
+ packages=find_namespace_packages(exclude=["examples", "*.tests", "*.tests.*", "tests.*", "tests"]),
|
||||
zip_safe=False,
|
||||
license='BSD',
|
||||
include_package_data=True,
|
Binary file not shown.
@ -0,0 +1,400 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
LLVM_MAX_SLOT=13
|
||||
PYTHON_COMPAT=( python3_{10..12} )
|
||||
|
||||
# Auto-Generated by cargo-ebuild 0.5.4-r1
|
||||
CRATES="
|
||||
adler@1.0.2
|
||||
autocfg@1.1.0
|
||||
bindgen@0.65.1
|
||||
bit_field@0.10.1
|
||||
bitflags@1.3.2
|
||||
block-buffer@0.10.3
|
||||
bumpalo@3.12.0
|
||||
bytemuck@1.13.0
|
||||
byteorder@1.4.3
|
||||
cbindgen@0.20.0
|
||||
cc@1.0.83
|
||||
cexpr@0.6.0
|
||||
cfg-if@1.0.0
|
||||
clang-sys@1.4.0
|
||||
color_quant@1.1.0
|
||||
cpufeatures@0.2.5
|
||||
crc32fast@1.3.2
|
||||
crossbeam-channel@0.5.8
|
||||
crossbeam-deque@0.8.2
|
||||
crossbeam-epoch@0.9.13
|
||||
crossbeam-utils@0.8.14
|
||||
crunchy@0.2.2
|
||||
crypto-common@0.1.6
|
||||
digest@0.10.6
|
||||
either@1.8.1
|
||||
errno@0.3.3
|
||||
errno-dragonfly@0.1.2
|
||||
exr@1.5.3
|
||||
fastrand@1.8.0
|
||||
fdeflate@0.3.4
|
||||
flate2@1.0.25
|
||||
flume@0.10.14
|
||||
futures-core@0.3.26
|
||||
futures-sink@0.3.26
|
||||
generic-array@0.14.6
|
||||
getrandom@0.2.8
|
||||
gif@0.11.4
|
||||
glob@0.3.1
|
||||
half@2.2.1
|
||||
hashbrown@0.12.3
|
||||
heck@0.3.3
|
||||
hermit-abi@0.2.6
|
||||
hermit-abi@0.3.3
|
||||
hex@0.4.3
|
||||
image@0.24.5
|
||||
indexmap@1.9.2
|
||||
instant@0.1.12
|
||||
io-lifetimes@1.0.11
|
||||
itoa@1.0.5
|
||||
jpeg-decoder@0.3.0
|
||||
js-sys@0.3.61
|
||||
lazy_static@1.4.0
|
||||
lazycell@1.3.0
|
||||
lebe@0.5.2
|
||||
libc@0.2.139
|
||||
libloading@0.7.4
|
||||
linux-raw-sys@0.1.4
|
||||
lock_api@0.4.9
|
||||
log@0.4.17
|
||||
memchr@2.5.0
|
||||
memoffset@0.7.1
|
||||
minimal-lexical@0.2.1
|
||||
miniz_oxide@0.6.2
|
||||
miniz_oxide@0.7.2
|
||||
nanorand@0.7.0
|
||||
nom@7.1.3
|
||||
num-complex@0.4.3
|
||||
num-integer@0.1.45
|
||||
num-rational@0.4.1
|
||||
num-traits@0.2.15
|
||||
num_cpus@1.15.0
|
||||
once_cell@1.17.0
|
||||
peeking_take_while@0.1.2
|
||||
pin-project@1.0.12
|
||||
pin-project-internal@1.0.12
|
||||
png@0.17.13
|
||||
prettyplease@0.2.4
|
||||
primal-check@0.3.3
|
||||
proc-macro2@1.0.66
|
||||
quote@1.0.26
|
||||
rayon@1.6.1
|
||||
rayon-core@1.10.2
|
||||
redox_syscall@0.2.16
|
||||
regex@1.7.1
|
||||
regex-syntax@0.6.28
|
||||
rustc-hash@1.1.0
|
||||
rustdct@0.7.1
|
||||
rustfft@6.1.0
|
||||
rustix@0.36.15
|
||||
ryu@1.0.12
|
||||
scoped_threadpool@0.1.9
|
||||
scopeguard@1.1.0
|
||||
serde@1.0.152
|
||||
serde_derive@1.0.152
|
||||
serde_json@1.0.93
|
||||
sha2@0.10.6
|
||||
shlex@1.3.0
|
||||
simd-adler32@0.3.4
|
||||
smallvec@1.10.0
|
||||
spin@0.9.8
|
||||
strength_reduce@0.2.4
|
||||
syn@1.0.107
|
||||
syn@2.0.15
|
||||
tempfile@3.4.0
|
||||
thiserror@1.0.38
|
||||
thiserror-impl@1.0.38
|
||||
threadpool@1.8.1
|
||||
tiff@0.8.1
|
||||
toml@0.5.11
|
||||
transpose@0.2.3
|
||||
typenum@1.16.0
|
||||
unicode-ident@1.0.6
|
||||
unicode-segmentation@1.10.1
|
||||
version_check@0.9.4
|
||||
wasi@0.11.0+wasi-snapshot-preview1
|
||||
wasm-bindgen@0.2.84
|
||||
wasm-bindgen-backend@0.2.84
|
||||
wasm-bindgen-macro@0.2.84
|
||||
wasm-bindgen-macro-support@0.2.84
|
||||
wasm-bindgen-shared@0.2.84
|
||||
weezl@0.1.7
|
||||
which@4.4.0
|
||||
winapi@0.3.9
|
||||
winapi-i686-pc-windows-gnu@0.4.0
|
||||
winapi-x86_64-pc-windows-gnu@0.4.0
|
||||
windows-sys@0.42.0
|
||||
windows-sys@0.45.0
|
||||
windows-sys@0.48.0
|
||||
windows-targets@0.42.2
|
||||
windows-targets@0.48.5
|
||||
windows_aarch64_gnullvm@0.42.2
|
||||
windows_aarch64_gnullvm@0.48.5
|
||||
windows_aarch64_msvc@0.42.2
|
||||
windows_aarch64_msvc@0.48.5
|
||||
windows_i686_gnu@0.42.2
|
||||
windows_i686_gnu@0.48.5
|
||||
windows_i686_msvc@0.42.2
|
||||
windows_i686_msvc@0.48.5
|
||||
windows_x86_64_gnu@0.42.2
|
||||
windows_x86_64_gnu@0.48.5
|
||||
windows_x86_64_gnullvm@0.42.2
|
||||
windows_x86_64_gnullvm@0.48.5
|
||||
windows_x86_64_msvc@0.42.2
|
||||
windows_x86_64_msvc@0.48.5
|
||||
zune-inflate@0.2.42
|
||||
"
|
||||
|
||||
inherit cargo cmake flag-o-matic llvm python-any-r1 systemd tmpfiles
|
||||
|
||||
MY_P=${P//_/-}
|
||||
|
||||
DESCRIPTION="Clam Anti-Virus Scanner"
|
||||
HOMEPAGE="https://www.clamav.net/"
|
||||
SRC_URI="https://github.com/Cisco-Talos/clamav/archive/refs/tags/${MY_P}.tar.gz
|
||||
${CARGO_CRATE_URIS}"
|
||||
S=${WORKDIR}/clamav-${MY_P}
|
||||
|
||||
LICENSE="Apache-2.0 BSD GPL-2 ISC MIT MPL-2.0 Unicode-DFS-2016 ZLIB"
|
||||
SLOT="0/lts"
|
||||
if [[ ${PV} != *_rc* ]] ; then
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos"
|
||||
fi
|
||||
|
||||
IUSE="doc clamonacc +clamapp experimental jit libclamav-only milter rar selinux +system-mspack systemd test"
|
||||
|
||||
REQUIRED_USE="libclamav-only? ( !clamonacc !clamapp !milter )
|
||||
clamonacc? ( clamapp )
|
||||
milter? ( clamapp )
|
||||
test? ( !libclamav-only )"
|
||||
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
# Require acct-{user,group}/clamav at build time so that we can set
|
||||
# the permissions on /var/lib/clamav in src_install rather than in
|
||||
# pkg_postinst; calling "chown" on the live filesystem scares me.
|
||||
COMMON_DEPEND="
|
||||
acct-group/clamav
|
||||
acct-user/clamav
|
||||
app-arch/bzip2
|
||||
dev-libs/json-c:=
|
||||
dev-libs/libltdl
|
||||
dev-libs/libpcre2:=
|
||||
dev-libs/libxml2
|
||||
dev-libs/openssl:=
|
||||
>=sys-libs/zlib-1.2.2:=
|
||||
virtual/libiconv
|
||||
!libclamav-only? ( net-misc/curl )
|
||||
clamapp? ( sys-libs/ncurses:= net-misc/curl )
|
||||
elibc_musl? ( sys-libs/fts-standalone )
|
||||
jit? ( <sys-devel/llvm-$((${LLVM_MAX_SLOT} + 1)):= )
|
||||
milter? ( mail-filter/libmilter:= )
|
||||
rar? ( app-arch/unrar )
|
||||
system-mspack? ( dev-libs/libmspack )
|
||||
test? ( dev-python/pytest )
|
||||
"
|
||||
|
||||
# rust-bin < 1.71 has an executable stack
|
||||
# which is not supported on selinux #911589
|
||||
BDEPEND="
|
||||
virtual/pkgconfig
|
||||
>=virtual/rust-1.71
|
||||
doc? ( app-text/doxygen )
|
||||
test? (
|
||||
${PYTHON_DEPS}
|
||||
$(python_gen_any_dep 'dev-python/pytest[${PYTHON_USEDEP}]')
|
||||
)
|
||||
"
|
||||
|
||||
DEPEND="${COMMON_DEPEND}
|
||||
test? ( dev-libs/check )"
|
||||
|
||||
RDEPEND="${COMMON_DEPEND}
|
||||
selinux? ( sec-policy/selinux-clamav )"
|
||||
|
||||
python_check_deps() {
|
||||
python_has_version -b "dev-python/pytest[${PYTHON_USEDEP}]"
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
use jit && llvm_pkg_setup
|
||||
use test && python-any-r1_pkg_setup
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
use elibc_musl && append-ldflags -lfts
|
||||
use ppc64 && append-flags -mminimal-toc
|
||||
|
||||
local mycmakeargs=(
|
||||
-DAPP_CONFIG_DIRECTORY="${EPREFIX}"/etc/clamav
|
||||
-DBYTECODE_RUNTIME=$(usex jit llvm interpreter)
|
||||
-DCLAMAV_GROUP="clamav"
|
||||
-DCLAMAV_USER="clamav"
|
||||
-DDATABASE_DIRECTORY="${EPREFIX}"/var/lib/clamav
|
||||
-DENABLE_APP=$(usex clamapp ON OFF)
|
||||
-DENABLE_CLAMONACC=$(usex clamonacc ON OFF)
|
||||
-DENABLE_DOXYGEN=$(usex doc)
|
||||
-DENABLE_EXPERIMENTAL=$(usex experimental ON OFF)
|
||||
-DENABLE_EXTERNAL_MSPACK=$(usex system-mspack ON OFF)
|
||||
-DENABLE_JSON_SHARED=ON
|
||||
-DENABLE_MAN_PAGES=ON
|
||||
-DENABLE_MILTER=$(usex milter ON OFF)
|
||||
-DENABLE_SHARED_LIB=ON
|
||||
-DENABLE_STATIC_LIB=OFF
|
||||
-DENABLE_SYSTEMD=$(usex systemd ON OFF)
|
||||
-DENABLE_TESTS=$(usex test ON OFF)
|
||||
-DENABLE_UNRAR=$(usex rar ON OFF)
|
||||
-DOPTIMIZE=ON
|
||||
)
|
||||
|
||||
if use test ; then
|
||||
# https://bugs.gentoo.org/818673
|
||||
# Used to enable some more tests but doesn't behave well in
|
||||
# sandbox necessarily(?) + needs certain debug symbols present
|
||||
# in e.g. glibc.
|
||||
mycmakeargs+=(
|
||||
-DCMAKE_DISABLE_FIND_PACKAGE_Valgrind=ON
|
||||
-DPYTHON_FIND_VERSION="${EPYTHON#python}"
|
||||
)
|
||||
fi
|
||||
|
||||
if use jit ; then
|
||||
# Suppress CMake warnings that variables aren't consumed if we aren't using LLVM
|
||||
# https://github.com/Cisco-Talos/clamav/blob/main/INSTALL.md#llvm-optional-see-bytecode-runtime-section
|
||||
# https://github.com/Cisco-Talos/clamav/blob/main/INSTALL.md#bytecode-runtime
|
||||
mycmakeargs+=(
|
||||
-DLLVM_ROOT_DIR="$(get_llvm_prefix -d ${LLVM_MAX_SLOT})"
|
||||
-DLLVM_FIND_VERSION="$(best_version sys-devel/llvm:${LLVM_MAX_SLOT} | cut -c 16-)"
|
||||
)
|
||||
fi
|
||||
|
||||
cmake_src_configure
|
||||
}
|
||||
|
||||
src_install() {
|
||||
cmake_src_install
|
||||
# init scripts
|
||||
newinitd "${FILESDIR}/clamd.initd" clamd
|
||||
newinitd "${FILESDIR}/freshclam.initd" freshclam
|
||||
use clamonacc && \
|
||||
newinitd "${FILESDIR}/clamonacc.initd" clamonacc
|
||||
use milter && \
|
||||
newinitd "${FILESDIR}/clamav-milter.initd" clamav-milter
|
||||
|
||||
if ! use libclamav-only ; then
|
||||
if use systemd ; then
|
||||
# The tmpfiles entry is behind USE=systemd because the
|
||||
# upstream OpenRC service files should (and do) ensure that
|
||||
# the directories they need exist and have the correct
|
||||
# permissions without the help of opentmpfiles. There are
|
||||
# years-old root exploits in opentmpfiles, the design is
|
||||
# fundamentally flawed, and the maintainer is not up to
|
||||
# the task of fixing it.
|
||||
dotmpfiles "${FILESDIR}/tmpfiles.d/clamav.conf"
|
||||
systemd_newunit "${FILESDIR}/clamd_at.service-0.104.0" "clamd@.service"
|
||||
systemd_dounit "${FILESDIR}/clamd.service"
|
||||
systemd_newunit "${FILESDIR}/freshclamd.service-r1" \
|
||||
"freshclamd.service"
|
||||
fi
|
||||
|
||||
if use clamapp ; then
|
||||
# Modify /etc/{clamd,freshclam}.conf to be usable out of the box
|
||||
sed -e "s:^\(Example\):\# \1:" \
|
||||
-e "s/^#\(PidFile .*\)/\1/" \
|
||||
-e "s/^#\(LocalSocket .*\)/\1/" \
|
||||
-e "s/^#\(User .*\)/\1/" \
|
||||
-e "s:^\#\(LogFile\) .*:\1 ${EPREFIX}/var/log/clamav/clamd.log:" \
|
||||
-e "s:^\#\(LogTime\).*:\1 yes:" \
|
||||
-e "s/^#\(DatabaseDirectory .*\)/\1/" \
|
||||
"${ED}"/etc/clamav/clamd.conf.sample > \
|
||||
"${ED}"/etc/clamav/clamd.conf || die
|
||||
|
||||
sed -e "s:^\(Example\):\# \1:" \
|
||||
-e "s/^#\(PidFile .*\)/\1/" \
|
||||
-e "s/^#\(DatabaseOwner .*\)/\1/" \
|
||||
-e "s:^\#\(UpdateLogFile\) .*:\1 ${EPREFIX}/var/log/clamav/freshclam.log:" \
|
||||
-e "s:^\#\(NotifyClamd\).*:\1 ${EPREFIX}/etc/clamav/clamd.conf:" \
|
||||
-e "s:^\#\(ScriptedUpdates\).*:\1 yes:" \
|
||||
-e "s/^#\(DatabaseDirectory .*\)/\1/" \
|
||||
"${ED}"/etc/clamav/freshclam.conf.sample > \
|
||||
"${ED}"/etc/clamav/freshclam.conf || die
|
||||
|
||||
if use milter ; then
|
||||
# Note: only keep the "unix" ClamdSocket and MilterSocket!
|
||||
sed -e "s:^\(Example\):\# \1:" \
|
||||
-e "s/^#\(PidFile .*\)/\1/" \
|
||||
-e "s/^#\(ClamdSocket unix:.*\)/\1/" \
|
||||
-e "s/^#\(User .*\)/\1/" \
|
||||
-e "s/^#\(MilterSocket unix:.*\)/\1/" \
|
||||
-e "s:^\#\(LogFile\) .*:\1 ${EPREFIX}/var/log/clamav/clamav-milter.log:" \
|
||||
"${ED}"/etc/clamav/clamav-milter.conf.sample > \
|
||||
"${ED}"/etc/clamav/clamav-milter.conf || die
|
||||
|
||||
systemd_newunit "${FILESDIR}/clamav-milter.service-0.104.0" clamav-milter.service
|
||||
fi
|
||||
|
||||
local i
|
||||
for i in clamd freshclam clamav-milter
|
||||
do
|
||||
if [[ -f "${ED}"/etc/"${i}".conf.sample ]] ; then
|
||||
mv "${ED}"/etc/"${i}".conf{.sample,} || die
|
||||
fi
|
||||
done
|
||||
|
||||
# These both need to be writable by the clamav user
|
||||
# TODO: use syslog by default; that's what it's for.
|
||||
diropts -o clamav -g clamav
|
||||
keepdir /var/lib/clamav
|
||||
keepdir /var/log/clamav
|
||||
fi
|
||||
fi
|
||||
|
||||
if use doc ; then
|
||||
local HTML_DOCS=( docs/html/. )
|
||||
einstalldocs
|
||||
fi
|
||||
|
||||
# Don't install man pages for utilities we didn't install
|
||||
if use libclamav-only ; then
|
||||
rm -r "${ED}"/usr/share/man || die
|
||||
fi
|
||||
|
||||
find "${ED}" -name '*.la' -delete || die
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
if ! use libclamav-only ; then
|
||||
if use systemd ; then
|
||||
tmpfiles_process clamav.conf
|
||||
fi
|
||||
fi
|
||||
|
||||
if use milter ; then
|
||||
elog "For simple instructions how to setup the clamav-milter read the"
|
||||
elog "clamav-milter.README.gentoo in /usr/share/doc/${PF}"
|
||||
fi
|
||||
|
||||
local databases=( "${EROOT}"/var/lib/clamav/main.c[lv]d )
|
||||
if [[ ! -f "${databases}" ]] ; then
|
||||
ewarn "You must run freshclam manually to populate the virus database"
|
||||
ewarn "before starting clamav for the first time."
|
||||
fi
|
||||
|
||||
if ! systemd_is_booted ; then
|
||||
ewarn "This version of ClamAV provides separate OpenRC services"
|
||||
ewarn "for clamd, freshclam, clamav-milter, and clamonacc. The"
|
||||
ewarn "clamd service now starts only the clamd daemon itself. You"
|
||||
ewarn "should add freshclam (and perhaps clamav-milter) to any"
|
||||
ewarn "runlevels that previously contained clamd."
|
||||
fi
|
||||
}
|
@ -0,0 +1,394 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
# Upstream are working on updating clamav's LLVM bytecode interpreter to work
|
||||
# with later versions of LLVM, but it's not ready yet. See:
|
||||
# https://github.com/Cisco-Talos/clamav/issues/581
|
||||
# This does not impact the ability of the package to build with llvm/clang otherwise.
|
||||
LLVM_MAX_SLOT=13
|
||||
PYTHON_COMPAT=( python3_{10..12} )
|
||||
|
||||
# Autogenerated by pycargoebuild 0.13.2
|
||||
CRATES="
|
||||
adler@1.0.2
|
||||
aho-corasick@1.0.5
|
||||
autocfg@1.1.0
|
||||
base64@0.21.3
|
||||
bindgen@0.65.1
|
||||
bit_field@0.10.2
|
||||
bitflags@1.3.2
|
||||
bitflags@2.4.0
|
||||
block-buffer@0.10.4
|
||||
bumpalo@3.13.0
|
||||
bytemuck@1.14.0
|
||||
byteorder@1.4.3
|
||||
cbindgen@0.25.0
|
||||
cc@1.0.83
|
||||
cexpr@0.6.0
|
||||
cfg-if@1.0.0
|
||||
clang-sys@1.6.1
|
||||
color_quant@1.1.0
|
||||
cpufeatures@0.2.9
|
||||
crc32fast@1.3.2
|
||||
crossbeam-channel@0.5.8
|
||||
crossbeam-deque@0.8.3
|
||||
crossbeam-epoch@0.9.15
|
||||
crossbeam-utils@0.8.16
|
||||
crunchy@0.2.2
|
||||
crypto-common@0.1.6
|
||||
digest@0.10.7
|
||||
either@1.9.0
|
||||
errno-dragonfly@0.1.2
|
||||
errno@0.3.3
|
||||
exr@1.7.0
|
||||
fastrand@2.0.0
|
||||
fdeflate@0.3.4
|
||||
flate2@1.0.27
|
||||
flume@0.10.14
|
||||
futures-core@0.3.28
|
||||
futures-sink@0.3.28
|
||||
generic-array@0.14.7
|
||||
getrandom@0.2.10
|
||||
gif@0.12.0
|
||||
glob@0.3.1
|
||||
half@2.2.1
|
||||
hashbrown@0.12.3
|
||||
heck@0.4.1
|
||||
hermit-abi@0.3.2
|
||||
hex@0.4.3
|
||||
home@0.5.5
|
||||
image@0.24.7
|
||||
indexmap@1.9.3
|
||||
itoa@1.0.9
|
||||
jpeg-decoder@0.3.0
|
||||
js-sys@0.3.64
|
||||
lazy_static@1.4.0
|
||||
lazycell@1.3.0
|
||||
lebe@0.5.2
|
||||
libc@0.2.147
|
||||
libloading@0.7.4
|
||||
linux-raw-sys@0.4.5
|
||||
lock_api@0.4.10
|
||||
log@0.4.20
|
||||
memchr@2.6.3
|
||||
memoffset@0.9.0
|
||||
minimal-lexical@0.2.1
|
||||
miniz_oxide@0.7.1
|
||||
nanorand@0.7.0
|
||||
nom@7.1.3
|
||||
num-complex@0.4.4
|
||||
num-integer@0.1.45
|
||||
num-rational@0.4.1
|
||||
num-traits@0.2.16
|
||||
num_cpus@1.16.0
|
||||
once_cell@1.18.0
|
||||
peeking_take_while@0.1.2
|
||||
pin-project-internal@1.1.3
|
||||
pin-project@1.1.3
|
||||
png@0.17.13
|
||||
prettyplease@0.2.15
|
||||
primal-check@0.3.3
|
||||
proc-macro2@1.0.66
|
||||
qoi@0.4.1
|
||||
quote@1.0.33
|
||||
rayon-core@1.11.0
|
||||
rayon@1.7.0
|
||||
redox_syscall@0.3.5
|
||||
regex-automata@0.3.8
|
||||
regex-syntax@0.7.5
|
||||
regex@1.9.5
|
||||
rustc-hash@1.1.0
|
||||
rustdct@0.7.1
|
||||
rustfft@6.1.0
|
||||
rustix@0.38.11
|
||||
ryu@1.0.15
|
||||
scopeguard@1.2.0
|
||||
serde@1.0.188
|
||||
serde_derive@1.0.188
|
||||
serde_json@1.0.105
|
||||
sha1@0.10.5
|
||||
sha2@0.10.7
|
||||
shlex@1.3.0
|
||||
simd-adler32@0.3.7
|
||||
smallvec@1.11.0
|
||||
spin@0.9.8
|
||||
strength_reduce@0.2.4
|
||||
syn@1.0.109
|
||||
syn@2.0.31
|
||||
tempfile@3.8.0
|
||||
thiserror-impl@1.0.48
|
||||
thiserror@1.0.48
|
||||
tiff@0.9.0
|
||||
toml@0.5.11
|
||||
transpose@0.2.3
|
||||
typenum@1.16.0
|
||||
unicode-ident@1.0.11
|
||||
unicode-segmentation@1.10.1
|
||||
version_check@0.9.4
|
||||
wasi@0.11.0+wasi-snapshot-preview1
|
||||
wasm-bindgen-backend@0.2.87
|
||||
wasm-bindgen-macro-support@0.2.87
|
||||
wasm-bindgen-macro@0.2.87
|
||||
wasm-bindgen-shared@0.2.87
|
||||
wasm-bindgen@0.2.87
|
||||
weezl@0.1.7
|
||||
which@4.4.2
|
||||
winapi-i686-pc-windows-gnu@0.4.0
|
||||
winapi-x86_64-pc-windows-gnu@0.4.0
|
||||
winapi@0.3.9
|
||||
windows-sys@0.48.0
|
||||
windows-targets@0.48.5
|
||||
windows_aarch64_gnullvm@0.48.5
|
||||
windows_aarch64_msvc@0.48.5
|
||||
windows_i686_gnu@0.48.5
|
||||
windows_i686_msvc@0.48.5
|
||||
windows_x86_64_gnu@0.48.5
|
||||
windows_x86_64_gnullvm@0.48.5
|
||||
windows_x86_64_msvc@0.48.5
|
||||
zune-inflate@0.2.54
|
||||
"
|
||||
|
||||
inherit cargo cmake flag-o-matic llvm python-any-r1 systemd tmpfiles
|
||||
|
||||
MY_P=${P//_/-}
|
||||
|
||||
DESCRIPTION="Clam Anti-Virus Scanner"
|
||||
HOMEPAGE="https://www.clamav.net/"
|
||||
SRC_URI="https://github.com/Cisco-Talos/clamav/archive/refs/tags/${MY_P}.tar.gz
|
||||
${CARGO_CRATE_URIS}"
|
||||
S=${WORKDIR}/clamav-${MY_P}
|
||||
|
||||
LICENSE="Apache-2.0 BSD GPL-2 ISC MIT MPL-2.0 Unicode-DFS-2016 ZLIB"
|
||||
# 0/sts (short term support) if not an LTS release
|
||||
SLOT="0/sts"
|
||||
if [[ ${PV} != *_rc* ]] ; then
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos"
|
||||
fi
|
||||
|
||||
IUSE="doc clamonacc +clamapp experimental jit libclamav-only milter rar selinux +system-mspack systemd test"
|
||||
|
||||
REQUIRED_USE="libclamav-only? ( !clamonacc !clamapp !milter )
|
||||
clamonacc? ( clamapp )
|
||||
milter? ( clamapp )
|
||||
test? ( !libclamav-only )"
|
||||
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
# Require acct-{user,group}/clamav at build time so that we can set
|
||||
# the permissions on /var/lib/clamav in src_install rather than in
|
||||
# pkg_postinst; calling "chown" on the live filesystem scares me.
|
||||
COMMON_DEPEND="
|
||||
acct-group/clamav
|
||||
acct-user/clamav
|
||||
app-arch/bzip2
|
||||
dev-libs/json-c:=
|
||||
dev-libs/libltdl
|
||||
dev-libs/libpcre2:=
|
||||
dev-libs/libxml2
|
||||
dev-libs/openssl:=
|
||||
>=sys-libs/zlib-1.2.2:=
|
||||
virtual/libiconv
|
||||
!libclamav-only? ( net-misc/curl )
|
||||
clamapp? ( sys-libs/ncurses:= net-misc/curl )
|
||||
elibc_musl? ( sys-libs/fts-standalone )
|
||||
jit? ( <sys-devel/llvm-$((${LLVM_MAX_SLOT} + 1)):= )
|
||||
milter? ( mail-filter/libmilter:= )
|
||||
rar? ( app-arch/unrar )
|
||||
system-mspack? ( dev-libs/libmspack )
|
||||
test? ( dev-python/pytest )
|
||||
"
|
||||
# rust-bin < 1.71 has an executable stack
|
||||
# which is not supported on selinux #911589
|
||||
BDEPEND="
|
||||
virtual/pkgconfig
|
||||
>=virtual/rust-1.71
|
||||
doc? ( app-text/doxygen )
|
||||
test? (
|
||||
${PYTHON_DEPS}
|
||||
$(python_gen_any_dep 'dev-python/pytest[${PYTHON_USEDEP}]')
|
||||
)
|
||||
"
|
||||
|
||||
DEPEND="${COMMON_DEPEND}
|
||||
test? ( dev-libs/check )"
|
||||
|
||||
RDEPEND="${COMMON_DEPEND}
|
||||
selinux? ( sec-policy/selinux-clamav )"
|
||||
|
||||
python_check_deps() {
|
||||
python_has_version -b "dev-python/pytest[${PYTHON_USEDEP}]"
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
use jit && llvm_pkg_setup
|
||||
use test && python-any-r1_pkg_setup
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
use elibc_musl && append-ldflags -lfts
|
||||
use ppc64 && append-flags -mminimal-toc
|
||||
|
||||
local mycmakeargs=(
|
||||
-DAPP_CONFIG_DIRECTORY="${EPREFIX}"/etc/clamav
|
||||
-DBYTECODE_RUNTIME=$(usex jit llvm interpreter)
|
||||
-DCLAMAV_GROUP="clamav"
|
||||
-DCLAMAV_USER="clamav"
|
||||
-DDATABASE_DIRECTORY="${EPREFIX}"/var/lib/clamav
|
||||
-DENABLE_APP=$(usex clamapp ON OFF)
|
||||
-DENABLE_CLAMONACC=$(usex clamonacc ON OFF)
|
||||
-DENABLE_DOXYGEN=$(usex doc)
|
||||
-DENABLE_EXPERIMENTAL=$(usex experimental ON OFF)
|
||||
-DENABLE_EXTERNAL_MSPACK=$(usex system-mspack ON OFF)
|
||||
-DENABLE_JSON_SHARED=ON
|
||||
-DENABLE_MAN_PAGES=ON
|
||||
-DENABLE_MILTER=$(usex milter ON OFF)
|
||||
-DENABLE_SHARED_LIB=ON
|
||||
-DENABLE_STATIC_LIB=OFF
|
||||
-DENABLE_SYSTEMD=$(usex systemd ON OFF)
|
||||
-DENABLE_TESTS=$(usex test ON OFF)
|
||||
-DENABLE_UNRAR=$(usex rar ON OFF)
|
||||
-DOPTIMIZE=ON
|
||||
)
|
||||
|
||||
if use test ; then
|
||||
# https://bugs.gentoo.org/818673
|
||||
# Used to enable some more tests but doesn't behave well in
|
||||
# sandbox necessarily(?) + needs certain debug symbols present
|
||||
# in e.g. glibc.
|
||||
mycmakeargs+=(
|
||||
-DCMAKE_DISABLE_FIND_PACKAGE_Valgrind=ON
|
||||
-DPYTHON_FIND_VERSION="${EPYTHON#python}"
|
||||
)
|
||||
fi
|
||||
|
||||
if use jit ; then
|
||||
# Suppress CMake warnings that variables aren't consumed if we aren't using LLVM
|
||||
# https://github.com/Cisco-Talos/clamav/blob/main/INSTALL.md#llvm-optional-see-bytecode-runtime-section
|
||||
# https://github.com/Cisco-Talos/clamav/blob/main/INSTALL.md#bytecode-runtime
|
||||
mycmakeargs+=(
|
||||
-DLLVM_ROOT_DIR="$(get_llvm_prefix -d ${LLVM_MAX_SLOT})"
|
||||
-DLLVM_FIND_VERSION="$(best_version sys-devel/llvm:${LLVM_MAX_SLOT} | cut -c 16-)"
|
||||
)
|
||||
fi
|
||||
|
||||
cmake_src_configure
|
||||
}
|
||||
|
||||
src_install() {
|
||||
cmake_src_install
|
||||
# init scripts
|
||||
newinitd "${FILESDIR}/clamd.initd" clamd
|
||||
newinitd "${FILESDIR}/freshclam.initd" freshclam
|
||||
use clamonacc && \
|
||||
newinitd "${FILESDIR}/clamonacc.initd" clamonacc
|
||||
use milter && \
|
||||
newinitd "${FILESDIR}/clamav-milter.initd" clamav-milter
|
||||
|
||||
if ! use libclamav-only ; then
|
||||
if use systemd ; then
|
||||
# The tmpfiles entry is behind USE=systemd because the
|
||||
# upstream OpenRC service files should (and do) ensure that
|
||||
# the directories they need exist and have the correct
|
||||
# permissions without the help of opentmpfiles. There are
|
||||
# years-old root exploits in opentmpfiles, the design is
|
||||
# fundamentally flawed, and the maintainer is not up to
|
||||
# the task of fixing it.
|
||||
dotmpfiles "${FILESDIR}/tmpfiles.d/clamav.conf"
|
||||
systemd_newunit "${FILESDIR}/clamd_at.service-0.104.0" "clamd@.service"
|
||||
systemd_dounit "${FILESDIR}/clamd.service"
|
||||
systemd_newunit "${FILESDIR}/freshclamd.service-r1" \
|
||||
"freshclamd.service"
|
||||
fi
|
||||
|
||||
if use clamapp ; then
|
||||
# Modify /etc/{clamd,freshclam}.conf to be usable out of the box
|
||||
sed -e "s:^\(Example\):\# \1:" \
|
||||
-e "s/^#\(PidFile .*\)/\1/" \
|
||||
-e "s/^#\(LocalSocket .*\)/\1/" \
|
||||
-e "s/^#\(User .*\)/\1/" \
|
||||
-e "s:^\#\(LogFile\) .*:\1 ${EPREFIX}/var/log/clamav/clamd.log:" \
|
||||
-e "s:^\#\(LogTime\).*:\1 yes:" \
|
||||
-e "s/^#\(DatabaseDirectory .*\)/\1/" \
|
||||
"${ED}"/etc/clamav/clamd.conf.sample > \
|
||||
"${ED}"/etc/clamav/clamd.conf || die
|
||||
|
||||
sed -e "s:^\(Example\):\# \1:" \
|
||||
-e "s/^#\(PidFile .*\)/\1/" \
|
||||
-e "s/^#\(DatabaseOwner .*\)/\1/" \
|
||||
-e "s:^\#\(UpdateLogFile\) .*:\1 ${EPREFIX}/var/log/clamav/freshclam.log:" \
|
||||
-e "s:^\#\(NotifyClamd\).*:\1 ${EPREFIX}/etc/clamav/clamd.conf:" \
|
||||
-e "s:^\#\(ScriptedUpdates\).*:\1 yes:" \
|
||||
-e "s/^#\(DatabaseDirectory .*\)/\1/" \
|
||||
"${ED}"/etc/clamav/freshclam.conf.sample > \
|
||||
"${ED}"/etc/clamav/freshclam.conf || die
|
||||
|
||||
if use milter ; then
|
||||
# Note: only keep the "unix" ClamdSocket and MilterSocket!
|
||||
sed -e "s:^\(Example\):\# \1:" \
|
||||
-e "s/^#\(PidFile .*\)/\1/" \
|
||||
-e "s/^#\(ClamdSocket unix:.*\)/\1/" \
|
||||
-e "s/^#\(User .*\)/\1/" \
|
||||
-e "s/^#\(MilterSocket unix:.*\)/\1/" \
|
||||
-e "s:^\#\(LogFile\) .*:\1 ${EPREFIX}/var/log/clamav/clamav-milter.log:" \
|
||||
"${ED}"/etc/clamav/clamav-milter.conf.sample > \
|
||||
"${ED}"/etc/clamav/clamav-milter.conf || die
|
||||
|
||||
systemd_newunit "${FILESDIR}/clamav-milter.service-0.104.0" clamav-milter.service
|
||||
fi
|
||||
|
||||
local i
|
||||
for i in clamd freshclam clamav-milter
|
||||
do
|
||||
if [[ -f "${ED}"/etc/"${i}".conf.sample ]] ; then
|
||||
mv "${ED}"/etc/"${i}".conf{.sample,} || die
|
||||
fi
|
||||
done
|
||||
|
||||
# These both need to be writable by the clamav user
|
||||
# TODO: use syslog by default; that's what it's for.
|
||||
diropts -o clamav -g clamav
|
||||
keepdir /var/lib/clamav
|
||||
keepdir /var/log/clamav
|
||||
fi
|
||||
fi
|
||||
|
||||
if use doc ; then
|
||||
local HTML_DOCS=( docs/html/. )
|
||||
einstalldocs
|
||||
fi
|
||||
|
||||
# Don't install man pages for utilities we didn't install
|
||||
if use libclamav-only ; then
|
||||
rm -r "${ED}"/usr/share/man || die
|
||||
fi
|
||||
|
||||
find "${ED}" -name '*.la' -delete || die
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
if ! use libclamav-only ; then
|
||||
if use systemd ; then
|
||||
tmpfiles_process clamav.conf
|
||||
fi
|
||||
fi
|
||||
|
||||
if use milter ; then
|
||||
elog "For simple instructions how to setup the clamav-milter read the"
|
||||
elog "clamav-milter.README.gentoo in /usr/share/doc/${PF}"
|
||||
fi
|
||||
|
||||
local databases=( "${EROOT}"/var/lib/clamav/main.c[lv]d )
|
||||
if [[ ! -f "${databases}" ]] ; then
|
||||
ewarn "You must run freshclam manually to populate the virus database"
|
||||
ewarn "before starting clamav for the first time."
|
||||
fi
|
||||
|
||||
if ! systemd_is_booted ; then
|
||||
ewarn "This version of ClamAV provides separate OpenRC services"
|
||||
ewarn "for clamd, freshclam, clamav-milter, and clamonacc. The"
|
||||
ewarn "clamd service now starts only the clamd daemon itself. You"
|
||||
ewarn "should add freshclam (and perhaps clamav-milter) to any"
|
||||
ewarn "runlevels that previously contained clamd."
|
||||
fi
|
||||
}
|
@ -0,0 +1,397 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
# Upstream are working on updating clamav's LLVM bytecode interpreter to work
|
||||
# with later versions of LLVM, but it's not ready yet. See:
|
||||
# https://github.com/Cisco-Talos/clamav/issues/581
|
||||
# This does not impact the ability of the package to build with llvm/clang otherwise.
|
||||
LLVM_MAX_SLOT=13
|
||||
PYTHON_COMPAT=( python3_{10..12} )
|
||||
|
||||
# Autogenerated by pycargoebuild 0.13.2
|
||||
CRATES="
|
||||
adler@1.0.2
|
||||
aho-corasick@1.1.2
|
||||
autocfg@1.1.0
|
||||
base64@0.21.5
|
||||
bindgen@0.65.1
|
||||
bit_field@0.10.2
|
||||
bitflags@1.3.2
|
||||
bitflags@2.4.1
|
||||
block-buffer@0.10.4
|
||||
bytemuck@1.14.0
|
||||
byteorder@1.5.0
|
||||
bytes@1.5.0
|
||||
cbindgen@0.25.0
|
||||
cexpr@0.6.0
|
||||
cfg-if@1.0.0
|
||||
clang-sys@1.6.1
|
||||
color_quant@1.1.0
|
||||
cpufeatures@0.2.11
|
||||
crc32fast@1.3.2
|
||||
crossbeam-deque@0.8.4
|
||||
crossbeam-epoch@0.9.16
|
||||
crossbeam-utils@0.8.17
|
||||
crunchy@0.2.2
|
||||
crypto-common@0.1.6
|
||||
digest@0.10.7
|
||||
either@1.9.0
|
||||
encoding_rs@0.8.33
|
||||
enum-primitive-derive@0.2.2
|
||||
errno@0.3.8
|
||||
exr@1.71.0
|
||||
fastrand@2.0.1
|
||||
fdeflate@0.3.4
|
||||
flate2@1.0.28
|
||||
flume@0.11.0
|
||||
generic-array@0.14.7
|
||||
gif@0.12.0
|
||||
glob@0.3.1
|
||||
half@2.2.1
|
||||
hashbrown@0.12.3
|
||||
heck@0.4.1
|
||||
hex-literal@0.4.1
|
||||
hex@0.4.3
|
||||
home@0.5.5
|
||||
image@0.24.7
|
||||
indexmap@1.9.3
|
||||
itertools@0.10.5
|
||||
itoa@1.0.10
|
||||
jpeg-decoder@0.3.0
|
||||
lazy_static@1.4.0
|
||||
lazycell@1.3.0
|
||||
lebe@0.5.2
|
||||
libc@0.2.151
|
||||
libloading@0.7.4
|
||||
linux-raw-sys@0.4.12
|
||||
lock_api@0.4.11
|
||||
log@0.4.20
|
||||
memchr@2.6.4
|
||||
memoffset@0.9.0
|
||||
minimal-lexical@0.2.1
|
||||
miniz_oxide@0.7.1
|
||||
nom@7.1.3
|
||||
num-complex@0.4.4
|
||||
num-integer@0.1.45
|
||||
num-rational@0.4.1
|
||||
num-traits@0.2.17
|
||||
once_cell@1.19.0
|
||||
paste@1.0.14
|
||||
peeking_take_while@0.1.2
|
||||
png@0.17.13
|
||||
prettyplease@0.2.15
|
||||
primal-check@0.3.3
|
||||
proc-macro2@1.0.70
|
||||
qoi@0.4.1
|
||||
quote@1.0.33
|
||||
rayon-core@1.12.0
|
||||
rayon@1.8.0
|
||||
redox_syscall@0.4.1
|
||||
regex-automata@0.4.3
|
||||
regex-syntax@0.8.2
|
||||
regex@1.10.2
|
||||
rustc-hash@1.1.0
|
||||
rustdct@0.7.1
|
||||
rustfft@6.1.0
|
||||
rustix@0.38.28
|
||||
ryu@1.0.16
|
||||
scopeguard@1.2.0
|
||||
serde@1.0.193
|
||||
serde_derive@1.0.193
|
||||
serde_json@1.0.108
|
||||
sha1@0.10.6
|
||||
sha2@0.10.8
|
||||
shlex@1.3.0
|
||||
simd-adler32@0.3.7
|
||||
smallvec@1.11.2
|
||||
spin@0.9.8
|
||||
strength_reduce@0.2.4
|
||||
syn@1.0.109
|
||||
syn@2.0.41
|
||||
tempfile@3.8.1
|
||||
thiserror-impl@1.0.50
|
||||
thiserror@1.0.50
|
||||
tiff@0.9.0
|
||||
toml@0.5.11
|
||||
transpose@0.2.3
|
||||
typenum@1.17.0
|
||||
unicode-ident@1.0.12
|
||||
unicode-segmentation@1.10.1
|
||||
uuid@1.6.1
|
||||
version_check@0.9.4
|
||||
weezl@0.1.7
|
||||
which@4.4.2
|
||||
widestring@1.0.2
|
||||
winapi-i686-pc-windows-gnu@0.4.0
|
||||
winapi-x86_64-pc-windows-gnu@0.4.0
|
||||
winapi@0.3.9
|
||||
windows-sys@0.48.0
|
||||
windows-sys@0.52.0
|
||||
windows-targets@0.48.5
|
||||
windows-targets@0.52.0
|
||||
windows_aarch64_gnullvm@0.48.5
|
||||
windows_aarch64_gnullvm@0.52.0
|
||||
windows_aarch64_msvc@0.48.5
|
||||
windows_aarch64_msvc@0.52.0
|
||||
windows_i686_gnu@0.48.5
|
||||
windows_i686_gnu@0.52.0
|
||||
windows_i686_msvc@0.48.5
|
||||
windows_i686_msvc@0.52.0
|
||||
windows_x86_64_gnu@0.48.5
|
||||
windows_x86_64_gnu@0.52.0
|
||||
windows_x86_64_gnullvm@0.48.5
|
||||
windows_x86_64_gnullvm@0.52.0
|
||||
windows_x86_64_msvc@0.48.5
|
||||
windows_x86_64_msvc@0.52.0
|
||||
zune-inflate@0.2.54
|
||||
"
|
||||
|
||||
# Get the commit from the CLAM-2329-new-from-slice branch
|
||||
declare -A GIT_CRATES=(
|
||||
[onenote_parser]="https://github.com/Cisco-Talos/onenote.rs;8b450447e58143004b68dd21c11b710fdb79be92;onenote.rs-%commit%"
|
||||
)
|
||||
|
||||
inherit cargo cmake flag-o-matic llvm python-any-r1 systemd tmpfiles
|
||||
|
||||
MY_P=${P//_/-}
|
||||
|
||||
DESCRIPTION="Clam Anti-Virus Scanner"
|
||||
HOMEPAGE="https://www.clamav.net/"
|
||||
SRC_URI="https://github.com/Cisco-Talos/clamav/archive/refs/tags/${MY_P}.tar.gz
|
||||
${CARGO_CRATE_URIS}"
|
||||
S=${WORKDIR}/clamav-${MY_P}
|
||||
|
||||
LICENSE="Apache-2.0 BSD GPL-2 ISC MIT MPL-2.0 Unicode-DFS-2016 ZLIB"
|
||||
# 0/sts (short term support) if not an LTS release
|
||||
SLOT="0/sts"
|
||||
if [[ ${PV} != *_rc* ]] ; then
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos"
|
||||
fi
|
||||
|
||||
IUSE="doc clamonacc +clamapp experimental jit libclamav-only milter rar selinux +system-mspack systemd test"
|
||||
|
||||
REQUIRED_USE="libclamav-only? ( !clamonacc !clamapp !milter )
|
||||
clamonacc? ( clamapp )
|
||||
milter? ( clamapp )
|
||||
test? ( !libclamav-only )"
|
||||
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
# Require acct-{user,group}/clamav at build time so that we can set
|
||||
# the permissions on /var/lib/clamav in src_install rather than in
|
||||
# pkg_postinst; calling "chown" on the live filesystem scares me.
|
||||
COMMON_DEPEND="
|
||||
acct-group/clamav
|
||||
acct-user/clamav
|
||||
app-arch/bzip2
|
||||
dev-libs/json-c:=
|
||||
dev-libs/libltdl
|
||||
dev-libs/libpcre2:=
|
||||
dev-libs/libxml2
|
||||
dev-libs/openssl:=
|
||||
>=sys-libs/zlib-1.2.2:=
|
||||
virtual/libiconv
|
||||
!libclamav-only? ( net-misc/curl )
|
||||
clamapp? ( sys-libs/ncurses:= net-misc/curl )
|
||||
elibc_musl? ( sys-libs/fts-standalone )
|
||||
jit? ( <sys-devel/llvm-$((${LLVM_MAX_SLOT} + 1)):= )
|
||||
milter? ( mail-filter/libmilter:= )
|
||||
rar? ( app-arch/unrar )
|
||||
system-mspack? ( dev-libs/libmspack )
|
||||
test? ( dev-python/pytest )
|
||||
"
|
||||
# rust-bin < 1.71 has an executable stack
|
||||
# which is not supported on selinux #911589
|
||||
BDEPEND="
|
||||
virtual/pkgconfig
|
||||
>=virtual/rust-1.71
|
||||
doc? ( app-text/doxygen )
|
||||
test? (
|
||||
${PYTHON_DEPS}
|
||||
$(python_gen_any_dep 'dev-python/pytest[${PYTHON_USEDEP}]')
|
||||
)
|
||||
"
|
||||
|
||||
DEPEND="${COMMON_DEPEND}
|
||||
test? ( dev-libs/check )"
|
||||
|
||||
RDEPEND="${COMMON_DEPEND}
|
||||
selinux? ( sec-policy/selinux-clamav )"
|
||||
|
||||
python_check_deps() {
|
||||
python_has_version -b "dev-python/pytest[${PYTHON_USEDEP}]"
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
use jit && llvm_pkg_setup
|
||||
use test && python-any-r1_pkg_setup
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
use elibc_musl && append-ldflags -lfts
|
||||
use ppc64 && append-flags -mminimal-toc
|
||||
|
||||
local mycmakeargs=(
|
||||
-DAPP_CONFIG_DIRECTORY="${EPREFIX}"/etc/clamav
|
||||
-DBYTECODE_RUNTIME=$(usex jit llvm interpreter)
|
||||
-DCLAMAV_GROUP="clamav"
|
||||
-DCLAMAV_USER="clamav"
|
||||
-DDATABASE_DIRECTORY="${EPREFIX}"/var/lib/clamav
|
||||
-DENABLE_APP=$(usex clamapp ON OFF)
|
||||
-DENABLE_CLAMONACC=$(usex clamonacc ON OFF)
|
||||
-DENABLE_DOXYGEN=$(usex doc)
|
||||
-DENABLE_EXPERIMENTAL=$(usex experimental ON OFF)
|
||||
-DENABLE_EXTERNAL_MSPACK=$(usex system-mspack ON OFF)
|
||||
-DENABLE_JSON_SHARED=ON
|
||||
-DENABLE_MAN_PAGES=ON
|
||||
-DENABLE_MILTER=$(usex milter ON OFF)
|
||||
-DENABLE_SHARED_LIB=ON
|
||||
-DENABLE_STATIC_LIB=OFF
|
||||
-DENABLE_SYSTEMD=$(usex systemd ON OFF)
|
||||
-DENABLE_TESTS=$(usex test ON OFF)
|
||||
-DENABLE_UNRAR=$(usex rar ON OFF)
|
||||
-DOPTIMIZE=ON
|
||||
)
|
||||
|
||||
if use test ; then
|
||||
# https://bugs.gentoo.org/818673
|
||||
# Used to enable some more tests but doesn't behave well in
|
||||
# sandbox necessarily(?) + needs certain debug symbols present
|
||||
# in e.g. glibc.
|
||||
mycmakeargs+=(
|
||||
-DCMAKE_DISABLE_FIND_PACKAGE_Valgrind=ON
|
||||
-DPYTHON_FIND_VERSION="${EPYTHON#python}"
|
||||
)
|
||||
fi
|
||||
|
||||
if use jit ; then
|
||||
# Suppress CMake warnings that variables aren't consumed if we aren't using LLVM
|
||||
# https://github.com/Cisco-Talos/clamav/blob/main/INSTALL.md#llvm-optional-see-bytecode-runtime-section
|
||||
# https://github.com/Cisco-Talos/clamav/blob/main/INSTALL.md#bytecode-runtime
|
||||
mycmakeargs+=(
|
||||
-DLLVM_ROOT_DIR="$(get_llvm_prefix -d ${LLVM_MAX_SLOT})"
|
||||
-DLLVM_FIND_VERSION="$(best_version sys-devel/llvm:${LLVM_MAX_SLOT} | cut -c 16-)"
|
||||
)
|
||||
fi
|
||||
|
||||
cmake_src_configure
|
||||
}
|
||||
|
||||
src_install() {
|
||||
cmake_src_install
|
||||
# init scripts
|
||||
newinitd "${FILESDIR}/clamd.initd" clamd
|
||||
newinitd "${FILESDIR}/freshclam.initd" freshclam
|
||||
use clamonacc && \
|
||||
newinitd "${FILESDIR}/clamonacc.initd" clamonacc
|
||||
use milter && \
|
||||
newinitd "${FILESDIR}/clamav-milter.initd" clamav-milter
|
||||
|
||||
if ! use libclamav-only ; then
|
||||
if use systemd ; then
|
||||
# The tmpfiles entry is behind USE=systemd because the
|
||||
# upstream OpenRC service files should (and do) ensure that
|
||||
# the directories they need exist and have the correct
|
||||
# permissions without the help of opentmpfiles. There are
|
||||
# years-old root exploits in opentmpfiles, the design is
|
||||
# fundamentally flawed, and the maintainer is not up to
|
||||
# the task of fixing it.
|
||||
dotmpfiles "${FILESDIR}/tmpfiles.d/clamav.conf"
|
||||
systemd_newunit "${FILESDIR}/clamd_at.service-0.104.0" "clamd@.service"
|
||||
systemd_dounit "${FILESDIR}/clamd.service"
|
||||
systemd_newunit "${FILESDIR}/freshclamd.service-r1" \
|
||||
"freshclamd.service"
|
||||
fi
|
||||
|
||||
if use clamapp ; then
|
||||
# Modify /etc/{clamd,freshclam}.conf to be usable out of the box
|
||||
sed -e "s:^\(Example\):\# \1:" \
|
||||
-e "s/^#\(PidFile .*\)/\1/" \
|
||||
-e "s/^#\(LocalSocket .*\)/\1/" \
|
||||
-e "s/^#\(User .*\)/\1/" \
|
||||
-e "s:^\#\(LogFile\) .*:\1 ${EPREFIX}/var/log/clamav/clamd.log:" \
|
||||
-e "s:^\#\(LogTime\).*:\1 yes:" \
|
||||
-e "s/^#\(DatabaseDirectory .*\)/\1/" \
|
||||
"${ED}"/etc/clamav/clamd.conf.sample > \
|
||||
"${ED}"/etc/clamav/clamd.conf || die
|
||||
|
||||
sed -e "s:^\(Example\):\# \1:" \
|
||||
-e "s/^#\(PidFile .*\)/\1/" \
|
||||
-e "s/^#\(DatabaseOwner .*\)/\1/" \
|
||||
-e "s:^\#\(UpdateLogFile\) .*:\1 ${EPREFIX}/var/log/clamav/freshclam.log:" \
|
||||
-e "s:^\#\(NotifyClamd\).*:\1 ${EPREFIX}/etc/clamav/clamd.conf:" \
|
||||
-e "s:^\#\(ScriptedUpdates\).*:\1 yes:" \
|
||||
-e "s/^#\(DatabaseDirectory .*\)/\1/" \
|
||||
"${ED}"/etc/clamav/freshclam.conf.sample > \
|
||||
"${ED}"/etc/clamav/freshclam.conf || die
|
||||
|
||||
if use milter ; then
|
||||
# Note: only keep the "unix" ClamdSocket and MilterSocket!
|
||||
sed -e "s:^\(Example\):\# \1:" \
|
||||
-e "s/^#\(PidFile .*\)/\1/" \
|
||||
-e "s/^#\(ClamdSocket unix:.*\)/\1/" \
|
||||
-e "s/^#\(User .*\)/\1/" \
|
||||
-e "s/^#\(MilterSocket unix:.*\)/\1/" \
|
||||
-e "s:^\#\(LogFile\) .*:\1 ${EPREFIX}/var/log/clamav/clamav-milter.log:" \
|
||||
"${ED}"/etc/clamav/clamav-milter.conf.sample > \
|
||||
"${ED}"/etc/clamav/clamav-milter.conf || die
|
||||
|
||||
systemd_newunit "${FILESDIR}/clamav-milter.service-0.104.0" clamav-milter.service
|
||||
fi
|
||||
|
||||
local i
|
||||
for i in clamd freshclam clamav-milter
|
||||
do
|
||||
if [[ -f "${ED}"/etc/"${i}".conf.sample ]] ; then
|
||||
mv "${ED}"/etc/"${i}".conf{.sample,} || die
|
||||
fi
|
||||
done
|
||||
|
||||
# These both need to be writable by the clamav user
|
||||
# TODO: use syslog by default; that's what it's for.
|
||||
diropts -o clamav -g clamav
|
||||
keepdir /var/lib/clamav
|
||||
keepdir /var/log/clamav
|
||||
fi
|
||||
fi
|
||||
|
||||
if use doc ; then
|
||||
local HTML_DOCS=( docs/html/. )
|
||||
einstalldocs
|
||||
fi
|
||||
|
||||
# Don't install man pages for utilities we didn't install
|
||||
if use libclamav-only ; then
|
||||
rm -r "${ED}"/usr/share/man || die
|
||||
fi
|
||||
|
||||
find "${ED}" -name '*.la' -delete || die
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
if ! use libclamav-only ; then
|
||||
if use systemd ; then
|
||||
tmpfiles_process clamav.conf
|
||||
fi
|
||||
fi
|
||||
|
||||
if use milter ; then
|
||||
elog "For simple instructions how to setup the clamav-milter read the"
|
||||
elog "clamav-milter.README.gentoo in /usr/share/doc/${PF}"
|
||||
fi
|
||||
|
||||
local databases=( "${EROOT}"/var/lib/clamav/main.c[lv]d )
|
||||
if [[ ! -f "${databases}" ]] ; then
|
||||
ewarn "You must run freshclam manually to populate the virus database"
|
||||
ewarn "before starting clamav for the first time."
|
||||
fi
|
||||
|
||||
if ! systemd_is_booted ; then
|
||||
ewarn "This version of ClamAV provides separate OpenRC services"
|
||||
ewarn "for clamd, freshclam, clamav-milter, and clamonacc. The"
|
||||
ewarn "clamd service now starts only the clamd daemon itself. You"
|
||||
ewarn "should add freshclam (and perhaps clamav-milter) to any"
|
||||
ewarn "runlevels that previously contained clamd."
|
||||
fi
|
||||
}
|
@ -1,151 +0,0 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
PYTHON_COMPAT=( python3_{9..11} )
|
||||
|
||||
inherit desktop perl-functions python-single-r1 xdg-utils
|
||||
|
||||
MY_PV_KDE="0.19"
|
||||
MY_PV_NAUTILUS="6.14"
|
||||
MY_PV_NEMO="0.05"
|
||||
MY_PV_THUNAR="0.07"
|
||||
|
||||
DESCRIPTION="A graphical front-end for ClamAV"
|
||||
HOMEPAGE="https://gitlab.com/dave_m/clamtk/wikis/Home"
|
||||
SRC_URI="
|
||||
https://github.com/dave-theunsub/${PN}/releases/download/v${PV}/${P}.tar.xz
|
||||
kde? ( https://github.com/dave-theunsub/${PN}-kde/releases/download/v${MY_PV_KDE}/${PN}-kde-${MY_PV_KDE}.tar.xz )
|
||||
nautilus? ( https://github.com/dave-theunsub/${PN}-gnome/releases/download/v${MY_PV_NAUTILUS}/${PN}-gnome-${MY_PV_NAUTILUS}.tar.xz )
|
||||
nemo? ( https://github.com/dave-theunsub/nemo-sendto-${PN}/releases/download/v${MY_PV_NEMO}/nemo-sendto-${PN}-${MY_PV_NEMO}.tar.xz )
|
||||
thunar? ( https://github.com/dave-theunsub/thunar-sendto-${PN}/releases/download/v${MY_PV_THUNAR}/thunar-sendto-${PN}-${MY_PV_THUNAR}.tar.xz )
|
||||
"
|
||||
|
||||
LICENSE="|| ( Artistic GPL-1+ )"
|
||||
SLOT="0"
|
||||
KEYWORDS="amd64 x86"
|
||||
IUSE="kde nautilus nemo +nls thunar"
|
||||
REQUIRED_USE="nautilus? ( ${PYTHON_REQUIRED_USE} )"
|
||||
|
||||
RDEPEND="
|
||||
app-antivirus/clamav
|
||||
dev-perl/File-chdir
|
||||
dev-perl/Gtk3
|
||||
dev-perl/JSON
|
||||
dev-perl/LWP-Protocol-https
|
||||
dev-perl/LWP-UserAgent-Cached
|
||||
dev-perl/Locale-gettext
|
||||
dev-perl/Text-CSV
|
||||
dev-perl/glib-perl
|
||||
dev-perl/libwww-perl
|
||||
virtual/perl-Digest-MD5
|
||||
virtual/perl-Digest-SHA
|
||||
virtual/perl-Encode
|
||||
virtual/perl-MIME-Base64
|
||||
virtual/perl-Time-Piece
|
||||
nautilus? (
|
||||
${PYTHON_DEPS}
|
||||
dev-python/nautilus-python[${PYTHON_SINGLE_USEDEP}]
|
||||
)
|
||||
"
|
||||
|
||||
BDEPEND="nls? ( sys-devel/gettext )"
|
||||
|
||||
DOCS=( "CHANGES" "credits.md" "DISCLAIMER.md" "README.md" )
|
||||
|
||||
pkg_setup() {
|
||||
use nautilus && python-single-r1_pkg_setup
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
default
|
||||
|
||||
unpack "${S}"/clamtk.1.gz
|
||||
|
||||
use kde && unpack "${S}"/../clamtk-kde-${MY_PV_KDE}/clamtk-kde.1.gz
|
||||
use nautilus && unpack "${S}"/../clamtk-gnome-${MY_PV_NAUTILUS}/clamtk-gnome.1.gz
|
||||
use nemo && unpack "${S}"/../nemo-sendto-clamtk-${MY_PV_NEMO}/nemo-sendto-clamtk.1.gz
|
||||
use thunar && unpack "${S}"/../thunar-sendto-clamtk-${MY_PV_THUNAR}/thunar-sendto-clamtk.1.gz
|
||||
}
|
||||
|
||||
src_install() {
|
||||
dobin clamtk
|
||||
|
||||
perl_set_version
|
||||
insinto "${VENDOR_LIB}"/ClamTk
|
||||
doins lib/*.pm
|
||||
|
||||
use nls && domo po/*.mo
|
||||
|
||||
doicon images/clamtk.png images/clamtk.xpm
|
||||
|
||||
domenu clamtk.desktop
|
||||
|
||||
doman ../clamtk.1
|
||||
|
||||
if use kde; then
|
||||
insinto /usr/share/kservices5/ServiceMenus
|
||||
doins ../clamtk-kde-${MY_PV_KDE}/clamtk-kde.desktop
|
||||
|
||||
doicon ../clamtk-kde-${MY_PV_KDE}/clamtk-kde.png ../clamtk-kde-${MY_PV_KDE}/clamtk-kde.xpm
|
||||
|
||||
doman ../clamtk-kde.1
|
||||
|
||||
docinto dolphin
|
||||
dodoc ../clamtk-kde-${MY_PV_KDE}/CHANGES ../clamtk-kde-${MY_PV_KDE}/README.md
|
||||
fi
|
||||
|
||||
if use nautilus; then
|
||||
insinto /usr/share/nautilus-python/extensions
|
||||
doins ../clamtk-gnome-${MY_PV_NAUTILUS}/clamtk-gnome.py
|
||||
|
||||
doicon ../clamtk-gnome-${MY_PV_NAUTILUS}/images/clamtk-gnome.png
|
||||
|
||||
doman ../clamtk-gnome.1
|
||||
|
||||
docinto nautilus
|
||||
dodoc \
|
||||
../clamtk-gnome-${MY_PV_NAUTILUS}/CHANGES \
|
||||
../clamtk-gnome-${MY_PV_NAUTILUS}/DISCLAIMER \
|
||||
../clamtk-gnome-${MY_PV_NAUTILUS}/README.md
|
||||
fi
|
||||
|
||||
if use nemo; then
|
||||
insinto /usr/share/nemo/actions/
|
||||
doins ../nemo-sendto-clamtk-${MY_PV_NEMO}/nemo-sendto-clamtk.nemo_action
|
||||
|
||||
doman ../nemo-sendto-clamtk.1
|
||||
|
||||
docinto nemo
|
||||
dodoc \
|
||||
../nemo-sendto-clamtk-${MY_PV_NEMO}/CHANGES \
|
||||
../nemo-sendto-clamtk-${MY_PV_NEMO}/DISCLAIMER \
|
||||
../nemo-sendto-clamtk-${MY_PV_NEMO}/README.md
|
||||
fi
|
||||
|
||||
if use thunar; then
|
||||
insinto /usr/share/Thunar/sendto
|
||||
doins ../thunar-sendto-clamtk-${MY_PV_THUNAR}/thunar-sendto-clamtk.desktop
|
||||
|
||||
doman ../thunar-sendto-clamtk.1
|
||||
|
||||
docinto thunar
|
||||
dodoc \
|
||||
../thunar-sendto-clamtk-${MY_PV_THUNAR}/CHANGES \
|
||||
../thunar-sendto-clamtk-${MY_PV_THUNAR}/DISCLAIMER \
|
||||
../thunar-sendto-clamtk-${MY_PV_THUNAR}/README.md
|
||||
fi
|
||||
|
||||
einstalldocs
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
xdg_desktop_database_update
|
||||
xdg_mimeinfo_database_update
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
xdg_desktop_database_update
|
||||
xdg_mimeinfo_database_update
|
||||
}
|
Binary file not shown.
@ -1,29 +0,0 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/antoniodiazdiaz.asc
|
||||
inherit toolchain-funcs verify-sig
|
||||
|
||||
DESCRIPTION="Lossless data compressor based on the LZMA algorithm"
|
||||
HOMEPAGE="https://www.nongnu.org/lzip/lzip.html"
|
||||
SRC_URI="https://download.savannah.gnu.org/releases/${PN}/${P/_/-}.tar.gz"
|
||||
SRC_URI+=" verify-sig? ( https://download.savannah.gnu.org/releases/${PN}/${P/_/-}.tar.gz.sig )"
|
||||
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"
|
||||
|
||||
BDEPEND="verify-sig? ( sec-keys/openpgp-keys-antoniodiazdiaz )"
|
||||
|
||||
src_configure() {
|
||||
# not autotools-based
|
||||
./configure \
|
||||
--prefix="${EPREFIX}"/usr \
|
||||
CXX="$(tc-getCXX)" \
|
||||
CPPFLAGS="${CPPFLAGS}" \
|
||||
CXXFLAGS="${CXXFLAGS}" \
|
||||
LDFLAGS="${LDFLAGS}" || die
|
||||
}
|
@ -1,6 +1,3 @@
|
||||
DIST rarlinux-x32-624.tar.gz 627966 BLAKE2B 8069b5a33bbc229c1f64564bc483e98da8996388890defe03cd430571a269ec9a0d935bdb9ca24d97a5ca2d2eff078c50f2ed158a5d48a263312063ff56b073d SHA512 967ca151e2927f427738c49eedd0bd4a0c1e56bd43d417bfbfb1e940d553c30a4860b279b90a47151838312f8e788f0fee13c424ee3b31ab2574a077de957234
|
||||
DIST rarlinux-x32-700.tar.gz 739081 BLAKE2B 3f0d18ba3c9ff6b606bbddd3aafcc70209d87a1aa08877fa8ee62e4c28a56b0dd0d38304d273abb708fa1a9fb1d2264df0dc7eb2ac6dbd1264b250df40f141c5 SHA512 a1f1d1f203ae2f98949346ad331a27ce2d120bf28f289fc42d286fae5c9392af033a4ff72fbe078a130b9267eb42e9739db35aa98ce07f4d97566299aa233934
|
||||
DIST rarlinux-x64-624.tar.gz 614146 BLAKE2B 4cad338a68234a8223b63427fbb2d735b65012d79466c0ef799b5764e2df8e575c3e42dcaa37c8a3e5e51474633452dc4e832b05a7c13164e1778d4f741edc49 SHA512 04b935d918d7636bf7cececee2c306f6c586ac363932a30529dcf0e5e199823ca976269acf26456f9a91830dfe909d67ff0a13e55a68096e59875e46e0e0b0de
|
||||
DIST rarlinux-x64-700.tar.gz 730268 BLAKE2B 6a3c4890232b6bdc24a6e321bff66c8a41c3c64b7da8dbcd40714de647edabb32f8719be882335895a09453f36e247b7ce96edf8089f8fa6ea08489d69eb7813 SHA512 988b755d1b52051f5d4115a64f598e5d6a6a9d1756e8136a00a159001199bf684c4961245c1010f0414e174f61964e1e3f32f437810708cd77742b9b89946166
|
||||
DIST winrar-x64-624.exe 3589048 BLAKE2B 5afb3069bea3e73f6f8aca103a99fb83d09fc0bf692757e5213515423918a7219a86dc0a5936131a180a0e324b04c9685cb47a493cb69f61f7673d4f45bcac26 SHA512 f5f61a3cf4440d9fa59e7093341a293c0b42081b547992284e54cef61eee1f817fdbbbcc2cb921b077f8bce5b9280072c0f3b5a1bff266ef23c3d9a792d24b9f
|
||||
DIST winrar-x64-700.exe 3911632 BLAKE2B f2191937e1e3d0938f0ca2c56467c838415401a20a0966efad050e9fde5fe7fc6e05694c98fd06daa6fe4d7c03f588e60d456d8d510c849929a52dab36d6a10a SHA512 bc94f526d4dd751a44071dd6f540f2957d96f5c6500d7e5bb41ec6581bb0a584a6bb91fe13f7a1d9c7749c4601b1fe95f2a12a204b73bdc9a37c83cff7ac35c3
|
||||
|
@ -1,120 +0,0 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
MY_PV="${PV/./}"
|
||||
URI_AMD64="https://www.rarlab.com/rar/rarlinux-x64-${MY_PV}.tar.gz"
|
||||
URI_X86="https://www.rarlab.com/rar/rarlinux-x32-${MY_PV}.tar.gz"
|
||||
URI_WIN64="https://www.rarlab.com/rar/winrar-x64-${MY_PV}.exe"
|
||||
|
||||
inherit unpacker
|
||||
|
||||
DESCRIPTION="RAR compressor/uncompressor"
|
||||
HOMEPAGE="https://www.rarlab.com/"
|
||||
SRC_URI="
|
||||
all-sfx? (
|
||||
${URI_AMD64}
|
||||
${URI_X86}
|
||||
${URI_WIN64}
|
||||
)
|
||||
amd64? ( ${URI_AMD64} )
|
||||
x86? ( ${URI_X86} )
|
||||
"
|
||||
S="${WORKDIR}/${PN}"
|
||||
|
||||
LICENSE="BSD BSD-2 RAR"
|
||||
SLOT="0"
|
||||
KEYWORDS="-* amd64 x86"
|
||||
IUSE="all-sfx"
|
||||
RESTRICT="bindist mirror"
|
||||
|
||||
RDEPEND="sys-libs/glibc"
|
||||
BDEPEND="all-sfx? ( app-arch/unrar )"
|
||||
|
||||
DOCS=( "acknow.txt" "rar.txt" "readme.txt" "whatsnew.txt" )
|
||||
|
||||
QA_PREBUILT="
|
||||
opt/rar/default.sfx
|
||||
opt/rar/default-elf32.sfx
|
||||
opt/rar/default-elf64.sfx
|
||||
opt/rar/default-win32.sfx
|
||||
opt/rar/default-win64.sfx
|
||||
opt/rar/unrar
|
||||
opt/rar/rar
|
||||
opt/rar/WinCon.SFX
|
||||
opt/rar/WinCon64.SFX
|
||||
opt/rar/Zip.SFX
|
||||
opt/rar/Zip64.SFX
|
||||
"
|
||||
|
||||
src_unpack() {
|
||||
local _file
|
||||
|
||||
for _file in ${A}; do
|
||||
if [[ "${_file}" == rarli* ]]; then
|
||||
if [[ "${_file}" =~ x64 ]]; then
|
||||
if ! use amd64; then
|
||||
continue
|
||||
fi
|
||||
|
||||
unpack "${_file}"
|
||||
elif [[ ! "${_file}" =~ x64 ]]; then
|
||||
if ! use x86; then
|
||||
continue
|
||||
fi
|
||||
|
||||
unpack "${_file}"
|
||||
else
|
||||
die "Unknown SRC file '${_file}'!"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
if use all-sfx ; then
|
||||
mkdir sfx
|
||||
cd sfx
|
||||
for _file in ${A}; do
|
||||
if [[ "${_file}" == rarli* ]]; then
|
||||
unpack "${_file}"
|
||||
if [[ "${_file}" =~ x64 ]]; then
|
||||
mv rar/default.sfx default-elf64.sfx || die
|
||||
else
|
||||
mv rar/default.sfx default-elf32.sfx || die
|
||||
fi
|
||||
elif [[ "${_file}" == winrar* ]]; then
|
||||
ln -s "${DISTDIR}"/${_file} w64.rar || die
|
||||
unpack_rar ./w64.rar
|
||||
mv Default.SFX default-win32.sfx || die
|
||||
mv Default64.SFX default-win64.sfx || die
|
||||
else
|
||||
die "Unknown SFX file '${_file}'!"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
src_compile() { :; }
|
||||
|
||||
src_install() {
|
||||
exeinto /opt/rar
|
||||
doexe rar unrar
|
||||
|
||||
insinto /opt/rar
|
||||
doins rarfiles.lst
|
||||
|
||||
if use all-sfx; then
|
||||
doins "${WORKDIR}"/sfx/*.{sfx,SFX}
|
||||
else
|
||||
doins default.sfx
|
||||
fi
|
||||
|
||||
dodir /opt/bin
|
||||
dosym ../rar/rar /opt/bin/rar
|
||||
dosym ../rar/unrar /opt/bin/unrar
|
||||
|
||||
docinto html
|
||||
dodoc order.htm
|
||||
|
||||
einstalldocs
|
||||
}
|
Binary file not shown.
@ -1,2 +1 @@
|
||||
DIST borgbackup-1.2.7.tar.gz 4370372 BLAKE2B 8d69f3e7890ee117e1fe2cdf6b92c548bc40b337de09850948150034fc4724bf05c51c852a268df2294e3657676920a1c663a421331fd6dba5fffa558429f11e SHA512 313f495d09bff9d2106a2354d02e8b5478dbce279ccfe863d22bbca40fe1bef94fc575e4ae45585a776689fa0058982c4c009c423ac948cc229e15bb5eb5f2bc
|
||||
DIST borgbackup-1.2.8.tar.gz 4369117 BLAKE2B f230274189716e6ecb8f73d10caa13e683e63c9d9f50c5b6235fc666a0f64f3048421e76e5b57626144c37d37d28c4371b368f780f5e32055f62d5ff10954c19 SHA512 9a62e5eec894ebffe928a08c9a0cceebde084f16524d363a3c3be01d908a7eceaea8fa11eac422acc0fdb2534d79d1ee5ec5d9167e1086f334af6a28887616d5
|
||||
|
@ -1,53 +0,0 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
DISTUTILS_EXT=1
|
||||
DISTUTILS_USE_PEP517=setuptools
|
||||
PYTHON_COMPAT=( python3_{10..12} )
|
||||
|
||||
inherit bash-completion-r1 distutils-r1 pypi
|
||||
|
||||
DESCRIPTION="Deduplicating backup program with compression and authenticated encryption"
|
||||
HOMEPAGE="https://borgbackup.readthedocs.io/"
|
||||
|
||||
LICENSE="BSD"
|
||||
SLOT="0"
|
||||
KEYWORDS="amd64 ~arm arm64 ~ppc64 ~riscv x86"
|
||||
|
||||
# "import file mismatch" when in S, "attempted relative import with no
|
||||
# known parent package" when in BUILD_DIR/install/.../borg/testsuite.
|
||||
# Needs work.
|
||||
RESTRICT="test"
|
||||
|
||||
DEPEND="app-arch/lz4
|
||||
app-arch/zstd
|
||||
dev-libs/openssl:0=
|
||||
>=dev-libs/xxhash-0.8.1
|
||||
virtual/acl"
|
||||
# borgbackup is *very* picky about which msgpack it work with,
|
||||
# check setup.py on bumps.
|
||||
RDEPEND="${DEPEND}
|
||||
~dev-python/msgpack-1.0.7[${PYTHON_USEDEP}]
|
||||
dev-python/packaging[${PYTHON_USEDEP}]
|
||||
dev-python/pyfuse3[${PYTHON_USEDEP}]"
|
||||
|
||||
BDEPEND="dev-python/cython[${PYTHON_USEDEP}]
|
||||
dev-python/pkgconfig[${PYTHON_USEDEP}]
|
||||
dev-python/setuptools-scm[${PYTHON_USEDEP}]"
|
||||
|
||||
distutils_enable_tests pytest
|
||||
|
||||
src_install() {
|
||||
distutils-r1_src_install
|
||||
doman docs/man/*
|
||||
|
||||
dobashcomp scripts/shell_completions/bash/borg
|
||||
|
||||
insinto /usr/share/zsh/site-functions
|
||||
doins scripts/shell_completions/zsh/_borg
|
||||
|
||||
insinto /usr/share/fish/vendor_completions.d
|
||||
doins scripts/shell_completions/fish/borg.fish
|
||||
}
|
@ -1,2 +1,3 @@
|
||||
DIST borgmatic-1.8.10.tar.gz 599453 BLAKE2B 1ae994d452d29139d23940500d7c9f01e7fc1ddbd36254bf0c36d7f56064ccba7fb8434741dd0114d42271eb241098a12f8a07b83046447ae2225f7cd2ab12ae SHA512 10f5d962f6d25ef42ba4d076e238e1986dcfcd9832b3eea08560f367524824fdb0f80f42962ea6a471d711c6a0e293669b85abdc160475c20eed851ce7ad7f42
|
||||
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."
|
||||
}
|
Binary file not shown.
@ -0,0 +1,51 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
DESCRIPTION="A Cross-Platform Benchmark for Android, iOS, Linux, MacOS and Windows"
|
||||
HOMEPAGE="https://www.geekbench.com/"
|
||||
SRC_URI="
|
||||
amd64? ( https://cdn.geekbench.com/Geekbench-${PV}-Linux.tar.gz )
|
||||
arm64? ( https://cdn.geekbench.com/Geekbench-${PV}-LinuxARMPreview.tar.gz )
|
||||
"
|
||||
S="${WORKDIR}"
|
||||
|
||||
LICENSE="geekbench"
|
||||
SLOT="6"
|
||||
KEYWORDS="-* ~amd64 ~arm64"
|
||||
|
||||
RESTRICT="bindist mirror"
|
||||
|
||||
QA_PREBUILT="
|
||||
opt/geekbench6/geekbench_aarch64
|
||||
opt/geekbench6/geekbench_avx2
|
||||
opt/geekbench6/geekbench_x86_64
|
||||
opt/geekbench6/geekbench6
|
||||
"
|
||||
|
||||
pkg_nofetch() {
|
||||
elog "Please download ${A} from ${HOMEPAGE}/download/linux"
|
||||
elog "and place it in your DISTDIR directory."
|
||||
}
|
||||
|
||||
src_install() {
|
||||
local MY_S="Geekbench-${PV}-Linux$(usex arm64 'ARMPreview' '')"
|
||||
|
||||
exeinto /opt/geekbench6
|
||||
use amd64 && doexe "${MY_S}"/geekbench_avx2 "${MY_S}"/geekbench_x86_64
|
||||
use arm64 && doexe "${MY_S}"/geekbench_aarch64
|
||||
doexe "${MY_S}"/geekbench6
|
||||
|
||||
insinto /opt/geekbench6
|
||||
doins "${MY_S}"/geekbench.plar "${MY_S}"/geekbench-workload.plar
|
||||
|
||||
dodir /opt/bin
|
||||
dosym ../geekbench6/geekbench6 /opt/bin/geekbench6
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
elog "If you have purchased a commercial license, you can enter"
|
||||
elog "your email address and your license key with the following command:"
|
||||
elog "geekbench6 -r <email address> <license key>"
|
||||
}
|
@ -1 +1 @@
|
||||
DIST stress-ng-0.17.06.tar.gz 6244583 BLAKE2B cb5285d5ca12957d9eab7df1e6e011be35cc87a7d43d4d99ec7433588c1c9c959ac05f97b6dde4483ed6c3ad4b9317e299e0650aa8c0cb50f5bd38f8e9bd4ace SHA512 ba59321305a1e3d9ba49f7d71bf8287f1ed37db1b9b54603b2f209272d959ac21a583c5810db5019db0a56c12c7d29e8485d0088c9c3a2e5355657da3ffd4c9f
|
||||
DIST stress-ng-0.17.07.tar.gz 6260811 BLAKE2B f56dc22ca55a3b4e9c22f179653b4f832d164fd61968af146bedd3a9242509f7ede070d5cf9392ba494025682f6dfed33bd6034244c0731716977e2179514929 SHA512 5bd6dc8175d2d410447559c489e7bb1187fdce7657018ac48a2744be6e8998bc21e84b7bc536477b5db170ca9bd2aba0992127af90e3ff2312bd6130061dce6c
|
||||
|
Binary file not shown.
@ -0,0 +1,35 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
DESCRIPTION="Creates CD-Covers via LaTeX by fetching cd-info from freedb.org or local file"
|
||||
HOMEPAGE="https://web.archive.org/web/20151104062521/http://www.vanhemert.co.uk/disc-cover.html"
|
||||
SRC_URI="http://www.vanhemert.co.uk/files/${P}.tar.gz"
|
||||
|
||||
LICENSE="GPL-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="amd64 ppc sparc x86"
|
||||
|
||||
BDEPEND="dev-lang/perl"
|
||||
RDEPEND="${BDEPEND}
|
||||
dev-perl/Audio-CD-disc-cover
|
||||
virtual/latex-base"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}/${P}-defined-error.patch"
|
||||
)
|
||||
|
||||
src_compile() {
|
||||
pod2man disc-cover > disc-cover.1 || die
|
||||
}
|
||||
|
||||
src_install() {
|
||||
dobin disc-cover
|
||||
|
||||
einstalldocs
|
||||
doman disc-cover.1
|
||||
|
||||
insinto /usr/share/disc-cover/templates
|
||||
doins -r templates/.
|
||||
}
|
@ -0,0 +1,10 @@
|
||||
--- disc-cover-1.5.6.orig/disc-cover 2006-06-20 14:16:24.000000000 +0200
|
||||
+++ disc-cover-1.5.6/disc-cover 2023-12-26 00:27:51.511140810 +0100
|
||||
@@ -743,7 +743,7 @@
|
||||
{
|
||||
my ($error) = defined($_[0]) ? $_[0] : undef ;
|
||||
shift;
|
||||
- my (@solutions) = defined(@_) ? @_ : undef;
|
||||
+ my (@solutions) = @_;
|
||||
|
||||
warn "Error: $error\n" if defined ($error);
|
Binary file not shown.
@ -0,0 +1,77 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
# Git commit SHA is needed at runtime by earthly to pull and bootstrap images.
|
||||
if [[ "${PV}" == 0.8.8 ]] ; then
|
||||
COMMIT_SHA=2718b793272cf8f80fa61071b41fec8469a7427b
|
||||
else
|
||||
die 'Could not detect "COMMIT_SHA", please update the ebuild.'
|
||||
fi
|
||||
|
||||
inherit go-module unpacker
|
||||
|
||||
DESCRIPTION="Build automation tool that executes in containers"
|
||||
HOMEPAGE="https://earthly.dev/
|
||||
https://github.com/earthly/earthly/"
|
||||
SRC_URI="
|
||||
https://github.com/${PN}/${PN}/archive/v${PV}.tar.gz
|
||||
-> ${P}.tar.gz
|
||||
https://dev.gentoo.org/~xgqt/distfiles/deps/${P}-deps.tar.zst
|
||||
"
|
||||
|
||||
LICENSE="MPL-2.0"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
|
||||
RDEPEND="
|
||||
|| (
|
||||
app-containers/docker
|
||||
app-containers/podman
|
||||
)
|
||||
"
|
||||
|
||||
DOCS=( CHANGELOG.md CONTRIBUTING.md README.md )
|
||||
|
||||
src_unpack() {
|
||||
unpacker "${P}-deps.tar.zst"
|
||||
|
||||
go-module_src_unpack
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
local go_tags="dfrunmount,dfrunsecurity,dfsecrets,dfssh,dfrunnetwork,dfheredoc,forceposix"
|
||||
local go_ldflags="
|
||||
-X main.DefaultBuildkitdImage=docker.io/earthly/buildkitd:v${PV}
|
||||
-X main.GitSha=${COMMIT_SHA}
|
||||
-X main.Version=v${PV}
|
||||
"
|
||||
local -a go_buildargs=(
|
||||
-tags "${go_tags}"
|
||||
-ldflags "${go_ldflags}"
|
||||
-o ./bin/
|
||||
)
|
||||
ego build "${go_buildargs[@]}" ./cmd/...
|
||||
}
|
||||
|
||||
src_install() {
|
||||
exeinto /usr/bin
|
||||
doexe bin/earthly
|
||||
newexe bin/debugger earthly-debugger
|
||||
|
||||
einstalldocs
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
if has_version "app-containers/podman" ; then
|
||||
ewarn "Podman is supported but not recommended."
|
||||
ewarn "If issues arise, then please try running earthly with docker."
|
||||
fi
|
||||
|
||||
if has_version "app-containers/podman[rootless]" ; then
|
||||
ewarn "Running podman in rootless mode is not supported because"
|
||||
ewarn "earthly/dind and earthly/buildkit require privileged access."
|
||||
ewarn "For more info see: https://docs.earthly.dev/docs/guides/podman/"
|
||||
fi
|
||||
}
|
@ -1,3 +1,3 @@
|
||||
DIST podman-4.9.4.tar.gz 21733620 BLAKE2B 17d099c0a13fbbb77556742313c39995127fc97b4086ef3c2d74a92cc0a4f825a6c729dd099c6d4f4cd3d2ebfd470494babdeaa85a5653b327ea1a16fb5ea993 SHA512 7b52555789a1c214fcf26b0826bdda6cf0ccca588f87c0f15ac5e8358ddac625e17cafbe6a43de07cad964e1418b5ee0d2e38a5cb5dc6f6d4e638399749a7f7b
|
||||
DIST podman-5.0.0.tar.gz 21861935 BLAKE2B 1ec7006f272f5da7f93929bc543cd8988d6f9596cb868e9561578ebef85d51cbd6baa4b66571872fc9748c639ca636ce27f6d90303707f04caa321c7b71db81a SHA512 8800d96d668cbc7a7ff85a09c71b3307a280c124513fd02fe478f415cf8db43ee47dc7e9c3b75046c6bda9f916937a2cc59887c2c4b26766c2f770abb87fd7ce
|
||||
DIST podman-5.0.1.tar.gz 21863115 BLAKE2B 433949d70e7984a278d5231fe4a480d0c758a67e6df30f587f25da727440ba944cf38bb979ab6b6375f0ba65038c6b4c5a8ca73c6bc73df57b92089c5f6c072e SHA512 4ab64beea9b23839caa35bf8ec0f097ed16b4d2f448ce16039bb55672ac8b1d8d8cadf86c21eb32dc2c1d30dabb5b57a141823aa5fc3f14f09741f76cffa6023
|
||||
DIST podman-5.0.2.tar.gz 23811875 BLAKE2B e943eb36eb0b80332223afc5d971c0886f6eaffeb7133c634d28c0a38e9aae6a54266691067dbca7684882f8b6dad72c3d5de2287ec5a7e8fb4b1cfd96df0b4d SHA512 70dbac9fc81d66eb9b0a5174f5776b805397005cacca917674d2b001591fadd05a776c956e693bad932e9eefe591c35da5c566e8e9e01db8be42bc454cd03104
|
||||
|
Binary file not shown.
@ -0,0 +1,68 @@
|
||||
From 4dec5295361d753c3466bc9e8b0ae3a3cc58dff5 Mon Sep 17 00:00:00 2001
|
||||
From: Juergen Repp <juergen_repp@web.de>
|
||||
Date: Thu, 4 Apr 2024 09:42:51 +0200
|
||||
Subject: [PATCH] test eventlog.sh Fix accidental deletions.
|
||||
|
||||
* Accidental deletions made in commit 196e3d439407e81040ced054a8ed302489348a9d
|
||||
are undone.
|
||||
* python3 is used as default instead of python.
|
||||
|
||||
Signed-off-by: Juergen Repp <juergen_repp@web.de>
|
||||
---
|
||||
test/integration/tests/eventlog.sh | 33 ++++++++++++++++++++++++++++--
|
||||
1 file changed, 31 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/test/integration/tests/eventlog.sh b/test/integration/tests/eventlog.sh
|
||||
index 9d5290f0..e7c13706 100755
|
||||
--- a/test/integration/tests/eventlog.sh
|
||||
+++ b/test/integration/tests/eventlog.sh
|
||||
@@ -3,7 +3,7 @@
|
||||
set -E
|
||||
shopt -s expand_aliases
|
||||
|
||||
-alias python=${PYTHON-python}
|
||||
+alias python=${PYTHON-python3}
|
||||
|
||||
yaml_validate() {
|
||||
cmd=$1
|
||||
@@ -88,7 +88,36 @@ expect_pass() {
|
||||
expect_fail
|
||||
expect_fail foo
|
||||
expect_fail foo bar
|
||||
-expect_fail ${srcdir}/test/integration/fix
|
||||
+expect_fail ${srcdir}/test/integration/fixtures/event-bad.bin
|
||||
+
|
||||
+expect_pass ${srcdir}/test/integration/fixtures/specid-vendordata.bin
|
||||
+expect_pass ${srcdir}/test/integration/fixtures/event.bin
|
||||
+expect_pass ${srcdir}/test/integration/fixtures/event-uefivar.bin
|
||||
+expect_pass ${srcdir}/test/integration/fixtures/event-uefiaction.bin
|
||||
+expect_pass ${srcdir}/test/integration/fixtures/event-uefiservices.bin
|
||||
+expect_pass ${srcdir}/test/integration/fixtures/event-uefi-sha1-log.bin
|
||||
+expect_pass ${srcdir}/test/integration/fixtures/event-bootorder.bin
|
||||
+expect_pass ${srcdir}/test/integration/fixtures/event-postcode.bin
|
||||
+
|
||||
+# Make sure that --eventlog-version=2 works on complete TPM2 logs
|
||||
+expect_pass ${srcdir}/test/integration/fixtures/event-arch-linux.bin --eventlog-version=2
|
||||
+expect_pass ${srcdir}/test/integration/fixtures/event-gce-ubuntu-2104-log.bin --eventlog-version=2
|
||||
+expect_pass ${srcdir}/test/integration/fixtures/event-sd-boot-fedora37.bin --eventlog-version=2
|
||||
+expect_pass ${srcdir}/test/integration/fixtures/event-moklisttrusted.bin --eventlog-version=2
|
||||
+
|
||||
+# Pick an event with leading whitespace and validate we have
|
||||
+# preserved it correctly after parsing the YAML
|
||||
+event=$(yaml_validate "print(y['events'][80]['Event']['String'])" < ${srcdir}/test/integration/fixtures/event-moklisttrusted.bin.yaml | tr -d '\0')
|
||||
+expect=$(echo -e "grub_cmd: menuentry UEFI Firmware Settings --id uefi-firmware {\n\t\tfwsetup\n\t}")
|
||||
+if test "$event" != "$expect"
|
||||
+then
|
||||
+ echo "Got $event"
|
||||
+ echo "Want $expect"
|
||||
+ exit 1
|
||||
+fi
|
||||
+
|
||||
+# Compare strings generated by tpm2_eventlog with binary data of the corresponding
|
||||
+# events.
|
||||
hex_file="${srcdir}/test/integration/fixtures/event-moklisttrusted-hex.yaml"
|
||||
tool_file="${srcdir}/test/integration/fixtures/event-moklisttrusted.bin.yaml"
|
||||
|
||||
--
|
||||
2.43.2
|
||||
|
Binary file not shown.
@ -1,9 +1,3 @@
|
||||
DIST vscode-1.87.2-amd64.tar.gz 140710466 BLAKE2B 576be13495b91cbb0a0e9033a3872a311293a1dfc579d52e9eedd28ffbc40d4949e420e7b5439263b6ecce3f2b175247647732e6057f98367eb294b9aa8a8945 SHA512 c9f4a1cccf7df1cc152b41f77f9fed8752aacd848060464165a12f161d2df88cbae8ba447f43ca0285777e6e05125e79d054557fbe4b26e660a9544ba9a26c75
|
||||
DIST vscode-1.87.2-arm.tar.gz 126088523 BLAKE2B bf319c10c244387ec5f1f4fa21951b497bed1757e51fa90f54e50376f991daff54b2dba9bb410d27183c4598c187d12ed45794ad32b97c83fb2173d9fac2dc09 SHA512 a41a9f200cecc3dbe7c30c13b3d3a8c564dd3f526dd7969c1c6d83313ce1bdd052a94295897a4f2c5810b7a6bf36255234523477990c0db821d6913c50eda6a2
|
||||
DIST vscode-1.87.2-arm64.tar.gz 137662384 BLAKE2B af725963c3dc71d50efa5ff3cc7a3995a45a9d2846f736b1a26c02b2c9b7f1567831a75bb4896398c45f9cb5fcadf6e7d17114b50065155d9f80d8015ce25d1d SHA512 b99be940c5d5ebc8c39e1c52eaa49930bffcbaae41bd071e8aca2d1b08ff14c2ce8fda75f8f2e74a495ca59218045643ec91e7b2c4fe4b2ffeaaf33fddb5ed7c
|
||||
DIST vscode-1.88.0-amd64.tar.gz 142821004 BLAKE2B 77a683594fe68b95c2525b1fc6095f5ada366e17113ef324f6e3bf4ebe9b1e2f642bdca1c59a284538b5e868840e4a075ab6bc899a6687a773e1f7001363c956 SHA512 56c8f8e3b84e1332c094b65fe66b1d73e5bf15312d49dcd9dce43f722c71522bbd538c333c9cb6c48151d54ed71d0bcf4ba724a6977a0610ff7f40728ba310eb
|
||||
DIST vscode-1.88.0-arm.tar.gz 128137355 BLAKE2B 84264085419b461b6ab50096c8c1f07945b22bb32afcd03e26e340259052889cfe333244ae387ebbdc236b18081e7f7ac3fd02421614e7877cd0bfa6e7dbc088 SHA512 65a3765327b61233f36f856ae674e516a5049e4013c08e7be37fdf6e8c529b3c3910bac31f0c4e0998f96c03b5ac61d0aac98b9d1f3cfc53b302697ab41257d1
|
||||
DIST vscode-1.88.0-arm64.tar.gz 139085528 BLAKE2B 7f002d28e92f1b372f488616cd9e1c7169c3bd3d07b47ec448a9adc2cc87e829bd1d5a067c40b4792bef93e3daee9b4457104e6dd527f36505615af00a86138c SHA512 7ce8ab674c16de100041ea2bdbb0fa4033c1b28154a67e6ee1b8cb68063b60f5d5ed3bc95c311081a78f1ee29e504aa7977564a43e76576709dcf2213d7acdf0
|
||||
DIST vscode-1.88.1-amd64.tar.gz 142835966 BLAKE2B f78ed2a0a68d9c632ac1b8c811647696da2f9d86d1c171fdc1a0ea75f77872bb5e9a860020a49c0e3a3cfcafd85f9cf9da3300326b1e08077bc6f1eeb1c53f64 SHA512 5730981a13d72a317c180b566ec0d3408e75bb80eb37dd7de58e2beb4492ab59df9009cff92b3ac1cb4283f66868d793bdffc0689248fb3630e9cf55bfcc7bab
|
||||
DIST vscode-1.88.1-arm.tar.gz 128139341 BLAKE2B 36da83b891554c2e4090e70635f7c241e20dd5be0beddcf15df32563ef47e20e5de3f4cef874b2b0ebf49702582cb604e7a4e2355d5a46ecc8f934de42b49c1e SHA512 79e181b0c8603c06605eaa1901527bb5da593c40ce2a830b36f80911648736125c5f12ec98fe9ca61edeea051f5ab8cd172983a0228800b32a718ef4a00ef089
|
||||
DIST vscode-1.88.1-arm64.tar.gz 139073832 BLAKE2B 884231acc011963151ca6121243c459415b261158ee01056cbc7316f4ac7f05fe65583500d6f2cc9967975fd5ff063b02c2b7bd85aa2e2614d844f72385cb672 SHA512 af02536c815e78c12ffeb5f472e63f7390cb619e772256d00cf130898fb836a853fe9fd6362540d1dd1384949e13ca261a98da6abdf8781e62e981ab47847eaf
|
||||
|
@ -1,132 +0,0 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit desktop pax-utils xdg optfeature
|
||||
|
||||
DESCRIPTION="Multiplatform Visual Studio Code from Microsoft"
|
||||
HOMEPAGE="https://code.visualstudio.com"
|
||||
SRC_URI="
|
||||
amd64? ( https://update.code.visualstudio.com/${PV}/linux-x64/stable -> ${P}-amd64.tar.gz )
|
||||
arm? ( https://update.code.visualstudio.com/${PV}/linux-armhf/stable -> ${P}-arm.tar.gz )
|
||||
arm64? ( https://update.code.visualstudio.com/${PV}/linux-arm64/stable -> ${P}-arm64.tar.gz )
|
||||
"
|
||||
S="${WORKDIR}"
|
||||
|
||||
LICENSE="
|
||||
Apache-2.0
|
||||
BSD
|
||||
BSD-1
|
||||
BSD-2
|
||||
BSD-4
|
||||
CC-BY-4.0
|
||||
ISC
|
||||
LGPL-2.1+
|
||||
Microsoft-vscode
|
||||
MIT
|
||||
MPL-2.0
|
||||
openssl
|
||||
PYTHON
|
||||
TextMate-bundle
|
||||
Unlicense
|
||||
UoI-NCSA
|
||||
W3C
|
||||
"
|
||||
SLOT="0"
|
||||
KEYWORDS="-* amd64 ~arm ~arm64"
|
||||
IUSE="egl kerberos wayland"
|
||||
RESTRICT="mirror strip bindist"
|
||||
|
||||
RDEPEND="
|
||||
>=app-accessibility/at-spi2-core-2.46.0:2
|
||||
app-crypt/libsecret[crypt]
|
||||
app-misc/ca-certificates
|
||||
dev-libs/expat
|
||||
dev-libs/glib:2
|
||||
dev-libs/nspr
|
||||
dev-libs/nss
|
||||
media-libs/alsa-lib
|
||||
media-libs/libcanberra[gtk3]
|
||||
media-libs/libglvnd
|
||||
media-libs/mesa
|
||||
net-misc/curl
|
||||
sys-apps/dbus
|
||||
sys-libs/zlib
|
||||
sys-process/lsof
|
||||
x11-libs/cairo
|
||||
x11-libs/gtk+:3
|
||||
x11-libs/libdrm
|
||||
x11-libs/libX11
|
||||
x11-libs/libxcb
|
||||
x11-libs/libXcomposite
|
||||
x11-libs/libXdamage
|
||||
x11-libs/libXext
|
||||
x11-libs/libXfixes
|
||||
x11-libs/libxkbcommon
|
||||
x11-libs/libxkbfile
|
||||
x11-libs/libXrandr
|
||||
x11-libs/libXScrnSaver
|
||||
x11-libs/pango
|
||||
x11-misc/xdg-utils
|
||||
kerberos? ( app-crypt/mit-krb5 )
|
||||
"
|
||||
|
||||
QA_PREBUILT="*"
|
||||
|
||||
src_install() {
|
||||
if use amd64; then
|
||||
cd "${WORKDIR}/VSCode-linux-x64" || die
|
||||
elif use arm; then
|
||||
cd "${WORKDIR}/VSCode-linux-armhf" || die
|
||||
elif use arm64; then
|
||||
cd "${WORKDIR}/VSCode-linux-arm64" || die
|
||||
else
|
||||
die "Visual Studio Code only supports amd64, arm and arm64"
|
||||
fi
|
||||
|
||||
# Cleanup
|
||||
rm -r ./resources/app/ThirdPartyNotices.txt || die
|
||||
|
||||
# Disable update server
|
||||
sed -e "/updateUrl/d" -i ./resources/app/product.json || die
|
||||
|
||||
if ! use kerberos; then
|
||||
rm -r ./resources/app/node_modules.asar.unpacked/kerberos || die
|
||||
fi
|
||||
|
||||
# Install
|
||||
pax-mark m code
|
||||
mkdir -p "${ED}/opt/${PN}" || die
|
||||
cp -r . "${ED}/opt/${PN}" || die
|
||||
fperms 4711 /opt/${PN}/chrome-sandbox
|
||||
|
||||
dosym -r "/opt/${PN}/bin/code" "usr/bin/vscode"
|
||||
dosym -r "/opt/${PN}/bin/code" "usr/bin/code"
|
||||
|
||||
local EXEC_EXTRA_FLAGS=()
|
||||
if use wayland; then
|
||||
EXEC_EXTRA_FLAGS+=( "--ozone-platform-hint=auto" "--enable-wayland-ime" )
|
||||
fi
|
||||
if use egl; then
|
||||
EXEC_EXTRA_FLAGS+=( "--use-gl=egl" )
|
||||
fi
|
||||
|
||||
sed "s|@exec_extra_flags@|${EXEC_EXTRA_FLAGS[*]}|g" \
|
||||
"${FILESDIR}/code-url-handler.desktop" \
|
||||
> "${T}/code-url-handler.desktop" || die
|
||||
|
||||
sed "s|@exec_extra_flags@|${EXEC_EXTRA_FLAGS[*]}|g" \
|
||||
"${FILESDIR}/code.desktop" \
|
||||
> "${T}/code.desktop" || die
|
||||
|
||||
domenu "${T}/code.desktop"
|
||||
domenu "${T}/code-url-handler.desktop"
|
||||
newicon "resources/app/resources/linux/code.png" "vscode.png"
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
xdg_pkg_postinst
|
||||
optfeature "desktop notifications" x11-libs/libnotify
|
||||
optfeature "keyring support inside vscode" "virtual/secret-service"
|
||||
}
|
@ -1,132 +0,0 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit desktop pax-utils xdg optfeature
|
||||
|
||||
DESCRIPTION="Multiplatform Visual Studio Code from Microsoft"
|
||||
HOMEPAGE="https://code.visualstudio.com"
|
||||
SRC_URI="
|
||||
amd64? ( https://update.code.visualstudio.com/${PV}/linux-x64/stable -> ${P}-amd64.tar.gz )
|
||||
arm? ( https://update.code.visualstudio.com/${PV}/linux-armhf/stable -> ${P}-arm.tar.gz )
|
||||
arm64? ( https://update.code.visualstudio.com/${PV}/linux-arm64/stable -> ${P}-arm64.tar.gz )
|
||||
"
|
||||
S="${WORKDIR}"
|
||||
|
||||
LICENSE="
|
||||
Apache-2.0
|
||||
BSD
|
||||
BSD-1
|
||||
BSD-2
|
||||
BSD-4
|
||||
CC-BY-4.0
|
||||
ISC
|
||||
LGPL-2.1+
|
||||
Microsoft-vscode
|
||||
MIT
|
||||
MPL-2.0
|
||||
openssl
|
||||
PYTHON
|
||||
TextMate-bundle
|
||||
Unlicense
|
||||
UoI-NCSA
|
||||
W3C
|
||||
"
|
||||
SLOT="0"
|
||||
KEYWORDS="-* amd64 ~arm ~arm64"
|
||||
IUSE="egl kerberos wayland"
|
||||
RESTRICT="mirror strip bindist"
|
||||
|
||||
RDEPEND="
|
||||
>=app-accessibility/at-spi2-core-2.46.0:2
|
||||
app-crypt/libsecret[crypt]
|
||||
app-misc/ca-certificates
|
||||
dev-libs/expat
|
||||
dev-libs/glib:2
|
||||
dev-libs/nspr
|
||||
dev-libs/nss
|
||||
media-libs/alsa-lib
|
||||
media-libs/libcanberra[gtk3]
|
||||
media-libs/libglvnd
|
||||
media-libs/mesa
|
||||
net-misc/curl
|
||||
sys-apps/dbus
|
||||
sys-libs/zlib
|
||||
sys-process/lsof
|
||||
x11-libs/cairo
|
||||
x11-libs/gtk+:3
|
||||
x11-libs/libdrm
|
||||
x11-libs/libX11
|
||||
x11-libs/libxcb
|
||||
x11-libs/libXcomposite
|
||||
x11-libs/libXdamage
|
||||
x11-libs/libXext
|
||||
x11-libs/libXfixes
|
||||
x11-libs/libxkbcommon
|
||||
x11-libs/libxkbfile
|
||||
x11-libs/libXrandr
|
||||
x11-libs/libXScrnSaver
|
||||
x11-libs/pango
|
||||
x11-misc/xdg-utils
|
||||
kerberos? ( app-crypt/mit-krb5 )
|
||||
"
|
||||
|
||||
QA_PREBUILT="*"
|
||||
|
||||
src_install() {
|
||||
if use amd64; then
|
||||
cd "${WORKDIR}/VSCode-linux-x64" || die
|
||||
elif use arm; then
|
||||
cd "${WORKDIR}/VSCode-linux-armhf" || die
|
||||
elif use arm64; then
|
||||
cd "${WORKDIR}/VSCode-linux-arm64" || die
|
||||
else
|
||||
die "Visual Studio Code only supports amd64, arm and arm64"
|
||||
fi
|
||||
|
||||
# Cleanup
|
||||
rm -r ./resources/app/ThirdPartyNotices.txt || die
|
||||
|
||||
# Disable update server
|
||||
sed -e "/updateUrl/d" -i ./resources/app/product.json || die
|
||||
|
||||
if ! use kerberos; then
|
||||
rm -r ./resources/app/node_modules.asar.unpacked/kerberos || die
|
||||
fi
|
||||
|
||||
# Install
|
||||
pax-mark m code
|
||||
mkdir -p "${ED}/opt/${PN}" || die
|
||||
cp -r . "${ED}/opt/${PN}" || die
|
||||
fperms 4711 /opt/${PN}/chrome-sandbox
|
||||
|
||||
dosym -r "/opt/${PN}/bin/code" "usr/bin/vscode"
|
||||
dosym -r "/opt/${PN}/bin/code" "usr/bin/code"
|
||||
|
||||
local EXEC_EXTRA_FLAGS=()
|
||||
if use wayland; then
|
||||
EXEC_EXTRA_FLAGS+=( "--ozone-platform-hint=auto" "--enable-wayland-ime" )
|
||||
fi
|
||||
if use egl; then
|
||||
EXEC_EXTRA_FLAGS+=( "--use-gl=egl" )
|
||||
fi
|
||||
|
||||
sed "s|@exec_extra_flags@|${EXEC_EXTRA_FLAGS[*]}|g" \
|
||||
"${FILESDIR}/code-url-handler.desktop" \
|
||||
> "${T}/code-url-handler.desktop" || die
|
||||
|
||||
sed "s|@exec_extra_flags@|${EXEC_EXTRA_FLAGS[*]}|g" \
|
||||
"${FILESDIR}/code.desktop" \
|
||||
> "${T}/code.desktop" || die
|
||||
|
||||
domenu "${T}/code.desktop"
|
||||
domenu "${T}/code-url-handler.desktop"
|
||||
newicon "resources/app/resources/linux/code.png" "vscode.png"
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
xdg_pkg_postinst
|
||||
optfeature "desktop notifications" x11-libs/libnotify
|
||||
optfeature "keyring support inside vscode" "virtual/secret-service"
|
||||
}
|
@ -1,9 +1,6 @@
|
||||
DIST vscodium-1.87.2.24072-amd64.tar.gz 129360253 BLAKE2B ba23577ac6bca179521e817980deece287774fe6124cd8795ac1332773991b17c53ec4ad459616c62e0eb28612e9489321ab350cc3b84659ebecef508c3d474b SHA512 ad1a069f8b27045b200f8816a310b91e03b9c8d6cee7f5983fe7498111dcc9a3f2ec542d40adf0e61421757553e0fc6c43386d294f09c1c321a9c3efa95eca6e
|
||||
DIST vscodium-1.87.2.24072-arm.tar.gz 116213887 BLAKE2B 49700f4be28780e61d1d82f606a07f5053399ca045da04a9764c69c9cbac25e4fc9b6e4eadc73b107c01d6ee2133fd353dfc352c05e7bebbfc4224c72a0ad8e6 SHA512 f926a74a4c83b5686f71488cb9a97dcd425a68252425b45000219f5cd5c4bc614ef2497310031142cc5af9cfc4eadc82e63f546f2c8eae6e04f513b2a7ab7a8e
|
||||
DIST vscodium-1.87.2.24072-arm64.tar.gz 127551847 BLAKE2B 7f8bcc64d094f7d88cb34abfa67530933a4e4452321a979a9c8b718fe728dfa0c5c67448e7f10c5bdb68b255521fa677b0fc0d8576b5281daf91ec38e2dcbb9a SHA512 8140c021fd2730b25428d7beb03db679c25bf0e8678a4641f9db55015faf79377c2c23b03121d51ea063162e4dc93872f92ac1d4e2dead36722d44e4a802790b
|
||||
DIST vscodium-1.88.0.24096-amd64.tar.gz 129277895 BLAKE2B 8f7b2315fd55595c0d9b1e8925ed057847b08a3bc872a46dd99798af4e3a8b13dc45b6acf603b82b08b2756d6a944b848d27347ebc2a818b9a8ceedb577d20cc SHA512 53627ff4715e85142ea5b021a38af254d279a15046e4153538043ec2bfb82dbd8a7490f7dda4ebc6eac56f54fb435cfeb3b7ddddf08539855a055d4cbed13da1
|
||||
DIST vscodium-1.88.0.24096-arm.tar.gz 118180248 BLAKE2B b9ab1f070541b56534c0568609428d24930bb3729e659677aaa48e11890ce91fa5c3ad487cc60927caf84fa90ff79e791181e7047cb6f8f2e55608cb929d4ad6 SHA512 eaa29c3793dae51cde6a5b9f1194fa58ec800e3eb68be2ff3178a05b78690d47b86884a8f8b155198ba8ec7bbd2fdc4d4e1d71875c2469c64189fad6c7fb53bb
|
||||
DIST vscodium-1.88.0.24096-arm64.tar.gz 128995233 BLAKE2B 0e566579e2fc11a017ca9e5d0fc21d9298b87ea5a6232bbb008d196bf943fcd4c06fe1308a0a181f6a5d497cb7e35c7ecc1901f76d73895bc572fe01c82edd84 SHA512 74f2f9504806d0d7cbb2dc4a51ef7e518b96e17e8d9f87fc569285493a2a3eb828dd15c56a773ca067590821ad27f6ecbe0ec89386cdd814ec5d6dbf524ccfe2
|
||||
DIST vscodium-1.88.1.24102-amd64.tar.gz 129277427 BLAKE2B 5b1584a4b1707e4616515cf242d097a09b83fde6326d2d6ca43bf4f321b299d930e0d3744603ee1a1b6affa72aeecb7a231423116a631aa10b2660efc1f72638 SHA512 e30b983f11ed7567c4e3f21fa9d3574cb60675ac0c1a1b4764c4eea8baa40099d54377a398ad13972f77aab72880789deefbf9f559a8773c62be4fafe954ae48
|
||||
DIST vscodium-1.88.1.24102-arm.tar.gz 118175032 BLAKE2B e1d53eecbfed89f48cbc65674261bb76470dbcac2c4a4a2e5a554beae42643d9a3b4a629872d9f220db0ac0fe7115385ce56663ef86b2d25d940b5ec000c8c21 SHA512 52ea09c2d761860febc1aa7bbb5edc0c6b6a2b8225e49d1c863de774bb6600cecc90bcdad25489d9eb99d4e2cf94f638d4482d539631126603ef5ffa8af1548d
|
||||
DIST vscodium-1.88.1.24102-arm64.tar.gz 128995378 BLAKE2B 1a44737c071687a8126789caae088230c593a39bd49d915fc5b65431a36ccb7685c2f0ddeab8cc7a090acb6264c2b7fac0d6b8fcd270f4ba2ddfd0e3f3c1e02d SHA512 7c9d4f2acf07474fff03d129a8c63a9e663cb0ad0dc9a88020ea04c616f0bbd50586d690e2f7b4ebce6e0dcb5fdae8d620ef566abb5af14e1f7d0b6cc30968b1
|
||||
DIST vscodium-1.88.1.24104-amd64.tar.gz 129280084 BLAKE2B 2d08d9008ef1c0f5890ddce171823cb6dd91b6b5cfdc4136783b8b97a50e7826e95b947b67bcdffb5900dea8718d20ccde6f46d73de295e48444790582ee7805 SHA512 0f7bfb93dabe29ae008d6bc8c571fa3fc7bc97b68eb5725a485dca283c019a7b9dd9ded5c55a9ce7e6ca58f48de1390a542068734acca1060b481cb1e3cb553c
|
||||
DIST vscodium-1.88.1.24104-arm.tar.gz 118167766 BLAKE2B 3b992242adbb8271f7b647ebe2f36c3e3fb30539e69b921cbe981fe92c345f272b465123c4eb789e9e830b2517759deefa8d0bf0cd6ec75a72664a67c4499c53 SHA512 d8a63d8c78931937f487f35f3e4f56405b32d2813855c9752478639cb9abea374749cb22cad54bc5c395c6841032b4b42ce26b754161f91de9b1711ef1fdf1f1
|
||||
DIST vscodium-1.88.1.24104-arm64.tar.gz 128990828 BLAKE2B 4cc567c7c6923a171a133a3176a24855cf5162a35f7d4160812f403fc66367950ee5dad58c08ae3028038dec850af9f42ef542e8698e0bb38b9c45873b3bec74 SHA512 d1e59e057d8882878260630bbf8373445c7c2812068af501a4f883d521f6868866d78a87423f96e51273f8c3f76169dbc4ed408c4c9cf085768e74a0c2d9d092
|
||||
|
@ -1,129 +0,0 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit desktop pax-utils xdg optfeature
|
||||
|
||||
# Usage: arch_src_uri <gentoo arch> <upstream arch>
|
||||
arch_src_uri() {
|
||||
echo "${1}? (
|
||||
https://github.com/VSCodium/${PN}/releases/download/${PV}/VSCodium-linux-${2}-${PV}.tar.gz
|
||||
-> ${P}-${1}.tar.gz
|
||||
)"
|
||||
}
|
||||
|
||||
DESCRIPTION="A community-driven, freely-licensed binary distribution of Microsoft's VSCode"
|
||||
HOMEPAGE="https://vscodium.com/"
|
||||
SRC_URI="
|
||||
$(arch_src_uri amd64 x64)
|
||||
$(arch_src_uri arm armhf)
|
||||
$(arch_src_uri arm64 arm64)
|
||||
"
|
||||
S="${WORKDIR}"
|
||||
|
||||
LICENSE="
|
||||
Apache-2.0
|
||||
BSD
|
||||
BSD-1
|
||||
BSD-2
|
||||
BSD-4
|
||||
CC-BY-4.0
|
||||
ISC
|
||||
LGPL-2.1+
|
||||
MIT
|
||||
MPL-2.0
|
||||
openssl
|
||||
PYTHON
|
||||
TextMate-bundle
|
||||
Unlicense
|
||||
UoI-NCSA
|
||||
W3C
|
||||
"
|
||||
SLOT="0"
|
||||
KEYWORDS="-* amd64 ~arm ~arm64"
|
||||
IUSE="egl kerberos wayland"
|
||||
RESTRICT="strip bindist"
|
||||
|
||||
RDEPEND="
|
||||
>=app-accessibility/at-spi2-core-2.46.0:2
|
||||
app-crypt/libsecret[crypt]
|
||||
app-misc/ca-certificates
|
||||
dev-libs/expat
|
||||
dev-libs/glib:2
|
||||
dev-libs/nspr
|
||||
dev-libs/nss
|
||||
media-libs/alsa-lib
|
||||
media-libs/libcanberra[gtk3]
|
||||
media-libs/libglvnd
|
||||
media-libs/mesa
|
||||
net-misc/curl
|
||||
net-print/cups
|
||||
sys-apps/dbus
|
||||
sys-libs/zlib
|
||||
sys-process/lsof
|
||||
x11-libs/cairo
|
||||
x11-libs/gtk+:3
|
||||
x11-libs/libdrm
|
||||
x11-libs/libX11
|
||||
x11-libs/libxcb
|
||||
x11-libs/libXcomposite
|
||||
x11-libs/libXdamage
|
||||
x11-libs/libXext
|
||||
x11-libs/libXfixes
|
||||
x11-libs/libxkbcommon
|
||||
x11-libs/libxkbfile
|
||||
x11-libs/libXrandr
|
||||
x11-libs/libXScrnSaver
|
||||
x11-libs/pango
|
||||
x11-misc/xdg-utils
|
||||
kerberos? ( app-crypt/mit-krb5 )
|
||||
"
|
||||
|
||||
QA_PREBUILT="*"
|
||||
|
||||
src_install() {
|
||||
# Cleanup license file - it exists only in amd64 tarball
|
||||
rm -f "${S}/resources/app/LICENSE.txt" || die
|
||||
|
||||
if ! use kerberos; then
|
||||
rm -rf "${S}/resources/app/node_modules.asar.unpacked/kerberos" || die
|
||||
fi
|
||||
|
||||
# Install
|
||||
pax-mark m codium
|
||||
mkdir -p "${ED}/opt/${PN}" || die
|
||||
cp -r . "${ED}/opt/${PN}" || die
|
||||
fperms 4711 /opt/${PN}/chrome-sandbox
|
||||
|
||||
dosym -r "/opt/${PN}/bin/codium" "usr/bin/vscodium"
|
||||
dosym -r "/opt/${PN}/bin/codium" "usr/bin/codium"
|
||||
|
||||
local EXEC_EXTRA_FLAGS=()
|
||||
if use wayland; then
|
||||
EXEC_EXTRA_FLAGS+=( "--ozone-platform-hint=auto" )
|
||||
fi
|
||||
if use egl; then
|
||||
EXEC_EXTRA_FLAGS+=( "--use-gl=egl" )
|
||||
fi
|
||||
|
||||
sed "s|@exec_extra_flags@|${EXEC_EXTRA_FLAGS[*]}|g" \
|
||||
"${FILESDIR}/vscodium-url-handler.desktop" \
|
||||
> "${T}/vscodium-url-handler.desktop" || die
|
||||
|
||||
sed "s|@exec_extra_flags@|${EXEC_EXTRA_FLAGS[*]}|g" \
|
||||
"${FILESDIR}/vscodium.desktop" \
|
||||
> "${T}/vscodium.desktop" || die
|
||||
|
||||
domenu "${T}/vscodium.desktop"
|
||||
domenu "${T}/vscodium-url-handler.desktop"
|
||||
newicon "resources/app/resources/linux/code.png" "vscodium.png"
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
xdg_pkg_postinst
|
||||
elog "When compared to the regular VSCode, VSCodium has a few quirks"
|
||||
elog "More information at: https://github.com/VSCodium/vscodium/blob/master/DOCS.md"
|
||||
optfeature "desktop notifications" x11-libs/libnotify
|
||||
optfeature "keyring support inside vscode" "virtual/secret-service"
|
||||
}
|
Binary file not shown.
@ -1,2 +1,3 @@
|
||||
DIST org-mode-release_9.6.23.tar.gz 2212912 BLAKE2B 50f387e72650561c0d76068d4c98c406560f3523e9680b4eebc8a2baa0c445a64eeb3934062f721325afe02ab0ec46d7cdff7bdf2f4f19740c130beee496d26f SHA512 60e9abdaa195a21707dbcb44cf0a30f330307455ecf63ea67db09e19efc171bb670dc31c70baca191c2a35890004871f6513fbeeff890bb18cf92b251dae8ec1
|
||||
DIST org-mode-release_9.6.24.tar.gz 2212983 BLAKE2B 3b780973b68853738b6d74162c100eff4ddb7777c13e9c2a927edbeabebf7763c6a32abc43f7e38fae986a9cbc20926d4b40b54131f0e4acd1fc16f5d62b4b5c SHA512 85696fb49a9764d8163316ae03db02a3324ac828fd11cfda509aaef4ff3af6c7c4aaad0857d225216bc7dd672cf89817b007b63ea78092804abf93475e56e171
|
||||
DIST org-mode-release_9.6.26.tar.gz 2213217 BLAKE2B a4972b4c9647fc816506cc8aebab8d21e0ef461dbf8a0dcaed789c6451ee54464eaa99f59581bc39256b68c8d66c133c60c3c523ac4a31725e7002ccdc6e51b5 SHA512 3b612b3af272c0633d8e11ed210c16218250c3f5b6be7f800659a767ebfc77ebb01bdaf649045ac9ab7edf1bb8a9c7386a8c04eaafe12d943bf48989670ca20d
|
||||
|
@ -0,0 +1,50 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit elisp readme.gentoo-r1
|
||||
|
||||
DESCRIPTION="An Emacs mode for notes and project planning"
|
||||
HOMEPAGE="https://www.orgmode.org/"
|
||||
MY_P="${PN}-release_${PV}"
|
||||
SRC_URI="https://git.savannah.gnu.org/cgit/emacs/${PN}.git/snapshot/${MY_P}.tar.gz"
|
||||
S="${WORKDIR}"/${MY_P}
|
||||
|
||||
LICENSE="GPL-3+ FDL-1.3+ CC-BY-SA-3.0 odt-schema? ( OASIS-Open )"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~ppc ~x86"
|
||||
IUSE="doc odt-schema"
|
||||
RESTRICT="test"
|
||||
|
||||
BDEPEND="doc? ( virtual/texi2dvi )"
|
||||
|
||||
SITEFILE="50${PN}-gentoo.el"
|
||||
|
||||
src_compile() {
|
||||
emake -j1 \
|
||||
ORGVERSION=${PV} \
|
||||
datadir="${EPREFIX}${SITEETC}/${PN}"
|
||||
use doc && emake -j1 pdf card
|
||||
}
|
||||
|
||||
src_install() {
|
||||
emake \
|
||||
ORGVERSION=${PV} \
|
||||
DESTDIR="${D}" \
|
||||
ETCDIRS="styles csl $(use odt-schema && echo schema)" \
|
||||
lispdir="${EPREFIX}${SITELISP}/${PN}" \
|
||||
datadir="${EPREFIX}${SITEETC}/${PN}" \
|
||||
infodir="${EPREFIX}/usr/share/info" \
|
||||
install
|
||||
|
||||
elisp-site-file-install "${FILESDIR}/${SITEFILE}"
|
||||
dodoc README.org CONTRIBUTE.org etc/ORG-NEWS
|
||||
use doc && dodoc doc/org.pdf doc/orgcard.pdf doc/orgguide.pdf
|
||||
|
||||
local DOC_CONTENTS="Org mode has a large variety of run-time dependencies,
|
||||
so you may have to install one or more additional packages.
|
||||
A non-exhaustive list of these dependencies may be found at
|
||||
<http://orgmode.org/worg/org-dependencies.html>."
|
||||
readme.gentoo_create_doc
|
||||
}
|
@ -1,26 +0,0 @@
|
||||
index 2ecaef5..8178375 100644
|
||||
--- a/package-lint.el
|
||||
+++ b/package-lint.el
|
||||
@@ -106,13 +106,15 @@ a backport library shipping the feature and VERSION is an
|
||||
optional minimum version containing the feature.")
|
||||
|
||||
(defconst package-lint-symbol-info
|
||||
- (let* ((stdlib-changes (with-temp-buffer
|
||||
- (insert-file-contents
|
||||
- (expand-file-name "data/stdlib-changes"
|
||||
- (if load-file-name
|
||||
- (file-name-directory load-file-name)
|
||||
- default-directory)))
|
||||
- (read (current-buffer))))
|
||||
+ (let* ((stdlib-changes
|
||||
+ (with-temp-buffer
|
||||
+ (insert-file-contents
|
||||
+ (let ((siteetc-stdlib-changes
|
||||
+ (expand-file-name "data/stdlib-changes" "@SITEETC@")))
|
||||
+ (if (file-exists-p siteetc-stdlib-changes)
|
||||
+ siteetc-stdlib-changes
|
||||
+ (expand-file-name "data/stdlib-changes" default-directory))))
|
||||
+ (read (current-buffer))))
|
||||
(info (make-hash-table)))
|
||||
(pcase-dolist (`(,version . ,data) stdlib-changes)
|
||||
(pcase-dolist (`(,syms . ,action)
|
Binary file not shown.
@ -0,0 +1,25 @@
|
||||
# Copyright 2022-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
MY_PN=VBoxGuestAdditions
|
||||
MY_P=${MY_PN}_${PV}
|
||||
|
||||
DESCRIPTION="CD image containing guest additions for VirtualBox"
|
||||
HOMEPAGE="https://www.virtualbox.org/"
|
||||
SRC_URI="https://download.virtualbox.org/virtualbox/${PV}/${MY_P}.iso"
|
||||
S="${WORKDIR}"
|
||||
|
||||
LICENSE="GPL-3 || ( GPL-3 CDDL )"
|
||||
SLOT="0/$(ver_cut 1-2)"
|
||||
KEYWORDS="~amd64"
|
||||
|
||||
src_unpack() {
|
||||
return 0
|
||||
}
|
||||
|
||||
src_install() {
|
||||
insinto /usr/share/${PN/-additions}
|
||||
newins "${DISTDIR}"/${MY_P}.iso ${MY_PN}.iso
|
||||
}
|
@ -0,0 +1,33 @@
|
||||
# Copyright 2022-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
MY_PV="$(ver_cut 1-3)"
|
||||
MY_PN="Oracle_VM_VirtualBox_Extension_Pack"
|
||||
MY_P="${MY_PN}-${MY_PV}"
|
||||
|
||||
DESCRIPTION="PUEL extensions for VirtualBox"
|
||||
HOMEPAGE="https://www.virtualbox.org/"
|
||||
SRC_URI="https://download.virtualbox.org/virtualbox/${MY_PV}/${MY_P}.vbox-extpack -> ${MY_P}.tar.gz"
|
||||
S="${WORKDIR}"
|
||||
|
||||
LICENSE="PUEL-11"
|
||||
SLOT="0/$(ver_cut 1-2)"
|
||||
KEYWORDS="~amd64"
|
||||
RESTRICT="bindist mirror strip"
|
||||
|
||||
RDEPEND="
|
||||
|| (
|
||||
=app-emulation/virtualbox-${MY_PV}*
|
||||
=app-emulation/virtualbox-kvm-${MY_PV}*
|
||||
)
|
||||
"
|
||||
|
||||
QA_PREBUILT="usr/lib*/virtualbox/ExtensionPacks/${MY_PN}/*"
|
||||
|
||||
src_install() {
|
||||
insinto /usr/$(get_libdir)/virtualbox/ExtensionPacks/${MY_PN}
|
||||
doins -r linux.${ARCH}
|
||||
doins ExtPack* PXE-Intel.rom
|
||||
}
|
@ -0,0 +1,290 @@
|
||||
# Copyright 2022-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit edo linux-mod-r1 readme.gentoo-r1 systemd toolchain-funcs udev
|
||||
|
||||
MY_PN="VirtualBox"
|
||||
MY_P="${MY_PN}-${PV}"
|
||||
|
||||
DESCRIPTION="VirtualBox kernel modules and user-space tools for Gentoo guests"
|
||||
HOMEPAGE="https://www.virtualbox.org/"
|
||||
SRC_URI="https://download.virtualbox.org/virtualbox/${PV}/${MY_P}.tar.bz2
|
||||
https://gitweb.gentoo.org/proj/virtualbox-patches.git/snapshot/virtualbox-patches-7.0.16.tar.bz2"
|
||||
S="${WORKDIR}/${MY_PN}-${PV}"
|
||||
|
||||
# Reminder: see the LICENSE related comment in app-emulation/virtualbox-additions ebuild
|
||||
LICENSE="GPL-3 LGPL-2.1+ MIT || ( GPL-3 CDDL )"
|
||||
SLOT="0/$(ver_cut 1-2)"
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
IUSE="+dbus gui"
|
||||
|
||||
# automount Error: VBoxServiceAutoMountWorker: Group "vboxsf" does not exist
|
||||
# TODO: find out what this is, remove comment if obsolete
|
||||
|
||||
RDEPEND="
|
||||
acct-group/vboxguest
|
||||
acct-group/vboxsf
|
||||
acct-user/vboxguest
|
||||
sys-libs/pam
|
||||
sys-libs/zlib
|
||||
dbus? ( sys-apps/dbus )
|
||||
gui? (
|
||||
x11-apps/xrandr
|
||||
x11-apps/xrefresh
|
||||
x11-libs/libX11
|
||||
x11-libs/libXext
|
||||
x11-libs/libXmu
|
||||
x11-libs/libXt
|
||||
)
|
||||
"
|
||||
# some libs here are indirect dependencies, and also needed at compile time.
|
||||
# keeping them in DEPEND to avoid warnings from qa-vdb.
|
||||
DEPEND="
|
||||
${RDEPEND}
|
||||
gui? (
|
||||
x11-libs/libICE
|
||||
x11-libs/libSM
|
||||
x11-libs/libXau
|
||||
x11-libs/libXdmcp
|
||||
x11-base/xorg-proto
|
||||
)
|
||||
"
|
||||
BDEPEND="
|
||||
>=dev-lang/yasm-0.6.2
|
||||
>=dev-build/kbuild-0.1.9998.3127
|
||||
sys-devel/bin86
|
||||
sys-power/iasl
|
||||
"
|
||||
|
||||
DOCS=() # Don't install the default README file during einstalldocs
|
||||
|
||||
VBOX_MOD_SRC_DIR="out/linux.${ARCH}/release/bin/additions/src"
|
||||
CONFIG_CHECK="~DRM_TTM ~DRM_VMWGFX"
|
||||
WARNING_DRM_TTM="DRM_TTM is needed for running the vboxvideo driver."
|
||||
WARNING_DRM_VMWGFX="DRM_VMWGFX is the recommended driver for VMSVGA."
|
||||
|
||||
DOC_CONTENTS="\n
|
||||
Please add users to the \"vboxguest\" group so they can\n
|
||||
benefit from seamless mode, auto-resize and clipboard.\n
|
||||
\n
|
||||
The vboxsf group has been added to make automount services work.\n
|
||||
These services are part of the shared folders support.\n
|
||||
\n
|
||||
Please add:\n
|
||||
/etc/init.d/virtualbox-guest-additions\n
|
||||
to the default runlevel in order to start\n
|
||||
needed services.\n
|
||||
\n
|
||||
An autostart .desktop file has been installed to start\n
|
||||
VBoxClient in desktop sessions.\n
|
||||
\n
|
||||
You can mount shared folders with:\n
|
||||
mount -t vboxsf <shared_folder_name> <mount_point>\n
|
||||
\n
|
||||
Warning:\n
|
||||
this ebuild is only needed if you are running gentoo\n
|
||||
inside a VirtualBox Virtual Machine, you don't need\n
|
||||
it to run VirtualBox itself.\n
|
||||
\n"
|
||||
|
||||
src_prepare() {
|
||||
# Remove shipped binaries (kBuild,yasm), see bug #232775
|
||||
rm -r kBuild/bin tools || die
|
||||
|
||||
# Provide kernel sources
|
||||
pushd src/VBox/Additions &>/dev/null || die
|
||||
ebegin "Extracting guest kernel module sources"
|
||||
kmk GuestDrivers-src vboxguest-src vboxsf-src vboxvideo-src &>/dev/null
|
||||
eend $? || die
|
||||
popd &>/dev/null || die
|
||||
|
||||
# PaX fixes (see bug #298988)
|
||||
eapply -d "${VBOX_MOD_SRC_DIR}" -- "${FILESDIR}"/vboxguest-6.1.36-log-use-c99.patch
|
||||
|
||||
# Disable things unused or splitted into separate ebuilds
|
||||
cp "${FILESDIR}/${PN}-5-localconfig" LocalConfig.kmk || die
|
||||
if ! use gui; then
|
||||
echo "VBOX_WITH_X11_ADDITIONS :=" >> LocalConfig.kmk || die
|
||||
fi
|
||||
|
||||
# Remove pointless GCC version check
|
||||
sed -e '/ check_gcc$/d' -i configure || die
|
||||
|
||||
# Respect LDFLAGS (bug #759100)
|
||||
sed -i -e '/TEMPLATE_VBoxR3Exe_LDFLAGS.linux[ ]*=/ s/$/ $(CCLDFLAGS)/' Config.kmk || die
|
||||
|
||||
eapply "${WORKDIR}/virtualbox-patches-7.0.16/patches"
|
||||
eapply_user
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
tc-export AR CC CXX LD RANLIB
|
||||
|
||||
# Build the user-space tools, warnings are harmless
|
||||
local myconf=(
|
||||
--with-gcc="$(tc-getCC)"
|
||||
--with-g++="$(tc-getCXX)"
|
||||
|
||||
--nofatal
|
||||
--disable-xpcom
|
||||
--disable-sdl-ttf
|
||||
--disable-pulse
|
||||
--disable-alsa
|
||||
$(usev !dbus --disable-dbus)
|
||||
--target-arch=${ARCH}
|
||||
--with-linux="${KV_OUT_DIR}"
|
||||
--build-headless
|
||||
)
|
||||
|
||||
# bug #843437
|
||||
# Respect LDFLAGS (bug #759100)
|
||||
# Cannot use LDFLAGS here because they also get passed to $(LD)
|
||||
cat >> LocalConfig.kmk <<-EOF || die
|
||||
CFLAGS=${CFLAGS}
|
||||
CXXFLAGS=${CXXFLAGS}
|
||||
CCLDFLAGS=${LDFLAGS}
|
||||
EOF
|
||||
|
||||
edo ./configure "${myconf[@]}"
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
source ./env.sh || die
|
||||
|
||||
# Force kBuild to respect C[XX]FLAGS and MAKEOPTS (bug #178529)
|
||||
MAKEJOBS=$(grep -Eo '(\-j|\-\-jobs)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS})
|
||||
MAKELOAD=$(grep -Eo '(\-l|\-\-load-average)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS})
|
||||
MAKEOPTS="${MAKEJOBS} ${MAKELOAD}"
|
||||
|
||||
local myemakeargs=(
|
||||
VBOX_BUILD_PUBLISHER=_Gentoo
|
||||
VBOX_ONLY_ADDITIONS=1
|
||||
|
||||
KBUILD_VERBOSE=2
|
||||
|
||||
AS="$(tc-getCC)"
|
||||
CC="$(tc-getCC)"
|
||||
CXX="$(tc-getCXX)"
|
||||
LD="$(tc-getCC)"
|
||||
|
||||
TOOL_GCC3_CC="$(tc-getCC)"
|
||||
TOOL_GCC3_CXX="$(tc-getCXX)"
|
||||
TOOL_GCC3_LD="$(tc-getCC)"
|
||||
TOOL_GCC3_AS="$(tc-getCC)"
|
||||
TOOL_GCC3_AR="$(tc-getAR)"
|
||||
TOOL_GCC3_OBJCOPY="$(tc-getOBJCOPY)"
|
||||
#TOOL_GCC3_LD_SYSMOD="$(tc-getCC)"
|
||||
|
||||
TOOL_GXX3_CC="$(tc-getCC)"
|
||||
TOOL_GXX3_CXX="$(tc-getCXX)"
|
||||
TOOL_GXX3_LD="$(tc-getCXX)"
|
||||
TOOL_GXX3_AS="$(tc-getCXX)"
|
||||
TOOL_GXX3_AR="$(tc-getAR)"
|
||||
TOOL_GXX3_OBJCOPY="$(tc-getOBJCOPY)"
|
||||
#TOOL_GXX3_LD_SYSMOD="$(tc-getCXX)"
|
||||
|
||||
TOOL_GCC3_CFLAGS="${CFLAGS}"
|
||||
TOOL_GCC3_CXXFLAGS="${CXXFLAGS}"
|
||||
VBOX_GCC_OPT="${CXXFLAGS}"
|
||||
VBOX_NM="$(tc-getNM)"
|
||||
TOOL_YASM_AS=yasm
|
||||
)
|
||||
|
||||
MAKE="kmk" emake "${myemakeargs[@]}"
|
||||
|
||||
# Now creating the kernel modules. We must do this _after_
|
||||
# we compiled the user-space tools as we need two of the
|
||||
# automatically generated header files. (>=3.2.0)
|
||||
# Move this here for bug 836037
|
||||
local modargs=( KERN_DIR="${KV_OUT_DIR}" KERN_VER="${KV_FULL}" )
|
||||
local modlist=( vboxguest vboxsf )
|
||||
use gui && modlist+=( vboxvideo )
|
||||
modlist=( "${modlist[@]/%/=misc:${VBOX_MOD_SRC_DIR}}" )
|
||||
linux-mod-r1_src_compile
|
||||
}
|
||||
|
||||
src_install() {
|
||||
linux-mod-r1_src_install
|
||||
|
||||
insinto /etc/modprobe.d # 485996
|
||||
newins - vboxsf.conf <<-EOF
|
||||
# modprobe.d configuration file for VBOXSF
|
||||
|
||||
# Internal Aliases - Do not edit
|
||||
# ------------------------------
|
||||
alias fs-vboxsf vboxsf
|
||||
EOF
|
||||
|
||||
cd out/linux.${ARCH}/release/bin/additions || die
|
||||
|
||||
insinto /sbin
|
||||
newins mount.vboxsf mount.vboxsf
|
||||
fperms 4755 /sbin/mount.vboxsf
|
||||
|
||||
if use dbus; then
|
||||
newinitd "${FILESDIR}"/${PN}-8.initd-r1 ${PN}
|
||||
else
|
||||
newinitd <(sed 's/ dbus\>//' "${FILESDIR}"/${PN}-8.initd-r1) ${PN}
|
||||
fi
|
||||
|
||||
insinto /usr/sbin/
|
||||
newins VBoxService vboxguest-service
|
||||
fperms 0755 /usr/sbin/vboxguest-service
|
||||
|
||||
insinto /usr/bin
|
||||
doins VBoxControl
|
||||
fperms 0755 /usr/bin/VBoxControl
|
||||
|
||||
# VBoxClient user service and xrandr wrapper
|
||||
if use gui ; then
|
||||
doins VBoxClient
|
||||
fperms 0755 /usr/bin/VBoxClient
|
||||
doins VBoxDRMClient
|
||||
fperms 4755 /usr/bin/VBoxDRMClient
|
||||
|
||||
pushd "${S}"/src/VBox/Additions/x11/Installer &>/dev/null || die
|
||||
newins 98vboxadd-xclient VBoxClient-all
|
||||
fperms 0755 /usr/bin/VBoxClient-all
|
||||
popd &>/dev/null || die
|
||||
fi
|
||||
|
||||
# udev rule for vboxdrv
|
||||
local udev_rules_dir="/lib/udev/rules.d"
|
||||
dodir ${udev_rules_dir}
|
||||
echo 'KERNEL=="vboxguest", OWNER="vboxguest", GROUP="vboxguest", MODE="0660"' \
|
||||
>> "${ED}/${udev_rules_dir}/60-virtualbox-guest-additions.rules" \
|
||||
|| die
|
||||
echo 'KERNEL=="vboxuser", OWNER="vboxguest", GROUP="vboxguest", MODE="0660"' \
|
||||
>> "${ED}/${udev_rules_dir}/60-virtualbox-guest-additions.rules" \
|
||||
|| die
|
||||
|
||||
# VBoxClient autostart file
|
||||
insinto /etc/xdg/autostart
|
||||
doins "${FILESDIR}"/vboxclient.desktop
|
||||
|
||||
# sample xorg.conf
|
||||
dodoc "${FILESDIR}"/xorg.conf.vbox
|
||||
docompress -x "${ED}"/usr/share/doc/${PF}/xorg.conf.vbox
|
||||
|
||||
systemd_dounit "${FILESDIR}/${PN}.service"
|
||||
|
||||
readme.gentoo_create_doc
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
linux-mod-r1_pkg_postinst
|
||||
udev_reload
|
||||
|
||||
if ! use gui ; then
|
||||
elog "The use flag \"gui\" is off, enable it to install the"
|
||||
elog "X Window System drivers and integration."
|
||||
fi
|
||||
|
||||
readme.gentoo_print_elog
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
udev_reload
|
||||
}
|
@ -1,4 +1,8 @@
|
||||
DIST VirtualBox-7.0.14.tar.bz2 175654864 BLAKE2B 99f4942b864ce481d69983af31393d763452c5b55697ab642b43c155f5fbc2a9963fbe1b7744baef620d0b351e1ac73c1ef978698b9a7e77897bb9cbc18dc17c SHA512 6a82933bbf51ff255d17cb61ae6ddfb791a2200e3dff705f181cd06c6031b48cf15faa5e8202a65daef0fb20b7fd9e33d40dbd0f9cc3f49af49fff04a1cb0a73
|
||||
DIST VirtualBox-7.0.16.tar.bz2 170897951 BLAKE2B 6b436c38df632222621723db94677a0efef5de2ac1eacec73571bc658955f23fff347fa60c37ec78c58bf94b82b8f9a95fb26c07ef4becc7e9f535af069151f5 SHA512 1b8ba08bec144cbd1f2e9aa0929cdf60a0b99930f1dd80567094fba75097d87661aef3da2cc24f4abff6b6db8f186e251c5f693a2a93943cc39909d5f1e1bce5
|
||||
DIST virtualbox-help-7.0.14.tar.xz 3944832 BLAKE2B 95079e4da8c960c41cee799142779a6c2587e0e8af7956ca551cb5a4c0f36f313189dfe08afba83a0c32886866a7f9903b5e370008d6b3ce6283fb2288866b06 SHA512 e2f1acdd7577a93047e220300b1996d2855ddef20053c01294f8295fde0840645c41b75632d71dd2fc276219084fe4105fd057623f39375542358796425a2d03
|
||||
DIST virtualbox-help-7.0.16.tar.xz 3948696 BLAKE2B 5c5937313ea0e5cb4764b8a61fd1587e88a4afc965ef00862c5a265a15253929d35e0635231b6be5656f26f600bc4b70a2fa2ebc0f33b35d35c184b57e5acef8 SHA512 b9baca57118a82e3489c8445f0988671f16f75de60cc2d929d5e3b0c4c9e3ceacd796a72a81bba88d69eb4b4559835a13775c18d7782ae7dbe8ad202e247db0c
|
||||
DIST virtualbox-kvm-7.0.14_pre20240325.tar.gz 134926 BLAKE2B 3e707b272219b2c5703d91d1f6a2f0a6c54fe29eeb6e91e5830949f7260e5b409e3425c38daea568725cb7fd10ddee234af6b72d747206e0a98ac1e33a10028c SHA512 e30291e1d7e2649057a9b38ea907f22f62b0367f33d88af10fdaaa49333890be2b719626103f9800836a3833368a018f5fc63a46577dd1d83178d7406bf8c494
|
||||
DIST virtualbox-kvm-7.0.16_pre20240325.tar.gz 134926 BLAKE2B 3e707b272219b2c5703d91d1f6a2f0a6c54fe29eeb6e91e5830949f7260e5b409e3425c38daea568725cb7fd10ddee234af6b72d747206e0a98ac1e33a10028c SHA512 e30291e1d7e2649057a9b38ea907f22f62b0367f33d88af10fdaaa49333890be2b719626103f9800836a3833368a018f5fc63a46577dd1d83178d7406bf8c494
|
||||
DIST virtualbox-patches-7.0.14.tar.bz2 6937 BLAKE2B da5f18efbba2a8f4701b3d29dc00784e4e80e18a18b029e5dce8c142eb4dc97637069bfc5081422064a7dc59dfacf503ebbdc3421caa96430dc53fa72988aa20 SHA512 57cc34b92e4626de5c445e34ae025da7ec0d752a60618c619a55c28bf7d6b1cc9dc81ea059b949b0f3e625568207e8084f9462faf487ca0daf2794e7f1feac36
|
||||
DIST virtualbox-patches-7.0.16.tar.bz2 6808 BLAKE2B d15fa2ca306375142c3e25d4759d2790b2bb9eb69e333a8773ad500b29dd127b401943abf59ca59d01858a3ed5551fb3a6c93c4c893c8de971a714ce5306d577 SHA512 a488cbc6660fe8637c44cd79d87156609af089988239a7e76fea8a3c7e6319512c574bef2e942b354b14ce671a8e75ab8b2160abf7c40963795ee8a545ecd992
|
||||
|
@ -0,0 +1,768 @@
|
||||
# Copyright 2022-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
# To add a new Python here:
|
||||
# 1. Patch src/libs/xpcom18a4/python/Makefile.kmk (copy the previous impl's logic)
|
||||
# Do NOT skip this part. It'll end up silently not-building the Python extension
|
||||
# or otherwise misbehaving if you do.
|
||||
#
|
||||
# 2. Then update PYTHON_COMPAT & set PYTHON_SINGLE_TARGET for testing w/ USE=python.
|
||||
#
|
||||
# May need to look at other distros (e.g. Arch Linux) to find patches for newer
|
||||
# Python versions as upstream tends to lag. Upstream may have patches on their
|
||||
# trunk branch but not release branch.
|
||||
#
|
||||
# See bug #785835, bug #856121.
|
||||
PYTHON_COMPAT=( python3_{10..11} )
|
||||
|
||||
inherit desktop edo flag-o-matic java-pkg-opt-2 linux-info multilib optfeature pax-utils \
|
||||
python-single-r1 tmpfiles toolchain-funcs udev xdg
|
||||
|
||||
PATCHES_PV="7.0.16"
|
||||
ORIGIN_PN="VirtualBox"
|
||||
ORIGIN_PV=${PATCHES_PV}
|
||||
|
||||
MY_PN=virtualbox
|
||||
MY_PV=${PV#*_pre}
|
||||
|
||||
PATCHES_DIR="${WORKDIR}"/${PN}-${MY_PV}
|
||||
|
||||
DESCRIPTION="Family of powerful x86 virtualization products for enterprise and home use"
|
||||
HOMEPAGE="https://www.virtualbox.org/ https://github.com/cyberus-technology/virtualbox-kvm"
|
||||
SRC_URI="https://gitweb.gentoo.org/proj/virtualbox-patches.git/snapshot/virtualbox-patches-${PATCHES_PV}.tar.bz2"
|
||||
if [[ ${PV} == *9999* ]]; then
|
||||
inherit git-r3
|
||||
|
||||
ORIGIN_PV=${PATCHES_PV}
|
||||
EGIT_REPO_URI="https://github.com/cyberus-technology/virtualbox-kvm"
|
||||
else
|
||||
ORIGIN_PV=${PV%_pre*}
|
||||
PATCHES_DIR="${WORKDIR}"/${PN}-dev-${MY_PV}
|
||||
SRC_URI+=" https://github.com/cyberus-technology/virtualbox-kvm/archive/dev-${MY_PV}.tar.gz -> ${P}.tar.gz"
|
||||
fi
|
||||
MY_P=${ORIGIN_PN}-${ORIGIN_PV}
|
||||
SRC_URI+="
|
||||
https://download.virtualbox.org/virtualbox/${ORIGIN_PV}/${MY_P}.tar.bz2
|
||||
gui? ( !doc? ( https://dev.gentoo.org/~ceamac/${CATEGORY}/${MY_PN}/${MY_PN}-help-${ORIGIN_PV}.tar.xz ) )
|
||||
"
|
||||
S="${WORKDIR}/${ORIGIN_PN}-${ORIGIN_PV}"
|
||||
|
||||
LICENSE="GPL-2+ GPL-3 LGPL-2.1 MIT dtrace? ( CDDL )"
|
||||
SLOT="0"
|
||||
IUSE="alsa dbus debug doc dtrace +gui java lvm nls pam pch pulseaudio +opengl python +sdk +sdl +udev vboxwebsrv vde vnc"
|
||||
|
||||
unset WATCOM #856769
|
||||
|
||||
COMMON_DEPEND="
|
||||
${PYTHON_DEPS}
|
||||
acct-group/vboxusers
|
||||
dev-libs/libtpms
|
||||
dev-libs/libxml2
|
||||
dev-libs/openssl:0=
|
||||
media-libs/libpng:0=
|
||||
media-libs/libvpx:0=
|
||||
net-misc/curl
|
||||
sys-libs/zlib
|
||||
dbus? ( sys-apps/dbus )
|
||||
gui? (
|
||||
dev-qt/qtcore:5
|
||||
dev-qt/qtdbus:5
|
||||
dev-qt/qtgui:5
|
||||
dev-qt/qthelp:5
|
||||
dev-qt/qtprintsupport:5
|
||||
dev-qt/qtwidgets:5
|
||||
dev-qt/qtx11extras:5
|
||||
dev-qt/qtxml:5
|
||||
x11-libs/libX11
|
||||
x11-libs/libXt
|
||||
opengl? ( dev-qt/qtopengl:5 )
|
||||
)
|
||||
lvm? ( sys-fs/lvm2 )
|
||||
opengl? (
|
||||
media-libs/libglvnd[X]
|
||||
media-libs/vulkan-loader
|
||||
x11-libs/libX11
|
||||
x11-libs/libXt
|
||||
)
|
||||
pam? ( sys-libs/pam )
|
||||
sdl? (
|
||||
media-libs/libsdl2[X,video]
|
||||
x11-libs/libX11
|
||||
x11-libs/libXcursor
|
||||
x11-libs/libXt
|
||||
)
|
||||
vboxwebsrv? ( net-libs/gsoap[-gnutls(-),debug?] )
|
||||
vde? ( net-misc/vde )
|
||||
vnc? ( >=net-libs/libvncserver-0.9.9 )
|
||||
"
|
||||
# We're stuck on JDK (and JRE, I guess?) 1.8 because of need for wsimport
|
||||
# with USE="vboxwebsrv java". Note that we have to put things in DEPEND,
|
||||
# not (only, anyway) BDEPEND, as the eclass magic to set the environment variables
|
||||
# based on *DEPEND doesn't work for BDEPEND at least right now.
|
||||
#
|
||||
# There's a comment in Config.kmk about it
|
||||
# ("With Java 11 wsimport was removed, usually part of a separate install now.")
|
||||
# but it needs more investigation.
|
||||
#
|
||||
# See bug #878299 to track this issue.
|
||||
DEPEND="
|
||||
${COMMON_DEPEND}
|
||||
>=dev-libs/libxslt-1.1.19
|
||||
virtual/libcrypt:=
|
||||
alsa? ( >=media-libs/alsa-lib-1.0.13 )
|
||||
gui? (
|
||||
x11-base/xorg-proto
|
||||
x11-libs/libxcb:=
|
||||
x11-libs/libXcursor
|
||||
x11-libs/libXext
|
||||
x11-libs/libXinerama
|
||||
x11-libs/libXmu
|
||||
x11-libs/libXrandr
|
||||
)
|
||||
java? ( virtual/jdk:1.8 )
|
||||
opengl? (
|
||||
x11-base/xorg-proto
|
||||
x11-libs/libXcursor
|
||||
x11-libs/libXinerama
|
||||
x11-libs/libXmu
|
||||
x11-libs/libXrandr
|
||||
virtual/glu
|
||||
)
|
||||
sdl? ( x11-libs/libXinerama )
|
||||
pulseaudio? ( media-libs/libpulse )
|
||||
udev? ( >=virtual/udev-171 )
|
||||
"
|
||||
RDEPEND="
|
||||
!app-emulation/virtualbox
|
||||
${COMMON_DEPEND}
|
||||
gui? ( x11-libs/libxcb:= )
|
||||
java? ( virtual/jre:1.8 )
|
||||
"
|
||||
BDEPEND="
|
||||
${PYTHON_DEPS}
|
||||
>=app-arch/tar-1.34-r2
|
||||
>=dev-lang/yasm-0.6.2
|
||||
dev-libs/libIDL
|
||||
dev-util/glslang
|
||||
>=dev-build/kbuild-0.1.9998.3592
|
||||
sys-apps/which
|
||||
sys-devel/bin86
|
||||
sys-libs/libcap
|
||||
sys-power/iasl
|
||||
virtual/pkgconfig
|
||||
doc? (
|
||||
app-text/docbook-sgml-dtd:4.4
|
||||
app-text/docbook-xsl-ns-stylesheets
|
||||
dev-texlive/texlive-basic
|
||||
dev-texlive/texlive-latex
|
||||
dev-texlive/texlive-latexrecommended
|
||||
dev-texlive/texlive-latexextra
|
||||
dev-texlive/texlive-fontsrecommended
|
||||
dev-texlive/texlive-fontsextra
|
||||
dev-qt/qthelp:5
|
||||
)
|
||||
gui? ( dev-qt/linguist-tools:5 )
|
||||
nls? ( dev-qt/linguist-tools:5 )
|
||||
java? ( virtual/jdk:1.8 )
|
||||
"
|
||||
|
||||
QA_FLAGS_IGNORED="
|
||||
usr/lib64/virtualbox/VBoxDDR0.r0
|
||||
usr/lib64/virtualbox/VMMR0.r0
|
||||
usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
|
||||
usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug
|
||||
"
|
||||
|
||||
QA_TEXTRELS="
|
||||
usr/lib64/virtualbox/VMMR0.r0
|
||||
usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
|
||||
"
|
||||
|
||||
QA_EXECSTACK="
|
||||
usr/lib64/virtualbox/iPxeBaseBin
|
||||
usr/lib64/virtualbox/VMMR0.r0
|
||||
usr/lib64/virtualbox/VBoxDDR0.r0
|
||||
usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
|
||||
usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug
|
||||
"
|
||||
|
||||
QA_WX_LOAD="
|
||||
usr/lib64/virtualbox/iPxeBaseBin
|
||||
"
|
||||
|
||||
QA_PRESTRIPPED="
|
||||
usr/lib64/virtualbox/VMMR0.r0
|
||||
usr/lib64/virtualbox/VBoxDDR0.r0
|
||||
usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
|
||||
"
|
||||
|
||||
REQUIRED_USE="
|
||||
java? ( sdk )
|
||||
python? ( sdk )
|
||||
vboxwebsrv? ( java )
|
||||
${PYTHON_REQUIRED_USE}
|
||||
"
|
||||
|
||||
PATCHES=(
|
||||
# Downloaded patchset
|
||||
"${WORKDIR}"/virtualbox-patches-${PATCHES_PV}/patches
|
||||
"${PATCHES_DIR}"/patches
|
||||
)
|
||||
|
||||
pkg_pretend() {
|
||||
if ! use gui; then
|
||||
einfo "No USE=\"gui\" selected, this build will not include any Qt frontend."
|
||||
fi
|
||||
|
||||
if ! use opengl; then
|
||||
einfo "No USE=\"opengl\" selected, this build will lack"
|
||||
einfo "the OpenGL feature."
|
||||
fi
|
||||
if ! use python; then
|
||||
einfo "You have disabled the \"python\" USE flag. This will only"
|
||||
einfo "disable the python bindings being installed."
|
||||
fi
|
||||
if ! use nls && use gui; then
|
||||
einfo "USE=\"gui\" also selects USE=\"nls\". This build"
|
||||
einfo "will have NLS support."
|
||||
fi
|
||||
|
||||
# 749273
|
||||
local d=${ROOT}
|
||||
for i in usr "$(get_libdir)"; do
|
||||
d="${d}/$i"
|
||||
if [[ "$(stat -L -c "%g %u" "${d}")" != "0 0" ]]; then
|
||||
die "${d} should be owned by root, VirtualBox will not start otherwise"
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
java-pkg-opt-2_pkg_setup
|
||||
python-single-r1_pkg_setup
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
[[ ${PV} == *9999* ]] && git-r3_src_unpack
|
||||
default
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
# Only add nopie patch when we're on hardened
|
||||
if gcc-specs-pie; then
|
||||
eapply "${FILESDIR}"/050_virtualbox-5.2.8-nopie.patch
|
||||
fi
|
||||
|
||||
# Remove shipped binaries (kBuild, yasm) and tools, see bug #232775
|
||||
rm -r kBuild/bin || die
|
||||
# Remove everything in tools except kBuildUnits
|
||||
find tools -mindepth 1 -maxdepth 1 -name kBuildUnits -prune -o -exec rm -r {} \+ || die
|
||||
|
||||
# Disable things unused or split into separate ebuilds
|
||||
sed -e "s@MY_LIBDIR@$(get_libdir)@" \
|
||||
"${FILESDIR}"/${MY_PN}-5-localconfig > LocalConfig.kmk || die
|
||||
|
||||
if ! use pch; then
|
||||
# bug #753323
|
||||
printf '\n%s\n' "VBOX_WITHOUT_PRECOMPILED_HEADERS=1" \
|
||||
>> LocalConfig.kmk || die
|
||||
fi
|
||||
|
||||
# bug #916002, #488176
|
||||
tc-ld-force-bfd
|
||||
|
||||
# Respect LDFLAGS
|
||||
sed -e "s@_LDFLAGS\.${ARCH}*.*=@& ${LDFLAGS}@g" \
|
||||
-i Config.kmk src/libs/xpcom18a4/Config.kmk || die
|
||||
|
||||
# Do not use hard-coded ld (related to bug #488176)
|
||||
sed -e '/QUIET)ld /s@ld @$(LD) @' \
|
||||
-i src/VBox/Devices/PC/ipxe/Makefile.kmk || die
|
||||
|
||||
# Use PAM only when pam USE flag is enbaled (bug #376531)
|
||||
if ! use pam; then
|
||||
einfo "Disabling PAM removes the possibility to use the VRDP features."
|
||||
sed -i 's@^.*VBOX_WITH_PAM@#VBOX_WITH_PAM@' Config.kmk || die
|
||||
sed -i 's@\(.*/auth/Makefile.kmk.*\)@#\1@' \
|
||||
src/VBox/HostServices/Makefile.kmk || die
|
||||
echo -e "\nIPRT_WITHOUT_PAM=1" >> LocalConfig.kmk || die
|
||||
fi
|
||||
|
||||
# add correct java path
|
||||
if use java; then
|
||||
sed "s@/usr/lib/jvm/java-6-sun@$(java-config -O)@" \
|
||||
-i "${S}"/Config.kmk || die
|
||||
java-pkg-opt-2_src_prepare
|
||||
fi
|
||||
|
||||
#856811 #864274
|
||||
# cannot filter out only one flag, some combinations of these flags produce buggy executables
|
||||
for i in abm avx avx2 bmi bmi2 fma fma4 popcnt; do
|
||||
append-cflags $(test-flags-CC -mno-$i)
|
||||
append-cxxflags $(test-flags-CXX -mno-$i)
|
||||
done
|
||||
|
||||
# bug #908814
|
||||
filter-lto
|
||||
|
||||
# bug #843437
|
||||
cat >> LocalConfig.kmk <<-EOF || die
|
||||
CXXFLAGS=${CXXFLAGS}
|
||||
CFLAGS=${CFLAGS}
|
||||
EOF
|
||||
|
||||
if use sdl; then
|
||||
sed -i 's/sdl-config/sdl2-config/' configure || die
|
||||
echo -e "\nVBOX_WITH_VBOXSDL=1" >> LocalConfig.kmk || die
|
||||
fi
|
||||
|
||||
#443830
|
||||
echo -e "\nVBOX_WITH_VBOX_IMG=1" >> LocalConfig.kmk || die
|
||||
|
||||
if tc-is-clang; then
|
||||
# clang assembler chokes on comments starting with /
|
||||
sed -i -e '/^\//d' src/libs/xpcom18a4/nsprpub/pr/src/md/unix/os_Linux_x86_64.s || die
|
||||
|
||||
# clang does not support this extension
|
||||
eapply "${FILESDIR}"/${MY_PN}-7.0.8-disable-rebuild-iPxeBiosBin.patch
|
||||
fi
|
||||
|
||||
# fix doc generation
|
||||
echo -e "\nVBOX_PATH_DOCBOOK=/usr/share/sgml/docbook/xsl-ns-stylesheets" >> LocalConfig.kmk || die
|
||||
# replace xhtml names with numeric equivalents
|
||||
find doc/manual -name \*.xml -exec sed -i \
|
||||
-e 's/ /\ /g' \
|
||||
-e 's/–/\–/g' \
|
||||
-e 's/←/\←/g' \
|
||||
-e 's/→/\→/g' \
|
||||
-e 's/↔/\↔/g' {} \+ || die
|
||||
|
||||
# fix help path #891879
|
||||
echo -e "\nVBOX_PATH_PACKAGE_DOCS=/usr/share/doc/${PF}" >> LocalConfig.kmk || die
|
||||
|
||||
# 489208
|
||||
# Cannot patch the whole text, many translations. Use sed instead to replace the command
|
||||
find src/VBox/Frontends/VirtualBox/nls -name \*.ts -exec sed -i \
|
||||
's/'[^&]*\(vboxdrv setup\|vboxconfig\)'/\'emerge -1 virtualbox-modules\'/' {} \+ || die
|
||||
sed -i "s:'/sbin/vboxconfig':'emerge -1 virtualbox-modules':" \
|
||||
src/VBox/Frontends/VirtualBox/src/main.cpp \
|
||||
src/VBox/VMM/VMMR3/VM.cpp || die
|
||||
|
||||
# 890561
|
||||
echo -e "\nVBOX_GTAR=gtar" >> LocalConfig.kmk || die
|
||||
|
||||
if ! use nls && ! use gui; then
|
||||
cat >> LocalConfig.kmk <<-EOF || die
|
||||
VBOX_WITH_NLS :=
|
||||
VBOX_WITH_MAIN_NLS :=
|
||||
VBOX_WITH_PUEL_NLS :=
|
||||
VBOX_WITH_VBOXMANAGE_NLS :=
|
||||
EOF
|
||||
fi
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
tc-export AR CC CXX LD RANLIB
|
||||
export HOST_CC="$(tc-getBUILD_CC)"
|
||||
|
||||
local myconf=(
|
||||
--with-gcc="$(tc-getCC)"
|
||||
--with-g++="$(tc-getCXX)"
|
||||
|
||||
--disable-kmods
|
||||
--with-kvm
|
||||
|
||||
# this is required for kvm to work.
|
||||
# also this prohibits installation with suid.
|
||||
--disable-hardening
|
||||
|
||||
$(usev !alsa --disable-alsa)
|
||||
$(usev !dbus --disable-dbus)
|
||||
$(usev debug --build-debug)
|
||||
$(usev !doc --disable-docs)
|
||||
$(usev !java --disable-java)
|
||||
$(usev !lvm --disable-devmapper)
|
||||
$(usev !pulseaudio --disable-pulse)
|
||||
$(usev !python --disable-python)
|
||||
$(usev vboxwebsrv --enable-webservice)
|
||||
$(usev vde --enable-vde)
|
||||
$(usev vnc --enable-vnc)
|
||||
)
|
||||
|
||||
if use gui || use sdl || use opengl; then
|
||||
myconf+=(
|
||||
$(usev !opengl --disable-opengl)
|
||||
$(usev !gui --disable-qt)
|
||||
$(usev !sdl --disable-sdl)
|
||||
)
|
||||
else
|
||||
myconf+=(
|
||||
--build-headless
|
||||
)
|
||||
fi
|
||||
|
||||
if use amd64 && ! has_multilib_profile; then
|
||||
myconf+=( --disable-vmmraw )
|
||||
fi
|
||||
|
||||
# not an autoconf script
|
||||
edo ./configure "${myconf[@]}"
|
||||
|
||||
# Force usage of chosen Python implementation
|
||||
# bug #856121, bug #785835
|
||||
sed -i \
|
||||
-e '/VBOX_WITH_PYTHON.*=/d' \
|
||||
-e '/VBOX_PATH_PYTHON_INC.*=/d' \
|
||||
-e '/VBOX_LIB_PYTHON.*=/d' \
|
||||
AutoConfig.kmk || die
|
||||
|
||||
cat >> AutoConfig.kmk <<-EOF || die
|
||||
VBOX_WITH_PYTHON=$(usev python 1)
|
||||
VBOX_PATH_PYTHON_INC=$(python_get_includedir)
|
||||
VBOX_LIB_PYTHON=$(python_get_library_path)
|
||||
EOF
|
||||
|
||||
if use python; then
|
||||
local mangled_python="${EPYTHON#python}"
|
||||
mangled_python="${mangled_python/.}"
|
||||
|
||||
# Stub out the script which defines what the Makefile ends up
|
||||
# building for. gen_python_deps.py gets called by the Makefile
|
||||
# with some args and it spits out a bunch of paths for a hardcoded
|
||||
# list of Pythons. We just override it with what we're actually using.
|
||||
# This minimises the amount of patching we have to do for new Pythons.
|
||||
cat > src/libs/xpcom18a4/python/gen_python_deps.py <<-EOF || die
|
||||
print("VBOX_PYTHON${mangled_python}_INC=$(python_get_includedir)")
|
||||
print("VBOX_PYTHON${mangled_python}_LIB=$(python_get_library_path)")
|
||||
print("VBOX_PYTHONDEF_INC=$(python_get_includedir)")
|
||||
print("VBOX_PYTHONDEF_LIB=$(python_get_library_path)")
|
||||
EOF
|
||||
|
||||
chmod +x src/libs/xpcom18a4/python/gen_python_deps.py || die
|
||||
fi
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
source ./env.sh || die
|
||||
|
||||
# Force kBuild to respect C[XX]FLAGS and MAKEOPTS (bug #178529)
|
||||
MAKEJOBS=$(grep -Eo '(\-j|\-\-jobs)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS})
|
||||
MAKELOAD=$(grep -Eo '(\-l|\-\-load-average)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS})
|
||||
MAKEOPTS="${MAKEJOBS} ${MAKELOAD}"
|
||||
|
||||
local myemakeargs=(
|
||||
VBOX_BUILD_PUBLISHER=_Gentoo
|
||||
VBOX_WITH_VBOXIMGMOUNT=1
|
||||
|
||||
KBUILD_VERBOSE=2
|
||||
|
||||
AS="$(tc-getCC)"
|
||||
CC="$(tc-getCC)"
|
||||
CXX="$(tc-getCXX)"
|
||||
|
||||
TOOL_GCC3_CC="$(tc-getCC)"
|
||||
TOOL_GCC3_LD="$(tc-getCC)"
|
||||
TOOL_GCC3_AS="$(tc-getCC)"
|
||||
TOOL_GCC3_AR="$(tc-getAR)"
|
||||
TOOL_GCC3_OBJCOPY="$(tc-getOBJCOPY)"
|
||||
|
||||
TOOL_GXX3_CC="$(tc-getCC)"
|
||||
TOOL_GXX3_CXX="$(tc-getCXX)"
|
||||
TOOL_GXX3_LD="$(tc-getCXX)"
|
||||
TOOL_GXX3_AS="$(tc-getCXX)"
|
||||
TOOL_GXX3_AR="$(tc-getAR)"
|
||||
TOOL_GXX3_OBJCOPY="$(tc-getOBJCOPY)"
|
||||
|
||||
TOOL_GCC3_CFLAGS="${CFLAGS}"
|
||||
TOOL_GCC3_CXXFLAGS="${CXXFLAGS}"
|
||||
VBOX_GCC_OPT="${CXXFLAGS}"
|
||||
VBOX_NM="$(tc-getNM)"
|
||||
|
||||
TOOL_YASM_AS=yasm
|
||||
)
|
||||
|
||||
if use amd64 && has_multilib_profile; then
|
||||
myemakeargs+=(
|
||||
CC32="$(tc-getCC) -m32"
|
||||
CXX32="$(tc-getCXX) -m32"
|
||||
|
||||
TOOL_GCC32_CC="$(tc-getCC) -m32"
|
||||
TOOL_GCC32_CXX="$(tc-getCXX) -m32"
|
||||
TOOL_GCC32_LD="$(tc-getCC) -m32"
|
||||
TOOL_GCC32_AS="$(tc-getCC) -m32"
|
||||
TOOL_GCC32_AR="$(tc-getAR)"
|
||||
TOOL_GCC32_OBJCOPY="$(tc-getOBJCOPY)"
|
||||
|
||||
TOOL_GXX32_CC="$(tc-getCC) -m32"
|
||||
TOOL_GXX32_CXX="$(tc-getCXX) -m32"
|
||||
TOOL_GXX32_LD="$(tc-getCXX) -m32"
|
||||
TOOL_GXX32_AS="$(tc-getCXX) -m32"
|
||||
TOOL_GXX32_AR="$(tc-getAR)"
|
||||
TOOL_GXX32_OBJCOPY="$(tc-getOBJCOPY)"
|
||||
)
|
||||
fi
|
||||
|
||||
MAKE="kmk" emake "${myemakeargs[@]}" all
|
||||
}
|
||||
|
||||
src_install() {
|
||||
cd "${S}"/out/linux.${ARCH}/$(usex debug debug release)/bin || die
|
||||
|
||||
local vbox_inst_path="/usr/$(get_libdir)/${MY_PN}" each size ico icofile
|
||||
|
||||
vbox_inst() {
|
||||
local binary="${1}"
|
||||
local perms="${2:-0750}"
|
||||
local path="${3:-${vbox_inst_path}}"
|
||||
|
||||
[[ -n "${binary}" ]] || die "vbox_inst: No binary given!"
|
||||
[[ ${perms} =~ ^[[:digit:]]+{4}$ ]] || die "vbox_inst: perms must consist of four digits."
|
||||
|
||||
insinto ${path}
|
||||
doins ${binary}
|
||||
fowners root:vboxusers ${path}/${binary}
|
||||
fperms ${perms} ${path}/${binary}
|
||||
}
|
||||
|
||||
# Create configuration files
|
||||
insinto /etc/vbox
|
||||
newins "${FILESDIR}/${MY_PN}-4-config" vbox.cfg
|
||||
|
||||
# Set the correct libdir
|
||||
sed \
|
||||
-e "s@MY_LIBDIR@$(get_libdir)@" \
|
||||
-i "${ED}"/etc/vbox/vbox.cfg || die "vbox.cfg sed failed"
|
||||
|
||||
# Install the wrapper script
|
||||
exeinto ${vbox_inst_path}
|
||||
newexe "${FILESDIR}/${MY_PN}-ose-6-wrapper" "VBox"
|
||||
fowners root:vboxusers ${vbox_inst_path}/VBox
|
||||
fperms 0750 ${vbox_inst_path}/VBox
|
||||
|
||||
# Install binaries and libraries
|
||||
insinto ${vbox_inst_path}
|
||||
doins -r components
|
||||
|
||||
for each in VBox{Autostart,BalloonCtrl,BugReport,CpuReport,ExtPackHelperApp,Manage,SVC,VMMPreload,XPCOMIPCD} \
|
||||
vboximg-mount vbox-img *so *r0; do
|
||||
vbox_inst ${each}
|
||||
done
|
||||
|
||||
# These binaries need to be suid root.
|
||||
for each in VBox{Headless,Net{AdpCtl,DHCP,NAT}} ; do
|
||||
vbox_inst ${each} 0750
|
||||
done
|
||||
|
||||
# Install EFI Firmware files (bug #320757)
|
||||
for each in VBoxEFI{32,64}.fd ; do
|
||||
vbox_inst ${each} 0644
|
||||
done
|
||||
|
||||
# VBoxSVC and VBoxManage need to be pax-marked (bug #403453)
|
||||
# VBoxXPCOMIPCD (bug #524202)
|
||||
for each in VBox{Headless,Manage,SVC,XPCOMIPCD} ; do
|
||||
pax-mark -m "${ED}"${vbox_inst_path}/${each}
|
||||
done
|
||||
|
||||
# Symlink binaries to the shipped wrapper
|
||||
for each in vbox{autostart,balloonctrl,bugreport,headless,manage} \
|
||||
VBox{Autostart,BalloonCtrl,BugReport,Headless,Manage,VRDP} ; do
|
||||
dosym ${vbox_inst_path}/VBox /usr/bin/${each}
|
||||
done
|
||||
dosym ${vbox_inst_path}/vboximg-mount /usr/bin/vboximg-mount
|
||||
dosym ${vbox_inst_path}/vbox-img /usr/bin/vbox-img
|
||||
|
||||
if use pam; then
|
||||
# VRDPAuth only works with this (bug #351949)
|
||||
dosym VBoxAuth.so ${vbox_inst_path}/VRDPAuth.so
|
||||
fi
|
||||
|
||||
# set an env-variable for 3rd party tools
|
||||
echo "VBOX_APP_HOME=${vbox_inst_path}" > "${T}/90virtualbox"
|
||||
# environment variables used during SDK binding installation
|
||||
echo "VBOX_SDK_PATH=${vbox_inst_path}/sdk" >> "${T}/90virtualbox"
|
||||
echo "VBOX_INSTALL_PATH=${vbox_inst_path}" >> "${T}/90virtualbox"
|
||||
doenvd "${T}/90virtualbox"
|
||||
|
||||
if use sdl; then
|
||||
vbox_inst VBoxSDL 0750
|
||||
pax-mark -m "${ED}"${vbox_inst_path}/VBoxSDL
|
||||
|
||||
for each in vboxsdl VBoxSDL ; do
|
||||
dosym ${vbox_inst_path}/VBox /usr/bin/${each}
|
||||
done
|
||||
fi
|
||||
|
||||
if use gui; then
|
||||
vbox_inst VirtualBox
|
||||
vbox_inst VirtualBoxVM 0750
|
||||
for each in VirtualBox{,VM} ; do
|
||||
pax-mark -m "${ED}"${vbox_inst_path}/${each}
|
||||
done
|
||||
|
||||
if use opengl; then
|
||||
vbox_inst VBoxTestOGL
|
||||
pax-mark -m "${ED}"${vbox_inst_path}/VBoxTestOGL
|
||||
fi
|
||||
|
||||
for each in virtualbox{,vm} VirtualBox{,VM} ; do
|
||||
dosym ${vbox_inst_path}/VBox /usr/bin/${each}
|
||||
done
|
||||
|
||||
insinto /usr/share/${PN}
|
||||
doins -r nls
|
||||
doins -r UnattendedTemplates
|
||||
|
||||
newmenu ${MY_PN}.desktop ${PN}.desktop
|
||||
|
||||
pushd "${S}"/src/VBox/Artwork/OSE &>/dev/null || die
|
||||
for size in 16 32 48 64 128 ; do
|
||||
newicon -s ${size} ${MY_PN}-${size}px.png ${PN}.png
|
||||
done
|
||||
newicon ${MY_PN}-48px.png ${PN}.png
|
||||
newicon -s scalable ${MY_PN}.svg ${PN}.png
|
||||
popd &>/dev/null || die
|
||||
pushd "${S}"/src/VBox/Artwork/other &>/dev/null || die
|
||||
for size in 16 24 32 48 64 72 96 128 256 512 ; do
|
||||
for ico in hdd ova ovf vbox{,-extpack} vdi vdh vmdk ; do
|
||||
icofile="${MY_PN}-${ico}-${size}px.png"
|
||||
if [[ -f "${icofile}" ]]; then
|
||||
newicon -s ${size} ${icofile} ${MY_PN}-${ico}.png
|
||||
fi
|
||||
done
|
||||
done
|
||||
popd &>/dev/null || die
|
||||
fi
|
||||
|
||||
if use lvm; then
|
||||
vbox_inst VBoxVolInfo 0750
|
||||
dosym ${vbox_inst_path}/VBoxVolInfo /usr/bin/VBoxVolInfo
|
||||
fi
|
||||
|
||||
if use sdk; then
|
||||
insinto ${vbox_inst_path}
|
||||
doins -r sdk
|
||||
|
||||
if use java; then
|
||||
java-pkg_regjar "${ED}/${vbox_inst_path}/sdk/bindings/xpcom/java/vboxjxpcom.jar"
|
||||
java-pkg_regso "${ED}/${vbox_inst_path}/libvboxjxpcom.so"
|
||||
fi
|
||||
fi
|
||||
|
||||
if use udev; then
|
||||
local udevdir="$(get_udevdir)"
|
||||
local udev_file="VBoxCreateUSBNode.sh"
|
||||
local rules_file="10-virtualbox.rules"
|
||||
|
||||
insinto ${udevdir}
|
||||
doins ${udev_file}
|
||||
fowners root:vboxusers ${udevdir}/${udev_file}
|
||||
fperms 0750 ${udevdir}/${udev_file}
|
||||
|
||||
insinto ${udevdir}/rules.d
|
||||
sed "s@%UDEVDIR%@${udevdir}@" "${FILESDIR}"/${rules_file} \
|
||||
> "${T}"/${rules_file} || die
|
||||
doins "${T}"/${rules_file}
|
||||
fi
|
||||
|
||||
if use vboxwebsrv; then
|
||||
vbox_inst vboxwebsrv
|
||||
dosym ${vbox_inst_path}/VBox /usr/bin/vboxwebsrv
|
||||
newinitd "${FILESDIR}"/vboxwebsrv-initd vboxwebsrv
|
||||
newconfd "${FILESDIR}"/vboxwebsrv-confd vboxwebsrv
|
||||
fi
|
||||
|
||||
# Remove dead symlinks (bug #715338)
|
||||
find "${ED}"/usr/$(get_libdir)/${MY_PN} -xtype l -delete || die
|
||||
|
||||
# Fix version string in extensions or else they don't get accepted
|
||||
# by the virtualbox host process (see bug #438930)
|
||||
find ExtensionPacks -type f -name "ExtPack.xml" -exec sed -i '/Version/s@_Gentoo@@' {} \+ || die
|
||||
|
||||
local extensions_dir="${vbox_inst_path}/ExtensionPacks"
|
||||
|
||||
if use vnc; then
|
||||
insinto ${extensions_dir}
|
||||
doins -r ExtensionPacks/VNC
|
||||
fi
|
||||
|
||||
if use dtrace; then
|
||||
insinto ${extensions_dir}
|
||||
doins -r ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack
|
||||
fi
|
||||
|
||||
if use doc; then
|
||||
dodoc UserManual.pdf UserManual.q{ch,hc}
|
||||
docompress -x /usr/share/doc/${PF}/UserManual.q{ch,hc}
|
||||
elif use gui; then
|
||||
dodoc "${WORKDIR}"/${MY_PN}-help-${ORIGIN_PV}/UserManual.q{ch,hc}
|
||||
docompress -x /usr/share/doc/${PF}/UserManual.q{ch,hc}
|
||||
fi
|
||||
dodoc ${PATCHES_DIR}/README.*
|
||||
|
||||
if use python; then
|
||||
local python_path_ext="${ED}/usr/$(get_libdir)/virtualbox/VBoxPython3.so"
|
||||
if [[ ! -x "${python_path_ext}" ]]; then
|
||||
eerror "Couldn't find ${python_path_ext}! Bindings were requested with USE=python"
|
||||
eerror "but none were installed. This may happen if support for a Python target"
|
||||
eerror "(listed in PYTHON_COMPAT in the ebuild) is incomplete within the Makefiles."
|
||||
die "Incomplete installation of Python bindings! File a bug with Gentoo!"
|
||||
fi
|
||||
|
||||
# 378871
|
||||
local installer_dir="${ED}/usr/$(get_libdir)/virtualbox/sdk/installer"
|
||||
pushd "${installer_dir}" &> /dev/null || die
|
||||
sed -e "s;%VBOX_INSTALL_PATH%;${vbox_inst_path};" \
|
||||
-e "s;%VBOX_SDK_PATH%;${vbox_inst_path}/sdk;" \
|
||||
-i vboxapi/__init__.py || die
|
||||
# insert shebang, the files come without one
|
||||
find vboxapi -name \*.py -exec sed -e "1 i\#! ${PYTHON}" -i {} \+ || die
|
||||
python_domodule vboxapi
|
||||
popd &> /dev/null || die
|
||||
python_doscript vboxshell.py
|
||||
|
||||
# do not install the installer
|
||||
rm -r "${installer_dir}" || die
|
||||
fi
|
||||
|
||||
newtmpfiles "${FILESDIR}"/${MY_PN}-vboxusb_tmpfilesd virtualbox-vboxusb.conf
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
xdg_pkg_postinst
|
||||
|
||||
if use udev; then
|
||||
udev_reload
|
||||
udevadm trigger --subsystem-match=usb
|
||||
fi
|
||||
|
||||
tmpfiles_process virtualbox-vboxusb.conf
|
||||
|
||||
if use gui; then
|
||||
elog "To launch VirtualBox just type: \"virtualbox\"."
|
||||
fi
|
||||
|
||||
elog "You must be in the vboxusers group to use VirtualBox."
|
||||
elog ""
|
||||
elog "The latest user manual is available for download at:"
|
||||
elog "https://download.virtualbox.org/virtualbox/${ORIGIN_PV}/UserManual.pdf"
|
||||
elog ""
|
||||
|
||||
optfeature "Advanced networking setups" net-misc/bridge-utils sys-apps/usermode-utilities
|
||||
optfeature "USB2, USB3, PXE boot, and VRDP support" app-emulation/virtualbox-extpack-oracle
|
||||
optfeature "Guest additions ISO" app-emulation/virtualbox-additions
|
||||
|
||||
if ! use udev; then
|
||||
ewarn "Without USE=udev, USB devices will likely not work in ${MY_PN}."
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
xdg_pkg_postrm
|
||||
|
||||
use udev && udev_reload
|
||||
}
|
@ -0,0 +1,34 @@
|
||||
# Copyright 2022-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
# XXX: the tarball here is just the kernel modules split out of the binary
|
||||
# package that comes from VirtualBox-*.run
|
||||
# XXX: update: now it is split from virtualbox-*-Debian~bullseye_amd64.deb
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit linux-mod-r1
|
||||
|
||||
MY_P="vbox-kernel-module-src-${PV}"
|
||||
DESCRIPTION="Kernel Modules for Virtualbox"
|
||||
HOMEPAGE="https://www.virtualbox.org/"
|
||||
SRC_URI="https://dev.gentoo.org/~ceamac/${CATEGORY}/${PN}/${MY_P}.tar.xz"
|
||||
S="${WORKDIR}"
|
||||
|
||||
LICENSE="GPL-3"
|
||||
SLOT="0/$(ver_cut 1-2)"
|
||||
KEYWORDS="~amd64"
|
||||
|
||||
CONFIG_CHECK="~!SPINLOCK JUMP_LABEL"
|
||||
|
||||
src_compile() {
|
||||
local modlist=( {vboxdrv,vboxnetflt,vboxnetadp}=misc )
|
||||
local modargs=( KERN_DIR="${KV_OUT_DIR}" KERN_VER="${KV_FULL}" )
|
||||
linux-mod-r1_src_compile
|
||||
}
|
||||
|
||||
src_install() {
|
||||
linux-mod-r1_src_install
|
||||
insinto /usr/lib/modules-load.d/
|
||||
newins "${FILESDIR}"/virtualbox.conf-r1 virtualbox.conf
|
||||
}
|
@ -0,0 +1,740 @@
|
||||
# Copyright 2022-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
# To add a new Python here:
|
||||
# 1. Patch src/libs/xpcom18a4/python/Makefile.kmk (copy the previous impl's logic)
|
||||
# Do NOT skip this part. It'll end up silently not-building the Python extension
|
||||
# or otherwise misbehaving if you do.
|
||||
#
|
||||
# 2. Then update PYTHON_COMPAT & set PYTHON_SINGLE_TARGET for testing w/ USE=python.
|
||||
#
|
||||
# May need to look at other distros (e.g. Arch Linux) to find patches for newer
|
||||
# Python versions as upstream tends to lag. Upstream may have patches on their
|
||||
# trunk branch but not release branch.
|
||||
#
|
||||
# See bug #785835, bug #856121.
|
||||
PYTHON_COMPAT=( python3_{10..11} )
|
||||
|
||||
inherit desktop edo flag-o-matic java-pkg-opt-2 linux-info multilib optfeature pax-utils \
|
||||
python-single-r1 tmpfiles toolchain-funcs udev xdg
|
||||
|
||||
MY_PN="VirtualBox"
|
||||
MY_P=${MY_PN}-${PV}
|
||||
|
||||
DESCRIPTION="Family of powerful x86 virtualization products for enterprise and home use"
|
||||
HOMEPAGE="https://www.virtualbox.org/"
|
||||
SRC_URI="
|
||||
https://download.virtualbox.org/virtualbox/${PV}/${MY_P}.tar.bz2
|
||||
https://gitweb.gentoo.org/proj/virtualbox-patches.git/snapshot/virtualbox-patches-7.0.16.tar.bz2
|
||||
gui? ( !doc? ( https://dev.gentoo.org/~ceamac/${CATEGORY}/${PN}/${PN}-help-${PV}.tar.xz ) )
|
||||
"
|
||||
S="${WORKDIR}/${MY_PN}-${PV}"
|
||||
|
||||
LICENSE="GPL-2+ GPL-3 LGPL-2.1 MIT dtrace? ( CDDL )"
|
||||
SLOT="0/$(ver_cut 1-2)"
|
||||
KEYWORDS="~amd64"
|
||||
IUSE="alsa dbus debug doc dtrace +gui java lvm nls pam pch pulseaudio +opengl python +sdk +sdl +udev vboxwebsrv vde vnc"
|
||||
|
||||
unset WATCOM #856769
|
||||
|
||||
COMMON_DEPEND="
|
||||
${PYTHON_DEPS}
|
||||
acct-group/vboxusers
|
||||
~app-emulation/virtualbox-modules-${PV}
|
||||
dev-libs/libtpms
|
||||
dev-libs/libxml2
|
||||
dev-libs/openssl:0=
|
||||
media-libs/libpng:0=
|
||||
media-libs/libvpx:0=
|
||||
net-misc/curl
|
||||
sys-libs/zlib
|
||||
dbus? ( sys-apps/dbus )
|
||||
gui? (
|
||||
dev-qt/qtcore:5
|
||||
dev-qt/qtdbus:5
|
||||
dev-qt/qtgui:5
|
||||
dev-qt/qthelp:5
|
||||
dev-qt/qtprintsupport:5
|
||||
dev-qt/qtwidgets:5
|
||||
dev-qt/qtx11extras:5
|
||||
dev-qt/qtxml:5
|
||||
x11-libs/libX11
|
||||
x11-libs/libXt
|
||||
opengl? ( dev-qt/qtopengl:5 )
|
||||
)
|
||||
lvm? ( sys-fs/lvm2 )
|
||||
opengl? (
|
||||
media-libs/libglvnd[X]
|
||||
media-libs/vulkan-loader
|
||||
x11-libs/libX11
|
||||
x11-libs/libXt
|
||||
)
|
||||
pam? ( sys-libs/pam )
|
||||
sdl? (
|
||||
media-libs/libsdl2[X,video]
|
||||
x11-libs/libX11
|
||||
x11-libs/libXcursor
|
||||
x11-libs/libXt
|
||||
)
|
||||
vboxwebsrv? ( net-libs/gsoap[-gnutls(-),debug?] )
|
||||
vde? ( net-misc/vde )
|
||||
vnc? ( >=net-libs/libvncserver-0.9.9 )
|
||||
"
|
||||
# We're stuck on JDK (and JRE, I guess?) 1.8 because of need for wsimport
|
||||
# with USE="vboxwebsrv java". Note that we have to put things in DEPEND,
|
||||
# not (only, anyway) BDEPEND, as the eclass magic to set the environment variables
|
||||
# based on *DEPEND doesn't work for BDEPEND at least right now.
|
||||
#
|
||||
# There's a comment in Config.kmk about it
|
||||
# ("With Java 11 wsimport was removed, usually part of a separate install now.")
|
||||
# but it needs more investigation.
|
||||
#
|
||||
# See bug #878299 to track this issue.
|
||||
DEPEND="
|
||||
${COMMON_DEPEND}
|
||||
>=dev-libs/libxslt-1.1.19
|
||||
virtual/libcrypt:=
|
||||
alsa? ( >=media-libs/alsa-lib-1.0.13 )
|
||||
gui? (
|
||||
x11-base/xorg-proto
|
||||
x11-libs/libxcb:=
|
||||
x11-libs/libXcursor
|
||||
x11-libs/libXext
|
||||
x11-libs/libXinerama
|
||||
x11-libs/libXmu
|
||||
x11-libs/libXrandr
|
||||
)
|
||||
java? ( virtual/jdk:1.8 )
|
||||
opengl? (
|
||||
x11-base/xorg-proto
|
||||
x11-libs/libXcursor
|
||||
x11-libs/libXinerama
|
||||
x11-libs/libXmu
|
||||
x11-libs/libXrandr
|
||||
virtual/glu
|
||||
)
|
||||
sdl? ( x11-libs/libXinerama )
|
||||
pulseaudio? ( media-libs/libpulse )
|
||||
udev? ( >=virtual/udev-171 )
|
||||
"
|
||||
RDEPEND="
|
||||
${COMMON_DEPEND}
|
||||
gui? ( x11-libs/libxcb:= )
|
||||
java? ( virtual/jre:1.8 )
|
||||
"
|
||||
BDEPEND="
|
||||
${PYTHON_DEPS}
|
||||
>=app-arch/tar-1.34-r2
|
||||
>=dev-lang/yasm-0.6.2
|
||||
dev-libs/libIDL
|
||||
dev-util/glslang
|
||||
>=dev-build/kbuild-0.1.9998.3592
|
||||
sys-apps/which
|
||||
sys-devel/bin86
|
||||
sys-libs/libcap
|
||||
sys-power/iasl
|
||||
virtual/pkgconfig
|
||||
doc? (
|
||||
app-text/docbook-sgml-dtd:4.4
|
||||
app-text/docbook-xsl-ns-stylesheets
|
||||
dev-texlive/texlive-basic
|
||||
dev-texlive/texlive-latex
|
||||
dev-texlive/texlive-latexrecommended
|
||||
dev-texlive/texlive-latexextra
|
||||
dev-texlive/texlive-fontsrecommended
|
||||
dev-texlive/texlive-fontsextra
|
||||
dev-qt/qthelp:5
|
||||
)
|
||||
gui? ( dev-qt/linguist-tools:5 )
|
||||
nls? ( dev-qt/linguist-tools:5 )
|
||||
java? ( virtual/jdk:1.8 )
|
||||
"
|
||||
|
||||
QA_FLAGS_IGNORED="
|
||||
usr/lib64/virtualbox/VBoxDDR0.r0
|
||||
usr/lib64/virtualbox/VMMR0.r0
|
||||
usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
|
||||
usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug
|
||||
"
|
||||
|
||||
QA_TEXTRELS="
|
||||
usr/lib64/virtualbox/VMMR0.r0
|
||||
usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
|
||||
"
|
||||
|
||||
QA_EXECSTACK="
|
||||
usr/lib64/virtualbox/iPxeBaseBin
|
||||
usr/lib64/virtualbox/VMMR0.r0
|
||||
usr/lib64/virtualbox/VBoxDDR0.r0
|
||||
usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
|
||||
usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug
|
||||
"
|
||||
|
||||
QA_WX_LOAD="
|
||||
usr/lib64/virtualbox/iPxeBaseBin
|
||||
"
|
||||
|
||||
QA_PRESTRIPPED="
|
||||
usr/lib64/virtualbox/VMMR0.r0
|
||||
usr/lib64/virtualbox/VBoxDDR0.r0
|
||||
usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
|
||||
"
|
||||
|
||||
REQUIRED_USE="
|
||||
java? ( sdk )
|
||||
python? ( sdk )
|
||||
vboxwebsrv? ( java )
|
||||
${PYTHON_REQUIRED_USE}
|
||||
"
|
||||
|
||||
PATCHES=(
|
||||
# Downloaded patchset
|
||||
"${WORKDIR}"/virtualbox-patches-7.0.16/patches
|
||||
)
|
||||
|
||||
pkg_pretend() {
|
||||
if ! use gui; then
|
||||
einfo "No USE=\"gui\" selected, this build will not include any Qt frontend."
|
||||
fi
|
||||
|
||||
if ! use opengl; then
|
||||
einfo "No USE=\"opengl\" selected, this build will lack"
|
||||
einfo "the OpenGL feature."
|
||||
fi
|
||||
if ! use python; then
|
||||
einfo "You have disabled the \"python\" USE flag. This will only"
|
||||
einfo "disable the python bindings being installed."
|
||||
fi
|
||||
if ! use nls && use gui; then
|
||||
einfo "USE=\"gui\" also selects USE=\"nls\". This build"
|
||||
einfo "will have NLS support."
|
||||
fi
|
||||
|
||||
# 749273
|
||||
local d=${ROOT}
|
||||
for i in usr "$(get_libdir)"; do
|
||||
d="${d}/$i"
|
||||
if [[ "$(stat -L -c "%g %u" "${d}")" != "0 0" ]]; then
|
||||
die "${d} should be owned by root, VirtualBox will not start otherwise"
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
java-pkg-opt-2_pkg_setup
|
||||
python-single-r1_pkg_setup
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
# Only add nopie patch when we're on hardened
|
||||
if gcc-specs-pie; then
|
||||
eapply "${FILESDIR}"/050_virtualbox-5.2.8-nopie.patch
|
||||
fi
|
||||
|
||||
# Remove shipped binaries (kBuild, yasm) and tools, see bug #232775
|
||||
rm -r kBuild/bin || die
|
||||
# Remove everything in tools except kBuildUnits
|
||||
find tools -mindepth 1 -maxdepth 1 -name kBuildUnits -prune -o -exec rm -r {} \+ || die
|
||||
|
||||
# Disable things unused or split into separate ebuilds
|
||||
sed -e "s@MY_LIBDIR@$(get_libdir)@" \
|
||||
"${FILESDIR}"/${PN}-5-localconfig > LocalConfig.kmk || die
|
||||
|
||||
if ! use pch; then
|
||||
# bug #753323
|
||||
printf '\n%s\n' "VBOX_WITHOUT_PRECOMPILED_HEADERS=1" \
|
||||
>> LocalConfig.kmk || die
|
||||
fi
|
||||
|
||||
# bug #916002, #488176
|
||||
tc-ld-force-bfd
|
||||
|
||||
# Respect LDFLAGS
|
||||
sed -e "s@_LDFLAGS\.${ARCH}*.*=@& ${LDFLAGS}@g" \
|
||||
-i Config.kmk src/libs/xpcom18a4/Config.kmk || die
|
||||
|
||||
# Do not use hard-coded ld (related to bug #488176)
|
||||
sed -e '/QUIET)ld /s@ld @$(LD) @' \
|
||||
-i src/VBox/Devices/PC/ipxe/Makefile.kmk || die
|
||||
|
||||
# Use PAM only when pam USE flag is enbaled (bug #376531)
|
||||
if ! use pam; then
|
||||
einfo "Disabling PAM removes the possibility to use the VRDP features."
|
||||
sed -i 's@^.*VBOX_WITH_PAM@#VBOX_WITH_PAM@' Config.kmk || die
|
||||
sed -i 's@\(.*/auth/Makefile.kmk.*\)@#\1@' \
|
||||
src/VBox/HostServices/Makefile.kmk || die
|
||||
echo -e "\nIPRT_WITHOUT_PAM=1" >> LocalConfig.kmk || die
|
||||
fi
|
||||
|
||||
# add correct java path
|
||||
if use java; then
|
||||
sed "s@/usr/lib/jvm/java-6-sun@$(java-config -O)@" \
|
||||
-i "${S}"/Config.kmk || die
|
||||
java-pkg-opt-2_src_prepare
|
||||
fi
|
||||
|
||||
#856811 #864274
|
||||
# cannot filter out only one flag, some combinations of these flags produce buggy executables
|
||||
for i in abm avx avx2 bmi bmi2 fma fma4 popcnt; do
|
||||
append-cflags $(test-flags-CC -mno-$i)
|
||||
append-cxxflags $(test-flags-CXX -mno-$i)
|
||||
done
|
||||
|
||||
# bug #908814
|
||||
filter-lto
|
||||
|
||||
# bug #843437
|
||||
cat >> LocalConfig.kmk <<-EOF || die
|
||||
CXXFLAGS=${CXXFLAGS}
|
||||
CFLAGS=${CFLAGS}
|
||||
EOF
|
||||
|
||||
if use sdl; then
|
||||
sed -i 's/sdl-config/sdl2-config/' configure || die
|
||||
echo -e "\nVBOX_WITH_VBOXSDL=1" >> LocalConfig.kmk || die
|
||||
fi
|
||||
|
||||
#443830
|
||||
echo -e "\nVBOX_WITH_VBOX_IMG=1" >> LocalConfig.kmk || die
|
||||
|
||||
if tc-is-clang; then
|
||||
# clang assembler chokes on comments starting with /
|
||||
sed -i -e '/^\//d' src/libs/xpcom18a4/nsprpub/pr/src/md/unix/os_Linux_x86_64.s || die
|
||||
|
||||
# clang does not support this extension
|
||||
eapply "${FILESDIR}"/${PN}-7.0.8-disable-rebuild-iPxeBiosBin.patch
|
||||
fi
|
||||
|
||||
# fix doc generation
|
||||
echo -e "\nVBOX_PATH_DOCBOOK=/usr/share/sgml/docbook/xsl-ns-stylesheets" >> LocalConfig.kmk || die
|
||||
# replace xhtml names with numeric equivalents
|
||||
find doc/manual -name \*.xml -exec sed -i \
|
||||
-e 's/ /\ /g' \
|
||||
-e 's/–/\–/g' \
|
||||
-e 's/←/\←/g' \
|
||||
-e 's/→/\→/g' \
|
||||
-e 's/↔/\↔/g' {} \+ || die
|
||||
|
||||
# fix help path #891879
|
||||
echo -e "\nVBOX_PATH_PACKAGE_DOCS=/usr/share/doc/${PF}" >> LocalConfig.kmk || die
|
||||
|
||||
# 489208
|
||||
# Cannot patch the whole text, many translations. Use sed instead to replace the command
|
||||
find src/VBox/Frontends/VirtualBox/nls -name \*.ts -exec sed -i \
|
||||
's/'[^&]*\(vboxdrv setup\|vboxconfig\)'/\'emerge -1 virtualbox-modules\'/' {} \+ || die
|
||||
sed -i "s:'/sbin/vboxconfig':'emerge -1 virtualbox-modules':" \
|
||||
src/VBox/Frontends/VirtualBox/src/main.cpp \
|
||||
src/VBox/VMM/VMMR3/VM.cpp || die
|
||||
|
||||
# 890561
|
||||
echo -e "\nVBOX_GTAR=gtar" >> LocalConfig.kmk || die
|
||||
|
||||
if ! use nls && ! use gui; then
|
||||
cat >> LocalConfig.kmk <<-EOF || die
|
||||
VBOX_WITH_NLS :=
|
||||
VBOX_WITH_MAIN_NLS :=
|
||||
VBOX_WITH_PUEL_NLS :=
|
||||
VBOX_WITH_VBOXMANAGE_NLS :=
|
||||
EOF
|
||||
fi
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
tc-export AR CC CXX LD RANLIB
|
||||
export HOST_CC="$(tc-getBUILD_CC)"
|
||||
|
||||
local myconf=(
|
||||
--with-gcc="$(tc-getCC)"
|
||||
--with-g++="$(tc-getCXX)"
|
||||
|
||||
--disable-kmods
|
||||
|
||||
$(usev !alsa --disable-alsa)
|
||||
$(usev !dbus --disable-dbus)
|
||||
$(usev debug --build-debug)
|
||||
$(usev !doc --disable-docs)
|
||||
$(usev !java --disable-java)
|
||||
$(usev !lvm --disable-devmapper)
|
||||
$(usev !pulseaudio --disable-pulse)
|
||||
$(usev !python --disable-python)
|
||||
$(usev vboxwebsrv --enable-webservice)
|
||||
$(usev vde --enable-vde)
|
||||
$(usev vnc --enable-vnc)
|
||||
)
|
||||
|
||||
if use gui || use sdl || use opengl; then
|
||||
myconf+=(
|
||||
$(usev !opengl --disable-opengl)
|
||||
$(usev !gui --disable-qt)
|
||||
$(usev !sdl --disable-sdl)
|
||||
)
|
||||
else
|
||||
myconf+=(
|
||||
--build-headless
|
||||
)
|
||||
fi
|
||||
|
||||
if use amd64 && ! has_multilib_profile; then
|
||||
myconf+=( --disable-vmmraw )
|
||||
fi
|
||||
|
||||
# not an autoconf script
|
||||
edo ./configure "${myconf[@]}"
|
||||
|
||||
# Force usage of chosen Python implementation
|
||||
# bug #856121, bug #785835
|
||||
sed -i \
|
||||
-e '/VBOX_WITH_PYTHON.*=/d' \
|
||||
-e '/VBOX_PATH_PYTHON_INC.*=/d' \
|
||||
-e '/VBOX_LIB_PYTHON.*=/d' \
|
||||
AutoConfig.kmk || die
|
||||
|
||||
cat >> AutoConfig.kmk <<-EOF || die
|
||||
VBOX_WITH_PYTHON=$(usev python 1)
|
||||
VBOX_PATH_PYTHON_INC=$(python_get_includedir)
|
||||
VBOX_LIB_PYTHON=$(python_get_library_path)
|
||||
EOF
|
||||
|
||||
if use python; then
|
||||
local mangled_python="${EPYTHON#python}"
|
||||
mangled_python="${mangled_python/.}"
|
||||
|
||||
# Stub out the script which defines what the Makefile ends up
|
||||
# building for. gen_python_deps.py gets called by the Makefile
|
||||
# with some args and it spits out a bunch of paths for a hardcoded
|
||||
# list of Pythons. We just override it with what we're actually using.
|
||||
# This minimises the amount of patching we have to do for new Pythons.
|
||||
cat > src/libs/xpcom18a4/python/gen_python_deps.py <<-EOF || die
|
||||
print("VBOX_PYTHON${mangled_python}_INC=$(python_get_includedir)")
|
||||
print("VBOX_PYTHON${mangled_python}_LIB=$(python_get_library_path)")
|
||||
print("VBOX_PYTHONDEF_INC=$(python_get_includedir)")
|
||||
print("VBOX_PYTHONDEF_LIB=$(python_get_library_path)")
|
||||
EOF
|
||||
|
||||
chmod +x src/libs/xpcom18a4/python/gen_python_deps.py || die
|
||||
fi
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
source ./env.sh || die
|
||||
|
||||
# Force kBuild to respect C[XX]FLAGS and MAKEOPTS (bug #178529)
|
||||
MAKEJOBS=$(grep -Eo '(\-j|\-\-jobs)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS})
|
||||
MAKELOAD=$(grep -Eo '(\-l|\-\-load-average)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS})
|
||||
MAKEOPTS="${MAKEJOBS} ${MAKELOAD}"
|
||||
|
||||
local myemakeargs=(
|
||||
VBOX_BUILD_PUBLISHER=_Gentoo
|
||||
VBOX_WITH_VBOXIMGMOUNT=1
|
||||
|
||||
KBUILD_VERBOSE=2
|
||||
|
||||
AS="$(tc-getCC)"
|
||||
CC="$(tc-getCC)"
|
||||
CXX="$(tc-getCXX)"
|
||||
|
||||
TOOL_GCC3_CC="$(tc-getCC)"
|
||||
TOOL_GCC3_LD="$(tc-getCC)"
|
||||
TOOL_GCC3_AS="$(tc-getCC)"
|
||||
TOOL_GCC3_AR="$(tc-getAR)"
|
||||
TOOL_GCC3_OBJCOPY="$(tc-getOBJCOPY)"
|
||||
|
||||
TOOL_GXX3_CC="$(tc-getCC)"
|
||||
TOOL_GXX3_CXX="$(tc-getCXX)"
|
||||
TOOL_GXX3_LD="$(tc-getCXX)"
|
||||
TOOL_GXX3_AS="$(tc-getCXX)"
|
||||
TOOL_GXX3_AR="$(tc-getAR)"
|
||||
TOOL_GXX3_OBJCOPY="$(tc-getOBJCOPY)"
|
||||
|
||||
TOOL_GCC3_CFLAGS="${CFLAGS}"
|
||||
TOOL_GCC3_CXXFLAGS="${CXXFLAGS}"
|
||||
VBOX_GCC_OPT="${CXXFLAGS}"
|
||||
VBOX_NM="$(tc-getNM)"
|
||||
|
||||
TOOL_YASM_AS=yasm
|
||||
)
|
||||
|
||||
if use amd64 && has_multilib_profile; then
|
||||
myemakeargs+=(
|
||||
CC32="$(tc-getCC) -m32"
|
||||
CXX32="$(tc-getCXX) -m32"
|
||||
|
||||
TOOL_GCC32_CC="$(tc-getCC) -m32"
|
||||
TOOL_GCC32_CXX="$(tc-getCXX) -m32"
|
||||
TOOL_GCC32_LD="$(tc-getCC) -m32"
|
||||
TOOL_GCC32_AS="$(tc-getCC) -m32"
|
||||
TOOL_GCC32_AR="$(tc-getAR)"
|
||||
TOOL_GCC32_OBJCOPY="$(tc-getOBJCOPY)"
|
||||
|
||||
TOOL_GXX32_CC="$(tc-getCC) -m32"
|
||||
TOOL_GXX32_CXX="$(tc-getCXX) -m32"
|
||||
TOOL_GXX32_LD="$(tc-getCXX) -m32"
|
||||
TOOL_GXX32_AS="$(tc-getCXX) -m32"
|
||||
TOOL_GXX32_AR="$(tc-getAR)"
|
||||
TOOL_GXX32_OBJCOPY="$(tc-getOBJCOPY)"
|
||||
)
|
||||
fi
|
||||
|
||||
MAKE="kmk" emake "${myemakeargs[@]}" all
|
||||
}
|
||||
|
||||
src_install() {
|
||||
cd "${S}"/out/linux.${ARCH}/$(usex debug debug release)/bin || die
|
||||
|
||||
local vbox_inst_path="/usr/$(get_libdir)/${PN}" each size ico icofile
|
||||
|
||||
vbox_inst() {
|
||||
local binary="${1}"
|
||||
local perms="${2:-0750}"
|
||||
local path="${3:-${vbox_inst_path}}"
|
||||
|
||||
[[ -n "${binary}" ]] || die "vbox_inst: No binary given!"
|
||||
[[ ${perms} =~ ^[[:digit:]]+{4}$ ]] || die "vbox_inst: perms must consist of four digits."
|
||||
|
||||
insinto ${path}
|
||||
doins ${binary}
|
||||
fowners root:vboxusers ${path}/${binary}
|
||||
fperms ${perms} ${path}/${binary}
|
||||
}
|
||||
|
||||
# Create configuration files
|
||||
insinto /etc/vbox
|
||||
newins "${FILESDIR}/${PN}-4-config" vbox.cfg
|
||||
|
||||
# Set the correct libdir
|
||||
sed \
|
||||
-e "s@MY_LIBDIR@$(get_libdir)@" \
|
||||
-i "${ED}"/etc/vbox/vbox.cfg || die "vbox.cfg sed failed"
|
||||
|
||||
# Install the wrapper script
|
||||
exeinto ${vbox_inst_path}
|
||||
newexe "${FILESDIR}/${PN}-ose-6-wrapper" "VBox"
|
||||
fowners root:vboxusers ${vbox_inst_path}/VBox
|
||||
fperms 0750 ${vbox_inst_path}/VBox
|
||||
|
||||
# Install binaries and libraries
|
||||
insinto ${vbox_inst_path}
|
||||
doins -r components
|
||||
|
||||
for each in VBox{Autostart,BalloonCtrl,BugReport,CpuReport,ExtPackHelperApp,Manage,SVC,VMMPreload,XPCOMIPCD} \
|
||||
vboximg-mount vbox-img *so *r0; do
|
||||
vbox_inst ${each}
|
||||
done
|
||||
|
||||
# These binaries need to be suid root.
|
||||
for each in VBox{Headless,Net{AdpCtl,DHCP,NAT}} ; do
|
||||
vbox_inst ${each} 4750
|
||||
done
|
||||
|
||||
# Install EFI Firmware files (bug #320757)
|
||||
for each in VBoxEFI{32,64}.fd ; do
|
||||
vbox_inst ${each} 0644
|
||||
done
|
||||
|
||||
# VBoxSVC and VBoxManage need to be pax-marked (bug #403453)
|
||||
# VBoxXPCOMIPCD (bug #524202)
|
||||
for each in VBox{Headless,Manage,SVC,XPCOMIPCD} ; do
|
||||
pax-mark -m "${ED}"${vbox_inst_path}/${each}
|
||||
done
|
||||
|
||||
# Symlink binaries to the shipped wrapper
|
||||
for each in vbox{autostart,balloonctrl,bugreport,headless,manage} \
|
||||
VBox{Autostart,BalloonCtrl,BugReport,Headless,Manage,VRDP} ; do
|
||||
dosym ${vbox_inst_path}/VBox /usr/bin/${each}
|
||||
done
|
||||
dosym ${vbox_inst_path}/vboximg-mount /usr/bin/vboximg-mount
|
||||
dosym ${vbox_inst_path}/vbox-img /usr/bin/vbox-img
|
||||
|
||||
if use pam; then
|
||||
# VRDPAuth only works with this (bug #351949)
|
||||
dosym VBoxAuth.so ${vbox_inst_path}/VRDPAuth.so
|
||||
fi
|
||||
|
||||
# set an env-variable for 3rd party tools
|
||||
echo "VBOX_APP_HOME=${vbox_inst_path}" > "${T}/90virtualbox"
|
||||
# environment variables used during SDK binding installation
|
||||
echo "VBOX_SDK_PATH=${vbox_inst_path}/sdk" >> "${T}/90virtualbox"
|
||||
echo "VBOX_INSTALL_PATH=${vbox_inst_path}" >> "${T}/90virtualbox"
|
||||
doenvd "${T}/90virtualbox"
|
||||
|
||||
if use sdl; then
|
||||
vbox_inst VBoxSDL 4750
|
||||
pax-mark -m "${ED}"${vbox_inst_path}/VBoxSDL
|
||||
|
||||
for each in vboxsdl VBoxSDL ; do
|
||||
dosym ${vbox_inst_path}/VBox /usr/bin/${each}
|
||||
done
|
||||
fi
|
||||
|
||||
if use gui; then
|
||||
vbox_inst VirtualBox
|
||||
vbox_inst VirtualBoxVM 4750
|
||||
for each in VirtualBox{,VM} ; do
|
||||
pax-mark -m "${ED}"${vbox_inst_path}/${each}
|
||||
done
|
||||
|
||||
if use opengl; then
|
||||
vbox_inst VBoxTestOGL
|
||||
pax-mark -m "${ED}"${vbox_inst_path}/VBoxTestOGL
|
||||
fi
|
||||
|
||||
for each in virtualbox{,vm} VirtualBox{,VM} ; do
|
||||
dosym ${vbox_inst_path}/VBox /usr/bin/${each}
|
||||
done
|
||||
|
||||
insinto /usr/share/${PN}
|
||||
doins -r nls
|
||||
doins -r UnattendedTemplates
|
||||
|
||||
domenu ${PN}.desktop
|
||||
|
||||
pushd "${S}"/src/VBox/Artwork/OSE &>/dev/null || die
|
||||
for size in 16 32 48 64 128 ; do
|
||||
newicon -s ${size} ${PN}-${size}px.png ${PN}.png
|
||||
done
|
||||
newicon ${PN}-48px.png ${PN}.png
|
||||
doicon -s scalable ${PN}.svg
|
||||
popd &>/dev/null || die
|
||||
pushd "${S}"/src/VBox/Artwork/other &>/dev/null || die
|
||||
for size in 16 24 32 48 64 72 96 128 256 512 ; do
|
||||
for ico in hdd ova ovf vbox{,-extpack} vdi vdh vmdk ; do
|
||||
icofile="${PN}-${ico}-${size}px.png"
|
||||
if [[ -f "${icofile}" ]]; then
|
||||
newicon -s ${size} ${icofile} ${PN}-${ico}.png
|
||||
fi
|
||||
done
|
||||
done
|
||||
popd &>/dev/null || die
|
||||
fi
|
||||
|
||||
if use lvm; then
|
||||
vbox_inst VBoxVolInfo 4750
|
||||
dosym ${vbox_inst_path}/VBoxVolInfo /usr/bin/VBoxVolInfo
|
||||
fi
|
||||
|
||||
if use sdk; then
|
||||
insinto ${vbox_inst_path}
|
||||
doins -r sdk
|
||||
|
||||
if use java; then
|
||||
java-pkg_regjar "${ED}/${vbox_inst_path}/sdk/bindings/xpcom/java/vboxjxpcom.jar"
|
||||
java-pkg_regso "${ED}/${vbox_inst_path}/libvboxjxpcom.so"
|
||||
fi
|
||||
fi
|
||||
|
||||
if use udev; then
|
||||
local udevdir="$(get_udevdir)"
|
||||
local udev_file="VBoxCreateUSBNode.sh"
|
||||
local rules_file="10-virtualbox.rules"
|
||||
|
||||
insinto ${udevdir}
|
||||
doins ${udev_file}
|
||||
fowners root:vboxusers ${udevdir}/${udev_file}
|
||||
fperms 0750 ${udevdir}/${udev_file}
|
||||
|
||||
insinto ${udevdir}/rules.d
|
||||
sed "s@%UDEVDIR%@${udevdir}@" "${FILESDIR}"/${rules_file} \
|
||||
> "${T}"/${rules_file} || die
|
||||
doins "${T}"/${rules_file}
|
||||
fi
|
||||
|
||||
if use vboxwebsrv; then
|
||||
vbox_inst vboxwebsrv
|
||||
dosym ${vbox_inst_path}/VBox /usr/bin/vboxwebsrv
|
||||
newinitd "${FILESDIR}"/vboxwebsrv-initd vboxwebsrv
|
||||
newconfd "${FILESDIR}"/vboxwebsrv-confd vboxwebsrv
|
||||
fi
|
||||
|
||||
# Remove dead symlinks (bug #715338)
|
||||
find "${ED}"/usr/$(get_libdir)/${PN} -xtype l -delete || die
|
||||
|
||||
# Fix version string in extensions or else they don't get accepted
|
||||
# by the virtualbox host process (see bug #438930)
|
||||
find ExtensionPacks -type f -name "ExtPack.xml" -exec sed -i '/Version/s@_Gentoo@@' {} \+ || die
|
||||
|
||||
local extensions_dir="${vbox_inst_path}/ExtensionPacks"
|
||||
|
||||
if use vnc; then
|
||||
insinto ${extensions_dir}
|
||||
doins -r ExtensionPacks/VNC
|
||||
fi
|
||||
|
||||
if use dtrace; then
|
||||
insinto ${extensions_dir}
|
||||
doins -r ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack
|
||||
fi
|
||||
|
||||
if use doc; then
|
||||
dodoc UserManual.pdf UserManual.q{ch,hc}
|
||||
docompress -x /usr/share/doc/${PF}
|
||||
elif use gui; then
|
||||
dodoc "${WORKDIR}"/${PN}-help-${PV}/UserManual.q{ch,hc}
|
||||
docompress -x /usr/share/doc/${PF}
|
||||
fi
|
||||
|
||||
if use python; then
|
||||
local python_path_ext="${ED}/usr/$(get_libdir)/virtualbox/VBoxPython3.so"
|
||||
if [[ ! -x "${python_path_ext}" ]]; then
|
||||
eerror "Couldn't find ${python_path_ext}! Bindings were requested with USE=python"
|
||||
eerror "but none were installed. This may happen if support for a Python target"
|
||||
eerror "(listed in PYTHON_COMPAT in the ebuild) is incomplete within the Makefiles."
|
||||
die "Incomplete installation of Python bindings! File a bug with Gentoo!"
|
||||
fi
|
||||
|
||||
# 378871
|
||||
local installer_dir="${ED}/usr/$(get_libdir)/virtualbox/sdk/installer"
|
||||
pushd "${installer_dir}" &> /dev/null || die
|
||||
sed -e "s;%VBOX_INSTALL_PATH%;${vbox_inst_path};" \
|
||||
-e "s;%VBOX_SDK_PATH%;${vbox_inst_path}/sdk;" \
|
||||
-i vboxapi/__init__.py || die
|
||||
# insert shebang, the files come without one
|
||||
find vboxapi -name \*.py -exec sed -e "1 i\#! ${PYTHON}" -i {} \+ || die
|
||||
python_domodule vboxapi
|
||||
popd &> /dev/null || die
|
||||
python_doscript vboxshell.py
|
||||
|
||||
# do not install the installer
|
||||
rm -r "${installer_dir}" || die
|
||||
fi
|
||||
|
||||
newtmpfiles "${FILESDIR}"/${PN}-vboxusb_tmpfilesd ${PN}-vboxusb.conf
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
xdg_pkg_postinst
|
||||
|
||||
if use udev; then
|
||||
udev_reload
|
||||
udevadm trigger --subsystem-match=usb
|
||||
fi
|
||||
|
||||
tmpfiles_process virtualbox-vboxusb.conf
|
||||
|
||||
if use gui; then
|
||||
elog "To launch VirtualBox just type: \"virtualbox\"."
|
||||
fi
|
||||
|
||||
elog "You must be in the vboxusers group to use VirtualBox."
|
||||
elog ""
|
||||
elog "The latest user manual is available for download at:"
|
||||
elog "https://download.virtualbox.org/virtualbox/${PV}/UserManual.pdf"
|
||||
elog ""
|
||||
|
||||
optfeature "Advanced networking setups" net-misc/bridge-utils sys-apps/usermode-utilities
|
||||
optfeature "USB2, USB3, PXE boot, and VRDP support" app-emulation/virtualbox-extpack-oracle
|
||||
optfeature "Guest additions ISO" app-emulation/virtualbox-additions
|
||||
|
||||
if ! use udev; then
|
||||
ewarn "Without USE=udev, USB devices will likely not work in ${PN}."
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
xdg_pkg_postrm
|
||||
|
||||
use udev && udev_reload
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue