parent
7971f43b0f
commit
157cfca6c8
Binary file not shown.
Binary file not shown.
@ -1,6 +1,4 @@
|
||||
DIST aws-cli-1.32.103.gh.tar.gz 2726436 BLAKE2B 7c08f29df7b0f786a99a7469263cb367ed8024cadb700a56955669abe6fd562cde349fe1e17e7b328b6cc69e6af6db30293f5a13129d700ebfedc1950c26fed3 SHA512 248659ee989df69ffbfbe6dd181632d4a784d4de333b8592c5e0b4a0333d2b201ec652f8ff0f44b51ffe4bc9bea230d047f655016742816cfc52bbb871a707d7
|
||||
DIST aws-cli-1.32.104.gh.tar.gz 2726763 BLAKE2B 997fc73890d033485fb22cf7c5e6ab2844aaec60fe2017cea2513f4f439f6fab8c70519a5ded46ed269b3733eed52579236e577d8db172448812128c68687d50 SHA512 a416f93d77a7f314294aff14a337dbea1ae7d5ef10221a97abec71f8b4c23d764455b4bcb48d10fc5cbb1fcc9cfb149bc4b49e102d0e488a8f3bd4d91782878c
|
||||
DIST aws-cli-1.32.105.gh.tar.gz 2727065 BLAKE2B 1ddbb3405e491fac1257936647872beb93f374754f718338cca1d6ddf230feb3ac4b167af36a1f2a351553af7ea0b525d6481bc06a9d469c79ad06134d1e1da2 SHA512 a181ca52de6f1c891ceb12958927040751e7890b505d1dd2ab1400f1fa17ba555ff2e2fa5a542113648991b37ce99d8016f00e863f81b56e783c28169d7cc993
|
||||
DIST aws-cli-1.32.106.gh.tar.gz 2727416 BLAKE2B 6749a4f63ca594c344a80751fc0ac0f3434c4b5c8a93db794f89d10a23369941656067b00fd66da72d4dd081a920e51a57572d028953356c9c5ad6ebfc1dccf1 SHA512 d6103bbacd65b94f4289d332bf18895899a5caa9c201bb62601863c86a07f8b97dd58651c0e8f2665b322e5d6ea3ac8d2bec2cdeac391cefe0cd03488a02fefc
|
||||
DIST aws-cli-1.32.93.gh.tar.gz 2695489 BLAKE2B d2f81786d4db158a13ec50ed833668db26bde00cc1e4f5254aa127aba82113074abafa996f525b5f7cd215fd51639481a01a49c425bb4c01e990261529f06082 SHA512 e03892ef522fa43442d1b053d0bf8dbd6c892d94398934c4af58e81153c2759f7e55a289457bb3e5b46f2f01697642498fdd6d51cdc18ad8b6c0f6a31d7c606a
|
||||
DIST aws-cli-1.32.107.gh.tar.gz 2727905 BLAKE2B 6790687edadc7ebf4bb8519ed9352961d002b95b157bf56b3ce02f50eef8e9eeeac39bb211816ab3e8e0f21dc2e41b9b3c179c77eab8c23d5650b1002fafff52 SHA512 b2f363ba8833058eb935fab311492c252dac4afff2f81e5ea70b9a8610c6e5b7e0b4ec090591af1a0c3692c3641ac1213cb8455d8ffac8a148d7ba0b7c7f4467
|
||||
DIST aws-cli-1.32.108.gh.tar.gz 2728605 BLAKE2B 83606ebe909a4ee3d4f0d2875f56958b02b791d31d2fc770b1dc60072d31a56b6b7b5ef3ad79d8239b5f061f99f0dbfb554cab169bb99e6813f2b55cf8c185e2 SHA512 ce4bde840a4bfcdce91165bcf66139056e479322c80ef3211c98cd12c09d60d95bad8255f616dca4c11db3a26f3dca8149a42b76d163a8f02a88e6f986faff51
|
||||
DIST aws-cli-1.32.98.gh.tar.gz 2723261 BLAKE2B f854a78226a9480d2966e0dcc817e372de96f32723c28bd7189ed484ab24e8fa9f33a018b1b3193d1a5be82e1ad2b69b2d0d6642f004aa6fd601a68862cbbbdc SHA512 989ad96da152423001832a502935ed64a92ef61ba63f9f413fa07e84910d2aa905056bbfcf49202508d6d0a910b4a2969da27e736857e918077693909e4ca0ea
|
||||
|
@ -1,90 +0,0 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
DISTUTILS_USE_PEP517=setuptools
|
||||
PYTHON_COMPAT=( python3_{10..12} )
|
||||
|
||||
inherit bash-completion-r1 distutils-r1
|
||||
|
||||
MY_P=aws-cli-${PV}
|
||||
DESCRIPTION="Universal Command Line Environment for AWS"
|
||||
HOMEPAGE="
|
||||
https://github.com/aws/aws-cli/
|
||||
https://pypi.org/project/awscli/
|
||||
"
|
||||
SRC_URI="
|
||||
https://github.com/aws/aws-cli/archive/${PV}.tar.gz
|
||||
-> ${MY_P}.gh.tar.gz
|
||||
"
|
||||
S=${WORKDIR}/${MY_P}
|
||||
|
||||
LICENSE="Apache-2.0"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86"
|
||||
|
||||
# botocore is x.(y+2).z
|
||||
BOTOCORE_PV="$(ver_cut 1).$(( $(ver_cut 2) + 2)).$(ver_cut 3-)"
|
||||
RDEPEND="
|
||||
>=dev-python/botocore-${BOTOCORE_PV}[${PYTHON_USEDEP}]
|
||||
dev-python/colorama[${PYTHON_USEDEP}]
|
||||
dev-python/docutils[${PYTHON_USEDEP}]
|
||||
dev-python/rsa[${PYTHON_USEDEP}]
|
||||
>=dev-python/s3transfer-0.10.0[${PYTHON_USEDEP}]
|
||||
dev-python/pyyaml[${PYTHON_USEDEP}]
|
||||
!app-admin/awscli-bin
|
||||
"
|
||||
BDEPEND="
|
||||
test? (
|
||||
dev-python/packaging[${PYTHON_USEDEP}]
|
||||
dev-python/pytest-forked[${PYTHON_USEDEP}]
|
||||
)
|
||||
"
|
||||
|
||||
EPYTEST_XDIST=1
|
||||
distutils_enable_tests pytest
|
||||
|
||||
src_prepare() {
|
||||
# do not rely on bundled deps in botocore (sic!)
|
||||
find -name '*.py' -exec sed -i \
|
||||
-e 's:from botocore[.]vendored import:import:' \
|
||||
-e 's:from botocore[.]vendored[.]:from :' \
|
||||
{} + || die
|
||||
# strip overzealous upper bounds on requirements
|
||||
sed -i -e 's:,<[0-9.]*::' -e 's:==:>=:' setup.py || die
|
||||
distutils-r1_src_prepare
|
||||
}
|
||||
|
||||
python_test() {
|
||||
local serial_tests=(
|
||||
tests/functional/ecs/test_execute_command.py::TestExecuteCommand::test_execute_command_success
|
||||
tests/functional/ssm/test_start_session.py::TestSessionManager::test_start_session_{fails,success}
|
||||
tests/functional/ssm/test_start_session.py::TestSessionManager::test_start_session_with_new_version_plugin_success
|
||||
tests/unit/customizations/codeartifact/test_adapter_login.py::TestDotNetLogin::test_login_dotnet_sources_listed_with_backtracking
|
||||
tests/unit/customizations/codeartifact/test_adapter_login.py::TestDotNetLogin::test_login_dotnet_sources_listed_with_backtracking_windows
|
||||
tests/unit/customizations/codeartifact/test_adapter_login.py::TestNuGetLogin::test_login_nuget_sources_listed_with_backtracking
|
||||
tests/unit/customizations/ecs/test_executecommand_startsession.py::TestExecuteCommand::test_execute_command_success
|
||||
tests/unit/customizations/test_sessionmanager.py
|
||||
tests/unit/test_compat.py::TestIgnoreUserSignals
|
||||
tests/unit/test_help.py
|
||||
tests/unit/test_utils.py::TestIgnoreCtrlC::test_ctrl_c_is_ignored
|
||||
)
|
||||
local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
|
||||
EPYTEST_XDIST= epytest "${serial_tests[@]}"
|
||||
|
||||
local EPYTEST_DESELECT=( "${serial_tests[@]}" )
|
||||
# integration tests require AWS credentials and Internet access
|
||||
epytest tests/{functional,unit}
|
||||
}
|
||||
|
||||
python_install_all() {
|
||||
newbashcomp bin/aws_bash_completer aws
|
||||
|
||||
insinto /usr/share/zsh/site-functions
|
||||
newins bin/aws_zsh_completer.sh _aws
|
||||
|
||||
distutils-r1_python_install_all
|
||||
|
||||
rm "${ED}"/usr/bin/{aws.cmd,aws_bash_completer,aws_zsh_completer.sh} || die
|
||||
}
|
@ -1,90 +0,0 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
DISTUTILS_USE_PEP517=setuptools
|
||||
PYTHON_COMPAT=( python3_{10..12} )
|
||||
|
||||
inherit bash-completion-r1 distutils-r1
|
||||
|
||||
MY_P=aws-cli-${PV}
|
||||
DESCRIPTION="Universal Command Line Environment for AWS"
|
||||
HOMEPAGE="
|
||||
https://github.com/aws/aws-cli/
|
||||
https://pypi.org/project/awscli/
|
||||
"
|
||||
SRC_URI="
|
||||
https://github.com/aws/aws-cli/archive/${PV}.tar.gz
|
||||
-> ${MY_P}.gh.tar.gz
|
||||
"
|
||||
S=${WORKDIR}/${MY_P}
|
||||
|
||||
LICENSE="Apache-2.0"
|
||||
SLOT="0"
|
||||
KEYWORDS="amd64 arm arm64 ppc ppc64 ~riscv sparc x86"
|
||||
|
||||
# botocore is x.(y+2).z
|
||||
BOTOCORE_PV="$(ver_cut 1).$(( $(ver_cut 2) + 2)).$(ver_cut 3-)"
|
||||
RDEPEND="
|
||||
>=dev-python/botocore-${BOTOCORE_PV}[${PYTHON_USEDEP}]
|
||||
dev-python/colorama[${PYTHON_USEDEP}]
|
||||
dev-python/docutils[${PYTHON_USEDEP}]
|
||||
dev-python/rsa[${PYTHON_USEDEP}]
|
||||
>=dev-python/s3transfer-0.10.0[${PYTHON_USEDEP}]
|
||||
dev-python/pyyaml[${PYTHON_USEDEP}]
|
||||
!app-admin/awscli-bin
|
||||
"
|
||||
BDEPEND="
|
||||
test? (
|
||||
dev-python/packaging[${PYTHON_USEDEP}]
|
||||
dev-python/pytest-forked[${PYTHON_USEDEP}]
|
||||
)
|
||||
"
|
||||
|
||||
EPYTEST_XDIST=1
|
||||
distutils_enable_tests pytest
|
||||
|
||||
src_prepare() {
|
||||
# do not rely on bundled deps in botocore (sic!)
|
||||
find -name '*.py' -exec sed -i \
|
||||
-e 's:from botocore[.]vendored import:import:' \
|
||||
-e 's:from botocore[.]vendored[.]:from :' \
|
||||
{} + || die
|
||||
# strip overzealous upper bounds on requirements
|
||||
sed -i -e 's:,<[0-9.]*::' -e 's:==:>=:' setup.py || die
|
||||
distutils-r1_src_prepare
|
||||
}
|
||||
|
||||
python_test() {
|
||||
local serial_tests=(
|
||||
tests/functional/ecs/test_execute_command.py::TestExecuteCommand::test_execute_command_success
|
||||
tests/functional/ssm/test_start_session.py::TestSessionManager::test_start_session_{fails,success}
|
||||
tests/functional/ssm/test_start_session.py::TestSessionManager::test_start_session_with_new_version_plugin_success
|
||||
tests/unit/customizations/codeartifact/test_adapter_login.py::TestDotNetLogin::test_login_dotnet_sources_listed_with_backtracking
|
||||
tests/unit/customizations/codeartifact/test_adapter_login.py::TestDotNetLogin::test_login_dotnet_sources_listed_with_backtracking_windows
|
||||
tests/unit/customizations/codeartifact/test_adapter_login.py::TestNuGetLogin::test_login_nuget_sources_listed_with_backtracking
|
||||
tests/unit/customizations/ecs/test_executecommand_startsession.py::TestExecuteCommand::test_execute_command_success
|
||||
tests/unit/customizations/test_sessionmanager.py
|
||||
tests/unit/test_compat.py::TestIgnoreUserSignals
|
||||
tests/unit/test_help.py
|
||||
tests/unit/test_utils.py::TestIgnoreCtrlC::test_ctrl_c_is_ignored
|
||||
)
|
||||
local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
|
||||
EPYTEST_XDIST= epytest "${serial_tests[@]}"
|
||||
|
||||
local EPYTEST_DESELECT=( "${serial_tests[@]}" )
|
||||
# integration tests require AWS credentials and Internet access
|
||||
epytest tests/{functional,unit}
|
||||
}
|
||||
|
||||
python_install_all() {
|
||||
newbashcomp bin/aws_bash_completer aws
|
||||
|
||||
insinto /usr/share/zsh/site-functions
|
||||
newins bin/aws_zsh_completer.sh _aws
|
||||
|
||||
distutils-r1_python_install_all
|
||||
|
||||
rm "${ED}"/usr/bin/{aws.cmd,aws_bash_completer,aws_zsh_completer.sh} || die
|
||||
}
|
@ -1 +1 @@
|
||||
DIST exo-1.78.1.gh.tar.gz 11082424 BLAKE2B 35a822a44f95e36e6e1ec47f08d8087e387a5614e57f4cf19a87bddf0bf0d796892644b79553da271c72a2c98cf3865aeec73803730872706f3769fed5176daf SHA512 84f32d19ccaae606f488609eb0f26c3b2195299e5a5714f9d472082297f50323da110b80c53a6f993bf92dd6b6aeb9e3452067525e568630dc41db283731ca79
|
||||
DIST exo-1.78.2.gh.tar.gz 11084100 BLAKE2B 56cf1212040df77d2e39bbc90490276563a45632fe47f1781bba84fe5d99634a6d050c52dd15c9bb837e7ebef2ea21087a5c50cc165b0b606a0f3e9b4f59182a SHA512 1f2b3fedd12a00457e241b0d00eb4235804b60c8c8e6bec1f970617a969761eb9e18c10a6031bffba6c58571ca7049c47d8eb74f3fbaacb095ef72b21bea1c20
|
||||
|
@ -0,0 +1,109 @@
|
||||
# Copyright 2023-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit edos2unix flag-o-matic toolchain-funcs
|
||||
|
||||
NO_DOT_PV=$(ver_rs 1- '')
|
||||
DESCRIPTION="Free file archiver for extremely high compression"
|
||||
HOMEPAGE="https://www.7-zip.org/ https://sourceforge.net/projects/sevenzip/"
|
||||
# linux-x64 tarball is only used for docs
|
||||
SRC_URI="
|
||||
https://downloads.sourceforge.net/sevenzip/7-Zip/${PV}/7z${NO_DOT_PV}-src.tar.xz
|
||||
https://downloads.sourceforge.net/sevenzip/7-Zip/${PV}/7z${NO_DOT_PV}-linux-x64.tar.xz
|
||||
"
|
||||
S="${WORKDIR}"
|
||||
|
||||
LICENSE="LGPL-2 BSD rar? ( unRAR )"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64"
|
||||
IUSE="uasm jwasm rar"
|
||||
REQUIRED_USE="?? ( uasm jwasm )"
|
||||
|
||||
DOCS=( readme.txt History.txt License.txt )
|
||||
HTML_DOCS=( MANUAL )
|
||||
|
||||
DEPEND="${RDEPEND}"
|
||||
BDEPEND="
|
||||
uasm? ( dev-lang/uasm )
|
||||
jwasm? ( dev-lang/jwasm )
|
||||
"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}/${P}-respect-build-env.patch"
|
||||
)
|
||||
|
||||
# TODO(NRK): also build and install the library
|
||||
# TODO(NRK): make it so this package can be used as a drop-in replacement
|
||||
# for app-arch/p7zip ??
|
||||
|
||||
pkg_setup() {
|
||||
# instructions in DOC/readme.txt, Compiling 7-Zip for Unix/Linux
|
||||
# TLDR; every combination of options (clang|gcc)+(asm/noasm)
|
||||
# has a dedicated makefile & builddir
|
||||
mfile="cmpl"
|
||||
if tc-is-clang; then
|
||||
mfile="${mfile}_clang"
|
||||
bdir=c
|
||||
elif tc-is-gcc; then
|
||||
mfile="${mfile}_gcc"
|
||||
bdir=g
|
||||
else
|
||||
die "Unsupported compiler: $(tc-getCC)"
|
||||
fi
|
||||
if use jwasm || use uasm ; then
|
||||
mfile="${mfile}_x64"
|
||||
bdir="${bdir}_x64"
|
||||
fi
|
||||
export mfile="${mfile}.mak"
|
||||
export bdir
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
# patch doesn't deal with CRLF even if file+patch match
|
||||
# not even with --ignore-whitespace, --binary or --force
|
||||
pushd "./CPP/7zip" || die "Unable to switch directory"
|
||||
edos2unix ./7zip_gcc.mak ./var_gcc{,_x64}.mak ./var_clang{,_x64}.mak
|
||||
sed -i -e 's/-Werror //g' ./7zip_gcc.mak || die "Error removing -Werror"
|
||||
popd >/dev/null || die "Unable to switch directory"
|
||||
|
||||
default
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
pushd "./CPP/7zip/Bundles/Alone2" || die "Unable to switch directory"
|
||||
|
||||
# avoid executable stack when using uasm/jwasm, harmless otherwise
|
||||
append-ldflags -Wl,-z,noexecstack
|
||||
export G_CFLAGS=${CFLAGS}
|
||||
export G_CXXFLAGS=${CXXFLAGS}
|
||||
export G_LDFLAGS=${LDFLAGS}
|
||||
|
||||
local args=(
|
||||
-f "../../${mfile}"
|
||||
CC=$(tc-getCC)
|
||||
CXX=$(tc-getCXX)
|
||||
)
|
||||
# NOTE: makefile doesn't check the value of DISABLE_RAR_COMPRESS, only
|
||||
# whether it's defined or not. so in case user has `rar` enabled
|
||||
# DISABLE_RAR_COMPRESS (and DISABLE_RAR) needs to stay undefined.
|
||||
if ! use rar; then
|
||||
# disables non-free rar code but allows listing and extracting
|
||||
# non-compressed rar archives
|
||||
args+=( DISABLE_RAR_COMPRESS=1 )
|
||||
fi
|
||||
if use jwasm; then
|
||||
args+=( USE_JWASM=1 )
|
||||
elif use uasm; then
|
||||
args+=( MY_ASM=uasm )
|
||||
fi
|
||||
|
||||
emake ${args[@]}
|
||||
popd > /dev/null || die "Unable to switch directory"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
dobin "./CPP/7zip/Bundles/Alone2/b/${bdir}/7zz"
|
||||
einstalldocs
|
||||
}
|
@ -1,2 +1,4 @@
|
||||
DIST 7z2301-linux-x64.tar.xz 1527700 BLAKE2B 35dc74f0a7a4e586ea5ae969dce72c14e0231822630d2d70f24e1c911cea0492354a258ef65096a6ce0da1510117c12466bc6cda577cdf9e8e74ede17e47f23e SHA512 d3549468de8fd161e4c9233fa0b170af1f28c74749d20f3d0eeb3873857f6c6d2cc0777d564e6a79be7cc21c9e982e10710a795320428dc51db809a8d0f9454e
|
||||
DIST 7z2301-src.tar.xz 1378588 BLAKE2B 348484b24b39db70e513fe50d79954ea0e2dd669f83e3601fa796c8f0ca4734132ca20fac8cda9b8ba550bad9146627fc0ae07056abb99028ef6d825b6a533bd SHA512 e39f660c023aa65e55388be225b5591fe2a5c9138693f3c9107e2eb4ce97fafde118d3375e01ada99d29de9633f56221b5b3d640c982178884670cd84c8aa986
|
||||
DIST 7z2405-linux-x64.tar.xz 1553872 BLAKE2B d6c0bd4eb81f4112bfe50bf6affc68021b03d059076af5519a41c8d471e978ad2b4acc8f67c650070f9d07c518741a0146579ddfb8d56fd125f6db0beece0990 SHA512 13f97236157e2761a0bf406b08fba13a1ecc6d5663fb38f8dfe3b87f3910ba34fd359d8b36bea5135319543f31ec1e210eb512ea9864d9b140c336b9e416c313
|
||||
DIST 7z2405-src.tar.xz 1486772 BLAKE2B 609c7ae8b89e56e747ebfecb25108d8918138f48f0f2ed73183c76101ddd3615aafb9eb7823be0de2a434b450587e01f476d2ed092628a311b6e4ed091e06260 SHA512 d340adfa68e818dd3d3aa411780c81532fa37b6649178b81ec3739725f83e0bc3c01744612b2d467f4d0c2cc984dd35488406d7baee185cf372acebd9c0123a7
|
||||
|
@ -0,0 +1,52 @@
|
||||
Respect build environment settings
|
||||
|
||||
Bug: https://bugs.gentoo.org/913186
|
||||
Bug: https://bugs.gentoo.org/913188
|
||||
Bug: https://bugs.gentoo.org/913189
|
||||
|
||||
|
||||
--- a/CPP/7zip/7zip_gcc.mak
|
||||
+++ b/CPP/7zip/7zip_gcc.mak
|
||||
@@ -45,7 +45,6 @@
|
||||
else
|
||||
CFLAGS_DEBUG = -DNDEBUG
|
||||
ifneq ($(CC), $(CROSS_COMPILE)clang)
|
||||
-LFLAGS_STRIP = -s
|
||||
endif
|
||||
endif
|
||||
|
||||
@@ -104,14 +103,14 @@
|
||||
LDFLAGS = -shared -DEF $(DEF_FILE) $(LDFLAGS_STATIC)
|
||||
else
|
||||
SHARED_EXT=.so
|
||||
-LDFLAGS = -shared -fPIC $(LDFLAGS_STATIC)
|
||||
+LDFLAGS = -shared -fPIC $(G_LDFLAGS) $(LDFLAGS_STATIC)
|
||||
CC_SHARED=-fPIC
|
||||
endif
|
||||
|
||||
|
||||
else
|
||||
|
||||
-LDFLAGS = $(LDFLAGS_STATIC)
|
||||
+LDFLAGS = $(G_LDFLAGS) $(LDFLAGS_STATIC)
|
||||
# -z force-bti
|
||||
# -s is not required for clang, do we need it for GCC ???
|
||||
|
||||
@@ -169,7 +168,7 @@
|
||||
|
||||
|
||||
|
||||
-CFLAGS = $(MY_ARCH_2) $(LOCAL_FLAGS) $(CFLAGS_BASE2) $(CFLAGS_BASE) $(FLAGS_FLTO) $(CC_SHARED) -o $@
|
||||
+CFLAGS = $(MY_ARCH_2) $(LOCAL_FLAGS) $(CFLAGS_BASE2) $(CFLAGS_BASE) $(FLAGS_FLTO) $(CC_SHARED) $(G_CFLAGS) -o $@
|
||||
|
||||
|
||||
ifdef IS_MINGW
|
||||
@@ -210,7 +209,7 @@
|
||||
#-Wno-invalid-offsetof
|
||||
#-Wno-reorder
|
||||
|
||||
-CXXFLAGS = $(MY_ARCH_2) $(LOCAL_FLAGS) $(CXXFLAGS_BASE2) $(CFLAGS_BASE) $(FLAGS_FLTO) $(CXXFLAGS_EXTRA) $(CC_SHARED) $(CXX_WARN_FLAGS) $(CXX_STD_FLAGS) $(CXX_INCLUDE_FLAGS) -o $@
|
||||
+CXXFLAGS = $(MY_ARCH_2) $(LOCAL_FLAGS) $(CXXFLAGS_BASE2) $(CFLAGS_BASE) $(FLAGS_FLTO) $(CXXFLAGS_EXTRA) $(CC_SHARED) $(CXX_WARN_FLAGS) $(CXX_STD_FLAGS) $(CXX_INCLUDE_FLAGS) $(G_CXXFLAGS) -o $@
|
||||
|
||||
STATIC_TARGET=
|
||||
ifdef COMPL_STATIC
|
Binary file not shown.
@ -1,135 +0,0 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
# XXX: atm, libbz2.a is always PIC :(, so it is always built quickly
|
||||
# (since we're building shared libs) ...
|
||||
|
||||
EAPI=7
|
||||
|
||||
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/bzip2.gpg
|
||||
inherit toolchain-funcs multilib multilib-minimal usr-ldscript verify-sig
|
||||
|
||||
DESCRIPTION="A high-quality data compressor used extensively by Gentoo Linux"
|
||||
HOMEPAGE="https://sourceware.org/bzip2/"
|
||||
SRC_URI="https://sourceware.org/pub/${PN}/${P}.tar.gz"
|
||||
SRC_URI+=" verify-sig? ( https://sourceware.org/pub/${PN}/${P}.tar.gz.sig )"
|
||||
|
||||
LICENSE="BZIP2"
|
||||
SLOT="0/1" # subslot = SONAME
|
||||
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~arm64-macos"
|
||||
IUSE="static static-libs"
|
||||
|
||||
BDEPEND="
|
||||
verify-sig? ( sec-keys/openpgp-keys-bzip2 )
|
||||
"
|
||||
PDEPEND="
|
||||
app-alternatives/bzip2
|
||||
"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${PN}-1.0.4-makefile-CFLAGS.patch
|
||||
"${FILESDIR}"/${PN}-1.0.8-saneso.patch
|
||||
"${FILESDIR}"/${PN}-1.0.4-man-links.patch #172986
|
||||
"${FILESDIR}"/${PN}-1.0.6-progress.patch
|
||||
"${FILESDIR}"/${PN}-1.0.3-no-test.patch
|
||||
"${FILESDIR}"/${PN}-1.0.8-mingw.patch #393573
|
||||
"${FILESDIR}"/${PN}-1.0.8-out-of-tree-build.patch
|
||||
)
|
||||
|
||||
DOCS=( CHANGES README{,.COMPILATION.PROBLEMS,.XML.STUFF} manual.pdf )
|
||||
HTML_DOCS=( manual.html )
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
# - Use right man path
|
||||
# - Generate symlinks instead of hardlinks
|
||||
# - pass custom variables to control libdir
|
||||
sed -i \
|
||||
-e 's:\$(PREFIX)/man:\$(PREFIX)/share/man:g' \
|
||||
-e 's:ln -s -f $(PREFIX)/bin/:ln -s -f :' \
|
||||
-e 's:$(PREFIX)/lib:$(PREFIX)/$(LIBDIR):g' \
|
||||
Makefile || die
|
||||
}
|
||||
|
||||
bemake() {
|
||||
emake \
|
||||
VPATH="${S}" \
|
||||
CC="$(tc-getCC)" \
|
||||
AR="$(tc-getAR)" \
|
||||
RANLIB="$(tc-getRANLIB)" \
|
||||
"$@"
|
||||
}
|
||||
|
||||
multilib_src_compile() {
|
||||
bemake -f "${S}"/Makefile-libbz2_so all
|
||||
# Make sure we link against the shared lib #504648
|
||||
ln -s libbz2.so.${PV} libbz2.so || die
|
||||
bemake -f "${S}"/Makefile all LDFLAGS="${LDFLAGS} $(usex static -static '')"
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
cp "${S}"/sample* "${BUILD_DIR}" || die
|
||||
bemake -f "${S}"/Makefile check
|
||||
}
|
||||
|
||||
multilib_src_install() {
|
||||
into /usr
|
||||
|
||||
# Install the shared lib manually. We install:
|
||||
# .x.x.x - standard shared lib behavior
|
||||
# .x.x - SONAME some distros use #338321
|
||||
# .x - SONAME Gentoo uses
|
||||
dolib.so libbz2.so.${PV}
|
||||
local v
|
||||
for v in libbz2.so{,.{${PV%%.*},${PV%.*}}} ; do
|
||||
dosym libbz2.so.${PV} /usr/$(get_libdir)/${v}
|
||||
done
|
||||
|
||||
use static-libs && dolib.a libbz2.a
|
||||
|
||||
if multilib_is_native_abi ; then
|
||||
gen_usr_ldscript -a bz2
|
||||
|
||||
dobin bzip2recover$(get_exeext)
|
||||
into /
|
||||
newbin bzip2$(get_exeext) bzip2-reference$(get_exeext)
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
# `make install` doesn't cope with out-of-tree builds, nor with
|
||||
# installing just non-binaries, so handle things ourselves.
|
||||
insinto /usr/include
|
||||
doins bzlib.h
|
||||
into /usr
|
||||
dobin bz{diff,grep,more}
|
||||
doman bz{diff,grep,more}.1
|
||||
newman bzip2.1 bzip2-reference.1
|
||||
|
||||
dosym bzdiff /usr/bin/bzcmp
|
||||
dosym bzdiff.1 /usr/share/man/man1/bzcmp.1
|
||||
|
||||
dosym bzmore /usr/bin/bzless
|
||||
dosym bzmore.1 /usr/share/man/man1/bzless.1
|
||||
|
||||
dosym bzip2-reference.1 /usr/share/man/man1/bzip2recover.1
|
||||
local x
|
||||
for x in bz{e,f}grep ; do
|
||||
dosym bzgrep /usr/bin/${x}
|
||||
dosym bzgrep.1 /usr/share/man/man1/${x}.1
|
||||
done
|
||||
|
||||
einstalldocs
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
# ensure to preserve the symlinks before app-alternatives/bzip2
|
||||
# is installed
|
||||
local x
|
||||
for x in bzip2 bunzip2 bzcat; do
|
||||
if [[ ! -h ${EROOT}/bin/${x} ]]; then
|
||||
ln -s bzip2-reference$(get_exeext) "${EROOT}/bin/${x}$(get_exeext)" || die
|
||||
fi
|
||||
done
|
||||
}
|
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.11" ]] ; then
|
||||
COMMIT_SHA="5caed354538447b7de4d85b59827709da23b6e49"
|
||||
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 -r go_tags="dfrunmount,dfrunsecurity,dfsecrets,dfssh,dfrunnetwork,dfheredoc,forceposix"
|
||||
local -r go_ldflags="
|
||||
-X main.DefaultBuildkitdImage=docker.io/earthly/buildkitd:v${PV}
|
||||
-X main.GitSha=${COMMIT_SHA}
|
||||
-X main.Version=v${PV}
|
||||
"
|
||||
local -a -r 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
|
||||
}
|
Binary file not shown.
@ -1 +1 @@
|
||||
DIST eid-mw-5.1.15.tar.gz 16296281 BLAKE2B 12efbc884ff250d5497ace6b9670e4dac934a8aa87e2e77d4c083d3e0325c7b0a57dd137506f62a6e3ada57459b5b23e7d5e0d86a80616a64e05948560ce265b SHA512 4cf352ba912db6252f864430bacc895d29b478d3ec13ef3716089e5cb6019b2db2de08a99775dcd71a4ac9f13f3e3c6e1013f36bb2d458bbb0e851f7b45451e5
|
||||
DIST eid-mw-5.1.18.tar.gz 16299966 BLAKE2B 417b92ad366f32da42c112828d9d01c5beee59045750b4fc69bbcfdea338e1e5d2db00765cae5dab5d22f36122437aa113a968620aefa013f893aebb74208d76 SHA512 1e6e9056fdadbeae623039f1a0e8e6b6e4e80ab313e0fed31824035a32b3173a042f18c254c06bb57d918afbf5162eb23990b51bb0c525e7929128466c74b4d7
|
||||
|
@ -1,21 +0,0 @@
|
||||
diff -ur a/plugins_tools/eid-viewer/Makefile.am b/plugins_tools/eid-viewer/Makefile.am
|
||||
--- a/plugins_tools/eid-viewer/Makefile.am 2020-08-19 15:32:50.000000000 +0200
|
||||
+++ b/plugins_tools/eid-viewer/Makefile.am 2020-12-21 23:07:49.980421703 +0200
|
||||
@@ -125,13 +125,13 @@
|
||||
SUBDIRS = . gtk/po test uml
|
||||
|
||||
resources/%.c: resources/%.png
|
||||
- echo -e "#include <gdk-pixbuf/gdk-pixdata.h>\n#if __GNUC__ >= 4\n#pragma GCC diagnostic push\n#pragma GCC diagnostic ignored \"-Wpointer-sign\"\n#endif\n" > $@
|
||||
+ printf '%s\n' '#include <gdk-pixbuf/gdk-pixdata.h>' '#if __GNUC__ >= 4' '#pragma GCC diagnostic push' '#pragma GCC diagnostic ignored "-Wpointer-sign"' '#endif' > $@
|
||||
gdk-pixbuf-csource --struct --extern --name `basename $^ .png` $^ >> $@
|
||||
- echo -e "#pragma GCC diagnostic pop\n" >> $@
|
||||
+ printf '%s\n' '#pragma GCC diagnostic pop' >> $@
|
||||
resources/%.c: resources/%.jpg
|
||||
- echo -e "#include <gdk-pixbuf/gdk-pixdata.h>\n#if __GNUC__ >= 4\n#pragma GCC diagnostic push\n#pragma GCC diagnostic ignored \"-Wpointer-sign\"\n#endif\n" > $@
|
||||
+ printf '%s\n' '#include <gdk-pixbuf/gdk-pixdata.h>' '#if __GNUC__ >= 4' '#pragma GCC diagnostic push' '#pragma GCC diagnostic ignored "-Wpointer-sign"' '#endif' > $@
|
||||
gdk-pixbuf-csource --struct --extern --name `basename $^ .jpg` $^ >> $@
|
||||
- echo -e "#pragma GCC diagnostic pop\n" >> $@
|
||||
+ printf '%s\n' '#pragma GCC diagnostic pop' >> $@
|
||||
|
||||
BUILT_SOURCES = gtk/viewer_glade.h \
|
||||
resources/coat_of_arms_nl.c \
|
Binary file not shown.
Binary file not shown.
@ -1 +0,0 @@
|
||||
DIST runv-0.7.0.tar.gz 1143867 BLAKE2B b425060493567470bdc886c75a4edd1333094cf3479a06b63286e4ba391d1a3bb82b7c3331a1455f0a2545bebe4c2397112cba3bfb5573a3a62e380dcd69d473 SHA512 1303d4ca99186d9f5c1db4257acecf1702546a084942cc4c51de8685c6841da45be72c78f32ab38e2addb80dc40fe4d022d0fcae7b7d6b6d62a30f434cea178c
|
@ -1,12 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
|
||||
<pkgmetadata>
|
||||
<!-- maintainer-needed -->
|
||||
<use>
|
||||
<flag name="libvirt">Enable support for KVM via libvirt</flag>
|
||||
<flag name="xen">Enable support for the Xen Hypervisor</flag>
|
||||
</use>
|
||||
<upstream>
|
||||
<remote-id type="github">hyperhq/runv</remote-id>
|
||||
</upstream>
|
||||
</pkgmetadata>
|
@ -1,45 +0,0 @@
|
||||
# Copyright 1999-2016 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
EGO_PN="github.com/hyperhq/runv"
|
||||
|
||||
inherit autotools golang-vcs-snapshot
|
||||
|
||||
DESCRIPTION="Hypervisor-based Runtime for OCI"
|
||||
HOMEPAGE="https://github.com/hyperhq/runv"
|
||||
SRC_URI="https://github.com/hyperhq/runv/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
||||
|
||||
LICENSE="Apache-2.0"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64"
|
||||
IUSE="libvirt xen"
|
||||
|
||||
RDEPEND="libvirt? ( >=app-emulation/libvirt-1.2.2 )
|
||||
xen? ( app-emulation/xen )"
|
||||
DEPEND="${RDEPEND}"
|
||||
|
||||
src_prepare() {
|
||||
pushd src/github.com/hyperhq/runv/ || die
|
||||
default
|
||||
eautoreconf
|
||||
popd
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local myeconfargs=( $(use_with libvirt)
|
||||
$(use_with xen) )
|
||||
pushd src/github.com/hyperhq/runv/ || die
|
||||
econf "${myeconfargs[@]}"
|
||||
popd
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
GOPATH="${S}:$(get_golibdir_gopath)" emake -C src/github.com/hyperhq/runv/
|
||||
}
|
||||
|
||||
src_install() {
|
||||
dodoc src/${EGO_PN}/README.md
|
||||
dobin src/${EGO_PN}/runv
|
||||
}
|
@ -1,10 +1,8 @@
|
||||
DIST wine-9.0.tar.xz 30007216 BLAKE2B cf53177201a2f7eeb35d0d8ce220f80808d979099a928ad60652d1dee92620c433cc105dffab4e9309f41766087ad1544ef49d2922538bb420d62f6dd64117a1 SHA512 838daf2c4581f83f8573b988036f517d57b84894b090a2a17433255d6d044dfa880e6724cdb83082a36c333df9d2083ab68ae53927622a620edd59f33462ada4
|
||||
DIST wine-9.5.tar.xz 30371420 BLAKE2B c14ebf02f0f5b91bc2b2517ff3630f22c6af7fdc827c5d024d809a383a65446284a5349c8109835112f5353f361088f4f32de1a3d04299fbf39deacbc0e8e8bf SHA512 8ccad8f6e6b1428886dee9fae771796e2021b4122cd96464350352bede25421406e6a6a0fdd63d8b99b896db8dc529aa6e05d6ac7966bee49ce3055b18a8af91
|
||||
DIST wine-9.6.tar.xz 30261488 BLAKE2B 53115a8a80593856679718b2055340860221701bc82a784a111a992f5e67b031d7407a16f6df6d4da67f382f30c35d2dd82af2a671a058a76b621c91199e426e SHA512 cc2ea5597636da8d392d1d63b9c135679eff69ea671dc6b53b6f2d44a890aee0e17275174485f6e8dd99c7db737eb82a800a2b05c4966f15e28167c5a6098922
|
||||
DIST wine-9.7.tar.xz 30281616 BLAKE2B 4d27f6f2dfd088a0590bfce7228c7eca25b66a9a04706ddecb25af6364e83100c15a78c8d46f3294a42dc7f3503756506f752a02d7058a72ce16716994b334bc SHA512 0c15c3a0901162a386126f2dc987b276b379cc027fc72d9e31cf3122614742f876f30a5f24a495f546cd9c5bd5efce096bd9ca190d0f378fea3d42a298a06e80
|
||||
DIST wine-9.8.tar.xz 30297460 BLAKE2B 689d1b4e55f7d66b8fad8432ad35a52e2fad303e8a9382b8893222c696697efa5de5b56cc2b933bed96d6382f9fdc919fa15e6517ffdb50105cdaea904a7d77f SHA512 3d1b0e6b7b633a0b45ba6b23e741e808dec29355721baf4489c3ad34c67d714b40897ef510c4a84f31be390d7f8b86b93a725787d733eaf77df5c82b322d2662
|
||||
DIST wine-9.9.tar.xz 30265476 BLAKE2B a2557044b10252c1b1ae023e10863c601e9159d64eda2ce1d8aab4dbb9efffa1b4b15ed27a9edbf6f2bba148c2bb07e729bd706bac9fe17f91c826c74b5980e6 SHA512 df016411933b5447bef9b48f67c58e12d6d33ef0c24045ab03c92821dcccbf84335d1a2d765e6d6cf3a743598317010b8ae6f69de3661733e4fa43febec873dd
|
||||
DIST wine-staging-9.0.tar.gz 9577631 BLAKE2B 0012978f54c618e73d407dd49dccff02853912d0c015098889802518e8c51b280f5d60e11291335dafc68944ee01cbcb7fd6c5825ef10ae1520c7b82d9846718 SHA512 362209fcadcf029152b681c76beb231d0cc8de1609b994094f1dc88ab871fddda08b3d8c2fe36ceb38909a9d634c1ade864ca0f28a6a7715ec286a8b2884981f
|
||||
DIST wine-staging-9.5.tar.gz 9526239 BLAKE2B a6f5a351a3979fc81a0d8c6325da4f08021d19eb7ac6ad52906a6fcf19552f01bdc8fbebc9b33fc82e14cdd6e6d50347dc7bc73e622d589d2e9eec5d577d3158 SHA512 8c756fe505092e21dd37c709ac3917c305b70881c05270f0e188ccdf9ff36b9fd224adad424d37c6919637d2af55afbfba49079eb5b6708a6cf4f2dd98966784
|
||||
DIST wine-staging-9.6.tar.gz 9522775 BLAKE2B 5598d408774e3142d6de5ccddccb68d8e1e4544c43b5691751599e6b86df6b8899f6113b8b58d75fb8e032a6c7aed9ffbb3ecb1553aa2d7593d69513e9a0177a SHA512 83691eb560c860d40669a524196a522007c76420b5b5076da4f446a4180fee7558ef228cf1f4179eb78a6d36c8ab78fd2784ffc879b0aacbef7c72a7f88e7ed2
|
||||
DIST wine-staging-9.7.tar.gz 9573710 BLAKE2B 34eee97f51268c07d649f0ed498b5e92bbc8bb1d8cee860040ee660d968307a7d9d3b59305567c50338d2ce97b3071f615b8782ca74716b42904ae4514404316 SHA512 3c5f100f715c6b3399c356b304b8eca1e51706e03782f2f834965474a7efeca4174ae806dff85080cded93501e9cfcd097eca43230d9425c78ae73a6f4485c76
|
||||
DIST wine-staging-9.8.tar.gz 9580231 BLAKE2B 74d0b7d4eb49b5cb16abf17a2aae52bad9db04d3e207762f1d37a9f18870683c0115ce41b29e24edad827557de4a07235980588115b61fa86eeaaa5573460535 SHA512 8132c1fd98b55ef04993e894e11063e43ac1cae059f80e0dc3b2a4c6bf08a6ab80f7bdd02b97f62733f31850b41e5d2d6c5085b22bf873fc03ab67b79bdd3c1d
|
||||
DIST wine-staging-9.9.tar.gz 9593672 BLAKE2B 9f6fc7137bb447e52642caf7083ddd60a8d7a545f364dd1783b7adfbd2a80da8b89bc2199525b3c9d75f9f356f5548cf97ae1278361be1c6fb0f0e218c3cf336 SHA512 1b6b341a48a05f48587b7ecc0ead50058b2c1f8a47b6e52adbc7e4afff9bc633a6018e90b2e3ee6b720c59181095b793cd2bbfa7242aec6871f2f87f4db661c4
|
||||
|
@ -1,483 +0,0 @@
|
||||
# Copyright 2022-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
MULTILIB_COMPAT=( abi_x86_{32,64} )
|
||||
PYTHON_COMPAT=( python3_{10..13} )
|
||||
inherit autotools edo flag-o-matic multilib multilib-build optfeature
|
||||
inherit prefix python-any-r1 toolchain-funcs wrapper
|
||||
|
||||
WINE_GECKO=2.47.4
|
||||
WINE_MONO=9.0.0
|
||||
WINE_P=wine-$(ver_cut 1-2)
|
||||
|
||||
if [[ ${PV} == *9999 ]]; then
|
||||
inherit git-r3
|
||||
EGIT_REPO_URI="https://gitlab.winehq.org/wine/wine-staging.git"
|
||||
WINE_EGIT_REPO_URI="https://gitlab.winehq.org/wine/wine.git"
|
||||
else
|
||||
(( $(ver_cut 2) )) && WINE_SDIR=$(ver_cut 1).x || WINE_SDIR=$(ver_cut 1).0
|
||||
SRC_URI="
|
||||
https://dl.winehq.org/wine/source/${WINE_SDIR}/${WINE_P}.tar.xz
|
||||
https://github.com/wine-staging/wine-staging/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
||||
KEYWORDS="-* ~amd64 ~x86"
|
||||
fi
|
||||
|
||||
DESCRIPTION="Free implementation of Windows(tm) on Unix, with Wine-Staging patchset"
|
||||
HOMEPAGE="
|
||||
https://wiki.winehq.org/Wine-Staging
|
||||
https://gitlab.winehq.org/wine/wine-staging/
|
||||
"
|
||||
|
||||
S="${WORKDIR}/${WINE_P}"
|
||||
|
||||
LICENSE="LGPL-2.1+ BSD-2 IJG MIT OPENLDAP ZLIB gsm libpng2 libtiff"
|
||||
SLOT="${PV}"
|
||||
IUSE="
|
||||
+X +abi_x86_32 +abi_x86_64 +alsa capi crossdev-mingw cups dos
|
||||
llvm-libunwind custom-cflags +fontconfig +gecko gphoto2 +gstreamer
|
||||
kerberos +mingw +mono netapi nls opencl +opengl osmesa pcap perl
|
||||
pulseaudio samba scanner +sdl selinux smartcard +ssl +strip
|
||||
+truetype udev udisks +unwind usb v4l +vulkan wayland wow64
|
||||
+xcomposite xinerama
|
||||
"
|
||||
# bug #551124 for truetype
|
||||
# TODO: wow64 can be done without mingw if using clang (needs bug #912237)
|
||||
REQUIRED_USE="
|
||||
X? ( truetype )
|
||||
crossdev-mingw? ( mingw )
|
||||
wow64? ( abi_x86_64 !abi_x86_32 mingw )
|
||||
"
|
||||
|
||||
# tests are non-trivial to run, can hang easily, don't play well with
|
||||
# sandbox, and several need real opengl/vulkan or network access
|
||||
RESTRICT="test"
|
||||
|
||||
# `grep WINE_CHECK_SONAME configure.ac` + if not directly linked
|
||||
WINE_DLOPEN_DEPEND="
|
||||
X? (
|
||||
x11-libs/libXcursor[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXfixes[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXi[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXrandr[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXrender[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
|
||||
opengl? (
|
||||
media-libs/libglvnd[X,${MULTILIB_USEDEP}]
|
||||
osmesa? ( media-libs/mesa[osmesa,${MULTILIB_USEDEP}] )
|
||||
)
|
||||
xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
|
||||
xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
|
||||
)
|
||||
cups? ( net-print/cups[${MULTILIB_USEDEP}] )
|
||||
fontconfig? ( media-libs/fontconfig[${MULTILIB_USEDEP}] )
|
||||
kerberos? ( virtual/krb5[${MULTILIB_USEDEP}] )
|
||||
netapi? ( net-fs/samba[${MULTILIB_USEDEP}] )
|
||||
sdl? ( media-libs/libsdl2[haptic,joystick,${MULTILIB_USEDEP}] )
|
||||
ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
|
||||
truetype? ( media-libs/freetype[${MULTILIB_USEDEP}] )
|
||||
udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
|
||||
v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
|
||||
vulkan? ( media-libs/vulkan-loader[X?,${MULTILIB_USEDEP}] )
|
||||
"
|
||||
WINE_COMMON_DEPEND="
|
||||
${WINE_DLOPEN_DEPEND}
|
||||
X? (
|
||||
x11-libs/libX11[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXext[${MULTILIB_USEDEP}]
|
||||
)
|
||||
alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
|
||||
capi? ( net-libs/libcapi:=[${MULTILIB_USEDEP}] )
|
||||
gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
|
||||
gstreamer? (
|
||||
dev-libs/glib:2[${MULTILIB_USEDEP}]
|
||||
media-libs/gst-plugins-base:1.0[${MULTILIB_USEDEP}]
|
||||
media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
|
||||
)
|
||||
opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
|
||||
pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
|
||||
pulseaudio? ( media-libs/libpulse[${MULTILIB_USEDEP}] )
|
||||
scanner? ( media-gfx/sane-backends[${MULTILIB_USEDEP}] )
|
||||
smartcard? ( sys-apps/pcsc-lite[${MULTILIB_USEDEP}] )
|
||||
udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
|
||||
unwind? (
|
||||
llvm-libunwind? ( sys-libs/llvm-libunwind[${MULTILIB_USEDEP}] )
|
||||
!llvm-libunwind? ( sys-libs/libunwind:=[${MULTILIB_USEDEP}] )
|
||||
)
|
||||
usb? ( dev-libs/libusb:1[${MULTILIB_USEDEP}] )
|
||||
wayland? (
|
||||
dev-libs/wayland[${MULTILIB_USEDEP}]
|
||||
x11-libs/libxkbcommon[${MULTILIB_USEDEP}]
|
||||
)
|
||||
"
|
||||
RDEPEND="
|
||||
${WINE_COMMON_DEPEND}
|
||||
app-emulation/wine-desktop-common
|
||||
dos? (
|
||||
|| (
|
||||
games-emulation/dosbox
|
||||
games-emulation/dosbox-staging
|
||||
)
|
||||
)
|
||||
gecko? (
|
||||
app-emulation/wine-gecko:${WINE_GECKO}[${MULTILIB_USEDEP}]
|
||||
wow64? ( app-emulation/wine-gecko[abi_x86_32] )
|
||||
)
|
||||
gstreamer? ( media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}] )
|
||||
mono? ( app-emulation/wine-mono:${WINE_MONO} )
|
||||
perl? (
|
||||
dev-lang/perl
|
||||
dev-perl/XML-LibXML
|
||||
)
|
||||
samba? ( net-fs/samba[winbind] )
|
||||
selinux? ( sec-policy/selinux-wine )
|
||||
udisks? ( sys-fs/udisks:2 )
|
||||
"
|
||||
DEPEND="
|
||||
${WINE_COMMON_DEPEND}
|
||||
sys-kernel/linux-headers
|
||||
X? ( x11-base/xorg-proto )
|
||||
"
|
||||
# gitapply.sh prefers git but can fallback to patch+extras
|
||||
BDEPEND="
|
||||
${PYTHON_DEPS}
|
||||
|| (
|
||||
dev-vcs/git
|
||||
(
|
||||
sys-apps/gawk
|
||||
sys-apps/util-linux
|
||||
)
|
||||
)
|
||||
|| (
|
||||
sys-devel/binutils
|
||||
sys-devel/lld
|
||||
)
|
||||
dev-lang/perl
|
||||
sys-devel/bison
|
||||
sys-devel/flex
|
||||
virtual/pkgconfig
|
||||
mingw? ( !crossdev-mingw? (
|
||||
>=dev-util/mingw64-toolchain-10.0.0_p1-r2[${MULTILIB_USEDEP}]
|
||||
wow64? ( dev-util/mingw64-toolchain[abi_x86_32] )
|
||||
) )
|
||||
nls? ( sys-devel/gettext )
|
||||
wayland? ( dev-util/wayland-scanner )
|
||||
"
|
||||
IDEPEND=">=app-eselect/eselect-wine-2"
|
||||
|
||||
QA_CONFIG_IMPL_DECL_SKIP=(
|
||||
__clear_cache # unused on amd64+x86 (bug #900334)
|
||||
res_getservers # false positive
|
||||
)
|
||||
QA_FLAGS_IGNORED="usr/lib/.*/wine/.*-unix/odbc32.so" # has no compiled objects
|
||||
QA_TEXTRELS="usr/lib/*/wine/i386-unix/*.so" # uses -fno-PIC -Wl,-z,notext
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${PN}-7.17-noexecstack.patch
|
||||
"${FILESDIR}"/${PN}-7.20-unwind.patch
|
||||
"${FILESDIR}"/${PN}-8.13-rpath.patch
|
||||
)
|
||||
|
||||
pkg_pretend() {
|
||||
[[ ${MERGE_TYPE} == binary ]] && return
|
||||
|
||||
if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then
|
||||
local mingw=-w64-mingw32
|
||||
for mingw in $(usev abi_x86_64 x86_64${mingw}) \
|
||||
$(use abi_x86_32 || use wow64 && echo i686${mingw}); do
|
||||
if ! type -P ${mingw}-gcc >/dev/null; then
|
||||
eerror "With USE=crossdev-mingw, you must prepare the MinGW toolchain"
|
||||
eerror "yourself by installing sys-devel/crossdev then running:"
|
||||
eerror
|
||||
eerror " crossdev --target ${mingw}"
|
||||
eerror
|
||||
eerror "For more information, please see: https://wiki.gentoo.org/wiki/Mingw"
|
||||
die "USE=crossdev-mingw is enabled, but ${mingw}-gcc was not found"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if [[ ${PV} == *9999 ]]; then
|
||||
EGIT_CHECKOUT_DIR=${WORKDIR}/${P}
|
||||
git-r3_src_unpack
|
||||
|
||||
# hack: use subshell to preserve state (including what git-r3 unpack
|
||||
# sets) for smart-live-rebuild as this is not the repo to look at
|
||||
(
|
||||
EGIT_COMMIT=$(<"${EGIT_CHECKOUT_DIR}"/staging/upstream-commit) || die
|
||||
EGIT_REPO_URI=${WINE_EGIT_REPO_URI}
|
||||
EGIT_CHECKOUT_DIR=${S}
|
||||
einfo "Fetching Wine commit matching the current patchset by default (${EGIT_COMMIT})"
|
||||
git-r3_src_unpack
|
||||
)
|
||||
else
|
||||
default
|
||||
fi
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
local patchinstallargs=(
|
||||
--all
|
||||
--no-autoconf
|
||||
# patches known broken with USE=-mingw, retry occasionally (bug #921360)
|
||||
$(usev !mingw '
|
||||
-W winedevice-Default_Drivers
|
||||
-W fltmgr.sys-FltBuildDefaultSecurityDescriptor
|
||||
')
|
||||
${MY_WINE_STAGING_CONF}
|
||||
)
|
||||
|
||||
edo "${PYTHON}" ../${P}/staging/patchinstall.py "${patchinstallargs[@]}"
|
||||
|
||||
# sanity check, bumping these has a history of oversights
|
||||
local geckomono=$(sed -En '/^#define (GECKO|MONO)_VER/{s/[^0-9.]//gp}' \
|
||||
dlls/appwiz.cpl/addons.c || die)
|
||||
if [[ ${WINE_GECKO}$'\n'${WINE_MONO} != "${geckomono}" ]]; then
|
||||
local gmfatal=
|
||||
[[ ${PV} == *9999 ]] && gmfatal=nonfatal
|
||||
${gmfatal} die -n "gecko/mono mismatch in ebuild, has: " ${geckomono} " (please file a bug)"
|
||||
fi
|
||||
|
||||
default
|
||||
|
||||
if tc-is-clang; then
|
||||
if use mingw; then
|
||||
# -mabi=ms was ignored by <clang:16 then turned error in :17
|
||||
# if used without --target *-windows, then gets used in install
|
||||
# phase despite USE=mingw, drop as a quick fix for now
|
||||
sed -i '/MSVCRTFLAGS=/s/-mabi=ms//' configure.ac || die
|
||||
else
|
||||
# fails in ./configure unless --enable-archs is passed, allow to
|
||||
# bypass with EXTRA_ECONF but is currently considered unsupported
|
||||
# (by Gentoo) as additional work is needed for (proper) support
|
||||
# note: also fails w/ :17, but unsure if safe to drop w/o mingw
|
||||
[[ ${EXTRA_ECONF} == *--enable-archs* ]] ||
|
||||
die "building ${PN} with clang is only supported with USE=mingw"
|
||||
fi
|
||||
fi
|
||||
|
||||
# ensure .desktop calls this variant + slot
|
||||
sed -i "/^Exec=/s/wine /${P} /" loader/wine.desktop || die
|
||||
|
||||
# datadir is not where wine-mono is installed, so prefixy alternate paths
|
||||
hprefixify -w /get_mono_path/ dlls/mscoree/metahost.c
|
||||
|
||||
# always update for patches (including user's wrt #432348)
|
||||
eautoreconf
|
||||
tools/make_requests || die # perl
|
||||
# tip: if need more for user patches, with portage can e.g. do
|
||||
# echo "post_src_prepare() { tools/make_specfiles || die; }" \
|
||||
# > /etc/portage/env/app-emulation/wine-staging
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
WINE_PREFIX=/usr/lib/${P}
|
||||
WINE_DATADIR=/usr/share/${P}
|
||||
|
||||
local conf=(
|
||||
--prefix="${EPREFIX}"${WINE_PREFIX}
|
||||
--datadir="${EPREFIX}"${WINE_DATADIR}
|
||||
--includedir="${EPREFIX}"/usr/include/${P}
|
||||
--libdir="${EPREFIX}"${WINE_PREFIX}
|
||||
--mandir="${EPREFIX}"${WINE_DATADIR}/man
|
||||
|
||||
$(usev wow64 --enable-archs=x86_64,i386)
|
||||
|
||||
$(use_enable gecko mshtml)
|
||||
$(use_enable mono mscoree)
|
||||
--disable-tests
|
||||
|
||||
$(use_with X x)
|
||||
$(use_with alsa)
|
||||
$(use_with capi)
|
||||
$(use_with cups)
|
||||
$(use_with fontconfig)
|
||||
$(use_with gphoto2 gphoto)
|
||||
$(use_with gstreamer)
|
||||
$(use_with kerberos gssapi)
|
||||
$(use_with kerberos krb5)
|
||||
$(use_with mingw)
|
||||
$(use_with netapi)
|
||||
$(use_with nls gettext)
|
||||
$(use_with opencl)
|
||||
$(use_with opengl)
|
||||
$(use_with osmesa)
|
||||
--without-oss # media-sound/oss is not packaged (OSSv4)
|
||||
$(use_with pcap)
|
||||
$(use_with pulseaudio pulse)
|
||||
$(use_with scanner sane)
|
||||
$(use_with sdl)
|
||||
$(use_with smartcard pcsclite)
|
||||
$(use_with ssl gnutls)
|
||||
$(use_with truetype freetype)
|
||||
$(use_with udev)
|
||||
$(use_with udisks dbus) # dbus is only used for udisks
|
||||
$(use_with unwind)
|
||||
$(use_with usb)
|
||||
$(use_with v4l v4l2)
|
||||
$(use_with vulkan)
|
||||
$(use_with wayland)
|
||||
$(use_with xcomposite)
|
||||
$(use_with xinerama)
|
||||
)
|
||||
|
||||
filter-lto # build failure
|
||||
filter-flags -Wl,--gc-sections # runtime issues (bug #931329)
|
||||
use custom-cflags || strip-flags # can break in obscure ways at runtime
|
||||
|
||||
# wine uses linker tricks unlikely to work with non-bfd/lld (bug #867097)
|
||||
# (do self test until https://github.com/gentoo/gentoo/pull/28355)
|
||||
if [[ $(LC_ALL=C $(tc-getCC) ${LDFLAGS} -Wl,--version 2>/dev/null) != @(LLD|GNU\ ld)* ]]
|
||||
then
|
||||
has_version -b sys-devel/binutils &&
|
||||
append-ldflags -fuse-ld=bfd ||
|
||||
append-ldflags -fuse-ld=lld
|
||||
strip-unsupported-flags
|
||||
fi
|
||||
|
||||
# >=wine-vanilla-9 has proper fixes and builds with gcc-14, but
|
||||
# staging patchset is messier and would rather not have to worry
|
||||
# about it (try to remove on bump now and then, bug #919758)
|
||||
append-cflags $(test-flags-CC -Wno-error=incompatible-pointer-types)
|
||||
|
||||
if use mingw; then
|
||||
use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}
|
||||
|
||||
# CROSSCC was formerly recognized by wine, thus been using similar
|
||||
# variables (subject to change, esp. if ever make a mingw.eclass).
|
||||
local mingwcc_amd64=${CROSSCC:-${CROSSCC_amd64:-x86_64-w64-mingw32-gcc}}
|
||||
local mingwcc_x86=${CROSSCC:-${CROSSCC_x86:-i686-w64-mingw32-gcc}}
|
||||
local -n mingwcc=mingwcc_$(usex abi_x86_64 amd64 x86)
|
||||
|
||||
conf+=(
|
||||
ac_cv_prog_x86_64_CC="${mingwcc_amd64}"
|
||||
ac_cv_prog_i386_CC="${mingwcc_x86}"
|
||||
|
||||
CROSSCFLAGS="${CROSSCFLAGS:-$(
|
||||
filter-flags '-fstack-protector*' #870136
|
||||
filter-flags '-mfunction-return=thunk*' #878849
|
||||
|
||||
# some bashrc-mv users tend to do CFLAGS="${LDFLAGS}" and then
|
||||
# strip-unsupported-flags miss these during compile-only tests
|
||||
# (primarily done for 23.0 profiles' -z, not full coverage)
|
||||
filter-flags '-Wl,-z,*'
|
||||
|
||||
CC=${mingwcc} test-flags-CC ${CFLAGS:--O2}
|
||||
)}"
|
||||
|
||||
CROSSLDFLAGS="${CROSSLDFLAGS:-$(
|
||||
filter-flags '-fuse-ld=*'
|
||||
|
||||
CC=${mingwcc} test-flags-CCLD ${LDFLAGS}
|
||||
)}"
|
||||
)
|
||||
fi
|
||||
|
||||
# order matters with multilib: configure+compile 64->32, install 32->64
|
||||
local -i bits
|
||||
for bits in $(usev abi_x86_64 64) $(usev abi_x86_32 32); do
|
||||
(
|
||||
einfo "Configuring ${PN} for ${bits}bits in ${WORKDIR}/build${bits} ..."
|
||||
|
||||
mkdir ../build${bits} || die
|
||||
cd ../build${bits} || die
|
||||
|
||||
if (( bits == 64 )); then
|
||||
conf+=( --enable-win64 )
|
||||
elif use amd64; then
|
||||
conf+=(
|
||||
$(usev abi_x86_64 --with-wine64=../build64)
|
||||
TARGETFLAGS=-m32 # for widl
|
||||
)
|
||||
# _setup is optional, but use over Wine's auto-detect (+#472038)
|
||||
multilib_toolchain_setup x86
|
||||
fi
|
||||
|
||||
ECONF_SOURCE=${S} econf "${conf[@]}"
|
||||
)
|
||||
done
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
use abi_x86_64 && emake -C ../build64 # do first
|
||||
use abi_x86_32 && emake -C ../build32
|
||||
}
|
||||
|
||||
src_install() {
|
||||
use abi_x86_32 && emake DESTDIR="${D}" -C ../build32 install
|
||||
use abi_x86_64 && emake DESTDIR="${D}" -C ../build64 install # do last
|
||||
|
||||
# Ensure both wine64 and wine are available if USE=abi_x86_64 (wow64,
|
||||
# -abi_x86_32, and/or EXTRA_ECONF could cause varying scenarios where
|
||||
# one or the other could be missing and that is unexpected for users
|
||||
# and some tools like winetricks)
|
||||
if use abi_x86_64; then
|
||||
if [[ -e ${ED}${WINE_PREFIX}/bin/wine64 && ! -e ${ED}${WINE_PREFIX}/bin/wine ]]; then
|
||||
dosym wine64 ${WINE_PREFIX}/bin/wine
|
||||
dosym wine64-preloader ${WINE_PREFIX}/bin/wine-preloader
|
||||
|
||||
# also install wine(1) man pages (incl. translations)
|
||||
local man
|
||||
for man in ../build64/loader/wine.*man; do
|
||||
: "${man##*/wine}"
|
||||
: "${_%.*}"
|
||||
insinto ${WINE_DATADIR}/man/${_:+${_#.}/}man1
|
||||
newins ${man} wine.1
|
||||
done
|
||||
elif [[ ! -e ${ED}${WINE_PREFIX}/bin/wine64 && -e ${ED}${WINE_PREFIX}/bin/wine ]]; then
|
||||
dosym wine ${WINE_PREFIX}/bin/wine64
|
||||
dosym wine-preloader ${WINE_PREFIX}/bin/wine64-preloader
|
||||
fi
|
||||
fi
|
||||
|
||||
use perl || rm "${ED}"${WINE_DATADIR}/man/man1/wine{dump,maker}.1 \
|
||||
"${ED}"${WINE_PREFIX}/bin/{function_grep.pl,wine{dump,maker}} || die
|
||||
|
||||
# create variant wrappers for eselect-wine
|
||||
local bin
|
||||
for bin in "${ED}"${WINE_PREFIX}/bin/*; do
|
||||
make_wrapper "${bin##*/}-${P#wine-}" "${bin#"${ED}"}"
|
||||
done
|
||||
|
||||
if use mingw; then
|
||||
# don't let portage try to strip PE files with the wrong
|
||||
# strip executable and instead handle it here (saves ~120MB)
|
||||
dostrip -x ${WINE_PREFIX}/wine/{i386,x86_64}-windows
|
||||
|
||||
if use strip; then
|
||||
ebegin "Stripping Windows (PE) binaries"
|
||||
find "${ED}"${WINE_PREFIX}/wine/*-windows -regex '.*\.\(a\|dll\|exe\)' \
|
||||
-exec $(usex abi_x86_64 x86_64 i686)-w64-mingw32-strip --strip-unneeded {} +
|
||||
eend ${?} || die
|
||||
fi
|
||||
fi
|
||||
|
||||
dodoc ANNOUNCE* AUTHORS README* documentation/README*
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
if use !abi_x86_32 && use !wow64; then
|
||||
ewarn "32bit support is disabled. While 64bit applications themselves will"
|
||||
ewarn "work, be warned that it is not unusual that installers or other helpers"
|
||||
ewarn "will attempt to use 32bit and fail. If do not want full USE=abi_x86_32,"
|
||||
ewarn "note the experimental/WIP USE=wow64 can allow 32bit without multilib."
|
||||
elif use abi_x86_32 && { use opengl || use vulkan; } &&
|
||||
has_version 'x11-drivers/nvidia-drivers[-abi_x86_32]'
|
||||
then
|
||||
ewarn "x11-drivers/nvidia-drivers is installed but is built without"
|
||||
ewarn "USE=abi_x86_32 (ABI_X86=32), hardware acceleration with 32bit"
|
||||
ewarn "applications under ${PN} will likely not be usable."
|
||||
fi
|
||||
|
||||
optfeature "/dev/hidraw* access used for *some* controllers (e.g. DualShock4)" \
|
||||
games-util/game-device-udev-rules
|
||||
|
||||
eselect wine update --if-unset || die
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
eselect wine update --if-unset || die
|
||||
}
|
@ -1,7 +1,6 @@
|
||||
DIST wine-7.0.2.tar.xz 27179980 BLAKE2B 721ab574092638b32d3a483b6ae3def0c9d706cc888662ca461ab8c7060b10077e83cede69663ea2a8b97729f3801209fbba5f8e8828ce20454700ffbbd76cb5 SHA512 330c71005a6a8054b5068ac4484e9015e9f8bf55d5a451aaf5f79b7f78a025732b454251c31473abf21504cce3b78e50cf7e3e0d0116bb755dc8396bd790289a
|
||||
DIST wine-8.0.2.tar.xz 29060452 BLAKE2B dcffaba6c90c4e02a7bc591a81e11aced06c006370c4c316c8a367b2f5814926063482959fabfe9d674ee1b5a560e59087e9b711e28360ced3aee2bbd6bb8fdb SHA512 e86dd31247d757d48ffb2d24f20edab3fc6ef9c3e395567a7b363951bb681335ba3adb8b84639011b24b6eb274582d56880298d6d95fb100acc072383d4e973f
|
||||
DIST wine-9.0.tar.xz 30007216 BLAKE2B cf53177201a2f7eeb35d0d8ce220f80808d979099a928ad60652d1dee92620c433cc105dffab4e9309f41766087ad1544ef49d2922538bb420d62f6dd64117a1 SHA512 838daf2c4581f83f8573b988036f517d57b84894b090a2a17433255d6d044dfa880e6724cdb83082a36c333df9d2083ab68ae53927622a620edd59f33462ada4
|
||||
DIST wine-9.5.tar.xz 30371420 BLAKE2B c14ebf02f0f5b91bc2b2517ff3630f22c6af7fdc827c5d024d809a383a65446284a5349c8109835112f5353f361088f4f32de1a3d04299fbf39deacbc0e8e8bf SHA512 8ccad8f6e6b1428886dee9fae771796e2021b4122cd96464350352bede25421406e6a6a0fdd63d8b99b896db8dc529aa6e05d6ac7966bee49ce3055b18a8af91
|
||||
DIST wine-9.6.tar.xz 30261488 BLAKE2B 53115a8a80593856679718b2055340860221701bc82a784a111a992f5e67b031d7407a16f6df6d4da67f382f30c35d2dd82af2a671a058a76b621c91199e426e SHA512 cc2ea5597636da8d392d1d63b9c135679eff69ea671dc6b53b6f2d44a890aee0e17275174485f6e8dd99c7db737eb82a800a2b05c4966f15e28167c5a6098922
|
||||
DIST wine-9.7.tar.xz 30281616 BLAKE2B 4d27f6f2dfd088a0590bfce7228c7eca25b66a9a04706ddecb25af6364e83100c15a78c8d46f3294a42dc7f3503756506f752a02d7058a72ce16716994b334bc SHA512 0c15c3a0901162a386126f2dc987b276b379cc027fc72d9e31cf3122614742f876f30a5f24a495f546cd9c5bd5efce096bd9ca190d0f378fea3d42a298a06e80
|
||||
DIST wine-9.8.tar.xz 30297460 BLAKE2B 689d1b4e55f7d66b8fad8432ad35a52e2fad303e8a9382b8893222c696697efa5de5b56cc2b933bed96d6382f9fdc919fa15e6517ffdb50105cdaea904a7d77f SHA512 3d1b0e6b7b633a0b45ba6b23e741e808dec29355721baf4489c3ad34c67d714b40897ef510c4a84f31be390d7f8b86b93a725787d733eaf77df5c82b322d2662
|
||||
DIST wine-9.9.tar.xz 30265476 BLAKE2B a2557044b10252c1b1ae023e10863c601e9159d64eda2ce1d8aab4dbb9efffa1b4b15ed27a9edbf6f2bba148c2bb07e729bd706bac9fe17f91c826c74b5980e6 SHA512 df016411933b5447bef9b48f67c58e12d6d33ef0c24045ab03c92821dcccbf84335d1a2d765e6d6cf3a743598317010b8ae6f69de3661733e4fa43febec873dd
|
||||
|
@ -1,431 +0,0 @@
|
||||
# Copyright 2022-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
MULTILIB_COMPAT=( abi_x86_{32,64} )
|
||||
inherit autotools flag-o-matic multilib multilib-build optfeature
|
||||
inherit prefix toolchain-funcs wrapper
|
||||
|
||||
WINE_GECKO=2.47.4
|
||||
WINE_MONO=9.0.0
|
||||
|
||||
if [[ ${PV} == *9999 ]]; then
|
||||
inherit git-r3
|
||||
EGIT_REPO_URI="https://gitlab.winehq.org/wine/wine.git"
|
||||
else
|
||||
(( $(ver_cut 2) )) && WINE_SDIR=$(ver_cut 1).x || WINE_SDIR=$(ver_cut 1).0
|
||||
SRC_URI="https://dl.winehq.org/wine/source/${WINE_SDIR}/wine-${PV}.tar.xz"
|
||||
S="${WORKDIR}/wine-${PV}"
|
||||
KEYWORDS="-* ~amd64 ~x86"
|
||||
fi
|
||||
|
||||
DESCRIPTION="Free implementation of Windows(tm) on Unix, without external patchsets"
|
||||
HOMEPAGE="
|
||||
https://www.winehq.org/
|
||||
https://gitlab.winehq.org/wine/wine/
|
||||
"
|
||||
|
||||
LICENSE="LGPL-2.1+ BSD-2 IJG MIT OPENLDAP ZLIB gsm libpng2 libtiff"
|
||||
SLOT="${PV}"
|
||||
IUSE="
|
||||
+X +abi_x86_32 +abi_x86_64 +alsa capi crossdev-mingw cups dos
|
||||
llvm-libunwind custom-cflags +fontconfig +gecko gphoto2 +gstreamer
|
||||
kerberos +mingw +mono netapi nls odbc opencl +opengl osmesa pcap
|
||||
perl pulseaudio samba scanner +sdl selinux smartcard +ssl +strip
|
||||
+truetype udev udisks +unwind usb v4l +vulkan wayland wow64
|
||||
+xcomposite xinerama"
|
||||
# bug #551124 for truetype
|
||||
# TODO?: wow64 can be done without mingw if using clang (needs bug #912237)
|
||||
REQUIRED_USE="
|
||||
X? ( truetype )
|
||||
crossdev-mingw? ( mingw )
|
||||
wow64? ( abi_x86_64 !abi_x86_32 mingw )
|
||||
"
|
||||
|
||||
# tests are non-trivial to run, can hang easily, don't play well with
|
||||
# sandbox, and several need real opengl/vulkan or network access
|
||||
RESTRICT="test"
|
||||
|
||||
# `grep WINE_CHECK_SONAME configure.ac` + if not directly linked
|
||||
WINE_DLOPEN_DEPEND="
|
||||
X? (
|
||||
x11-libs/libXcursor[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXfixes[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXi[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXrandr[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXrender[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
|
||||
opengl? (
|
||||
media-libs/libglvnd[X,${MULTILIB_USEDEP}]
|
||||
osmesa? ( media-libs/mesa[osmesa,${MULTILIB_USEDEP}] )
|
||||
)
|
||||
xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
|
||||
xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
|
||||
)
|
||||
cups? ( net-print/cups[${MULTILIB_USEDEP}] )
|
||||
fontconfig? ( media-libs/fontconfig[${MULTILIB_USEDEP}] )
|
||||
kerberos? ( virtual/krb5[${MULTILIB_USEDEP}] )
|
||||
netapi? ( net-fs/samba[${MULTILIB_USEDEP}] )
|
||||
odbc? ( dev-db/unixODBC[${MULTILIB_USEDEP}] )
|
||||
sdl? ( media-libs/libsdl2[haptic,joystick,${MULTILIB_USEDEP}] )
|
||||
ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
|
||||
truetype? ( media-libs/freetype[${MULTILIB_USEDEP}] )
|
||||
udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
|
||||
v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
|
||||
vulkan? ( media-libs/vulkan-loader[X?,${MULTILIB_USEDEP}] )
|
||||
"
|
||||
WINE_COMMON_DEPEND="
|
||||
${WINE_DLOPEN_DEPEND}
|
||||
X? (
|
||||
x11-libs/libX11[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXext[${MULTILIB_USEDEP}]
|
||||
)
|
||||
alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
|
||||
capi? ( net-libs/libcapi:=[${MULTILIB_USEDEP}] )
|
||||
gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
|
||||
gstreamer? (
|
||||
dev-libs/glib:2[${MULTILIB_USEDEP}]
|
||||
media-libs/gst-plugins-base:1.0[${MULTILIB_USEDEP}]
|
||||
media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
|
||||
)
|
||||
opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
|
||||
pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
|
||||
pulseaudio? ( media-libs/libpulse[${MULTILIB_USEDEP}] )
|
||||
scanner? ( media-gfx/sane-backends[${MULTILIB_USEDEP}] )
|
||||
smartcard? ( sys-apps/pcsc-lite[${MULTILIB_USEDEP}] )
|
||||
udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
|
||||
unwind? (
|
||||
llvm-libunwind? ( sys-libs/llvm-libunwind[${MULTILIB_USEDEP}] )
|
||||
!llvm-libunwind? ( sys-libs/libunwind:=[${MULTILIB_USEDEP}] )
|
||||
)
|
||||
usb? ( dev-libs/libusb:1[${MULTILIB_USEDEP}] )
|
||||
wayland? (
|
||||
dev-libs/wayland[${MULTILIB_USEDEP}]
|
||||
x11-libs/libxkbcommon[${MULTILIB_USEDEP}]
|
||||
)
|
||||
"
|
||||
RDEPEND="
|
||||
${WINE_COMMON_DEPEND}
|
||||
app-emulation/wine-desktop-common
|
||||
dos? (
|
||||
|| (
|
||||
games-emulation/dosbox
|
||||
games-emulation/dosbox-staging
|
||||
)
|
||||
)
|
||||
gecko? (
|
||||
app-emulation/wine-gecko:${WINE_GECKO}[${MULTILIB_USEDEP}]
|
||||
wow64? ( app-emulation/wine-gecko[abi_x86_32] )
|
||||
)
|
||||
gstreamer? ( media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}] )
|
||||
mono? ( app-emulation/wine-mono:${WINE_MONO} )
|
||||
perl? (
|
||||
dev-lang/perl
|
||||
dev-perl/XML-LibXML
|
||||
)
|
||||
samba? ( net-fs/samba[winbind] )
|
||||
selinux? ( sec-policy/selinux-wine )
|
||||
udisks? ( sys-fs/udisks:2 )
|
||||
"
|
||||
DEPEND="
|
||||
${WINE_COMMON_DEPEND}
|
||||
sys-kernel/linux-headers
|
||||
X? ( x11-base/xorg-proto )
|
||||
"
|
||||
BDEPEND="
|
||||
|| (
|
||||
sys-devel/binutils
|
||||
sys-devel/lld
|
||||
)
|
||||
dev-lang/perl
|
||||
sys-devel/bison
|
||||
sys-devel/flex
|
||||
virtual/pkgconfig
|
||||
mingw? ( !crossdev-mingw? (
|
||||
>=dev-util/mingw64-toolchain-10.0.0_p1-r2[${MULTILIB_USEDEP}]
|
||||
wow64? ( dev-util/mingw64-toolchain[abi_x86_32] )
|
||||
) )
|
||||
nls? ( sys-devel/gettext )
|
||||
wayland? ( dev-util/wayland-scanner )
|
||||
"
|
||||
IDEPEND=">=app-eselect/eselect-wine-2"
|
||||
|
||||
QA_CONFIG_IMPL_DECL_SKIP=(
|
||||
__clear_cache # unused on amd64+x86 (bug #900338)
|
||||
res_getservers # false positive
|
||||
)
|
||||
QA_TEXTRELS="usr/lib/*/wine/i386-unix/*.so" # uses -fno-PIC -Wl,-z,notext
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${PN}-7.0-noexecstack.patch
|
||||
"${FILESDIR}"/${PN}-7.20-unwind.patch
|
||||
"${FILESDIR}"/${PN}-8.13-rpath.patch
|
||||
)
|
||||
|
||||
pkg_pretend() {
|
||||
[[ ${MERGE_TYPE} == binary ]] && return
|
||||
|
||||
if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then
|
||||
local mingw=-w64-mingw32
|
||||
for mingw in $(usev abi_x86_64 x86_64${mingw}) \
|
||||
$(use abi_x86_32 || use wow64 && echo i686${mingw}); do
|
||||
if ! type -P ${mingw}-gcc >/dev/null; then
|
||||
eerror "With USE=crossdev-mingw, you must prepare the MinGW toolchain"
|
||||
eerror "yourself by installing sys-devel/crossdev then running:"
|
||||
eerror
|
||||
eerror " crossdev --target ${mingw}"
|
||||
eerror
|
||||
eerror "For more information, please see: https://wiki.gentoo.org/wiki/Mingw"
|
||||
die "USE=crossdev-mingw is enabled, but ${mingw}-gcc was not found"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
# sanity check, bumping these has a history of oversights
|
||||
local geckomono=$(sed -En '/^#define (GECKO|MONO)_VER/{s/[^0-9.]//gp}' \
|
||||
dlls/appwiz.cpl/addons.c || die)
|
||||
if [[ ${WINE_GECKO}$'\n'${WINE_MONO} != "${geckomono}" ]]; then
|
||||
local gmfatal=
|
||||
[[ ${PV} == *9999 ]] && gmfatal=nonfatal
|
||||
${gmfatal} die -n "gecko/mono mismatch in ebuild, has: " ${geckomono} " (please file a bug)"
|
||||
fi
|
||||
|
||||
default
|
||||
|
||||
if tc-is-clang; then
|
||||
if use mingw; then
|
||||
# -mabi=ms was ignored by <clang:16 then turned error in :17
|
||||
# if used without --target *-windows, then gets used in install
|
||||
# phase despite USE=mingw, drop as a quick fix for now
|
||||
sed -i '/MSVCRTFLAGS=/s/-mabi=ms//' configure.ac || die
|
||||
else
|
||||
# fails in ./configure unless --enable-archs is passed, allow to
|
||||
# bypass with EXTRA_ECONF but is currently considered unsupported
|
||||
# (by Gentoo) as additional work is needed for (proper) support
|
||||
# note: also fails w/ :17, but unsure if safe to drop w/o mingw
|
||||
[[ ${EXTRA_ECONF} == *--enable-archs* ]] ||
|
||||
die "building ${PN} with clang is only supported with USE=mingw"
|
||||
fi
|
||||
fi
|
||||
|
||||
# ensure .desktop calls this variant + slot
|
||||
sed -i "/^Exec=/s/wine /${P} /" loader/wine.desktop || die
|
||||
|
||||
# datadir is not where wine-mono is installed, so prefixy alternate paths
|
||||
hprefixify -w /get_mono_path/ dlls/mscoree/metahost.c
|
||||
|
||||
# always update for patches (including user's wrt #432348)
|
||||
eautoreconf
|
||||
tools/make_requests || die # perl
|
||||
# tip: if need more for user patches, with portage can e.g. do
|
||||
# echo "post_src_prepare() { tools/make_specfiles || die; }" \
|
||||
# > /etc/portage/env/app-emulation/wine-vanilla
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
WINE_PREFIX=/usr/lib/${P}
|
||||
WINE_DATADIR=/usr/share/${P}
|
||||
|
||||
local conf=(
|
||||
--prefix="${EPREFIX}"${WINE_PREFIX}
|
||||
--datadir="${EPREFIX}"${WINE_DATADIR}
|
||||
--includedir="${EPREFIX}"/usr/include/${P}
|
||||
--libdir="${EPREFIX}"${WINE_PREFIX}
|
||||
--mandir="${EPREFIX}"${WINE_DATADIR}/man
|
||||
|
||||
$(usev wow64 --enable-archs=x86_64,i386)
|
||||
|
||||
$(use_enable gecko mshtml)
|
||||
$(use_enable mono mscoree)
|
||||
--disable-tests
|
||||
|
||||
$(use_with X x)
|
||||
$(use_with alsa)
|
||||
$(use_with capi)
|
||||
$(use_with cups)
|
||||
$(use_with fontconfig)
|
||||
$(use_with gphoto2 gphoto)
|
||||
$(use_with gstreamer)
|
||||
$(use_with kerberos gssapi)
|
||||
$(use_with kerberos krb5)
|
||||
$(use_with mingw)
|
||||
$(use_with netapi)
|
||||
$(use_with nls gettext)
|
||||
$(use_with opencl)
|
||||
$(use_with opengl)
|
||||
$(use_with osmesa)
|
||||
--without-oss # media-sound/oss is not packaged (OSSv4)
|
||||
$(use_with pcap)
|
||||
$(use_with pulseaudio pulse)
|
||||
$(use_with scanner sane)
|
||||
$(use_with sdl)
|
||||
$(use_with smartcard pcsclite)
|
||||
$(use_with ssl gnutls)
|
||||
$(use_with truetype freetype)
|
||||
$(use_with udev)
|
||||
$(use_with udisks dbus) # dbus is only used for udisks
|
||||
$(use_with unwind)
|
||||
$(use_with usb)
|
||||
$(use_with v4l v4l2)
|
||||
$(use_with vulkan)
|
||||
$(use_with wayland)
|
||||
$(use_with xcomposite)
|
||||
$(use_with xinerama)
|
||||
$(usev !odbc ac_cv_lib_soname_odbc=)
|
||||
)
|
||||
|
||||
filter-lto # build failure
|
||||
filter-flags -Wl,--gc-sections # runtime issues (bug #931329)
|
||||
use custom-cflags || strip-flags # can break in obscure ways at runtime
|
||||
|
||||
# wine uses linker tricks unlikely to work with non-bfd/lld (bug #867097)
|
||||
# (do self test until https://github.com/gentoo/gentoo/pull/28355)
|
||||
if [[ $(LC_ALL=C $(tc-getCC) ${LDFLAGS} -Wl,--version 2>/dev/null) != @(LLD|GNU\ ld)* ]]
|
||||
then
|
||||
has_version -b sys-devel/binutils &&
|
||||
append-ldflags -fuse-ld=bfd ||
|
||||
append-ldflags -fuse-ld=lld
|
||||
strip-unsupported-flags
|
||||
fi
|
||||
|
||||
if use mingw; then
|
||||
use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}
|
||||
|
||||
# CROSSCC was formerly recognized by wine, thus been using similar
|
||||
# variables (subject to change, esp. if ever make a mingw.eclass).
|
||||
local mingwcc_amd64=${CROSSCC:-${CROSSCC_amd64:-x86_64-w64-mingw32-gcc}}
|
||||
local mingwcc_x86=${CROSSCC:-${CROSSCC_x86:-i686-w64-mingw32-gcc}}
|
||||
local -n mingwcc=mingwcc_$(usex abi_x86_64 amd64 x86)
|
||||
|
||||
conf+=(
|
||||
ac_cv_prog_x86_64_CC="${mingwcc_amd64}"
|
||||
ac_cv_prog_i386_CC="${mingwcc_x86}"
|
||||
|
||||
CROSSCFLAGS="${CROSSCFLAGS:-$(
|
||||
filter-flags '-fstack-protector*' #870136
|
||||
filter-flags '-mfunction-return=thunk*' #878849
|
||||
|
||||
# some bashrc-mv users tend to do CFLAGS="${LDFLAGS}" and then
|
||||
# strip-unsupported-flags miss these during compile-only tests
|
||||
# (primarily done for 23.0 profiles' -z, not full coverage)
|
||||
filter-flags '-Wl,-z,*'
|
||||
|
||||
CC=${mingwcc} test-flags-CC ${CFLAGS:--O2}
|
||||
)}"
|
||||
|
||||
CROSSLDFLAGS="${CROSSLDFLAGS:-$(
|
||||
filter-flags '-fuse-ld=*'
|
||||
|
||||
CC=${mingwcc} test-flags-CCLD ${LDFLAGS}
|
||||
)}"
|
||||
)
|
||||
fi
|
||||
|
||||
# order matters with multilib: configure+compile 64->32, install 32->64
|
||||
local -i bits
|
||||
for bits in $(usev abi_x86_64 64) $(usev abi_x86_32 32); do
|
||||
(
|
||||
einfo "Configuring ${PN} for ${bits}bits in ${WORKDIR}/build${bits} ..."
|
||||
|
||||
mkdir ../build${bits} || die
|
||||
cd ../build${bits} || die
|
||||
|
||||
if (( bits == 64 )); then
|
||||
conf+=( --enable-win64 )
|
||||
elif use amd64; then
|
||||
conf+=(
|
||||
$(usev abi_x86_64 --with-wine64=../build64)
|
||||
TARGETFLAGS=-m32 # for widl
|
||||
)
|
||||
# _setup is optional, but use over Wine's auto-detect (+#472038)
|
||||
multilib_toolchain_setup x86
|
||||
fi
|
||||
|
||||
ECONF_SOURCE=${S} econf "${conf[@]}"
|
||||
)
|
||||
done
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
use abi_x86_64 && emake -C ../build64 # do first
|
||||
use abi_x86_32 && emake -C ../build32
|
||||
}
|
||||
|
||||
src_install() {
|
||||
use abi_x86_32 && emake DESTDIR="${D}" -C ../build32 install
|
||||
use abi_x86_64 && emake DESTDIR="${D}" -C ../build64 install # do last
|
||||
|
||||
# Ensure both wine64 and wine are available if USE=abi_x86_64 (wow64,
|
||||
# -abi_x86_32, and/or EXTRA_ECONF could cause varying scenarios where
|
||||
# one or the other could be missing and that is unexpected for users
|
||||
# and some tools like winetricks)
|
||||
if use abi_x86_64; then
|
||||
if [[ -e ${ED}${WINE_PREFIX}/bin/wine64 && ! -e ${ED}${WINE_PREFIX}/bin/wine ]]; then
|
||||
dosym wine64 ${WINE_PREFIX}/bin/wine
|
||||
dosym wine64-preloader ${WINE_PREFIX}/bin/wine-preloader
|
||||
|
||||
# also install wine(1) man pages (incl. translations)
|
||||
local man
|
||||
for man in ../build64/loader/wine.*man; do
|
||||
: "${man##*/wine}"
|
||||
: "${_%.*}"
|
||||
insinto ${WINE_DATADIR}/man/${_:+${_#.}/}man1
|
||||
newins ${man} wine.1
|
||||
done
|
||||
elif [[ ! -e ${ED}${WINE_PREFIX}/bin/wine64 && -e ${ED}${WINE_PREFIX}/bin/wine ]]; then
|
||||
dosym wine ${WINE_PREFIX}/bin/wine64
|
||||
dosym wine-preloader ${WINE_PREFIX}/bin/wine64-preloader
|
||||
fi
|
||||
fi
|
||||
|
||||
use perl || rm "${ED}"${WINE_DATADIR}/man/man1/wine{dump,maker}.1 \
|
||||
"${ED}"${WINE_PREFIX}/bin/{function_grep.pl,wine{dump,maker}} || die
|
||||
|
||||
# create variant wrappers for eselect-wine
|
||||
local bin
|
||||
for bin in "${ED}"${WINE_PREFIX}/bin/*; do
|
||||
make_wrapper "${bin##*/}-${P#wine-}" "${bin#"${ED}"}"
|
||||
done
|
||||
|
||||
if use mingw; then
|
||||
# don't let portage try to strip PE files with the wrong
|
||||
# strip executable and instead handle it here (saves ~120MB)
|
||||
dostrip -x ${WINE_PREFIX}/wine/{i386,x86_64}-windows
|
||||
|
||||
if use strip; then
|
||||
ebegin "Stripping Windows (PE) binaries"
|
||||
find "${ED}"${WINE_PREFIX}/wine/*-windows -regex '.*\.\(a\|dll\|exe\)' \
|
||||
-exec $(usex abi_x86_64 x86_64 i686)-w64-mingw32-strip --strip-unneeded {} +
|
||||
eend ${?} || die
|
||||
fi
|
||||
fi
|
||||
|
||||
dodoc ANNOUNCE* AUTHORS README* documentation/README*
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
if use !abi_x86_32 && use !wow64; then
|
||||
ewarn "32bit support is disabled. While 64bit applications themselves will"
|
||||
ewarn "work, be warned that it is not unusual that installers or other helpers"
|
||||
ewarn "will attempt to use 32bit and fail. If do not want full USE=abi_x86_32,"
|
||||
ewarn "note the experimental/WIP USE=wow64 can allow 32bit without multilib."
|
||||
elif use abi_x86_32 && { use opengl || use vulkan; } &&
|
||||
has_version 'x11-drivers/nvidia-drivers[-abi_x86_32]'
|
||||
then
|
||||
ewarn "x11-drivers/nvidia-drivers is installed but is built without"
|
||||
ewarn "USE=abi_x86_32 (ABI_X86=32), hardware acceleration with 32bit"
|
||||
ewarn "applications under ${PN} will likely not be usable."
|
||||
fi
|
||||
|
||||
optfeature "/dev/hidraw* access used for *some* controllers (e.g. DualShock4)" \
|
||||
games-util/game-device-udev-rules
|
||||
|
||||
eselect wine update --if-unset || die
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
eselect wine update --if-unset || die
|
||||
}
|
Binary file not shown.
Binary file not shown.
@ -1,50 +0,0 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit autotools flag-o-matic toolchain-funcs
|
||||
|
||||
DESCRIPTION="The GNU Calendar - a replacement for cal"
|
||||
HOMEPAGE="https://www.gnu.org/software/gcal/"
|
||||
SRC_URI="mirror://gnu/gcal/${P}.tar.xz"
|
||||
|
||||
LICENSE="GPL-3+"
|
||||
SLOT="0"
|
||||
KEYWORDS="amd64 ~arm ppc x86 ~amd64-linux ~x86-linux ~ppc-macos"
|
||||
IUSE="ncurses nls unicode"
|
||||
|
||||
RDEPEND="nls? ( virtual/libintl )
|
||||
unicode? ( dev-libs/libunistring:= )"
|
||||
DEPEND="${RDEPEND}"
|
||||
BDEPEND="
|
||||
app-arch/xz-utils
|
||||
nls? ( >=sys-devel/gettext-0.17 )
|
||||
"
|
||||
|
||||
DOCS=( BUGS LIMITATIONS NEWS README THANKS TODO )
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}/${P}-glibc228.patch"
|
||||
"${FILESDIR}/${PN}-4.1-configure-clang16.patch"
|
||||
)
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
# Drop once ${PN}-4.1-configure-clang16.patch merged
|
||||
eautoreconf
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
tc-export CC
|
||||
append-cppflags -D_GNU_SOURCE
|
||||
|
||||
use unicode && append-libs -lunistring
|
||||
|
||||
econf \
|
||||
--disable-rpath \
|
||||
$(use_enable nls) \
|
||||
$(use_enable ncurses term) \
|
||||
$(use_enable unicode)
|
||||
}
|
@ -1,63 +0,0 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit autotools flag-o-matic toolchain-funcs
|
||||
|
||||
DESCRIPTION="The GNU Calendar - a replacement for cal"
|
||||
HOMEPAGE="https://www.gnu.org/software/gcal/"
|
||||
SRC_URI="mirror://gnu/gcal/${P}.tar.xz"
|
||||
|
||||
LICENSE="GPL-3+"
|
||||
SLOT="0"
|
||||
KEYWORDS="amd64 ~arm ppc x86 ~amd64-linux ~x86-linux ~ppc-macos"
|
||||
IUSE="ncurses nls unicode"
|
||||
|
||||
RDEPEND="nls? ( virtual/libintl )
|
||||
unicode? ( dev-libs/libunistring:= )"
|
||||
DEPEND="${RDEPEND}"
|
||||
BDEPEND="
|
||||
app-arch/xz-utils
|
||||
nls? ( >=sys-devel/gettext-0.17 )
|
||||
"
|
||||
|
||||
DOCS=( BUGS LIMITATIONS NEWS README THANKS TODO )
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}/${P}-glibc228.patch"
|
||||
"${FILESDIR}/${PN}-4.1-configure-clang16.patch"
|
||||
"${FILESDIR}/${P}-fortify.patch"
|
||||
)
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
# Drop once ${PN}-4.1-configure-clang16.patch merged
|
||||
eautoreconf
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
tc-export CC
|
||||
append-cppflags -D_GNU_SOURCE
|
||||
|
||||
use unicode && append-libs -lunistring
|
||||
|
||||
econf \
|
||||
--disable-rpath \
|
||||
$(use_enable nls) \
|
||||
$(use_enable ncurses term) \
|
||||
$(use_enable unicode)
|
||||
}
|
||||
|
||||
src_test() {
|
||||
default
|
||||
|
||||
# Do basic smoke tests to help catch issues like bug #925560
|
||||
# where trivial 'gcal' invocation crashed w/ _F_S=3.
|
||||
local -x PATH="${S}/src:${S}:${PATH}"
|
||||
local bin
|
||||
for bin in gcal2txt tcal txt2gcal gcal ; do
|
||||
src/${bin} || die
|
||||
done
|
||||
}
|
@ -1,2 +1,3 @@
|
||||
DIST solaar-1.1.13.tar.gz 1779788 BLAKE2B fd138c3c9faa467e356240e8cfc73f420776228f407092cc2f8bca3a9443e4820dad923c8d997d41934fbf7fd728b17a9674c7f9affaf4cd8616c779f6141ff1 SHA512 4557c82bddf88a604e9316806b8d37296acc4b4486a64605199f85949f6b5d5fd5dd94b25742e5b41d01fba4da40dd5ab2e354d536856ecf3310557b4a7d23a0
|
||||
DIST solaar-1.1.8.tar.gz 1550947 BLAKE2B a33879e3c1b161d86c4c8a2c8edcc79eff285cb8937bf1e6621f3595ba5cf420e75fe700902b9f375698085bb929401154fa2bd25ae9663265e38c8406205bf6 SHA512 543c6257b36181813c9ed36747e53a15403da251fdd431c32525cada3ac88611da2c5f2a8212767ba3c7bb0071a3c2024f114805d9a33c761701bf958df29d85
|
||||
DIST solaar-1.1.9.tar.gz 1564119 BLAKE2B 67161bdd2a59ff17cafcdc5399f9f0c072985df85b2d0408e54c8f4e4966c3602a2b62f93b90e56e80fb3c4cbd285de2bbcc87a7709bea06ee4394f42a16f52e SHA512 42ea592aa8c4020be5e2ffd096de0bf6a7e6fdfac7eb2acd069c80084f88979398f779db6507b8b2cc4fd44c8a2ffce89024a42c161f130b4e1bd2c53e4e73a9
|
||||
|
@ -0,0 +1,81 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
DISTUTILS_USE_PEP517=setuptools
|
||||
DISTUTILS_SINGLE_IMPL=1
|
||||
PYTHON_COMPAT=( python3_{10..12} )
|
||||
|
||||
inherit linux-info udev xdg distutils-r1
|
||||
|
||||
DESCRIPTION="Linux Device Manager for Logitech Unifying Receivers and Paired Devices"
|
||||
HOMEPAGE="https://pwr-solaar.github.io/Solaar/"
|
||||
if [[ ${PV} =~ 9999* ]]; then
|
||||
inherit git-r3
|
||||
EGIT_REPO_URI="https://github.com/pwr-Solaar/Solaar"
|
||||
else
|
||||
SRC_URI="https://github.com/pwr-Solaar/Solaar/archive/${PV/_rc/rc}.tar.gz -> ${P/_rc/rc}.tar.gz"
|
||||
KEYWORDS="~amd64 ~arm ~arm64 ~x86"
|
||||
S="${WORKDIR}"/Solaar-${PV/_rc/rc}
|
||||
fi
|
||||
|
||||
LICENSE="GPL-2"
|
||||
SLOT="0"
|
||||
IUSE="doc appindicator libnotify"
|
||||
|
||||
RDEPEND="
|
||||
acct-group/plugdev
|
||||
$(python_gen_cond_dep '
|
||||
dev-python/evdev[${PYTHON_USEDEP}]
|
||||
dev-python/psutil[${PYTHON_USEDEP}]
|
||||
dev-python/pygobject:3[${PYTHON_USEDEP}]
|
||||
dev-python/python-xlib[${PYTHON_USEDEP}]
|
||||
>=dev-python/pyudev-0.13[${PYTHON_USEDEP}]
|
||||
dev-python/pyyaml[${PYTHON_USEDEP}]
|
||||
|
||||
')
|
||||
x11-libs/gtk+:3[introspection]
|
||||
appindicator? ( dev-libs/libayatana-appindicator )
|
||||
libnotify? ( x11-libs/libnotify[introspection] )"
|
||||
# libayatana-appindicator & libnotify are entirely optional and detected at runtime
|
||||
|
||||
CONFIG_CHECK="~HID_LOGITECH_DJ ~HIDRAW"
|
||||
|
||||
python_prepare_all() {
|
||||
# don't autostart (bug #494608)
|
||||
sed -i \
|
||||
-e '/yield autostart_path/d' \
|
||||
setup.py || die
|
||||
|
||||
sed -i -r \
|
||||
-e '/yield.*udev.*rules.d/{s,/etc,/lib,g}' \
|
||||
setup.py || die
|
||||
|
||||
# grant plugdev group rw access
|
||||
sed -i 's/#MODE=/MODE=/' rules.d/42-logitech-unify-permissions.rules || die
|
||||
|
||||
distutils-r1_python_prepare_all
|
||||
}
|
||||
|
||||
python_install_all() {
|
||||
distutils-r1_python_install_all
|
||||
|
||||
dodoc docs/devices.md CHANGELOG.md
|
||||
if use doc; then
|
||||
dodoc -r docs/*
|
||||
else
|
||||
newdoc docs/index.md README.md
|
||||
fi
|
||||
udev_dorules "${S}"/rules.d/42-logitech-unify-permissions.rules
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
udev_reload
|
||||
xdg_pkg_postinst
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
udev_reload
|
||||
xdg_pkg_postrm
|
||||
}
|
Binary file not shown.
@ -1,6 +1,3 @@
|
||||
DIST elt-patches-20240116.tar.xz 44400 BLAKE2B 0e664bf02180c2d0a5813f25a7661064f6612b71ab4743041a87579bf4fc2af276b2d653cbf75fe412364c2eb0a38dad744cc1eaa1159837239b0b9bbd122c5c SHA512 b014bebf918bb3debb5f38297caa0e250b426bdabfbc3c3e7ae44c1f5cda0d63ae1c0d82c12710a966a615947a5ad823a6e06c2ca485b987a74065dde16216bb
|
||||
DIST elt-patches-20240213.tar.xz 44840 BLAKE2B 00c7c19dd0cd2aacc72e90d98f6b5bf09cfbcc79597b53d1c8095066354de10d3080404f7798463e87c1eef385b26dcbc590d3e6fe6f709ea04eaa82bbb17359 SHA512 d39ba86d4356491246b30b7c87d4fba341ba1539f696ef297c231fee5566a3fbf09891323d1f04fd97b9504c56dbb6f2ac99fa6051bf77a31aab55695c6da24b
|
||||
DIST elt-patches-20240315.tar.xz 45416 BLAKE2B 4a1e33bba89c43cb91d75641d35837aa482e2e119079321b4e1824ee5bd4b0f5c465c4709082daf987dedf423fef5adb9ba8d8d1b9d6dc814c663dda86ac0ee0 SHA512 7c2034713630f8ad40fed5be34f397749e8e1f63d5933656fe3618e97cf59240aaa64468fcb1a46bac111b96603e538b857513ca80d327c0be865868020457ea
|
||||
DIST elt-patches-20240324.tar.xz 45712 BLAKE2B 29a94ad3132ba10f4fc90cde685732b1cb679d693e1b1a1fbdb7fd99fbfc70aa7df9e6753ef6374cd606195829bd9d6a8b9b19126780ffa8f28542fb59d99fb0 SHA512 3878d5d303b372c873859510d6a0f3911657f4b66af8a91833657a13902474d011e30b4d245e5f82df791a9231f0253bb0ddef42bba66acb4241600265fb7925
|
||||
DIST elt-patches-20240415.tar.xz 46164 BLAKE2B 460a21bb20368c541406d8e0031d379a41d7a41f62a74a2a33c40647261f1dc542693ee9c3148c8f07ecb830c18d6d34500fbe2f05d03902b06967d6f762f131 SHA512 d876049860aad979bdf5e8b9842688cb31f3e1487d4966247ec4bcb6b696c25ef4b2a4abd4b330ecc39cff4f9ef18cf8b401660e59f35468b8dc1a26996a5c06
|
||||
DIST elt-patches-20240512.tar.xz 46176 BLAKE2B 8ca496aae63dd49e7148b7c06e687b3644a58211ec5cf7b82d8ccb7603df6390c7f9ba6f71b4b9b9db7263bf0c7005f9c6098091227c6b34729032f6a6101cd7 SHA512 c33321668b9191d2f8221fb4a1ea365ccce6d0b61bf8bb1b95fc6c2c67ada8b36c44d7423d994678e60e3197bf2721aca9e062e882d2cea05b465ad0d4e8a93c
|
||||
|
@ -1,39 +0,0 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
DESCRIPTION="Collection of patches for libtool.eclass"
|
||||
HOMEPAGE="https://gitweb.gentoo.org/proj/elt-patches.git/"
|
||||
|
||||
if [[ ${PV} == *9999* ]] ; then
|
||||
EGIT_REPO_URI="
|
||||
https://anongit.gentoo.org/git/proj/elt-patches.git
|
||||
https://github.com/gentoo/elt-patches
|
||||
"
|
||||
inherit git-r3
|
||||
else
|
||||
SRC_URI="
|
||||
https://dev.gentoo.org/~grobian/distfiles/${P}.tar.xz
|
||||
https://dev.gentoo.org/~vapier/dist/${P}.tar.xz
|
||||
https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}.tar.xz
|
||||
"
|
||||
|
||||
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~arm64-linux ~ppc64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
||||
fi
|
||||
|
||||
LICENSE="GPL-2"
|
||||
SLOT="0"
|
||||
# The 'check' target currently wants network access to fetch libtool tarballs.
|
||||
RESTRICT="test"
|
||||
|
||||
RDEPEND="sys-apps/gentoo-functions"
|
||||
BDEPEND="app-arch/xz-utils"
|
||||
|
||||
src_compile() {
|
||||
emake rootprefix="${EPREFIX}" libdirname="$(get_libdir)"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
emake DESTDIR="${D}" rootprefix="${EPREFIX}" install
|
||||
}
|
@ -1,39 +0,0 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
DESCRIPTION="Collection of patches for libtool.eclass"
|
||||
HOMEPAGE="https://gitweb.gentoo.org/proj/elt-patches.git/"
|
||||
|
||||
if [[ ${PV} == *9999* ]] ; then
|
||||
EGIT_REPO_URI="
|
||||
https://anongit.gentoo.org/git/proj/elt-patches.git
|
||||
https://github.com/gentoo/elt-patches
|
||||
"
|
||||
inherit git-r3
|
||||
else
|
||||
SRC_URI="
|
||||
https://dev.gentoo.org/~grobian/distfiles/${P}.tar.xz
|
||||
https://dev.gentoo.org/~vapier/dist/${P}.tar.xz
|
||||
https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}.tar.xz
|
||||
"
|
||||
|
||||
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~arm64-linux ~ppc64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
||||
fi
|
||||
|
||||
LICENSE="GPL-2"
|
||||
SLOT="0"
|
||||
# The 'check' target currently wants network access to fetch libtool tarballs.
|
||||
RESTRICT="test"
|
||||
|
||||
RDEPEND="sys-apps/gentoo-functions"
|
||||
BDEPEND="app-arch/xz-utils"
|
||||
|
||||
src_compile() {
|
||||
emake rootprefix="${EPREFIX}" libdirname="$(get_libdir)"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
emake DESTDIR="${D}" rootprefix="${EPREFIX}" install
|
||||
}
|
@ -1,39 +0,0 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
DESCRIPTION="Collection of patches for libtool.eclass"
|
||||
HOMEPAGE="https://gitweb.gentoo.org/proj/elt-patches.git/"
|
||||
|
||||
if [[ ${PV} == *9999* ]] ; then
|
||||
EGIT_REPO_URI="
|
||||
https://anongit.gentoo.org/git/proj/elt-patches.git
|
||||
https://github.com/gentoo/elt-patches
|
||||
"
|
||||
inherit git-r3
|
||||
else
|
||||
SRC_URI="
|
||||
https://dev.gentoo.org/~grobian/distfiles/${P}.tar.xz
|
||||
https://dev.gentoo.org/~vapier/dist/${P}.tar.xz
|
||||
https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}.tar.xz
|
||||
"
|
||||
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~arm64-linux ~ppc64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
||||
fi
|
||||
|
||||
LICENSE="GPL-2"
|
||||
SLOT="0"
|
||||
# The 'check' target currently wants network access to fetch libtool tarballs.
|
||||
RESTRICT="test"
|
||||
|
||||
RDEPEND="sys-apps/gentoo-functions"
|
||||
BDEPEND="app-arch/xz-utils"
|
||||
|
||||
src_compile() {
|
||||
emake rootprefix="${EPREFIX}" libdirname="$(get_libdir)"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
emake DESTDIR="${D}" rootprefix="${EPREFIX}" install
|
||||
}
|
Binary file not shown.
@ -1,328 +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/chetramey.asc
|
||||
inherit flag-o-matic toolchain-funcs prefix verify-sig
|
||||
|
||||
# Uncomment if we have a patchset
|
||||
GENTOO_PATCH_DEV="sam"
|
||||
GENTOO_PATCH_VER="${PV}"
|
||||
|
||||
# Official patchlevel
|
||||
# See ftp://ftp.cwru.edu/pub/bash/bash-5.1-patches/
|
||||
PLEVEL="${PV##*_p}"
|
||||
MY_PV="${PV/_p*}"
|
||||
MY_PV="${MY_PV/_/-}"
|
||||
MY_P="${PN}-${MY_PV}"
|
||||
MY_PATCHES=()
|
||||
|
||||
is_release() {
|
||||
case ${PV} in
|
||||
*_alpha*|*_beta*|*_rc*)
|
||||
return 1
|
||||
;;
|
||||
*)
|
||||
return 0
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
[[ ${PV} != *_p* ]] && PLEVEL=0
|
||||
|
||||
# The version of readline this bash normally ships with.
|
||||
READLINE_VER="8.1"
|
||||
|
||||
DESCRIPTION="The standard GNU Bourne again shell"
|
||||
HOMEPAGE="https://tiswww.case.edu/php/chet/bash/bashtop.html"
|
||||
|
||||
if is_release ; then
|
||||
SRC_URI="mirror://gnu/bash/${MY_P}.tar.gz"
|
||||
SRC_URI+=" verify-sig? ( mirror://gnu/bash/${MY_P}.tar.gz.sig )"
|
||||
|
||||
if [[ ${PLEVEL} -gt 0 ]] ; then
|
||||
# bash-5.1 -> bash51
|
||||
my_p=${PN}$(ver_rs 1-2 '' $(ver_cut 1-2))
|
||||
|
||||
patch_url=
|
||||
my_patch_index=
|
||||
|
||||
upstream_url_base="mirror://gnu/bash"
|
||||
mirror_url_base="ftp://ftp.cwru.edu/pub/bash"
|
||||
|
||||
for ((my_patch_index=1; my_patch_index <= ${PLEVEL} ; my_patch_index++)) ; do
|
||||
printf -v mangled_patch_ver ${my_p}-%03d ${my_patch_index}
|
||||
patch_url="${upstream_url_base}/${MY_P}-patches/${mangled_patch_ver}"
|
||||
|
||||
SRC_URI+=" ${patch_url}"
|
||||
SRC_URI+=" verify-sig? ( ${patch_url}.sig )"
|
||||
|
||||
# Add in the mirror URL too.
|
||||
SRC_URI+=" ${patch_url/${upstream_url_base}/${mirror_url_base}}"
|
||||
SRC_URI+=" verify-sig? ( ${patch_url/${upstream_url_base}/${mirror_url_base}}.sig )"
|
||||
|
||||
MY_PATCHES+=( "${DISTDIR}"/${mangled_patch_ver} )
|
||||
done
|
||||
|
||||
unset my_p patch_url my_patch_index upstream_url_base mirror_url_base
|
||||
fi
|
||||
else
|
||||
SRC_URI="ftp://ftp.cwru.edu/pub/bash/${MY_P}.tar.gz"
|
||||
SRC_URI+=" verify-sig? ( ftp://ftp.cwru.edu/pub/bash/${MY_P}.tar.gz.sig )"
|
||||
fi
|
||||
|
||||
if [[ -n ${GENTOO_PATCH_VER} ]] ; then
|
||||
SRC_URI+=" https://dev.gentoo.org/~${GENTOO_PATCH_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${GENTOO_PATCH_VER}-patches.tar.xz"
|
||||
fi
|
||||
|
||||
LICENSE="GPL-3"
|
||||
SLOT="0"
|
||||
[[ "${PV}" == *_rc* ]] || \
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
||||
IUSE="afs bashlogger examples mem-scramble +net nls plugins +readline"
|
||||
|
||||
DEPEND="
|
||||
>=sys-libs/ncurses-5.2-r2:0=
|
||||
nls? ( virtual/libintl )
|
||||
readline? ( >=sys-libs/readline-${READLINE_VER}:0= )
|
||||
"
|
||||
RDEPEND="
|
||||
${DEPEND}
|
||||
"
|
||||
# We only need bison (yacc) when the .y files get patched (bash42-005, bash51-011)
|
||||
BDEPEND="sys-devel/bison
|
||||
verify-sig? ( sec-keys/openpgp-keys-chetramey )"
|
||||
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
PATCHES=(
|
||||
# Patches from Chet sent to bashbug ml
|
||||
"${WORKDIR}"/${PN}-${GENTOO_PATCH_VER}-patches/${PN}-5.0-syslog-history-extern.patch
|
||||
|
||||
"${FILESDIR}"/${PN}-5.1_p16-configure-clang16.patch
|
||||
)
|
||||
|
||||
pkg_setup() {
|
||||
# bug #7332
|
||||
if is-flag -malign-double ; then
|
||||
eerror "Detected bad CFLAGS '-malign-double'. Do not use this"
|
||||
eerror "as it breaks LFS (struct stat64) on x86."
|
||||
die "remove -malign-double from your CFLAGS mr ricer"
|
||||
fi
|
||||
|
||||
if use bashlogger ; then
|
||||
ewarn "The logging patch should ONLY be used in restricted (i.e. honeypot) envs."
|
||||
ewarn "This will log ALL output you enter into the shell, you have been warned."
|
||||
fi
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if [[ ${PV} == 9999 ]] ; then
|
||||
git-r3_src_unpack
|
||||
else
|
||||
if use verify-sig ; then
|
||||
verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.gz{,.sig}
|
||||
|
||||
local patch
|
||||
for patch in "${MY_PATCHES[@]}" ; do
|
||||
verify-sig_verify_detached ${patch}{,.sig}
|
||||
done
|
||||
fi
|
||||
|
||||
unpack ${MY_P}.tar.gz
|
||||
|
||||
if [[ -n ${GENTOO_PATCH_VER} ]] ; then
|
||||
unpack ${PN}-${GENTOO_PATCH_VER}-patches.tar.xz
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
# Include official patches
|
||||
[[ ${PLEVEL} -gt 0 ]] && eapply -p0 "${MY_PATCHES[@]}"
|
||||
|
||||
# Clean out local libs so we know we use system ones w/releases.
|
||||
if is_release ; then
|
||||
rm -rf lib/{readline,termcap}/* || die
|
||||
touch lib/{readline,termcap}/Makefile.in || die # for config.status
|
||||
sed -ri -e 's:\$[{(](RL|HIST)_LIBSRC[)}]/[[:alpha:]_-]*\.h::g' Makefile.in || die
|
||||
fi
|
||||
|
||||
# Prefixify hardcoded path names. No-op for non-prefix.
|
||||
hprefixify pathnames.h.in
|
||||
|
||||
# Avoid regenerating docs after patches, bug #407985
|
||||
sed -i -r '/^(HS|RL)USER/s:=.*:=:' doc/Makefile.in || die
|
||||
touch -r . doc/* || die
|
||||
|
||||
eapply -p0 "${PATCHES[@]}"
|
||||
eapply_user
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
# Upstream only test with Bison and require GNUisms like YYEOF and
|
||||
# YYERRCODE. The former at least may be in POSIX soon:
|
||||
# https://www.austingroupbugs.net/view.php?id=1269.
|
||||
# configure warns on use of non-Bison but doesn't abort. The result
|
||||
# may misbehave at runtime.
|
||||
unset YACC
|
||||
|
||||
local myconf=(
|
||||
--disable-profiling
|
||||
|
||||
# Force linking with system curses ... the bundled termcap lib
|
||||
# sucks bad compared to ncurses. For the most part, ncurses
|
||||
# is here because readline needs it. But bash itself calls
|
||||
# ncurses in one or two small places :(.
|
||||
--with-curses
|
||||
|
||||
$(use_enable mem-scramble)
|
||||
$(use_enable net net-redirections)
|
||||
$(use_enable readline)
|
||||
$(use_enable readline bang-history)
|
||||
$(use_enable readline history)
|
||||
$(use_with afs)
|
||||
$(use_with mem-scramble bash-malloc)
|
||||
)
|
||||
|
||||
# For descriptions of these, see config-top.h
|
||||
# bashrc/#26952 bash_logout/#90488 ssh/#24762 mktemp/#574426
|
||||
append-cppflags \
|
||||
-DDEFAULT_PATH_VALUE=\'\""${EPREFIX}"/usr/local/sbin:"${EPREFIX}"/usr/local/bin:"${EPREFIX}"/usr/sbin:"${EPREFIX}"/usr/bin:"${EPREFIX}"/sbin:"${EPREFIX}"/bin\"\' \
|
||||
-DSTANDARD_UTILS_PATH=\'\""${EPREFIX}"/bin:"${EPREFIX}"/usr/bin:"${EPREFIX}"/sbin:"${EPREFIX}"/usr/sbin\"\' \
|
||||
-DSYS_BASHRC=\'\""${EPREFIX}"/etc/bash/bashrc\"\' \
|
||||
-DSYS_BASH_LOGOUT=\'\""${EPREFIX}"/etc/bash/bash_logout\"\' \
|
||||
-DNON_INTERACTIVE_LOGIN_SHELLS \
|
||||
-DSSH_SOURCE_BASHRC \
|
||||
$(use bashlogger && echo -DSYSLOG_HISTORY)
|
||||
|
||||
# Don't even think about building this statically without
|
||||
# reading bug #7714 first. If you still build it statically,
|
||||
# don't come crying to us with bugs ;).
|
||||
#use static && export LDFLAGS="${LDFLAGS} -static"
|
||||
use nls || myconf+=( --disable-nls )
|
||||
|
||||
# Historically, we always used the builtin readline, but since
|
||||
# our handling of SONAME upgrades has gotten much more stable
|
||||
# in the PM (and the readline ebuild itself preserves the old
|
||||
# libs during upgrades), linking against the system copy should
|
||||
# be safe.
|
||||
# Exact cached version here doesn't really matter as long as it
|
||||
# is at least what's in the DEPEND up above.
|
||||
export ac_cv_rl_version=${READLINE_VER%%_*}
|
||||
|
||||
if is_release ; then
|
||||
# Use system readline only with released versions.
|
||||
myconf+=( --with-installed-readline=. )
|
||||
fi
|
||||
|
||||
if use plugins ; then
|
||||
append-ldflags -Wl,-rpath,"${EPREFIX}"/usr/$(get_libdir)/bash
|
||||
else
|
||||
# Disable the plugins logic by hand since bash doesn't
|
||||
# provide a way of doing it.
|
||||
export ac_cv_func_dl{close,open,sym}=no \
|
||||
ac_cv_lib_dl_dlopen=no ac_cv_header_dlfcn_h=no
|
||||
|
||||
sed -i \
|
||||
-e '/LOCAL_LDFLAGS=/s:-rdynamic::' \
|
||||
configure || die
|
||||
fi
|
||||
|
||||
# bug #444070
|
||||
tc-export AR
|
||||
|
||||
econf "${myconf[@]}"
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
emake
|
||||
|
||||
if use plugins ; then
|
||||
emake -C examples/loadables all others
|
||||
fi
|
||||
}
|
||||
|
||||
src_install() {
|
||||
local d f
|
||||
|
||||
default
|
||||
|
||||
dodir /bin
|
||||
mv "${ED}"/usr/bin/bash "${ED}"/bin/ || die
|
||||
dosym bash /bin/rbash
|
||||
|
||||
insinto /etc/bash
|
||||
doins "${FILESDIR}"/bash_logout
|
||||
doins "$(prefixify_ro "${FILESDIR}"/bashrc)"
|
||||
|
||||
keepdir /etc/bash/bashrc.d
|
||||
|
||||
insinto /etc/skel
|
||||
for f in bash{_logout,_profile,rc} ; do
|
||||
newins "${FILESDIR}"/dot-${f} .${f}
|
||||
done
|
||||
|
||||
local sed_args=(
|
||||
-e 's:#GNU#@::'
|
||||
-e '/#@/d'
|
||||
)
|
||||
|
||||
if ! use readline ; then
|
||||
# bug #432338
|
||||
sed_args+=(
|
||||
-e '/^shopt -s histappend/s:^:#:'
|
||||
-e 's:use_color=true:use_color=false:'
|
||||
)
|
||||
fi
|
||||
|
||||
sed -i \
|
||||
"${sed_args[@]}" \
|
||||
"${ED}"/etc/skel/.bashrc \
|
||||
"${ED}"/etc/bash/bashrc || die
|
||||
|
||||
if use plugins ; then
|
||||
exeinto /usr/$(get_libdir)/bash
|
||||
doexe $(echo examples/loadables/*.o | sed 's:\.o::g')
|
||||
|
||||
insinto /usr/include/bash-plugins
|
||||
doins *.h builtins/*.h include/*.h lib/{glob/glob.h,tilde/tilde.h}
|
||||
fi
|
||||
|
||||
if use examples ; then
|
||||
for d in examples/{functions,misc,scripts,startup-files} ; do
|
||||
exeinto /usr/share/doc/${PF}/${d}
|
||||
docinto ${d}
|
||||
for f in ${d}/* ; do
|
||||
if [[ ${f##*/} != PERMISSION ]] && [[ ${f##*/} != *README ]] ; then
|
||||
doexe ${f}
|
||||
else
|
||||
dodoc ${f}
|
||||
fi
|
||||
done
|
||||
done
|
||||
fi
|
||||
|
||||
# Install bash_builtins.1 and rbash.1
|
||||
emake -C doc DESTDIR="${D}" install_builtins
|
||||
sed 's:bash\.1:man1/&:' doc/rbash.1 > "${T}"/rbash.1 || die
|
||||
doman "${T}"/rbash.1
|
||||
|
||||
newdoc CWRU/changelog ChangeLog
|
||||
dosym bash.info /usr/share/info/bashref.info
|
||||
}
|
||||
|
||||
pkg_preinst() {
|
||||
if [[ -e ${EROOT}/etc/bashrc ]] && [[ ! -d ${EROOT}/etc/bash ]] ; then
|
||||
mkdir -p "${EROOT}"/etc/bash
|
||||
mv -f "${EROOT}"/etc/bashrc "${EROOT}"/etc/bash/
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
# If /bin/sh does not exist, provide it
|
||||
if [[ ! -e ${EROOT}/bin/sh ]] ; then
|
||||
ln -sf bash "${EROOT}"/bin/sh
|
||||
fi
|
||||
}
|
@ -1,375 +0,0 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/chetramey.asc
|
||||
inherit flag-o-matic toolchain-funcs prefix verify-sig
|
||||
|
||||
# Uncomment if we have a patchset
|
||||
#GENTOO_PATCH_DEV="sam"
|
||||
#GENTOO_PATCH_VER="${PV}"
|
||||
|
||||
# Official patchlevel
|
||||
# See ftp://ftp.cwru.edu/pub/bash/bash-5.1-patches/
|
||||
PLEVEL="${PV##*_p}"
|
||||
MY_PV="${PV/_p*}"
|
||||
MY_PV="${MY_PV/_/-}"
|
||||
MY_P="${PN}-${MY_PV}"
|
||||
MY_PATCHES=()
|
||||
|
||||
is_release() {
|
||||
case ${PV} in
|
||||
9999|*_alpha*|*_beta*|*_rc*)
|
||||
return 1
|
||||
;;
|
||||
*)
|
||||
return 0
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
[[ ${PV} != *_p* ]] && PLEVEL=0
|
||||
|
||||
# The version of readline this bash normally ships with.
|
||||
# Note: right now, we don't use the system copy of readline for bash for non-releases.
|
||||
READLINE_VER="8.2_p1"
|
||||
|
||||
DESCRIPTION="The standard GNU Bourne again shell"
|
||||
HOMEPAGE="https://tiswww.case.edu/php/chet/bash/bashtop.html https://git.savannah.gnu.org/cgit/bash.git"
|
||||
|
||||
if [[ ${PV} == 9999 ]] ; then
|
||||
EGIT_REPO_URI="https://git.savannah.gnu.org/git/bash.git"
|
||||
EGIT_BRANCH=devel
|
||||
inherit git-r3
|
||||
elif is_release ; then
|
||||
SRC_URI="mirror://gnu/bash/${MY_P}.tar.gz"
|
||||
SRC_URI+=" verify-sig? ( mirror://gnu/bash/${MY_P}.tar.gz.sig )"
|
||||
|
||||
if [[ ${PLEVEL} -gt 0 ]] ; then
|
||||
# bash-5.1 -> bash51
|
||||
my_p=${PN}$(ver_rs 1-2 '' $(ver_cut 1-2))
|
||||
|
||||
patch_url=
|
||||
my_patch_index=
|
||||
|
||||
upstream_url_base="mirror://gnu/bash"
|
||||
mirror_url_base="ftp://ftp.cwru.edu/pub/bash"
|
||||
|
||||
for ((my_patch_index=1; my_patch_index <= ${PLEVEL} ; my_patch_index++)) ; do
|
||||
printf -v mangled_patch_ver ${my_p}-%03d ${my_patch_index}
|
||||
patch_url="${upstream_url_base}/${MY_P}-patches/${mangled_patch_ver}"
|
||||
|
||||
SRC_URI+=" ${patch_url}"
|
||||
SRC_URI+=" verify-sig? ( ${patch_url}.sig )"
|
||||
|
||||
# Add in the mirror URL too.
|
||||
SRC_URI+=" ${patch_url/${upstream_url_base}/${mirror_url_base}}"
|
||||
SRC_URI+=" verify-sig? ( ${patch_url/${upstream_url_base}/${mirror_url_base}}.sig )"
|
||||
|
||||
MY_PATCHES+=( "${DISTDIR}"/${mangled_patch_ver} )
|
||||
done
|
||||
|
||||
unset my_p patch_url my_patch_index upstream_url_base mirror_url_base
|
||||
fi
|
||||
else
|
||||
SRC_URI="mirror://gnu/${PN}/${MY_P}.tar.gz ftp://ftp.cwru.edu/pub/bash/${MY_P}.tar.gz"
|
||||
SRC_URI+=" verify-sig? ( mirror://gnu/${PN}/${MY_P}.tar.gz.sig ftp://ftp.cwru.edu/pub/bash/${MY_P}.tar.gz.sig )"
|
||||
fi
|
||||
|
||||
if [[ -n ${GENTOO_PATCH_VER} ]] ; then
|
||||
SRC_URI+=" https://dev.gentoo.org/~${GENTOO_PATCH_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${GENTOO_PATCH_VER}-patches.tar.xz"
|
||||
fi
|
||||
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
LICENSE="GPL-3+"
|
||||
SLOT="0"
|
||||
if is_release ; then
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
||||
fi
|
||||
IUSE="afs bashlogger examples mem-scramble +net nls plugins pgo +readline"
|
||||
|
||||
DEPEND="
|
||||
>=sys-libs/ncurses-5.2-r2:=
|
||||
nls? ( virtual/libintl )
|
||||
"
|
||||
if is_release ; then
|
||||
DEPEND+=" readline? ( >=sys-libs/readline-${READLINE_VER}:= )"
|
||||
fi
|
||||
RDEPEND="
|
||||
${DEPEND}
|
||||
"
|
||||
# We only need bison (yacc) when the .y files get patched (bash42-005, bash51-011)
|
||||
BDEPEND="
|
||||
pgo? ( dev-util/gperf )
|
||||
verify-sig? ( sec-keys/openpgp-keys-chetramey )
|
||||
"
|
||||
|
||||
# EAPI 8 tries to append it but it doesn't exist here
|
||||
QA_CONFIGURE_OPTIONS="--disable-static"
|
||||
|
||||
PATCHES=(
|
||||
#"${WORKDIR}"/${PN}-${GENTOO_PATCH_VER}/
|
||||
|
||||
# Patches from Chet sent to bash-bug ml
|
||||
"${FILESDIR}"/${PN}-5.0-syslog-history-extern.patch
|
||||
"${FILESDIR}"/${PN}-5.2_p15-random-ub.patch
|
||||
"${FILESDIR}"/${PN}-5.2_p15-configure-clang16.patch
|
||||
"${FILESDIR}"/${PN}-5.2_p21-wpointer-to-int.patch
|
||||
"${FILESDIR}"/${PN}-5.2_p21-configure-strtold.patch
|
||||
"${FILESDIR}"/${PN}-5.2_p26-memory-leaks.patch
|
||||
)
|
||||
|
||||
pkg_setup() {
|
||||
# bug #7332
|
||||
if is-flag -malign-double ; then
|
||||
eerror "Detected bad CFLAGS '-malign-double'. Do not use this"
|
||||
eerror "as it breaks LFS (struct stat64) on x86."
|
||||
die "remove -malign-double from your CFLAGS mr ricer"
|
||||
fi
|
||||
|
||||
if use bashlogger ; then
|
||||
ewarn "The logging patch should ONLY be used in restricted (i.e. honeypot) envs."
|
||||
ewarn "This will log ALL output you enter into the shell, you have been warned."
|
||||
fi
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if [[ ${PV} == 9999 ]] ; then
|
||||
git-r3_src_unpack
|
||||
else
|
||||
if use verify-sig ; then
|
||||
verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.gz{,.sig}
|
||||
|
||||
local patch
|
||||
for patch in "${MY_PATCHES[@]}" ; do
|
||||
verify-sig_verify_detached ${patch}{,.sig}
|
||||
done
|
||||
fi
|
||||
|
||||
unpack ${MY_P}.tar.gz
|
||||
|
||||
if [[ -n ${GENTOO_PATCH_VER} ]] ; then
|
||||
unpack ${PN}-${GENTOO_PATCH_VER}-patches.tar.xz
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
# Include official patches
|
||||
[[ ${PLEVEL} -gt 0 ]] && eapply -p0 "${MY_PATCHES[@]}"
|
||||
|
||||
# Clean out local libs so we know we use system ones w/releases.
|
||||
if is_release ; then
|
||||
rm -rf lib/{readline,termcap}/* || die
|
||||
touch lib/{readline,termcap}/Makefile.in || die # for config.status
|
||||
sed -ri -e 's:\$[{(](RL|HIST)_LIBSRC[)}]/[[:alpha:]_-]*\.h::g' Makefile.in || die
|
||||
fi
|
||||
|
||||
# Prefixify hardcoded path names. No-op for non-prefix.
|
||||
hprefixify pathnames.h.in
|
||||
|
||||
# Avoid regenerating docs after patches, bug #407985
|
||||
sed -i -r '/^(HS|RL)USER/s:=.*:=:' doc/Makefile.in || die
|
||||
touch -r . doc/* || die
|
||||
|
||||
# Sometimes hangs (more noticeable w/ pgo), bug #907403.
|
||||
rm tests/run-jobs || die
|
||||
|
||||
eapply -p0 "${PATCHES[@]}"
|
||||
eapply_user
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
# Upstream only test with Bison and require GNUisms like YYEOF and
|
||||
# YYERRCODE. The former at least may be in POSIX soon:
|
||||
# https://www.austingroupbugs.net/view.php?id=1269.
|
||||
# configure warns on use of non-Bison but doesn't abort. The result
|
||||
# may misbehave at runtime.
|
||||
unset YACC
|
||||
|
||||
local myconf=(
|
||||
--disable-profiling
|
||||
|
||||
# Force linking with system curses ... the bundled termcap lib
|
||||
# sucks bad compared to ncurses. For the most part, ncurses
|
||||
# is here because readline needs it. But bash itself calls
|
||||
# ncurses in one or two small places :(.
|
||||
--with-curses
|
||||
|
||||
$(use_enable mem-scramble)
|
||||
$(use_enable net net-redirections)
|
||||
$(use_enable readline)
|
||||
$(use_enable readline bang-history)
|
||||
$(use_enable readline history)
|
||||
$(use_with afs)
|
||||
$(use_with mem-scramble bash-malloc)
|
||||
)
|
||||
|
||||
# For descriptions of these, see config-top.h
|
||||
# bashrc/#26952 bash_logout/#90488 ssh/#24762 mktemp/#574426
|
||||
append-cppflags \
|
||||
-DDEFAULT_PATH_VALUE=\'\""${EPREFIX}"/usr/local/sbin:"${EPREFIX}"/usr/local/bin:"${EPREFIX}"/usr/sbin:"${EPREFIX}"/usr/bin:"${EPREFIX}"/sbin:"${EPREFIX}"/bin\"\' \
|
||||
-DSTANDARD_UTILS_PATH=\'\""${EPREFIX}"/bin:"${EPREFIX}"/usr/bin:"${EPREFIX}"/sbin:"${EPREFIX}"/usr/sbin\"\' \
|
||||
-DSYS_BASHRC=\'\""${EPREFIX}"/etc/bash/bashrc\"\' \
|
||||
-DSYS_BASH_LOGOUT=\'\""${EPREFIX}"/etc/bash/bash_logout\"\' \
|
||||
-DNON_INTERACTIVE_LOGIN_SHELLS \
|
||||
-DSSH_SOURCE_BASHRC \
|
||||
$(use bashlogger && echo -DSYSLOG_HISTORY)
|
||||
|
||||
# Don't even think about building this statically without
|
||||
# reading bug #7714 first. If you still build it statically,
|
||||
# don't come crying to us with bugs ;).
|
||||
#use static && export LDFLAGS="${LDFLAGS} -static"
|
||||
use nls || myconf+=( --disable-nls )
|
||||
|
||||
if is_release ; then
|
||||
# Historically, we always used the builtin readline, but since
|
||||
# our handling of SONAME upgrades has gotten much more stable
|
||||
# in the PM (and the readline ebuild itself preserves the old
|
||||
# libs during upgrades), linking against the system copy should
|
||||
# be safe.
|
||||
# Exact cached version here doesn't really matter as long as it
|
||||
# is at least what's in the DEPEND up above.
|
||||
export ac_cv_rl_version=${READLINE_VER%%_*}
|
||||
|
||||
# Use system readline only with released versions.
|
||||
myconf+=( --with-installed-readline=. )
|
||||
fi
|
||||
|
||||
if use plugins ; then
|
||||
append-ldflags -Wl,-rpath,"${EPREFIX}"/usr/$(get_libdir)/bash
|
||||
else
|
||||
# Disable the plugins logic by hand since bash doesn't
|
||||
# provide a way of doing it.
|
||||
export ac_cv_func_dl{close,open,sym}=no \
|
||||
ac_cv_lib_dl_dlopen=no ac_cv_header_dlfcn_h=no
|
||||
|
||||
sed -i \
|
||||
-e '/LOCAL_LDFLAGS=/s:-rdynamic::' \
|
||||
configure || die
|
||||
fi
|
||||
|
||||
# bug #444070
|
||||
tc-export AR
|
||||
|
||||
econf "${myconf[@]}"
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
# -fprofile-partial-training because upstream note the test suite isn't super comprehensive
|
||||
# See https://documentation.suse.com/sbp/all/html/SBP-GCC-10/index.html#sec-gcc10-pgo
|
||||
local pgo_generate_flags=$(usev pgo "-fprofile-update=atomic -fprofile-dir=${T}/pgo -fprofile-generate=${T}/pgo $(test-flags-CC -fprofile-partial-training)")
|
||||
local pgo_use_flags=$(usev pgo "-fprofile-use=${T}/pgo -fprofile-dir=${T}/pgo $(test-flags-CC -fprofile-partial-training)")
|
||||
|
||||
emake CFLAGS="${CFLAGS} ${pgo_generate_flags}"
|
||||
use plugins && emake -C examples/loadables CFLAGS="${CFLAGS} ${pgo_generate_flags}" all others
|
||||
|
||||
# Build Bash and run its tests to generate profiles.
|
||||
if use pgo ; then
|
||||
# Used in test suite.
|
||||
unset A
|
||||
|
||||
emake CFLAGS="${CFLAGS} ${pgo_generate_flags}" -k check
|
||||
|
||||
if tc-is-clang; then
|
||||
llvm-profdata merge "${T}"/pgo --output="${T}"/pgo/default.profdata || die
|
||||
fi
|
||||
|
||||
# Rebuild Bash using the profiling data we just generated.
|
||||
emake clean
|
||||
emake CFLAGS="${CFLAGS} ${pgo_use_flags}"
|
||||
use plugins && emake -C examples/loadables CFLAGS="${CFLAGS} ${pgo_use_flags}" all others
|
||||
fi
|
||||
}
|
||||
|
||||
src_test() {
|
||||
# Used in test suite.
|
||||
unset A
|
||||
|
||||
default
|
||||
}
|
||||
|
||||
src_install() {
|
||||
local d f
|
||||
|
||||
default
|
||||
|
||||
dodir /bin
|
||||
mv "${ED}"/usr/bin/bash "${ED}"/bin/ || die
|
||||
dosym bash /bin/rbash
|
||||
|
||||
insinto /etc/bash
|
||||
doins "${FILESDIR}"/bash_logout
|
||||
doins "$(prefixify_ro "${FILESDIR}"/bashrc)"
|
||||
|
||||
keepdir /etc/bash/bashrc.d
|
||||
|
||||
insinto /etc/skel
|
||||
for f in bash{_logout,_profile,rc} ; do
|
||||
newins "${FILESDIR}"/dot-${f} .${f}
|
||||
done
|
||||
|
||||
local sed_args=(
|
||||
-e 's:#GNU#@::'
|
||||
-e '/#@/d'
|
||||
)
|
||||
|
||||
if ! use readline ; then
|
||||
# bug #432338
|
||||
sed_args+=(
|
||||
-e '/^shopt -s histappend/s:^:#:'
|
||||
-e 's:use_color=true:use_color=false:'
|
||||
)
|
||||
fi
|
||||
|
||||
sed -i \
|
||||
"${sed_args[@]}" \
|
||||
"${ED}"/etc/skel/.bashrc \
|
||||
"${ED}"/etc/bash/bashrc || die
|
||||
|
||||
if use plugins ; then
|
||||
exeinto /usr/$(get_libdir)/bash
|
||||
doexe $(echo examples/loadables/*.o | sed 's:\.o::g')
|
||||
|
||||
insinto /usr/include/bash-plugins
|
||||
doins *.h builtins/*.h include/*.h lib/{glob/glob.h,tilde/tilde.h}
|
||||
fi
|
||||
|
||||
if use examples ; then
|
||||
for d in examples/{functions,misc,scripts,startup-files} ; do
|
||||
exeinto /usr/share/doc/${PF}/${d}
|
||||
docinto ${d}
|
||||
for f in ${d}/* ; do
|
||||
if [[ ${f##*/} != PERMISSION ]] && [[ ${f##*/} != *README ]] ; then
|
||||
doexe ${f}
|
||||
else
|
||||
dodoc ${f}
|
||||
fi
|
||||
done
|
||||
done
|
||||
fi
|
||||
|
||||
# Install bash_builtins.1 and rbash.1
|
||||
emake -C doc DESTDIR="${D}" install_builtins
|
||||
sed 's:bash\.1:man1/&:' doc/rbash.1 > "${T}"/rbash.1 || die
|
||||
doman "${T}"/rbash.1
|
||||
|
||||
newdoc CWRU/changelog ChangeLog
|
||||
dosym bash.info /usr/share/info/bashref.info
|
||||
}
|
||||
|
||||
pkg_preinst() {
|
||||
if [[ -e ${EROOT}/etc/bashrc ]] && [[ ! -d ${EROOT}/etc/bash ]] ; then
|
||||
mkdir -p "${EROOT}"/etc/bash
|
||||
mv -f "${EROOT}"/etc/bashrc "${EROOT}"/etc/bash/
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
# If /bin/sh does not exist, provide it
|
||||
if [[ ! -e ${EROOT}/bin/sh ]] ; then
|
||||
ln -sf bash "${EROOT}"/bin/sh
|
||||
fi
|
||||
}
|
Binary file not shown.
@ -1,30 +0,0 @@
|
||||
# Copyright 1999-2019 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
DESCRIPTION="UTF-8 to postscript converter"
|
||||
HOMEPAGE="http://www.pps.jussieu.fr/~jch/software/cedilla/"
|
||||
SRC_URI="http://www.pps.jussieu.fr/~jch/software/files/${P}.tar.gz"
|
||||
|
||||
KEYWORDS="amd64 x86"
|
||||
SLOT="0"
|
||||
LICENSE="GPL-2"
|
||||
|
||||
DEPEND="dev-lisp/clisp"
|
||||
RDEPEND="${DEPEND}"
|
||||
|
||||
PATCHES=( "${FILESDIR}"/cedilla-gentoo-r1.patch )
|
||||
|
||||
src_compile() {
|
||||
./compile-cedilla || die "Compile failed."
|
||||
}
|
||||
|
||||
src_install() {
|
||||
sed "s#${ED%/}##g" -i cedilla || die "sed failed"
|
||||
dodir /usr/share/man/man1/
|
||||
|
||||
./install-cedilla || die "Install failed."
|
||||
|
||||
einstalldocs
|
||||
}
|
@ -1,3 +1,4 @@
|
||||
DIST ghostscript-10.02.1.tar.xz 68017088 BLAKE2B b491473f0b3d50121e4373e21af3d8cdf55d9ca4390b240c4cb88d0d44e707e32570a7f1f05cb656d1b65443fcd7e37f5eab404d72a20f83d8fd87370a585467 SHA512 ee0f754c1bd8a18428ad14eaa3ead80ff8b96275af5012e7a8384f1f10490da056eec9ae3cc791a7a13a24e16e54df5bccdd109c7d53a14534bbd7360a300b11
|
||||
DIST ghostscript-10.03.0.tar.xz 68041176 BLAKE2B c64e0fc9dd290b81e61793671e8645f16b04070685f6ab9d35a60cb910d7504e1e686525af8b74121ae31a5b344e2332efd8bdf99f2a4c5586bff747b8df78d7 SHA512 74d7da586eefbf3fb3c085bb4d2b73ee667fd0ae9cff73ece613c77c443148b847086f91802124baf91ac35cdc83be07199799378def92c8fbd96ced7d0ee9a8
|
||||
DIST ghostscript-10.03.1.tar.xz 68048612 BLAKE2B 991e81c4a9f8459220f6af988fb533cc3c2393fef0c57b35da5685fb6f8b0e76af00457f9b0e552ea241b272cdfaa90cf4a06d6cb1008b55efe782faa14c90da SHA512 59e071cd23aed246b51317d3cccd9ccf8e1e84c4ecf9b22fb938e561eff42cec61915b0bdd96a313a3ea27750579c54ca0d0862b65edd306a621731c0063ffd3
|
||||
DIST ghostscript-gpl-10.0-patches.tar.xz 2980 BLAKE2B e2c20195b153bf45f374e84d91a4df1885a3696f4061340a0a2ac5f586b9723b45eade343ad0e5760e66616624b5f7dad82d62747040493d7ca40c13329b2df2 SHA512 dac26d7f75bbdc2a56891db7d607c2120717fdf8b1cd55c53ed3be09de3e0a62338585f4dac74496d634ce03ecb2212f386187e72b5e6b59debf8d07694e0c83
|
||||
|
@ -0,0 +1,196 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit autotools flag-o-matic toolchain-funcs
|
||||
|
||||
MY_PN=${PN/-gpl}
|
||||
MY_P="${MY_PN}-${PV/_}"
|
||||
|
||||
# Use https://gitweb.gentoo.org/proj/codec/ghostscript-gpl-patches.git/ for patches
|
||||
# See 'index' branch for README
|
||||
MY_PATCHSET="ghostscript-gpl-10.0-patches.tar.xz"
|
||||
|
||||
DESCRIPTION="Interpreter for the PostScript language and PDF"
|
||||
HOMEPAGE="https://ghostscript.com/ https://git.ghostscript.com/?p=ghostpdl.git;a=summary"
|
||||
SRC_URI="https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/${PV}/${MY_P}.tar.xz"
|
||||
if [[ -n "${MY_PATCHSET}" ]] ; then
|
||||
SRC_URI+=" https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${MY_PATCHSET}"
|
||||
fi
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
LICENSE="AGPL-3 CPL-1.0"
|
||||
SLOT="0/$(ver_cut 1-2)"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
||||
IUSE="cups dbus gtk l10n_de static-libs unicode X"
|
||||
|
||||
LANGS="ja ko zh-CN zh-TW"
|
||||
for X in ${LANGS} ; do
|
||||
IUSE="${IUSE} l10n_${X}"
|
||||
done
|
||||
|
||||
DEPEND="
|
||||
app-text/libpaper:=
|
||||
media-libs/fontconfig
|
||||
>=media-libs/freetype-2.4.9:2=
|
||||
>=media-libs/jbig2dec-0.19:=
|
||||
>=media-libs/lcms-2.6:2
|
||||
>=media-libs/libpng-1.6.2:=
|
||||
media-libs/libjpeg-turbo:=
|
||||
>=media-libs/openjpeg-2.1.0:2=
|
||||
>=media-libs/tiff-4.0.1:=
|
||||
>=sys-libs/zlib-1.2.7
|
||||
cups? ( >=net-print/cups-1.3.8 )
|
||||
dbus? ( sys-apps/dbus )
|
||||
gtk? ( x11-libs/gtk+:3 )
|
||||
unicode? ( net-dns/libidn:= )
|
||||
X? ( x11-libs/libXt x11-libs/libXext )
|
||||
"
|
||||
BDEPEND="virtual/pkgconfig"
|
||||
# bug #844115 for newer poppler-data dep
|
||||
RDEPEND="
|
||||
${DEPEND}
|
||||
>=app-text/poppler-data-0.4.11-r2
|
||||
>=media-fonts/urw-fonts-2.4.9
|
||||
l10n_ja? ( media-fonts/kochi-substitute )
|
||||
l10n_ko? ( media-fonts/baekmuk-fonts )
|
||||
l10n_zh-CN? ( media-fonts/arphicfonts )
|
||||
l10n_zh-TW? ( media-fonts/arphicfonts )
|
||||
"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${PN}-10.03.0-c99.patch
|
||||
)
|
||||
|
||||
src_prepare() {
|
||||
if [[ -n ${MY_PATCHSET} ]] ; then
|
||||
# apply various patches, many borrowed from Fedora
|
||||
# https://src.fedoraproject.org/rpms/ghostscript
|
||||
# and Debian
|
||||
# https://salsa.debian.org/printing-team/ghostscript/-/tree/debian/latest/debian/patches
|
||||
eapply "${WORKDIR}"/${MY_PATCHSET%%.tar*}
|
||||
fi
|
||||
|
||||
default
|
||||
|
||||
# Remove internal copies of various libraries
|
||||
rm -r cups/libs || die
|
||||
rm -r freetype || die
|
||||
rm -r jbig2dec || die
|
||||
rm -r jpeg || die
|
||||
rm -r lcms2mt || die
|
||||
rm -r libpng || die
|
||||
rm -r tiff || die
|
||||
rm -r zlib || die
|
||||
rm -r openjpeg || die
|
||||
# Remove internal CMaps (CMaps from poppler-data are used instead)
|
||||
rm -r Resource/CMap || die
|
||||
|
||||
if ! use gtk ; then
|
||||
sed -e "s:\$(GSSOX)::" \
|
||||
-e "s:.*\$(GSSOX_XENAME)$::" \
|
||||
-i base/unix-dll.mak || die "sed failed"
|
||||
fi
|
||||
|
||||
# Force the include dirs to a neutral location.
|
||||
sed -e "/^ZLIBDIR=/s:=.*:=${T}:" \
|
||||
-i configure.ac || die
|
||||
# Some files depend on zlib.h directly. Redirect them. #573248
|
||||
# Also make sure to not define OPJ_STATIC to avoid linker errors due to
|
||||
# hidden symbols (https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=203327#c1)
|
||||
sed -e '/^zlib_h/s:=.*:=:' \
|
||||
-e 's|-DOPJ_STATIC ||' \
|
||||
-i base/lib.mak || die
|
||||
|
||||
# Search path fix
|
||||
# put LDFLAGS after BINDIR, bug #383447
|
||||
sed -e "s:\$\(gsdatadir\)/lib:@datarootdir@/ghostscript/${PV}/$(get_libdir):" \
|
||||
-e "s:exdir=.*:exdir=@datarootdir@/doc/${PF}/examples:" \
|
||||
-e "s:docdir=.*:docdir=@datarootdir@/doc/${PF}/html:" \
|
||||
-e "s:GS_DOCDIR=.*:GS_DOCDIR=@datarootdir@/doc/${PF}/html:" \
|
||||
-e 's:-L$(BINDIR):& $(LDFLAGS):g' \
|
||||
-i Makefile.in base/*.mak || die "sed failed"
|
||||
|
||||
# Remove incorrect symlink, bug 590384
|
||||
rm ijs/ltmain.sh || die
|
||||
eautoreconf
|
||||
|
||||
cd ijs || die
|
||||
eautoreconf
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
# Unsupported upstream, bug #884841
|
||||
filter-lto
|
||||
|
||||
# bug #899952
|
||||
append-lfs-flags
|
||||
|
||||
local FONTPATH
|
||||
for path in \
|
||||
"${EPREFIX}"/usr/share/fonts/urw-fonts \
|
||||
"${EPREFIX}"/usr/share/fonts/Type1 \
|
||||
"${EPREFIX}"/usr/share/fonts
|
||||
do
|
||||
FONTPATH="${FONTPATH}${FONTPATH:+:}${EPREFIX}${path}"
|
||||
done
|
||||
|
||||
# Do not add --enable-dynamic here, it's not supported fully upstream
|
||||
# https://bugs.ghostscript.com/show_bug.cgi?id=705895
|
||||
# bug #884707
|
||||
#
|
||||
# leptonica and tesseract are bundled but modified upstream, like in
|
||||
# mujs/mupdf.
|
||||
PKGCONFIG=$(type -P $(tc-getPKG_CONFIG)) econf \
|
||||
--enable-freetype \
|
||||
--enable-fontconfig \
|
||||
--enable-openjpeg \
|
||||
--disable-compile-inits \
|
||||
--with-drivers=ALL \
|
||||
--with-fontpath="${FONTPATH}" \
|
||||
--with-ijs \
|
||||
--with-jbig2dec \
|
||||
--with-libpaper \
|
||||
--with-system-libtiff \
|
||||
$(use_enable cups) \
|
||||
$(use_enable dbus) \
|
||||
$(use_enable gtk) \
|
||||
$(use_with cups pdftoraster) \
|
||||
$(use_with unicode libidn) \
|
||||
$(use_with X x) \
|
||||
DARWIN_LDFLAGS_SO_PREFIX="${EPREFIX}/usr/lib/"
|
||||
|
||||
cd "${S}/ijs" || die
|
||||
econf \
|
||||
--enable-shared \
|
||||
$(use_enable static-libs static)
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
emake so all
|
||||
emake -C ijs
|
||||
}
|
||||
|
||||
src_install() {
|
||||
emake DESTDIR="${D}" install-so install
|
||||
|
||||
# move gsc to gs, bug #343447
|
||||
# gsc collides with gambit, bug #253064
|
||||
mv -f "${ED}"/usr/bin/{gsc,gs} || die
|
||||
|
||||
cd "${S}/ijs" || die
|
||||
emake DESTDIR="${D}" install
|
||||
|
||||
# Sometimes the upstream versioning deviates from the tarball(!)
|
||||
# bug #844115#c32
|
||||
local my_gs_version=$(find "${ED}"/usr/share/ghostscript/ -maxdepth 1 -mindepth 1 -type d || die)
|
||||
my_gs_version=${my_gs_version##*/}
|
||||
|
||||
# Install the CMaps from poppler-data properly, bug #409361
|
||||
dosym -r /usr/share/poppler/cMaps /usr/share/ghostscript/${my_gs_version}/Resource/CMap
|
||||
|
||||
if ! use static-libs; then
|
||||
find "${ED}" -name '*.la' -delete || die
|
||||
fi
|
||||
}
|
@ -0,0 +1,302 @@
|
||||
# Copyright 2021-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
CRATES="
|
||||
addr2line@0.21.0
|
||||
adler@1.0.2
|
||||
aho-corasick@1.1.3
|
||||
ammonia@4.0.0
|
||||
android-tzdata@0.1.1
|
||||
android_system_properties@0.1.5
|
||||
anstream@0.6.14
|
||||
anstyle-parse@0.2.4
|
||||
anstyle-query@1.0.3
|
||||
anstyle-wincon@3.0.3
|
||||
anstyle@1.0.7
|
||||
anyhow@1.0.83
|
||||
assert_cmd@2.0.14
|
||||
autocfg@1.3.0
|
||||
backtrace@0.3.71
|
||||
base64@0.21.7
|
||||
bitflags@1.3.2
|
||||
bitflags@2.5.0
|
||||
bit-set@0.5.3
|
||||
bit-vec@0.6.3
|
||||
block-buffer@0.10.4
|
||||
bstr@1.9.1
|
||||
bumpalo@3.16.0
|
||||
byteorder@1.5.0
|
||||
bytes@1.6.0
|
||||
cc@1.0.97
|
||||
cfg-if@1.0.0
|
||||
chrono@0.4.38
|
||||
clap@4.5.4
|
||||
clap_builder@4.5.2
|
||||
clap_complete@4.5.2
|
||||
clap_lex@0.7.0
|
||||
colorchoice@1.0.1
|
||||
core-foundation-sys@0.8.6
|
||||
cpufeatures@0.2.12
|
||||
crossbeam-channel@0.5.12
|
||||
crossbeam-deque@0.8.5
|
||||
crossbeam-epoch@0.9.18
|
||||
crossbeam-utils@0.8.19
|
||||
crypto-common@0.1.6
|
||||
data-encoding@2.6.0
|
||||
dbus@0.9.7
|
||||
difflib@0.4.0
|
||||
diff@0.1.13
|
||||
digest@0.10.7
|
||||
doc-comment@0.3.3
|
||||
elasticlunr-rs@3.0.2
|
||||
env_filter@0.1.0
|
||||
env_logger@0.11.3
|
||||
equivalent@1.0.1
|
||||
errno@0.3.9
|
||||
fastrand@2.1.0
|
||||
filetime@0.2.23
|
||||
float-cmp@0.9.0
|
||||
fnv@1.0.7
|
||||
form_urlencoded@1.2.1
|
||||
fsevent-sys@4.1.0
|
||||
futf@0.1.5
|
||||
futures-channel@0.3.30
|
||||
futures-core@0.3.30
|
||||
futures-macro@0.3.30
|
||||
futures-sink@0.3.30
|
||||
futures-task@0.3.30
|
||||
futures-util@0.3.30
|
||||
generic-array@0.14.7
|
||||
getrandom@0.2.15
|
||||
gimli@0.28.1
|
||||
globset@0.4.14
|
||||
h2@0.3.26
|
||||
handlebars@5.1.2
|
||||
hashbrown@0.14.5
|
||||
headers-core@0.2.0
|
||||
headers@0.3.9
|
||||
hermit-abi@0.3.9
|
||||
html5ever@0.26.0
|
||||
html5ever@0.27.0
|
||||
httparse@1.8.0
|
||||
httpdate@1.0.3
|
||||
http-body@0.4.6
|
||||
http@0.2.12
|
||||
http@1.1.0
|
||||
humantime@2.1.0
|
||||
hyper@0.14.28
|
||||
iana-time-zone-haiku@0.1.2
|
||||
iana-time-zone@0.1.60
|
||||
idna@0.5.0
|
||||
ignore@0.4.22
|
||||
indexmap@2.2.6
|
||||
inotify-sys@0.1.5
|
||||
inotify@0.9.6
|
||||
is_terminal_polyfill@1.70.0
|
||||
itoa@1.0.11
|
||||
js-sys@0.3.69
|
||||
kqueue-sys@1.0.4
|
||||
kqueue@1.0.8
|
||||
libc@0.2.154
|
||||
libdbus-sys@0.2.5
|
||||
linux-raw-sys@0.4.13
|
||||
lock_api@0.4.12
|
||||
log@0.4.21
|
||||
mac@0.1.1
|
||||
maplit@1.0.2
|
||||
markup5ever@0.11.0
|
||||
markup5ever@0.12.1
|
||||
markup5ever_rcdom@0.2.0
|
||||
memchr@2.7.2
|
||||
mime@0.3.17
|
||||
mime_guess@2.0.4
|
||||
miniz_oxide@0.7.2
|
||||
mio@0.8.11
|
||||
new_debug_unreachable@1.0.6
|
||||
normalize-line-endings@0.3.0
|
||||
normpath@1.2.0
|
||||
notify-debouncer-mini@0.4.1
|
||||
notify@6.1.1
|
||||
num-traits@0.2.19
|
||||
num_cpus@1.16.0
|
||||
object@0.32.2
|
||||
once_cell@1.19.0
|
||||
opener@0.7.0
|
||||
parking_lot@0.12.2
|
||||
parking_lot_core@0.9.10
|
||||
pathdiff@0.2.1
|
||||
percent-encoding@2.3.1
|
||||
pest@2.7.10
|
||||
pest_derive@2.7.10
|
||||
pest_generator@2.7.10
|
||||
pest_meta@2.7.10
|
||||
phf@0.10.1
|
||||
phf@0.11.2
|
||||
phf_codegen@0.10.0
|
||||
phf_codegen@0.11.2
|
||||
phf_generator@0.10.0
|
||||
phf_generator@0.11.2
|
||||
phf_shared@0.10.0
|
||||
phf_shared@0.11.2
|
||||
pin-project-internal@1.1.5
|
||||
pin-project-lite@0.2.14
|
||||
pin-project@1.1.5
|
||||
pin-utils@0.1.0
|
||||
pkg-config@0.3.30
|
||||
ppv-lite86@0.2.17
|
||||
precomputed-hash@0.1.1
|
||||
predicates-core@1.0.6
|
||||
predicates-tree@1.0.9
|
||||
predicates@3.1.0
|
||||
pretty_assertions@1.4.0
|
||||
proc-macro2@1.0.82
|
||||
pulldown-cmark-escape@0.10.1
|
||||
pulldown-cmark@0.10.3
|
||||
quote@1.0.36
|
||||
rand@0.8.5
|
||||
rand_chacha@0.3.1
|
||||
rand_core@0.6.4
|
||||
redox_syscall@0.4.1
|
||||
redox_syscall@0.5.1
|
||||
regex-automata@0.4.6
|
||||
regex-syntax@0.8.3
|
||||
regex@1.10.4
|
||||
rustc-demangle@0.1.24
|
||||
rustix@0.38.34
|
||||
ryu@1.0.18
|
||||
same-file@1.0.6
|
||||
scoped-tls@1.0.1
|
||||
scopeguard@1.2.0
|
||||
select@0.6.0
|
||||
semver@1.0.23
|
||||
serde@1.0.201
|
||||
serde_derive@1.0.201
|
||||
serde_json@1.0.117
|
||||
serde_urlencoded@0.7.1
|
||||
sha1@0.10.6
|
||||
sha2@0.10.8
|
||||
shlex@1.3.0
|
||||
siphasher@0.3.11
|
||||
slab@0.4.9
|
||||
smallvec@1.13.2
|
||||
socket2@0.5.7
|
||||
string_cache@0.8.7
|
||||
string_cache_codegen@0.5.2
|
||||
strsim@0.11.1
|
||||
syn@1.0.109
|
||||
syn@2.0.63
|
||||
tempfile@3.10.1
|
||||
tendril@0.4.3
|
||||
terminal_size@0.3.0
|
||||
termtree@0.4.1
|
||||
thiserror-impl@1.0.60
|
||||
thiserror@1.0.60
|
||||
tinyvec@1.6.0
|
||||
tinyvec_macros@0.1.1
|
||||
tokio-macros@2.2.0
|
||||
tokio-tungstenite@0.21.0
|
||||
tokio-util@0.7.11
|
||||
tokio@1.37.0
|
||||
toml@0.5.11
|
||||
topological-sort@0.2.2
|
||||
tower-service@0.3.2
|
||||
tracing-core@0.1.32
|
||||
tracing@0.1.40
|
||||
try-lock@0.2.5
|
||||
tungstenite@0.21.0
|
||||
typenum@1.17.0
|
||||
ucd-trie@0.1.6
|
||||
unicase@2.7.0
|
||||
unicode-bidi@0.3.15
|
||||
unicode-ident@1.0.12
|
||||
unicode-normalization@0.1.23
|
||||
url@2.5.0
|
||||
utf8parse@0.2.1
|
||||
utf-8@0.7.6
|
||||
version_check@0.9.4
|
||||
wait-timeout@0.2.0
|
||||
walkdir@2.5.0
|
||||
want@0.3.1
|
||||
warp@0.3.7
|
||||
wasi@0.11.0+wasi-snapshot-preview1
|
||||
wasm-bindgen-backend@0.2.92
|
||||
wasm-bindgen-macro-support@0.2.92
|
||||
wasm-bindgen-macro@0.2.92
|
||||
wasm-bindgen-shared@0.2.92
|
||||
wasm-bindgen@0.2.92
|
||||
winapi-i686-pc-windows-gnu@0.4.0
|
||||
winapi-util@0.1.8
|
||||
winapi-x86_64-pc-windows-gnu@0.4.0
|
||||
winapi@0.3.9
|
||||
windows-core@0.52.0
|
||||
windows-sys@0.48.0
|
||||
windows-sys@0.52.0
|
||||
windows-targets@0.48.5
|
||||
windows-targets@0.52.5
|
||||
windows_aarch64_gnullvm@0.48.5
|
||||
windows_aarch64_gnullvm@0.52.5
|
||||
windows_aarch64_msvc@0.48.5
|
||||
windows_aarch64_msvc@0.52.5
|
||||
windows_i686_gnullvm@0.52.5
|
||||
windows_i686_gnu@0.48.5
|
||||
windows_i686_gnu@0.52.5
|
||||
windows_i686_msvc@0.48.5
|
||||
windows_i686_msvc@0.52.5
|
||||
windows_x86_64_gnullvm@0.48.5
|
||||
windows_x86_64_gnullvm@0.52.5
|
||||
windows_x86_64_gnu@0.48.5
|
||||
windows_x86_64_gnu@0.52.5
|
||||
windows_x86_64_msvc@0.48.5
|
||||
windows_x86_64_msvc@0.52.5
|
||||
xml5ever@0.17.0
|
||||
yansi@0.5.1
|
||||
"
|
||||
inherit cargo toolchain-funcs
|
||||
|
||||
DESCRIPTION="Create a book from markdown files"
|
||||
HOMEPAGE="https://rust-lang.github.io/mdBook/"
|
||||
SRC_URI="
|
||||
https://github.com/rust-lang/mdBook/archive/refs/tags/v${PV}.tar.gz
|
||||
-> ${P}.tar.gz
|
||||
${CARGO_CRATE_URIS}
|
||||
"
|
||||
S="${WORKDIR}/${P/b/B}"
|
||||
|
||||
# CC-BY-4.0/OFL-1.1: embeds fonts inside the executable
|
||||
LICENSE="MPL-2.0 CC-BY-4.0 OFL-1.1"
|
||||
LICENSE+=" Apache-2.0 CC0-1.0 ISC MIT Unicode-DFS-2016" # crates
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
|
||||
IUSE="doc"
|
||||
|
||||
QA_FLAGS_IGNORED="usr/bin/${PN}"
|
||||
|
||||
src_compile() {
|
||||
cargo_src_compile
|
||||
|
||||
if use doc; then
|
||||
if tc-is-cross-compiler; then
|
||||
ewarn "html docs were skipped due to cross-compilation"
|
||||
else
|
||||
target/$(usex debug{,} release)/${PN} build -d html guide || die
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
src_test() {
|
||||
local skip=(
|
||||
# fails with usersandbox
|
||||
--skip test_ignore_canonical
|
||||
)
|
||||
|
||||
cargo_src_test -- "${skip[@]}"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
cargo_src_install
|
||||
|
||||
dodoc CHANGELOG.md README.md
|
||||
use doc && ! tc-is-cross-compiler && dodoc -r guide/html
|
||||
}
|
Binary file not shown.
@ -1,432 +0,0 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
FORTRAN_NEEDED="test"
|
||||
inherit cmake cuda fortran-2 llvm toolchain-funcs
|
||||
|
||||
DESCRIPTION="C++ template library for linear algebra"
|
||||
HOMEPAGE="https://eigen.tuxfamily.org/index.php?title=Main_Page"
|
||||
|
||||
if [[ ${PV} = *9999* ]] ; then
|
||||
inherit git-r3
|
||||
EGIT_REPO_URI="https://gitlab.com/lib${PN}/${PN}.git"
|
||||
if [[ ${PV} = 3.4.9999* ]] ; then
|
||||
EGIT_COMMIT="3.4"
|
||||
fi
|
||||
else
|
||||
SRC_URI="
|
||||
https://gitlab.com/lib${PN}/${PN}/-/archive/${PV}/${P}.tar.bz2
|
||||
test? ( lapack? ( https://downloads.tuxfamily.org/${PN}/lapack_addons_3.4.1.tgz -> ${PN}-lapack_addons-3.4.1.tgz ) )
|
||||
"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos"
|
||||
fi
|
||||
|
||||
LICENSE="MPL-2.0"
|
||||
SLOT="3"
|
||||
|
||||
# The following lines are shamelessly stolen from ffmpeg-9999.ebuild with modifications
|
||||
ARM_CPU_FEATURES=(
|
||||
neon:NEON
|
||||
)
|
||||
PPC_CPU_FEATURES=(
|
||||
altivec:ALTIVEC
|
||||
vsx:VSX
|
||||
)
|
||||
X86_CPU_FEATURES=(
|
||||
avx:AVX
|
||||
avx2:AVX2
|
||||
avx512f:AVX512
|
||||
avx512dq:AVX512DQ
|
||||
f16c:FP16C
|
||||
fma3:FMA
|
||||
popcnt:POPCNT
|
||||
sse:SSE
|
||||
sse2:SSE2
|
||||
sse3:SSE3
|
||||
ssse3:SSSE3
|
||||
sse4_1:SSE4_1
|
||||
sse4_2:SSE4_2
|
||||
)
|
||||
# MIPS_CPU_FEATURES=(
|
||||
# msa:MSA
|
||||
# )
|
||||
# S390_CPU_FEATURES=(
|
||||
# z13:Z13
|
||||
# z14:Z14
|
||||
# )
|
||||
|
||||
CPU_FEATURES_MAP=(
|
||||
"${ARM_CPU_FEATURES[@]/#/cpu_flags_arm_}"
|
||||
"${PPC_CPU_FEATURES[@]/#/cpu_flags_ppc_}"
|
||||
"${X86_CPU_FEATURES[@]/#/cpu_flags_x86_}"
|
||||
# "${MIPS_CPU_FEATURES[@]/#/cpu_flags_mips_}"
|
||||
# "${S390_CPU_FEATURES[@]/#/cpu_flags_s390_}"
|
||||
)
|
||||
|
||||
IUSE_TEST_BACKENDS=(
|
||||
"adolc"
|
||||
"boost"
|
||||
"cholmod"
|
||||
"fftw"
|
||||
"klu"
|
||||
"opengl"
|
||||
"openmp"
|
||||
"pastix"
|
||||
"sparsehash"
|
||||
"spqr"
|
||||
"superlu"
|
||||
"umfpack"
|
||||
)
|
||||
|
||||
IUSE="benchmark ${CPU_FEATURES_MAP[*]%:*} clang cuda hip debug doc lapack mathjax test ${IUSE_TEST_BACKENDS[*]}" #zvector
|
||||
|
||||
# Tests failing again because of compiler issues
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
BDEPEND="
|
||||
doc? (
|
||||
app-text/doxygen[dot]
|
||||
dev-texlive/texlive-bibtexextra
|
||||
dev-texlive/texlive-fontsextra
|
||||
dev-texlive/texlive-fontutils
|
||||
dev-texlive/texlive-latex
|
||||
dev-texlive/texlive-latexextra
|
||||
mathjax? ( dev-libs/mathjax )
|
||||
)
|
||||
test? ( virtual/pkgconfig )
|
||||
"
|
||||
|
||||
# METIS
|
||||
# MPREAL
|
||||
# dev-libs/mpfr:0
|
||||
# dev-libs/gmp:0
|
||||
|
||||
TEST_BACKENDS="
|
||||
boost? ( dev-libs/boost )
|
||||
adolc? ( sci-libs/adolc[sparse] )
|
||||
cholmod? ( sci-libs/cholmod:= )
|
||||
fftw? ( sci-libs/fftw )
|
||||
spqr? ( sci-libs/spqr )
|
||||
klu? ( sci-libs/klu )
|
||||
opengl? (
|
||||
media-libs/freeglut
|
||||
media-libs/glew
|
||||
media-libs/libglvnd
|
||||
)
|
||||
pastix? ( sci-libs/pastix[-mpi] )
|
||||
sparsehash? (
|
||||
amd64? ( dev-cpp/sparsehash )
|
||||
arm64? ( dev-cpp/sparsehash )
|
||||
ppc64? ( dev-cpp/sparsehash )
|
||||
x86? ( dev-cpp/sparsehash )
|
||||
)
|
||||
superlu? ( sci-libs/superlu )
|
||||
umfpack? ( sci-libs/umfpack )
|
||||
"
|
||||
DEPEND="
|
||||
test? (
|
||||
cuda? (
|
||||
!clang? (
|
||||
dev-util/nvidia-cuda-toolkit
|
||||
)
|
||||
clang? (
|
||||
sys-devel/clang[llvm_targets_NVPTX]
|
||||
openmp? ( sys-libs/libomp[llvm_targets_NVPTX,offload] )
|
||||
)
|
||||
)
|
||||
hip? ( dev-util/hip )
|
||||
lapack? ( virtual/lapacke )
|
||||
${TEST_BACKENDS}
|
||||
)
|
||||
"
|
||||
|
||||
REQUIRED_USE="
|
||||
|| ( ${IUSE_TEST_BACKENDS[*]} )
|
||||
"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}/${PN}-3.3.9-max-macro.patch"
|
||||
"${FILESDIR}/${PN}-3.4.0-doc-nocompress.patch" # bug 830064
|
||||
"${FILESDIR}/${PN}-3.4.0-buildstring.patch"
|
||||
"${FILESDIR}/${PN}-3.4.0-noansi.patch"
|
||||
"${FILESDIR}/${PN}-3.4.0-cxxstandard.patch"
|
||||
)
|
||||
|
||||
# TODO should be in cuda.eclass
|
||||
cuda_set_CUDAHOSTCXX() {
|
||||
local compiler
|
||||
tc-is-gcc && compiler="gcc"
|
||||
tc-is-clang && compiler="clang"
|
||||
[[ -z "$compiler" ]] && die "no compiler specified"
|
||||
|
||||
local package="sys-devel/${compiler}"
|
||||
local version="${package}"
|
||||
local CUDAHOSTCXX_test
|
||||
while
|
||||
CUDAHOSTCXX="${CUDAHOSTCXX_test}"
|
||||
version=$(best_version "${version}")
|
||||
if [[ -z "${version}" ]]; then
|
||||
if [[ -z "${CUDAHOSTCXX}" ]]; then
|
||||
die "could not find supported version of ${package}"
|
||||
fi
|
||||
break
|
||||
fi
|
||||
CUDAHOSTCXX_test="$(
|
||||
dirname "$(
|
||||
realpath "$(
|
||||
which "${compiler}-$(echo "${version}" | grep -oP "(?<=${package}-)[0-9]*")"
|
||||
)"
|
||||
)"
|
||||
)"
|
||||
version="<${version}"
|
||||
do ! echo "int main(){}" | nvcc "-ccbin ${CUDAHOSTCXX_test}" - -x cu &>/dev/null; done
|
||||
|
||||
export CUDAHOSTCXX
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
use test && use cuda && use clang && llvm_pkg_setup
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if [[ ${PV} = *9999* ]] ; then
|
||||
git-r3_src_unpack
|
||||
else
|
||||
unpack "${P}.tar.bz2"
|
||||
|
||||
if use test && use lapack; then
|
||||
cd "${S}/lapack" || die
|
||||
unpack "${PN}-lapack_addons-3.4.1.tgz"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
cmake_src_prepare
|
||||
|
||||
sed \
|
||||
-e "/add_subdirectory(bench\/spbench/s/^/#DONOTCOMPILE /g" \
|
||||
-e "/add_subdirectory(demos/s/^/#DONOTCOMPILE /g" \
|
||||
-i CMakeLists.txt || die
|
||||
|
||||
if ! use test; then
|
||||
sed \
|
||||
-e "/add_subdirectory(test/s/^/#DONOTCOMPILE /g" \
|
||||
-e "/add_subdirectory(scripts/s/^/#DONOTCOMPILE /g" \
|
||||
-e "/add_subdirectory(failtest/s/^/#DONOTCOMPILE /g" \
|
||||
-e "/add_subdirectory(blas/s/^/#DONOTCOMPILE /g" \
|
||||
-e "/add_subdirectory(lapack/s/^/#DONOTCOMPILE /g" \
|
||||
-i CMakeLists.txt || die
|
||||
fi
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local mycmakeargs=(
|
||||
-DBUILD_SHARED_LIBS="yes"
|
||||
-DBUILD_TESTING="$(usex test)"
|
||||
|
||||
-DEIGEN_BUILD_BTL="$(usex benchmark)" # Build benchmark suite
|
||||
-DEIGEN_BUILD_DOC="$(usex doc)" # Enable creation of Eigen documentation
|
||||
-DEIGEN_BUILD_PKGCONFIG="yes" # Build pkg-config .pc file for Eigen
|
||||
)
|
||||
if use doc || use test; then
|
||||
mycmakeargs+=(
|
||||
# needs Qt4
|
||||
-DEIGEN_TEST_NOQT="yes" # Disable Qt support in unit tests
|
||||
)
|
||||
fi
|
||||
|
||||
if use doc; then
|
||||
mycmakeargs+=(
|
||||
-DEIGEN_DOC_USE_MATHJAX="$(usex mathjax)" # Use MathJax for rendering math in HTML docs
|
||||
-DEIGEN_INTERNAL_DOCUMENTATION=no # Build internal documentation
|
||||
)
|
||||
fi
|
||||
|
||||
if use test; then
|
||||
mycmakeargs+=(
|
||||
# the OpenGL testsuite is extremely brittle, bug #712808
|
||||
-DOpenGL_GL_PREFERENCE="GLVND"
|
||||
-DEIGEN_TEST_OPENGL="$(usex opengl)" # Enable OpenGL support in unit tests
|
||||
-DEIGEN_TEST_OPENMP="$(usex openmp)" # Enable/Disable OpenMP in tests/examples
|
||||
|
||||
-DCMAKE_DISABLE_FIND_PACKAGE_MPREAL=ON
|
||||
|
||||
-DEIGEN_TEST_CXX11=yes
|
||||
|
||||
# -DEIGEN_TEST_CUSTOM_CXX_FLAGS= # Additional compiler flags when compiling unit tests.
|
||||
# -DEIGEN_TEST_CUSTOM_LINKER_FLAGS= # Additional linker flags when linking unit tests.
|
||||
# -DEIGEN_TEST_BUILD_FLAGS= # Options passed to the build command of unit tests
|
||||
|
||||
# -DEIGEN_BUILD_BTL=yes # Build benchmark suite
|
||||
|
||||
-DEIGEN_TEST_BUILD_DOCUMENTATION="$(usex doc)" # Test building the doxygen documentation
|
||||
|
||||
# -DEIGEN_COVERAGE_TESTING=no # Enable/disable gcov
|
||||
# -DEIGEN_CTEST_ERROR_EXCEPTION= # Regular expression for build error messages to be filtered out
|
||||
# -DEIGEN_DEBUG_ASSERTS=no # Enable advanced debugging of assertions
|
||||
# -DEIGEN_NO_ASSERTION_CHECKING=no # Disable checking of assertions using exceptions
|
||||
# -DEIGEN_TEST_NO_EXCEPTIONS=no # Disables C++ exceptions
|
||||
# -DEIGEN_TEST_NO_EXPLICIT_ALIGNMENT=no # Disable explicit alignment (hence vectorization) in tests/examples
|
||||
# -DEIGEN_TEST_NO_EXPLICIT_VECTORIZATION=no # Disable explicit vectorization in tests/examples
|
||||
|
||||
# -DEIGEN_DASHBOARD_BUILD_TARGET=buildtests # Target to be built in dashboard mode, default is buildtests
|
||||
|
||||
# -DEIGEN_DEFAULT_TO_ROW_MAJOR=no # Use row-major as default matrix storage order
|
||||
|
||||
# -DEIGEN_TEST_MATRIX_DIR=yes # Enable testing of realword sparse matrices contained in the specified path
|
||||
# -DEIGEN_TEST_MAX_SIZE=320 # Maximal matrix/vector size, default is 320
|
||||
# -DEIGEN_SPLIT_LARGE_TESTS=no # Split large tests into smaller executables
|
||||
)
|
||||
|
||||
use !adolc && mycmakeargs+=( -DCMAKE_DISABLE_FIND_PACKAGE_Adolc="TRUE" )
|
||||
use !boost && mycmakeargs+=( -DCMAKE_DISABLE_FIND_PACKAGE_Boost="TRUE" )
|
||||
use !cholmod && mycmakeargs+=( -DCMAKE_DISABLE_FIND_PACKAGE_CHOLMOD="TRUE" )
|
||||
use !fftw && mycmakeargs+=( -DCMAKE_DISABLE_FIND_PACKAGE_FFTW="TRUE" )
|
||||
use !sparsehash && mycmakeargs+=( -DCMAKE_DISABLE_FIND_PACKAGE_GoogleHash="TRUE" )
|
||||
use !klu && mycmakeargs+=( -DCMAKE_DISABLE_FIND_PACKAGE_KLU="TRUE" )
|
||||
use !opengl && mycmakeargs+=( -DCMAKE_DISABLE_FIND_PACKAGE_OpenGL="TRUE" )
|
||||
use !openmp && mycmakeargs+=( -DCMAKE_DISABLE_FIND_PACKAGE_OpenMP="TRUE" )
|
||||
use !pastix && mycmakeargs+=( -DCMAKE_DISABLE_FIND_PACKAGE_PASTIX="TRUE" )
|
||||
use !spqr && mycmakeargs+=( -DCMAKE_DISABLE_FIND_PACKAGE_SPQR="TRUE" )
|
||||
use !superlu && mycmakeargs+=( -DCMAKE_DISABLE_FIND_PACKAGE_SuperLU="TRUE" )
|
||||
use !umfpack && mycmakeargs+=( -DCMAKE_DISABLE_FIND_PACKAGE_UMFPACK="TRUE" )
|
||||
|
||||
if use lapack; then
|
||||
mycmakeargs+=(
|
||||
-DEIGEN_ENABLE_LAPACK_TESTS=yes
|
||||
-DEIGEN_TEST_EXTERNAL_BLAS=yes # Use external BLAS library for testsuite
|
||||
-DCMAKE_DISABLE_FIND_PACKAGE_SuperLU=ON
|
||||
)
|
||||
fi
|
||||
|
||||
if use arm; then
|
||||
mycmakeargs+=(
|
||||
-DEIGEN_TEST_NEON="$(usex cpu_flags_arm_neon)"
|
||||
)
|
||||
fi
|
||||
|
||||
if use arm64; then
|
||||
mycmakeargs+=(
|
||||
-DEIGEN_TEST_NEON64="$(usex cpu_flags_arm_neon)"
|
||||
)
|
||||
fi
|
||||
|
||||
if use ppc || use ppc64; then
|
||||
mycmakeargs+=(
|
||||
-DEIGEN_TEST_ALTIVEC="$(usex cpu_flags_ppc_altivec)"
|
||||
-DEIGEN_TEST_VSX="$(usex cpu_flags_ppc_vsx)"
|
||||
)
|
||||
fi
|
||||
|
||||
if use amd64 || use x86; then
|
||||
mycmakeargs+=(
|
||||
# -DEIGEN_TEST_32BIT=no # Force generating 32bit code.
|
||||
# -DEIGEN_TEST_X87=no # Force using X87 instructions. Implies no vectorization.
|
||||
-DEIGEN_TEST_SSE2="$(usex cpu_flags_x86_sse2)"
|
||||
-DEIGEN_TEST_SSE3="$(usex cpu_flags_x86_sse3)"
|
||||
-DEIGEN_TEST_SSSE3="$(usex cpu_flags_x86_ssse3)"
|
||||
-DEIGEN_TEST_FMA="$(usex cpu_flags_x86_fma3)"
|
||||
-DEIGEN_TEST_SSE4_1="$(usex cpu_flags_x86_sse4_1)"
|
||||
-DEIGEN_TEST_SSE4_2="$(usex cpu_flags_x86_sse4_2)"
|
||||
-DEIGEN_TEST_AVX="$(usex cpu_flags_x86_avx)"
|
||||
-DEIGEN_TEST_F16C="$(usex cpu_flags_x86_f16c)"
|
||||
-DEIGEN_TEST_AVX2="$(usex cpu_flags_x86_avx2)"
|
||||
-DEIGEN_TEST_AVX512="$(usex cpu_flags_x86_avx512f)"
|
||||
-DEIGEN_TEST_AVX512DQ="$(usex cpu_flags_x86_avx512dq)"
|
||||
)
|
||||
fi
|
||||
|
||||
if use mips; then
|
||||
mycmakeargs+=(
|
||||
# -DEIGEN_TEST_MSA=no # Enable/Disable MSA in tests/examples
|
||||
)
|
||||
fi
|
||||
|
||||
if use s390; then
|
||||
mycmakeargs+=(
|
||||
# -DEIGEN_TEST_Z13=no # Enable/Disable S390X(zEC13) ZVECTOR in tests/examples
|
||||
# -DEIGEN_TEST_Z14=no # Enable/Disable S390X(zEC14) ZVECTOR in tests/examples
|
||||
)
|
||||
fi
|
||||
|
||||
mycmakeargs+=(
|
||||
-DEIGEN_TEST_CUDA="$(usex cuda)" # Enable CUDA support in unit tests
|
||||
-DEIGEN_TEST_CUDA_CLANG="$(usex cuda "$(usex clang)")" # Use clang instead of nvcc to compile the CUDA tests
|
||||
|
||||
-DEIGEN_TEST_HIP="$(usex hip)" # Add HIP support.
|
||||
|
||||
# -DEIGEN_TEST_SYCL=no # Add Sycl support.
|
||||
# -DEIGEN_SYCL_TRISYCL=no # Use the triSYCL Sycl implementation (ComputeCPP by default).
|
||||
)
|
||||
|
||||
if use cuda; then
|
||||
cuda_add_sandbox -w
|
||||
if use clang; then
|
||||
local llvm_prefix
|
||||
llvm_prefix="$(get_llvm_prefix -b)"
|
||||
export CC="${llvm_prefix}/bin/clang"
|
||||
export CXX="${llvm_prefix}/bin/clang++"
|
||||
export LIBRARY_PATH="${ESYSROOT}/usr/$(get_libdir)"
|
||||
else
|
||||
cuda_set_CUDAHOSTCXX
|
||||
mycmakeargs+=(
|
||||
-DCUDA_HOST_COMPILER="${CUDAHOSTCXX}"
|
||||
)
|
||||
fi
|
||||
if [[ "${CUDA_VERBOSE}" == true ]]; then
|
||||
mycmakeargs+=(
|
||||
-DCUDA_VERBOSE_BUILD=yes
|
||||
)
|
||||
NVCCFLAGS+=" -v"
|
||||
fi
|
||||
|
||||
export CUDAFLAGS="${NVCCFLAGS}"
|
||||
|
||||
[[ -z "${CUDAARCHS}" ]] && einfo "trying to determine host CUDAARCHS"
|
||||
: "${CUDAARCHS:=$(__nvcc_device_query)}"
|
||||
export CUDAARCHS
|
||||
|
||||
mycmakeargs+=(
|
||||
-DEIGEN_CUDA_COMPUTE_ARCH="${CUDAARCHS}"
|
||||
)
|
||||
fi
|
||||
fi
|
||||
|
||||
cmake_src_configure
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
local targets=()
|
||||
if use doc; then
|
||||
targets+=( doc )
|
||||
HTML_DOCS=( "${BUILD_DIR}"/doc/html/. )
|
||||
fi
|
||||
if use test; then
|
||||
targets+=( buildtests )
|
||||
if ! use lapack; then
|
||||
targets+=( blas )
|
||||
fi
|
||||
# tests generate random data, which
|
||||
# obviously fails for some seeds
|
||||
export EIGEN_SEED=712808
|
||||
fi
|
||||
|
||||
if use doc || use test; then
|
||||
cmake_src_compile "${targets[@]}"
|
||||
fi
|
||||
}
|
||||
|
||||
src_test() {
|
||||
if use cuda ; then
|
||||
cuda_add_sandbox -w
|
||||
fi
|
||||
|
||||
local myctestargs=(
|
||||
-j1 # otherwise breaks due to cmake reruns
|
||||
)
|
||||
|
||||
cmake_src_test
|
||||
}
|
Binary file not shown.
Binary file not shown.
@ -1,3 +1 @@
|
||||
DIST gdb-13.2.tar.xz 23664644 BLAKE2B bf5216ba2286448a46f9e0a405367c5a678e6d7540204722d355b618018b7b75a2ebc5b51353304c5ded02a3979223a81781d305f5afa5be82516cdc2863d49f SHA512 8185d3e11ab60dafff5860a5016577bfe7dd7547ef01ebc867bc247603d82b74ff74c4f29492c7d2aee57076f52be33e289f4c6b414a4b870d4b3004909f4c34
|
||||
DIST gdb-14.1.tar.xz 24108624 BLAKE2B 52a07b4745f95561f360a597d6ec1d212dafc8e9134dc415cd7bcfb02c26934a60807c8400b545a756c68392e16e104178cdc1464430c53611973881e921a942 SHA512 575e198105076fc4a88f68591aa114ab9c1196e84386a3f7b9b58fe5f30cdeed33f6a5f957b68f08c47284ec922bb60c964627e238471419673fd913575ce427
|
||||
DIST gdb-14.2.tar.xz 24111936 BLAKE2B 65765dfd1ed08e19bb881fc7ae98d6ee4914f38a9a2bb0d0ca73bef472669664f807fe9c04e8dffd7025be98e736ac52f88ff5851ceddbb01a361885b18befc8 SHA512 7e07941f1fe661288cc571b4964012ceabc1760624fce20320db2f470c01439b2386f859b5288da13204b758e2e3b22a74c68c012178db93b9529b06f1e22ede
|
||||
|
@ -1,126 +0,0 @@
|
||||
https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=31a56a22c45d76df4c597439f337e3f75ac3065c
|
||||
https://sourceware.org/bugzilla/show_bug.cgi?id=30525
|
||||
https://bugs.gentoo.org/907906
|
||||
|
||||
From 31a56a22c45d76df4c597439f337e3f75ac3065c Mon Sep 17 00:00:00 2001
|
||||
From: Pedro Alves <pedro@palves.net>
|
||||
Date: Wed, 7 Jun 2023 10:38:14 +0100
|
||||
Subject: [PATCH] Linux: Avoid pread64/pwrite64 for high memory addresses (PR
|
||||
gdb/30525)
|
||||
|
||||
Since commit 05c06f318fd9 ("Linux: Access memory even if threads are
|
||||
running"), GDB prefers pread64/pwrite64 to access inferior memory
|
||||
instead of ptrace. That change broke reading shared libraries on
|
||||
SPARC64 Linux, as reported by PR gdb/30525 ("gdb cannot read shared
|
||||
libraries on SPARC64").
|
||||
|
||||
On SPARC64 Linux, surprisingly (to me), userspace shared libraries are
|
||||
mapped at high 64-bit addresses:
|
||||
|
||||
(gdb) info sharedlibrary
|
||||
Cannot access memory at address 0xfff80001002011e0
|
||||
Cannot access memory at address 0xfff80001002011d8
|
||||
Cannot access memory at address 0xfff80001002011d8
|
||||
From To Syms Read Shared Object Library
|
||||
0xfff80001000010a0 0xfff8000100021f80 Yes (*) /lib64/ld-linux.so.2
|
||||
(*): Shared library is missing debugging information.
|
||||
|
||||
Those addresses are 64-bit addresses with the high bits set. When
|
||||
interpreted as signed, they're negative.
|
||||
|
||||
The Linux kernel rejects pread64/pwrite64 if the offset argument of
|
||||
type off_t (a signed type) is negative, which happens if the memory
|
||||
address we're accessing has its high bit set. See
|
||||
linux/fs/read_write.c sys_pread64 and sys_pwrite64 in Linux.
|
||||
|
||||
Thankfully, lseek does not fail in that situation. So the fix is to
|
||||
use the 'lseek + read|write' path if the offset would be negative.
|
||||
|
||||
Fix this in both native GDB and GDBserver.
|
||||
|
||||
Tested on a SPARC64 GNU/Linux and x86-64 GNU/Linux.
|
||||
|
||||
Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30525
|
||||
Change-Id: I79c724f918037ea67b7396fadb521bc9d1b10dc5
|
||||
--- a/gdb/linux-nat.c
|
||||
+++ b/gdb/linux-nat.c
|
||||
@@ -3909,18 +3909,26 @@ linux_proc_xfer_memory_partial_fd (int fd, int pid,
|
||||
|
||||
gdb_assert (fd != -1);
|
||||
|
||||
- /* Use pread64/pwrite64 if available, since they save a syscall and can
|
||||
- handle 64-bit offsets even on 32-bit platforms (for instance, SPARC
|
||||
- debugging a SPARC64 application). */
|
||||
+ /* Use pread64/pwrite64 if available, since they save a syscall and
|
||||
+ can handle 64-bit offsets even on 32-bit platforms (for instance,
|
||||
+ SPARC debugging a SPARC64 application). But only use them if the
|
||||
+ offset isn't so high that when cast to off_t it'd be negative, as
|
||||
+ seen on SPARC64. pread64/pwrite64 outright reject such offsets.
|
||||
+ lseek does not. */
|
||||
#ifdef HAVE_PREAD64
|
||||
- ret = (readbuf ? pread64 (fd, readbuf, len, offset)
|
||||
- : pwrite64 (fd, writebuf, len, offset));
|
||||
-#else
|
||||
- ret = lseek (fd, offset, SEEK_SET);
|
||||
- if (ret != -1)
|
||||
- ret = (readbuf ? read (fd, readbuf, len)
|
||||
- : write (fd, writebuf, len));
|
||||
+ if ((off_t) offset >= 0)
|
||||
+ ret = (readbuf != nullptr
|
||||
+ ? pread64 (fd, readbuf, len, offset)
|
||||
+ : pwrite64 (fd, writebuf, len, offset));
|
||||
+ else
|
||||
#endif
|
||||
+ {
|
||||
+ ret = lseek (fd, offset, SEEK_SET);
|
||||
+ if (ret != -1)
|
||||
+ ret = (readbuf != nullptr
|
||||
+ ? read (fd, readbuf, len)
|
||||
+ : write (fd, writebuf, len));
|
||||
+ }
|
||||
|
||||
if (ret == -1)
|
||||
{
|
||||
--- a/gdbserver/linux-low.cc
|
||||
+++ b/gdbserver/linux-low.cc
|
||||
@@ -5377,21 +5377,26 @@ proc_xfer_memory (CORE_ADDR memaddr, unsigned char *readbuf,
|
||||
{
|
||||
int bytes;
|
||||
|
||||
- /* If pread64 is available, use it. It's faster if the kernel
|
||||
- supports it (only one syscall), and it's 64-bit safe even on
|
||||
- 32-bit platforms (for instance, SPARC debugging a SPARC64
|
||||
- application). */
|
||||
+ /* Use pread64/pwrite64 if available, since they save a syscall
|
||||
+ and can handle 64-bit offsets even on 32-bit platforms (for
|
||||
+ instance, SPARC debugging a SPARC64 application). But only
|
||||
+ use them if the offset isn't so high that when cast to off_t
|
||||
+ it'd be negative, as seen on SPARC64. pread64/pwrite64
|
||||
+ outright reject such offsets. lseek does not. */
|
||||
#ifdef HAVE_PREAD64
|
||||
- bytes = (readbuf != nullptr
|
||||
- ? pread64 (fd, readbuf, len, memaddr)
|
||||
- : pwrite64 (fd, writebuf, len, memaddr));
|
||||
-#else
|
||||
- bytes = -1;
|
||||
- if (lseek (fd, memaddr, SEEK_SET) != -1)
|
||||
+ if ((off_t) memaddr >= 0)
|
||||
bytes = (readbuf != nullptr
|
||||
- ? read (fd, readbuf, len)
|
||||
- : write (fd, writebuf, len));
|
||||
+ ? pread64 (fd, readbuf, len, memaddr)
|
||||
+ : pwrite64 (fd, writebuf, len, memaddr));
|
||||
+ else
|
||||
#endif
|
||||
+ {
|
||||
+ bytes = -1;
|
||||
+ if (lseek (fd, memaddr, SEEK_SET) != -1)
|
||||
+ bytes = (readbuf != nullptr
|
||||
+ ? read (fd, readbuf, len)
|
||||
+ : write (fd, writebuf, len));
|
||||
+ }
|
||||
|
||||
if (bytes < 0)
|
||||
return errno;
|
||||
--
|
||||
2.39.3
|
@ -1,314 +0,0 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
# See https://sourceware.org/gdb/wiki/DistroAdvice for general packaging
|
||||
# tips & notes.
|
||||
|
||||
PYTHON_COMPAT=( python3_{10..11} )
|
||||
inherit flag-o-matic python-single-r1 strip-linguas toolchain-funcs
|
||||
|
||||
export CTARGET=${CTARGET:-${CHOST}}
|
||||
|
||||
if [[ ${CTARGET} == ${CHOST} ]] ; then
|
||||
if [[ ${CATEGORY} == cross-* ]] ; then
|
||||
export CTARGET=${CATEGORY#cross-}
|
||||
fi
|
||||
fi
|
||||
|
||||
is_cross() { [[ ${CHOST} != ${CTARGET} ]] ; }
|
||||
|
||||
case ${PV} in
|
||||
9999*)
|
||||
# live git tree
|
||||
EGIT_REPO_URI="https://sourceware.org/git/binutils-gdb.git"
|
||||
inherit git-r3
|
||||
SRC_URI=""
|
||||
;;
|
||||
*.*.50_p2???????|*.*.90_p2???????)
|
||||
# Weekly snapshots
|
||||
MY_PV="${PV/_p/.}"
|
||||
SRC_URI="
|
||||
https://sourceware.org/pub/gdb/snapshots/branch/gdb-weekly-${MY_PV}.tar.xz
|
||||
https://sourceware.org/pub/gdb/snapshots/current/gdb-weekly-${MY_PV}.tar.xz
|
||||
https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/gdb-weekly-${MY_PV}.tar.xz
|
||||
"
|
||||
S="${WORKDIR}/${PN}-${MY_PV}"
|
||||
|
||||
# e.g. 13.1.90_p20230325 is a snapshot on the stable branch, so it's fine
|
||||
if [[ ${PV} == *.[123456789].9?_p2??????? ]] ; then
|
||||
REGULAR_RELEASE=1
|
||||
fi
|
||||
;;
|
||||
*.*.9?)
|
||||
# Prereleases
|
||||
MY_PV="${PV/_p/.}"
|
||||
SRC_URI="
|
||||
https://sourceware.org/pub/gdb/snapshots/branch/gdb-${MY_PV}.tar.xz
|
||||
https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/gdb-${MY_PV}.tar.xz
|
||||
"
|
||||
S="${WORKDIR}/${PN}-${MY_PV}"
|
||||
;;
|
||||
*)
|
||||
# Normal upstream release
|
||||
SRC_URI="
|
||||
mirror://gnu/gdb/${P}.tar.xz
|
||||
https://sourceware.org/pub/gdb/releases/${P}.tar.xz
|
||||
"
|
||||
|
||||
REGULAR_RELEASE=1
|
||||
esac
|
||||
|
||||
PATCH_DEV=""
|
||||
PATCH_VER=""
|
||||
DESCRIPTION="GNU debugger"
|
||||
HOMEPAGE="https://sourceware.org/gdb/"
|
||||
SRC_URI="
|
||||
${SRC_URI}
|
||||
${PATCH_DEV:+https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${CATEGORY}/${PN}/${P}-patches-${PATCH_VER}.tar.xz}
|
||||
${PATCH_VER:+mirror://gentoo/${P}-patches-${PATCH_VER}.tar.xz}
|
||||
"
|
||||
|
||||
LICENSE="GPL-3+ LGPL-2.1+"
|
||||
SLOT="0"
|
||||
IUSE="cet debuginfod guile lzma multitarget nls +python +server sim source-highlight test vanilla xml xxhash zstd"
|
||||
if [[ -n ${REGULAR_RELEASE} ]] ; then
|
||||
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris"
|
||||
fi
|
||||
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
RDEPEND="
|
||||
dev-libs/mpfr:=
|
||||
dev-libs/gmp:=
|
||||
>=sys-libs/ncurses-5.2-r2:=
|
||||
>=sys-libs/readline-7:=
|
||||
sys-libs/zlib
|
||||
elibc_glibc? ( net-libs/libnsl:= )
|
||||
debuginfod? (
|
||||
dev-libs/elfutils[debuginfod(-)]
|
||||
)
|
||||
lzma? ( app-arch/xz-utils )
|
||||
python? ( ${PYTHON_DEPS} )
|
||||
guile? ( >=dev-scheme/guile-2.0 )
|
||||
xml? ( dev-libs/expat )
|
||||
source-highlight? (
|
||||
dev-util/source-highlight
|
||||
)
|
||||
xxhash? (
|
||||
dev-libs/xxhash
|
||||
)
|
||||
zstd? ( app-arch/zstd:= )
|
||||
"
|
||||
DEPEND="${RDEPEND}"
|
||||
BDEPEND="
|
||||
app-arch/xz-utils
|
||||
sys-apps/texinfo
|
||||
app-alternatives/yacc
|
||||
nls? ( sys-devel/gettext )
|
||||
source-highlight? ( virtual/pkgconfig )
|
||||
test? ( dev-util/dejagnu )
|
||||
"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${PN}-8.3.1-verbose-build.patch
|
||||
"${FILESDIR}"/${P}-fix-sparc-debugging.patch
|
||||
)
|
||||
|
||||
pkg_setup() {
|
||||
use python && python-single-r1_pkg_setup
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
strip-linguas -u bfd/po opcodes/po
|
||||
|
||||
# Avoid using ancient termcap from host on Prefix systems
|
||||
sed -i -e 's/termcap tinfow/tinfow/g' \
|
||||
gdb/configure{.ac,} || die
|
||||
}
|
||||
|
||||
gdb_branding() {
|
||||
printf "Gentoo ${PV} "
|
||||
|
||||
if ! use vanilla && [[ -n ${PATCH_VER} ]] ; then
|
||||
printf "p${PATCH_VER}"
|
||||
else
|
||||
printf "vanilla"
|
||||
fi
|
||||
|
||||
[[ -n ${EGIT_COMMIT} ]] && printf " ${EGIT_COMMIT}"
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
strip-unsupported-flags
|
||||
|
||||
# https://sourceware.org/PR22395, bug #853898
|
||||
filter-lto
|
||||
|
||||
# See https://www.gnu.org/software/make/manual/html_node/Parallel-Output.html
|
||||
# Avoid really confusing logs from subconfigure spam, makes logs far
|
||||
# more legible.
|
||||
MAKEOPTS="--output-sync=line ${MAKEOPTS}"
|
||||
|
||||
local myconf=(
|
||||
# portage's econf() does not detect presence of --d-d-t
|
||||
# because it greps only top-level ./configure. But not
|
||||
# libiberty's or gdb's configure.
|
||||
--disable-dependency-tracking
|
||||
--disable-silent-rules
|
||||
|
||||
--with-pkgversion="$(gdb_branding)"
|
||||
--with-bugurl='https://bugs.gentoo.org/'
|
||||
--disable-werror
|
||||
# Disable modules that are in a combined binutils/gdb tree. bug #490566
|
||||
--disable-{binutils,etc,gas,gold,gprof,gprofng,ld}
|
||||
|
||||
$(use_with debuginfod)
|
||||
|
||||
$(use_enable test unit-tests)
|
||||
|
||||
# Allow user to opt into CET for host libraries.
|
||||
# Ideally we would like automagic-or-disabled here.
|
||||
# But the check does not quite work on i686: bug #760926.
|
||||
$(use_enable cet)
|
||||
|
||||
# Helps when cross-compiling. Not to be confused with --with-sysroot.
|
||||
--with-build-sysroot="${ESYSROOT}"
|
||||
)
|
||||
|
||||
is_cross && myconf+=(
|
||||
--with-sysroot="\${prefix}/${CTARGET}"
|
||||
--includedir="\${prefix}/include/${CTARGET}"
|
||||
--with-gdb-datadir="\${datadir}/gdb/${CTARGET}"
|
||||
)
|
||||
|
||||
# gdbserver only works for native targets (CHOST==CTARGET).
|
||||
# it also doesn't support all targets, so rather than duplicate
|
||||
# the target list (which changes between versions), use the
|
||||
# "auto" value when things are turned on, which is triggered
|
||||
# whenever no --enable or --disable is given
|
||||
if is_cross || use !server ; then
|
||||
myconf+=( --disable-gdbserver )
|
||||
fi
|
||||
|
||||
myconf+=(
|
||||
--enable-64-bit-bfd
|
||||
--disable-install-libbfd
|
||||
--disable-install-libiberty
|
||||
--enable-obsolete
|
||||
# This only disables building in the readline subdir.
|
||||
# For gdb itself, it'll use the system version.
|
||||
--disable-readline
|
||||
--with-system-readline
|
||||
# This only disables building in the zlib subdir.
|
||||
# For gdb itself, it'll use the system version.
|
||||
--without-zlib
|
||||
--with-system-zlib
|
||||
--with-separate-debug-dir="${EPREFIX}"/usr/lib/debug
|
||||
$(use_with xml expat)
|
||||
$(use_with lzma)
|
||||
$(use_enable nls)
|
||||
$(use_enable sim)
|
||||
$(use_enable source-highlight)
|
||||
$(use multitarget && echo --enable-targets=all)
|
||||
$(use_with python python "${EPYTHON}")
|
||||
$(use_with xxhash)
|
||||
$(use_with guile)
|
||||
$(use_with zstd)
|
||||
|
||||
# Find libraries using the toolchain sysroot rather than the configured
|
||||
# prefix. Needed when cross-compiling.
|
||||
#
|
||||
# Check which libraries to apply this to with:
|
||||
# "${S}"/gdb/configure --help | grep without-lib | sort
|
||||
--without-lib{babeltrace,expat,gmp,iconv,ipt,lzma,mpfr,xxhash}-prefix
|
||||
)
|
||||
|
||||
# source-highlight is detected with pkg-config: bug #716558
|
||||
export ac_cv_path_pkg_config_prog_path="$(tc-getPKG_CONFIG)"
|
||||
|
||||
export CC_FOR_BUILD="$(tc-getBUILD_CC)"
|
||||
|
||||
# ensure proper compiler is detected for Clang builds: bug #831202
|
||||
export GCC_FOR_TARGET="${CC_FOR_TARGET:-$(tc-getCC)}"
|
||||
|
||||
econf "${myconf[@]}"
|
||||
}
|
||||
|
||||
src_test() {
|
||||
# Run the unittests (nabbed invocation from Fedora's spec file) at least
|
||||
emake -k -C gdb run GDBFLAGS='-batch -ex "maintenance selftest"'
|
||||
|
||||
# Too many failures
|
||||
# In fact, gdb's test suite needs some work to get passing.
|
||||
# See e.g. https://sourceware.org/gdb/wiki/TestingGDB.
|
||||
# As of 11.2, on amd64: "# of unexpected failures 8600"
|
||||
# Also, ia64 kernel crashes when gdb testsuite is running.
|
||||
#emake -k check
|
||||
}
|
||||
|
||||
src_install() {
|
||||
emake DESTDIR="${D}" install
|
||||
|
||||
find "${ED}"/usr -name libiberty.a -delete || die
|
||||
|
||||
# Delete translations that conflict with binutils-libs. bug #528088
|
||||
# Note: Should figure out how to store these in an internal gdb dir.
|
||||
if use nls ; then
|
||||
find "${ED}" \
|
||||
-regextype posix-extended -regex '.*/(bfd|opcodes)[.]g?mo$' \
|
||||
-delete || die
|
||||
fi
|
||||
|
||||
# Don't install docs when building a cross-gdb
|
||||
if [[ ${CTARGET} != ${CHOST} ]] ; then
|
||||
rm -rf "${ED}"/usr/share/{doc,info,locale} || die
|
||||
local f
|
||||
for f in "${ED}"/usr/share/man/*/* ; do
|
||||
if [[ ${f##*/} != ${CTARGET}-* ]] ; then
|
||||
mv "${f}" "${f%/*}/${CTARGET}-${f##*/}" || die
|
||||
fi
|
||||
done
|
||||
return 0
|
||||
fi
|
||||
|
||||
# Install it by hand for now:
|
||||
# https://sourceware.org/ml/gdb-patches/2011-12/msg00915.html
|
||||
# Only install if it exists due to the twisted behavior (see
|
||||
# notes in src_configure above).
|
||||
[[ -e gdbserver/gdbreplay ]] && dobin gdbserver/gdbreplay
|
||||
|
||||
docinto gdb
|
||||
dodoc gdb/CONTRIBUTE gdb/README gdb/MAINTAINERS \
|
||||
gdb/NEWS gdb/PROBLEMS
|
||||
docinto sim
|
||||
dodoc sim/{MAINTAINERS,README-HACKING}
|
||||
|
||||
if use server ; then
|
||||
docinto gdbserver
|
||||
dodoc gdbserver/README
|
||||
fi
|
||||
|
||||
# Remove shared info pages
|
||||
rm -f "${ED}"/usr/share/info/{annotate,bfd,configure,ctf-spec,standards}.info*
|
||||
|
||||
if use python ; then
|
||||
python_optimize "${ED}"/usr/share/gdb/python/gdb
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
# Portage doesn't unmerge files in /etc
|
||||
rm -vf "${EROOT}"/etc/skel/.gdbinit
|
||||
|
||||
if use prefix && [[ ${CHOST} == *-darwin* ]] ; then
|
||||
ewarn "gdb is unable to get a mach task port when installed by Prefix"
|
||||
ewarn "Portage, unprivileged. To make gdb fully functional you'll"
|
||||
ewarn "have to perform the following steps:"
|
||||
ewarn " % sudo chgrp procmod ${EPREFIX}/usr/bin/gdb"
|
||||
ewarn " % sudo chmod g+s ${EPREFIX}/usr/bin/gdb"
|
||||
fi
|
||||
}
|
@ -1,325 +0,0 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
# See https://sourceware.org/gdb/wiki/DistroAdvice for general packaging
|
||||
# tips & notes.
|
||||
|
||||
PYTHON_COMPAT=( python3_{10..12} )
|
||||
inherit flag-o-matic python-single-r1 strip-linguas toolchain-funcs
|
||||
|
||||
export CTARGET=${CTARGET:-${CHOST}}
|
||||
|
||||
if [[ ${CTARGET} == ${CHOST} ]] ; then
|
||||
if [[ ${CATEGORY} == cross-* ]] ; then
|
||||
export CTARGET=${CATEGORY#cross-}
|
||||
fi
|
||||
fi
|
||||
|
||||
is_cross() { [[ ${CHOST} != ${CTARGET} ]] ; }
|
||||
|
||||
case ${PV} in
|
||||
9999*)
|
||||
# live git tree
|
||||
EGIT_REPO_URI="https://sourceware.org/git/binutils-gdb.git"
|
||||
inherit git-r3
|
||||
SRC_URI=""
|
||||
;;
|
||||
*.*.50_p2???????|*.*.90_p2???????)
|
||||
# Weekly snapshots
|
||||
MY_PV="${PV/_p/.}"
|
||||
SRC_URI="
|
||||
https://sourceware.org/pub/gdb/snapshots/branch/gdb-weekly-${MY_PV}.tar.xz
|
||||
https://sourceware.org/pub/gdb/snapshots/current/gdb-weekly-${MY_PV}.tar.xz
|
||||
https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/gdb-weekly-${MY_PV}.tar.xz
|
||||
"
|
||||
S="${WORKDIR}/${PN}-${MY_PV}"
|
||||
|
||||
# e.g. 13.1.90_p20230325 is a snapshot on the stable branch, so it's fine
|
||||
if [[ ${PV} == *.[123456789].9?_p2??????? ]] ; then
|
||||
REGULAR_RELEASE=1
|
||||
fi
|
||||
;;
|
||||
*.*.9?)
|
||||
# Prereleases
|
||||
MY_PV="${PV/_p/.}"
|
||||
SRC_URI="
|
||||
https://sourceware.org/pub/gdb/snapshots/branch/gdb-${MY_PV}.tar.xz
|
||||
https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/gdb-${MY_PV}.tar.xz
|
||||
"
|
||||
S="${WORKDIR}/${PN}-${MY_PV}"
|
||||
;;
|
||||
*)
|
||||
# Normal upstream release
|
||||
SRC_URI="
|
||||
mirror://gnu/gdb/${P}.tar.xz
|
||||
https://sourceware.org/pub/gdb/releases/${P}.tar.xz
|
||||
"
|
||||
|
||||
REGULAR_RELEASE=1
|
||||
esac
|
||||
|
||||
PATCH_DEV=""
|
||||
PATCH_VER=""
|
||||
DESCRIPTION="GNU debugger"
|
||||
HOMEPAGE="https://sourceware.org/gdb/"
|
||||
SRC_URI="
|
||||
${SRC_URI}
|
||||
${PATCH_DEV:+https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${CATEGORY}/${PN}/${P}-patches-${PATCH_VER}.tar.xz}
|
||||
${PATCH_VER:+mirror://gentoo/${P}-patches-${PATCH_VER}.tar.xz}
|
||||
"
|
||||
|
||||
LICENSE="GPL-3+ LGPL-2.1+"
|
||||
SLOT="0"
|
||||
IUSE="cet debuginfod guile lzma multitarget nls +python +server sim source-highlight test vanilla xml xxhash zstd"
|
||||
if [[ -n ${REGULAR_RELEASE} ]] ; then
|
||||
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris"
|
||||
fi
|
||||
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
RDEPEND="
|
||||
dev-libs/mpfr:=
|
||||
dev-libs/gmp:=
|
||||
>=sys-libs/ncurses-5.2-r2:=
|
||||
>=sys-libs/readline-7:=
|
||||
sys-libs/zlib
|
||||
elibc_glibc? ( net-libs/libnsl:= )
|
||||
debuginfod? (
|
||||
dev-libs/elfutils[debuginfod(-)]
|
||||
)
|
||||
lzma? ( app-arch/xz-utils )
|
||||
python? ( ${PYTHON_DEPS} )
|
||||
guile? ( >=dev-scheme/guile-2.0 )
|
||||
xml? ( dev-libs/expat )
|
||||
source-highlight? (
|
||||
dev-util/source-highlight
|
||||
)
|
||||
xxhash? (
|
||||
dev-libs/xxhash
|
||||
)
|
||||
zstd? ( app-arch/zstd:= )
|
||||
"
|
||||
DEPEND="${RDEPEND}"
|
||||
BDEPEND="
|
||||
app-arch/xz-utils
|
||||
sys-apps/texinfo
|
||||
app-alternatives/yacc
|
||||
nls? ( sys-devel/gettext )
|
||||
source-highlight? ( virtual/pkgconfig )
|
||||
test? ( dev-util/dejagnu )
|
||||
"
|
||||
|
||||
QA_CONFIG_IMPL_DECL_SKIP=(
|
||||
MIN # gnulib FP (bug #898688)
|
||||
)
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${PN}-8.3.1-verbose-build.patch
|
||||
"${FILESDIR}"/${PN}-14.1-fix-list-segfault.patch
|
||||
"${FILESDIR}"/${PN}-14.1-fix-print-global-variable-stubs.patch
|
||||
"${FILESDIR}"/${PN}-14.1-fix-dll-export-forwarding.patch
|
||||
)
|
||||
|
||||
pkg_setup() {
|
||||
use python && python-single-r1_pkg_setup
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
strip-linguas -u bfd/po opcodes/po
|
||||
|
||||
# Avoid using ancient termcap from host on Prefix systems
|
||||
sed -i -e 's/termcap tinfow/tinfow/g' \
|
||||
gdb/configure{.ac,} || die
|
||||
if [[ ${CHOST} == *-solaris* ]] ; then
|
||||
# code relies on C++11, so make sure we get that selected
|
||||
# due to Python 3.11 pymacro.h doing stuff to work around
|
||||
# versioning mess based on the C version, while we're compiling
|
||||
# C++ here, so we need to make it clear we're doing C++11/C11
|
||||
# because Solaris system headers act on these
|
||||
sed -i -e 's/-x c++/-std=c++11/' gdb/Makefile.in || die
|
||||
fi
|
||||
}
|
||||
|
||||
gdb_branding() {
|
||||
printf "Gentoo ${PV} "
|
||||
|
||||
if ! use vanilla && [[ -n ${PATCH_VER} ]] ; then
|
||||
printf "p${PATCH_VER}"
|
||||
else
|
||||
printf "vanilla"
|
||||
fi
|
||||
|
||||
[[ -n ${EGIT_COMMIT} ]] && printf " ${EGIT_COMMIT}"
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
strip-unsupported-flags
|
||||
|
||||
# See https://www.gnu.org/software/make/manual/html_node/Parallel-Output.html
|
||||
# Avoid really confusing logs from subconfigure spam, makes logs far
|
||||
# more legible.
|
||||
MAKEOPTS="--output-sync=line ${MAKEOPTS}"
|
||||
|
||||
local myconf=(
|
||||
# portage's econf() does not detect presence of --d-d-t
|
||||
# because it greps only top-level ./configure. But not
|
||||
# libiberty's or gdb's configure.
|
||||
--disable-dependency-tracking
|
||||
--disable-silent-rules
|
||||
|
||||
--with-pkgversion="$(gdb_branding)"
|
||||
--with-bugurl='https://bugs.gentoo.org/'
|
||||
--disable-werror
|
||||
# Disable modules that are in a combined binutils/gdb tree. bug #490566
|
||||
--disable-{binutils,etc,gas,gold,gprof,gprofng,ld}
|
||||
|
||||
$(use_with debuginfod)
|
||||
|
||||
$(use_enable test unit-tests)
|
||||
|
||||
# Allow user to opt into CET for host libraries.
|
||||
# Ideally we would like automagic-or-disabled here.
|
||||
# But the check does not quite work on i686: bug #760926.
|
||||
$(use_enable cet)
|
||||
|
||||
# Helps when cross-compiling. Not to be confused with --with-sysroot.
|
||||
--with-build-sysroot="${ESYSROOT}"
|
||||
)
|
||||
|
||||
is_cross && myconf+=(
|
||||
--with-sysroot="\${prefix}/${CTARGET}"
|
||||
--includedir="\${prefix}/include/${CTARGET}"
|
||||
--with-gdb-datadir="\${datadir}/gdb/${CTARGET}"
|
||||
)
|
||||
|
||||
# gdbserver only works for native targets (CHOST==CTARGET).
|
||||
# it also doesn't support all targets, so rather than duplicate
|
||||
# the target list (which changes between versions), use the
|
||||
# "auto" value when things are turned on, which is triggered
|
||||
# whenever no --enable or --disable is given
|
||||
if is_cross || use !server ; then
|
||||
myconf+=( --disable-gdbserver )
|
||||
fi
|
||||
|
||||
myconf+=(
|
||||
--enable-64-bit-bfd
|
||||
--disable-install-libbfd
|
||||
--disable-install-libiberty
|
||||
--enable-obsolete
|
||||
# This only disables building in the readline subdir.
|
||||
# For gdb itself, it'll use the system version.
|
||||
--disable-readline
|
||||
--with-system-readline
|
||||
# This only disables building in the zlib subdir.
|
||||
# For gdb itself, it'll use the system version.
|
||||
--without-zlib
|
||||
--with-system-zlib
|
||||
--with-separate-debug-dir="${EPREFIX}"/usr/lib/debug
|
||||
$(use_with xml expat)
|
||||
$(use_with lzma)
|
||||
$(use_enable nls)
|
||||
$(use_enable sim)
|
||||
$(use_enable source-highlight)
|
||||
$(use multitarget && echo --enable-targets=all)
|
||||
$(use_with python python "${EPYTHON}")
|
||||
$(use_with xxhash)
|
||||
$(use_with guile)
|
||||
$(use_with zstd)
|
||||
|
||||
# Find libraries using the toolchain sysroot rather than the configured
|
||||
# prefix. Needed when cross-compiling.
|
||||
#
|
||||
# Check which libraries to apply this to with:
|
||||
# "${S}"/gdb/configure --help | grep without-lib | sort
|
||||
--without-lib{babeltrace,expat,gmp,iconv,ipt,lzma,mpfr,xxhash}-prefix
|
||||
)
|
||||
|
||||
# source-highlight is detected with pkg-config: bug #716558
|
||||
export ac_cv_path_pkg_config_prog_path="$(tc-getPKG_CONFIG)"
|
||||
|
||||
export CC_FOR_BUILD="$(tc-getBUILD_CC)"
|
||||
|
||||
# ensure proper compiler is detected for Clang builds: bug #831202
|
||||
export GCC_FOR_TARGET="${CC_FOR_TARGET:-$(tc-getCC)}"
|
||||
|
||||
econf "${myconf[@]}"
|
||||
}
|
||||
|
||||
src_test() {
|
||||
# Run the unittests (nabbed invocation from Fedora's spec file) at least
|
||||
emake -k -C gdb run GDBFLAGS='-batch -ex "maintenance selftest"'
|
||||
|
||||
# Too many failures
|
||||
# In fact, gdb's test suite needs some work to get passing.
|
||||
# See e.g. https://sourceware.org/gdb/wiki/TestingGDB.
|
||||
# As of 11.2, on amd64: "# of unexpected failures 8600"
|
||||
# Also, ia64 kernel crashes when gdb testsuite is running.
|
||||
#emake -k check
|
||||
}
|
||||
|
||||
src_install() {
|
||||
emake DESTDIR="${D}" install
|
||||
|
||||
find "${ED}"/usr -name libiberty.a -delete || die
|
||||
|
||||
# Delete translations that conflict with binutils-libs. bug #528088
|
||||
# Note: Should figure out how to store these in an internal gdb dir.
|
||||
if use nls ; then
|
||||
find "${ED}" \
|
||||
-regextype posix-extended -regex '.*/(bfd|opcodes)[.]g?mo$' \
|
||||
-delete || die
|
||||
fi
|
||||
|
||||
# Don't install docs when building a cross-gdb
|
||||
if [[ ${CTARGET} != ${CHOST} ]] ; then
|
||||
rm -rf "${ED}"/usr/share/{doc,info,locale} || die
|
||||
local f
|
||||
for f in "${ED}"/usr/share/man/*/* ; do
|
||||
if [[ ${f##*/} != ${CTARGET}-* ]] ; then
|
||||
mv "${f}" "${f%/*}/${CTARGET}-${f##*/}" || die
|
||||
fi
|
||||
done
|
||||
return 0
|
||||
fi
|
||||
|
||||
# Install it by hand for now:
|
||||
# https://sourceware.org/ml/gdb-patches/2011-12/msg00915.html
|
||||
# Only install if it exists due to the twisted behavior (see
|
||||
# notes in src_configure above).
|
||||
[[ -e gdbserver/gdbreplay ]] && dobin gdbserver/gdbreplay
|
||||
|
||||
docinto gdb
|
||||
dodoc gdb/CONTRIBUTE gdb/README gdb/MAINTAINERS \
|
||||
gdb/NEWS gdb/PROBLEMS
|
||||
docinto sim
|
||||
dodoc sim/{MAINTAINERS,README-HACKING}
|
||||
|
||||
if use server ; then
|
||||
docinto gdbserver
|
||||
dodoc gdbserver/README
|
||||
fi
|
||||
|
||||
# Remove shared info pages
|
||||
rm -f "${ED}"/usr/share/info/{annotate,bfd,configure,ctf-spec,standards}.info*
|
||||
|
||||
if use python ; then
|
||||
python_optimize "${ED}"/usr/share/gdb/python/gdb
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
# Portage doesn't unmerge files in /etc
|
||||
rm -vf "${EROOT}"/etc/skel/.gdbinit
|
||||
|
||||
if use prefix && [[ ${CHOST} == *-darwin* ]] ; then
|
||||
ewarn "gdb is unable to get a mach task port when installed by Prefix"
|
||||
ewarn "Portage, unprivileged. To make gdb fully functional you'll"
|
||||
ewarn "have to perform the following steps:"
|
||||
ewarn " % sudo chgrp procmod ${EPREFIX}/usr/bin/gdb"
|
||||
ewarn " % sudo chmod g+s ${EPREFIX}/usr/bin/gdb"
|
||||
fi
|
||||
}
|
@ -1,111 +0,0 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
PYTHON_COMPAT=( python3_{10..12} )
|
||||
inherit cmake flag-o-matic llvm.org llvm-utils python-single-r1
|
||||
|
||||
DESCRIPTION="The LLVM debugger"
|
||||
HOMEPAGE="https://llvm.org/"
|
||||
|
||||
LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA"
|
||||
SLOT="0/${LLVM_SOABI}"
|
||||
KEYWORDS="~amd64 ~arm ~arm64 ~loong ~x86"
|
||||
IUSE="debug debuginfod +libedit lzma ncurses +python test +xml"
|
||||
RESTRICT="test"
|
||||
REQUIRED_USE=${PYTHON_REQUIRED_USE}
|
||||
|
||||
DEPEND="
|
||||
debuginfod? (
|
||||
net-misc/curl:=
|
||||
dev-cpp/cpp-httplib:=
|
||||
)
|
||||
libedit? ( dev-libs/libedit:0= )
|
||||
lzma? ( app-arch/xz-utils:= )
|
||||
ncurses? ( >=sys-libs/ncurses-5.9-r3:0= )
|
||||
xml? ( dev-libs/libxml2:= )
|
||||
~sys-devel/clang-${PV}
|
||||
~sys-devel/llvm-${PV}[debuginfod=]
|
||||
"
|
||||
RDEPEND="
|
||||
${DEPEND}
|
||||
python? (
|
||||
${PYTHON_DEPS}
|
||||
)
|
||||
"
|
||||
BDEPEND="
|
||||
${PYTHON_DEPS}
|
||||
python? (
|
||||
>=dev-lang/swig-3.0.11
|
||||
)
|
||||
test? (
|
||||
$(python_gen_cond_dep "
|
||||
~dev-python/lit-${PV}[\${PYTHON_USEDEP}]
|
||||
dev-python/psutil[\${PYTHON_USEDEP}]
|
||||
")
|
||||
sys-devel/lld
|
||||
)
|
||||
"
|
||||
|
||||
LLVM_COMPONENTS=( lldb cmake llvm/utils )
|
||||
LLVM_TEST_COMPONENTS=( llvm/lib/Testing/Support third-party )
|
||||
llvm.org_set_globals
|
||||
|
||||
src_configure() {
|
||||
llvm_prepend_path "${LLVM_MAJOR}"
|
||||
|
||||
# bug #858389 (https://github.com/llvm/llvm-project/issues/83636)
|
||||
filter-lto
|
||||
|
||||
# LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844
|
||||
use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG"
|
||||
|
||||
local mycmakeargs=(
|
||||
-DLLDB_ENABLE_CURSES=$(usex ncurses)
|
||||
-DLLDB_ENABLE_LIBEDIT=$(usex libedit)
|
||||
-DLLDB_ENABLE_PYTHON=$(usex python)
|
||||
-DLLDB_ENABLE_LUA=OFF
|
||||
-DLLDB_ENABLE_LZMA=$(usex lzma)
|
||||
-DLLDB_ENABLE_LIBXML2=$(usex xml)
|
||||
-DLLVM_ENABLE_TERMINFO=$(usex ncurses)
|
||||
|
||||
-DLLDB_INCLUDE_TESTS=$(usex test)
|
||||
|
||||
-DCLANG_LINK_CLANG_DYLIB=ON
|
||||
# TODO: fix upstream to detect this properly
|
||||
-DHAVE_LIBDL=ON
|
||||
-DHAVE_LIBPTHREAD=ON
|
||||
|
||||
# normally we'd have to set LLVM_ENABLE_TERMINFO, HAVE_TERMINFO
|
||||
# and TERMINFO_LIBS... so just force FindCurses.cmake to use
|
||||
# ncurses with complete library set (including autodetection
|
||||
# of -ltinfo)
|
||||
-DCURSES_NEED_NCURSES=ON
|
||||
|
||||
-DCLANG_RESOURCE_DIR="../../../clang/${LLVM_MAJOR}"
|
||||
|
||||
-DLLVM_MAIN_SRC_DIR="${WORKDIR}/llvm"
|
||||
-DPython3_EXECUTABLE="${PYTHON}"
|
||||
)
|
||||
use test && mycmakeargs+=(
|
||||
-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
|
||||
-DLLVM_LIT_ARGS="$(get_lit_flags)"
|
||||
)
|
||||
|
||||
cmake_src_configure
|
||||
}
|
||||
|
||||
src_test() {
|
||||
local -x LIT_PRESERVES_TMP=1
|
||||
cmake_build check-lldb-{shell,unit}
|
||||
# failures + hangs
|
||||
#use python && cmake_build check-lldb-api
|
||||
}
|
||||
|
||||
src_install() {
|
||||
cmake_src_install
|
||||
find "${D}" -name '*.a' -delete || die
|
||||
|
||||
use python && python_optimize
|
||||
}
|
@ -1,110 +0,0 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
PYTHON_COMPAT=( python3_{10..12} )
|
||||
inherit cmake flag-o-matic llvm.org llvm-utils python-single-r1
|
||||
|
||||
DESCRIPTION="The LLVM debugger"
|
||||
HOMEPAGE="https://llvm.org/"
|
||||
|
||||
LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA"
|
||||
SLOT="0/${LLVM_SOABI}"
|
||||
IUSE="+debug debuginfod +libedit lzma ncurses +python test +xml"
|
||||
RESTRICT="test"
|
||||
REQUIRED_USE=${PYTHON_REQUIRED_USE}
|
||||
|
||||
DEPEND="
|
||||
debuginfod? (
|
||||
net-misc/curl:=
|
||||
dev-cpp/cpp-httplib:=
|
||||
)
|
||||
libedit? ( dev-libs/libedit:0= )
|
||||
lzma? ( app-arch/xz-utils:= )
|
||||
ncurses? ( >=sys-libs/ncurses-5.9-r3:0= )
|
||||
xml? ( dev-libs/libxml2:= )
|
||||
~sys-devel/clang-${PV}
|
||||
~sys-devel/llvm-${PV}[debuginfod=]
|
||||
"
|
||||
RDEPEND="
|
||||
${DEPEND}
|
||||
python? (
|
||||
${PYTHON_DEPS}
|
||||
)
|
||||
"
|
||||
BDEPEND="
|
||||
${PYTHON_DEPS}
|
||||
python? (
|
||||
>=dev-lang/swig-3.0.11
|
||||
)
|
||||
test? (
|
||||
$(python_gen_cond_dep "
|
||||
~dev-python/lit-${PV}[\${PYTHON_USEDEP}]
|
||||
dev-python/psutil[\${PYTHON_USEDEP}]
|
||||
")
|
||||
sys-devel/lld
|
||||
)
|
||||
"
|
||||
|
||||
LLVM_COMPONENTS=( lldb cmake llvm/utils )
|
||||
LLVM_TEST_COMPONENTS=( llvm/lib/Testing/Support third-party )
|
||||
llvm.org_set_globals
|
||||
|
||||
src_configure() {
|
||||
llvm_prepend_path "${LLVM_MAJOR}"
|
||||
|
||||
# bug #858389 (https://github.com/llvm/llvm-project/issues/83636)
|
||||
filter-lto
|
||||
|
||||
# LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844
|
||||
use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG"
|
||||
|
||||
local mycmakeargs=(
|
||||
-DLLDB_ENABLE_CURSES=$(usex ncurses)
|
||||
-DLLDB_ENABLE_LIBEDIT=$(usex libedit)
|
||||
-DLLDB_ENABLE_PYTHON=$(usex python)
|
||||
-DLLDB_ENABLE_LUA=OFF
|
||||
-DLLDB_ENABLE_LZMA=$(usex lzma)
|
||||
-DLLDB_ENABLE_LIBXML2=$(usex xml)
|
||||
-DLLVM_ENABLE_TERMINFO=$(usex ncurses)
|
||||
|
||||
-DLLDB_INCLUDE_TESTS=$(usex test)
|
||||
|
||||
-DCLANG_LINK_CLANG_DYLIB=ON
|
||||
# TODO: fix upstream to detect this properly
|
||||
-DHAVE_LIBDL=ON
|
||||
-DHAVE_LIBPTHREAD=ON
|
||||
|
||||
# normally we'd have to set LLVM_ENABLE_TERMINFO, HAVE_TERMINFO
|
||||
# and TERMINFO_LIBS... so just force FindCurses.cmake to use
|
||||
# ncurses with complete library set (including autodetection
|
||||
# of -ltinfo)
|
||||
-DCURSES_NEED_NCURSES=ON
|
||||
|
||||
-DCLANG_RESOURCE_DIR="../../../clang/${LLVM_MAJOR}"
|
||||
|
||||
-DLLVM_MAIN_SRC_DIR="${WORKDIR}/llvm"
|
||||
-DPython3_EXECUTABLE="${PYTHON}"
|
||||
)
|
||||
use test && mycmakeargs+=(
|
||||
-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
|
||||
-DLLVM_LIT_ARGS="$(get_lit_flags)"
|
||||
)
|
||||
|
||||
cmake_src_configure
|
||||
}
|
||||
|
||||
src_test() {
|
||||
local -x LIT_PRESERVES_TMP=1
|
||||
cmake_build check-lldb-{shell,unit}
|
||||
# failures + hangs
|
||||
#use python && cmake_build check-lldb-api
|
||||
}
|
||||
|
||||
src_install() {
|
||||
cmake_src_install
|
||||
find "${D}" -name '*.a' -delete || die
|
||||
|
||||
use python && python_optimize
|
||||
}
|
Binary file not shown.
Binary file not shown.
@ -1,5 +1,4 @@
|
||||
DIST junit-4.13.2_p20240222.tar.gz 1007781 BLAKE2B 4eeab59aa7ff3cc65c73318acb562523e6ba781da6a0baf28f8fa82042f1affddb583d188c550207a7e267b3475f4a546e8e25eba61d5ba36d13bd7e277ad156 SHA512 89506413b7aca7c2d0b41c8297dde48c1b90a44133bfb3ebf300247c7837839a3aff2d785d891ddb8762427d718eacf016a1d67e2e24edda05f4eae36ca311f1
|
||||
DIST junit-5.10.2.tar.gz 2942035 BLAKE2B 4880df74b7cbf23acd34c716f9fce26edd28b31c14d720e129e9e1f06aa35b70c447a0d87904e083a54663fba17e0b2b470678dc32480e0a11c5ebf46d5fe38e SHA512 c36ff7c2bd21f9a64c93b836fc1017a8a96ebcc0079cf1d95b09f5b764435178c2dc2336f2493e7e4df561013693dce4f08dfe0cf3bd76cc9b820313f64d064f
|
||||
DIST junit-5.9.2.tar.gz 2882173 BLAKE2B 6baf8768654b399d64237a110dcb6a821ab7dc8964254a5d00f7ffb65c789818aed51ad7042a963a47669042baaeec87b5d0453643a2b0eeeaf6393a42c75fd6 SHA512 5673577f773042b4e253241d27298a60dbac239502788e1d999fbe0d3ffe76b29c90d4fb43660f2e2e00e3e9b8d4c1b6b909ff95dc6e87ccb6f7b009ae6b0e78
|
||||
DIST junit3.8.2.zip 461426 BLAKE2B 8fbef1ccdf7f71c611976d63f45838f4cb2564da5f5064e7abc39931a3c99039a40660093aba2cc3c70af761171125f434c16c52021226f2e92fdf23597dbf25 SHA512 f203332ccc2bdc38c683a95bdbe448f38cbfbeea81ecc431bf9ebf0a3292f0150fcfe5cd5dd6da481be034366820f95775a33581931aed9e4cc12a6ff27e3930
|
||||
DIST junit5-java18-compatibility.patch 742 BLAKE2B 89bfa36330278cdee2f7f66ed5527895e650a7b490d3f3695772a27541be1d8383c1742bab4e8494f3a84c29f93f553880a3bd5cd4d84792cf662fbc33a6e594 SHA512 5a9a562eb61a875764da369ff40da6ff95c6de8b3b3ecb612634112076741d75d6eab385743843b4fe7ca8a1827960e06550f6e90c8b7ef75b55006b41c416cd
|
||||
|
@ -1,337 +0,0 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
# Declare the 'doc' USE flag in IUSE -- not JAVA_PKG_IUSE -- to
|
||||
# prevent java-pkg-simple.eclass from handling Javadoc; instead,
|
||||
# let this ebuild handle Javadoc generation and installation itself.
|
||||
# This ebuild invokes java-pkg-simple.eclass's phase functions
|
||||
# multiple times to build multiple modules, but the eclass always
|
||||
# installs each module's Javadoc to the same directory, which would
|
||||
# trigger an error when the second module's Javadoc is installed.
|
||||
JAVA_PKG_IUSE="source"
|
||||
|
||||
inherit java-pkg-2 java-pkg-simple
|
||||
|
||||
DESCRIPTION="Simple framework to write repeatable tests"
|
||||
HOMEPAGE="https://junit.org/junit5/"
|
||||
SRC_URI="https://github.com/junit-team/junit5/archive/r${PV}.tar.gz -> ${P}.tar.gz"
|
||||
S="${WORKDIR}/junit5-r${PV}"
|
||||
LICENSE="EPL-2.0"
|
||||
|
||||
SLOT="5"
|
||||
KEYWORDS="amd64 ~arm arm64 ppc64 x86"
|
||||
IUSE="doc migration-support suite vintage"
|
||||
|
||||
CP_DEPEND="
|
||||
dev-java/apiguardian-api:0
|
||||
dev-java/opentest4j:0
|
||||
dev-java/open-test-reporting-events:0
|
||||
dev-java/picocli:0
|
||||
dev-java/univocity-parsers:0
|
||||
"
|
||||
|
||||
# java-utils-2.eclass does not support
|
||||
# USE-conditional dependencies in CP_DEPEND
|
||||
COND_DEPEND="
|
||||
migration-support? ( dev-java/junit:4 )
|
||||
vintage? ( dev-java/junit:4 )
|
||||
"
|
||||
|
||||
# Limiting JDK version to >=11 for module-info.java in this package
|
||||
# https://bugs.gentoo.org/796875#c3
|
||||
DEPEND="
|
||||
>=virtual/jdk-11:*
|
||||
${CP_DEPEND}
|
||||
${COND_DEPEND}
|
||||
"
|
||||
|
||||
RDEPEND="
|
||||
>=virtual/jre-1.8:*
|
||||
${CP_DEPEND}
|
||||
${COND_DEPEND}
|
||||
"
|
||||
|
||||
src_configure() {
|
||||
# Please make sure to declare a module's dependencies before the module itself.
|
||||
# Useful upstream documentation regarding modules and dependencies:
|
||||
# https://junit.org/junit5/docs/current/user-guide/index.html#dependency-metadata
|
||||
# https://junit.org/junit5/docs/current/user-guide/index.html#dependency-diagram
|
||||
JUNIT5_MODULES=(
|
||||
junit-platform-commons
|
||||
junit-platform-engine
|
||||
junit-platform-launcher
|
||||
junit-platform-reporting
|
||||
junit-platform-console # For launching tests from CLI;
|
||||
# an eclass would need it to support running tests using JUnit 5
|
||||
|
||||
$(use suite && echo \
|
||||
junit-platform-suite-api \
|
||||
junit-platform-suite-commons \
|
||||
junit-platform-suite-engine \
|
||||
)
|
||||
|
||||
junit-jupiter-api
|
||||
junit-jupiter-engine # For JUnit Jupiter tests -- the so-called
|
||||
# "JUnit 5 tests", which cannot run on earlier JUnit versions
|
||||
junit-jupiter-params # For parameterized tests; the junit-jupiter
|
||||
# aggregator module includes it, so building it unconditionally
|
||||
$(usev migration-support junit-jupiter-migrationsupport)
|
||||
|
||||
$(usev vintage junit-vintage-engine)
|
||||
|
||||
# Modules not included:
|
||||
# - junit-bom: Has no sources; solely for helping Maven and Gradle
|
||||
# projects that use JUnit 5 manage dependencies easier
|
||||
# - junit-jupiter: Aggregator; does not have 'src/main/java'
|
||||
# - junit-platform-console-standalone: Has no sources; solely used
|
||||
# by the upstream to build a fat JAR that bundles everything, so
|
||||
# users can use just this single JAR to run JUnit 5
|
||||
# - junit-platform-jfr: For an experimental feature
|
||||
# - junit-platform-runner: Deprecated
|
||||
# - junit-platform-suite: Aggregator; does not have 'src/main/java'
|
||||
# - junit-platform-testkit: Requires >=dev-java/assertj-core-3.14.0
|
||||
)
|
||||
local cp_packages=()
|
||||
(use migration-support || use vintage) && cp_packages+=( junit-4 )
|
||||
local save_IFS="${IFS}"
|
||||
IFS=',' JAVA_GENTOO_CLASSPATH="${cp_packages[*]}"
|
||||
IFS="${save_IFS}"
|
||||
|
||||
JUNIT5_VM_VERSION="$(java-config --get-env PROVIDES_VERSION)"
|
||||
}
|
||||
|
||||
junit5_foreach_module() {
|
||||
local module
|
||||
for module in "${JUNIT5_MODULES[@]}"; do
|
||||
junit5_module_do "${module}" "${@}"
|
||||
done
|
||||
}
|
||||
|
||||
junit5_module_do() {
|
||||
local module="${1}"
|
||||
# Invocation of the passed function will not be guarded by '|| die'.
|
||||
# Like the case for multibuild_foreach_variant(), it is recommended
|
||||
# that the passed function itself calls 'die'.
|
||||
local func=( "${@:2}" )
|
||||
|
||||
einfo "Running '${func[@]}' for ${module} ..."
|
||||
pushd "${module}" > /dev/null || die "Failed to enter directory '${module}'"
|
||||
|
||||
# Set up Java eclass variables that are
|
||||
# supposed to be set in the ebuild global scope
|
||||
|
||||
local JAVA_JAR_FILENAME="${module}.jar"
|
||||
|
||||
local JAVA_SRC_DIR=(
|
||||
src/main/java
|
||||
src/module
|
||||
)
|
||||
|
||||
local JAVA_RESOURCE_DIRS=()
|
||||
local default_resource_dir="src/main/resources"
|
||||
[[ -d "${default_resource_dir}" ]] &&
|
||||
JAVA_RESOURCE_DIRS+=( "${default_resource_dir}" )
|
||||
|
||||
if [[ "${module}" == junit-platform-console ]]; then
|
||||
local JAVA_MAIN_CLASS="org.junit.platform.console.ConsoleLauncher"
|
||||
local JAVA_LAUNCHER_FILENAME="${module}"
|
||||
fi
|
||||
|
||||
# Invoke the passed function
|
||||
"${func[@]}"
|
||||
local ret="${?}"
|
||||
|
||||
popd > /dev/null || die "Failed to leave directory '${module}'"
|
||||
return "${ret}"
|
||||
}
|
||||
|
||||
junit5_gen_cp() {
|
||||
echo "$(java-pkg_getjars --build-only --with-dependencies \
|
||||
"${JAVA_GENTOO_CLASSPATH}"):${JAVA_GENTOO_CLASSPATH_EXTRA}"
|
||||
}
|
||||
|
||||
junit5_module_compile() {
|
||||
if [[ "${module}" == junit-platform-console ]]; then
|
||||
# Unlike other modules that have a src/main/java9 directory, for this
|
||||
# module, the upstream puts the class files built from src/main/java9
|
||||
# in their JAR's top-level directory instead of META-INF/versions/9
|
||||
cp -rv src/main/java9/* src/main/java/ ||
|
||||
die "Failed to merge ${module}'s sources for Java 9+"
|
||||
# Remove for the [[ -d src/main/java9 ]] test
|
||||
# during versioned directory handling
|
||||
rm -rv src/main/java9 ||
|
||||
die "Failed to remove ${module}'s Java 9+ source directory"
|
||||
fi
|
||||
|
||||
java-pkg-simple_src_compile
|
||||
local sources="sources.lst"
|
||||
local classes="target/classes"
|
||||
|
||||
# Collect a list of all compiler input files for building Javadoc
|
||||
local source
|
||||
while read source; do
|
||||
echo "${module}/${source}" >> "${all_sources}"
|
||||
done < "${sources}" ||
|
||||
die "Failed to add ${module}'s sources to Javadoc input list"
|
||||
|
||||
# Handle classes that will go into versioned directories. This will be
|
||||
# no longer needed after https://bugs.gentoo.org/900433 is implemented.
|
||||
local vm_ver
|
||||
for vm_ver in 9 17; do
|
||||
local versioned_src="src/main/java${vm_ver}"
|
||||
if [[ -d "${versioned_src}" ]]; then
|
||||
if ver_test "${JUNIT5_VM_VERSION}" -ge "${vm_ver}"; then
|
||||
local versioned_classes="target/${vm_ver}/classes"
|
||||
mkdir -p "${versioned_classes}" ||
|
||||
die "Failed to create directory for ${module}'s Java ${vm_ver}+ classes"
|
||||
ejavac -d "${versioned_classes}" -encoding "${JAVA_ENCODING}" \
|
||||
-classpath "${classes}:$(junit5_gen_cp)" ${JAVAC_ARGS} \
|
||||
$(find "${versioned_src}" -type f -name '*.java')
|
||||
"$(java-config --jar)" -uvf "${JAVA_JAR_FILENAME}" \
|
||||
--release "${vm_ver}" -C "${versioned_classes}" . ||
|
||||
die "Failed to add ${module}'s Java ${vm_ver}+ classes to JAR"
|
||||
else
|
||||
# Modules that may hit this branch as of 5.9.2:
|
||||
# - junit-platform-console:
|
||||
# src/main/java17/.../ConsoleUtils.java tries to use
|
||||
# java.io.Console.charset() (available since Java 17) to get
|
||||
# the default output charset. It is fine to not use this
|
||||
# file, even if the built artifacts will be used on JRE 17+,
|
||||
# as src/main/java/.../ConsoleUtils.java still gets the
|
||||
# default from java.nio.charset.Charset.defaultCharset().
|
||||
elog "JDK ${JUNIT5_VM_VERSION} used; skipping Java ${vm_ver}-dependent parts in ${module}"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
# Add the current module's JAR to classpath
|
||||
# for the module's reverse dependencies in this package
|
||||
JAVA_GENTOO_CLASSPATH_EXTRA+=":${S}/${module}/${JAVA_JAR_FILENAME}"
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
local all_sources="${S}/all-sources.lst"
|
||||
junit5_foreach_module junit5_module_compile
|
||||
|
||||
if use doc; then
|
||||
einfo "Generating Javadoc for all modules ..."
|
||||
local apidoc="target/api"
|
||||
mkdir -p "${apidoc}" || die "Failed to create Javadoc directory"
|
||||
ejavadoc -d "${apidoc}" \
|
||||
-encoding "${JAVA_ENCODING}" -docencoding UTF-8 -charset UTF-8 \
|
||||
-classpath "$(junit5_gen_cp)" ${JAVADOC_ARGS:- -quiet} \
|
||||
-windowtitle "JUnit ${PV} API" \
|
||||
"@${all_sources}"
|
||||
fi
|
||||
}
|
||||
|
||||
src_test() {
|
||||
# Running the JUnit 5 modules' tests (located in each module's
|
||||
# 'src/test/java') has a few obstacles:
|
||||
# - Some test sources use text blocks -- a feature introduced in Java 15.
|
||||
# A JDK at a lower version, e.g. 11, cannot compile them.
|
||||
# - Some test classes depend on JUnit 5 modules that this ebuild does not
|
||||
# include, like junit-platform-runner and junit-platform-testkit.
|
||||
#
|
||||
# Therefore, this ebuild uses a simpler approach to test the artifacts just
|
||||
# built: it uses the artifacts to run tests in examples under the
|
||||
# 'documentation/src' directory. The test coverage will not be impressive,
|
||||
# but at least this approach verifies that the copy of JUnit 5 just built
|
||||
# is capable of running some simple tests launched from CLI.
|
||||
|
||||
local JUNIT5_TEST_SRC_DIR="documentation/src/test/java"
|
||||
local JUNIT5_TEST_RESOURCE_DIR="documentation/src/test/resources"
|
||||
local JUNIT5_TEST_RM=(
|
||||
$(usev !migration-support example/IgnoredTestsDemo.java)
|
||||
$(use !suite && echo \
|
||||
example/DocumentationTestSuite.java \
|
||||
example/SuiteDemo.java \
|
||||
)
|
||||
$(usev !vintage example/JUnit4Tests.java)
|
||||
|
||||
# Need excluded module junit-platform-runner
|
||||
example/JUnitPlatformClassDemo.java
|
||||
example/JUnitPlatformSuiteDemo.java
|
||||
|
||||
# Need excluded module junit-platform-testkit
|
||||
example/testkit/
|
||||
|
||||
# Not necessary for the tests; some files even require extra dependency
|
||||
org/junit/api/tools/
|
||||
|
||||
# Needs dev-java/hamcrest; no need to pull in extra dependency
|
||||
# as the examples already provide ample tests to run
|
||||
example/HamcrestAssertionsDemo.java
|
||||
|
||||
# Makes an HTTP request and expects a certain response
|
||||
example/session/HttpTests.java
|
||||
)
|
||||
|
||||
pushd "${JUNIT5_TEST_SRC_DIR}" > /dev/null ||
|
||||
die "Failed to enter test source directory"
|
||||
rm -rv "${JUNIT5_TEST_RM[@]}" ||
|
||||
die "Failed to remove unneeded test sources"
|
||||
# Test sources expect the working directory to be 'documentation'
|
||||
sed -i -e "s|src/test/resources|${JUNIT5_TEST_RESOURCE_DIR}|g" \
|
||||
example/ParameterizedTestDemo.java ||
|
||||
die "Failed to update file paths in test sources"
|
||||
popd > /dev/null || die "Failed to leave test source directory"
|
||||
|
||||
local test_dir="${T}/junit5_src_test"
|
||||
local example_classes="${test_dir}/classes"
|
||||
local test_classes="${test_dir}/test-classes"
|
||||
mkdir -p "${example_classes}" "${test_classes}" ||
|
||||
die "Failed to create test directories"
|
||||
|
||||
local example_sources="${test_dir}/sources.lst"
|
||||
local test_sources="${test_dir}/test-sources.lst"
|
||||
find documentation/src/main/java -type f -name '*.java' > "${example_sources}" ||
|
||||
die "Failed to get a list of example sources"
|
||||
find documentation/src/test/java -type f -name '*.java' > "${test_sources}" ||
|
||||
die "Failed to get a list of test sources"
|
||||
|
||||
ejavac -d "${example_classes}" -encoding "${JAVA_ENCODING}" \
|
||||
-classpath "$(junit5_gen_cp)" ${JAVAC_ARGS} \
|
||||
"@${example_sources}"
|
||||
|
||||
local test_cp="${example_classes}:${JUNIT5_TEST_RESOURCE_DIR}:$(junit5_gen_cp)"
|
||||
ejavac -d "${test_classes}" -encoding "${JAVA_ENCODING}" \
|
||||
-classpath "${test_cp}" ${JAVAC_ARGS} \
|
||||
"@${test_sources}"
|
||||
|
||||
set -- "$(java-config --java)" -classpath "${test_classes}:${test_cp}" \
|
||||
org.junit.platform.console.ConsoleLauncher \
|
||||
--disable-ansi-colors --fail-if-no-tests --scan-classpath \
|
||||
--include-classname='^(Test.*|.+[.$]Test.*|.*Tests?|.*Demo)$' \
|
||||
--exclude-tag="exclude"
|
||||
echo "${@}" >&2
|
||||
"${@}"
|
||||
local status="${?}"
|
||||
[[ "${status}" -eq 2 ]] && die "JUnit did not discover any tests"
|
||||
[[ "${status}" -eq 0 ]] || die "ConsoleLauncher failed"
|
||||
}
|
||||
|
||||
junit5_module_install() {
|
||||
# It is OK to let java-pkg-simple_src_install call einstalldocs for
|
||||
# each module as long as each documentation file being installed
|
||||
# has a unique filename among _all_ modules; otherwise, some files
|
||||
# would overwrite other ones.
|
||||
if [[ -f README.md ]]; then
|
||||
mv -v README.md "README-${module}.md" ||
|
||||
die "Failed to rename ${module}'s README.md"
|
||||
fi
|
||||
java-pkg-simple_src_install
|
||||
}
|
||||
|
||||
src_install() {
|
||||
junit5_foreach_module junit5_module_install
|
||||
einstalldocs # For project-global documentation
|
||||
|
||||
if use doc; then
|
||||
einfo "Installing Javadoc for all modules ..."
|
||||
local apidoc="target/api"
|
||||
java-pkg_dojavadoc "${apidoc}"
|
||||
fi
|
||||
}
|
@ -1,135 +0,0 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit java-vm-2 toolchain-funcs
|
||||
|
||||
abi_uri() {
|
||||
local baseuri="https://github.com/adoptium/temurin${SLOT}-binaries/releases/download/jdk-${MY_PV}/"
|
||||
local musl=
|
||||
local os=linux
|
||||
|
||||
case ${2} in
|
||||
*-macos) os=mac ;;
|
||||
*-solaris) os=solaris ;;
|
||||
esac
|
||||
|
||||
if [[ ${3} == musl ]]; then
|
||||
os=alpine-linux
|
||||
musl=true
|
||||
fi
|
||||
|
||||
echo "${2-$1}? (
|
||||
${musl:+ elibc_musl? ( }
|
||||
${baseuri}/OpenJDK${SLOT}U-jdk_${1}_${os}_hotspot_${MY_PV//+/_}.tar.gz
|
||||
${musl:+ ) } )"
|
||||
}
|
||||
|
||||
MY_PV=${PV/_p/+}
|
||||
SLOT=$(ver_cut 1)
|
||||
|
||||
SRC_URI="
|
||||
$(abi_uri aarch64 arm64)
|
||||
$(abi_uri arm)
|
||||
$(abi_uri ppc64le ppc64)
|
||||
$(abi_uri x64 amd64)
|
||||
$(abi_uri x64 x64-macos)
|
||||
$(abi_uri x64 amd64 musl)
|
||||
"
|
||||
|
||||
DESCRIPTION="Prebuilt Java JDK binaries provided by Eclipse Temurin"
|
||||
HOMEPAGE="https://adoptium.net"
|
||||
LICENSE="GPL-2-with-classpath-exception"
|
||||
KEYWORDS="amd64 ~arm arm64 ppc64 ~x64-macos"
|
||||
IUSE="alsa cups headless-awt selinux source"
|
||||
|
||||
RDEPEND="
|
||||
>=sys-apps/baselayout-java-0.1.0-r1
|
||||
kernel_linux? (
|
||||
media-libs/fontconfig:1.0
|
||||
media-libs/freetype:2
|
||||
media-libs/harfbuzz
|
||||
elibc_glibc? ( >=sys-libs/glibc-2.2.5:* )
|
||||
elibc_musl? ( sys-libs/musl )
|
||||
sys-libs/zlib
|
||||
alsa? ( media-libs/alsa-lib )
|
||||
cups? ( net-print/cups )
|
||||
selinux? ( sec-policy/selinux-java )
|
||||
!headless-awt? (
|
||||
x11-libs/libX11
|
||||
x11-libs/libXext
|
||||
x11-libs/libXi
|
||||
x11-libs/libXrender
|
||||
x11-libs/libXtst
|
||||
)
|
||||
)"
|
||||
|
||||
RESTRICT="preserve-libs splitdebug"
|
||||
QA_PREBUILT="*"
|
||||
|
||||
S="${WORKDIR}/jdk-${MY_PV}"
|
||||
|
||||
pkg_pretend() {
|
||||
if [[ "$(tc-is-softfloat)" != "no" ]]; then
|
||||
die "These binaries require a hardfloat system."
|
||||
fi
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
default
|
||||
if [[ ${A} == *_mac_* ]] ; then
|
||||
mv -v "${S}/Contents/Home/"* "${S}" || die
|
||||
rm -Rf "${S}/Contents" # drop macOS executable
|
||||
fi
|
||||
}
|
||||
|
||||
src_install() {
|
||||
local dest="/opt/${P}"
|
||||
local ddest="${ED}/${dest#/}"
|
||||
|
||||
# on macOS if they would exist they would be called .dylib, but most
|
||||
# importantly, there are no different providers, so everything
|
||||
# that's shipped works.
|
||||
if [[ ${A} != *_mac_* ]] ; then
|
||||
# Not sure why they bundle this as it's commonly available and they
|
||||
# only do so on x86_64. It's needed by libfontmanager.so. IcedTea
|
||||
# also has an explicit dependency while Oracle seemingly dlopens it.
|
||||
rm -vf lib/libfreetype.so || die
|
||||
|
||||
# prefer system copy # https://bugs.gentoo.org/776676
|
||||
rm -vf lib/libharfbuzz.so || die
|
||||
|
||||
# Oracle and IcedTea have libjsoundalsa.so depending on
|
||||
# libasound.so.2 but AdoptOpenJDK only has libjsound.so. Weird.
|
||||
if ! use alsa ; then
|
||||
rm -v lib/libjsound.* || die
|
||||
fi
|
||||
|
||||
if use headless-awt ; then
|
||||
rm -v lib/lib*{[jx]awt,splashscreen}* || die
|
||||
fi
|
||||
fi
|
||||
|
||||
if ! use source ; then
|
||||
rm -v lib/src.zip || die
|
||||
fi
|
||||
|
||||
rm -v lib/security/cacerts || die
|
||||
dosym -r /etc/ssl/certs/java/cacerts "${dest}"/lib/security/cacerts
|
||||
|
||||
dodir "${dest}"
|
||||
cp -pPR * "${ddest}" || die
|
||||
|
||||
# provide stable symlink
|
||||
dosym "${P}" "/opt/${PN}-${SLOT}"
|
||||
|
||||
java-vm_install-env "${FILESDIR}"/${PN}.env.sh
|
||||
java-vm_set-pax-markings "${ddest}"
|
||||
java-vm_revdep-mask
|
||||
java-vm_sandbox-predict /dev/random /proc/self/coredump_filter
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
java-vm-2_pkg_postinst
|
||||
}
|
@ -1,7 +1,5 @@
|
||||
DIST OpenJDK11U-jre_x64_linux_hotspot_11.0.20.1_1.tar.gz 43033465 BLAKE2B 484ec2b8512e2c759840157608ae4b7cdd2729533589a8ad1ba718779e88319fa02da4c9f59b56dea93123646ca7a55e84675985679a25f5163d7511b8147f66 SHA512 4a962e2ee8c885753b7bc25c3a30af307bee2c8829438eb85b9a7b20abd72fa22b340cfb9b6a0721e8fb00379bd3a230653daa52f5f1e3e6d5ed028ea2066c99
|
||||
DIST OpenJDK11U-jre_x64_linux_hotspot_11.0.23_9.tar.gz 43361001 BLAKE2B 7f5fe24de2f0967ceeaee783430fc1aa9d8c510d955eff2e10c9d94058a2985308e99a57f1dffb3adb3cee9d90d0a553abcb5438a41a0cda054b0a260e435f31 SHA512 82b4b021b7fb136a9016623cd6ab7b4ac1f5fc3bff69594b74c8b2b0305d6b0c7d20d12759062826dc27ce0b50ea176bcec76960d3d458549e11a5452b7df014
|
||||
DIST OpenJDK17U-jre_x64_linux_hotspot_17.0.11_9.tar.gz 46382823 BLAKE2B 79612a8a73cee7a8ac022779a12077fa613ff7b18d8d5d198c42ae886cba21c46a1919422249696a74b5e5491542b88b57244eaa74f3b1bc8ae63ae851d10d40 SHA512 a98534b49a71a1bb6488aff4f1d2fc4fdcadfbaa17ef1ca3003568aed8498b3d3618c065334dd6bd9cffab0af15b6cbc980353e09da66c5ac69f0c96f9b0a889
|
||||
DIST OpenJDK17U-jre_x64_linux_hotspot_17.0.8.1_1.tar.gz 46332104 BLAKE2B cd27d457ecb64a17cd86fb7f348e7868b6a5e4bb59a98971dabfcdc213e4afc70dc7c1c912dcf209c9a3931ce2abece961480cc06039b565e09f70e55269ceb9 SHA512 773f39ec8f66d1285df74706014c690f3ade9c960bc27c5032bd4c100b2e89c3d4a23150af548128bdf499d64ba1567aa065f4a39f5e583600d86414d283f66f
|
||||
DIST OpenJDK21U-jre_x64_linux_hotspot_21.0.3_9.tar.gz 52430722 BLAKE2B 32a969bfd1a6e334db34db6f12317810a81b60b0f6c4c978aee3fb588ed30daca0b54089feba7721a51f71d2ebb89d453aba8e7ded29f524d5923a3804828d88 SHA512 2fefc61c36f4cf4bbe722aef93aced8dc4b76d2fddeb91ad8687dc54f7afd9dff03df25ff12214bbd66fcbd637ff0ca5a21a1d839e60da9622904284bc2abfee
|
||||
DIST OpenJDK8U-jre_x64_linux_hotspot_8u382b05.tar.gz 41389960 BLAKE2B e79d0d6b08a0f2066c877b3f970742a209f1b56a46dd4e5bc3b3942b590ae4eb0e72ac9b909d2e0d9b61bee76d507d9df8def88c16ec87930152b8375c6272e5 SHA512 536e2b3f87907aa2d79938dae3f92efa5d6402ae252e147beb9ddc3f81b1001a8031e4eba7132b0640dad36652fb619b761e038a88246442fc8592d5fe8a9c41
|
||||
DIST OpenJDK8U-jre_x64_linux_hotspot_8u412b08.tar.gz 41415973 BLAKE2B 1372ef4f608eaecd4a82c8e5598e67b91d4b200818a896c2977f40d7c228377ad033187e5afda7cd812b37950b998bc764c155d952a62b7bf7c625299b9477d9 SHA512 f1e3a168724fd9826262d1f4e895d0809618414231e246750f96522bc89fb4f27fed83f83dd548ddd859b519512ac7a080c6a3482a9d129275102aed973eab28
|
||||
|
@ -1,83 +0,0 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit java-vm-2
|
||||
|
||||
abi_uri() {
|
||||
echo "${2-$1}? (
|
||||
https://github.com/adoptium/temurin${SLOT}-binaries/releases/download/jdk-${MY_PV}/OpenJDK${SLOT}U-jre_${1}_linux_hotspot_${MY_PV//+/_}.tar.gz
|
||||
)"
|
||||
}
|
||||
|
||||
MY_PV=${PV/_p/+}
|
||||
SLOT=${MY_PV%%[.+]*}
|
||||
|
||||
SRC_URI="
|
||||
$(abi_uri x64 amd64)
|
||||
"
|
||||
|
||||
DESCRIPTION="Prebuilt Java JRE binaries provided by Eclipse Temurin"
|
||||
HOMEPAGE="https://adoptopenjdk.net"
|
||||
LICENSE="GPL-2-with-classpath-exception"
|
||||
KEYWORDS="amd64"
|
||||
IUSE="alsa cups headless-awt selinux"
|
||||
|
||||
RDEPEND="
|
||||
media-libs/fontconfig:1.0
|
||||
media-libs/freetype:2
|
||||
>net-libs/libnet-1.1
|
||||
>=sys-apps/baselayout-java-0.1.0-r1
|
||||
>=sys-libs/glibc-2.2.5:*
|
||||
sys-libs/zlib
|
||||
alsa? ( media-libs/alsa-lib )
|
||||
cups? ( net-print/cups )
|
||||
selinux? ( sec-policy/selinux-java )
|
||||
!headless-awt? (
|
||||
x11-libs/libX11
|
||||
x11-libs/libXext
|
||||
x11-libs/libXi
|
||||
x11-libs/libXrender
|
||||
x11-libs/libXtst
|
||||
)"
|
||||
|
||||
RESTRICT="preserve-libs splitdebug"
|
||||
QA_PREBUILT="*"
|
||||
|
||||
S="${WORKDIR}/jdk-${MY_PV}-jre"
|
||||
|
||||
src_install() {
|
||||
local dest="/opt/${PN}-${SLOT}"
|
||||
local ddest="${ED}/${dest#/}"
|
||||
|
||||
# Not sure why they bundle this as it's commonly available and they
|
||||
# only do so on x86_64. It's needed by libfontmanager.so. IcedTea
|
||||
# also has an explicit dependency while Oracle seemingly dlopens it.
|
||||
rm -vf lib/libfreetype.so || die
|
||||
|
||||
# Oracle and IcedTea have libjsoundalsa.so depending on
|
||||
# libasound.so.2 but AdoptOpenJDK only has libjsound.so. Weird.
|
||||
if ! use alsa ; then
|
||||
rm -v lib/libjsound.* || die
|
||||
fi
|
||||
|
||||
if use headless-awt ; then
|
||||
rm -v lib/lib*{[jx]awt,splashscreen}* || die
|
||||
fi
|
||||
|
||||
rm -v lib/security/cacerts || die
|
||||
dosym -r /etc/ssl/certs/java/cacerts "${dest}"/lib/security/cacerts
|
||||
|
||||
dodir "${dest}"
|
||||
cp -pPR * "${ddest}" || die
|
||||
|
||||
java-vm_install-env "${FILESDIR}"/${PN}.env.sh
|
||||
java-vm_set-pax-markings "${ddest}"
|
||||
java-vm_revdep-mask
|
||||
java-vm_sandbox-predict /dev/random /proc/self/coredump_filter
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
java-vm-2_pkg_postinst
|
||||
}
|
@ -1,83 +0,0 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit java-vm-2
|
||||
|
||||
abi_uri() {
|
||||
echo "${2-$1}? (
|
||||
https://github.com/adoptium/temurin${SLOT}-binaries/releases/download/jdk-${MY_PV}/OpenJDK${SLOT}U-jre_${1}_linux_hotspot_${MY_PV//+/_}.tar.gz
|
||||
)"
|
||||
}
|
||||
|
||||
MY_PV=${PV/_p/+}
|
||||
SLOT=${MY_PV%%[.+]*}
|
||||
|
||||
SRC_URI="
|
||||
$(abi_uri x64 amd64)
|
||||
"
|
||||
|
||||
DESCRIPTION="Prebuilt Java JRE binaries provided by Eclipse Temurin"
|
||||
HOMEPAGE="https://adoptopenjdk.net"
|
||||
LICENSE="GPL-2-with-classpath-exception"
|
||||
KEYWORDS="amd64"
|
||||
IUSE="alsa cups headless-awt selinux"
|
||||
|
||||
RDEPEND="
|
||||
media-libs/fontconfig:1.0
|
||||
media-libs/freetype:2
|
||||
>net-libs/libnet-1.1
|
||||
>=sys-apps/baselayout-java-0.1.0-r1
|
||||
>=sys-libs/glibc-2.2.5:*
|
||||
sys-libs/zlib
|
||||
alsa? ( media-libs/alsa-lib )
|
||||
cups? ( net-print/cups )
|
||||
selinux? ( sec-policy/selinux-java )
|
||||
!headless-awt? (
|
||||
x11-libs/libX11
|
||||
x11-libs/libXext
|
||||
x11-libs/libXi
|
||||
x11-libs/libXrender
|
||||
x11-libs/libXtst
|
||||
)"
|
||||
|
||||
RESTRICT="preserve-libs splitdebug"
|
||||
QA_PREBUILT="*"
|
||||
|
||||
S="${WORKDIR}/jdk-${MY_PV}-jre"
|
||||
|
||||
src_install() {
|
||||
local dest="/opt/${PN}-${SLOT}"
|
||||
local ddest="${ED}/${dest#/}"
|
||||
|
||||
# Not sure why they bundle this as it's commonly available and they
|
||||
# only do so on x86_64. It's needed by libfontmanager.so. IcedTea
|
||||
# also has an explicit dependency while Oracle seemingly dlopens it.
|
||||
rm -vf lib/libfreetype.so || die
|
||||
|
||||
# Oracle and IcedTea have libjsoundalsa.so depending on
|
||||
# libasound.so.2 but AdoptOpenJDK only has libjsound.so. Weird.
|
||||
if ! use alsa ; then
|
||||
rm -v lib/libjsound.* || die
|
||||
fi
|
||||
|
||||
if use headless-awt ; then
|
||||
rm -v lib/lib*{[jx]awt,splashscreen}* || die
|
||||
fi
|
||||
|
||||
rm -v lib/security/cacerts || die
|
||||
dosym -r /etc/ssl/certs/java/cacerts "${dest}"/lib/security/cacerts
|
||||
|
||||
dodir "${dest}"
|
||||
cp -pPR * "${ddest}" || die
|
||||
|
||||
java-vm_install-env "${FILESDIR}"/${PN}.env.sh
|
||||
java-vm_set-pax-markings "${ddest}"
|
||||
java-vm_revdep-mask
|
||||
java-vm_sandbox-predict /dev/random /proc/self/coredump_filter
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
java-vm-2_pkg_postinst
|
||||
}
|
@ -1,312 +0,0 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
inherit eapi8-dosym check-reqs flag-o-matic java-pkg-2 java-vm-2 multiprocessing toolchain-funcs
|
||||
|
||||
# don't change versioning scheme
|
||||
# to find correct _p number, look at
|
||||
# https://github.com/openjdk/jdk${SLOT}u/tags
|
||||
# you will see, for example, jdk-17.0.4.1-ga and jdk-17.0.4.1+1, both point
|
||||
# to exact same commit sha. we should always use the full version.
|
||||
# -ga tag is just for humans to easily identify General Availability release tag.
|
||||
# we need -ga tag to fetch tarball and unpack it, but exact number everywhere else to
|
||||
# set build version properly
|
||||
MY_PV="${PV%_p*}-ga"
|
||||
SLOT="${MY_PV%%[.+]*}"
|
||||
|
||||
# variable name format: <UPPERCASE_KEYWORD>_XPAK
|
||||
PPC64_XPAK="11.0.13_p8" # big-endian bootstrap tarball
|
||||
RISCV_XPAK="11.0.14_p9" # lp64d bootstrap tarball
|
||||
X86_XPAK="11.0.13_p8"
|
||||
|
||||
# Usage: bootstrap_uri <keyword> <version> [extracond]
|
||||
# Example: $(bootstrap_uri ppc64 17.0.1_p12 big-endian)
|
||||
# Output: ppc64? ( big-endian? ( https://...17.0.1_p12-ppc64.tar.xz ) )
|
||||
bootstrap_uri() {
|
||||
local baseuri="https://dev.gentoo.org/~arthurzam/distfiles/dev-java/${PN}/${PN}-bootstrap"
|
||||
local suff="tar.xz"
|
||||
local kw="${1:?${FUNCNAME[0]}: keyword not specified}"
|
||||
local ver="${2:?${FUNCNAME[0]}: version not specified}"
|
||||
local cond="${3-}"
|
||||
|
||||
# here be dragons
|
||||
echo "${kw}? ( ${cond:+${cond}? (} ${baseuri}-${ver}-${kw}.${suff} ${cond:+) })"
|
||||
}
|
||||
|
||||
DESCRIPTION="Open source implementation of the Java programming language"
|
||||
HOMEPAGE="https://openjdk.org"
|
||||
SRC_URI="
|
||||
https://github.com/${PN}/jdk${SLOT}u/archive/refs/tags/jdk-${MY_PV}.tar.gz
|
||||
-> ${P}.tar.gz
|
||||
!system-bootstrap? (
|
||||
$(bootstrap_uri ppc64 ${PPC64_XPAK} big-endian)
|
||||
$(bootstrap_uri riscv ${RISCV_XPAK})
|
||||
$(bootstrap_uri x86 ${X86_XPAK})
|
||||
)
|
||||
riscv? ( https://dev.gentoo.org/~arthurzam/distfiles/dev-java/openjdk/openjdk-11.0.18-riscv.patch.xz )
|
||||
"
|
||||
|
||||
LICENSE="GPL-2-with-classpath-exception"
|
||||
KEYWORDS="amd64 ~arm arm64 ppc64 ~riscv x86"
|
||||
|
||||
IUSE="alsa big-endian cups debug doc examples headless-awt javafx +jbootstrap lto selinux source system-bootstrap systemtap"
|
||||
|
||||
REQUIRED_USE="
|
||||
javafx? ( alsa !headless-awt )
|
||||
!system-bootstrap? ( jbootstrap )
|
||||
"
|
||||
|
||||
COMMON_DEPEND="
|
||||
media-libs/freetype:2=
|
||||
media-libs/giflib:0/7
|
||||
media-libs/harfbuzz:=
|
||||
media-libs/libpng:0=
|
||||
media-libs/lcms:2=
|
||||
sys-libs/zlib
|
||||
media-libs/libjpeg-turbo:0=
|
||||
systemtap? ( dev-debug/systemtap )
|
||||
"
|
||||
|
||||
# Many libs are required to build, but not to run, make is possible to remove
|
||||
# by listing conditionally in RDEPEND unconditionally in DEPEND
|
||||
RDEPEND="
|
||||
${COMMON_DEPEND}
|
||||
>=sys-apps/baselayout-java-0.1.0-r1
|
||||
!headless-awt? (
|
||||
x11-libs/libX11
|
||||
x11-libs/libXext
|
||||
x11-libs/libXi
|
||||
x11-libs/libXrandr
|
||||
x11-libs/libXrender
|
||||
x11-libs/libXt
|
||||
x11-libs/libXtst
|
||||
)
|
||||
alsa? ( media-libs/alsa-lib )
|
||||
cups? ( net-print/cups )
|
||||
selinux? ( sec-policy/selinux-java )
|
||||
"
|
||||
|
||||
DEPEND="
|
||||
${COMMON_DEPEND}
|
||||
app-arch/zip
|
||||
media-libs/alsa-lib
|
||||
net-print/cups
|
||||
x11-base/xorg-proto
|
||||
x11-libs/libX11
|
||||
x11-libs/libXext
|
||||
x11-libs/libXi
|
||||
x11-libs/libXrandr
|
||||
x11-libs/libXrender
|
||||
x11-libs/libXt
|
||||
x11-libs/libXtst
|
||||
javafx? ( dev-java/openjfx:${SLOT}= )
|
||||
system-bootstrap? (
|
||||
|| (
|
||||
dev-java/openjdk-bin:${SLOT}[gentoo-vm(+)]
|
||||
dev-java/openjdk:${SLOT}[gentoo-vm(+)]
|
||||
)
|
||||
)
|
||||
"
|
||||
|
||||
S="${WORKDIR}/jdk${SLOT}u-jdk-${MY_PV}"
|
||||
|
||||
# The space required to build varies wildly depending on USE flags,
|
||||
# ranging from 2GB to 16GB. This function is certainly not exact but
|
||||
# should be close enough to be useful.
|
||||
openjdk_check_requirements() {
|
||||
local M
|
||||
M=2048
|
||||
M=$(( $(usex jbootstrap 2 1) * $M ))
|
||||
M=$(( $(usex debug 3 1) * $M ))
|
||||
M=$(( $(usex doc 320 0) + $(usex source 128 0) + 192 + $M ))
|
||||
|
||||
CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE}
|
||||
}
|
||||
|
||||
pkg_pretend() {
|
||||
openjdk_check_requirements
|
||||
if [[ ${MERGE_TYPE} != binary ]]; then
|
||||
has ccache ${FEATURES} && die "FEATURES=ccache doesn't work with ${PN}, bug #677876"
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
openjdk_check_requirements
|
||||
java-vm-2_pkg_setup
|
||||
|
||||
[[ ${MERGE_TYPE} == "binary" ]] && return
|
||||
|
||||
JAVA_PKG_WANT_BUILD_VM="openjdk-${SLOT} openjdk-bin-${SLOT}"
|
||||
JAVA_PKG_WANT_SOURCE="${SLOT}"
|
||||
JAVA_PKG_WANT_TARGET="${SLOT}"
|
||||
|
||||
if use system-bootstrap; then
|
||||
for vm in ${JAVA_PKG_WANT_BUILD_VM}; do
|
||||
if [[ -d ${BROOT}/usr/lib/jvm/${vm} ]]; then
|
||||
java-pkg-2_pkg_setup
|
||||
return
|
||||
fi
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
use riscv && eapply "${WORKDIR}"/openjdk-11.0.18-riscv.patch
|
||||
default
|
||||
chmod +x configure || die
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
if ! use system-bootstrap; then
|
||||
local xpakvar="${ARCH^^}_XPAK"
|
||||
export JDK_HOME="${WORKDIR}/openjdk-bootstrap-${!xpakvar}"
|
||||
fi
|
||||
|
||||
# Work around stack alignment issue, bug #647954.
|
||||
use x86 && append-flags -mincoming-stack-boundary=2
|
||||
|
||||
# bug 906987; append-cppflags doesnt work
|
||||
use elibc_musl && append-flags -D_LARGEFILE64_SOURCE
|
||||
|
||||
# Strip some flags users may set, but should not. #818502
|
||||
filter-flags -fexceptions
|
||||
|
||||
# Strip lto related flags, we rely on USE=lto and --with-jvm-features=link-time-opt
|
||||
# https://bugs.gentoo.org/833097
|
||||
# https://bugs.gentoo.org/833098
|
||||
filter-lto
|
||||
filter-flags -fdevirtualize-at-ltrans
|
||||
|
||||
# Enabling full docs appears to break doc building. If not
|
||||
# explicitly disabled, the flag will get auto-enabled if pandoc and
|
||||
# graphviz are detected. pandoc has loads of dependencies anyway.
|
||||
|
||||
local myconf=(
|
||||
--disable-ccache
|
||||
--disable-precompiled-headers
|
||||
--enable-full-docs=no
|
||||
--with-boot-jdk="${JDK_HOME}"
|
||||
--with-extra-cflags="${CFLAGS}"
|
||||
--with-extra-cxxflags="${CXXFLAGS}"
|
||||
--with-extra-ldflags="${LDFLAGS}"
|
||||
--with-freetype="${XPAK_BOOTSTRAP:-system}"
|
||||
--with-giflib="${XPAK_BOOTSTRAP:-system}"
|
||||
--with-harfbuzz="${XPAK_BOOTSTRAP:-system}"
|
||||
--with-lcms="${XPAK_BOOTSTRAP:-system}"
|
||||
--with-libjpeg="${XPAK_BOOTSTRAP:-system}"
|
||||
--with-libpng="${XPAK_BOOTSTRAP:-system}"
|
||||
--with-native-debug-symbols=$(usex debug internal none)
|
||||
--with-vendor-name="Gentoo"
|
||||
--with-vendor-url="https://gentoo.org"
|
||||
--with-vendor-bug-url="https://bugs.gentoo.org"
|
||||
--with-vendor-vm-bug-url="https://bugs.openjdk.java.net"
|
||||
--with-vendor-version-string="${PVR}"
|
||||
--with-version-pre=""
|
||||
--with-version-string="${PV%_p*}"
|
||||
--with-version-build="${PV#*_p}"
|
||||
--with-zlib="${XPAK_BOOTSTRAP:-system}"
|
||||
--enable-dtrace=$(usex systemtap yes no)
|
||||
--enable-headless-only=$(usex headless-awt yes no)
|
||||
$(tc-is-clang && echo "--with-toolchain-type=clang")
|
||||
)
|
||||
! use riscv && myconf+=( --with-jvm-features=shenandoahgc )
|
||||
|
||||
use lto && myconf+=( --with-jvm-features=link-time-opt )
|
||||
|
||||
if use javafx; then
|
||||
# this is not useful for users, just for upstream developers
|
||||
# build system compares mesa version in md file
|
||||
# https://bugs.gentoo.org/822612
|
||||
export LEGAL_EXCLUDES=mesa3d.md
|
||||
|
||||
local zip="${EPREFIX}/usr/$(get_libdir)/openjfx-${SLOT}/javafx-exports.zip"
|
||||
if [[ -r ${zip} ]]; then
|
||||
myconf+=( --with-import-modules="${zip}" )
|
||||
else
|
||||
die "${zip} not found or not readable"
|
||||
fi
|
||||
fi
|
||||
|
||||
if use !system-bootstrap ; then
|
||||
addpredict /dev/random
|
||||
addpredict /proc/self/coredump_filter
|
||||
fi
|
||||
|
||||
(
|
||||
unset _JAVA_OPTIONS JAVA JAVA_TOOL_OPTIONS JAVAC XARGS
|
||||
CFLAGS= CXXFLAGS= LDFLAGS= \
|
||||
CONFIG_SITE=/dev/null \
|
||||
econf "${myconf[@]}"
|
||||
)
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
# Too brittle - gets confused by e.g. -Oline
|
||||
export MAKEOPTS="-j$(makeopts_jobs) -l$(makeopts_loadavg)"
|
||||
unset GNUMAKEFLAGS MAKEFLAGS
|
||||
|
||||
local myemakeargs=(
|
||||
JOBS=$(makeopts_jobs)
|
||||
LOG=debug
|
||||
CFLAGS_WARNINGS_ARE_ERRORS= # No -Werror
|
||||
NICE= # Use PORTAGE_NICENESS, don't adjust further down
|
||||
$(usex doc docs '')
|
||||
$(usex jbootstrap bootcycle-images product-images)
|
||||
)
|
||||
emake "${myemakeargs[@]}" -j1
|
||||
}
|
||||
|
||||
src_install() {
|
||||
local dest="/usr/$(get_libdir)/${PN}-${SLOT}"
|
||||
local ddest="${ED}/${dest#/}"
|
||||
|
||||
cd "${S}"/build/*-release/images/jdk || die
|
||||
|
||||
# Create files used as storage for system preferences.
|
||||
mkdir .systemPrefs || die
|
||||
touch .systemPrefs/.system.lock || die
|
||||
touch .systemPrefs/.systemRootModFile || die
|
||||
|
||||
# Oracle and IcedTea have libjsoundalsa.so depending on
|
||||
# libasound.so.2 but OpenJDK only has libjsound.so. Weird.
|
||||
if ! use alsa ; then
|
||||
rm -v lib/libjsound.* || die
|
||||
fi
|
||||
|
||||
if ! use examples ; then
|
||||
rm -vr demo/ || die
|
||||
fi
|
||||
|
||||
if ! use source ; then
|
||||
rm -v lib/src.zip || die
|
||||
fi
|
||||
|
||||
rm -v lib/security/cacerts || die
|
||||
|
||||
dodir "${dest}"
|
||||
cp -pPR * "${ddest}" || die
|
||||
|
||||
dosym8 -r /etc/ssl/certs/java/cacerts "${dest}"/lib/security/cacerts
|
||||
|
||||
# must be done before running itself
|
||||
java-vm_set-pax-markings "${ddest}"
|
||||
|
||||
einfo "Creating the Class Data Sharing archives and disabling usage tracking"
|
||||
"${ddest}/bin/java" -server -Xshare:dump -Djdk.disableLastUsageTracking || die
|
||||
|
||||
java-vm_install-env "${FILESDIR}"/${PN}.env.sh
|
||||
java-vm_revdep-mask
|
||||
java-vm_sandbox-predict /dev/random /proc/self/coredump_filter
|
||||
|
||||
if use doc ; then
|
||||
docinto html
|
||||
dodoc -r "${S}"/build/*-release/images/docs/*
|
||||
dosym8 -r /usr/share/doc/"${PF}" /usr/share/doc/"${PN}-${SLOT}"
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
java-vm-2_pkg_postinst
|
||||
}
|
Binary file not shown.
@ -1 +1,2 @@
|
||||
DIST fuzion-0.086.tar.gz 994894 BLAKE2B e698ea7b8de215c55e84e0f55f405156d5c386c1001c7b29e0c7c49e7a7e7babf7cb64cf30726a24aa7b6ccdc0eaf01cc543867361e2554f258d76be1fc08b97 SHA512 6d2df12d1dced9c5a61bb183767fc205ddbc0d04db8cae3f5e3eabd9ab60f18b3c2b3fa8f57702dc792882b1a6f79da1cfcb7801d84ecc2cff1844a4bc226f67
|
||||
DIST fuzion-0.088.tar.gz 1123270 BLAKE2B 3d68c136a862c02955b4a15e6cfe4d41a63a106c47289f7fdfe0af2b0119ebe26cbd9c6920c8b5311c756264bdd33d46f4b1108869427f83d55a350c2ab52e6f SHA512 b0fb1ea4175912684b4759ec58a91bc25d963fa2fa6234116fa91a63d757d9af5da9e20a3fdcc340fe956c01026d4b74c7a12dac40a0b7826d74c567b4e3383a
|
||||
|
@ -0,0 +1,80 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit java-pkg-2
|
||||
|
||||
DESCRIPTION="A language with a focus on simplicity, safety and correctness"
|
||||
HOMEPAGE="https://fuzion-lang.dev/
|
||||
https://github.com/tokiwa-software/fuzion/"
|
||||
|
||||
if [[ "${PV}" == *9999* ]] ; then
|
||||
inherit git-r3
|
||||
|
||||
EGIT_REPO_URI="https://github.com/tokiwa-software/${PN}.git"
|
||||
else
|
||||
SRC_URI="https://github.com/tokiwa-software/${PN}/archive/refs/tags/v${PV}.tar.gz
|
||||
-> ${P}.tar.gz"
|
||||
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
fi
|
||||
|
||||
LICENSE="GPL-3"
|
||||
SLOT="0"
|
||||
IUSE="test"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
RDEPEND="
|
||||
>=virtual/jre-21:*
|
||||
dev-libs/boehm-gc
|
||||
"
|
||||
DEPEND="
|
||||
virtual/jdk:21
|
||||
"
|
||||
BDEPEND="
|
||||
test? (
|
||||
sys-devel/clang:*
|
||||
)
|
||||
"
|
||||
|
||||
DOCS=( README.md release_notes.md )
|
||||
|
||||
src_prepare() {
|
||||
java-pkg-2_src_prepare
|
||||
|
||||
rm -fr tests/sockets || die
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
emake -j1
|
||||
}
|
||||
|
||||
src_test() {
|
||||
emake -j1 run_tests_parallel
|
||||
}
|
||||
|
||||
src_install() {
|
||||
# Remove unnecessary files from build directory. bug #893450
|
||||
local toremove
|
||||
local toremove_path
|
||||
for toremove in tests run_tests.{failures,results} ; do
|
||||
toremove_path="${S}/build/${toremove}"
|
||||
|
||||
if [[ -e "${toremove_path}" ]] ; then
|
||||
rm -r "${toremove_path}" || die "failed to remove ${toremove_path}"
|
||||
fi
|
||||
done
|
||||
|
||||
insinto "/usr/share/${PN}"
|
||||
doins -r build/.
|
||||
insopts -m755
|
||||
doins -r build/bin
|
||||
|
||||
local exe
|
||||
for exe in fz fzjava ; do
|
||||
dosym -r "/usr/share/${PN}/bin/${exe}" "/usr/bin/${exe}"
|
||||
done
|
||||
|
||||
einstalldocs
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue