parent
2c01ece81c
commit
97d3bdc159
Binary file not shown.
Binary file not shown.
@ -1,2 +1,2 @@
|
||||
DIST ansible-lint-6.14.6.tar.gz 475624 BLAKE2B 99ac5214d7404c2cdaaf43678950b2031fd40396e45a27823feb708bc343b69181e624254b77bfe9f704a9037c60340f3a14d4a2651948b371ea91a28b1a1424 SHA512 dac9a089db2d2fe7b25f273b746571175d3ec974dbdf14d65cc10be83464f1ae88361d9e445d8687c011f817597fc4ca8d7501d192c6c529d9ec48997af8df7c
|
||||
DIST ansible-lint-6.17.0.tar.gz 478382 BLAKE2B 64d00381a36270d5b9163ad6a6a3f71fbdec7a0554151bef7aa92b4df6f76c58d618fa91755183f49a32f6ab5ad512400e7582711780294dc39d524449aebb28 SHA512 7bb38843bbb378ff6636d337e05d95be73ce740fbfd78076e859809956489ad5f08c47f810311ad5ed7401c184e625901aaed1c444f887a874150c937b6bf125
|
||||
DIST ansible-lint-6.17.1.tar.gz 479782 BLAKE2B ae9a234f9552fd64520fa244cf0386370f103586a4764c412867f62e67e7a325b47be55e431451f42fbfaf0a9bb2d53ab8fbc9b87ea55ae2cc1c20439a6f8896 SHA512 38cd185fd84dc91b2bf84acc6d975dc5d5e90fd2f08d22651e470329ca1609dc73826f28f8cee391c101146dd91aff32f6e16f02b98c48f0d15b3422ba08db75
|
||||
|
@ -0,0 +1,80 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
DISTUTILS_USE_PEP517=setuptools
|
||||
PYTHON_COMPAT=( python3_{10..11} )
|
||||
|
||||
inherit bash-completion-r1 distutils-r1 multiprocessing
|
||||
|
||||
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.6.0[${PYTHON_USEDEP}]
|
||||
dev-python/pyyaml[${PYTHON_USEDEP}]
|
||||
!app-admin/awscli-bin
|
||||
"
|
||||
BDEPEND="
|
||||
test? (
|
||||
dev-python/pytest-forked[${PYTHON_USEDEP}]
|
||||
dev-python/pytest-xdist[${PYTHON_USEDEP}]
|
||||
)
|
||||
"
|
||||
|
||||
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 EPYTEST_DESELECT=(
|
||||
# TODO
|
||||
tests/functional/eks/test_kubeconfig.py::TestKubeconfigLoader::test_load_simple
|
||||
tests/unit/customizations/eks/test_update_kubeconfig.py::TestKubeconfigSelector::test_choose_env_only
|
||||
tests/unit/customizations/eks/test_update_kubeconfig.py::TestKubeconfigSelector::test_choose_existing
|
||||
tests/unit/customizations/eks/test_kubeconfig.py::TestKubeconfigValidator::test_valid
|
||||
)
|
||||
|
||||
# integration tests require AWS credentials and Internet access
|
||||
epytest tests/{functional,unit} -n "$(makeopts_jobs)" --forked
|
||||
}
|
||||
|
||||
python_install_all() {
|
||||
newbashcomp bin/aws_bash_completer aws
|
||||
|
||||
insinto /usr/share/zsh/site-functions
|
||||
newins bin/aws_zsh_completer.sh _aws
|
||||
|
||||
distutils-r1_python_install_all
|
||||
|
||||
rm "${ED}"/usr/bin/{aws.cmd,aws_bash_completer,aws_zsh_completer.sh} || die
|
||||
}
|
@ -0,0 +1,21 @@
|
||||
https://github.com/andikleen/mcelog/pull/115
|
||||
From: Brahmajit Das <brahmajit.xyz@gmail.com>
|
||||
Date: Mon, 12 Jun 2023 10:56:44 +0000
|
||||
Subject: [PATCH] client: Fix build w/ musl libc
|
||||
|
||||
Refer: https://github.com/andikleen/mcelog/pull/115
|
||||
Bug: https://bugs.gentoo.org/894316
|
||||
Signed-off-by: Brahmajit Das <brahmajit.xyz@gmail.com>
|
||||
--- a/client.c
|
||||
+++ b/client.c
|
||||
@@ -19,6 +19,7 @@
|
||||
#include <sys/socket.h>
|
||||
#include <sys/un.h>
|
||||
#include <unistd.h>
|
||||
+#include <string.h>
|
||||
#include "mcelog.h"
|
||||
#include "client.h"
|
||||
#include "paths.h"
|
||||
--
|
||||
2.41.0
|
||||
|
@ -0,0 +1,55 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
PYTHON_COMPAT=( python3_{9..11} )
|
||||
|
||||
inherit linux-info python-any-r1 systemd toolchain-funcs
|
||||
|
||||
DESCRIPTION="A tool to log and decode Machine Check Exceptions"
|
||||
HOMEPAGE="http://mcelog.org/"
|
||||
SRC_URI="https://github.com/andikleen/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
||||
|
||||
LICENSE="GPL-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
IUSE="selinux"
|
||||
|
||||
RDEPEND="selinux? ( sec-policy/selinux-mcelog )"
|
||||
DEPEND="${PYTHON_DEPS}"
|
||||
|
||||
# TODO: add mce-inject to the tree to support test phase
|
||||
RESTRICT="test"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${PN}-194-musl-fix.patch
|
||||
"${FILESDIR}"/${PN}-0.8_pre1-timestamp-${PN}.patch
|
||||
"${FILESDIR}"/${PN}-129-debugflags.patch
|
||||
)
|
||||
|
||||
pkg_pretend() {
|
||||
if [[ ${MERGE_TYPE} != buildonly ]]; then
|
||||
local CONFIG_CHECK="~X86_MCE"
|
||||
kernel_is -ge 4 12 && CONFIG_CHECK+=" ~X86_MCELOG_LEGACY"
|
||||
check_extra_config
|
||||
fi
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
tc-export CC
|
||||
python_fix_shebang genconfig.py
|
||||
}
|
||||
|
||||
src_install() {
|
||||
default
|
||||
|
||||
insinto /etc/logrotate.d/
|
||||
newins ${PN}.logrotate ${PN}
|
||||
|
||||
newinitd "${FILESDIR}"/${PN}.init-r1 ${PN}
|
||||
systemd_dounit ${PN}.service
|
||||
|
||||
dodoc *.pdf
|
||||
}
|
Binary file not shown.
Binary file not shown.
@ -1 +1,2 @@
|
||||
DIST libmd-1.0.4.tar.xz 264472 BLAKE2B ddc2da74635f5cc009c66a58ae82b83e6e0930e18af8a6b0ecec7cbf378246707b493a99fb97d3491d0d626a0d5ef068baea6a3ba2ec311c5a1516ba5b4e2fd5 SHA512 731553ecc5e0e1eb228cced8fccd531fe31fb5c7627ca30013d287e1aeb8222959cf7498fbb7414bbabb967b25d4e8b0edd54fc47f6ccf55fc91087db0725ce3
|
||||
DIST libmd-1.1.0.tar.xz 271228 BLAKE2B a4dc72be4a46609d41453b19ba3110043e74fd0810d59f872e11151dbe87b0bdab203ef72c9d19255db32493b229bc0d33549e787979a42db08c838a810e1cdc SHA512 5d0da3337038e474fae7377bbc646d17214e72dc848a7aadc157f49333ce7b5ac1456e45d13674bd410ea08477c6115fc4282fed6c8e6a0bf63537a418c0df96
|
||||
|
@ -0,0 +1,23 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit multilib-minimal
|
||||
|
||||
DESCRIPTION="Message Digest functions from BSD systems"
|
||||
HOMEPAGE="https://www.hadrons.org/software/libmd/"
|
||||
SRC_URI="https://archive.hadrons.org/software/libmd/${P}.tar.xz"
|
||||
|
||||
LICENSE="|| ( BSD BSD-2 ISC BEER-WARE public-domain )"
|
||||
SLOT="0"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
|
||||
|
||||
multilib_src_configure() {
|
||||
ECONF_SOURCE="${S}" econf
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
einstalldocs
|
||||
find "${ED}" -type f -name '*.la' -delete || die
|
||||
}
|
@ -0,0 +1,115 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit cmake kde.org multibuild qmake-utils
|
||||
|
||||
DESCRIPTION="Qt Cryptographic Architecture (QCA)"
|
||||
HOMEPAGE="https://userbase.kde.org/QCA"
|
||||
SRC_URI="mirror://kde/stable/${PN}/${PV}/${P}.tar.xz"
|
||||
|
||||
LICENSE="LGPL-2.1"
|
||||
SLOT="2"
|
||||
KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos"
|
||||
IUSE="botan debug doc examples gcrypt gpg logger nss pkcs11 +qt5 qt6 sasl softstore +ssl test"
|
||||
REQUIRED_USE="|| ( qt5 qt6 )"
|
||||
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
RDEPEND="
|
||||
botan? ( dev-libs/botan:3= )
|
||||
gcrypt? ( dev-libs/libgcrypt:= )
|
||||
gpg? ( app-crypt/gnupg )
|
||||
nss? ( dev-libs/nss )
|
||||
pkcs11? (
|
||||
>=dev-libs/openssl-1.1
|
||||
dev-libs/pkcs11-helper
|
||||
)
|
||||
qt5? ( >=dev-qt/qtcore-5.14:5 )
|
||||
qt6? (
|
||||
dev-qt/qtbase:6
|
||||
dev-qt/qt5compat:6
|
||||
)
|
||||
sasl? ( dev-libs/cyrus-sasl:2 )
|
||||
ssl? ( >=dev-libs/openssl-1.1:= )
|
||||
"
|
||||
DEPEND="${RDEPEND}
|
||||
test? (
|
||||
qt5? (
|
||||
dev-qt/qtnetwork:5
|
||||
dev-qt/qttest:5
|
||||
)
|
||||
qt6? ( dev-qt/qtbase:6[network,test] )
|
||||
)
|
||||
"
|
||||
BDEPEND="
|
||||
doc? (
|
||||
app-doc/doxygen[dot]
|
||||
virtual/latex-base
|
||||
)
|
||||
"
|
||||
|
||||
PATCHES=( "${FILESDIR}/${PN}-disable-pgp-test.patch" )
|
||||
|
||||
qca_plugin_use() {
|
||||
echo -DWITH_${2:-$1}_PLUGIN=$(usex "$1")
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
MULTIBUILD_VARIANTS=( $(usev qt5) $(usev qt6) )
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
myconfigure() {
|
||||
local mycmakeargs=(
|
||||
-DQCA_FEATURE_INSTALL_DIR="${EPREFIX}$(${MULTIBUILD_VARIANT}_get_mkspecsdir)/features"
|
||||
-DQCA_PLUGINS_INSTALL_DIR="${EPREFIX}$(${MULTIBUILD_VARIANT}_get_plugindir)"
|
||||
$(qca_plugin_use botan)
|
||||
$(qca_plugin_use gcrypt)
|
||||
$(qca_plugin_use gpg gnupg)
|
||||
$(qca_plugin_use logger)
|
||||
$(qca_plugin_use nss)
|
||||
$(qca_plugin_use pkcs11)
|
||||
$(qca_plugin_use sasl cyrus-sasl)
|
||||
$(qca_plugin_use softstore)
|
||||
$(qca_plugin_use ssl ossl)
|
||||
-DBUILD_TESTS=$(usex test)
|
||||
)
|
||||
if [[ ${MULTIBUILD_VARIANT} == qt6 ]]; then
|
||||
mycmakeargs+=( -DBUILD_WITH_QT6=ON )
|
||||
else
|
||||
mycmakeargs+=( -DBUILD_WITH_QT6=OFF )
|
||||
fi
|
||||
cmake_src_configure
|
||||
}
|
||||
|
||||
multibuild_foreach_variant myconfigure
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
multibuild_foreach_variant cmake_src_compile
|
||||
}
|
||||
|
||||
src_test() {
|
||||
mytest() {
|
||||
local -x QCA_PLUGIN_PATH="${BUILD_DIR}/lib/qca"
|
||||
cmake_src_test
|
||||
}
|
||||
multibuild_foreach_variant mytest
|
||||
}
|
||||
|
||||
src_install() {
|
||||
multibuild_foreach_variant cmake_src_install
|
||||
|
||||
if use doc; then
|
||||
pushd "${BUILD_DIR}" >/dev/null || die
|
||||
doxygen Doxyfile || die
|
||||
dodoc -r apidocs/html
|
||||
popd >/dev/null || die
|
||||
fi
|
||||
|
||||
if use examples; then
|
||||
dodoc -r "${S}"/examples
|
||||
fi
|
||||
}
|
Binary file not shown.
@ -0,0 +1,519 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit autotools elisp-common flag-o-matic readme.gentoo-r1 toolchain-funcs
|
||||
|
||||
if [[ ${PV##*.} = 9999 ]]; then
|
||||
inherit git-r3
|
||||
EGIT_REPO_URI="https://git.savannah.gnu.org/git/emacs.git"
|
||||
EGIT_BRANCH="emacs-28"
|
||||
EGIT_CHECKOUT_DIR="${WORKDIR}/emacs"
|
||||
S="${EGIT_CHECKOUT_DIR}"
|
||||
SLOT="${PV%%.*}-vcs"
|
||||
else
|
||||
# FULL_VERSION keeps the full version number, which is needed in
|
||||
# order to determine some path information correctly for copy/move
|
||||
# operations later on
|
||||
FULL_VERSION="${PV%%_*}"
|
||||
SRC_URI="mirror://gnu/emacs/${P}.tar.xz"
|
||||
S="${WORKDIR}/emacs-${FULL_VERSION}"
|
||||
# PV can be in any of the following formats:
|
||||
# 27.1 released version (slot 27)
|
||||
# 27.1_rc1 upstream release candidate (27)
|
||||
# 27.0.9999 live ebuild (slot 27-vcs)
|
||||
# 27.0.90 upstream prerelease snapshot (27-vcs)
|
||||
# 27.0.50_pre20191223 snapshot by Gentoo developer (27-vcs)
|
||||
if [[ ${PV} == *_pre* ]]; then
|
||||
SRC_URI="https://dev.gentoo.org/~ulm/distfiles/${P}.tar.xz"
|
||||
S="${WORKDIR}/emacs"
|
||||
elif [[ ${PV//[0-9]} != "." ]]; then
|
||||
SRC_URI="https://alpha.gnu.org/gnu/emacs/pretest/${PN}-${PV/_/-}.tar.xz"
|
||||
fi
|
||||
# Patchset from proj/emacs-patches.git
|
||||
SRC_URI+=" https://dev.gentoo.org/~ulm/emacs/${P}-patches-4.tar.xz"
|
||||
PATCHES=("${WORKDIR}/patch")
|
||||
SLOT="${PV%%.*}"
|
||||
[[ ${PV} == *.*.* ]] && SLOT+="-vcs"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
|
||||
fi
|
||||
|
||||
DESCRIPTION="The extensible, customizable, self-documenting real-time display editor"
|
||||
HOMEPAGE="https://www.gnu.org/software/emacs/"
|
||||
|
||||
LICENSE="GPL-3+ FDL-1.3+ BSD HPND MIT W3C unicode PSF-2"
|
||||
IUSE="acl alsa aqua athena cairo dbus dynamic-loading games gfile gif +gmp gpm gsettings gtk gui gzip-el harfbuzz imagemagick +inotify jit jpeg json kerberos lcms libxml2 livecd m17n-lib mailutils motif png selinux sound source ssl svg systemd +threads tiff toolkit-scroll-bars valgrind wide-int Xaw3d xft +xpm xwidgets zlib"
|
||||
|
||||
RDEPEND="app-emacs/emacs-common[games?,gui(-)?]
|
||||
sys-libs/ncurses:0=
|
||||
acl? ( virtual/acl )
|
||||
alsa? ( media-libs/alsa-lib )
|
||||
dbus? ( sys-apps/dbus )
|
||||
games? ( acct-group/gamestat )
|
||||
gmp? ( dev-libs/gmp:0= )
|
||||
gpm? ( sys-libs/gpm )
|
||||
!inotify? ( gfile? ( >=dev-libs/glib-2.28.6 ) )
|
||||
jit? (
|
||||
sys-devel/gcc:=[jit(-)]
|
||||
sys-libs/zlib
|
||||
)
|
||||
json? ( dev-libs/jansson:= )
|
||||
kerberos? ( virtual/krb5 )
|
||||
lcms? ( media-libs/lcms:2 )
|
||||
libxml2? ( >=dev-libs/libxml2-2.2.0 )
|
||||
mailutils? ( net-mail/mailutils[clients] )
|
||||
!mailutils? ( acct-group/mail net-libs/liblockfile )
|
||||
selinux? ( sys-libs/libselinux )
|
||||
ssl? ( net-libs/gnutls:0= )
|
||||
systemd? ( sys-apps/systemd )
|
||||
valgrind? ( dev-util/valgrind )
|
||||
zlib? ( sys-libs/zlib )
|
||||
gui? ( !aqua? (
|
||||
x11-libs/libICE
|
||||
x11-libs/libSM
|
||||
x11-libs/libX11
|
||||
x11-libs/libXext
|
||||
x11-libs/libXfixes
|
||||
x11-libs/libXinerama
|
||||
x11-libs/libXrandr
|
||||
x11-libs/libxcb
|
||||
x11-misc/xbitmaps
|
||||
gsettings? ( >=dev-libs/glib-2.28.6 )
|
||||
gif? ( media-libs/giflib:0= )
|
||||
jpeg? ( media-libs/libjpeg-turbo:0= )
|
||||
png? ( >=media-libs/libpng-1.4:0= )
|
||||
svg? ( >=gnome-base/librsvg-2.0 )
|
||||
tiff? ( media-libs/tiff:= )
|
||||
xpm? ( x11-libs/libXpm )
|
||||
imagemagick? ( >=media-gfx/imagemagick-6.6.2:0= )
|
||||
xft? (
|
||||
media-libs/fontconfig
|
||||
media-libs/freetype
|
||||
x11-libs/libXft
|
||||
x11-libs/libXrender
|
||||
cairo? ( >=x11-libs/cairo-1.12.18[X] )
|
||||
harfbuzz? ( media-libs/harfbuzz:0= )
|
||||
m17n-lib? (
|
||||
>=dev-libs/libotf-0.9.4
|
||||
>=dev-libs/m17n-lib-1.5.1
|
||||
)
|
||||
)
|
||||
gtk? (
|
||||
x11-libs/gtk+:3
|
||||
xwidgets? (
|
||||
net-libs/webkit-gtk:4.1=
|
||||
x11-libs/libXcomposite
|
||||
)
|
||||
)
|
||||
!gtk? (
|
||||
motif? (
|
||||
>=x11-libs/motif-2.3:0
|
||||
x11-libs/libXpm
|
||||
x11-libs/libXmu
|
||||
x11-libs/libXt
|
||||
)
|
||||
!motif? (
|
||||
Xaw3d? (
|
||||
x11-libs/libXaw3d
|
||||
x11-libs/libXmu
|
||||
x11-libs/libXt
|
||||
)
|
||||
!Xaw3d? ( athena? (
|
||||
x11-libs/libXaw
|
||||
x11-libs/libXmu
|
||||
x11-libs/libXt
|
||||
) )
|
||||
)
|
||||
)
|
||||
) )"
|
||||
|
||||
DEPEND="${RDEPEND}
|
||||
gui? ( !aqua? ( x11-base/xorg-proto ) )"
|
||||
|
||||
BDEPEND="sys-apps/texinfo
|
||||
virtual/pkgconfig
|
||||
gzip-el? ( app-arch/gzip )"
|
||||
|
||||
IDEPEND="app-eselect/eselect-emacs"
|
||||
|
||||
RDEPEND+=" ${IDEPEND}"
|
||||
|
||||
EMACS_SUFFIX="emacs-${SLOT}"
|
||||
SITEFILE="20${EMACS_SUFFIX}-gentoo.el"
|
||||
|
||||
src_prepare() {
|
||||
if [[ ${PV##*.} = 9999 ]]; then
|
||||
FULL_VERSION=$(sed -n 's/^AC_INIT([^,]*,[^0-9.]*\([0-9.]*\).*/\1/p' \
|
||||
configure.ac)
|
||||
[[ ${FULL_VERSION} ]] || die "Cannot determine current Emacs version"
|
||||
einfo "Emacs branch: ${EGIT_BRANCH}"
|
||||
einfo "Commit: ${EGIT_VERSION}"
|
||||
einfo "Emacs version number: ${FULL_VERSION}"
|
||||
[[ ${FULL_VERSION} =~ ^${PV%.*}(\..*)?$ ]] \
|
||||
|| die "Upstream version number changed to ${FULL_VERSION}"
|
||||
fi
|
||||
|
||||
if use jit; then
|
||||
export NATIVE_FULL_AOT=1
|
||||
find lisp -type f -name "*.elc" -delete || die
|
||||
|
||||
# These files ignore LDFLAGS. We assign the variable here, because
|
||||
# for live ebuilds FULL_VERSION doesn't exist in global scope
|
||||
QA_FLAGS_IGNORED="usr/$(get_libdir)/emacs/${FULL_VERSION}/native-lisp/.*"
|
||||
|
||||
# gccjit doesn't play well with ccache or distcc #801580
|
||||
# For now, work around the problem with an explicit LIBRARY_PATH
|
||||
has ccache ${FEATURES} || has distcc ${FEATURES} && tc-is-gcc \
|
||||
&& export LIBRARY_PATH=$("$(tc-getCC)" -print-search-dirs \
|
||||
| sed -n '/^libraries:/{s:^[^/]*::;p}')
|
||||
fi
|
||||
|
||||
default
|
||||
|
||||
# Fix filename reference in redirected man page
|
||||
sed -i -e "/^\\.so/s/etags/&-${EMACS_SUFFIX}/" doc/man/ctags.1 || die
|
||||
|
||||
AT_M4DIR=m4 eautoreconf
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local myconf
|
||||
|
||||
# Prevents e.g. tests interfering with running Emacs.
|
||||
unset EMACS_SOCKET_NAME
|
||||
|
||||
if use alsa; then
|
||||
use sound || ewarn \
|
||||
"USE flag \"alsa\" overrides \"-sound\"; enabling sound support."
|
||||
myconf+=" --with-sound=alsa"
|
||||
else
|
||||
myconf+=" --with-sound=$(usex sound oss)"
|
||||
fi
|
||||
|
||||
if use jit; then
|
||||
use zlib || ewarn \
|
||||
"USE flag \"jit\" overrides \"-zlib\"; enabling zlib support."
|
||||
myconf+=" --with-zlib"
|
||||
else
|
||||
myconf+=" $(use_with zlib)"
|
||||
fi
|
||||
|
||||
if ! use gui; then
|
||||
einfo "Configuring to build without window system support"
|
||||
myconf+=" --without-x --without-ns"
|
||||
elif use aqua; then
|
||||
einfo "Configuring to build with Nextstep (Macintosh Cocoa) support"
|
||||
myconf+=" --with-ns --disable-ns-self-contained"
|
||||
myconf+=" --without-x"
|
||||
else
|
||||
myconf+=" --with-x --without-ns"
|
||||
myconf+=" --without-gconf"
|
||||
myconf+=" $(use_with gsettings)"
|
||||
myconf+=" $(use_with toolkit-scroll-bars)"
|
||||
myconf+=" $(use_with gif)"
|
||||
myconf+=" $(use_with jpeg)"
|
||||
myconf+=" $(use_with png)"
|
||||
myconf+=" $(use_with svg rsvg)"
|
||||
myconf+=" $(use_with tiff)"
|
||||
myconf+=" $(use_with xpm)"
|
||||
myconf+=" $(use_with imagemagick)"
|
||||
|
||||
if use xft; then
|
||||
myconf+=" --with-xft"
|
||||
myconf+=" $(use_with cairo)"
|
||||
myconf+=" $(use_with harfbuzz)"
|
||||
myconf+=" $(use_with m17n-lib libotf)"
|
||||
myconf+=" $(use_with m17n-lib m17n-flt)"
|
||||
else
|
||||
myconf+=" --without-xft"
|
||||
myconf+=" --without-cairo"
|
||||
myconf+=" --without-libotf --without-m17n-flt"
|
||||
use cairo && ewarn \
|
||||
"USE flag \"cairo\" has no effect if \"xft\" is not set."
|
||||
use m17n-lib && ewarn \
|
||||
"USE flag \"m17n-lib\" has no effect if \"xft\" is not set."
|
||||
fi
|
||||
|
||||
local f line
|
||||
if use gtk; then
|
||||
einfo "Configuring to build with GIMP Toolkit (GTK+)"
|
||||
while read line; do ewarn "${line}"; done <<-EOF
|
||||
Your version of GTK+ will have problems with closing open
|
||||
displays. This is no problem if you just use one display, but
|
||||
if you use more than one and close one of them Emacs may crash.
|
||||
See <https://gitlab.gnome.org/GNOME/gtk/-/issues/221> and
|
||||
<https://gitlab.gnome.org/GNOME/gtk/-/issues/2315>.
|
||||
If you intend to use more than one display, then it is strongly
|
||||
recommended that you compile Emacs with the Athena/Lucid or the
|
||||
Motif toolkit instead.
|
||||
EOF
|
||||
myconf+=" --with-x-toolkit=gtk3 $(use_with xwidgets)"
|
||||
for f in motif Xaw3d athena; do
|
||||
use ${f} && ewarn \
|
||||
"USE flag \"${f}\" has no effect if \"gtk\" is set."
|
||||
done
|
||||
elif use motif; then
|
||||
einfo "Configuring to build with Motif toolkit"
|
||||
myconf+=" --with-x-toolkit=motif"
|
||||
for f in Xaw3d athena; do
|
||||
use ${f} && ewarn \
|
||||
"USE flag \"${f}\" has no effect if \"motif\" is set."
|
||||
done
|
||||
elif use athena || use Xaw3d; then
|
||||
einfo "Configuring to build with Athena/Lucid toolkit"
|
||||
myconf+=" --with-x-toolkit=lucid $(use_with Xaw3d xaw3d)"
|
||||
else
|
||||
einfo "Configuring to build with no toolkit"
|
||||
myconf+=" --with-x-toolkit=no"
|
||||
fi
|
||||
! use gtk && use xwidgets && ewarn \
|
||||
"USE flag \"xwidgets\" has no effect if \"gtk\" is not set."
|
||||
fi
|
||||
|
||||
if tc-is-cross-compiler; then
|
||||
# Configure a CBUILD directory when cross-compiling to make tools
|
||||
mkdir "${S}-build" && pushd "${S}-build" >/dev/null || die
|
||||
ECONF_SOURCE="${S}" econf_build --without-all --without-x-toolkit
|
||||
popd >/dev/null || die
|
||||
# Don't try to execute the binary for dumping during the build
|
||||
myconf+=" --with-dumping=none"
|
||||
elif use m68k; then
|
||||
# Workaround for https://debbugs.gnu.org/44531
|
||||
myconf+=" --with-dumping=unexec"
|
||||
else
|
||||
myconf+=" --with-dumping=pdumper"
|
||||
fi
|
||||
|
||||
econf \
|
||||
--program-suffix="-${EMACS_SUFFIX}" \
|
||||
--includedir="${EPREFIX}"/usr/include/${EMACS_SUFFIX} \
|
||||
--infodir="${EPREFIX}"/usr/share/info/${EMACS_SUFFIX} \
|
||||
--localstatedir="${EPREFIX}"/var \
|
||||
--enable-locallisppath="${EPREFIX}/etc/emacs:${EPREFIX}${SITELISP}" \
|
||||
--without-compress-install \
|
||||
--without-hesiod \
|
||||
--without-pop \
|
||||
--with-file-notification=$(usev inotify || usev gfile || echo no) \
|
||||
--with-pdumper \
|
||||
$(use_enable acl) \
|
||||
$(use_with dbus) \
|
||||
$(use_with dynamic-loading modules) \
|
||||
$(use_with games gameuser ":gamestat") \
|
||||
$(use_with gmp libgmp) \
|
||||
$(use_with gpm) \
|
||||
$(use_with jit native-compilation) \
|
||||
$(use_with json) \
|
||||
$(use_with kerberos) $(use_with kerberos kerberos5) \
|
||||
$(use_with lcms lcms2) \
|
||||
$(use_with libxml2 xml2) \
|
||||
$(use_with mailutils) \
|
||||
$(use_with selinux) \
|
||||
$(use_with ssl gnutls) \
|
||||
$(use_with systemd libsystemd) \
|
||||
$(use_with threads) \
|
||||
$(use_with wide-int) \
|
||||
${myconf}
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
export ac_cv_header_valgrind_valgrind_h=$(usex valgrind)
|
||||
append-cppflags -DUSE_VALGRIND=$(usex valgrind)
|
||||
|
||||
if tc-is-cross-compiler; then
|
||||
# Build native tools for compiling lisp etc.
|
||||
emake -C "${S}-build" src
|
||||
emake lib # Cross-compile dependencies first for timestamps
|
||||
# Save native build tools in the cross-directory
|
||||
cp "${S}-build"/lib-src/make-{docfile,fingerprint} lib-src || die
|
||||
# Specify the native Emacs to compile lisp
|
||||
emake -C lisp all EMACS="${S}-build/src/emacs"
|
||||
fi
|
||||
|
||||
emake
|
||||
}
|
||||
|
||||
src_test() {
|
||||
# List .el test files with a comment above listing the exact
|
||||
# subtests which caused failure. Elements should begin with a %.
|
||||
# e.g. %lisp/gnus/mml-sec-tests.el.
|
||||
local exclude_tests=(
|
||||
# Reason: not yet known
|
||||
# mml-secure-en-decrypt-{1,2,3,4}
|
||||
# mml-secure-find-usable-keys-{1,2}
|
||||
# mml-secure-key-checks
|
||||
# mml-secure-select-preferred-keys-4
|
||||
# mml-secure-sign-verify-1
|
||||
%lisp/gnus/mml-sec-tests.el
|
||||
|
||||
# Reason: race condition
|
||||
# Looks like it should be fixed in 29.x at least:
|
||||
# https://debbugs.gnu.org/cgi/bugreport.cgi?bug=55706
|
||||
# files-tests-file-name-non-special-file-in-directory-p
|
||||
%lisp/files-tests.el
|
||||
|
||||
# Reason: permission denied on /nonexistent
|
||||
# (vc-*-bzr only fails if breezy is installed, as they
|
||||
# try to access cache dirs under /nonexistent)
|
||||
#
|
||||
# rmail-undigest-test-multipart-mixed-digest
|
||||
# rmail-undigest-test-rfc1153-less-strict-digest
|
||||
# rmail-undigest-test-rfc1153-sloppy-digest
|
||||
# rmail-undigest-test-rfc934-digest
|
||||
# vc-test-bzr02-state
|
||||
# vc-test-bzr05-rename-file
|
||||
# vc-test-bzr06-version-diff
|
||||
# vc-bzr-test-bug9781
|
||||
%lisp/mail/undigest-tests.el
|
||||
%lisp/vc/vc-tests.el
|
||||
%lisp/vc/vc-bzr-tests.el
|
||||
|
||||
# Reason: fails if bubblewrap (bwrap) is installed
|
||||
# "bwrap: setting up uid map: Permission denied"
|
||||
#
|
||||
# bytecomp-tests--dest-mountpoint
|
||||
%lisp/emacs-lisp/bytecomp-tests.el
|
||||
)
|
||||
|
||||
# See test/README for possible options
|
||||
emake \
|
||||
EMACS_TEST_VERBOSE=1 \
|
||||
EXCLUDE_TESTS="${exclude_tests[*]}" \
|
||||
TEST_BACKTRACE_LINE_LENGTH=nil \
|
||||
check
|
||||
}
|
||||
|
||||
src_install() {
|
||||
emake DESTDIR="${D}" NO_BIN_LINK=t BLESSMAIL_TARGET= install
|
||||
|
||||
mv "${ED}"/usr/bin/{emacs-${FULL_VERSION}-,}${EMACS_SUFFIX} || die
|
||||
mv "${ED}"/usr/share/man/man1/{emacs-,}${EMACS_SUFFIX}.1 || die
|
||||
mv "${ED}"/usr/share/metainfo/{emacs-,}${EMACS_SUFFIX}.metainfo.xml || die
|
||||
|
||||
# dissuade Portage from removing our dir file #257260
|
||||
touch "${ED}"/usr/share/info/${EMACS_SUFFIX}/.keepinfodir
|
||||
docompress -x /usr/share/info/${EMACS_SUFFIX}/dir
|
||||
|
||||
# movemail must be setgid mail
|
||||
if ! use mailutils; then
|
||||
fowners root:mail /usr/libexec/emacs/${FULL_VERSION}/${CHOST}/movemail
|
||||
fperms 2751 /usr/libexec/emacs/${FULL_VERSION}/${CHOST}/movemail
|
||||
fi
|
||||
|
||||
# avoid collision between slots, see bug #169033 e.g.
|
||||
rm "${ED}"/usr/share/emacs/site-lisp/subdirs.el || die
|
||||
rm -rf "${ED}"/usr/share/{applications,icons} || die
|
||||
rm -rf "${ED}/usr/$(get_libdir)/systemd" || die
|
||||
rm -rf "${ED}"/var || die
|
||||
|
||||
# remove unused <version>/site-lisp dir
|
||||
rm -rf "${ED}"/usr/share/emacs/${FULL_VERSION}/site-lisp || die
|
||||
|
||||
# remove COPYING file (except for etc/COPYING used by describe-copying)
|
||||
rm "${ED}"/usr/share/emacs/${FULL_VERSION}/lisp/COPYING || die
|
||||
|
||||
if use systemd; then
|
||||
insinto /usr/lib/systemd/user
|
||||
sed -e "/^##/d" \
|
||||
-e "/^ExecStart/s,emacs,${EPREFIX}/usr/bin/${EMACS_SUFFIX}," \
|
||||
-e "/^ExecStop/s,emacsclient,${EPREFIX}/usr/bin/&-${EMACS_SUFFIX}," \
|
||||
etc/emacs.service | newins - ${EMACS_SUFFIX}.service
|
||||
assert
|
||||
fi
|
||||
|
||||
if use gzip-el; then
|
||||
# compress .el files when a corresponding .elc exists
|
||||
find "${ED}"/usr/share/emacs/${FULL_VERSION}/lisp -type f \
|
||||
-name "*.elc" -print | sed 's/\.elc$/.el/' | xargs gzip -9n
|
||||
assert "gzip .el failed"
|
||||
fi
|
||||
|
||||
local cdir
|
||||
if use source; then
|
||||
cdir="/usr/share/emacs/${FULL_VERSION}/src"
|
||||
insinto "${cdir}"
|
||||
# This is not meant to install all the source -- just the
|
||||
# C source you might find via find-function
|
||||
doins src/*.{c,h,m}
|
||||
elif has installsources ${FEATURES}; then
|
||||
cdir="/usr/src/debug/${CATEGORY}/${PF}/${S#"${WORKDIR}/"}/src"
|
||||
fi
|
||||
|
||||
sed -e "${cdir:+#}/^Y/d" -e "s/^[XY]//" >"${T}/${SITEFILE}" <<-EOF || die
|
||||
X
|
||||
;;; ${EMACS_SUFFIX} site-lisp configuration
|
||||
X
|
||||
(when (string-match "\\\\\`${FULL_VERSION//./\\\\.}\\\\>" emacs-version)
|
||||
Y (setq find-function-C-source-directory
|
||||
Y "${EPREFIX}${cdir}")
|
||||
X (let ((path (getenv "INFOPATH"))
|
||||
X (dir "${EPREFIX}/usr/share/info/${EMACS_SUFFIX}")
|
||||
X (re "\\\\\`${EPREFIX}/usr/share\\\\>"))
|
||||
X (and path
|
||||
X ;; move Emacs Info dir before anything else in /usr/share
|
||||
X (let* ((p (cons nil (split-string path ":" t))) (q p))
|
||||
X (while (and (cdr q) (not (string-match re (cadr q))))
|
||||
X (setq q (cdr q)))
|
||||
X (setcdr q (cons dir (delete dir (cdr q))))
|
||||
X (setenv "INFOPATH" (mapconcat 'identity (cdr p) ":"))))))
|
||||
EOF
|
||||
elisp-site-file-install "${T}/${SITEFILE}" || die
|
||||
|
||||
dodoc README BUGS CONTRIBUTE
|
||||
|
||||
if use gui && use aqua; then
|
||||
dodir /Applications/Gentoo
|
||||
rm -rf "${ED}"/Applications/Gentoo/${EMACS_SUFFIX^}.app || die
|
||||
mv nextstep/Emacs.app \
|
||||
"${ED}"/Applications/Gentoo/${EMACS_SUFFIX^}.app || die
|
||||
fi
|
||||
|
||||
local DOC_CONTENTS="You can set the version to be started by
|
||||
/usr/bin/emacs through the Emacs eselect module, which also
|
||||
redirects man and info pages. Therefore, several Emacs versions can
|
||||
be installed at the same time. \"man emacs.eselect\" for details.
|
||||
\\n\\nIf you upgrade from a previous major version of Emacs, then
|
||||
it is strongly recommended that you use app-admin/emacs-updater
|
||||
to rebuild all byte-compiled elisp files of the installed Emacs
|
||||
packages."
|
||||
if use gui; then
|
||||
DOC_CONTENTS+="\\n\\nYou need to install some fonts for Emacs.
|
||||
Installing media-fonts/font-adobe-{75,100}dpi on the X server's
|
||||
machine would satisfy basic Emacs requirements under X11.
|
||||
See also https://wiki.gentoo.org/wiki/Xft_support_for_GNU_Emacs
|
||||
for how to enable anti-aliased fonts."
|
||||
use aqua && DOC_CONTENTS+="\\n\\n${EMACS_SUFFIX^}.app is in
|
||||
\"${EPREFIX}/Applications/Gentoo\". You may want to copy or
|
||||
symlink it into /Applications by yourself."
|
||||
fi
|
||||
tc-is-cross-compiler && DOC_CONTENTS+="\\n\\nEmacs did not write
|
||||
a portable dump file due to being cross-compiled.
|
||||
To create this file at run time, execute the following command:
|
||||
\\n${EMACS_SUFFIX} --batch -Q --eval='(dump-emacs-portable
|
||||
\"/usr/libexec/emacs/${FULL_VERSION}/${CHOST}/emacs.pdmp\")'"
|
||||
readme.gentoo_create_doc
|
||||
}
|
||||
|
||||
pkg_preinst() {
|
||||
# verify that the PM hasn't removed our Info directory index #257260
|
||||
local infodir="${ED}/usr/share/info/${EMACS_SUFFIX}"
|
||||
[[ -f ${infodir}/dir || ! -d ${infodir} ]] || die
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
elisp-site-regen
|
||||
readme.gentoo_print_elog
|
||||
|
||||
if use livecd; then
|
||||
# force an update of the emacs symlink for the livecd/dvd,
|
||||
# because some microemacs packages set it with USE=livecd
|
||||
eselect emacs update
|
||||
else
|
||||
eselect emacs update ifunset
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
elisp-site-regen
|
||||
eselect emacs update ifunset
|
||||
}
|
@ -1,6 +1,6 @@
|
||||
DIST vscode-1.78.2-amd64.tar.gz 134674196 BLAKE2B 314ab07185d91bf20d4016b327496924c111c7b7ef6e2775c7abbb5a497a35ad09e5a7176691849ab36e28f4d291e6a4e2cfa4024c00fc45e5b13514997d71c2 SHA512 a5919a7f04257c529a7c0a0147e2f8d18181c90a64198d822957d74e5bc8e5d3c60f7732a4f3c456f0036907d82688d51435dbe26aa25264bd1014fe97da4a1b
|
||||
DIST vscode-1.78.2-arm.tar.gz 119250112 BLAKE2B 3a0bf7ea25b85202a3d0be196721e2aacf79dc8c6bcf5ae97d37d04c82ca782b3641435997b029170618f4cab31c59978faf70a5bf89ac2e834e7743e1822063 SHA512 ffeff708c553903c10c9ce833e28286144e1407e59298a05f00ce75912605061914268fff34f74e5e0e6a21989191fa9c5e757c271a784ec0ccfa2db02567679
|
||||
DIST vscode-1.78.2-arm64.tar.gz 130761570 BLAKE2B 6fbd079ca89f49419e53e1daf108e6508036a654395bbdc1ce61bed4c9fbb0425738ba39f8d7682b889f80f5c08fdff947f819c36e932bf652f1441182981e07 SHA512 877ce23498c68f2c3eadae5eafc83cecedefa0d290efb2578f3ab0faa6c9aa8d2fe22e9e4f33afbe9a95cfb12b994411de3303b902da73af5c33be43345d52e7
|
||||
DIST vscode-1.79.0-amd64.tar.gz 134771216 BLAKE2B eff3918fdc4c48cb9b0dd0ba09f5cf10c707c3fe491905a4150cfd634722d66e49a13c3d08828c3eafcc8b507356308d829b32e5c57313194157c27b9d895e6a SHA512 586898b17af29bf218af765cf7a8c3aefd7b73d181c9bafa3a98fc8f2f74d14c6c132179542b1b5ffa364b153bb8c5d71150d0ef40266913685640c2640c7209
|
||||
DIST vscode-1.79.0-arm.tar.gz 119314354 BLAKE2B 23ffd7c9202e5491e41c5b99a707807ca3cd06ba5323f5c67859344c95dc19848ec9daa83bc97f2afa585cd93a4cf62da0608a3cc4788d9e4b71a468a1fad6c3 SHA512 9eecbeaf34b4248915e4c0f922c7033c140cb4944e73775c116bd1e03c8cd3feb2f702e6d089df057b307637e2b4065a06e377b156d22ea92dee1741c846934f
|
||||
DIST vscode-1.79.0-arm64.tar.gz 130967654 BLAKE2B fe5a484b12ad1ef6c9cccbe95cab149a0caf9fe6d5f2b5f6354dbf154346f5cfb6d6c4da839149dfff2194b43ac72639a2e5df457aedcd2bcf96cd8fff9515e9 SHA512 b2541ea525ae82b8468b6b41990f73cb881461f352691959402d7927423a1ec215a43db7aac7f9b3ae83e6507cdf5c7645431fc08872dde8df7d6b4ce47c20f3
|
||||
DIST vscode-1.79.1-amd64.tar.gz 134787612 BLAKE2B 65b8cd1695c92dc3d1cd3cf1ddd5b2e048ed8df3bd0d8284bff6a1980947adbc9fb85fe48a79ce20405151d33422c6f0677a4a2cf7cbb572eff6b866d9f951d1 SHA512 15f48715bffe22aceada44cc5da3b7e47983e3acb5ecc04aca5babe465f2da0c2dd143540f231ce6d8e3f6879d66b494d9be57afa23161ab65448430f294ea2c
|
||||
DIST vscode-1.79.1-arm.tar.gz 119311072 BLAKE2B 5f6a48fb3b915894aa90488c0c80fd47d886c614d46821a61a3d97899e4d8c02a22730944f50e1ecc4c7f729db19ef054e3e46be570d6a19e63a8b730084b41e SHA512 f61c3bb2570621c3e20b3b056e4d06178a674e63d9fbc132f885734ba5ec030456177657e81c7d2a98054dce4dde2ca6387d8c84841dc26c0dd6bcea1dc386aa
|
||||
DIST vscode-1.79.1-arm64.tar.gz 130964437 BLAKE2B ae7d5a14a0d31de1ac984f74805191d3323cad8861949c4cbf342e7f6e5b0a4d5ee046ad314be4eb39b33e17120a700964c9d7696922ac1fd487d7e1b5374915 SHA512 e99fed7bdf7b8557cdcaa4bfe5ee7509dd34a34e6643f522439736d84d172070586cf7216b9d06f3110bdb2487bbd389777ee2a14929c04c963db982196e2a87
|
||||
|
Binary file not shown.
@ -1 +1,2 @@
|
||||
DIST emacs-ebuild-snippets-2.0.4.tar.bz2 12041 BLAKE2B 98c4134080686f12bfae92b7bfe912ead0c7f407755682c18a33b191a9329be848a5e77eb0bb50f54e935a8460e1c0fac1574187b605a8a647c199ba8946e50a SHA512 ce78bc2bcad3f7d8684258d344aa3f95b1c57331e169ea04af19f2756eca019e30b6ba7037f5f59b57a20c1fa2a2203be30bbbca4005e425129a3744843b55eb
|
||||
DIST emacs-ebuild-snippets-2.1.0.tar.bz2 12381 BLAKE2B 2681b73049dec8e6bb5b3704dfd1619ea2ca5ab6757ad04c0f9530dc734b57a9d885a10b991b0973cfd12349cd100e25c554b2e55c4c84976c3390f4cbbc77e7 SHA512 d492941a20a3e5f01b3b39d2c90b17473f2b4470b6cd80153a2b8c1df3074aa95d9e14384ea1fba3348026c1704ebe2096ee8fe27227afa1ea6512c6fae7c6dc
|
||||
|
@ -0,0 +1,40 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit elisp
|
||||
|
||||
DESCRIPTION="Yasnippets for editing ebuilds and eclasses"
|
||||
HOMEPAGE="https://gitweb.gentoo.org/proj/emacs-ebuild-snippets.git"
|
||||
|
||||
if [[ ${PV} == *9999* ]] ; then
|
||||
inherit git-r3
|
||||
EGIT_REPO_URI="https://gitweb.gentoo.org/proj/${PN}.git"
|
||||
else
|
||||
SRC_URI="https://gitweb.gentoo.org/proj/${PN}.git/snapshot/${P}.tar.bz2"
|
||||
KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~sparc ~x86"
|
||||
fi
|
||||
|
||||
LICENSE="GPL-2+"
|
||||
SLOT="0"
|
||||
|
||||
RDEPEND="
|
||||
app-emacs/ebuild-mode
|
||||
app-emacs/yasnippet
|
||||
"
|
||||
BDEPEND="${RDEPEND}"
|
||||
|
||||
src_prepare() {
|
||||
sh ./scripts/changeme.sh "${EPREFIX}${SITEETC}/${PN}" || die
|
||||
|
||||
default
|
||||
}
|
||||
|
||||
src_install() {
|
||||
elisp-install ${PN} *.el{,c}
|
||||
elisp-site-file-install "${S}"/gentoo/50${PN}-gentoo.el
|
||||
|
||||
insinto "${SITEETC}/${PN}"
|
||||
doins -r snippets
|
||||
}
|
@ -0,0 +1,33 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit elisp
|
||||
|
||||
DESCRIPTION="Other echo area"
|
||||
HOMEPAGE="https://github.com/abo-abo/hydra/"
|
||||
|
||||
if [[ ${PV} == *9999* ]] ; then
|
||||
inherit git-r3
|
||||
EGIT_REPO_URI="https://github.com/abo-abo/hydra.git"
|
||||
else
|
||||
SRC_URI="https://github.com/abo-abo/hydra/archive/${PV}.tar.gz
|
||||
-> ${P}.tar.gz"
|
||||
S="${WORKDIR}/hydra-${PV}"
|
||||
KEYWORDS="amd64"
|
||||
fi
|
||||
|
||||
LICENSE="GPL-3+"
|
||||
SLOT="0"
|
||||
|
||||
SITEFILE="50${PN}-gentoo.el"
|
||||
|
||||
src_compile() {
|
||||
elisp-compile lv.el
|
||||
}
|
||||
|
||||
src_install() {
|
||||
elisp-install lv lv.el{,c}
|
||||
elisp-site-file-install "${FILESDIR}/${SITEFILE}"
|
||||
}
|
@ -1,20 +0,0 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit elisp
|
||||
|
||||
IUSE=""
|
||||
|
||||
DESCRIPTION="Other echo area"
|
||||
HOMEPAGE="https://github.com/abo-abo/hydra"
|
||||
SRC_URI="https://github.com/abo-abo/hydra/archive/${PV}.tar.gz -> ${P}.tar.gz"
|
||||
LICENSE="GPL-3+"
|
||||
SLOT="0"
|
||||
KEYWORDS="amd64"
|
||||
DOCS="README.md"
|
||||
|
||||
SITEFILE="50${PN}-gentoo.el"
|
||||
|
||||
S="${WORKDIR}/hydra-${PV}"
|
Binary file not shown.
@ -1,2 +1 @@
|
||||
DIST diskimage-builder-3.29.0.tar.gz 526544 BLAKE2B a5b52e8ec5f46e4aa1ec27a9194381e5f47ede8a2428b8e43e8d200174cc39654cf55f7f44ee46a3b03a846b665fb635c06f413878dd30e8ba4aa020f5c6f7d0 SHA512 f35650481168c52066c6ec9818e08fe5d20732899676fe1a1961a71d522b045539da06a0d1bd366e5a2e6ebc07d6e609b9bfbcaa83ca50086fe2c17936f27ba7
|
||||
DIST diskimage-builder-3.30.0.tar.gz 527303 BLAKE2B ef364ad61932e56579c150935d247ba83a5d8bacf4aee196404f71304b560081fed5089129c74f4d3b3d6054165438dbf150a6fba41aaf4065b79cdf747e08f9 SHA512 aa9580878a4606069262022117abea6e1e4f9d1fb0f5951ea2b47486e844b2bfa330033e627c6a5bd8d50d97bf595a3380ec5b084199192c6b34849c41fd2d5a
|
||||
|
@ -1,40 +0,0 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
PYTHON_COMPAT=( python3_{9,10} )
|
||||
DISTUTILS_USE_SETUPTOOLS=rdepend
|
||||
PYPI_NO_NORMALIZE=1
|
||||
inherit distutils-r1
|
||||
|
||||
DESCRIPTION="Golden Disk Image builder"
|
||||
HOMEPAGE="http://docs.openstack.org/developer/diskimage-builder/"
|
||||
if [[ ${PV} == 9999* ]]; then
|
||||
inherit git-r3
|
||||
EGIT_REPO_URI="https://opendev.org/openstack/diskimage-builder.git"
|
||||
else
|
||||
inherit pypi
|
||||
KEYWORDS="amd64 ~arm64 x86 ~amd64-linux ~x86-linux"
|
||||
fi
|
||||
|
||||
LICENSE="Apache-2.0"
|
||||
SLOT="0"
|
||||
IUSE=""
|
||||
|
||||
CDEPEND=">=dev-python/pbr-2.0.0[${PYTHON_USEDEP}]
|
||||
!~dev-python/pbr-2.1.0[${PYTHON_USEDEP}]"
|
||||
DEPEND="${CDEPEND}"
|
||||
RDEPEND="${CDEPEND}
|
||||
>=dev-python/Babel-2.3.4[${PYTHON_USEDEP}]
|
||||
!~dev-python/Babel-2.4.0[${PYTHON_USEDEP}]
|
||||
>=dev-python/networkx-1.10[${PYTHON_USEDEP}]
|
||||
>=dev-python/pyyaml-3.12[${PYTHON_USEDEP}]
|
||||
>=dev-python/six-1.10.0[${PYTHON_USEDEP}]
|
||||
>=dev-python/stevedore-1.20.0[${PYTHON_USEDEP}]
|
||||
app-emulation/qemu
|
||||
sys-block/parted
|
||||
sys-fs/multipath-tools
|
||||
sys-fs/dosfstools
|
||||
sys-apps/gptfdisk
|
||||
!dev-python/dib-utils[${PYTHON_USEDEP}]"
|
Binary file not shown.
@ -1,4 +1,5 @@
|
||||
DIST aide-0.17.4.tar.gz 331783 BLAKE2B 584a385d0a0e80edf0b89eef202431adfea7fe8ba04c774e49dfb7230e766e19a48572e9d6c80386668572e459db9770b04978df484bd49c7de6433657500e13 SHA512 b6dba54fd204e1899d47b0b4139786cbeaa51c388027e2cfc1bb839297a70ae8ad6f37429594a730fac8007d62b4ba5b61a4aa22edbc55cbe986ccfaf5197f31
|
||||
DIST aide-0.18.2.tar.gz 382582 BLAKE2B 267233a4dfdbc5a433389c20a1abe753133dfa01ecc205769c89a9b4699535b1d00e9df6527ae8298f4cb920e2f755e4d75d17b4a2449041a85c8c5e5ecc2abc SHA512 3a209db9dc1adb345494ce20a5c3def9f40ae49723d3a978d8e9b38f43239496a330b484ed93adba88154770ce1f1a0f3cdeb2ff8d991d28a1d66cfa6cd9b68b
|
||||
DIST aide-0.18.3.tar.gz 382694 BLAKE2B f5e79d80c1fa2ba15096d38c1a1d197fc8665bc0ff03665367abce7722561f2054cc64f51429a1411d6aaa0df315869ac99314e660acdff31bf1dc6b471a62b8 SHA512 22f1d2d3e14fa88639587f5a61e114b89c784a87f636c1bbb245e620254b60ec07692e51ae27386a84810d7a915e0ddf5c5073fecb6eb72148ff5035ef8525eb
|
||||
DIST aide-0.18.4.tar.gz 382874 BLAKE2B e8fe8a115236f055f24b907ddcf540f02658b85c1df99ff9a8f58dfa9489de3d542b25bb947e047c8363c81d1f0ad0730fd77efacabe15fa24bbafc3fd807687 SHA512 31a17fc97ed9bda5dc4a492bcee699442cee1ea3829b1b06cf91ef9234a8b033677c281979902cbc6a8db0269c7f00499897940df07beff14cbb88b8fe6390f5
|
||||
DIST aide-0.18.tar.gz 375922 BLAKE2B 03c961682fd25581831ca0715e57546b5595057115a456778ac0846fd1f23622600a061e2d8524f7381dfa6d43cefcdaa52d00eed2639dd60c7f3501efe8b474 SHA512 99d8140523ebe1d80b5d73c20bf13b8559aa22f08a9df485c15daeba7f5448c27d86ed310f2e7963076958dbe1fc2e4636807ca073dd0a6568b4eb8af2a38f4b
|
||||
|
@ -0,0 +1,106 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit readme.gentoo-r1
|
||||
|
||||
DESCRIPTION="AIDE (Advanced Intrusion Detection Environment) is a file integrity checker"
|
||||
HOMEPAGE="https://aide.github.io/ https://github.com/aide/aide"
|
||||
SRC_URI="https://github.com/aide/aide/releases/download/v${PV}/${P}.tar.gz"
|
||||
|
||||
LICENSE="GPL-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~arm64 ~x86"
|
||||
IUSE="acl audit curl e2fs mhash selinux xattr"
|
||||
|
||||
DEPEND="
|
||||
dev-libs/libpcre2
|
||||
sys-libs/zlib
|
||||
acl? ( virtual/acl )
|
||||
audit? ( sys-process/audit )
|
||||
curl? ( net-misc/curl )
|
||||
e2fs? ( sys-fs/e2fsprogs )
|
||||
!mhash? (
|
||||
dev-libs/libgcrypt:=
|
||||
dev-libs/libgpg-error
|
||||
)
|
||||
mhash? ( app-crypt/mhash )
|
||||
selinux? ( sys-libs/libselinux )
|
||||
xattr? ( sys-apps/attr )
|
||||
"
|
||||
RDEPEND="
|
||||
${DEPEND}
|
||||
selinux? ( sec-policy/selinux-aide )
|
||||
"
|
||||
BDEPEND="
|
||||
sys-devel/bison
|
||||
sys-devel/flex
|
||||
virtual/pkgconfig
|
||||
"
|
||||
|
||||
DISABLE_AUTOFORMATTING=1
|
||||
DOC_CONTENTS="
|
||||
Example configuration file was installed at '${EPREFIX}/etc/aide/aide.conf'.
|
||||
Please edit it to meet your needs. Refer to aide.conf(5) manual page
|
||||
for more information.
|
||||
|
||||
A helper script, aideinit, was installed and can be used to make AIDE
|
||||
management easier. Please run 'aideinit --help' for more information."
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
# Only needed for snapshots.
|
||||
if [[ ${PV} == *_p* ]] ; then
|
||||
echo "m4_define([AIDE_VERSION], [${PV}])" > version.m4 || die
|
||||
fi
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
# Needs Bison, flex
|
||||
unset YACC
|
||||
export LEX=flex
|
||||
|
||||
local myeconfargs=(
|
||||
--sysconfdir="${EPREFIX}"/etc/${PN}
|
||||
|
||||
# Needed even in EAPI=8, >=portage-3.0.40 skips it here (bug #887177)
|
||||
--disable-static
|
||||
|
||||
# Disable broken l10n support: https://sourceforge.net/p/aide/bugs/98/
|
||||
# This doesn't affect anything because there are no localizations yet.
|
||||
--without-locale
|
||||
|
||||
--with-zlib
|
||||
$(use_with curl)
|
||||
$(use_with acl posix-acl)
|
||||
$(use_with selinux)
|
||||
$(use_with xattr)
|
||||
$(use_with e2fs e2fsattrs)
|
||||
$(use_with mhash mhash)
|
||||
$(use_with !mhash gcrypt)
|
||||
$(use_with audit)
|
||||
)
|
||||
|
||||
econf "${myeconfargs[@]}"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
default
|
||||
|
||||
readme.gentoo_create_doc
|
||||
|
||||
insinto /etc/${PN}
|
||||
insopts -m0600
|
||||
newins "${FILESDIR}"/aide.conf-r2 aide.conf
|
||||
|
||||
dosbin "${FILESDIR}"/aideinit
|
||||
dodoc -r contrib/ "${FILESDIR}"/aide.cron-r2
|
||||
|
||||
keepdir /var/{lib,log}/${PN}
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
readme.gentoo_print_elog
|
||||
}
|
Binary file not shown.
@ -0,0 +1,95 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
PYTHON_COMPAT=( python3_{10..11} )
|
||||
PYTHON_REQ_USE="sqlite"
|
||||
|
||||
inherit desktop optfeature python-single-r1 xdg
|
||||
|
||||
DESCRIPTION="A spaced-repetition memory training program (flash cards)"
|
||||
HOMEPAGE="https://apps.ankiweb.net"
|
||||
SRC_URI="https://apps.ankiweb.net/downloads/archive/${P}-source.tgz -> ${P}.tgz"
|
||||
|
||||
LICENSE="AGPL-3+ BSD MIT GPL-3+ CC-BY-SA-3.0 Apache-2.0 CC-BY-2.5"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
IUSE="test"
|
||||
RESTRICT="!test? ( test )"
|
||||
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
|
||||
|
||||
RDEPEND="${PYTHON_DEPS}
|
||||
$(python_gen_cond_dep '
|
||||
>=dev-python/PyQt5-5.12[gui,svg,widgets,${PYTHON_USEDEP}]
|
||||
>=dev-python/PyQtWebEngine-5.12[${PYTHON_USEDEP}]
|
||||
>=dev-python/httplib2-0.7.4[${PYTHON_USEDEP}]
|
||||
dev-python/beautifulsoup4[${PYTHON_USEDEP}]
|
||||
dev-python/decorator[${PYTHON_USEDEP}]
|
||||
dev-python/jsonschema[${PYTHON_USEDEP}]
|
||||
dev-python/markdown[${PYTHON_USEDEP}]
|
||||
dev-python/requests[${PYTHON_USEDEP}]
|
||||
dev-python/send2trash[${PYTHON_USEDEP}]
|
||||
')
|
||||
"
|
||||
BDEPEND="test? (
|
||||
${RDEPEND}
|
||||
$(python_gen_cond_dep '
|
||||
dev-python/nose[${PYTHON_USEDEP}]
|
||||
dev-python/mock[${PYTHON_USEDEP}]
|
||||
')
|
||||
)
|
||||
"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${PN}-2.1.0_beta25-web-folder.patch
|
||||
"${FILESDIR}"/${PN}-2.1.15-mpv-args.patch
|
||||
"${FILESDIR}"/${PN}-2.1.15-unescape.patch
|
||||
"${FILESDIR}"/${PN}-2.1.15-fix-prefs.patch
|
||||
)
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
sed -i -e "s/updates=True/updates=False/" \
|
||||
aqt/profiles.py || die
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
:;
|
||||
}
|
||||
|
||||
src_test() {
|
||||
sed -e "s:nose=nosetests$:nose=\"${EPYTHON} ${BROOT}/usr/bin/nosetests\":" \
|
||||
-i tools/tests.sh || die
|
||||
sed -e "s:nose=nosetests3$:nose=\"${EPYTHON} ${BROOT}/usr/bin/nosetests3\":" \
|
||||
-i tools/tests.sh || die
|
||||
sed -e "s:which nosetests3:which ${BROOT}/usr/bin/nosetests3:" \
|
||||
-i tools/tests.sh || die
|
||||
./tools/tests.sh || die
|
||||
}
|
||||
|
||||
src_install() {
|
||||
doicon ${PN}.png
|
||||
domenu ${PN}.desktop
|
||||
doman ${PN}.1
|
||||
|
||||
dodoc README.md README.development
|
||||
python_domodule aqt anki
|
||||
python_newscript runanki anki
|
||||
|
||||
# Localization files go into the anki directory:
|
||||
python_moduleinto anki
|
||||
python_domodule locale
|
||||
|
||||
# not sure if this is correct, but
|
||||
# site-packages/aqt/mediasrv.py wants the directory
|
||||
insinto /usr/share/anki
|
||||
doins -r web
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
xdg_pkg_postinst
|
||||
optfeature "LaTeX in cards" "app-text/texlive app-text/dvipng"
|
||||
optfeature "Record sound" "dev-python/pyaudio media-sound/lame"
|
||||
optfeature "Playback sound" media-video/mpv media-video/mplayer
|
||||
}
|
@ -0,0 +1,17 @@
|
||||
https://bugs.gentoo.org/869917#c3
|
||||
https://github.com/ankitects/anki/commit/d2ae874d9e1615d09afc912275cc3b27776a1392
|
||||
|
||||
--- a/aqt/preferences.py
|
||||
+++ b/aqt/preferences.py
|
||||
@@ -77,8 +77,8 @@ class Preferences(QDialog):
|
||||
f.hwAccel.setVisible(False)
|
||||
else:
|
||||
f.hwAccel.setChecked(self.mw.pm.glMode() != "software")
|
||||
- f.lrnCutoff.setValue(qc['collapseTime']/60.0)
|
||||
- f.timeLimit.setValue(qc['timeLim']/60.0)
|
||||
+ f.lrnCutoff.setValue(int(qc['collapseTime']/60.0))
|
||||
+ f.timeLimit.setValue(int(qc['timeLim']/60.0))
|
||||
f.showEstimates.setChecked(qc['estTimes'])
|
||||
f.showProgress.setChecked(qc['dueCounts'])
|
||||
f.nightMode.setChecked(qc.get("nightMode", False))
|
||||
|
Binary file not shown.
@ -1 +1,2 @@
|
||||
DIST libgepub-0.7.0.tar.xz 28536 BLAKE2B beeab3d3911353cb0cac78207cc9e18e3341afce94213757c8d246a2d01c42aa0eb37618cc066307ce2ec8f21dbb89982271f25a9552d6872d5e86a4345407c6 SHA512 2ab661a6379899ff818313205d818ef1239654afde9ebcc22fa55b5d961aee20dd9c8295a58ff1d1fb1ea281ddb6ee8644942a860b3ee9f6a4ba9d7447efc517
|
||||
DIST libgepub-0.7.1.tar.xz 28576 BLAKE2B a65ecdd13bfcc96fbf0e1998d24cc565f0bd60213f278fdf592dcdf1ad6a1b40c9c10e3ffc3fe9ac500d92f5471619432badd746dfc57538e96a2b6a138b0a26 SHA512 9a9c56cffab485b78f0fdf115e655c4f395ee6e3f00b203fee5dfbb2054aa58540ca1fe8dc9dd82460ae3b39e89471e128086be10e77b247d0ce7b195bfbe8e3
|
||||
|
@ -0,0 +1,40 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit gnome.org meson xdg
|
||||
|
||||
DESCRIPTION="GObject based library for handling and rendering epub documents"
|
||||
HOMEPAGE="https://gitlab.gnome.org/GNOME/libgepub"
|
||||
|
||||
LICENSE="LGPL-2+"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
|
||||
IUSE="+introspection webkit"
|
||||
|
||||
RDEPEND="
|
||||
net-libs/libsoup:3.0
|
||||
dev-libs/glib:2
|
||||
dev-libs/libxml2
|
||||
app-arch/libarchive:=
|
||||
webkit? ( >=net-libs/webkit-gtk-2.38.0:4.1[introspection?] )
|
||||
introspection? ( >=dev-libs/gobject-introspection-1.30:= )
|
||||
"
|
||||
DEPEND="${RDEPEND}"
|
||||
BDEPEND="virtual/pkgconfig"
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
# Tests are not executed by `meson test` and they require GTK+3
|
||||
sed -i -e "/subdir('tests')/d" meson.build || die
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local emesonargs=(
|
||||
$(meson_use introspection)
|
||||
$(meson_use webkit widget)
|
||||
)
|
||||
meson_src_configure
|
||||
}
|
Binary file not shown.
@ -1 +1,2 @@
|
||||
DIST gentoo-syntax-10.tar.bz2 20945 BLAKE2B 7e081ae2d1498fc0b0616c750881c6f47cbae21d88d876c33d54bae0ff32f5eca44a004e31714fa4af0d351656c72df9e69f33ff0f97e6a2c59d835aacbd44a6 SHA512 790e24ac5427b50f1cd332b895e477bc9715a681cf8c21aaaff722151e6245b45fb33f49465258280eab6a903f3b0c8a8d40b935f44942b6b93f5c0d3c7c420a
|
||||
DIST gentoo-syntax-11.tar.bz2 20986 BLAKE2B dd4d4d3a65480a4600d9c1372fdb1db40c07d3a954232513a535cd9e7d59e5e89f185e32aa7bfe38909e1ef4b0e2639136478ba9ab7eb6ceedd9fdb459b08da2 SHA512 9c74b38880429e2e980e8f44b51ed5bc3bb1431d8429a7ac66574556e3ca01e909c445585da9152d78e38d23cc9a4c100bb81f56ea8c0b63291b8df0dca7b886
|
||||
|
@ -0,0 +1,42 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
inherit vim-plugin
|
||||
|
||||
DESCRIPTION="vim plugin: Gentoo and Portage syntax highlighting"
|
||||
HOMEPAGE="https://github.com/gentoo/gentoo-syntax"
|
||||
SRC_URI="https://gitweb.gentoo.org/proj/gentoo-syntax.git/snapshot/${P}.tar.bz2"
|
||||
|
||||
LICENSE="vim"
|
||||
SLOT="0"
|
||||
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="ignore-glep31"
|
||||
|
||||
VIM_PLUGIN_HELPFILES="gentoo-syntax"
|
||||
VIM_PLUGIN_MESSAGES="filetype"
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
if use ignore-glep31 ; then
|
||||
for f in ftplugin/*.vim ; do
|
||||
ebegin "Removing UTF-8 rules from ${f} ..."
|
||||
sed -i -e 's~\(setlocal fileencoding=utf-8\)~" \1~' ${f} \
|
||||
|| die "waah! bad sed voodoo. need more goats."
|
||||
eend $?
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
vim-plugin_pkg_postinst
|
||||
|
||||
if [[ -z ${REPLACING_VERSIONS} ]] ; then
|
||||
if use ignore-glep31 1>/dev/null ; then
|
||||
ewarn "You have chosen to disable the rules which ensure GLEP 31"
|
||||
ewarn "compliance. When editing ebuilds, please make sure you get"
|
||||
ewarn "the character set correct."
|
||||
fi
|
||||
fi
|
||||
}
|
Binary file not shown.
@ -0,0 +1 @@
|
||||
DIST jwt-cpp-0.6.0.tar.gz 275126 BLAKE2B 4bf9bed9b2aa9584b497b2ab4d1d2582d9b5e4ded402200ea3f70b0e6752338fd4e2ef9c5836c728a6907a0190209c7baeaecd26032ce64dc6bf12a23594f27b SHA512 b6d5ebb3a7eeb6fef9a1d41c707251d1ab05bf47920c280d5203f1b9ee5bf6f8e914cd2ffaed66550cfa6d78c34465d4cf86517a759d5f8739b429faf1c2c0ef
|
@ -0,0 +1,14 @@
|
||||
From: Hannu Lounento <hannu.lounento@vaisala.com>
|
||||
Bug: https://github.com/Thalhammer/jwt-cpp/pull/287
|
||||
|
||||
Fix build with GCC 13.
|
||||
|
||||
--- a/include/jwt-cpp/base.h
|
||||
+++ b/include/jwt-cpp/base.h
|
||||
@@ -3,6 +3,7 @@
|
||||
|
||||
#include <array>
|
||||
+#include <cstdint>
|
||||
#include <stdexcept>
|
||||
#include <string>
|
||||
|
@ -0,0 +1,82 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit cmake
|
||||
|
||||
if [[ ${PV} == *9999* ]]; then
|
||||
inherit git-r3
|
||||
EGIT_REPO_URI="https://github.com/Thalhammer/jwt-cpp.git"
|
||||
else
|
||||
SRC_URI="https://github.com/Thalhammer/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
fi
|
||||
|
||||
DESCRIPTION="header only library for creating and validating JSON Web Tokens in C++11"
|
||||
HOMEPAGE="https://thalhammer.github.io/jwt-cpp/"
|
||||
|
||||
LICENSE="MIT"
|
||||
SLOT="0"
|
||||
IUSE="doc +picojson test"
|
||||
|
||||
DEPEND="
|
||||
dev-cpp/nlohmann_json
|
||||
dev-libs/openssl
|
||||
picojson? ( dev-cpp/picojson )
|
||||
"
|
||||
RDEPEND="${DEPEND}"
|
||||
BDEPEND="
|
||||
doc? ( app-doc/doxygen[dot] )
|
||||
test? ( dev-cpp/gtest )
|
||||
"
|
||||
RESTRICT="
|
||||
!picojson? ( test )
|
||||
!test? ( test )
|
||||
"
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/"${PN}"-0.6.0-gcc13.patch
|
||||
)
|
||||
DOCS=( README.md docs/{faqs,ssl,traits}.md )
|
||||
|
||||
src_prepare() {
|
||||
# Unbundle dev-cpp/nlohmann_json.
|
||||
rm -vrf include/nhlomann || die
|
||||
# Unbundle dev-cpp/picojson and fix include paths.
|
||||
# See also: https://github.com/Thalhammer/jwt-cpp/issues/213
|
||||
rm -vrf include/picojson || die
|
||||
find -name '*.h' -type f -print0 | xargs -0 sed -r -e "s:picojson/picojson\.h:picojson.h:g" -i || die
|
||||
# Prevent installation of bundled dev-cpp/picojson.
|
||||
sed -i -e 's:^\s*install.*picojson/picojson\.h.*$::' CMakeLists.txt || die
|
||||
cmake_src_prepare
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local mycmakeargs=(
|
||||
-DJWT_DISABLE_PICOJSON="$(usex !picojson)"
|
||||
# Not useful for now, asks for non-existent CMake module.
|
||||
#-DJWT_EXTERNAL_PICOJSON="$(usex picojson)"
|
||||
# Examples are not installed and for development only.
|
||||
-DJWT_BUILD_EXAMPLES=NO
|
||||
-DJWT_BUILD_TESTS="$(usex test)"
|
||||
-DJWT_CMAKE_FILES_INSTALL_DIR="${EPREFIX}"/usr/share/cmake
|
||||
)
|
||||
cmake_src_configure
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
cmake_src_compile
|
||||
if use doc; then
|
||||
doxygen || die
|
||||
fi
|
||||
}
|
||||
|
||||
src_test() {
|
||||
"${BUILD_DIR}"/tests/jwt-cpp-test || die
|
||||
}
|
||||
|
||||
src_install() {
|
||||
cmake_src_install
|
||||
use doc && local HTML_DOCS=(doxy/html/.)
|
||||
einstalldocs
|
||||
}
|
@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
|
||||
<pkgmetadata>
|
||||
<maintainer type="person" proxied="yes">
|
||||
<email>o.freyermuth@googlemail.com</email>
|
||||
<name>Oliver Freyermuth</name>
|
||||
</maintainer>
|
||||
<maintainer type="person">
|
||||
<email>amadio@gentoo.org</email>
|
||||
<name>Guilherme Amadio</name>
|
||||
</maintainer>
|
||||
<maintainer type="project" proxied="proxy">
|
||||
<email>proxy-maint@gentoo.org</email>
|
||||
<name>Proxy Maintainers</name>
|
||||
</maintainer>
|
||||
<upstream>
|
||||
<bugs-to>https://github.com/Thalhammer/jwt-cpp/issues</bugs-to>
|
||||
<remote-id type="github">Thalhammer/jwt-cpp</remote-id>
|
||||
</upstream>
|
||||
<use>
|
||||
<flag name="picojson">Enable use of <pkg>dev-cpp/picojson</pkg></flag>
|
||||
</use>
|
||||
</pkgmetadata>
|
@ -0,0 +1,57 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit cmake
|
||||
|
||||
if [[ ${PV} == *9999* ]]; then
|
||||
inherit git-r3
|
||||
EGIT_REPO_URI="https://github.com/scitokens/scitokens-cpp"
|
||||
else
|
||||
SRC_URI="https://github.com/scitokens/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
fi
|
||||
|
||||
DESCRIPTION=" A C++ implementation of the SciTokens library with a C library interface"
|
||||
HOMEPAGE="https://scitokens.org/"
|
||||
|
||||
LICENSE="Apache-2.0"
|
||||
SLOT="0"
|
||||
IUSE="test"
|
||||
|
||||
DEPEND="
|
||||
dev-cpp/jwt-cpp
|
||||
dev-db/sqlite
|
||||
dev-libs/openssl:0=
|
||||
net-misc/curl:0=
|
||||
sys-apps/util-linux
|
||||
"
|
||||
RDEPEND="${DEPEND}"
|
||||
BDEPEND="
|
||||
virtual/pkgconfig
|
||||
test? ( dev-cpp/gtest )
|
||||
"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
src_prepare() {
|
||||
# Unbundle dev-cpp/gtest, dev-cpp/jwt-cpp
|
||||
rm -r vendor || die
|
||||
# Fix include path for picojson.
|
||||
find src/ \( -name '*.cpp' -o -name '*.h' \) -type f -print0 | \
|
||||
xargs -0 sed -r -e "s:picojson/picojson\.h:picojson.h:g" -i || die
|
||||
# Disable network-based tests relying on external services.
|
||||
if use test; then
|
||||
sed -i -e '/^TEST_F/s#RefreshTest#DISABLED_RefreshTest#' \
|
||||
-e '/^TEST_F/s#RefreshExpiredTest#DISABLED_RefreshExpiredTest#' test/main.cpp || die
|
||||
fi
|
||||
cmake_src_prepare
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local mycmakeargs=(
|
||||
-DSCITOKENS_BUILD_UNITTESTS="$(usex test)"
|
||||
-DSCITOKENS_EXTERNAL_GTEST=YES
|
||||
)
|
||||
cmake_src_configure
|
||||
}
|
Binary file not shown.
@ -1,230 +0,0 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
CRATES="
|
||||
adler32-1.2.0
|
||||
ahash-0.7.6
|
||||
aho-corasick-0.7.18
|
||||
ansi_term-0.11.0
|
||||
ansi_term-0.12.1
|
||||
anyhow-1.0.56
|
||||
arrayvec-0.5.2
|
||||
atty-0.2.14
|
||||
autocfg-1.0.1
|
||||
bitflags-1.3.2
|
||||
bstr-0.2.17
|
||||
bumpalo-3.12.0
|
||||
cast-0.2.7
|
||||
cfg-if-1.0.0
|
||||
chrono-0.4.19
|
||||
clap-2.33.3
|
||||
codespan-reporting-0.11.1
|
||||
colored-2.0.0
|
||||
crc32fast-1.2.1
|
||||
criterion-0.3.5
|
||||
criterion-plot-0.4.4
|
||||
crossbeam-channel-0.5.1
|
||||
crossbeam-deque-0.8.1
|
||||
crossbeam-epoch-0.9.5
|
||||
crossbeam-utils-0.8.8
|
||||
csv-1.1.6
|
||||
csv-core-0.1.10
|
||||
ctor-0.1.21
|
||||
derivative-2.2.0
|
||||
derive_more-0.99.17
|
||||
diff-0.1.12
|
||||
dissimilar-1.0.3
|
||||
either-1.6.1
|
||||
ena-0.14.0
|
||||
env_logger-0.9.0
|
||||
expect-test-1.2.2
|
||||
fallible-iterator-0.2.0
|
||||
fallible-streaming-iterator-0.1.9
|
||||
fastrand-1.7.0
|
||||
flatbuffers-22.9.29
|
||||
fnv-1.0.7
|
||||
form_urlencoded-1.0.1
|
||||
getrandom-0.2.6
|
||||
half-1.8.2
|
||||
hashbrown-0.11.2
|
||||
hashlink-0.7.0
|
||||
heck-0.3.3
|
||||
hermit-abi-0.1.19
|
||||
humantime-2.1.0
|
||||
idna-0.2.3
|
||||
indexmap-1.8.1
|
||||
instant-0.1.12
|
||||
itertools-0.10.1
|
||||
itoa-0.4.8
|
||||
itoa-1.0.1
|
||||
js-sys-0.3.55
|
||||
lazy_static-1.4.0
|
||||
libc-0.2.121
|
||||
libflate-1.2.0
|
||||
libflate_lz77-1.1.0
|
||||
libsqlite3-sys-0.23.2
|
||||
lock_api-0.4.6
|
||||
log-0.4.16
|
||||
lsp-types-0.91.1
|
||||
maplit-1.0.2
|
||||
matches-0.1.9
|
||||
memchr-2.4.1
|
||||
memoffset-0.6.4
|
||||
num-integer-0.1.44
|
||||
num-traits-0.2.14
|
||||
num_cpus-1.13.0
|
||||
once_cell-1.10.0
|
||||
oorandom-11.1.3
|
||||
ordered-float-3.2.0
|
||||
output_vt100-0.1.2
|
||||
pad-0.1.6
|
||||
parking_lot-0.11.2
|
||||
parking_lot_core-0.8.5
|
||||
percent-encoding-2.1.0
|
||||
pkg-config-0.3.25
|
||||
plotters-0.3.1
|
||||
plotters-backend-0.3.2
|
||||
plotters-svg-0.3.1
|
||||
pretty-0.11.2
|
||||
pretty_assertions-1.2.1
|
||||
proc-macro-error-1.0.4
|
||||
proc-macro-error-attr-1.0.4
|
||||
proc-macro2-1.0.32
|
||||
pulldown-cmark-0.9.1
|
||||
quote-1.0.10
|
||||
rayon-1.5.2
|
||||
rayon-core-1.9.2
|
||||
redox_syscall-0.2.10
|
||||
regex-1.5.5
|
||||
regex-automata-0.1.10
|
||||
regex-syntax-0.6.25
|
||||
remove_dir_all-0.5.3
|
||||
rle-decode-fast-1.0.1
|
||||
rusqlite-0.26.3
|
||||
rustc-hash-1.1.0
|
||||
rustc_version-0.4.0
|
||||
ryu-1.0.5
|
||||
salsa-0.17.0-pre.2
|
||||
salsa-macros-0.17.0-pre.2
|
||||
same-file-1.0.6
|
||||
scopeguard-1.1.0
|
||||
semver-1.0.4
|
||||
serde-1.0.136
|
||||
serde_cbor-0.11.2
|
||||
serde_derive-1.0.136
|
||||
serde_json-1.0.79
|
||||
serde_repr-0.1.7
|
||||
smallvec-1.7.0
|
||||
strsim-0.8.0
|
||||
structopt-0.3.26
|
||||
structopt-derive-0.4.18
|
||||
syn-1.0.81
|
||||
tempfile-3.3.0
|
||||
termcolor-1.1.2
|
||||
textwrap-0.11.0
|
||||
thiserror-1.0.30
|
||||
thiserror-impl-1.0.30
|
||||
time-0.1.43
|
||||
tinytemplate-1.2.1
|
||||
tinyvec-1.5.1
|
||||
tinyvec_macros-0.1.0
|
||||
typed-arena-2.0.1
|
||||
unicase-2.6.0
|
||||
unicode-bidi-0.3.7
|
||||
unicode-normalization-0.1.19
|
||||
unicode-segmentation-1.8.0
|
||||
unicode-width-0.1.9
|
||||
unicode-xid-0.2.2
|
||||
url-2.2.2
|
||||
vcpkg-0.2.15
|
||||
vec_map-0.8.2
|
||||
version_check-0.9.3
|
||||
walkdir-2.3.2
|
||||
wasi-0.10.2+wasi-snapshot-preview1
|
||||
wasm-bindgen-0.2.78
|
||||
wasm-bindgen-backend-0.2.78
|
||||
wasm-bindgen-macro-0.2.78
|
||||
wasm-bindgen-macro-support-0.2.78
|
||||
wasm-bindgen-shared-0.2.78
|
||||
web-sys-0.3.55
|
||||
winapi-0.3.9
|
||||
winapi-i686-pc-windows-gnu-0.4.0
|
||||
winapi-util-0.1.5
|
||||
winapi-x86_64-pc-windows-gnu-0.4.0
|
||||
"
|
||||
|
||||
inherit cargo go-module
|
||||
|
||||
DESCRIPTION="Scalable datastore for metrics, events, and real-time analytics"
|
||||
HOMEPAGE="https://www.influxdata.com"
|
||||
|
||||
SRC_URI="https://github.com/influxdata/influxdb/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
||||
SRC_URI+=" https://github.com/influxdata/ui/releases/download/OSS-v${PV}/build.tar.gz -> ${P}-assets.tar.gz"
|
||||
SRC_URI+=" https://gentoo.kropotkin.rocks/go-pkgs/${P}-deps.tar.xz"
|
||||
SRC_URI+=" $(cargo_crate_uris)"
|
||||
|
||||
LICENSE="Apache-2.0 BSD BSD-2 EPL-2.0 ISC MIT MPL-2.0"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64"
|
||||
IUSE="test"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
BDEPEND="virtual/pkgconfig"
|
||||
|
||||
COMMON_DEPEND="
|
||||
acct-group/influxdb
|
||||
acct-user/influxdb
|
||||
"
|
||||
|
||||
DEPEND="${COMMON_DEPEND}"
|
||||
|
||||
src_unpack() {
|
||||
cargo_src_unpack
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
local data_dir
|
||||
data_dir="${S}/static/data"
|
||||
mkdir "${data_dir}" || die
|
||||
mv "${WORKDIR}/build" "${data_dir}" || die
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
mv "${WORKDIR}/go-mod" "${WORKDIR}/go-mod-tmp" || die
|
||||
mv "${WORKDIR}/go-mod-tmp/github.com/influxdata/pkg-config@v0.2.11/go-mod" "${WORKDIR}/go-mod" || die
|
||||
cd "${WORKDIR}"/go-mod-tmp/github.com/influxdata/pkg-config* || die
|
||||
ego build .
|
||||
mv "${WORKDIR}/go-mod" "${WORKDIR}/go-mod-tmp/github.com/influxdata/pkg-config@v0.2.11" || die
|
||||
mv "${WORKDIR}/go-mod-tmp" "${WORKDIR}/go-mod" || die
|
||||
|
||||
cd "${WORKDIR}/go-mod/github.com/influxdata/flux@v0.193.0/libflux" || die
|
||||
cargo_src_compile
|
||||
|
||||
cd "${S}" || die
|
||||
|
||||
export PKG_CONFIG="${WORKDIR}/go-mod/github.com/influxdata/pkg-config@v0.2.11/pkg-config"
|
||||
ego generate ./static
|
||||
GOBIN="${S}/bin" \
|
||||
ego install \
|
||||
-tags 'assets,noasm,sqlite_json,sqlite_foreign_keys' \
|
||||
-ldflags="-X main.version=${PV}" \
|
||||
./...
|
||||
}
|
||||
|
||||
src_test() {
|
||||
ego test ./tests
|
||||
}
|
||||
|
||||
src_install() {
|
||||
dobin bin/influx*
|
||||
dodoc *.md
|
||||
|
||||
newconfd "${FILESDIR}"/influxdb.confd influxdb
|
||||
newinitd "${FILESDIR}"/influxdb.initd influxdb
|
||||
keepdir /var/log/influxdb
|
||||
fowners influxdb:influxdb /var/log/influxdb
|
||||
}
|
Binary file not shown.
@ -0,0 +1,78 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit bash-completion-r1
|
||||
|
||||
UPSTREAM_PV=${PV/_/-}
|
||||
UPSTREAM_PV=${UPSTREAM_PV/rc/RC}
|
||||
|
||||
DESCRIPTION="CLI to interact with Scala and Java"
|
||||
HOMEPAGE="https://scala-cli.virtuslab.org/"
|
||||
SRC_URI="
|
||||
!amd64? ( !arm64? (
|
||||
https://github.com/VirtusLab/scala-cli/releases/download/v${UPSTREAM_PV}/scala-cli
|
||||
-> scala-cli-non-native-${UPSTREAM_PV}
|
||||
) )
|
||||
amd64? (
|
||||
https://github.com/VirtusLab/scala-cli/releases/download/v${UPSTREAM_PV}/scala-cli-x86_64-pc-linux.gz
|
||||
-> scala-cli-amd64-${UPSTREAM_PV}.gz
|
||||
)
|
||||
arm64? (
|
||||
https://github.com/VirtusLab/scala-cli/releases/download/v${UPSTREAM_PV}/scala-cli-aarch64-pc-linux.gz
|
||||
-> scala-cli-arm64-${UPSTREAM_PV}.gz
|
||||
)
|
||||
"
|
||||
|
||||
KEYWORDS="~amd64 ~arm64"
|
||||
LICENSE="Apache-2.0"
|
||||
SLOT="0"
|
||||
|
||||
S="${WORKDIR}"
|
||||
|
||||
# A JRE is not strictly required if native images of scala-cli are used
|
||||
# (amd64, arm64). However we may want a system JRE anyway, and having JRE
|
||||
# in RDEPEND reduces the chances that scala-cli needs to install one
|
||||
# for the user.
|
||||
RDEPEND="
|
||||
>=virtual/jre-11
|
||||
sys-libs/zlib
|
||||
"
|
||||
BDEPEND="!amd64? ( !arm64? ( >=virtual/jre-11 ) )"
|
||||
|
||||
QA_TEXTRELS="*"
|
||||
QA_FLAGS_IGNORED="/usr/bin/scala-cli"
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
if use amd64; then
|
||||
mv scala-cli-amd64-${UPSTREAM_PV} scala-cli || die
|
||||
elif use arm64; then
|
||||
mv scala-cli-arm64-${UPSTREAM_PV} scala-cli || die
|
||||
else
|
||||
mv scala-cli-non-native-${UPSTREAM_PV} scala-cli || die
|
||||
fi
|
||||
|
||||
chmod +x scala-cli || die
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
for shell in bash zsh; do
|
||||
./scala-cli install-completions \
|
||||
--shell ${shell} \
|
||||
--env \
|
||||
--output "${S}" \
|
||||
> ${shell}-completion || die
|
||||
done
|
||||
}
|
||||
|
||||
src_install() {
|
||||
dobin scala-cli
|
||||
|
||||
newbashcomp bash-completion scala-cli
|
||||
|
||||
insinto /usr/share/zsh/site-functions
|
||||
doins zsh/_scala-cli
|
||||
}
|
Binary file not shown.
@ -1,411 +0,0 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="8"
|
||||
|
||||
# Patch version
|
||||
FIREFOX_PATCHSET="firefox-102esr-patches-09j.tar.xz"
|
||||
SPIDERMONKEY_PATCHSET="spidermonkey-102-patches-04j.tar.xz"
|
||||
|
||||
LLVM_MAX_SLOT=15
|
||||
|
||||
PYTHON_COMPAT=( python3_{9..11} )
|
||||
PYTHON_REQ_USE="ssl,xml(+)"
|
||||
|
||||
WANT_AUTOCONF="2.1"
|
||||
|
||||
inherit autotools check-reqs flag-o-matic llvm multiprocessing prefix python-any-r1 toolchain-funcs
|
||||
|
||||
MY_PN="mozjs"
|
||||
MY_PV="${PV/_pre*}" # Handle Gentoo pre-releases
|
||||
|
||||
MY_MAJOR=$(ver_cut 1)
|
||||
|
||||
MOZ_ESR=yes
|
||||
|
||||
MOZ_PV=${PV}
|
||||
MOZ_PV_SUFFIX=
|
||||
if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then
|
||||
MOZ_PV_SUFFIX=${BASH_REMATCH[1]}
|
||||
|
||||
# Convert the ebuild version to the upstream Mozilla version
|
||||
MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI
|
||||
MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI
|
||||
MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI
|
||||
fi
|
||||
|
||||
if [[ -n ${MOZ_ESR} ]] ; then
|
||||
# ESR releases have slightly different version numbers
|
||||
MOZ_PV="${MOZ_PV}esr"
|
||||
fi
|
||||
|
||||
MOZ_PN="firefox"
|
||||
MOZ_P="${MOZ_PN}-${MOZ_PV}"
|
||||
MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}"
|
||||
MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}"
|
||||
|
||||
MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}"
|
||||
|
||||
if [[ ${PV} == *_rc* ]] ; then
|
||||
MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}"
|
||||
fi
|
||||
|
||||
PATCH_URIS=(
|
||||
https://dev.gentoo.org/~{juippis,whissi}/mozilla/patchsets/${FIREFOX_PATCHSET}
|
||||
https://dev.gentoo.org/~{juippis,whissi}/mozilla/patchsets/${SPIDERMONKEY_PATCHSET}
|
||||
)
|
||||
|
||||
SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz
|
||||
${PATCH_URIS[@]}"
|
||||
|
||||
DESCRIPTION="SpiderMonkey is Mozilla's JavaScript engine written in C and C++"
|
||||
HOMEPAGE="https://spidermonkey.dev https://firefox-source-docs.mozilla.org/js/index.html "
|
||||
|
||||
KEYWORDS="amd64 arm arm64 ~mips ~ppc ppc64 ~riscv ~sparc x86"
|
||||
|
||||
SLOT="$(ver_cut 1)"
|
||||
LICENSE="MPL-2.0"
|
||||
IUSE="clang cpu_flags_arm_neon debug +jit lto test"
|
||||
|
||||
#RESTRICT="test"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
BDEPEND="${PYTHON_DEPS}
|
||||
|| (
|
||||
(
|
||||
sys-devel/llvm:15
|
||||
clang? (
|
||||
sys-devel/clang:15
|
||||
virtual/rust:0/llvm-15
|
||||
lto? ( sys-devel/lld:15 )
|
||||
)
|
||||
)
|
||||
(
|
||||
sys-devel/llvm:14
|
||||
clang? (
|
||||
sys-devel/clang:14
|
||||
virtual/rust:0/llvm-14
|
||||
lto? ( sys-devel/lld:14 )
|
||||
)
|
||||
)
|
||||
)
|
||||
!clang? ( virtual/rust )
|
||||
virtual/pkgconfig
|
||||
test? (
|
||||
$(python_gen_any_dep 'dev-python/six[${PYTHON_USEDEP}]')
|
||||
)"
|
||||
DEPEND=">=dev-libs/icu-71.1:=
|
||||
dev-libs/nspr
|
||||
sys-libs/readline:0=
|
||||
sys-libs/zlib"
|
||||
RDEPEND="${DEPEND}"
|
||||
|
||||
S="${WORKDIR}/firefox-${MY_PV}/js/src"
|
||||
|
||||
llvm_check_deps() {
|
||||
if ! has_version -b "sys-devel/llvm:${LLVM_SLOT}" ; then
|
||||
einfo "sys-devel/llvm:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
|
||||
return 1
|
||||
fi
|
||||
|
||||
if use clang ; then
|
||||
if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then
|
||||
einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
|
||||
return 1
|
||||
fi
|
||||
|
||||
if ! has_version -b "virtual/rust:0/llvm-${LLVM_SLOT}" ; then
|
||||
einfo "virtual/rust:0/llvm-${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
|
||||
return 1
|
||||
fi
|
||||
|
||||
if use lto ; then
|
||||
if ! has_version -b "sys-devel/lld:${LLVM_SLOT}" ; then
|
||||
einfo "sys-devel/lld:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2
|
||||
}
|
||||
|
||||
python_check_deps() {
|
||||
if use test ; then
|
||||
python_has_version "dev-python/six[${PYTHON_USEDEP}]"
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_pretend() {
|
||||
if use test ; then
|
||||
CHECKREQS_DISK_BUILD="7000M"
|
||||
else
|
||||
CHECKREQS_DISK_BUILD="6000M"
|
||||
fi
|
||||
|
||||
check-reqs_pkg_pretend
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
if [[ ${MERGE_TYPE} != binary ]] ; then
|
||||
if use test ; then
|
||||
CHECKREQS_DISK_BUILD="7000M"
|
||||
else
|
||||
CHECKREQS_DISK_BUILD="6000M"
|
||||
fi
|
||||
|
||||
check-reqs_pkg_setup
|
||||
|
||||
llvm_pkg_setup
|
||||
|
||||
if use clang && use lto ; then
|
||||
local version_lld=$(ld.lld --version 2>/dev/null | awk '{ print $2 }')
|
||||
[[ -n ${version_lld} ]] && version_lld=$(ver_cut 1 "${version_lld}")
|
||||
[[ -z ${version_lld} ]] && die "Failed to read ld.lld version!"
|
||||
|
||||
local version_llvm_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'LLVM version:' | awk '{ print $3 }')
|
||||
[[ -n ${version_llvm_rust} ]] && version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}")
|
||||
[[ -z ${version_llvm_rust} ]] && die "Failed to read used LLVM version from rustc!"
|
||||
|
||||
if ver_test "${version_lld}" -ne "${version_llvm_rust}" ; then
|
||||
eerror "Rust is using LLVM version ${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}."
|
||||
eerror "You will be unable to link ${CATEGORY}/${PN}. To proceed you have the following options:"
|
||||
eerror " - Manually switch rust version using 'eselect rust' to match used LLVM version"
|
||||
eerror " - Switch to dev-lang/rust[system-llvm] which will guarantee matching version"
|
||||
eerror " - Build ${CATEGORY}/${PN} without USE=lto"
|
||||
eerror " - Rebuild lld with llvm that was used to build rust (may need to rebuild the whole "
|
||||
eerror " llvm/clang/lld/rust chain depending on your @world updates)"
|
||||
die "LLVM version used by Rust (${version_llvm_rust}) does not match with ld.lld version (${version_lld})!"
|
||||
fi
|
||||
fi
|
||||
|
||||
python-any-r1_pkg_setup
|
||||
|
||||
# Build system is using /proc/self/oom_score_adj, bug #604394
|
||||
addpredict /proc/self/oom_score_adj
|
||||
|
||||
if ! mountpoint -q /dev/shm ; then
|
||||
# If /dev/shm is not available, configure is known to fail with
|
||||
# a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py
|
||||
ewarn "/dev/shm is not mounted -- expect build failures!"
|
||||
fi
|
||||
|
||||
# Ensure we use C locale when building, bug #746215
|
||||
export LC_ALL=C
|
||||
fi
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
pushd ../.. &>/dev/null || die
|
||||
|
||||
use lto && rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch
|
||||
|
||||
eapply "${WORKDIR}"/firefox-patches
|
||||
eapply "${WORKDIR}"/spidermonkey-patches
|
||||
|
||||
default
|
||||
|
||||
# Make cargo respect MAKEOPTS
|
||||
export CARGO_BUILD_JOBS="$(makeopts_jobs)"
|
||||
|
||||
# sed-in toolchain prefix
|
||||
sed -i \
|
||||
-e "s/objdump/${CHOST}-objdump/" \
|
||||
python/mozbuild/mozbuild/configure/check_debug_ranges.py \
|
||||
|| die "sed failed to set toolchain prefix"
|
||||
|
||||
# use prefix shell in wrapper linker scripts, bug #789660
|
||||
hprefixify "${S}"/../../build/cargo-{,host-}linker
|
||||
|
||||
einfo "Removing pre-built binaries ..."
|
||||
find third_party -type f \( -name '*.so' -o -name '*.o' \) -print -delete || die
|
||||
|
||||
MOZJS_BUILDDIR="${WORKDIR}/build"
|
||||
mkdir "${MOZJS_BUILDDIR}" || die
|
||||
|
||||
popd &>/dev/null || die
|
||||
eautoconf
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
# Show flags set at the beginning
|
||||
einfo "Current CFLAGS: ${CFLAGS}"
|
||||
einfo "Current CXXFLAGS: ${CXXFLAGS}"
|
||||
einfo "Current LDFLAGS: ${LDFLAGS}"
|
||||
einfo "Current RUSTFLAGS: ${RUSTFLAGS}"
|
||||
|
||||
local have_switched_compiler=
|
||||
if use clang; then
|
||||
# Force clang
|
||||
einfo "Enforcing the use of clang due to USE=clang ..."
|
||||
if tc-is-gcc; then
|
||||
have_switched_compiler=yes
|
||||
fi
|
||||
AR=llvm-ar
|
||||
CC=${CHOST}-clang
|
||||
CXX=${CHOST}-clang++
|
||||
NM=llvm-nm
|
||||
RANLIB=llvm-ranlib
|
||||
elif ! use clang && ! tc-is-gcc ; then
|
||||
# Force gcc
|
||||
have_switched_compiler=yes
|
||||
einfo "Enforcing the use of gcc due to USE=-clang ..."
|
||||
AR=gcc-ar
|
||||
CC=${CHOST}-gcc
|
||||
CXX=${CHOST}-g++
|
||||
NM=gcc-nm
|
||||
RANLIB=gcc-ranlib
|
||||
fi
|
||||
|
||||
if [[ -n "${have_switched_compiler}" ]] ; then
|
||||
# Because we switched active compiler we have to ensure
|
||||
# that no unsupported flags are set
|
||||
strip-unsupported-flags
|
||||
fi
|
||||
|
||||
# Ensure we use correct toolchain
|
||||
export HOST_CC="$(tc-getBUILD_CC)"
|
||||
export HOST_CXX="$(tc-getBUILD_CXX)"
|
||||
export AS="$(tc-getCC) -c"
|
||||
tc-export CC CXX LD AR AS NM OBJDUMP RANLIB PKG_CONFIG
|
||||
|
||||
cd "${MOZJS_BUILDDIR}" || die
|
||||
|
||||
# ../python/mach/mach/mixin/process.py fails to detect SHELL
|
||||
export SHELL="${EPREFIX}/bin/bash"
|
||||
|
||||
local -a myeconfargs=(
|
||||
--host="${CBUILD:-${CHOST}}"
|
||||
--target="${CHOST}"
|
||||
|
||||
--disable-ctype
|
||||
--disable-jemalloc
|
||||
--disable-smoosh
|
||||
--disable-strip
|
||||
|
||||
--enable-readline
|
||||
--enable-release
|
||||
--enable-shared-js
|
||||
|
||||
--with-intl-api
|
||||
--with-system-icu
|
||||
--with-system-nspr
|
||||
--with-system-zlib
|
||||
--with-toolchain-prefix="${CHOST}-"
|
||||
|
||||
$(use_enable debug)
|
||||
$(use_enable jit)
|
||||
$(use_enable test tests)
|
||||
)
|
||||
|
||||
if use debug; then
|
||||
myeconfargs+=( --disable-optimize )
|
||||
else
|
||||
myeconfargs+=( --enable-optimize )
|
||||
fi
|
||||
|
||||
if ! use x86 && [[ ${CHOST} != armv*h* ]] ; then
|
||||
myeconfargs+=( --enable-rust-simd )
|
||||
fi
|
||||
|
||||
# Modifications to better support ARM, bug 717344
|
||||
if use cpu_flags_arm_neon ; then
|
||||
myeconfargs+=( --with-fpu=neon )
|
||||
|
||||
if ! tc-is-clang ; then
|
||||
# thumb options aren't supported when using clang, bug 666966
|
||||
myeconfargs+=( --with-thumb=yes )
|
||||
myeconfargs+=( --with-thumb-interwork=no )
|
||||
fi
|
||||
fi
|
||||
|
||||
# Tell build system that we want to use LTO
|
||||
if use lto ; then
|
||||
if use clang ; then
|
||||
myeconfargs+=( --enable-linker=lld )
|
||||
myeconfargs+=( --enable-lto=cross )
|
||||
else
|
||||
myeconfargs+=( --enable-linker=bfd )
|
||||
myeconfargs+=( --enable-lto=full )
|
||||
fi
|
||||
fi
|
||||
|
||||
# LTO flag was handled via configure
|
||||
filter-flags '-flto*'
|
||||
|
||||
# Use system's Python environment
|
||||
export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none"
|
||||
export PIP_NETWORK_INSTALL_RESTRICTED_VIRTUALENVS=mach
|
||||
|
||||
# Show flags we will use
|
||||
einfo "Build CFLAGS: ${CFLAGS}"
|
||||
einfo "Build CXXFLAGS: ${CXXFLAGS}"
|
||||
einfo "Build LDFLAGS: ${LDFLAGS}"
|
||||
einfo "Build RUSTFLAGS: ${RUSTFLAGS}"
|
||||
|
||||
# Forcing system-icu allows us to skip patching bundled ICU for PPC
|
||||
# and other minor arches
|
||||
ECONF_SOURCE="${S}" \
|
||||
econf \
|
||||
${myeconfargs[@]} \
|
||||
XARGS="${EPREFIX}/usr/bin/xargs"
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
cd "${MOZJS_BUILDDIR}" || die
|
||||
default
|
||||
}
|
||||
|
||||
src_test() {
|
||||
if "${MOZJS_BUILDDIR}/js/src/js" -e 'print("Hello world!")'; then
|
||||
einfo "Smoke-test successful, continuing with full test suite"
|
||||
else
|
||||
die "Smoke-test failed: did interpreter initialization fail?"
|
||||
fi
|
||||
|
||||
cp "${FILESDIR}"/spidermonkey-${SLOT}-known-test-failures.txt "${T}"/known_failures.list || die
|
||||
|
||||
if [[ $(tc-endian) == "big" ]] ; then
|
||||
echo "non262/extensions/clone-errors.js" >> "${T}"/known_failures.list
|
||||
echo "test262/built-ins/Date/UTC/fp-evaluation-order.js" >> "${T}"/known_failures.list
|
||||
echo "test262/built-ins/TypedArray/prototype/set/typedarray-arg-set-values-same-buffer-other-type.js" >> "${T}"/known_failures.list
|
||||
fi
|
||||
|
||||
${EPYTHON} \
|
||||
"${S}"/tests/jstests.py -d -s -t 1800 --wpt=disabled --no-progress \
|
||||
--exclude-file="${T}"/known_failures.list \
|
||||
"${MOZJS_BUILDDIR}"/js/src/js \
|
||||
|| die
|
||||
|
||||
if use jit ; then
|
||||
${EPYTHON} \
|
||||
"${S}"/tests/jstests.py -d -s -t 1800 --wpt=disabled --no-progress \
|
||||
--exclude-file="${T}"/known_failures.list \
|
||||
"${MOZJS_BUILDDIR}"/js/src/js basic \
|
||||
|| die
|
||||
fi
|
||||
}
|
||||
|
||||
src_install() {
|
||||
cd "${MOZJS_BUILDDIR}" || die
|
||||
default
|
||||
|
||||
# fix soname links
|
||||
pushd "${ED}"/usr/$(get_libdir) &>/dev/null || die
|
||||
mv lib${MY_PN}-${MY_MAJOR}.so lib${MY_PN}-${MY_MAJOR}.so.0.0.0 || die
|
||||
ln -s lib${MY_PN}-${MY_MAJOR}.so.0.0.0 lib${MY_PN}-${MY_MAJOR}.so.0 || die
|
||||
ln -s lib${MY_PN}-${MY_MAJOR}.so.0 lib${MY_PN}-${MY_MAJOR}.so || die
|
||||
popd &>/dev/null || die
|
||||
|
||||
# remove unneeded files
|
||||
rm \
|
||||
"${ED}"/usr/bin/js${MY_MAJOR}-config \
|
||||
"${ED}"/usr/$(get_libdir)/libjs_static.ajs \
|
||||
|| die
|
||||
|
||||
# fix permissions
|
||||
chmod -x \
|
||||
"${ED}"/usr/$(get_libdir)/pkgconfig/*.pc \
|
||||
"${ED}"/usr/include/mozjs-${MY_MAJOR}/js-config.h \
|
||||
|| die
|
||||
}
|
@ -1,418 +0,0 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="8"
|
||||
|
||||
# Patch version
|
||||
FIREFOX_PATCHSET="firefox-102esr-patches-09j.tar.xz"
|
||||
SPIDERMONKEY_PATCHSET="spidermonkey-102-patches-05j.tar.xz"
|
||||
|
||||
LLVM_MAX_SLOT=15
|
||||
|
||||
PYTHON_COMPAT=( python3_{9..11} )
|
||||
PYTHON_REQ_USE="ssl,xml(+)"
|
||||
|
||||
WANT_AUTOCONF="2.1"
|
||||
|
||||
inherit autotools check-reqs flag-o-matic llvm multiprocessing prefix python-any-r1 toolchain-funcs
|
||||
|
||||
MY_PN="mozjs"
|
||||
MY_PV="${PV/_pre*}" # Handle Gentoo pre-releases
|
||||
|
||||
MY_MAJOR=$(ver_cut 1)
|
||||
|
||||
MOZ_ESR=yes
|
||||
|
||||
MOZ_PV=${PV}
|
||||
MOZ_PV_SUFFIX=
|
||||
if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then
|
||||
MOZ_PV_SUFFIX=${BASH_REMATCH[1]}
|
||||
|
||||
# Convert the ebuild version to the upstream Mozilla version
|
||||
MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI
|
||||
MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI
|
||||
MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI
|
||||
fi
|
||||
|
||||
if [[ -n ${MOZ_ESR} ]] ; then
|
||||
# ESR releases have slightly different version numbers
|
||||
MOZ_PV="${MOZ_PV}esr"
|
||||
fi
|
||||
|
||||
MOZ_PN="firefox"
|
||||
MOZ_P="${MOZ_PN}-${MOZ_PV}"
|
||||
MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}"
|
||||
MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}"
|
||||
|
||||
MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}"
|
||||
|
||||
if [[ ${PV} == *_rc* ]] ; then
|
||||
MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}"
|
||||
fi
|
||||
|
||||
PATCH_URIS=(
|
||||
https://dev.gentoo.org/~{juippis,whissi}/mozilla/patchsets/${FIREFOX_PATCHSET}
|
||||
https://dev.gentoo.org/~{juippis,whissi}/mozilla/patchsets/${SPIDERMONKEY_PATCHSET}
|
||||
)
|
||||
|
||||
SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz
|
||||
${PATCH_URIS[@]}"
|
||||
|
||||
DESCRIPTION="SpiderMonkey is Mozilla's JavaScript engine written in C and C++"
|
||||
HOMEPAGE="https://spidermonkey.dev https://firefox-source-docs.mozilla.org/js/index.html "
|
||||
|
||||
KEYWORDS="amd64 ~arm arm64 ~mips ~ppc ppc64 ~riscv ~sparc x86"
|
||||
|
||||
SLOT="$(ver_cut 1)"
|
||||
LICENSE="MPL-2.0"
|
||||
IUSE="clang cpu_flags_arm_neon debug +jit lto test"
|
||||
|
||||
#RESTRICT="test"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
BDEPEND="${PYTHON_DEPS}
|
||||
|| (
|
||||
(
|
||||
sys-devel/llvm:15
|
||||
clang? (
|
||||
sys-devel/clang:15
|
||||
virtual/rust:0/llvm-15
|
||||
lto? ( sys-devel/lld:15 )
|
||||
)
|
||||
)
|
||||
(
|
||||
sys-devel/llvm:14
|
||||
clang? (
|
||||
sys-devel/clang:14
|
||||
virtual/rust:0/llvm-14
|
||||
lto? ( sys-devel/lld:14 )
|
||||
)
|
||||
)
|
||||
)
|
||||
!clang? ( virtual/rust )
|
||||
virtual/pkgconfig
|
||||
test? (
|
||||
$(python_gen_any_dep 'dev-python/six[${PYTHON_USEDEP}]')
|
||||
)"
|
||||
DEPEND=">=dev-libs/icu-71.1:=
|
||||
dev-libs/nspr
|
||||
sys-libs/readline:0=
|
||||
sys-libs/zlib"
|
||||
RDEPEND="${DEPEND}"
|
||||
|
||||
S="${WORKDIR}/firefox-${MY_PV}/js/src"
|
||||
|
||||
llvm_check_deps() {
|
||||
if ! has_version -b "sys-devel/llvm:${LLVM_SLOT}" ; then
|
||||
einfo "sys-devel/llvm:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
|
||||
return 1
|
||||
fi
|
||||
|
||||
if use clang ; then
|
||||
if ! has_version -b "sys-devel/clang:${LLVM_SLOT}" ; then
|
||||
einfo "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
|
||||
return 1
|
||||
fi
|
||||
|
||||
if ! has_version -b "virtual/rust:0/llvm-${LLVM_SLOT}" ; then
|
||||
einfo "virtual/rust:0/llvm-${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
|
||||
return 1
|
||||
fi
|
||||
|
||||
if use lto ; then
|
||||
if ! has_version -b "sys-devel/lld:${LLVM_SLOT}" ; then
|
||||
einfo "sys-devel/lld:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2
|
||||
}
|
||||
|
||||
python_check_deps() {
|
||||
if use test ; then
|
||||
python_has_version "dev-python/six[${PYTHON_USEDEP}]"
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_pretend() {
|
||||
if use test ; then
|
||||
CHECKREQS_DISK_BUILD="7000M"
|
||||
else
|
||||
CHECKREQS_DISK_BUILD="6000M"
|
||||
fi
|
||||
|
||||
check-reqs_pkg_pretend
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
if [[ ${MERGE_TYPE} != binary ]] ; then
|
||||
if use test ; then
|
||||
CHECKREQS_DISK_BUILD="7000M"
|
||||
else
|
||||
CHECKREQS_DISK_BUILD="6000M"
|
||||
fi
|
||||
|
||||
check-reqs_pkg_setup
|
||||
|
||||
llvm_pkg_setup
|
||||
|
||||
if use clang && use lto ; then
|
||||
local version_lld=$(ld.lld --version 2>/dev/null | awk '{ print $2 }')
|
||||
[[ -n ${version_lld} ]] && version_lld=$(ver_cut 1 "${version_lld}")
|
||||
[[ -z ${version_lld} ]] && die "Failed to read ld.lld version!"
|
||||
|
||||
local version_llvm_rust=$(rustc -Vv 2>/dev/null | grep -F -- 'LLVM version:' | awk '{ print $3 }')
|
||||
[[ -n ${version_llvm_rust} ]] && version_llvm_rust=$(ver_cut 1 "${version_llvm_rust}")
|
||||
[[ -z ${version_llvm_rust} ]] && die "Failed to read used LLVM version from rustc!"
|
||||
|
||||
if ver_test "${version_lld}" -ne "${version_llvm_rust}" ; then
|
||||
eerror "Rust is using LLVM version ${version_llvm_rust} but ld.lld version belongs to LLVM version ${version_lld}."
|
||||
eerror "You will be unable to link ${CATEGORY}/${PN}. To proceed you have the following options:"
|
||||
eerror " - Manually switch rust version using 'eselect rust' to match used LLVM version"
|
||||
eerror " - Switch to dev-lang/rust[system-llvm] which will guarantee matching version"
|
||||
eerror " - Build ${CATEGORY}/${PN} without USE=lto"
|
||||
eerror " - Rebuild lld with llvm that was used to build rust (may need to rebuild the whole "
|
||||
eerror " llvm/clang/lld/rust chain depending on your @world updates)"
|
||||
die "LLVM version used by Rust (${version_llvm_rust}) does not match with ld.lld version (${version_lld})!"
|
||||
fi
|
||||
fi
|
||||
|
||||
python-any-r1_pkg_setup
|
||||
|
||||
# Build system is using /proc/self/oom_score_adj, bug #604394
|
||||
addpredict /proc/self/oom_score_adj
|
||||
|
||||
if ! mountpoint -q /dev/shm ; then
|
||||
# If /dev/shm is not available, configure is known to fail with
|
||||
# a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py
|
||||
ewarn "/dev/shm is not mounted -- expect build failures!"
|
||||
fi
|
||||
|
||||
# Ensure we use C locale when building, bug #746215
|
||||
export LC_ALL=C
|
||||
fi
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
pushd ../.. &>/dev/null || die
|
||||
|
||||
use lto && rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch
|
||||
|
||||
eapply "${WORKDIR}"/firefox-patches
|
||||
eapply "${WORKDIR}"/spidermonkey-patches
|
||||
|
||||
default
|
||||
|
||||
# Make cargo respect MAKEOPTS
|
||||
export CARGO_BUILD_JOBS="$(makeopts_jobs)"
|
||||
|
||||
# sed-in toolchain prefix
|
||||
sed -i \
|
||||
-e "s/objdump/${CHOST}-objdump/" \
|
||||
python/mozbuild/mozbuild/configure/check_debug_ranges.py \
|
||||
|| die "sed failed to set toolchain prefix"
|
||||
|
||||
# use prefix shell in wrapper linker scripts, bug #789660
|
||||
hprefixify "${S}"/../../build/cargo-{,host-}linker
|
||||
|
||||
einfo "Removing pre-built binaries ..."
|
||||
find third_party -type f \( -name '*.so' -o -name '*.o' \) -print -delete || die
|
||||
|
||||
MOZJS_BUILDDIR="${WORKDIR}/build"
|
||||
mkdir "${MOZJS_BUILDDIR}" || die
|
||||
|
||||
popd &>/dev/null || die
|
||||
eautoconf
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
# Show flags set at the beginning
|
||||
einfo "Current CFLAGS: ${CFLAGS}"
|
||||
einfo "Current CXXFLAGS: ${CXXFLAGS}"
|
||||
einfo "Current LDFLAGS: ${LDFLAGS}"
|
||||
einfo "Current RUSTFLAGS: ${RUSTFLAGS}"
|
||||
|
||||
local have_switched_compiler=
|
||||
if use clang; then
|
||||
# Force clang
|
||||
einfo "Enforcing the use of clang due to USE=clang ..."
|
||||
if tc-is-gcc; then
|
||||
have_switched_compiler=yes
|
||||
fi
|
||||
AR=llvm-ar
|
||||
CC=${CHOST}-clang
|
||||
CXX=${CHOST}-clang++
|
||||
NM=llvm-nm
|
||||
RANLIB=llvm-ranlib
|
||||
elif ! use clang && ! tc-is-gcc ; then
|
||||
# Force gcc
|
||||
have_switched_compiler=yes
|
||||
einfo "Enforcing the use of gcc due to USE=-clang ..."
|
||||
AR=gcc-ar
|
||||
CC=${CHOST}-gcc
|
||||
CXX=${CHOST}-g++
|
||||
NM=gcc-nm
|
||||
RANLIB=gcc-ranlib
|
||||
fi
|
||||
|
||||
if [[ -n "${have_switched_compiler}" ]] ; then
|
||||
# Because we switched active compiler we have to ensure
|
||||
# that no unsupported flags are set
|
||||
strip-unsupported-flags
|
||||
fi
|
||||
|
||||
# Ensure we use correct toolchain
|
||||
export HOST_CC="$(tc-getBUILD_CC)"
|
||||
export HOST_CXX="$(tc-getBUILD_CXX)"
|
||||
export AS="$(tc-getCC) -c"
|
||||
tc-export CC CXX LD AR AS NM OBJDUMP RANLIB PKG_CONFIG
|
||||
|
||||
cd "${MOZJS_BUILDDIR}" || die
|
||||
|
||||
# ../python/mach/mach/mixin/process.py fails to detect SHELL
|
||||
export SHELL="${EPREFIX}/bin/bash"
|
||||
|
||||
local -a myeconfargs=(
|
||||
--host="${CBUILD:-${CHOST}}"
|
||||
--target="${CHOST}"
|
||||
|
||||
--disable-ctype
|
||||
--disable-jemalloc
|
||||
--disable-smoosh
|
||||
--disable-strip
|
||||
|
||||
--enable-readline
|
||||
--enable-release
|
||||
--enable-shared-js
|
||||
|
||||
--with-intl-api
|
||||
--with-system-icu
|
||||
--with-system-nspr
|
||||
--with-system-zlib
|
||||
--with-toolchain-prefix="${CHOST}-"
|
||||
|
||||
$(use_enable debug)
|
||||
$(use_enable jit)
|
||||
$(use_enable test tests)
|
||||
)
|
||||
|
||||
if use debug; then
|
||||
myeconfargs+=( --disable-optimize )
|
||||
else
|
||||
myeconfargs+=( --enable-optimize )
|
||||
fi
|
||||
|
||||
if ! use x86 && [[ ${CHOST} != armv*h* ]] ; then
|
||||
myeconfargs+=( --enable-rust-simd )
|
||||
fi
|
||||
|
||||
# Modifications to better support ARM, bug 717344
|
||||
if use cpu_flags_arm_neon ; then
|
||||
myeconfargs+=( --with-fpu=neon )
|
||||
|
||||
if ! tc-is-clang ; then
|
||||
# thumb options aren't supported when using clang, bug 666966
|
||||
myeconfargs+=( --with-thumb=yes )
|
||||
myeconfargs+=( --with-thumb-interwork=no )
|
||||
fi
|
||||
fi
|
||||
|
||||
# Tell build system that we want to use LTO
|
||||
if use lto ; then
|
||||
if use clang ; then
|
||||
myeconfargs+=( --enable-linker=lld )
|
||||
myeconfargs+=( --enable-lto=cross )
|
||||
else
|
||||
myeconfargs+=( --enable-linker=bfd )
|
||||
myeconfargs+=( --enable-lto=full )
|
||||
fi
|
||||
fi
|
||||
|
||||
# LTO flag was handled via configure
|
||||
filter-flags '-flto*'
|
||||
|
||||
# Use system's Python environment
|
||||
export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none"
|
||||
export PIP_NETWORK_INSTALL_RESTRICTED_VIRTUALENVS=mach
|
||||
|
||||
# Show flags we will use
|
||||
einfo "Build CFLAGS: ${CFLAGS}"
|
||||
einfo "Build CXXFLAGS: ${CXXFLAGS}"
|
||||
einfo "Build LDFLAGS: ${LDFLAGS}"
|
||||
einfo "Build RUSTFLAGS: ${RUSTFLAGS}"
|
||||
|
||||
# Forcing system-icu allows us to skip patching bundled ICU for PPC
|
||||
# and other minor arches
|
||||
ECONF_SOURCE="${S}" \
|
||||
econf \
|
||||
${myeconfargs[@]} \
|
||||
XARGS="${EPREFIX}/usr/bin/xargs"
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
cd "${MOZJS_BUILDDIR}" || die
|
||||
default
|
||||
}
|
||||
|
||||
src_test() {
|
||||
if "${MOZJS_BUILDDIR}/js/src/js" -e 'print("Hello world!")'; then
|
||||
einfo "Smoke-test successful, continuing with full test suite"
|
||||
else
|
||||
die "Smoke-test failed: did interpreter initialization fail?"
|
||||
fi
|
||||
|
||||
cp "${FILESDIR}"/spidermonkey-${SLOT}-known-test-failures.txt "${T}"/known_failures.list || die
|
||||
|
||||
if use x86; then
|
||||
echo "test262/language/types/number/S8.5_A2.1.js" >> "${T}"/known_failures.list
|
||||
echo "test262/language/types/number/S8.5_A2.2.js" >> "${T}"/known_failures.list
|
||||
echo "test262/built-ins/Date/UTC/fp-evaluation-order.js" >> "${T}"/known_failures.list
|
||||
echo "non262/Date/timeclip.js" >> "${T}"/known_failures.list
|
||||
fi
|
||||
|
||||
if [[ $(tc-endian) == "big" ]] ; then
|
||||
echo "non262/extensions/clone-errors.js" >> "${T}"/known_failures.list
|
||||
echo "test262/built-ins/Date/UTC/fp-evaluation-order.js" >> "${T}"/known_failures.list
|
||||
echo "test262/built-ins/TypedArray/prototype/set/typedarray-arg-set-values-same-buffer-other-type.js" >> "${T}"/known_failures.list
|
||||
fi
|
||||
|
||||
${EPYTHON} \
|
||||
"${S}"/tests/jstests.py -d -s -t 1800 --wpt=disabled --no-progress \
|
||||
--exclude-file="${T}"/known_failures.list \
|
||||
"${MOZJS_BUILDDIR}"/js/src/js \
|
||||
|| die
|
||||
|
||||
if use jit ; then
|
||||
${EPYTHON} \
|
||||
"${S}"/tests/jstests.py -d -s -t 1800 --wpt=disabled --no-progress \
|
||||
--exclude-file="${T}"/known_failures.list \
|
||||
"${MOZJS_BUILDDIR}"/js/src/js basic \
|
||||
|| die
|
||||
fi
|
||||
}
|
||||
|
||||
src_install() {
|
||||
cd "${MOZJS_BUILDDIR}" || die
|
||||
default
|
||||
|
||||
# fix soname links
|
||||
pushd "${ED}"/usr/$(get_libdir) &>/dev/null || die
|
||||
mv lib${MY_PN}-${MY_MAJOR}.so lib${MY_PN}-${MY_MAJOR}.so.0.0.0 || die
|
||||
ln -s lib${MY_PN}-${MY_MAJOR}.so.0.0.0 lib${MY_PN}-${MY_MAJOR}.so.0 || die
|
||||
ln -s lib${MY_PN}-${MY_MAJOR}.so.0 lib${MY_PN}-${MY_MAJOR}.so || die
|
||||
popd &>/dev/null || die
|
||||
|
||||
# remove unneeded files
|
||||
rm \
|
||||
"${ED}"/usr/bin/js${MY_MAJOR}-config \
|
||||
"${ED}"/usr/$(get_libdir)/libjs_static.ajs \
|
||||
|| die
|
||||
|
||||
# fix permissions
|
||||
chmod -x \
|
||||
"${ED}"/usr/$(get_libdir)/pkgconfig/*.pc \
|
||||
"${ED}"/usr/include/mozjs-${MY_MAJOR}/js-config.h \
|
||||
|| die
|
||||
}
|
Binary file not shown.
@ -1 +1,2 @@
|
||||
DIST dqlite-1.14.0.tar.gz 190757 BLAKE2B 5304ff10134c7775c4475f77bbe60cc6892cc35c3f2a7b4813743cd27fc1176a1d513d66ebf22b47ed7e83fa833be1408f44f781fbd8200bfd3f4465ea1d6011 SHA512 4305b289903766f00c26e278cce3f761c778b67105a6d7e51e66cc1cbf85564fd41f27689b6895c6f182968d851e10a40d052570d55e22007e9eb5c2929dabd9
|
||||
DIST dqlite-1.15.0.tar.gz 208833 BLAKE2B 41d2fced65c787381300aed1d0ee2393dc9e7aa371acd7efbee0744e00fed8a6ee7175eb3041f9cd198c1f0beef8951984e2a34646cbc069ea9d35753ba7568c SHA512 413f5aa7ad9d990638c6ffbdf5706ec69635ead0ad21314603b3c997608c696bd294bd5d15c092d1619509fc4d51c4038deaec82bd82cbbd4070f4a4020f9cc4
|
||||
|
@ -0,0 +1,49 @@
|
||||
# Copyright 2020-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit autotools
|
||||
|
||||
DESCRIPTION="Embeddable, replicated and fault tolerant SQL engine"
|
||||
HOMEPAGE="https://dqlite.io/ https://github.com/canonical/dqlite"
|
||||
SRC_URI="https://github.com/canonical/dqlite/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
||||
|
||||
LICENSE="LGPL-3-with-linking-exception"
|
||||
SLOT="0/1.15.0"
|
||||
KEYWORDS="~amd64 ~arm64 ~x86"
|
||||
IUSE="test"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
RDEPEND="dev-db/sqlite:3
|
||||
dev-libs/libuv:=
|
||||
>=dev-libs/raft-0.17.1:="
|
||||
DEPEND="${RDEPEND}
|
||||
test? ( >=dev-libs/raft-0.13.0[lz4,test] )"
|
||||
BDEPEND="virtual/pkgconfig"
|
||||
|
||||
PATCHES=( "${FILESDIR}"/dqlite-1.12.0-disable-werror.patch )
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
eautoreconf
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local myeconfargs=(
|
||||
--disable-backtrace
|
||||
--disable-debug
|
||||
--disable-sanitize
|
||||
--disable-static
|
||||
|
||||
# Will build a bundled libsqlite3.so.
|
||||
--enable-build-sqlite=no
|
||||
)
|
||||
|
||||
econf "${myeconfargs[@]}"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
default
|
||||
find "${ED}" -name '*.la' -delete || die
|
||||
}
|
@ -1,2 +1,4 @@
|
||||
DIST icu4c-73_1-src.tgz 26512935 BLAKE2B 45de117efc4a49301c04a997963393967a70b8583abf1a9626331e275c5bc329cf2685de5c80b32f764c8ff2530b5594316d7119ce66503e5adba7842ca24424 SHA512 e788e372716eecebc39b56bbc88f3a458e21c3ef20631c2a3d7ef05794a678fe8dad482a03a40fdb9717109a613978c7146682e98ee16fade5668d641d5c48f8
|
||||
DIST icu4c-73_1-src.tgz.asc 833 BLAKE2B 2c0a02a109280c7994f3c9404473119105ccbe051633dd8dc89c14ff65612d7a18deccff2a525752808f26f34d7c192f9346a8c3a0d34af9aa2110744d9f863d SHA512 b7042b0e39e1ebfcef8573d3000088b32a740106c7cfd4c18ebd52e7fd22e64e07b174d766373b1722520369e937fc56d439a0b290a3efeee287b2740388c3d3
|
||||
DIST icu4c-73_2-src.tgz 26519906 BLAKE2B 3f7dec9d527939d6d594c92844a400733e43af018bbc2f600edcb18299211a2f2285332188976d15e1ef672191416abac0b95a9d1a2ea6ababdaddf12708ccef SHA512 76dd782db6205833f289d7eb68b60860dddfa3f614f0ba03fe7ec13117077f82109f0dc1becabcdf4c8a9c628b94478ab0a46134bdb06f4302be55f74027ce62
|
||||
DIST icu4c-73_2-src.tgz.asc 659 BLAKE2B 83e082ba15ba7aeb366b6d97da15d076c200f9051e55bf00ba13265a3d87aade5a5b18c98a0c903d5015821c63e4b340ffbcc7940a654d169ad1948d6594ce63 SHA512 7598b8cc498ada8ca904b13f7aba27abd3f8f3013a0677d7ffab42d5413df9d2f0526107559301abc4049123b2e6d4d4f4cc589cbd943959d97b595dd57ea63c
|
||||
|
@ -0,0 +1,135 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
# Please bump with dev-libs/icu
|
||||
VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}"/usr/share/openpgp-keys/icu.asc
|
||||
inherit autotools flag-o-matic multilib-minimal toolchain-funcs verify-sig
|
||||
|
||||
MY_PV=${PV/_rc/-rc}
|
||||
MY_PV=${MY_PV//./_}
|
||||
|
||||
DESCRIPTION="External layout part of International Components for Unicode"
|
||||
HOMEPAGE="https://icu.unicode.org/"
|
||||
SRC_URI="https://github.com/unicode-org/icu/releases/download/release-${MY_PV/_/-}/icu4c-${MY_PV/-rc/rc}-src.tgz"
|
||||
SRC_URI+=" verify-sig? ( https://github.com/unicode-org/icu/releases/download/release-${MY_PV/_/-}/icu4c-${MY_PV/-rc/rc}-src.tgz.asc )"
|
||||
S="${WORKDIR}"/${PN/-layoutex}/source
|
||||
|
||||
LICENSE="BSD"
|
||||
SLOT="0/${PV%.*}.1"
|
||||
if [[ ${PV} != *_rc* ]] ; then
|
||||
KEYWORDS="~alpha ~amd64 ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86"
|
||||
fi
|
||||
IUSE="debug static-libs test"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
DEPEND="
|
||||
~dev-libs/icu-${PV}[${MULTILIB_USEDEP}]
|
||||
dev-libs/icu-le-hb[${MULTILIB_USEDEP}]
|
||||
"
|
||||
RDEPEND="${DEPEND}"
|
||||
BDEPEND="
|
||||
virtual/pkgconfig
|
||||
verify-sig? ( >=sec-keys/openpgp-keys-icu-20221020 )
|
||||
"
|
||||
|
||||
PATCHES=( "${FILESDIR}/${PN}-65.1-remove-bashisms.patch" )
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
# Disable renaming as it assumes stable ABI and that consumers
|
||||
# won't use unofficial APIs. We need this despite the configure argument.
|
||||
sed -i \
|
||||
-e "s/#define U_DISABLE_RENAMING 0/#define U_DISABLE_RENAMING 1/" \
|
||||
common/unicode/uconfig.h || die
|
||||
|
||||
# Fix linking of icudata
|
||||
sed -i \
|
||||
-e "s:LDFLAGSICUDT=-nodefaultlibs -nostdlib:LDFLAGSICUDT=:" \
|
||||
config/mh-linux || die
|
||||
|
||||
eautoreconf
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
MAKEOPTS+=" VERBOSE=1"
|
||||
|
||||
# ICU tries to append -std=c++11 without this, so as of 71.1,
|
||||
# despite GCC 9+ using c++14 (or gnu++14) and GCC 11+ using gnu++17,
|
||||
# we still need this.
|
||||
append-cxxflags -std=c++14
|
||||
|
||||
if tc-is-cross-compiler; then
|
||||
mkdir "${WORKDIR}"/host || die
|
||||
pushd "${WORKDIR}"/host >/dev/null || die
|
||||
|
||||
CFLAGS="" CXXFLAGS="" ASFLAGS="" LDFLAGS="" \
|
||||
CC="$(tc-getBUILD_CC)" CXX="$(tc-getBUILD_CXX)" AR="$(tc-getBUILD_AR)" \
|
||||
RANLIB="$(tc-getBUILD_RANLIB)" LD="$(tc-getBUILD_LD)" \
|
||||
"${S}"/configure --disable-renaming --disable-debug \
|
||||
--disable-samples --enable-static || die
|
||||
emake
|
||||
|
||||
popd >/dev/null || die
|
||||
fi
|
||||
|
||||
multilib-minimal_src_configure
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
local myeconfargs=(
|
||||
--disable-renaming
|
||||
# We want a minimal build as this is just for layoutex
|
||||
# so we disable as much as possible
|
||||
--disable-samples
|
||||
--disable-extras
|
||||
--disable-icuio
|
||||
|
||||
# This is icu-layoutex, so..
|
||||
--enable-layoutex
|
||||
|
||||
$(use_enable debug)
|
||||
$(use_enable static-libs static)
|
||||
|
||||
# Need tools for tests, otherwise get this in configure:
|
||||
# "## Note: you have disabled ICU's tools. This ICU cannot build its own data or tests.
|
||||
# ## Expect build failures in the 'data', 'test', and other directories."
|
||||
# ... although layoutex has no tests right now anyway, but let's keep this
|
||||
# for the future.
|
||||
$(use_enable test tools)
|
||||
$(use_enable test tests)
|
||||
)
|
||||
|
||||
tc-is-cross-compiler && myeconfargs+=(
|
||||
--with-cross-build="${WORKDIR}"/host
|
||||
)
|
||||
|
||||
# icu tries to use clang by default
|
||||
tc-export CC CXX
|
||||
|
||||
ECONF_SOURCE="${S}" econf "${myeconfargs[@]}"
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
# INTLTEST_OPTS: intltest options
|
||||
# -e: Exhaustive testing
|
||||
# -l: Reporting of memory leaks
|
||||
# -v: Increased verbosity
|
||||
# IOTEST_OPTS: iotest options
|
||||
# -e: Exhaustive testing
|
||||
# -v: Increased verbosity
|
||||
# CINTLTST_OPTS: cintltst options
|
||||
# -e: Exhaustive testing
|
||||
# -v: Increased verbosity
|
||||
pushd layoutex &>/dev/null || die
|
||||
emake VERBOSE="1" check
|
||||
popd &>/dev/null || die
|
||||
}
|
||||
|
||||
multilib_src_install() {
|
||||
pushd layoutex &>/dev/null || die
|
||||
default
|
||||
popd &>/dev/null || die
|
||||
}
|
@ -1,2 +1,4 @@
|
||||
DIST icu4c-73_1-src.tgz 26512935 BLAKE2B 45de117efc4a49301c04a997963393967a70b8583abf1a9626331e275c5bc329cf2685de5c80b32f764c8ff2530b5594316d7119ce66503e5adba7842ca24424 SHA512 e788e372716eecebc39b56bbc88f3a458e21c3ef20631c2a3d7ef05794a678fe8dad482a03a40fdb9717109a613978c7146682e98ee16fade5668d641d5c48f8
|
||||
DIST icu4c-73_1-src.tgz.asc 833 BLAKE2B 2c0a02a109280c7994f3c9404473119105ccbe051633dd8dc89c14ff65612d7a18deccff2a525752808f26f34d7c192f9346a8c3a0d34af9aa2110744d9f863d SHA512 b7042b0e39e1ebfcef8573d3000088b32a740106c7cfd4c18ebd52e7fd22e64e07b174d766373b1722520369e937fc56d439a0b290a3efeee287b2740388c3d3
|
||||
DIST icu4c-73_2-src.tgz 26519906 BLAKE2B 3f7dec9d527939d6d594c92844a400733e43af018bbc2f600edcb18299211a2f2285332188976d15e1ef672191416abac0b95a9d1a2ea6ababdaddf12708ccef SHA512 76dd782db6205833f289d7eb68b60860dddfa3f614f0ba03fe7ec13117077f82109f0dc1becabcdf4c8a9c628b94478ab0a46134bdb06f4302be55f74027ce62
|
||||
DIST icu4c-73_2-src.tgz.asc 659 BLAKE2B 83e082ba15ba7aeb366b6d97da15d076c200f9051e55bf00ba13265a3d87aade5a5b18c98a0c903d5015821c63e4b340ffbcc7940a654d169ad1948d6594ce63 SHA512 7598b8cc498ada8ca904b13f7aba27abd3f8f3013a0677d7ffab42d5413df9d2f0526107559301abc4049123b2e6d4d4f4cc589cbd943959d97b595dd57ea63c
|
||||
|
@ -0,0 +1,176 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
# Please bump with dev-libs/icu-layoutex
|
||||
|
||||
PYTHON_COMPAT=( python3_{10..11} )
|
||||
VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}"/usr/share/openpgp-keys/icu.asc
|
||||
inherit autotools flag-o-matic multilib-minimal python-any-r1 toolchain-funcs verify-sig
|
||||
|
||||
MY_PV=${PV/_rc/-rc}
|
||||
MY_PV=${MY_PV//./_}
|
||||
|
||||
DESCRIPTION="International Components for Unicode"
|
||||
HOMEPAGE="https://icu.unicode.org/"
|
||||
SRC_URI="https://github.com/unicode-org/icu/releases/download/release-${MY_PV/_/-}/icu4c-${MY_PV/-rc/rc}-src.tgz"
|
||||
SRC_URI+=" verify-sig? ( https://github.com/unicode-org/icu/releases/download/release-${MY_PV/_/-}/icu4c-${MY_PV/-rc/rc}-src.tgz.asc )"
|
||||
S="${WORKDIR}"/${PN}/source
|
||||
|
||||
if [[ ${PV} != *_rc* ]] ; then
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
|
||||
fi
|
||||
LICENSE="BSD"
|
||||
SLOT="0/${PV%.*}.1"
|
||||
IUSE="debug doc examples static-libs test"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
BDEPEND="
|
||||
${PYTHON_DEPS}
|
||||
sys-devel/autoconf-archive
|
||||
virtual/pkgconfig
|
||||
doc? ( app-doc/doxygen[dot] )
|
||||
verify-sig? ( >=sec-keys/openpgp-keys-icu-20221020 )
|
||||
"
|
||||
|
||||
MULTILIB_CHOST_TOOLS=(
|
||||
/usr/bin/icu-config
|
||||
)
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}/${PN}-65.1-remove-bashisms.patch"
|
||||
"${FILESDIR}/${PN}-64.2-darwin.patch"
|
||||
"${FILESDIR}/${PN}-68.1-nonunicode.patch"
|
||||
)
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
# Disable renaming as it assumes stable ABI and that consumers
|
||||
# won't use unofficial APIs. We need this despite the configure argument.
|
||||
sed -i \
|
||||
-e "s/#define U_DISABLE_RENAMING 0/#define U_DISABLE_RENAMING 1/" \
|
||||
common/unicode/uconfig.h || die
|
||||
|
||||
# Fix linking of icudata
|
||||
sed -i \
|
||||
-e "s:LDFLAGSICUDT=-nodefaultlibs -nostdlib:LDFLAGSICUDT=:" \
|
||||
config/mh-linux || die
|
||||
|
||||
# Append doxygen configuration to configure
|
||||
sed -i \
|
||||
-e 's:icudefs.mk:icudefs.mk Doxyfile:' \
|
||||
configure.ac || die
|
||||
|
||||
eautoreconf
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
MAKEOPTS+=" VERBOSE=1"
|
||||
|
||||
# ICU tries to append -std=c++11 without this, so as of 71.1,
|
||||
# despite GCC 9+ using c++14 (or gnu++14) and GCC 11+ using gnu++17,
|
||||
# we still need this.
|
||||
append-cxxflags -std=c++14
|
||||
|
||||
if tc-is-cross-compiler; then
|
||||
mkdir "${WORKDIR}"/host || die
|
||||
pushd "${WORKDIR}"/host >/dev/null || die
|
||||
|
||||
CFLAGS="" CXXFLAGS="" ASFLAGS="" LDFLAGS="" \
|
||||
CC="$(tc-getBUILD_CC)" CXX="$(tc-getBUILD_CXX)" AR="$(tc-getBUILD_AR)" \
|
||||
RANLIB="$(tc-getBUILD_RANLIB)" LD="$(tc-getBUILD_LD)" \
|
||||
"${S}"/configure --disable-renaming --disable-debug \
|
||||
--disable-samples --enable-static || die
|
||||
emake
|
||||
|
||||
popd >/dev/null || die
|
||||
fi
|
||||
|
||||
multilib-minimal_src_configure
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
local myeconfargs=(
|
||||
--disable-renaming
|
||||
--disable-samples
|
||||
# TODO: Merge with dev-libs/icu-layoutex
|
||||
# Planned to do this w/ 73.2 but seem to get test failures
|
||||
# only with --enable-layoutex.
|
||||
--disable-layoutex
|
||||
$(use_enable debug)
|
||||
$(use_enable static-libs static)
|
||||
$(use_enable test tests)
|
||||
$(multilib_native_use_enable examples samples)
|
||||
)
|
||||
|
||||
#if use test ; then
|
||||
# myeconfargs+=(
|
||||
# --enable-extras
|
||||
# --enable-tools
|
||||
# )
|
||||
#else
|
||||
# myeconfargs+=(
|
||||
# $(multilib_native_enable extras)
|
||||
# $(multilib_native_enable tools)
|
||||
# )
|
||||
#fi
|
||||
|
||||
tc-is-cross-compiler && myeconfargs+=(
|
||||
--with-cross-build="${WORKDIR}"/host
|
||||
)
|
||||
|
||||
# Work around cross-endian testing failures with LTO, bug #757681
|
||||
if tc-is-cross-compiler && is-flagq '-flto*' ; then
|
||||
myeconfargs+=( --disable-strict )
|
||||
fi
|
||||
|
||||
# ICU tries to use clang by default
|
||||
tc-export CC CXX
|
||||
|
||||
# Make sure we configure with the same shell as we run icu-config
|
||||
# with, or ECHO_N, ECHO_T and ECHO_C will be wrongly defined
|
||||
export CONFIG_SHELL="${EPREFIX}/bin/sh"
|
||||
# Probably have no /bin/sh in prefix-chain
|
||||
[[ -x ${CONFIG_SHELL} ]] || CONFIG_SHELL="${BASH}"
|
||||
|
||||
ECONF_SOURCE="${S}" econf "${myeconfargs[@]}"
|
||||
}
|
||||
|
||||
multilib_src_compile() {
|
||||
default
|
||||
|
||||
if multilib_is_native_abi && use doc; then
|
||||
doxygen -u Doxyfile || die
|
||||
doxygen Doxyfile || die
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
# INTLTEST_OPTS: intltest options
|
||||
# -e: Exhaustive testing
|
||||
# -l: Reporting of memory leaks
|
||||
# -v: Increased verbosity
|
||||
# IOTEST_OPTS: iotest options
|
||||
# -e: Exhaustive testing
|
||||
# -v: Increased verbosity
|
||||
# CINTLTST_OPTS: cintltst options
|
||||
# -e: Exhaustive testing
|
||||
# -v: Increased verbosity
|
||||
emake check
|
||||
}
|
||||
|
||||
multilib_src_install() {
|
||||
default
|
||||
|
||||
if multilib_is_native_abi && use doc; then
|
||||
docinto html
|
||||
dodoc -r doc/html/*
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
local HTML_DOCS=( ../readme.html )
|
||||
einstalldocs
|
||||
}
|
@ -1 +1,2 @@
|
||||
DIST libjcat-0.1.13.tar.gz 69950 BLAKE2B 5ff85feff37c5728c8cace5e2f38c179c65a82954a23fd26794a5483cdf29e07601cdaffe27c28a28f7d2b0d57aa3800589c20e19e0a512768f5f87176a56789 SHA512 a66082e3c1641b427af971843822a7893cd40dbb82a596737fd6445fe8e1b527a111dd8f48b9e25a563f0d13e77e22d4c2364ddf96cac38d3e2df5010b37708a
|
||||
DIST libjcat-0.1.14.tar.gz 70018 BLAKE2B 71329e6fc04ef37e5af215c88b4a5a03fbd65143604da57b0357d4bd07896a22a98b9028d8529234655adb37e5cefe226d09d987e798bce17b47fef1e1142d1f SHA512 837a50ad31a736a36bd9df26b151c198e18873df0e7444502b7a6e26a86df15f1df970112f2dd22658960389fdfb78a2c601274e2b5c46ec82fceef5aad778c1
|
||||
|
@ -0,0 +1,68 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
PYTHON_COMPAT=( python3_{10..12} )
|
||||
PYTHON_REQ_USE="xml(+)"
|
||||
|
||||
inherit meson python-any-r1 vala xdg-utils
|
||||
|
||||
DESCRIPTION="Library and tool for reading and writing Jcat files"
|
||||
HOMEPAGE="https://github.com/hughsie/libjcat"
|
||||
SRC_URI="https://github.com/hughsie/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
|
||||
|
||||
LICENSE="LGPL-2.1+"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86"
|
||||
IUSE="+gpg gtk-doc +introspection +man +pkcs7 test vala"
|
||||
|
||||
RDEPEND="dev-libs/glib:2
|
||||
dev-libs/json-glib:=
|
||||
gpg? (
|
||||
app-crypt/gpgme:=
|
||||
dev-libs/libgpg-error
|
||||
)
|
||||
introspection? ( dev-libs/gobject-introspection:= )
|
||||
pkcs7? ( net-libs/gnutls )
|
||||
vala? ( dev-lang/vala:= )"
|
||||
DEPEND="${RDEPEND}"
|
||||
BDEPEND="virtual/pkgconfig
|
||||
$(python_gen_any_dep '
|
||||
dev-python/setuptools[${PYTHON_USEDEP}]
|
||||
')
|
||||
gtk-doc? ( dev-util/gtk-doc )
|
||||
man? ( sys-apps/help2man )
|
||||
test? ( net-libs/gnutls[tools] )"
|
||||
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${PN}-0.1.11-disable_installed_tests.patch
|
||||
)
|
||||
|
||||
python_check_deps() {
|
||||
python_has_version -b "dev-python/setuptools[${PYTHON_USEDEP}]"
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
use vala && vala_setup
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
xdg_environment_reset
|
||||
default
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local emesonargs=(
|
||||
$(meson_use gtk-doc gtkdoc)
|
||||
$(meson_use gpg)
|
||||
$(meson_use introspection)
|
||||
$(meson_use man)
|
||||
$(meson_use pkcs7)
|
||||
$(meson_use test tests)
|
||||
$(meson_use vala vapi)
|
||||
)
|
||||
meson_src_configure
|
||||
}
|
@ -0,0 +1,91 @@
|
||||
|
||||
Disable Python by force (works only with Python 2.x).
|
||||
|
||||
--- a/Makefile.am
|
||||
+++ b/Makefile.am
|
||||
@@ -30,13 +30,8 @@ AM_CPPFLAGS = $(SODIUM_CFLAGS)
|
||||
AM_CFLAGS = -fvisibility=hidden $(SODIUM_CFLAGS) $(WANAL_CFLAGS)
|
||||
AM_CXXFLAGS = -fvisibility=hidden -fvisibility-inlines-hidden $(SODIUM_CFLAGS) $(WANAL_CXXFLAGS)
|
||||
|
||||
-AM_DISTCHECK_CONFIGURE_FLAGS = --enable-python-bindings
|
||||
TESTS_ENVIRONMENT = . $(abs_top_srcdir)/test/env.sh "${abs_top_srcdir}" "${abs_top_builddir}" "${VERSION}";
|
||||
|
||||
-pyx_verbose = $(pyx_verbose_$(V))
|
||||
-pyx_verbose_ = $(pyx_verbose_$(AM_DEFAULT_VERBOSITY))
|
||||
-pyx_verbose_0 = @echo " PYX " $@;
|
||||
-
|
||||
EXTRA_DIST =
|
||||
EXTRA_DIST += README
|
||||
EXTRA_DIST += LICENSE
|
||||
@@ -57,39 +52,3 @@ libmacaroons_la_LDFLAGS = -version-info 0:1:0
|
||||
|
||||
pkgconfigdir = $(libdir)/pkgconfig
|
||||
pkgconfig_DATA = libmacaroons.pc
|
||||
-
|
||||
-##################################### Tests ####################################
|
||||
-
|
||||
-EXTRA_DIST += test/env.sh
|
||||
-EXTRA_DIST += test/python-hmac-sanity-check
|
||||
-EXTRA_DIST += test/python-hmac-sanity-check.sh
|
||||
-EXTRA_DIST += test/readme.sh
|
||||
-
|
||||
-TESTS =
|
||||
-TESTS += test/python-hmac-sanity-check.sh
|
||||
-#TESTS += test/readme.sh
|
||||
-
|
||||
-#################################### Python ####################################
|
||||
-
|
||||
-pyexec_LTLIBRARIES =
|
||||
-if ENABLE_PYTHON_BINDINGS
|
||||
-pyexec_LTLIBRARIES += bindings/python/macaroons.la
|
||||
-endif
|
||||
-
|
||||
-EXTRA_DIST += bindings/python/macaroons.pyx
|
||||
-
|
||||
-bindings_python_macaroons_la_SOURCES = bindings/python/macaroons.c
|
||||
-bindings_python_macaroons_la_CPPFLAGS =
|
||||
-bindings_python_macaroons_la_CPPFLAGS += $(PYTHON_CPPFLAGS)
|
||||
-bindings_python_macaroons_la_CPPFLAGS += $(AM_CPPFLAGS)
|
||||
-bindings_python_macaroons_la_CPPFLAGS += $(CPPFLAGS)
|
||||
-bindings_python_macaroons_la_CFLAGS =
|
||||
-bindings_python_macaroons_la_CFLAGS += -fvisibility=default
|
||||
-bindings_python_macaroons_la_CFLAGS += -fno-strict-aliasing
|
||||
-bindings_python_macaroons_la_CFLAGS += $(CFLAGS)
|
||||
-bindings_python_macaroons_la_LIBADD =
|
||||
-bindings_python_macaroons_la_LIBADD += libmacaroons.la
|
||||
-bindings_python_macaroons_la_LIBADD += $(PYTHON_LDFLAGS)
|
||||
-bindings_python_macaroons_la_LDFLAGS = -module -avoid-version -export-symbols-regex initmacaroons $(AM_LDFLAGS) $(LDFLAGS)
|
||||
-bindings/python/macaroons.c: bindings/python/macaroons.pyx
|
||||
- $(pyx_verbose)cython bindings/python/macaroons.pyx
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -11,7 +11,6 @@ m4_define([serial_tests], [
|
||||
])
|
||||
AM_INIT_AUTOMAKE(foreign serial_tests subdir-objects dist-bzip2)
|
||||
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
|
||||
-AM_PATH_PYTHON([2.6])
|
||||
LT_PREREQ([2.2])
|
||||
LT_INIT
|
||||
AC_CONFIG_SRCDIR([macaroons.h])
|
||||
@@ -35,13 +34,6 @@ AC_TYPE_SIZE_T
|
||||
# Checks for library functions.
|
||||
|
||||
# Optional components
|
||||
-AC_ARG_ENABLE([python_bindings], [AS_HELP_STRING([--enable-python-bindings],
|
||||
- [build Python bindings @<:@default: no@:>@])],
|
||||
- [python_bindings=${enableval}], [python_bindings=no])
|
||||
-if test x"${python_bindings}" = xyes; then
|
||||
- AC_PYTHON_DEVEL([>= '2.6'])
|
||||
-fi
|
||||
-
|
||||
AC_ARG_ENABLE([json_support], [AS_HELP_STRING([--enable-json-support],
|
||||
[enable support for JSON macaroons @<:@default: no@:>@])],
|
||||
[json_support=${enableval}], [json_support=no])
|
||||
@@ -69,7 +61,6 @@ Please install libjson to continue.
|
||||
----------------------------------------])])
|
||||
fi
|
||||
|
||||
-AM_CONDITIONAL([ENABLE_PYTHON_BINDINGS], [test x"${python_bindings}" = xyes])
|
||||
AM_CONDITIONAL([ENABLE_JSON_SUPPORT], [test x"${json_support}" = xyes])
|
||||
|
||||
AH_BOTTOM([#include <custom-config.h>])
|
@ -1,3 +1,4 @@
|
||||
DIST libvterm-0.1.4.tar.gz 69122 BLAKE2B 4f0acc9ec6755c4a840e5df6c32c44e12c5316b5c5918d0e8eada19d819736c3e5b9090b468e32b3141a7fbb5ba226e365be27d6d1d9ca22f9f5e365fc3971c2 SHA512 90b5d47417e3f469df5c6574a27d12bd6bd1571d17cab7c4ac0ee61b1dbcb6361987f6fdfd11e314ea32f8958ec165c319a34d0f77288947c7cbc11de697d524
|
||||
DIST libvterm-0.3.1.tar.gz 79344 BLAKE2B 2732bc477fb339945c1a9242a8265d182891d507c0dec71371a9e7010434dad0d35152fdeaa32bbf50fdd4bd138bb42e8d95a9771c704d693032e32d37a87452 SHA512 1f4bbee8847a9c8cfab3831a3512b866eb0f90f7d3600c4583d2e1eac18458f21bf5ca4fe4b067b27920a04aa7eac5dd2d4a62f6b7ebd56a417fed60d421853d
|
||||
DIST libvterm-0.3.2.tar.gz 79471 BLAKE2B c7347257c6cf6bd7b5203a43004eb9fd2c00660f113788fc15f4b29f9224e30017bb24cfe2bc35a7890ca0131ffad37dcfa88104404e8fdce8bbe8cfb8296222 SHA512 aaff71a1c43eff1842cfc1bfd47936ea2c51e75a41506bb0e36860f8f497d198539c10f86c7febc86b3dea8c0de54b03580d59b170176a4207dc411ae59cb035
|
||||
DIST libvterm-0.3.tar.gz 83861 BLAKE2B a2e8e9d80698880d87f9d26977a4e3dec7b520c3096d0ca6f7823254eeebe51666380ed2a5c05c923dd8b138f15c87e671fdfb03e5511c01711e112cdda9867a SHA512 2a7b6831476465d6a9f7c792406f4e3c4eca0c3dbce4b7031f2646c87e33692128a3d3ce27e1541403772cc0b5eface7bd41325e1e5300c3915bfc0bac97a896
|
||||
|
@ -0,0 +1,28 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
DESCRIPTION="An abstract library implementation of a VT220/xterm/ECMA-48 terminal emulator"
|
||||
HOMEPAGE="https://www.leonerd.org.uk/code/libvterm/"
|
||||
SRC_URI="https://www.leonerd.org.uk/code/${PN}/${P}.tar.gz"
|
||||
|
||||
LICENSE="MIT"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86 ~x64-macos"
|
||||
|
||||
BDEPEND="
|
||||
dev-lang/perl
|
||||
sys-devel/libtool
|
||||
"
|
||||
|
||||
src_compile() {
|
||||
emake VERBOSE=1 PREFIX="${EPREFIX}"/usr LIBDIR="${EPREFIX}/usr/$(get_libdir)"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
emake VERBOSE=1 DESTDIR="${D}" PREFIX="${EPREFIX}"/usr LIBDIR="${EPREFIX}/usr/$(get_libdir)" install
|
||||
|
||||
find "${ED}" -name '*.la' -delete || die "Failed to prune libtool files"
|
||||
find "${ED}" -name '*.a' -delete || die
|
||||
}
|
@ -1,4 +1 @@
|
||||
DIST libzia-4.39.tar.gz 638203 BLAKE2B 0ff2bf9b404b1e554c3cab3145980b8db97345b2e4fd3f3aa94960c150f0da3efcc361306cd7476e839bc3f57868164181f2e3cb79e0dc3f3a7246841d723251 SHA512 61ae1e2aba9f096f7d6593cf7a72d12822bc30f77287bc36f1ea72c01e9669cbef72492adf017efc73bb507fe08b9939f6ca3e4d695388c642619450fc31c024
|
||||
DIST libzia-4.40.tar.gz 638193 BLAKE2B bbeee5f6ee699e09aa791c8b6acb39fed90bdf9a875499177c330d009407157e1ebc36aa432e94dcd78553f803c84fe0d00ce9d613abb657324a061588b77d06 SHA512 dd17a80dbcdf88f7617d439f6dde2af6d319c318e9ee55bc9b375ef1bef5ee708c1af7e133ed304d365b0d6d0c3d52f48ae01f44cb2a6e1285625d785f5f5126
|
||||
DIST libzia-4.42.tar.gz 642066 BLAKE2B 8bec7c3bafa68420adc08d7a70016138997fbd89e7e9ebae70f2a47da6216ac041907cb11c5391956895e5d0871c7c02ece28323253f1161e61f75a8ae6b05a6 SHA512 3e27ae0ddf46364f61a06fd85c6be6ee2bca829ef0d0e3a66f4b2ed8089a13e38332c4329a639f5f83120cf7bd9dad29b6e41022884513b3de69c7672d3316e5
|
||||
DIST libzia-4.43.tar.gz 642097 BLAKE2B 34ab759fc8d4d83067df80d9d3f763717640df38f604222f3fc6b19876a9f5a5f5b79523857fa96d5badf047046b4786f100657ee0a41d0a7096a21c6006e5a0 SHA512 b6341ea6524b2040d63a7b21b9a4c12d26cb5ae30bc08dc37efd5fd7d71ecf7321511e09cc5745adc6f395f841d5e2bb4df827956204db4147ac11d204eaf8da
|
||||
|
@ -1,54 +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
|
||||
|
||||
DESCRIPTION="Platform abstraction code for tucnak package"
|
||||
HOMEPAGE="http://tucnak.nagano.cz"
|
||||
SRC_URI="http://tucnak.nagano.cz/${P}.tar.gz"
|
||||
|
||||
LICENSE="GPL-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="amd64 x86"
|
||||
IUSE="ftdi"
|
||||
|
||||
RDEPEND="dev-libs/glib:2
|
||||
x11-libs/gtk+:2
|
||||
media-libs/libsdl2
|
||||
media-libs/libpng:0
|
||||
ftdi? ( dev-embedded/libftdi:1 )
|
||||
elibc_musl? ( sys-libs/libunwind )"
|
||||
DEPEND="${RDEPEND}"
|
||||
BDEPEND="virtual/pkgconfig"
|
||||
|
||||
MAKEOPTS+=" -j1"
|
||||
|
||||
src_prepare() {
|
||||
eapply_user
|
||||
sed -i -e "s/docsdir/#docsdir/g" \
|
||||
-e "s/docs_/#docs_/g" Makefile.am || die
|
||||
|
||||
# Fix QA-Warning "QA Notice: pkg-config files with wrong LDFLAGS detected"
|
||||
sed -i -e 's/@LDFLAGS@//' libzia.pc.in || die
|
||||
|
||||
# fix build for MUSL (bug #832235)
|
||||
if use elibc_musl ; then
|
||||
sed -i -e "s/ backtrace(/ unw_backtrace(/" src/zbfd.c || die
|
||||
fi
|
||||
eautoreconf
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
use elibc_musl && append-libs -lunwind
|
||||
econf \
|
||||
$(use_with ftdi) --with-sdl \
|
||||
--with-png --without-bfd \
|
||||
--disable-static
|
||||
}
|
||||
|
||||
src_install() {
|
||||
emake DESTDIR="${D}" install
|
||||
find "${D}" -name '*.la' -type f -delete || die
|
||||
}
|
@ -1,54 +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
|
||||
|
||||
DESCRIPTION="Platform abstraction code for tucnak package"
|
||||
HOMEPAGE="http://tucnak.nagano.cz"
|
||||
SRC_URI="http://tucnak.nagano.cz/${P}.tar.gz"
|
||||
|
||||
LICENSE="GPL-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
IUSE="ftdi"
|
||||
|
||||
RDEPEND="dev-libs/glib:2
|
||||
x11-libs/gtk+:2
|
||||
media-libs/libsdl2
|
||||
media-libs/libpng:0
|
||||
ftdi? ( dev-embedded/libftdi:1 )
|
||||
elibc_musl? ( sys-libs/libunwind )"
|
||||
DEPEND="${RDEPEND}"
|
||||
BDEPEND="virtual/pkgconfig"
|
||||
|
||||
MAKEOPTS+=" -j1"
|
||||
|
||||
src_prepare() {
|
||||
eapply_user
|
||||
sed -i -e "s/docsdir/#docsdir/g" \
|
||||
-e "s/docs_/#docs_/g" Makefile.am || die
|
||||
|
||||
# Fix QA-Warning "QA Notice: pkg-config files with wrong LDFLAGS detected"
|
||||
sed -i -e 's/@LDFLAGS@//' libzia.pc.in || die
|
||||
|
||||
# fix build for MUSL (bug #832235)
|
||||
if use elibc_musl ; then
|
||||
sed -i -e "s/ backtrace(/ unw_backtrace(/" src/zbfd.c || die
|
||||
fi
|
||||
eautoreconf
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
use elibc_musl && append-libs -lunwind
|
||||
econf \
|
||||
$(use_with ftdi) --with-sdl \
|
||||
--with-png --without-bfd \
|
||||
--disable-static
|
||||
}
|
||||
|
||||
src_install() {
|
||||
emake DESTDIR="${D}" install
|
||||
find "${D}" -name '*.la' -type f -delete || die
|
||||
}
|
@ -1,54 +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
|
||||
|
||||
DESCRIPTION="Platform abstraction code for tucnak package"
|
||||
HOMEPAGE="http://tucnak.nagano.cz"
|
||||
SRC_URI="http://tucnak.nagano.cz/${P}.tar.gz"
|
||||
|
||||
LICENSE="GPL-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
IUSE="ftdi"
|
||||
|
||||
RDEPEND="dev-libs/glib:2
|
||||
x11-libs/gtk+:2
|
||||
media-libs/libsdl2
|
||||
media-libs/libpng:0
|
||||
ftdi? ( dev-embedded/libftdi:1 )
|
||||
elibc_musl? ( sys-libs/libunwind )"
|
||||
DEPEND="${RDEPEND}"
|
||||
BDEPEND="virtual/pkgconfig"
|
||||
|
||||
MAKEOPTS+=" -j1"
|
||||
|
||||
src_prepare() {
|
||||
eapply_user
|
||||
sed -i -e "s/docsdir/#docsdir/g" \
|
||||
-e "s/docs_/#docs_/g" Makefile.am || die
|
||||
|
||||
# Fix QA-Warning "QA Notice: pkg-config files with wrong LDFLAGS detected"
|
||||
sed -i -e 's/@LDFLAGS@//' libzia.pc.in || die
|
||||
|
||||
# fix build for MUSL (bug #832235)
|
||||
if use elibc_musl ; then
|
||||
sed -i -e "s/ backtrace(/ unw_backtrace(/" src/zbfd.c || die
|
||||
fi
|
||||
eautoreconf
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
use elibc_musl && append-libs -lunwind
|
||||
econf \
|
||||
$(use_with ftdi) --with-sdl \
|
||||
--with-png --without-bfd \
|
||||
--disable-static
|
||||
}
|
||||
|
||||
src_install() {
|
||||
emake DESTDIR="${D}" install
|
||||
find "${D}" -name '*.la' -type f -delete || die
|
||||
}
|
@ -0,0 +1,85 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit toolchain-funcs gnuconfig
|
||||
|
||||
DESCRIPTION="High-performance and portable C++ number theory library"
|
||||
HOMEPAGE="https://www.shoup.net/ntl/ https://github.com/libntl/ntl"
|
||||
SRC_URI="https://www.shoup.net/ntl/${P}.tar.gz"
|
||||
|
||||
LICENSE="LGPL-2.1+"
|
||||
SLOT="0/44"
|
||||
KEYWORDS="amd64 ~arm64 ~loong ~ppc ~ppc64 ~riscv x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
|
||||
IUSE="doc threads"
|
||||
|
||||
BDEPEND="dev-lang/perl"
|
||||
DEPEND="dev-libs/gmp:0=
|
||||
dev-libs/gf2x
|
||||
threads? ( >=dev-libs/gf2x-1.2 )"
|
||||
RDEPEND="${DEPEND}"
|
||||
|
||||
S="${WORKDIR}/${P}/src"
|
||||
|
||||
DOCS=( "${WORKDIR}/${P}"/README )
|
||||
|
||||
src_unpack() {
|
||||
default
|
||||
gnuconfig_update "${S}/libtool-origin/"
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
# The DoConfig script builds its own libtool, but doesn't
|
||||
# really try to set up the build environment (bug 718892).
|
||||
export CC="$(tc-getCC)"
|
||||
export CXX="$(tc-getCXX)"
|
||||
|
||||
# Currently the build system can build a static library or both
|
||||
# static and shared libraries, but not only shared libraries. The
|
||||
# name NTL_GMP_LIP is *not* a typo.
|
||||
#
|
||||
# We have left NTL_ENABLE_AVX_FFT unconditionally disabled: NTL's
|
||||
# AVX2 detection can fail even when the CPU supports it (bug
|
||||
# 815775), and moreover, can fail due to CXXFLAGS. When that
|
||||
# happens, and if we try to use the AVX FFT, the build fails.
|
||||
# Finally, doc/config.txt says, "this is experimental at moment, and
|
||||
# may lead to worse performance." So we are probably not missing out
|
||||
# on much.
|
||||
#
|
||||
perl DoConfig \
|
||||
PREFIX="${EPREFIX}"/usr \
|
||||
LIBDIR="${EPREFIX}"/usr/$(get_libdir) \
|
||||
CXXFLAGS="${CXXFLAGS}" \
|
||||
CPPFLAGS="${CPPFLAGS}" \
|
||||
LDFLAGS="${LDFLAGS}" \
|
||||
CXX="$(tc-getCXX)" \
|
||||
AR="$(tc-getAR)" \
|
||||
RANLIB="$(tc-getRANLIB)" \
|
||||
SHARED=on \
|
||||
NTL_GMP_LIP=on \
|
||||
NTL_GF2X_LIB=on \
|
||||
NTL_THREADS=$(usex threads on off) \
|
||||
NTL_ENABLE_AVX_FFT=off \
|
||||
NATIVE=off \
|
||||
|| die "DoConfig failed"
|
||||
|
||||
if use doc; then
|
||||
DOCS+=( "${WORKDIR}/${P}"/doc/*.txt )
|
||||
HTML_DOCS=( "${WORKDIR}/${P}"/doc/*.html "${WORKDIR}/${P}"/doc/*.gif )
|
||||
fi
|
||||
|
||||
# 780534 - Required for rlibtool so it can find the generated libtool
|
||||
ln -sf libtool-build/libtool . || die
|
||||
}
|
||||
|
||||
src_install() {
|
||||
default
|
||||
find "${ED}" -name '*.la' -delete || die
|
||||
|
||||
# Use rm -f because the static archive may not be created when
|
||||
# using (for example) slibtool-shared.
|
||||
rm -f "${ED}/usr/$(get_libdir)"/libntl.a || die
|
||||
|
||||
rm -r "${ED}"/usr/share/doc/NTL || die
|
||||
}
|
@ -1,8 +1,6 @@
|
||||
DIST openssl-1.0.2-patches-1.5.tar.xz 12404 BLAKE2B 6c1b8c28f339f539b2ab8643379502a24cf62bffde00041dce54d5dd9e8d2620b181362ee5464b0ab32ba4948e209697bfabadbea2944a409a1009100d298f24 SHA512 5725e2d9d1ee8cc074bcef3bed61c71bdab2ff1c114362110c3fb8da11ad5bc8f2ff28e90a293f5f3a5cf96ecda54dffdb7ab3fb3f8b23ef6472250dc3037659
|
||||
DIST openssl-1.0.2t-bindist-1.0.tar.xz 13872 BLAKE2B b2aade96a6e0ca6209a39e205b1c838de945903fcf959c62cc29ddcd1a0cb360fc5db234df86860a6a4c096f5ecc237611e4c2946b986a5500c24ba93c208ef4 SHA512 a48a7efb9b973b865bcc5009d450b428ed6b4b95e4cefe70c51056e47392c8a7bec58215168d8b07712419dc74646c2bd2fd23bcfbba2031376e292249a6b1b6
|
||||
DIST openssl-1.0.2u.tar.gz 5355412 BLAKE2B b2ff2a10e5851af5aca4093422a9a072c794e87b997263826c1c35910c040f695fac63decac5856cb49399ed03d410f97701d9fd4e1ebfbcacd8f3a74ce8bf57 SHA512 c455bb309e20e2c2d47fdc5619c734d107d5c8c38c1409903ce979acc120b0d5fa0312917c0aa0d630e402d092a703d4249643f36078e8528a3cafc9dac6ab32
|
||||
DIST openssl-1.1.1t.tar.gz 9881866 BLAKE2B 66d76ea0c05a4afc3104e22602cffc2373e857728625d31ab3244881cafa91c099a817a09def7746bce4133585bfc90b769f43527e77a81ed13e60a8c2fb4d8d SHA512 628676c9c3bc1cf46083d64f61943079f97f0eefd0264042e40a85dbbd988f271bfe01cd1135d22cc3f67a298f1d078041f8f2e97b0da0d93fe172da573da18c
|
||||
DIST openssl-1.1.1t.tar.gz.asc 833 BLAKE2B fc5e7069268e987a20241dfc4f080529c6e95e217c198568b09c833e390e68b25a604a5d3ec29c6a64b9dee9d42199fd3647214e536ba2f7b8b4e57aa4cba680 SHA512 1232a94fce991d62f008ae6d3d9b6fe68cb6378fe07450feb17a58eb2417fb385ffcb7e6b74eb683134be9ff6ccf6efa183f37f4dd521614fd5aeaddf000b90b
|
||||
DIST openssl-1.1.1u.tar.gz 9892176 BLAKE2B 5de9cb856e497596ecba008bad6515eefd093849b9c66dd7447031723996f3ba66ac37a323a5f7d01b1d42df4daaceb523372f5897d5c53b935ffab91c566594 SHA512 d00aeb0b4c4676deff06ff95af7ac33dd683b92f972b4a8ae55cf384bb37c7ec30ab83c6c0745daf87cf1743a745fced6a347fd11fed4c548aa0953610ed4919
|
||||
DIST openssl-1.1.1u.tar.gz.asc 833 BLAKE2B 7a978a94264a14be04372fea39868e9177e8a0b0f24344267702022e19ee0f52e91ad141d7c54da870f7ec0df9b2e43b80939f1d274dd0b44d36da2670e3a468 SHA512 40245d65ace95b2002bf64bcba184c92fec3420b08d9f61f3a709c4842e9478595105d8adce33a08eb98d351d2a0989ec342b08cdd9104498ea0543b6e592d28
|
||||
DIST openssl-compat-1.0.2u-versioned-symbols.patch.gz 24633 BLAKE2B 6bfad4ad27dbca0bd85bfd9521ffc844c3e93e6a1cca7c814edd49affc60ece1c706dd3aa7be2ce80857532531eac6f0f03f43c0be22a769d00d9241686eff71 SHA512 3d85aa34f2491e0e36eedc45829709e0fb552f6d558c2726b59dafa98c3e679b88497f3f7399d7565d88e727591e7d9b12f5b1e27116ba19b9a661d7f75b07a9
|
||||
|
@ -1,221 +0,0 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}"/usr/share/openpgp-keys/openssl.org.asc
|
||||
inherit edo flag-o-matic toolchain-funcs multilib-minimal verify-sig
|
||||
|
||||
MY_P=openssl-${PV/_/-}
|
||||
DESCRIPTION="Full-strength general purpose cryptography library (including SSL and TLS)"
|
||||
HOMEPAGE="https://www.openssl.org/"
|
||||
SRC_URI="mirror://openssl/source/${MY_P}.tar.gz
|
||||
verify-sig? ( mirror://openssl/source/${MY_P}.tar.gz.asc )"
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
LICENSE="openssl"
|
||||
SLOT="$(ver_cut 1-3)"
|
||||
if [[ ${PV} != *_pre* ]] ; then
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
|
||||
fi
|
||||
IUSE="+asm rfc3779 sctp cpu_flags_x86_sse2 sslv3 static-libs test tls-compression tls-heartbeat vanilla verify-sig weak-ssl-ciphers"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
RDEPEND="
|
||||
!=dev-libs/openssl-1.1.1*:0
|
||||
tls-compression? ( >=sys-libs/zlib-1.2.8-r1[static-libs(+)?,${MULTILIB_USEDEP}] )
|
||||
"
|
||||
DEPEND="${RDEPEND}"
|
||||
BDEPEND="
|
||||
>=dev-lang/perl-5
|
||||
sctp? ( >=net-misc/lksctp-tools-1.0.12 )
|
||||
test? (
|
||||
sys-apps/diffutils
|
||||
sys-devel/bc
|
||||
kernel_linux? ( sys-process/procps )
|
||||
)
|
||||
verify-sig? ( >=sec-keys/openpgp-keys-openssl-20230207 )"
|
||||
|
||||
# Do not install any docs
|
||||
DOCS=()
|
||||
|
||||
PATCHES=(
|
||||
# General patches which are suitable to always apply
|
||||
# If they're Gentoo specific, add to USE=-vanilla logic in src_prepare!
|
||||
"${FILESDIR}"/${PN/-compat}-1.1.0j-parallel_install_fix.patch # bug #671602
|
||||
"${FILESDIR}"/${PN/-compat}-1.1.1i-riscv32.patch
|
||||
)
|
||||
|
||||
pkg_setup() {
|
||||
[[ ${MERGE_TYPE} == binary ]] && return
|
||||
|
||||
# must check in pkg_setup; sysctl doesn't work with userpriv!
|
||||
if use test && use sctp; then
|
||||
# test_ssl_new will fail with "Ensure SCTP AUTH chunks are enabled in kernel"
|
||||
# if sctp.auth_enable is not enabled.
|
||||
local sctp_auth_status=$(sysctl -n net.sctp.auth_enable 2>/dev/null)
|
||||
if [[ -z "${sctp_auth_status}" ]] || [[ ${sctp_auth_status} != 1 ]]; then
|
||||
die "FEATURES=test with USE=sctp requires net.sctp.auth_enable=1!"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
# Allow openssl to be cross-compiled
|
||||
cp "${FILESDIR}"/gentoo.config-1.0.4 gentoo.config || die
|
||||
chmod a+rx gentoo.config || die
|
||||
|
||||
# Keep this in sync with app-misc/c_rehash
|
||||
SSL_CNF_DIR="/etc/ssl"
|
||||
|
||||
# Make sure we only ever touch Makefile.org and avoid patching a file
|
||||
# that gets blown away anyways by the Configure script in src_configure
|
||||
rm -f Makefile
|
||||
|
||||
if ! use vanilla ; then
|
||||
PATCHES+=(
|
||||
# Add patches which are Gentoo-specific customisations here
|
||||
)
|
||||
fi
|
||||
|
||||
default
|
||||
|
||||
if use test && use sctp && has network-sandbox ${FEATURES}; then
|
||||
einfo "Disabling test '80-test_ssl_new.t' which is known to fail with FEATURES=network-sandbox ..."
|
||||
rm test/recipes/80-test_ssl_new.t || die
|
||||
fi
|
||||
|
||||
# Quiet out unknown driver argument warnings since openssl
|
||||
# doesn't have well-split CFLAGS and we're making it even worse
|
||||
# and 'make depend' uses -Werror for added fun (bug #417795 again)
|
||||
tc-is-clang && append-flags -Qunused-arguments
|
||||
|
||||
# We really, really need to build OpenSSL w/ strict aliasing disabled.
|
||||
# It's filled with violations and it *will* result in miscompiled
|
||||
# code. This has been in the ebuild for > 10 years but even in 2022,
|
||||
# it's still relevant:
|
||||
# - https://github.com/llvm/llvm-project/issues/55255
|
||||
# - https://github.com/openssl/openssl/issues/18225
|
||||
# - https://github.com/openssl/openssl/issues/18663#issuecomment-1181478057
|
||||
# Don't remove the no strict aliasing bits below!
|
||||
filter-flags -fstrict-aliasing
|
||||
append-flags -fno-strict-aliasing
|
||||
|
||||
append-cppflags -DOPENSSL_NO_BUF_FREELISTS
|
||||
|
||||
append-flags $(test-flags-CC -Wa,--noexecstack)
|
||||
|
||||
# Remove test target when FEATURES=test isn't set
|
||||
if ! use test ; then
|
||||
sed \
|
||||
-e '/^$config{dirs}/s@ "test",@@' \
|
||||
-i Configure || die
|
||||
fi
|
||||
|
||||
if use prefix && [[ ${CHOST} == *-solaris* ]] ; then
|
||||
# use GNU ld full option, not to confuse it on Solaris
|
||||
sed -i \
|
||||
-e 's/-Wl,-M,/-Wl,--version-script=/' \
|
||||
-e 's/-Wl,-h,/-Wl,--soname=/' \
|
||||
Configurations/10-main.conf || die
|
||||
|
||||
# fix building on Solaris 10
|
||||
# https://github.com/openssl/openssl/issues/6333
|
||||
sed -i \
|
||||
-e 's/-lsocket -lnsl -ldl/-lsocket -lnsl -ldl -lrt/' \
|
||||
Configurations/10-main.conf || die
|
||||
fi
|
||||
|
||||
local sslout=$(./gentoo.config)
|
||||
einfo "Using configuration: ${sslout:-(openssl knows best)}"
|
||||
local config="perl Configure"
|
||||
[[ -z ${sslout} ]] && config="sh config -v"
|
||||
|
||||
# The config script does stupid stuff to prompt the user. Kill it.
|
||||
sed -i '/stty -icanon min 0 time 50; read waste/d' config || die
|
||||
edo ${config} ${sslout} --test-sanity
|
||||
|
||||
multilib_copy_sources
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
# bug #197996
|
||||
unset APPS
|
||||
# bug #312551
|
||||
unset SCRIPTS
|
||||
# bug #311473
|
||||
unset CROSS_COMPILE
|
||||
|
||||
tc-export AR CC CXX RANLIB RC
|
||||
|
||||
use_ssl() { usex $1 "enable-${2:-$1}" "no-${2:-$1}" " ${*:3}" ; }
|
||||
|
||||
local krb5=$(has_version app-crypt/mit-krb5 && echo "MIT" || echo "Heimdal")
|
||||
|
||||
# See if our toolchain supports __uint128_t. If so, it's 64bit
|
||||
# friendly and can use the nicely optimized code paths, bug #460790.
|
||||
#local ec_nistp_64_gcc_128
|
||||
#
|
||||
# Disable it for now though (bug #469976)
|
||||
# Do NOT re-enable without substantial discussion first!
|
||||
#
|
||||
#echo "__uint128_t i;" > "${T}"/128.c
|
||||
#if ${CC} ${CFLAGS} -c "${T}"/128.c -o /dev/null >&/dev/null ; then
|
||||
# ec_nistp_64_gcc_128="enable-ec_nistp_64_gcc_128"
|
||||
#fi
|
||||
|
||||
local sslout=$(./gentoo.config)
|
||||
einfo "Use configuration ${sslout:-(openssl knows best)}"
|
||||
local config="perl Configure"
|
||||
[[ -z ${sslout} ]] && config="sh config -v"
|
||||
|
||||
# "disable-deprecated" option breaks too many consumers.
|
||||
# Don't set it without thorough revdeps testing.
|
||||
# Make sure user flags don't get added *yet* to avoid duplicated
|
||||
# flags.
|
||||
local myeconfargs=(
|
||||
${sslout}
|
||||
|
||||
$(use cpu_flags_x86_sse2 || echo "no-sse2")
|
||||
enable-camellia
|
||||
enable-ec
|
||||
enable-ec2m
|
||||
enable-sm2
|
||||
enable-srp
|
||||
$(use elibc_musl && echo "no-async")
|
||||
${ec_nistp_64_gcc_128}
|
||||
enable-idea
|
||||
enable-mdc2
|
||||
enable-rc5
|
||||
$(use_ssl sslv3 ssl3)
|
||||
$(use_ssl sslv3 ssl3-method)
|
||||
$(use_ssl asm)
|
||||
$(use_ssl rfc3779)
|
||||
$(use_ssl sctp)
|
||||
$(use test || echo "no-tests")
|
||||
$(use_ssl tls-compression zlib)
|
||||
$(use_ssl tls-heartbeat heartbeats)
|
||||
$(use_ssl weak-ssl-ciphers)
|
||||
|
||||
--prefix="${EPREFIX}"/usr
|
||||
--openssldir="${EPREFIX}"${SSL_CNF_DIR}
|
||||
--libdir=$(get_libdir)
|
||||
|
||||
shared
|
||||
threads
|
||||
)
|
||||
|
||||
edo ${config} "${myeconfargs[@]}"
|
||||
}
|
||||
|
||||
multilib_src_compile() {
|
||||
emake all
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
emake -j1 test
|
||||
}
|
||||
|
||||
multilib_src_install() {
|
||||
dolib.so lib{crypto,ssl}.so.$(ver_cut 1-2 "${SLOT}")
|
||||
}
|
@ -1,15 +1,9 @@
|
||||
DIST openssl-1.0.2-patches-1.5.tar.xz 12404 BLAKE2B 6c1b8c28f339f539b2ab8643379502a24cf62bffde00041dce54d5dd9e8d2620b181362ee5464b0ab32ba4948e209697bfabadbea2944a409a1009100d298f24 SHA512 5725e2d9d1ee8cc074bcef3bed61c71bdab2ff1c114362110c3fb8da11ad5bc8f2ff28e90a293f5f3a5cf96ecda54dffdb7ab3fb3f8b23ef6472250dc3037659
|
||||
DIST openssl-1.0.2t-bindist-1.0.tar.xz 13872 BLAKE2B b2aade96a6e0ca6209a39e205b1c838de945903fcf959c62cc29ddcd1a0cb360fc5db234df86860a6a4c096f5ecc237611e4c2946b986a5500c24ba93c208ef4 SHA512 a48a7efb9b973b865bcc5009d450b428ed6b4b95e4cefe70c51056e47392c8a7bec58215168d8b07712419dc74646c2bd2fd23bcfbba2031376e292249a6b1b6
|
||||
DIST openssl-1.0.2u.tar.gz 5355412 BLAKE2B b2ff2a10e5851af5aca4093422a9a072c794e87b997263826c1c35910c040f695fac63decac5856cb49399ed03d410f97701d9fd4e1ebfbcacd8f3a74ce8bf57 SHA512 c455bb309e20e2c2d47fdc5619c734d107d5c8c38c1409903ce979acc120b0d5fa0312917c0aa0d630e402d092a703d4249643f36078e8528a3cafc9dac6ab32
|
||||
DIST openssl-1.1.1t.tar.gz 9881866 BLAKE2B 66d76ea0c05a4afc3104e22602cffc2373e857728625d31ab3244881cafa91c099a817a09def7746bce4133585bfc90b769f43527e77a81ed13e60a8c2fb4d8d SHA512 628676c9c3bc1cf46083d64f61943079f97f0eefd0264042e40a85dbbd988f271bfe01cd1135d22cc3f67a298f1d078041f8f2e97b0da0d93fe172da573da18c
|
||||
DIST openssl-1.1.1t.tar.gz.asc 833 BLAKE2B fc5e7069268e987a20241dfc4f080529c6e95e217c198568b09c833e390e68b25a604a5d3ec29c6a64b9dee9d42199fd3647214e536ba2f7b8b4e57aa4cba680 SHA512 1232a94fce991d62f008ae6d3d9b6fe68cb6378fe07450feb17a58eb2417fb385ffcb7e6b74eb683134be9ff6ccf6efa183f37f4dd521614fd5aeaddf000b90b
|
||||
DIST openssl-1.1.1u.tar.gz 9892176 BLAKE2B 5de9cb856e497596ecba008bad6515eefd093849b9c66dd7447031723996f3ba66ac37a323a5f7d01b1d42df4daaceb523372f5897d5c53b935ffab91c566594 SHA512 d00aeb0b4c4676deff06ff95af7ac33dd683b92f972b4a8ae55cf384bb37c7ec30ab83c6c0745daf87cf1743a745fced6a347fd11fed4c548aa0953610ed4919
|
||||
DIST openssl-1.1.1u.tar.gz.asc 833 BLAKE2B 7a978a94264a14be04372fea39868e9177e8a0b0f24344267702022e19ee0f52e91ad141d7c54da870f7ec0df9b2e43b80939f1d274dd0b44d36da2670e3a468 SHA512 40245d65ace95b2002bf64bcba184c92fec3420b08d9f61f3a709c4842e9478595105d8adce33a08eb98d351d2a0989ec342b08cdd9104498ea0543b6e592d28
|
||||
DIST openssl-3.0.8.tar.gz 15151328 BLAKE2B e163cc9b8b458f72405a2f1bde3811c8d0eb22e8b08ff5608ec64799975f1546dcdce31466b8a1d5ed29bc90d19aa6017d711987c81b71f4b20e279828cf753a SHA512 8ce10be000d7d4092c8efc5b96b1d2f7da04c1c3a624d3a7923899c6b1de06f369016be957e36e8ab6d4c9102eaeec5d1973295d547f7893a7f11f132ae42b0d
|
||||
DIST openssl-3.0.8.tar.gz.asc 833 BLAKE2B 1949801150e254e9be648f33014a4a16f803b42ca5a302c3942d377013e983e0ea0cca8aed594e3f9ecde26c6e31d222581e991af5fae6cd451d7ee83541f4bb SHA512 e1c04f1179aded228b39005fd9e9f6f75aedafb938b77ac58c97a00973eb412d93b92ad1c447332a5d96850b62b01093502928e6c190bdd0234a94c4e815d2a6
|
||||
DIST openssl-3.0.9.tar.gz 15181285 BLAKE2B cc1df41fa12ba4443e15e94f6ebdc5e103b9dab5eab2e1c8f74e6a74fa2c38207817921b65d7293cb241c190a910191c7163600bb75243adde0e2f9ec31cc885 SHA512 86c99146b37236419b110db77dd3ac3992e6bed78c258f0cc3434ca233460b4e17c0ac81d7058547fe9cb72a9fd80ee56d4b4916bb731dbe2bbcf1c3d46bf31a
|
||||
DIST openssl-3.0.9.tar.gz.asc 833 BLAKE2B 9943ac65f83f48465cae83b37a1d004f6be4622e53c3025166d42954abe9215f1a6c2af58d4aa2b45fa51182fee5019e740969f694655b6c592bb278c68aacef SHA512 9949de6b57d5aa21da1d4b68a29eb37e302403c983bd7d2d8769b320aac4268a9f9091c5fb182862a4f89a9099660939fe609df87c66991b75f7695faf357caf
|
||||
DIST openssl-3.1.0.tar.gz 15525381 BLAKE2B 9212a7fb13f6dee7746721ee406af56ae1b48ec58974c002465d2b0205839eb5ee0483383aa9924fc3e4168ebd34e1a5819480cf10aa318994d7171e54c07108 SHA512 71cc75c7700f445c616e382b76263ad2e4072beec0232458baf3d9891b8b64a7ad0cac4b4d24b727b2b7dcd100c78606fd48eba98a67eccd5f336e3d626ca713
|
||||
DIST openssl-3.1.0.tar.gz.asc 488 BLAKE2B f4a844e3db2c2bdf42b6f811d16cc2077cacf713d20474d94e2d0180a6f97eadf4f03522e9fed478d263d680d88091dc2bc48e7ebb15d049bc57ee7ed64c7fbb SHA512 8d542e6471b745822d6cd889c5b168841b4366ee9a96edc2ab5b44fa1bd1b75308422aed312f1bd6e6a3c3e306eceaa95ce9bb4d0aa3e8ff86cb0fd92a7e61ea
|
||||
DIST openssl-3.1.1.tar.gz 15544757 BLAKE2B 094f7e28f16de6528016fcd21df1d7382b0dbdcd80ec469d37add9c37f638c059dda3ffb4415eba890a33d146ddc9016bcc7192df101c73be5e70faf6e3b1097 SHA512 8ba9dd6ab87451e126c19cc106ccd1643ca48667d6c37504d0ab98205fbccf855fd0db54474b4113c4c3a15215a4ef77a039fb897a69f71bcab2054b2effd1d9
|
||||
DIST openssl-3.1.1.tar.gz.asc 833 BLAKE2B 5a2a9aeb475b843862e133d53bc5bb3c8e12e8e03b1e2da41d0eaa0eade1ae03c4318ad1f5c490c5e1ed7e6ac6275a6d7c881d99993911722b043b15d1622b25 SHA512 83349020c67e5b956f3ef37604a03a1970ea393f862691f5fd5d85930c01e559e25db17d397d8fd230c3862a8b2fba2d5c7df883d56d7472f4c01dab3a661cb2
|
||||
|
@ -1,215 +0,0 @@
|
||||
commit 879f7080d7e141f415c79eaa3a8ac4a3dad0348b
|
||||
Author: Pauli <pauli@openssl.org>
|
||||
Date: Wed Mar 8 15:28:20 2023 +1100
|
||||
|
||||
x509: excessive resource use verifying policy constraints
|
||||
|
||||
A security vulnerability has been identified in all supported versions
|
||||
of OpenSSL related to the verification of X.509 certificate chains
|
||||
that include policy constraints. Attackers may be able to exploit this
|
||||
vulnerability by creating a malicious certificate chain that triggers
|
||||
exponential use of computational resources, leading to a denial-of-service
|
||||
(DoS) attack on affected systems.
|
||||
|
||||
Fixes CVE-2023-0464
|
||||
|
||||
Reviewed-by: Tomas Mraz <tomas@openssl.org>
|
||||
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
|
||||
(Merged from https://github.com/openssl/openssl/pull/20569)
|
||||
|
||||
diff --git a/crypto/x509v3/pcy_local.h b/crypto/x509v3/pcy_local.h
|
||||
index 5daf78de45..344aa06765 100644
|
||||
--- a/crypto/x509v3/pcy_local.h
|
||||
+++ b/crypto/x509v3/pcy_local.h
|
||||
@@ -111,6 +111,11 @@ struct X509_POLICY_LEVEL_st {
|
||||
};
|
||||
|
||||
struct X509_POLICY_TREE_st {
|
||||
+ /* The number of nodes in the tree */
|
||||
+ size_t node_count;
|
||||
+ /* The maximum number of nodes in the tree */
|
||||
+ size_t node_maximum;
|
||||
+
|
||||
/* This is the tree 'level' data */
|
||||
X509_POLICY_LEVEL *levels;
|
||||
int nlevel;
|
||||
@@ -159,7 +164,8 @@ X509_POLICY_NODE *tree_find_sk(STACK_OF(X509_POLICY_NODE) *sk,
|
||||
X509_POLICY_NODE *level_add_node(X509_POLICY_LEVEL *level,
|
||||
X509_POLICY_DATA *data,
|
||||
X509_POLICY_NODE *parent,
|
||||
- X509_POLICY_TREE *tree);
|
||||
+ X509_POLICY_TREE *tree,
|
||||
+ int extra_data);
|
||||
void policy_node_free(X509_POLICY_NODE *node);
|
||||
int policy_node_match(const X509_POLICY_LEVEL *lvl,
|
||||
const X509_POLICY_NODE *node, const ASN1_OBJECT *oid);
|
||||
diff --git a/crypto/x509v3/pcy_node.c b/crypto/x509v3/pcy_node.c
|
||||
index e2d7b15322..d574fb9d66 100644
|
||||
--- a/crypto/x509v3/pcy_node.c
|
||||
+++ b/crypto/x509v3/pcy_node.c
|
||||
@@ -59,10 +59,15 @@ X509_POLICY_NODE *level_find_node(const X509_POLICY_LEVEL *level,
|
||||
X509_POLICY_NODE *level_add_node(X509_POLICY_LEVEL *level,
|
||||
X509_POLICY_DATA *data,
|
||||
X509_POLICY_NODE *parent,
|
||||
- X509_POLICY_TREE *tree)
|
||||
+ X509_POLICY_TREE *tree,
|
||||
+ int extra_data)
|
||||
{
|
||||
X509_POLICY_NODE *node;
|
||||
|
||||
+ /* Verify that the tree isn't too large. This mitigates CVE-2023-0464 */
|
||||
+ if (tree->node_maximum > 0 && tree->node_count >= tree->node_maximum)
|
||||
+ return NULL;
|
||||
+
|
||||
node = OPENSSL_zalloc(sizeof(*node));
|
||||
if (node == NULL) {
|
||||
X509V3err(X509V3_F_LEVEL_ADD_NODE, ERR_R_MALLOC_FAILURE);
|
||||
@@ -70,7 +75,7 @@ X509_POLICY_NODE *level_add_node(X509_POLICY_LEVEL *level,
|
||||
}
|
||||
node->data = data;
|
||||
node->parent = parent;
|
||||
- if (level) {
|
||||
+ if (level != NULL) {
|
||||
if (OBJ_obj2nid(data->valid_policy) == NID_any_policy) {
|
||||
if (level->anyPolicy)
|
||||
goto node_error;
|
||||
@@ -90,7 +95,7 @@ X509_POLICY_NODE *level_add_node(X509_POLICY_LEVEL *level,
|
||||
}
|
||||
}
|
||||
|
||||
- if (tree) {
|
||||
+ if (extra_data) {
|
||||
if (tree->extra_data == NULL)
|
||||
tree->extra_data = sk_X509_POLICY_DATA_new_null();
|
||||
if (tree->extra_data == NULL){
|
||||
@@ -103,6 +108,7 @@ X509_POLICY_NODE *level_add_node(X509_POLICY_LEVEL *level,
|
||||
}
|
||||
}
|
||||
|
||||
+ tree->node_count++;
|
||||
if (parent)
|
||||
parent->nchild++;
|
||||
|
||||
diff --git a/crypto/x509v3/pcy_tree.c b/crypto/x509v3/pcy_tree.c
|
||||
index 6e8322cbc5..6c7fd35405 100644
|
||||
--- a/crypto/x509v3/pcy_tree.c
|
||||
+++ b/crypto/x509v3/pcy_tree.c
|
||||
@@ -13,6 +13,18 @@
|
||||
|
||||
#include "pcy_local.h"
|
||||
|
||||
+/*
|
||||
+ * If the maximum number of nodes in the policy tree isn't defined, set it to
|
||||
+ * a generous default of 1000 nodes.
|
||||
+ *
|
||||
+ * Defining this to be zero means unlimited policy tree growth which opens the
|
||||
+ * door on CVE-2023-0464.
|
||||
+ */
|
||||
+
|
||||
+#ifndef OPENSSL_POLICY_TREE_NODES_MAX
|
||||
+# define OPENSSL_POLICY_TREE_NODES_MAX 1000
|
||||
+#endif
|
||||
+
|
||||
/*
|
||||
* Enable this to print out the complete policy tree at various point during
|
||||
* evaluation.
|
||||
@@ -168,6 +180,9 @@ static int tree_init(X509_POLICY_TREE **ptree, STACK_OF(X509) *certs,
|
||||
return X509_PCY_TREE_INTERNAL;
|
||||
}
|
||||
|
||||
+ /* Limit the growth of the tree to mitigate CVE-2023-0464 */
|
||||
+ tree->node_maximum = OPENSSL_POLICY_TREE_NODES_MAX;
|
||||
+
|
||||
/*
|
||||
* http://tools.ietf.org/html/rfc5280#section-6.1.2, figure 3.
|
||||
*
|
||||
@@ -184,7 +199,7 @@ static int tree_init(X509_POLICY_TREE **ptree, STACK_OF(X509) *certs,
|
||||
level = tree->levels;
|
||||
if ((data = policy_data_new(NULL, OBJ_nid2obj(NID_any_policy), 0)) == NULL)
|
||||
goto bad_tree;
|
||||
- if (level_add_node(level, data, NULL, tree) == NULL) {
|
||||
+ if (level_add_node(level, data, NULL, tree, 1) == NULL) {
|
||||
policy_data_free(data);
|
||||
goto bad_tree;
|
||||
}
|
||||
@@ -243,7 +258,8 @@ static int tree_init(X509_POLICY_TREE **ptree, STACK_OF(X509) *certs,
|
||||
* Return value: 1 on success, 0 otherwise
|
||||
*/
|
||||
static int tree_link_matching_nodes(X509_POLICY_LEVEL *curr,
|
||||
- X509_POLICY_DATA *data)
|
||||
+ X509_POLICY_DATA *data,
|
||||
+ X509_POLICY_TREE *tree)
|
||||
{
|
||||
X509_POLICY_LEVEL *last = curr - 1;
|
||||
int i, matched = 0;
|
||||
@@ -253,13 +269,13 @@ static int tree_link_matching_nodes(X509_POLICY_LEVEL *curr,
|
||||
X509_POLICY_NODE *node = sk_X509_POLICY_NODE_value(last->nodes, i);
|
||||
|
||||
if (policy_node_match(last, node, data->valid_policy)) {
|
||||
- if (level_add_node(curr, data, node, NULL) == NULL)
|
||||
+ if (level_add_node(curr, data, node, tree, 0) == NULL)
|
||||
return 0;
|
||||
matched = 1;
|
||||
}
|
||||
}
|
||||
if (!matched && last->anyPolicy) {
|
||||
- if (level_add_node(curr, data, last->anyPolicy, NULL) == NULL)
|
||||
+ if (level_add_node(curr, data, last->anyPolicy, tree, 0) == NULL)
|
||||
return 0;
|
||||
}
|
||||
return 1;
|
||||
@@ -272,7 +288,8 @@ static int tree_link_matching_nodes(X509_POLICY_LEVEL *curr,
|
||||
* Return value: 1 on success, 0 otherwise.
|
||||
*/
|
||||
static int tree_link_nodes(X509_POLICY_LEVEL *curr,
|
||||
- const X509_POLICY_CACHE *cache)
|
||||
+ const X509_POLICY_CACHE *cache,
|
||||
+ X509_POLICY_TREE *tree)
|
||||
{
|
||||
int i;
|
||||
|
||||
@@ -280,7 +297,7 @@ static int tree_link_nodes(X509_POLICY_LEVEL *curr,
|
||||
X509_POLICY_DATA *data = sk_X509_POLICY_DATA_value(cache->data, i);
|
||||
|
||||
/* Look for matching nodes in previous level */
|
||||
- if (!tree_link_matching_nodes(curr, data))
|
||||
+ if (!tree_link_matching_nodes(curr, data, tree))
|
||||
return 0;
|
||||
}
|
||||
return 1;
|
||||
@@ -311,7 +328,7 @@ static int tree_add_unmatched(X509_POLICY_LEVEL *curr,
|
||||
/* Curr may not have anyPolicy */
|
||||
data->qualifier_set = cache->anyPolicy->qualifier_set;
|
||||
data->flags |= POLICY_DATA_FLAG_SHARED_QUALIFIERS;
|
||||
- if (level_add_node(curr, data, node, tree) == NULL) {
|
||||
+ if (level_add_node(curr, data, node, tree, 1) == NULL) {
|
||||
policy_data_free(data);
|
||||
return 0;
|
||||
}
|
||||
@@ -373,7 +390,7 @@ static int tree_link_any(X509_POLICY_LEVEL *curr,
|
||||
}
|
||||
/* Finally add link to anyPolicy */
|
||||
if (last->anyPolicy &&
|
||||
- level_add_node(curr, cache->anyPolicy, last->anyPolicy, NULL) == NULL)
|
||||
+ level_add_node(curr, cache->anyPolicy, last->anyPolicy, tree, 0) == NULL)
|
||||
return 0;
|
||||
return 1;
|
||||
}
|
||||
@@ -555,7 +572,7 @@ static int tree_calculate_user_set(X509_POLICY_TREE *tree,
|
||||
extra->qualifier_set = anyPolicy->data->qualifier_set;
|
||||
extra->flags = POLICY_DATA_FLAG_SHARED_QUALIFIERS
|
||||
| POLICY_DATA_FLAG_EXTRA_NODE;
|
||||
- node = level_add_node(NULL, extra, anyPolicy->parent, tree);
|
||||
+ node = level_add_node(NULL, extra, anyPolicy->parent, tree, 1);
|
||||
}
|
||||
if (!tree->user_policies) {
|
||||
tree->user_policies = sk_X509_POLICY_NODE_new_null();
|
||||
@@ -582,7 +599,7 @@ static int tree_evaluate(X509_POLICY_TREE *tree)
|
||||
|
||||
for (i = 1; i < tree->nlevel; i++, curr++) {
|
||||
cache = policy_cache_set(curr->cert);
|
||||
- if (!tree_link_nodes(curr, cache))
|
||||
+ if (!tree_link_nodes(curr, cache, tree))
|
||||
return X509_PCY_TREE_INTERNAL;
|
||||
|
||||
if (!(curr->flags & X509_V_FLAG_INHIBIT_ANY)
|
@ -1,48 +0,0 @@
|
||||
commit b013765abfa80036dc779dd0e50602c57bb3bf95
|
||||
Author: Matt Caswell <matt@openssl.org>
|
||||
Date: Tue Mar 7 16:52:55 2023 +0000
|
||||
|
||||
Ensure that EXFLAG_INVALID_POLICY is checked even in leaf certs
|
||||
|
||||
Even though we check the leaf cert to confirm it is valid, we
|
||||
later ignored the invalid flag and did not notice that the leaf
|
||||
cert was bad.
|
||||
|
||||
Fixes: CVE-2023-0465
|
||||
|
||||
Reviewed-by: Hugo Landau <hlandau@openssl.org>
|
||||
Reviewed-by: Tomas Mraz <tomas@openssl.org>
|
||||
(Merged from https://github.com/openssl/openssl/pull/20588)
|
||||
|
||||
diff --git a/crypto/x509/x509_vfy.c b/crypto/x509/x509_vfy.c
|
||||
index 925fbb5412..1dfe4f9f31 100644
|
||||
--- a/crypto/x509/x509_vfy.c
|
||||
+++ b/crypto/x509/x509_vfy.c
|
||||
@@ -1649,18 +1649,25 @@ static int check_policy(X509_STORE_CTX *ctx)
|
||||
}
|
||||
/* Invalid or inconsistent extensions */
|
||||
if (ret == X509_PCY_TREE_INVALID) {
|
||||
- int i;
|
||||
+ int i, cbcalled = 0;
|
||||
|
||||
/* Locate certificates with bad extensions and notify callback. */
|
||||
- for (i = 1; i < sk_X509_num(ctx->chain); i++) {
|
||||
+ for (i = 0; i < sk_X509_num(ctx->chain); i++) {
|
||||
X509 *x = sk_X509_value(ctx->chain, i);
|
||||
|
||||
if (!(x->ex_flags & EXFLAG_INVALID_POLICY))
|
||||
continue;
|
||||
+ cbcalled = 1;
|
||||
if (!verify_cb_cert(ctx, x, i,
|
||||
X509_V_ERR_INVALID_POLICY_EXTENSION))
|
||||
return 0;
|
||||
}
|
||||
+ if (!cbcalled) {
|
||||
+ /* Should not be able to get here */
|
||||
+ X509err(X509_F_CHECK_POLICY, ERR_R_INTERNAL_ERROR);
|
||||
+ return 0;
|
||||
+ }
|
||||
+ /* The callback ignored the error so we return success */
|
||||
return 1;
|
||||
}
|
||||
if (ret == X509_PCY_TREE_FAILURE) {
|
@ -1,41 +0,0 @@
|
||||
commit 0d16b7e99aafc0b4a6d729eec65a411a7e025f0a
|
||||
Author: Tomas Mraz <tomas@openssl.org>
|
||||
Date: Tue Mar 21 16:15:47 2023 +0100
|
||||
|
||||
Fix documentation of X509_VERIFY_PARAM_add0_policy()
|
||||
|
||||
The function was incorrectly documented as enabling policy checking.
|
||||
|
||||
Fixes: CVE-2023-0466
|
||||
|
||||
Reviewed-by: Matt Caswell <matt@openssl.org>
|
||||
Reviewed-by: Paul Dale <pauli@openssl.org>
|
||||
(Merged from https://github.com/openssl/openssl/pull/20564)
|
||||
|
||||
diff --git a/doc/man3/X509_VERIFY_PARAM_set_flags.pod b/doc/man3/X509_VERIFY_PARAM_set_flags.pod
|
||||
index f6f304bf7b..aa292f9336 100644
|
||||
--- a/doc/man3/X509_VERIFY_PARAM_set_flags.pod
|
||||
+++ b/doc/man3/X509_VERIFY_PARAM_set_flags.pod
|
||||
@@ -92,8 +92,9 @@ B<trust>.
|
||||
X509_VERIFY_PARAM_set_time() sets the verification time in B<param> to
|
||||
B<t>. Normally the current time is used.
|
||||
|
||||
-X509_VERIFY_PARAM_add0_policy() enables policy checking (it is disabled
|
||||
-by default) and adds B<policy> to the acceptable policy set.
|
||||
+X509_VERIFY_PARAM_add0_policy() adds B<policy> to the acceptable policy set.
|
||||
+Contrary to preexisting documentation of this function it does not enable
|
||||
+policy checking.
|
||||
|
||||
X509_VERIFY_PARAM_set1_policies() enables policy checking (it is disabled
|
||||
by default) and sets the acceptable policy set to B<policies>. Any existing
|
||||
@@ -377,6 +378,10 @@ and has no effect.
|
||||
|
||||
The X509_VERIFY_PARAM_get_hostflags() function was added in OpenSSL 1.1.0i.
|
||||
|
||||
+The function X509_VERIFY_PARAM_add0_policy() was historically documented as
|
||||
+enabling policy checking however the implementation has never done this.
|
||||
+The documentation was changed to align with the implementation.
|
||||
+
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2009-2020 The OpenSSL Project Authors. All Rights Reserved.
|
@ -1,214 +0,0 @@
|
||||
commit 959c59c7a0164117e7f8366466a32bb1f8d77ff1
|
||||
Author: Pauli <pauli@openssl.org>
|
||||
Date: Wed Mar 8 15:28:20 2023 +1100
|
||||
|
||||
x509: excessive resource use verifying policy constraints
|
||||
|
||||
A security vulnerability has been identified in all supported versions
|
||||
of OpenSSL related to the verification of X.509 certificate chains
|
||||
that include policy constraints. Attackers may be able to exploit this
|
||||
vulnerability by creating a malicious certificate chain that triggers
|
||||
exponential use of computational resources, leading to a denial-of-service
|
||||
(DoS) attack on affected systems.
|
||||
|
||||
Fixes CVE-2023-0464
|
||||
|
||||
Reviewed-by: Tomas Mraz <tomas@openssl.org>
|
||||
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
|
||||
(Merged from https://github.com/openssl/openssl/pull/20568)
|
||||
|
||||
diff --git a/crypto/x509/pcy_local.h b/crypto/x509/pcy_local.h
|
||||
index 18b53cc09e..cba107ca03 100644
|
||||
--- a/crypto/x509/pcy_local.h
|
||||
+++ b/crypto/x509/pcy_local.h
|
||||
@@ -111,6 +111,11 @@ struct X509_POLICY_LEVEL_st {
|
||||
};
|
||||
|
||||
struct X509_POLICY_TREE_st {
|
||||
+ /* The number of nodes in the tree */
|
||||
+ size_t node_count;
|
||||
+ /* The maximum number of nodes in the tree */
|
||||
+ size_t node_maximum;
|
||||
+
|
||||
/* This is the tree 'level' data */
|
||||
X509_POLICY_LEVEL *levels;
|
||||
int nlevel;
|
||||
@@ -157,7 +162,8 @@ X509_POLICY_NODE *ossl_policy_tree_find_sk(STACK_OF(X509_POLICY_NODE) *sk,
|
||||
X509_POLICY_NODE *ossl_policy_level_add_node(X509_POLICY_LEVEL *level,
|
||||
X509_POLICY_DATA *data,
|
||||
X509_POLICY_NODE *parent,
|
||||
- X509_POLICY_TREE *tree);
|
||||
+ X509_POLICY_TREE *tree,
|
||||
+ int extra_data);
|
||||
void ossl_policy_node_free(X509_POLICY_NODE *node);
|
||||
int ossl_policy_node_match(const X509_POLICY_LEVEL *lvl,
|
||||
const X509_POLICY_NODE *node, const ASN1_OBJECT *oid);
|
||||
diff --git a/crypto/x509/pcy_node.c b/crypto/x509/pcy_node.c
|
||||
index 9d9a7ea179..450f95a655 100644
|
||||
--- a/crypto/x509/pcy_node.c
|
||||
+++ b/crypto/x509/pcy_node.c
|
||||
@@ -59,10 +59,15 @@ X509_POLICY_NODE *ossl_policy_level_find_node(const X509_POLICY_LEVEL *level,
|
||||
X509_POLICY_NODE *ossl_policy_level_add_node(X509_POLICY_LEVEL *level,
|
||||
X509_POLICY_DATA *data,
|
||||
X509_POLICY_NODE *parent,
|
||||
- X509_POLICY_TREE *tree)
|
||||
+ X509_POLICY_TREE *tree,
|
||||
+ int extra_data)
|
||||
{
|
||||
X509_POLICY_NODE *node;
|
||||
|
||||
+ /* Verify that the tree isn't too large. This mitigates CVE-2023-0464 */
|
||||
+ if (tree->node_maximum > 0 && tree->node_count >= tree->node_maximum)
|
||||
+ return NULL;
|
||||
+
|
||||
node = OPENSSL_zalloc(sizeof(*node));
|
||||
if (node == NULL) {
|
||||
ERR_raise(ERR_LIB_X509V3, ERR_R_MALLOC_FAILURE);
|
||||
@@ -70,7 +75,7 @@ X509_POLICY_NODE *ossl_policy_level_add_node(X509_POLICY_LEVEL *level,
|
||||
}
|
||||
node->data = data;
|
||||
node->parent = parent;
|
||||
- if (level) {
|
||||
+ if (level != NULL) {
|
||||
if (OBJ_obj2nid(data->valid_policy) == NID_any_policy) {
|
||||
if (level->anyPolicy)
|
||||
goto node_error;
|
||||
@@ -90,7 +95,7 @@ X509_POLICY_NODE *ossl_policy_level_add_node(X509_POLICY_LEVEL *level,
|
||||
}
|
||||
}
|
||||
|
||||
- if (tree) {
|
||||
+ if (extra_data) {
|
||||
if (tree->extra_data == NULL)
|
||||
tree->extra_data = sk_X509_POLICY_DATA_new_null();
|
||||
if (tree->extra_data == NULL){
|
||||
@@ -103,6 +108,7 @@ X509_POLICY_NODE *ossl_policy_level_add_node(X509_POLICY_LEVEL *level,
|
||||
}
|
||||
}
|
||||
|
||||
+ tree->node_count++;
|
||||
if (parent)
|
||||
parent->nchild++;
|
||||
|
||||
diff --git a/crypto/x509/pcy_tree.c b/crypto/x509/pcy_tree.c
|
||||
index fa45da5117..f953a05a41 100644
|
||||
--- a/crypto/x509/pcy_tree.c
|
||||
+++ b/crypto/x509/pcy_tree.c
|
||||
@@ -14,6 +14,17 @@
|
||||
|
||||
#include "pcy_local.h"
|
||||
|
||||
+/*
|
||||
+ * If the maximum number of nodes in the policy tree isn't defined, set it to
|
||||
+ * a generous default of 1000 nodes.
|
||||
+ *
|
||||
+ * Defining this to be zero means unlimited policy tree growth which opens the
|
||||
+ * door on CVE-2023-0464.
|
||||
+ */
|
||||
+#ifndef OPENSSL_POLICY_TREE_NODES_MAX
|
||||
+# define OPENSSL_POLICY_TREE_NODES_MAX 1000
|
||||
+#endif
|
||||
+
|
||||
static void expected_print(BIO *channel,
|
||||
X509_POLICY_LEVEL *lev, X509_POLICY_NODE *node,
|
||||
int indent)
|
||||
@@ -163,6 +174,9 @@ static int tree_init(X509_POLICY_TREE **ptree, STACK_OF(X509) *certs,
|
||||
return X509_PCY_TREE_INTERNAL;
|
||||
}
|
||||
|
||||
+ /* Limit the growth of the tree to mitigate CVE-2023-0464 */
|
||||
+ tree->node_maximum = OPENSSL_POLICY_TREE_NODES_MAX;
|
||||
+
|
||||
/*
|
||||
* http://tools.ietf.org/html/rfc5280#section-6.1.2, figure 3.
|
||||
*
|
||||
@@ -180,7 +194,7 @@ static int tree_init(X509_POLICY_TREE **ptree, STACK_OF(X509) *certs,
|
||||
if ((data = ossl_policy_data_new(NULL,
|
||||
OBJ_nid2obj(NID_any_policy), 0)) == NULL)
|
||||
goto bad_tree;
|
||||
- if (ossl_policy_level_add_node(level, data, NULL, tree) == NULL) {
|
||||
+ if (ossl_policy_level_add_node(level, data, NULL, tree, 1) == NULL) {
|
||||
ossl_policy_data_free(data);
|
||||
goto bad_tree;
|
||||
}
|
||||
@@ -239,7 +253,8 @@ static int tree_init(X509_POLICY_TREE **ptree, STACK_OF(X509) *certs,
|
||||
* Return value: 1 on success, 0 otherwise
|
||||
*/
|
||||
static int tree_link_matching_nodes(X509_POLICY_LEVEL *curr,
|
||||
- X509_POLICY_DATA *data)
|
||||
+ X509_POLICY_DATA *data,
|
||||
+ X509_POLICY_TREE *tree)
|
||||
{
|
||||
X509_POLICY_LEVEL *last = curr - 1;
|
||||
int i, matched = 0;
|
||||
@@ -249,13 +264,13 @@ static int tree_link_matching_nodes(X509_POLICY_LEVEL *curr,
|
||||
X509_POLICY_NODE *node = sk_X509_POLICY_NODE_value(last->nodes, i);
|
||||
|
||||
if (ossl_policy_node_match(last, node, data->valid_policy)) {
|
||||
- if (ossl_policy_level_add_node(curr, data, node, NULL) == NULL)
|
||||
+ if (ossl_policy_level_add_node(curr, data, node, tree, 0) == NULL)
|
||||
return 0;
|
||||
matched = 1;
|
||||
}
|
||||
}
|
||||
if (!matched && last->anyPolicy) {
|
||||
- if (ossl_policy_level_add_node(curr, data, last->anyPolicy, NULL) == NULL)
|
||||
+ if (ossl_policy_level_add_node(curr, data, last->anyPolicy, tree, 0) == NULL)
|
||||
return 0;
|
||||
}
|
||||
return 1;
|
||||
@@ -268,7 +283,8 @@ static int tree_link_matching_nodes(X509_POLICY_LEVEL *curr,
|
||||
* Return value: 1 on success, 0 otherwise.
|
||||
*/
|
||||
static int tree_link_nodes(X509_POLICY_LEVEL *curr,
|
||||
- const X509_POLICY_CACHE *cache)
|
||||
+ const X509_POLICY_CACHE *cache,
|
||||
+ X509_POLICY_TREE *tree)
|
||||
{
|
||||
int i;
|
||||
|
||||
@@ -276,7 +292,7 @@ static int tree_link_nodes(X509_POLICY_LEVEL *curr,
|
||||
X509_POLICY_DATA *data = sk_X509_POLICY_DATA_value(cache->data, i);
|
||||
|
||||
/* Look for matching nodes in previous level */
|
||||
- if (!tree_link_matching_nodes(curr, data))
|
||||
+ if (!tree_link_matching_nodes(curr, data, tree))
|
||||
return 0;
|
||||
}
|
||||
return 1;
|
||||
@@ -307,7 +323,7 @@ static int tree_add_unmatched(X509_POLICY_LEVEL *curr,
|
||||
/* Curr may not have anyPolicy */
|
||||
data->qualifier_set = cache->anyPolicy->qualifier_set;
|
||||
data->flags |= POLICY_DATA_FLAG_SHARED_QUALIFIERS;
|
||||
- if (ossl_policy_level_add_node(curr, data, node, tree) == NULL) {
|
||||
+ if (ossl_policy_level_add_node(curr, data, node, tree, 1) == NULL) {
|
||||
ossl_policy_data_free(data);
|
||||
return 0;
|
||||
}
|
||||
@@ -370,7 +386,7 @@ static int tree_link_any(X509_POLICY_LEVEL *curr,
|
||||
/* Finally add link to anyPolicy */
|
||||
if (last->anyPolicy &&
|
||||
ossl_policy_level_add_node(curr, cache->anyPolicy,
|
||||
- last->anyPolicy, NULL) == NULL)
|
||||
+ last->anyPolicy, tree, 0) == NULL)
|
||||
return 0;
|
||||
return 1;
|
||||
}
|
||||
@@ -553,7 +569,7 @@ static int tree_calculate_user_set(X509_POLICY_TREE *tree,
|
||||
extra->flags = POLICY_DATA_FLAG_SHARED_QUALIFIERS
|
||||
| POLICY_DATA_FLAG_EXTRA_NODE;
|
||||
node = ossl_policy_level_add_node(NULL, extra, anyPolicy->parent,
|
||||
- tree);
|
||||
+ tree, 1);
|
||||
}
|
||||
if (!tree->user_policies) {
|
||||
tree->user_policies = sk_X509_POLICY_NODE_new_null();
|
||||
@@ -580,7 +596,7 @@ static int tree_evaluate(X509_POLICY_TREE *tree)
|
||||
|
||||
for (i = 1; i < tree->nlevel; i++, curr++) {
|
||||
cache = ossl_policy_cache_set(curr->cert);
|
||||
- if (!tree_link_nodes(curr, cache))
|
||||
+ if (!tree_link_nodes(curr, cache, tree))
|
||||
return X509_PCY_TREE_INTERNAL;
|
||||
|
||||
if (!(curr->flags & X509_V_FLAG_INHIBIT_ANY)
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue