aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md2
-rw-r--r--app-crypt/mit-krb5/files/mit-krb5-1.18.2-autoconf-2.70.patch35
-rw-r--r--app-crypt/mit-krb5/files/mit-krb5-1.18.2-krb5-config.patch15
-rw-r--r--app-crypt/mit-krb5/mit-krb5-1.18.2-r4.ebuild (renamed from app-crypt/mit-krb5/mit-krb5-1.18.2-r2.ebuild)7
-rw-r--r--app-crypt/mit-krb5/mit-krb5-1.18.3-r2.ebuild (renamed from app-crypt/mit-krb5/mit-krb5-1.18.3.ebuild)6
-rw-r--r--dev-lang/python/Manifest3
-rw-r--r--dev-lang/python/files/pydoc.conf6
-rw-r--r--dev-lang/python/files/pydoc.init24
-rw-r--r--dev-lang/python/metadata.xml12
-rw-r--r--dev-lang/python/python-3.9.6_p1.ebuild346
-rw-r--r--dev-lang/rust/Manifest84
-rw-r--r--dev-lang/rust/files/1.53.0-miri-vergen.patch53
-rw-r--r--dev-lang/rust/files/1.53.0-rustversion-1.0.5.patch234
-rw-r--r--dev-lang/rust/files/1.54.0-libressl.patch43
-rw-r--r--dev-lang/rust/files/1.54.0-parallel-miri.patch43
-rw-r--r--dev-lang/rust/rust-1.52.1.ebuild15
-rw-r--r--dev-lang/rust/rust-1.53.0.ebuild (renamed from dev-lang/rust/rust-1.51.0-r2.ebuild)77
-rw-r--r--dev-lang/rust/rust-1.54.0.ebuild680
-rw-r--r--dev-libs/libressl/Manifest15
-rw-r--r--dev-libs/libressl/libressl-2.9.2.ebuild63
-rw-r--r--dev-libs/libressl/libressl-3.0.2.ebuild62
-rw-r--r--dev-libs/libressl/libressl-3.1.4.ebuild62
-rw-r--r--dev-libs/libressl/libressl-3.1.5.ebuild62
-rw-r--r--dev-libs/libressl/libressl-3.2.0.ebuild62
-rw-r--r--dev-libs/libressl/libressl-3.2.1.ebuild62
-rw-r--r--dev-libs/libressl/libressl-3.2.3.ebuild62
-rw-r--r--dev-libs/libressl/libressl-3.2.5.ebuild62
-rw-r--r--dev-libs/libressl/libressl-3.2.6.ebuild (renamed from dev-libs/libressl/libressl-3.1.3.ebuild)2
-rw-r--r--dev-libs/libressl/libressl-3.3.0.ebuild63
-rw-r--r--dev-libs/libressl/libressl-3.3.2.ebuild63
-rw-r--r--dev-libs/libressl/libressl-3.3.3.ebuild63
-rw-r--r--dev-libs/libressl/libressl-3.4.0.ebuild (renamed from dev-libs/libressl/libressl-3.3.1.ebuild)0
-rw-r--r--dev-python/cryptography/cryptography-3.4.7-r2.ebuild77
-rw-r--r--dev-python/cryptography/files/cryptography-3.4.7-libressl.patch155
-rw-r--r--dev-python/cryptography/files/cryptography-3.4.7-py310.patch301
-rw-r--r--dev-python/m2crypto/m2crypto-0.35.2-r1.ebuild63
-rw-r--r--dev-qt/qtnetwork/qtnetwork-5.15.2-r2.ebuild (renamed from dev-qt/qtnetwork/qtnetwork-5.15.2-r1.ebuild)0
-rw-r--r--net-misc/seafile-client/Manifest1
-rw-r--r--net-misc/seafile-client/seafile-client-8.0.3.ebuild52
-rw-r--r--net-wireless/wpa_supplicant/Manifest1
-rw-r--r--net-wireless/wpa_supplicant/wpa_supplicant-2.9-r5.ebuild (renamed from net-wireless/wpa_supplicant/wpa_supplicant-2.9-r2.ebuild)10
41 files changed, 2237 insertions, 811 deletions
diff --git a/README.md b/README.md
index 069a95f..f415c8f 100644
--- a/README.md
+++ b/README.md
@@ -37,3 +37,5 @@ repository.
## Contact
[![Gitter chat](https://badges.gitter.im/gentoo/libressl.png)](https://gitter.im/gentoo/libressl)
+
+[IRC on Libera.Chat #gentoo-libressl](irc://irc.libera.chat/gentoo-libressl)
diff --git a/app-crypt/mit-krb5/files/mit-krb5-1.18.2-autoconf-2.70.patch b/app-crypt/mit-krb5/files/mit-krb5-1.18.2-autoconf-2.70.patch
new file mode 100644
index 0000000..6741c47
--- /dev/null
+++ b/app-crypt/mit-krb5/files/mit-krb5-1.18.2-autoconf-2.70.patch
@@ -0,0 +1,35 @@
+https://bugs.gentoo.org/778167
+
+From f78edbe30816f049e1360cb6e203fabfdf7b98df Mon Sep 17 00:00:00 2001
+From: Sergei Trofimovich <slyfox@gentoo.org>
+Date: Fri, 6 Nov 2020 08:14:57 +0000
+Subject: [PATCH] Fix compatibility with upcoming autoconf 2.70
+
+Mainline autoconf generates no shell code for AC_CONFIG_AUX_DIR().
+Call it unconditionally to avoid a syntax error.
+
+[ghudson@mit.edu: rewrote commit message]
+
+ticket: 8960 (new)
+tags: pullup
+target_version: 1.18-next
+target_version: 1.17-next
+---
+ src/aclocal.m4 | 6 +-----
+ 1 file changed, 1 insertion(+), 5 deletions(-)
+
+--- src/aclocal.m4
++++ src/aclocal.m4
+@@ -13,11 +13,7 @@ fi
+ ac_topdir=$srcdir/$ac_reltopdir
+ ac_config_fragdir=$ac_reltopdir/config
+ # echo "Looking for $srcdir/$ac_config_fragdir"
+-if test -d "$srcdir/$ac_config_fragdir"; then
+- AC_CONFIG_AUX_DIR(K5_TOPDIR/config)
+-else
+- AC_MSG_ERROR([can not find config/ directory in $ac_reltopdir])
+-fi
++AC_CONFIG_AUX_DIR(K5_TOPDIR/config)
+ ])dnl
+ dnl
+ dnl Version info.
diff --git a/app-crypt/mit-krb5/files/mit-krb5-1.18.2-krb5-config.patch b/app-crypt/mit-krb5/files/mit-krb5-1.18.2-krb5-config.patch
new file mode 100644
index 0000000..ec901ce
--- /dev/null
+++ b/app-crypt/mit-krb5/files/mit-krb5-1.18.2-krb5-config.patch
@@ -0,0 +1,15 @@
+--- a/build-tools/krb5-config.in
++++ b/build-tools/krb5-config.in
+@@ -208,12 +208,6 @@
+
+
+ if test -n "$do_libs"; then
+- # Assumes /usr/lib is the standard library directory everywhere...
+- if test "$libdir" = /usr/lib; then
+- libdirarg=
+- else
+- libdirarg="-L$libdir"
+- fi
+ # Ugly gross hack for our build tree
+ lib_flags=`echo $CC_LINK | sed -e 's/\$(CC)//' \
+ -e 's/\$(PURE)//' \
diff --git a/app-crypt/mit-krb5/mit-krb5-1.18.2-r2.ebuild b/app-crypt/mit-krb5/mit-krb5-1.18.2-r4.ebuild
index 636a56c..1f88d29 100644
--- a/app-crypt/mit-krb5/mit-krb5-1.18.2-r2.ebuild
+++ b/app-crypt/mit-krb5/mit-krb5-1.18.2-r4.ebuild
@@ -26,13 +26,14 @@ DEPEND="
|| (
>=dev-libs/libverto-0.2.5[libev,${MULTILIB_USEDEP}]
>=dev-libs/libverto-0.2.5[libevent,${MULTILIB_USEDEP}]
- >=dev-libs/libverto-0.2.5[tevent,${MULTILIB_USEDEP}]
)
keyutils? ( >=sys-apps/keyutils-1.5.8:=[${MULTILIB_USEDEP}] )
lmdb? ( dev-db/lmdb )
nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] )
openldap? ( >=net-nds/openldap-2.4.38-r1[${MULTILIB_USEDEP}] )
- pkinit? ( >=dev-libs/openssl-1.0.1h-r2:0=[${MULTILIB_USEDEP}] )
+ pkinit? (
+ >=dev-libs/openssl-1.0.1h-r2:0=[${MULTILIB_USEDEP}]
+ )
xinetd? ( sys-apps/xinetd )
"
BDEPEND="
@@ -61,6 +62,8 @@ PATCHES=(
"${FILESDIR}/${PN}_dont_create_run.patch"
"${FILESDIR}/${PN}-1.18-libressl.patch"
"${FILESDIR}/CVE-2020-28196.patch"
+ "${FILESDIR}/${PN}-1.18.2-krb5-config.patch"
+ "${FILESDIR}/${PN}-1.18.2-autoconf-2.70.patch"
)
MULTILIB_CHOST_TOOLS=(
diff --git a/app-crypt/mit-krb5/mit-krb5-1.18.3.ebuild b/app-crypt/mit-krb5/mit-krb5-1.18.3-r2.ebuild
index db55cdf..f2d5ba8 100644
--- a/app-crypt/mit-krb5/mit-krb5-1.18.3.ebuild
+++ b/app-crypt/mit-krb5/mit-krb5-1.18.3-r2.ebuild
@@ -26,13 +26,14 @@ DEPEND="
|| (
>=dev-libs/libverto-0.2.5[libev,${MULTILIB_USEDEP}]
>=dev-libs/libverto-0.2.5[libevent,${MULTILIB_USEDEP}]
- >=dev-libs/libverto-0.2.5[tevent,${MULTILIB_USEDEP}]
)
keyutils? ( >=sys-apps/keyutils-1.5.8:=[${MULTILIB_USEDEP}] )
lmdb? ( dev-db/lmdb )
nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] )
openldap? ( >=net-nds/openldap-2.4.38-r1[${MULTILIB_USEDEP}] )
- pkinit? ( >=dev-libs/openssl-1.0.1h-r2:0=[${MULTILIB_USEDEP}] )
+ pkinit? (
+ >=dev-libs/openssl-1.0.1h-r2:0=[${MULTILIB_USEDEP}]
+ )
xinetd? ( sys-apps/xinetd )
"
BDEPEND="
@@ -60,6 +61,7 @@ PATCHES=(
"${FILESDIR}/${PN}-1.16.3-libressl-r1.patch"
"${FILESDIR}/${PN}_dont_create_run.patch"
"${FILESDIR}/${PN}-1.18-libressl.patch"
+ "${FILESDIR}/${PN}-1.18.2-krb5-config.patch"
)
MULTILIB_CHOST_TOOLS=(
diff --git a/dev-lang/python/Manifest b/dev-lang/python/Manifest
new file mode 100644
index 0000000..1c46e52
--- /dev/null
+++ b/dev-lang/python/Manifest
@@ -0,0 +1,3 @@
+DIST Python-3.9.6.tar.xz 19051972 BLAKE2B 0d8586b2935088eeab7138cf2210c1a74f1bf7359359d25750af5f69de55eb39c92f518b887a8b749c772ed7d33e85b912928ae6d878514eb58d85ef210f54f0 SHA512 01c529e3207738d8771caeb5ed6217e10745c21aa39832fe3185e1c87fdb6aedead97ce38dbb11e02d873654028bd8071c3f345c18452769520723284efe9dc1
+DIST Python-3.9.6.tar.xz.asc 833 BLAKE2B 41901bfb80a901f2f14e86769e6d08ded8f75656d347201345183162e180e61442da871a1067572a54da579551166a19bf5436e51581bb10cb78afc4d28773fc SHA512 0673c8833f302c829bfde97453c52744f6aa99b4a72520f4cc384d4aa9d6ffd28a1407ceafb0a1ec4462b3aa74b656bf39c67872c4e6a131429ea58c47ad0ecc
+DIST python-gentoo-patches-3.9.6_p1.tar.xz 12764 BLAKE2B 927718f1aadb5d5ef67e647a639a10bffdd48474bf01e50bd37ef1242bce57606b7b54c4823c1da3585ee76e737028163e38e9b4e19037585cc53f925e1c5fa7 SHA512 f06fb55786bd942e72e3225ee9ce218724aeee29f301279743588749007e991851a8f29db5b5dfd85435e3d763c00942947909a6fc60581bd0f3e8a6e913bff8
diff --git a/dev-lang/python/files/pydoc.conf b/dev-lang/python/files/pydoc.conf
new file mode 100644
index 0000000..3c6920c
--- /dev/null
+++ b/dev-lang/python/files/pydoc.conf
@@ -0,0 +1,6 @@
+# /etc/init.d/pydoc.conf
+
+# This file contains the configuration for pydoc's internal webserver.
+
+# Default port for Python's pydoc server.
+@PYDOC_PORT_VARIABLE@="7464"
diff --git a/dev-lang/python/files/pydoc.init b/dev-lang/python/files/pydoc.init
new file mode 100644
index 0000000..f8e0563
--- /dev/null
+++ b/dev-lang/python/files/pydoc.init
@@ -0,0 +1,24 @@
+#!/sbin/openrc-run
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public Licence v2
+
+start() {
+ local pydoc_port="${@PYDOC_PORT_VARIABLE@-${PYDOC_PORT}}"
+
+ if [ -z "${pydoc_port}" ]; then
+ eerror "Port not set"
+ return 1
+ fi
+
+ ebegin "Starting pydoc server on port ${pydoc_port}"
+ start-stop-daemon --start --background --make-pidfile \
+ --pidfile /var/run/@PYDOC@.pid \
+ --exec /usr/bin/@PYDOC@ -- -p "${pydoc_port}"
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping pydoc server"
+ start-stop-daemon --stop --quiet --pidfile /var/run/@PYDOC@.pid
+ eend $?
+}
diff --git a/dev-lang/python/metadata.xml b/dev-lang/python/metadata.xml
new file mode 100644
index 0000000..cae26a6
--- /dev/null
+++ b/dev-lang/python/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer type="project">
+ <email>python@gentoo.org</email>
+ <name>Python</name>
+</maintainer>
+<use>
+ <flag name="bluetooth">Build Bluetooth protocol support in socket module</flag>
+ <flag name="wininst">Install Windows executables required to create an executable installer for MS Windows.</flag>
+</use>
+</pkgmetadata>
diff --git a/dev-lang/python/python-3.9.6_p1.ebuild b/dev-lang/python/python-3.9.6_p1.ebuild
new file mode 100644
index 0000000..fcb53ec
--- /dev/null
+++ b/dev-lang/python/python-3.9.6_p1.ebuild
@@ -0,0 +1,346 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="7"
+WANT_LIBTOOL="none"
+
+inherit autotools check-reqs flag-o-matic multiprocessing pax-utils \
+ python-utils-r1 toolchain-funcs verify-sig
+
+MY_PV=${PV/_rc/rc}
+MY_P="Python-${MY_PV%_p*}"
+PYVER=$(ver_cut 1-2)
+PATCHSET="python-gentoo-patches-${MY_PV}"
+
+DESCRIPTION="An interpreted, interactive, object-oriented programming language"
+HOMEPAGE="https://www.python.org/"
+SRC_URI="https://www.python.org/ftp/python/${PV%_*}/${MY_P}.tar.xz
+ https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz
+ verify-sig? (
+ https://www.python.org/ftp/python/${PV%_*}/${MY_P}.tar.xz.asc
+ )"
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="PSF-2"
+SLOT="${PYVER}"
+KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86"
+IUSE="bluetooth build examples gdbm hardened ipv6 +ncurses +readline +sqlite +ssl test tk wininst +xml"
+RESTRICT="!test? ( test )"
+
+# Do not add a dependency on dev-lang/python to this ebuild.
+# If you need to apply a patch which requires python for bootstrapping, please
+# run the bootstrap code on your dev box and include the results in the
+# patchset. See bug 447752.
+
+RDEPEND="app-arch/bzip2:=
+ app-arch/xz-utils:=
+ dev-libs/libffi:=
+ sys-apps/util-linux:=
+ >=sys-libs/zlib-1.1.3:=
+ virtual/libcrypt:=
+ virtual/libintl
+ gdbm? ( sys-libs/gdbm:=[berkdb] )
+ ncurses? ( >=sys-libs/ncurses-5.2:= )
+ readline? ( >=sys-libs/readline-4.1:= )
+ sqlite? ( >=dev-db/sqlite-3.3.8:3= )
+ ssl? ( >=dev-libs/openssl-1.1.1:= )
+ tk? (
+ >=dev-lang/tcl-8.0:=
+ >=dev-lang/tk-8.0:=
+ dev-tcltk/blt:=
+ dev-tcltk/tix
+ )
+ xml? ( >=dev-libs/expat-2.1:= )"
+# bluetooth requires headers from bluez
+DEPEND="${RDEPEND}
+ bluetooth? ( net-wireless/bluez )
+ test? ( app-arch/xz-utils[extra-filters(+)] )"
+BDEPEND="
+ virtual/pkgconfig
+ sys-devel/autoconf-archive
+ verify-sig? ( app-crypt/openpgp-keys-python )
+ !sys-devel/gcc[libffi(-)]"
+RDEPEND+=" !build? ( app-misc/mime-types )"
+
+VERIFY_SIG_OPENPGP_KEY_PATH=${BROOT}/usr/share/openpgp-keys/python.org.asc
+
+# large file tests involve a 2.5G file being copied (duplicated)
+CHECKREQS_DISK_BUILD=5500M
+
+pkg_pretend() {
+ use test && check-reqs_pkg_pretend
+}
+
+pkg_setup() {
+ use test && check-reqs_pkg_setup
+}
+
+src_unpack() {
+ if use verify-sig; then
+ verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.asc}
+ fi
+ default
+}
+
+src_prepare() {
+ # Ensure that internal copies of expat, libffi and zlib are not used.
+ rm -fr Modules/expat || die
+ rm -fr Modules/_ctypes/libffi* || die
+ rm -fr Modules/zlib || die
+
+ rm -f "${WORKDIR}/${PATCHSET}"/0013-bpo-43998-Default-to-TLS-1.2-and-increase-cipher-sui.patch || die
+
+ local PATCHES=(
+ "${WORKDIR}/${PATCHSET}"
+ )
+
+ default
+
+ sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" \
+ setup.py || die "sed failed to replace @@GENTOO_LIBDIR@@"
+
+ # force correct number of jobs
+ # https://bugs.gentoo.org/737660
+ local jobs=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")
+ sed -i -e "s:-j0:-j${jobs}:" Makefile.pre.in || die
+ sed -i -e "/self\.parallel/s:True:${jobs}:" setup.py || die
+
+ eautoreconf
+}
+
+src_configure() {
+ local disable
+ # disable automagic bluetooth headers detection
+ use bluetooth || export ac_cv_header_bluetooth_bluetooth_h=no
+ use gdbm || disable+=" gdbm"
+ use ncurses || disable+=" _curses _curses_panel"
+ use readline || disable+=" readline"
+ use sqlite || disable+=" _sqlite3"
+ use ssl || export PYTHON_DISABLE_SSL="1"
+ use tk || disable+=" _tkinter"
+ use xml || disable+=" _elementtree pyexpat" # _elementtree uses pyexpat.
+ export PYTHON_DISABLE_MODULES="${disable}"
+
+ if ! use xml; then
+ ewarn "You have configured Python without XML support."
+ ewarn "This is NOT a recommended configuration as you"
+ ewarn "may face problems parsing any XML documents."
+ fi
+
+ if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then
+ einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}"
+ fi
+
+ if [[ "$(gcc-major-version)" -ge 4 ]]; then
+ append-flags -fwrapv
+ fi
+
+ filter-flags -malign-double
+
+ # https://bugs.gentoo.org/show_bug.cgi?id=50309
+ if is-flagq -O3; then
+ is-flagq -fstack-protector-all && replace-flags -O3 -O2
+ use hardened && replace-flags -O3 -O2
+ fi
+
+ # https://bugs.gentoo.org/700012
+ if is-flagq -flto || is-flagq '-flto=*'; then
+ append-cflags $(test-flags-CC -ffat-lto-objects)
+ fi
+
+ # Export CXX so it ends up in /usr/lib/python3.X/config/Makefile.
+ tc-export CXX
+
+ # Fix implicit declarations on cross and prefix builds. Bug #674070.
+ use ncurses && append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw
+
+ local dbmliborder
+ if use gdbm; then
+ dbmliborder+="${dbmliborder:+:}gdbm"
+ fi
+
+ local myeconfargs=(
+ # glibc-2.30 removes it; since we can't cleanly force-rebuild
+ # Python on glibc upgrade, remove it proactively to give
+ # a chance for users rebuilding python before glibc
+ ac_cv_header_stropts_h=no
+
+ --enable-shared
+ $(use_enable ipv6)
+ --infodir='${prefix}/share/info'
+ --mandir='${prefix}/share/man'
+ --with-computed-gotos
+ --with-dbmliborder="${dbmliborder}"
+ --with-libc=
+ --enable-loadable-sqlite-extensions
+ --without-ensurepip
+ --with-system-expat
+ --with-system-ffi
+ )
+
+ OPT="" econf "${myeconfargs[@]}"
+
+ if grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then
+ eerror "configure has detected that the sem_open function is broken."
+ eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777."
+ die "Broken sem_open function (bug 496328)"
+ fi
+}
+
+src_compile() {
+ # Ensure sed works as expected
+ # https://bugs.gentoo.org/594768
+ local -x LC_ALL=C
+
+ emake CPPFLAGS= CFLAGS= LDFLAGS=
+
+ # Work around bug 329499. See also bug 413751 and 457194.
+ if has_version dev-libs/libffi[pax-kernel]; then
+ pax-mark E python
+ else
+ pax-mark m python
+ fi
+}
+
+src_test() {
+ # Tests will not work when cross compiling.
+ if tc-is-cross-compiler; then
+ elog "Disabling tests due to crosscompiling."
+ return
+ fi
+
+ # Skip failing tests.
+ local skipped_tests="gdb"
+
+ for test in ${skipped_tests}; do
+ mv "${S}"/Lib/test/test_${test}.py "${T}"
+ done
+
+ # bug 660358
+ local -x COLUMNS=80
+ local -x PYTHONDONTWRITEBYTECODE=
+
+ local jobs=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")
+
+ emake test EXTRATESTOPTS="-u-network -j${jobs}" \
+ CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty
+ local result=$?
+
+ for test in ${skipped_tests}; do
+ mv "${T}/test_${test}.py" "${S}"/Lib/test
+ done
+
+ elog "The following tests have been skipped:"
+ for test in ${skipped_tests}; do
+ elog "test_${test}.py"
+ done
+
+ elog "If you would like to run them, you may:"
+ elog "cd '${EPREFIX}/usr/lib/python${PYVER}/test'"
+ elog "and run the tests separately."
+
+ if [[ ${result} -ne 0 ]]; then
+ die "emake test failed"
+ fi
+}
+
+src_install() {
+ local libdir=${ED}/usr/lib/python${PYVER}
+
+ emake DESTDIR="${D}" altinstall
+
+ # Remove static library
+ rm "${ED}"/usr/$(get_libdir)/libpython*.a || die
+
+ sed \
+ -e "s/\(CONFIGURE_LDFLAGS=\).*/\1/" \
+ -e "s/\(PY_LDFLAGS=\).*/\1/" \
+ -i "${libdir}/config-${PYVER}"*/Makefile || die "sed failed"
+
+ # Fix collisions between different slots of Python.
+ rm "${ED}/usr/$(get_libdir)/libpython3.so" || die
+
+ # Cheap hack to get version with ABIFLAGS
+ local abiver=$(cd "${ED}/usr/include"; echo python*)
+ if [[ ${abiver} != python${PYVER} ]]; then
+ # Replace python3.X with a symlink to python3.Xm
+ rm "${ED}/usr/bin/python${PYVER}" || die
+ dosym "${abiver}" "/usr/bin/python${PYVER}"
+ # Create python3.X-config symlink
+ dosym "${abiver}-config" "/usr/bin/python${PYVER}-config"
+ # Create python-3.5m.pc symlink
+ dosym "python-${PYVER}.pc" "/usr/$(get_libdir)/pkgconfig/${abiver/${PYVER}/-${PYVER}}.pc"
+ fi
+
+ # python seems to get rebuilt in src_install (bug 569908)
+ # Work around it for now.
+ if has_version dev-libs/libffi[pax-kernel]; then
+ pax-mark E "${ED}/usr/bin/${abiver}"
+ else
+ pax-mark m "${ED}/usr/bin/${abiver}"
+ fi
+
+ use sqlite || rm -r "${libdir}/"{sqlite3,test/test_sqlite*} || die
+ use tk || rm -r "${ED}/usr/bin/idle${PYVER}" "${libdir}/"{idlelib,tkinter,test/test_tk*} || die
+
+ dodoc Misc/{ACKS,HISTORY,NEWS}
+
+ if use examples; then
+ docinto examples
+ find Tools -name __pycache__ -exec rm -fr {} + || die
+ dodoc -r Tools
+ fi
+ insinto /usr/share/gdb/auto-load/usr/$(get_libdir) #443510
+ local libname=$(printf 'e:\n\t@echo $(INSTSONAME)\ninclude Makefile\n' | \
+ emake --no-print-directory -s -f - 2>/dev/null)
+ newins "${S}"/Tools/gdb/libpython.py "${libname}"-gdb.py
+
+ newconfd "${FILESDIR}/pydoc.conf" pydoc-${PYVER}
+ newinitd "${FILESDIR}/pydoc.init" pydoc-${PYVER}
+ sed \
+ -e "s:@PYDOC_PORT_VARIABLE@:PYDOC${PYVER/./_}_PORT:" \
+ -e "s:@PYDOC@:pydoc${PYVER}:" \
+ -i "${ED}/etc/conf.d/pydoc-${PYVER}" \
+ "${ED}/etc/init.d/pydoc-${PYVER}" || die "sed failed"
+
+ local -x EPYTHON=python${PYVER}
+ # if not using a cross-compiler, use the fresh binary
+ if ! tc-is-cross-compiler; then
+ local -x PYTHON=./python
+ local -x LD_LIBRARY_PATH=${LD_LIBRARY_PATH+${LD_LIBRARY_PATH}:}${PWD}
+ else
+ local -x PYTHON=${EPREFIX}/usr/bin/${EPYTHON}
+ fi
+
+ echo "EPYTHON='${EPYTHON}'" > epython.py || die
+ python_domodule epython.py
+
+ # python-exec wrapping support
+ local pymajor=${PYVER%.*}
+ local scriptdir=${D}$(python_get_scriptdir)
+ mkdir -p "${scriptdir}" || die
+ # python and pythonX
+ ln -s "../../../bin/${abiver}" \
+ "${scriptdir}/python${pymajor}" || die
+ ln -s "python${pymajor}" "${scriptdir}/python" || die
+ # python-config and pythonX-config
+ # note: we need to create a wrapper rather than symlinking it due
+ # to some random dirname(argv[0]) magic performed by python-config
+ cat > "${scriptdir}/python${pymajor}-config" <<-EOF || die
+ #!/bin/sh
+ exec "${abiver}-config" "\${@}"
+ EOF
+ chmod +x "${scriptdir}/python${pymajor}-config" || die
+ ln -s "python${pymajor}-config" \
+ "${scriptdir}/python-config" || die
+ # 2to3, pydoc
+ ln -s "../../../bin/2to3-${PYVER}" \
+ "${scriptdir}/2to3" || die
+ ln -s "../../../bin/pydoc${PYVER}" \
+ "${scriptdir}/pydoc" || die
+ # idle
+ if use tk; then
+ ln -s "../../../bin/idle${PYVER}" \
+ "${scriptdir}/idle" || die
+ fi
+}
diff --git a/dev-lang/rust/Manifest b/dev-lang/rust/Manifest
index 874d227..800417f 100644
--- a/dev-lang/rust/Manifest
+++ b/dev-lang/rust/Manifest
@@ -1,16 +1,68 @@
-DIST rust-1.50.0-aarch64-unknown-linux-gnu.tar.xz 203382140 BLAKE2B c9547661356bfb2eb328992ecbfd488114bc68c00e551cbbeb925fd1650b5a4c0ab33145c6e994184766ef5046cc2881eb0009ac9d9448208cf896317bf47c63 SHA512 e6b409afc8e85a88ecb9ff439a6eb9dcb93d5553e81549fb4f332b9e2d946dce0424319c5092e60aab9435944af70d0117d15c12d54d2059ef73c1fdf36d8273
-DIST rust-1.50.0-aarch64-unknown-linux-musl.tar.xz 204473556 BLAKE2B b47fe60f8e558a673b1c5fa47a0ebe9f73b09012b5df718baf0683536fa94d840cf0006830f6f4c36740d5e598b1c67b9d0df69a4e8d698520f05f5644cc3b69 SHA512 6a15af6a30c59325c21587689e3f99ca20a9a8ee0b19866569f2f7405d2b176ed88903776799e1ebcabbfc665b5e0f3c7878f841db6c5a75eceda57ace18185a
-DIST rust-1.50.0-arm-unknown-linux-gnueabi.tar.xz 193322872 BLAKE2B 2654e604a609f287b2722bbcac325461cc8a84d47e449470da1925f3d21a042d665e55d07f4f268e37630184998ed330b2c2e315485ebeee960c63555550c9cd SHA512 eb3aefa4ff7d2b832a847b6d4fd4427d88885cc72c3a9f97837e2516d202af39da7d523de2d1578fde20aeb76e843a84c37b4ba33f85668caa0b28d63a20968a
-DIST rust-1.50.0-arm-unknown-linux-gnueabihf.tar.xz 191287452 BLAKE2B 34958b97d034f6c643036c61d64e25aaedf1c93046ca039e39c9083a54d030d715d17a3174bd69bdad3f9bdb8b89c9b92f977b7d3c29da4eb28efe933402e86b SHA512 7b1f61fd53fbb361fc6b3ee603917f899f3cfc8062df3cadb0751e8014e1e2633f32ba198912e8bca34102543c427f2607e861b724143d60fd1f9682578be70d
-DIST rust-1.50.0-armv7-unknown-linux-gnueabihf.tar.xz 194656336 BLAKE2B d02323d9f47d380f4a06e8273b02ac3c9091257400a59b3efd1140ef22aa3bcbb71b4c5e70aaeb2cd118839a84b3513d9c85ff8020b5a1f6e68791ae5d81b8f3 SHA512 c3314436afc4ebed697bf6828b9eacbc12f96838b156241331a3b71e99e1438f8ad82e701615ea302ebfc459464479442fe653232bd319cf824027362438970d
-DIST rust-1.50.0-i686-unknown-linux-gnu.tar.xz 222946404 BLAKE2B 38801f395ab8f5aeee1cb709cd7fda6b6573476f9d763931086c76b0064ec0d5dff03415bc2f6f13419fb1a326cb44a0086dd42db99d1e14d520b33c6382e340 SHA512 bff117733d11731f56e8659265d0b47327e2af3f7c46aca494747a92b4f634dd35fa9731a1be59dd69821042f88bded253e1d7b5693ca237c9a167408ca7f898
-DIST rust-1.50.0-mips-unknown-linux-gnu.tar.xz 150524936 BLAKE2B 950424444394dd55fd81c6b850798552166d78588fcc2c4dfdd4bbc900600957eed06c4a03c83713f2f820252949f57651d69e4d2a2b78d7de42fd7e0c0404f4 SHA512 849d70b5f4b4364070c5f708e466a86afead7d82d7fde4d1ef7c8800bc1ebcafdd4e1bc69f059e393fd8fce104f2d97201f09ecb3b894676e6ff6db9c949c897
-DIST rust-1.50.0-mips64-unknown-linux-gnuabi64.tar.xz 159792596 BLAKE2B a361c13c036d7cc964ace781c34ed815946c976071d38d361110856e889174e2629ad9602dde5f6d5a704044cab670687b67643470b199ee18e95944dbccba16 SHA512 d85c2abff3249ccca63d14abfa85f5320e5d227b17faf7b4b47a5254a4b8ee3a4cf3ccb84e31f13dae7780176411e2a5d04894e2422ae5921f547cc5e07fd1b9
-DIST rust-1.50.0-mipsel-unknown-linux-gnu.tar.xz 156597932 BLAKE2B 57bf7d105f6f9d3a50904466439e88e32c99b5fd85f220ef48e82fe91b2c05c28d6783233dd3e9ba7b49e79eeeb358cd1df60369bbd927a9a867a0bdaed471c7 SHA512 019df8180520bc4fd29a258017e2477a59a30338d921f185871f64aa81d8b5499e88676d09d5887f9c6726824ae4bf50f8a9e6fae1f03e9e728f0f08ab0271c4
-DIST rust-1.50.0-powerpc-unknown-linux-gnu.tar.xz 168133824 BLAKE2B d2ce955ae8975d667c854fc1f8dab5de8b8a3ecf08e52dab57f40f5a036138b6006554f053616c7d369e054f9ba3dbc502b2fa47ff0463e077f831f75b831c4f SHA512 1411063401432b2aed58f53c7e9c87d70177cb7745753378df052676a6b0ee19bf7e56298584356b77707758ad531e5d4d59140cd6e686bd7cee53488553214a
-DIST rust-1.50.0-powerpc64-unknown-linux-gnu.tar.xz 180157804 BLAKE2B 8d3c38cdea4901f38665e66f880301c409d0de4ade5fd931c834680ee21d014fe6efb6928a417bcc747ac10ceeabccf287c0a29c009525e2d2fec92db60bad01 SHA512 d60fa7d029c52403c08722b4cdda8ebcfbbf23f57770db786007b21c8e0590577f58823b8e0b89adb38c351102b6aba0c02afa5c3582eecec5165bccb50b4944
-DIST rust-1.50.0-powerpc64le-unknown-linux-gnu.tar.xz 189754060 BLAKE2B 8579349a7d916ee701f29bd66d08a76d8433ad86020571e5484edbc8d9a984088e6942e31b18179698a199ade2fcee3b1b9aed1cc0d5a3b996e763ef2b8e0b33 SHA512 e3dc75ba7dff3a358042542afa398ec8771a23f5f699454a876ddc1f3583d399fe5350696a5da62d71ca97ea882c9ae1fcb60dc2e9fdf76bc7a9af892096371e
-DIST rust-1.50.0-s390x-unknown-linux-gnu.tar.xz 190157972 BLAKE2B 4fe8ec73293815ade006e2c383d1a6d541d87d4ebba76b3ace65793f7debfd54d3dc07cac89c43e41947f8d0b69bd0f213dbdca8173f610ca2da03bccdd55ddd SHA512 733513af2a7ef7a782a5ebfbd080071194ac47084022b54b4830de84facef9986d65525f8666a4c226e9878e43b00ebced26d6077e5fb1b7f775ac8f290fba97
-DIST rust-1.50.0-x86_64-unknown-linux-gnu.tar.xz 152873328 BLAKE2B b0bb91487186f13a7a1a49edeac28bc347c300911f574aba0e70c37e05b688176f5941c97cc4ad0ceddf32f2fbc0bdda6f8a1fdfa482aeb9682ea1fade28206e SHA512 ab49e3ecb14e4af8e48548845184e9ab3d564ab2341c1e5462b7847347c79d13324211b860988d219ccb646143bf142fb14c3ab03663b06cfe9ca275128d9fa0
-DIST rust-1.50.0-x86_64-unknown-linux-musl.tar.xz 242743828 BLAKE2B f20feb709cc07ad43f69e30a7fcefa81b5de94ee4c90cbce2616fcda8af2591a27cfa0770b71138762e21f6e07263bf3c2548bcce1b707831ab544de12ab746a SHA512 68403236e213a4f2c156b36a03ca4dd7866fdb69e87170efc76426d937dcf5cf2c5578aaf73483131b1ce7750302f9d02de1bcbc52e1283b08220d5b22be82ca
-DIST rustc-1.51.0-src.tar.xz 109596164 BLAKE2B c1ac89655adfe7db8005476d42c748cf1896f52888141229fd6dda43855dbb08c21c8e1f11398d2f1f9dd5f8d508d9158a3bda4f1b282d1b184ea4c701100837 SHA512 ded91468ddf3e6627f00e7ec3d44452aa24eb727a183c0de9d90264f593119a54300d56b09251a88260db480b48554181ae195c538996a32d68d48b6587ac0df
+DIST rust-1.51.0-aarch64-unknown-linux-gnu.tar.xz 208849064 BLAKE2B 1570536f63237ce04222f78c8c1d0592b3d0bacb62e2a1e2b87f9cd74c8d304837f9259c154e6ddfc5d0fc36c1d69aba34cb27d41346d4e7400ad1950ff19f8f SHA512 2af31290e1065a4611f34e6cc8c62ee494c222becfb21ec6707059c119069b0adf0eec23e56bad4a3cc8690b2556309ec58cbd9003a959983689cc46c7c63361
+DIST rust-1.51.0-aarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B cc2cef574740ea5eb632235dca2889a7c6a6941169ac011d3a888cdefb8e5a5af5bb9ade93207ccb6adc82eb6ae1b5ed605954cea2561163c538fcbbcdb647f8 SHA512 43abb6e19c1ca905cb2d047503f4473584e06b8daecff3b6e45ac93dadc2c7f37118e3b66124180a9951b2f5eedf212174a37c661a7775600bd200eb089801f9
+DIST rust-1.51.0-aarch64-unknown-linux-musl.tar.xz 209607568 BLAKE2B 8a8d677fac5aa68be8b689bd999894f0b51910d50d86d70db4cc9b60695703dd74b68578b72d9d410d2d163aebd3fbab0993ebf79486a103ef588cb849dc2038 SHA512 d7ca480f4e07f88a49b475d2fcd132126defff21c26a665d1b444b97ce5e44404f9106bb844a5e35d4933a51c2d8a5aabc8ee42a2515c02a559c81937920be4d
+DIST rust-1.51.0-aarch64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 0759b58a1647b0c0a29fc295edb31e793a0688d6a4b6eb8febe4364421f53cd1f4c0555abf7c8d4fb25bd7c15c9aeaa8d520390d8d3b61c213a591ccee7b9887 SHA512 bc2135b94f9c4e7b2616d886e84a268f52404abed2b827bdca5ab8f98071801e171234f18aa27a367b5dbd0df0e207b0aac8a30be59fff807ff70f21279614e2
+DIST rust-1.51.0-arm-unknown-linux-gnueabi.tar.xz 194362256 BLAKE2B 20c1559d3b1f32c9ca6f5e9740dff0d9fd859be33ca58d59733fff1566ed0b75dd398facbcd15c8d7c862bee945198b0235973d5f683fd78f82cca52429b269c SHA512 fadb5084152b6fa148c1d584c8ba766201012c0a70bdf273f5d4b89b249d7f520997b12809a0db68c9d1d76283fee892f83b6ef687cbb025c08960ffff7e5eea
+DIST rust-1.51.0-arm-unknown-linux-gnueabi.tar.xz.asc 801 BLAKE2B 546fad9428e7261ef78e92d6542ebcd2b1b11c54bb4dc1fbcb7ca622551e6b4fc443f16305f9f37572ff2f24e5dfab491fadf3a128e009c77aa0218b271bbe5e SHA512 580954dde6e5a89a9a16d0b93570275e81f488f0a77952cd4e3878894f9865f2a128bac2aaf0567ffc9e7cf9809808088a819bf7b0e54d8fa6224abe677d1732
+DIST rust-1.51.0-arm-unknown-linux-gnueabihf.tar.xz 193918308 BLAKE2B 6799652205422d96c95949a4afa8a321a8a4e0cd42543f321898fdba5b27bb645f9eeb50edb63a43902cc74026a786c12a22af67313bc6ac0843b1e638077d64 SHA512 cd0dba1ebdff9692aef0026d94da38ba7856b64004404b75d0d385b8f9f53eed1ddd0e900e49cda60fc5190fe305d96f6f00d0053f4409479ab991fafa90338c
+DIST rust-1.51.0-arm-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 41cad50cdebc0cb4e59f6c914b30b071dd7a70b6278c03a7349eb51a9ec6976fbaeacaea96f13e8ad91a283a3de4f548cf8e352179359f5697520813bc47e274 SHA512 d74a183dba390ea053ee746575788481e3970572e61b7b55acff521c8f4a9da5a3f4e3feff5c3b26162acdc00eed1c4240a4fbdcac3fa117455ac49d8ce62985
+DIST rust-1.51.0-armv7-unknown-linux-gnueabihf.tar.xz 197028040 BLAKE2B 801526d0fc9cdfc25a63227afdfc1bf9e0e6fa0b80f6306d86b68ca16adf4996b755b6ade1a4e898bfaf25565b5b49a358a9ed364bfe5d67c308744814a843de SHA512 c602dcc7fd1343b310f5e3074bf63f2428ca7c15cdce8999fa4655de5a4bda5a13255fc12bee3d0632f6cb93220a883fb36d24061dca6795d23afa9f8fdae57f
+DIST rust-1.51.0-armv7-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B dd94fb91fb6dba9788b178ea74b73c0df78f496d6f57382969836ade9aacda1696f363c4cef8126426040620ef934a2f2681d89d5e3a703d9114d8d152abb6f8 SHA512 40a3f61341ec996650b6e4e8552007b822b7990b2154483a7d7a7dcbae4eb2913d4ffb5319037256ff5931ee01320d1c3ce307aa7c9fd90a782646de4edcd2e9
+DIST rust-1.51.0-i686-unknown-linux-gnu.tar.xz 213348860 BLAKE2B bd6c1d5ce9f20b961e3db8c69b022402acbdf06029e0802863292bcac89b0f88e6e6d02f625be52e8753d772aad8ac01125ff6832072b5d3d41a9ec7bf5c6a6f SHA512 05d08e44827dcba8197667deb9a7f3584465085ce1b79a38deb138849a07c716646a70f1cc2cee02b41c45ec7c3a3b7800a3fae62ebe04d6f72f017a5d722bab
+DIST rust-1.51.0-i686-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B c09c5ce8df8834758cf8049872142104023af24f31a2efc97ee201e6b2db56c1b7dd1baccd608ca1f3de416efd162408a01170fff9b7070cac80df32fa30012d SHA512 6aad34b773cfe0ec30f80dacb7482247515ed1e7025a322d22ce7a2b1a6dc49929f71b9c3a6bd05622b70dd8f37fde5cc809ac32c4724b98098630158dddcfdf
+DIST rust-1.51.0-mips-unknown-linux-gnu.tar.xz 155944968 BLAKE2B ab9ad78f147b439beec9e92e643cc48814666c5e8fa244981d0919237844006aa2879a4058145d0bdafe89793402e65982d9fd3f0c6253f6a1805bf3381b4caf SHA512 378cfacfc66f1e8a4aeeb3715db9d3cefb4582db8a3b8fc62f05ac50a16db302b250c1696605c17cebe75923010b361b3a9883f7567a26cdcd60fc8379d2d7b3
+DIST rust-1.51.0-mips-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B d072b66f210244c3cb534a040679ee5c5433703fe309a05565a91b4cc8fd50b0e09320067dc48a7255aa0561ca6029fcab3ef4b782f40097a9646c5c77727344 SHA512 c7f1789e577c89397c59e288d2351fdb08bb9626df9d2a4d15c13a1474b67f8474be27d9f8a13fb55c53f9a17e47825b84473f487fa3866a8e30e4141b26aaa6
+DIST rust-1.51.0-mips64-unknown-linux-gnuabi64.tar.xz 161859704 BLAKE2B a60484b7d009633763f10be8affc33715992f6eee5643d147078840675c900be0ff7f9bd985680836dc7d8467d7d118863cb5bed0f85bb135f0e352318946f32 SHA512 e99437a1b79e8821f6c1eaea92a8c5348e6fb4aa1a4fecbfecc950bf71fd7cd58712d336a67e00f95554bb01565f1daa1221699e142e9e673d8ce2cbb8910008
+DIST rust-1.51.0-mips64-unknown-linux-gnuabi64.tar.xz.asc 801 BLAKE2B 85aca04845291448d9ec9c5b37f556e890155574982496d8967829b56b3c4caab1aa40c71e007392a05337ca917a70aa107007cf5c73c8eb8fa95bbcb6f7debf SHA512 4ebd8e0bad5c66a12bfb606f6b28aa63430af5e6344ce91d2be958f1f479fad0d5af6a53006999a321cacfea50fc623629f633f95ff747790c2702aa8dfe9c76
+DIST rust-1.51.0-mipsel-unknown-linux-gnu.tar.xz 159164156 BLAKE2B ccccc1e8abf529f9f023cd793dd78c9bfece359a770e03cfae808ac017ae0171ca0dbabb870c5ad57670a9ec562c393d2ffef3490e46423420be6a9a20cc8937 SHA512 31aecea3016e30dd610b610b86ec23f9832061abfbc55c7e43d942d4b0e8e521aecb37306bdb4a810ddcfc4e9d9a6cf057d6802d053ce9abf1cad401b6440d67
+DIST rust-1.51.0-mipsel-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B e61e17518d7d326f188b84855b771c7bc2d7f23347dfadaf0783b4fcbb7dfd233ed2262c6ffa75b55baee7e83e94b5c47d24b937e540c6a2892b20d320fcefbb SHA512 e0ffb031f600a58a2f7a76b1b26f5453e9de4d4edf6652d75d0cdd92e4495844601d56b521482e172c72b7463ab667ea65e610baa4f68c5f59333dd8f3cf1155
+DIST rust-1.51.0-powerpc-unknown-linux-gnu.tar.xz 167534676 BLAKE2B 5c74ebaf5d5e736bbfb8d963faff6d0fa5725017c738c4a5adf4b4e8c812ff8234b9e03e1a6ba2b6ab718469541e8c398e095ae22f155ccf9290e50ae0595a52 SHA512 9984e464a4e7d18042a8a2d99d26c4436a0ae2b2d281d5c8a42aedb0b78ab5e72f2392ea96e84b2f5892d772d28ee2feb89636f8d1a060a30098faa4e7f259eb
+DIST rust-1.51.0-powerpc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B c8ee6ea39b19cb160527145aeb32206eef6665df1e2c3ce690a136ead20b8114a5806b209a926da7608ffce94e6d65910b7a282cb353345a83a8e2b589df489f SHA512 886c62e4592568ad7b966f933641236ce59a037b65a00e0bfab6d2d6bb62cf994cdd8e392dd2f51b9c958e4e3c0c3763b9dec6be5a4faf27aac5d8d0a225abe2
+DIST rust-1.51.0-powerpc64-unknown-linux-gnu.tar.xz 182726600 BLAKE2B d9051eea2d9486b6b4d858a3f6730210de5aac958853de82b3f822b3e0decd1b8a9a9b371b250ffde9ac19be4ccbe09e58c51a78b7e1fb2dd48e61c8a902e5b5 SHA512 4c1864a81d4c32bd95e0381454beae2a1d5b4cb47196821e64fc261133acfa2fa1e514dd6cdb68551559c4da2a2483edf5c6c14246adbea85c3027f88d401e06
+DIST rust-1.51.0-powerpc64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B e1fe8c5764cb11f722893c7efcfb76d5f17ee80a104ede360fedbc8cd1e2996246e0a770959398a524ae55bdfb075dedb2c2583816bd3de28034dddbf248a54c SHA512 3b7e3f15f5a2a4876175a26d7b4332d4a6847a565d5de4c2cb67c52cf26308215286777ea9d89366543ddd1ce353d6a920153549b6641ffeae8e9954470aecfc
+DIST rust-1.51.0-powerpc64le-unknown-linux-gnu.tar.xz 192084372 BLAKE2B d127c1827956c7594da5b69346168504b22726e176f03172b599e0a0fae2400e273684090f1d0fd05c33f193b3918c98ccd64c3647b0577b51431c3409083b2f SHA512 b53a741d1d75637fb31ddb0364e1f91427c3818ca145f819b906d13c32c638ae77fbaa567a6220b6bf69f38cc00d2b95615778a86f4acadd63efe2e62b1b01ef
+DIST rust-1.51.0-powerpc64le-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B f79f8e1ad8cb0dbc6e1cb45fab2bd19a03d1939518529841155e7a00d9a42e3eb2539ae424c68af7140399a2b37c6ff5a00c55f0467ce4acf6fd7b1ddf525a63 SHA512 785ab118197d53b5f4512cdb07e6277c9ff58b9e53610dcce1c9f928cac8a20b1fbaaa7acad8cbe4370a3fe6dda5f726e8021e8987688a9ec242f73ed8d12adb
+DIST rust-1.51.0-riscv64gc-unknown-linux-gnu.tar.xz 179131092 BLAKE2B 1d8cc335cfc434871e1916793974eabd14fa96f49ee9b0f9ae004326c405dbadccd0249ff28dddfecb9921cae4e886f4114a8221e09fd7944f2d2e96bdb12bd2 SHA512 7fb76c3ddc952b43320bf3497d890ff79aa5634df22f38958835cd1d4044bef44257af22d7473675afb42a7c2fc9ac713f210d6bfe1e61ed56d5265f58add540
+DIST rust-1.51.0-riscv64gc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B b0cbee67d6bc37ccdcdf2c563667f3b3e4ec7377e5c86b627cfbbd7385425508778bd67887f46067476ffbf3b5f2719d6b5490d2fe5261db5e7f4da4bbc94be1 SHA512 fdf1ed20eec719435a557be8e6bf6766b0b56e27fa49c65b2c412875a1c76919ff6d6a4d8d14bafa8aa96eb42deca65869db6ca5d2b61a84a0af07dbeb1e9ae9
+DIST rust-1.51.0-s390x-unknown-linux-gnu.tar.xz 191632144 BLAKE2B d1690825f59e8ed1ed4855556ff36c05efbc941097744e31fd9207309087d53880d418f737aa0cb9371b973c9c3d56f05ed03533df04402242194ef13b8d608d SHA512 a72ad31c6306f939c4f963133ddc0b3fabc9e506bdff5e318f5275658b7271a675a51d208d306d94fb01739cbcf0f62f018fc7490ca6db54b301852202749d16
+DIST rust-1.51.0-s390x-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 355e753ddca453ca36a8c1e4f361e9655bdb54f856a642be3d4024772266ed1771a2673ab1026c64bbf7ac8d1fc30fb1924a939cc3ea290e98b137edb48bbf6a SHA512 89bf145b8e620eac99b0fe4a79ee205a04550c664bba1e22a7611ef37736cca3cb911ac89659126e0c6fa60e4dbfdf0dd54a8693e496d4c37e4f7d3f518e2740
+DIST rust-1.51.0-x86_64-unknown-linux-gnu.tar.xz 147543532 BLAKE2B 44ac97f6b650e65de257b362121091176e02fac60aa534ec83ddbc4e16eb32f7a4a7999cc28eac446f5790572552fee5c2589350cb6d159a946d90007d85c7db SHA512 9f95045119bcd5ef7be54f5b5bdc9ebc6bd6c48437d90762a1cfbc03281882f81087e1877eecae9573ba5e7cd7c11ef5fed979034c57f45b6547cbfeb11eef6d
+DIST rust-1.51.0-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 033c41c165cf50a63479d1352a33abe94a63d9730f02016d09bf2e8a8804587d4fc802c047e7417e0befca2d5df5ca8c79a714ec1c1fb389240b6e8931fb9e9b SHA512 e314a7db9aaff445b67f828bf9a98705032071928e2102524c0c720a3b8feb292b8c6766838b92da2d213e93bf53fb780fc856b0370238fbb7e20431d2de6d5c
+DIST rust-1.51.0-x86_64-unknown-linux-musl.tar.xz 233773068 BLAKE2B cc9de90b967cc81005ce5c897d3fd6dc4e3880be96ac82c41382d19a8aca0244845830db7a33eaef85b6bdef0c00ae02c0390db932fa49f76e362af2c68edb56 SHA512 d8df3c4c3de435629986e21bc6b31edfb73cba394e76cf87ee98d2936f73aef60c988d020da7ec1188f6448eacad9d5aefed073f4f88ffa2eaac54ac7e3cb3f7
+DIST rust-1.51.0-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 2e2c20fe99b33e5361b1945f54b77d5e8acad34d1be9cadfd1971b2882e38bc4403a5a67769a74fdd7ab21434784f03084780ef827e26318168bf5d531f9e9bd SHA512 42392e8283a28d58d4874dbf97caa0377f27c6599c272c715fcdefee48551004d491f0509f2894f5696a2820f11dbb333e3bf878cbdf24b0c58add4a493acecc
+DIST rust-1.52.0-aarch64-unknown-linux-gnu.tar.xz 215549836 BLAKE2B d4179cc67772cd6b92085d68f4bb9de006fca7d8470a56766ac5d94a0379ae675d18c5275ec2ed1eab71274ce4f416a77f3ce74d849a1d4118b5a7ddec205a3c SHA512 7a26e14be6b27c7084c7c85b312341ab991c2df91ea53128f14707a4c725dd03ba7df30b9e9fcef39a509ab4f5d5feb028b99d6d9ffcc059996ed29b83eb90b9
+DIST rust-1.52.0-aarch64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B e66afc44186f48548dffcd7c6d7d92b4fbecea48bf3f7970d211844b5401a2556a138993517d049265109146a48856c7106616100ed63a5fa3f263d7023af6b6 SHA512 75ff89cd071641b01f4d483aca5997f6b3857d477b6fb40e6fdf11ff2ecdca74618cc59a9f0d1d2f942bde2d9a8738ac6f821d21d79f3ed85830ef530636a607
+DIST rust-1.52.0-aarch64-unknown-linux-musl.tar.xz 214159336 BLAKE2B 1b2afb80df6bf75d516127f07d57d12d876f12879c1d87059ab1c40ee1325ddb4e0c22f2fa185dab72f7633bce7d2ff5ed92ce4e88d4e118ac80630a061ec0c4 SHA512 9461c7272ac3e2c854e8e5f24cd57e5d648a3f923a9413eebd9f45a143d27378bc09c4d30ee7a1773a56baa31066dcc9f955b0805ce9f47d81b52e47a3a3e369
+DIST rust-1.52.0-aarch64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 71e8d615e921a70341b543992eef062186f72169a9763562114af8afd8ab3469a104677fe103a04a03881ec308b25fff412ba4eaac6e4ff02f29527ddefce8b8 SHA512 1033d23a2c05ec207c7fe032f5d9986d5a1d839ca54b0ea57a7a35c8c37512e9732835f2f280f436af326e948da913492f84cd6d0dfb9c397a095167f31e4c04
+DIST rust-1.52.0-arm-unknown-linux-gnueabi.tar.xz 195145936 BLAKE2B 3c2e1f947164a18b0a0e642775560c23407eb9f79ce426b6f191eab3204b78288aa404c9f5d388a0831ff124a92c4bad6927edc252ec82f0fed194b361c75256 SHA512 20fd1d03f3c9a935d0fd282fc7ea5808165b45865044ba8a8b09ee07d1410ad80401f800d1c70dab9e42b496deb58def88d8dd10de551e2a086e9cdede06385a
+DIST rust-1.52.0-arm-unknown-linux-gnueabi.tar.xz.asc 801 BLAKE2B d73e4062015a30339dc0210afaa6779912051968b174a21f09e518ecc74a763d01fee8a813e08dbd7103583d7496b76248755e2c382e8e645c0524982a7bc0bb SHA512 e707a9a1960db80602d6b5d827e81fd828cca30807bdf78e7adf9378526450c5ec87d4068b3c395142fc532cf7dee7782a5f077d8ef5051c79f2b86f8631c21b
+DIST rust-1.52.0-arm-unknown-linux-gnueabihf.tar.xz 195367332 BLAKE2B 72bfb4303f3e3077958cea7050dd4100619eb14fb164d33c6ce696d3b6ddbb2099cc2850dd17b961dfb40cb1b5b20ee8158f87e0fe76426e728b2dd7752870bc SHA512 6b2f4d907ebc53983cadce97a10036a6f7e333aea1e301067fccbc38dfcc6a49ad5770cb366bc2df82aee148d88edc122930355409f0926273f85b72bf4b261f
+DIST rust-1.52.0-arm-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B 21a835f06fb41677db5cf1a06244b2ea3caa8462330c2599e6a77d4c82054f8bd717ba790cdf06f280f62adaeb839cb1ff7cc6dbce76fac75ca4791f1d72644d SHA512 ff46a6b6b086bc785faeeaa5db2de0c79d1898651f2113a726a08d81136b687e13eb03bb635c6c43cbeae2ec897999d2867a9c925436131871a61d7f93a5bad2
+DIST rust-1.52.0-armv7-unknown-linux-gnueabihf.tar.xz 201614124 BLAKE2B 780358a279a80aac343ed737068faea9ddc9ace4a52694a32a0df504e6864fb2da30474ead9e3419370a7c7d6465ffd957fae475d852e504390222a939294270 SHA512 100b9abdc3dc7852f880eea205056a7a6b78af39fc3b7019ebcac712d5eee3c053f0508a6dc1f9da13074ca476e9fb33514bb83098d3b41964e878c0fc6498d4
+DIST rust-1.52.0-armv7-unknown-linux-gnueabihf.tar.xz.asc 801 BLAKE2B e93e9ff5068ac52bb85c42c64b528f60fac755e022b9be7680e203ad3acdee44e8cdfa00f06f4096b17106d2fe3287061c66fd411e2e6449301b0c4befd81e98 SHA512 7c8e6cc76b4d22a4b7fdd88e73e5f99fec9bb9d9cd86293a4813d25a11739e4f104f3c8c5a1113240909757b893fd88ef34a6fc7139a6d37923d241ac60c01cf
+DIST rust-1.52.0-i686-unknown-linux-gnu.tar.xz 214798144 BLAKE2B dae7a81f1bce6f24d9766621d751b090c4a560af83686f19ae4d309da5fc8f59f1a46caea03bad593018a07ff44bd078ac5e775edf4b92ad178f641a5a3f7626 SHA512 10fcf9e891ae8bc6e83b5e71c83b34773c18b024c9e9b580cfae714b4e135d313ba5434fc28c2dffa3db2e50669b3acd07e6874de0cfab89b343db92bfbdff80
+DIST rust-1.52.0-i686-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 699ca61fbe0f9763b5e3040f0d2854e34d6650f55dae2e864b88aa1d0402551a372970a3b6f4758e03619dba1201fb288c49a255eb1e7ea7ea0cb7668dde9604 SHA512 fc38e23183f104ed092072666bce6e40ab44822568ea69f31d5131508c53532a5db0c7148434605df6ee216559eb5927fac1ac32c17b3a3ebc336953f98a3ae6
+DIST rust-1.52.0-mips-unknown-linux-gnu.tar.xz 155487344 BLAKE2B 8f4d1dd47830f9d691e564ccab1a265e4f2622edc93f942d7db222b06c5f855187c855823bf0f38d7c534158905ee9eab6e5455900832891fd34c2b5649f4dc3 SHA512 9395eba6b7c8ddb5a35ff6e7bcc43eddc7fd2c7604a508a30aa63c4648bc3c9fee228cfd54cef6a2604cc8b695178c9d04cd8d05664279ef0bbca886e0d74a6b
+DIST rust-1.52.0-mips-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 8d226ab1e1f85620463e4cb1eaf2d363906d3eb5d7bed82e24b4f84c8969c649fc899b0dc446f4160ebc273850f158322cae1553ad499dfeee4ff34eaf161e52 SHA512 ed26f86680332d82aeb3dc8592f634a56b2269f5c4fbc75223b05cbd3775d6d8b4421dbddce96cd1fbf1f84cdd585f2b779c6a3f11639c101245bfe76a0a0cfa
+DIST rust-1.52.0-mips64-unknown-linux-gnuabi64.tar.xz 165086396 BLAKE2B 1241fce74a0583719d5e40cd48239de5fa7e121f87baf0f1e4f18106a69a3e6c6991754cf7c62492f850919ed02fd371c9e7360972d6ab4b556c243c72bcda89 SHA512 6ebda7432d5fd0d5a99c684e2dab2db0446d5d4ba1000696c14c26f5288c763dc0743af197c6fe809e2e6f90d90b12d84714ff64f195ca415760d9110c6f8b0a
+DIST rust-1.52.0-mips64-unknown-linux-gnuabi64.tar.xz.asc 801 BLAKE2B 58ebdce3798c0a95a08394bd8398dce5e145848fc2a97233c69befd9b541af526324d777dec4909b7586709bdf6af8ec69cae980032dc86c650047dff057e823 SHA512 34a16221fa0e09acf88e67f7425ed6154caa8b9a1dd2eafe4cc8167204bb57cfc96824047e4e070b5e91109c45376a8873d873b329ed74df43b279f29768fa8a
+DIST rust-1.52.0-mipsel-unknown-linux-gnu.tar.xz 158692144 BLAKE2B 331afebbbc7d5c0fa5eaf182e8642f7b38c583418469a7e2b282378556db3813445b552ea89a596df56030a119e1deda1e1bbdc1983f5dacd3115e9de7c860c5 SHA512 0149304d963eeffbbb929eb6f1f24a3f1e5d43c627252bcca8df86fe894858d5d399eb5f8ddabbaf8c2768f93ee05fbaa82b1552c76dbb319614f0e93b21558e
+DIST rust-1.52.0-mipsel-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B a4b835e14bcd9f1c24cb66dd1daf4777d25681ab175b377dba37ca4bc51e0bf360df4fb6feb3e85e0c05f79be31e51d180ffea30bc0cd96f69ca455cc4b2238d SHA512 c9b33e4ca113343b08e16410b509aca98c08338e131581d223435f8d1eb1248e2abc6a0ef10cf612fd4a305d88d4fb605785d4c067520dff5b699ce00e2799bf
+DIST rust-1.52.0-powerpc-unknown-linux-gnu.tar.xz 170724484 BLAKE2B 1e58e0a338498061c0e46e65660fcf01bd8461b3fcded864ba63196d4fc29e0b56e026e4d80b7535b63bb5bc204c748165498e7cfcda3713a97aa17bd8ac65b1 SHA512 44af21d9cf5d5d654f1f9437aefb61ba5bd3f3bdc67c657fba8ab03494a7ead53b6f5be17153f1f20acf099cd90760de29008c76fd766d6facbab32bf7921523
+DIST rust-1.52.0-powerpc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 6e42783107d1aae59f771284f15e1304595da710700a7664cc199fe7544dfb9cdfcb8c5f67e3c520a68ffb7fd7202de2f071cf92ce95b858f38e4ceb72649c4c SHA512 a68c780526a0dc3ba6c9e74258b124f4e64f52dab1dc0d1bcac5cbed752a9884caf858be2a1b9eb987b400a26b824e556bbf5280f64a4f51df0aae8c3073b9aa
+DIST rust-1.52.0-powerpc64-unknown-linux-gnu.tar.xz 184549672 BLAKE2B 2121f8d22d9348a61ba9eecb40bb13afee199450c7bba2d1852169f3b61ec193ea6979483139875c29a0a767732f5ffe12f81528c713492e0173084691b4b7d2 SHA512 7c24c9193fc4fe2109e38f140a8c240e0535171460de9965291c08003abe7c1ea89796afa7dcb2018eece4d9eed48ebf9469d1a040f06ab4f6a12807c789f7d8
+DIST rust-1.52.0-powerpc64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 7f5d881c1e1618be807ed6f65551fbec9190345f30c24b3c99c69e19cf87cda39c0fa6d0667d6e10e27444a864f9d49638f79fb8ac2d57558d745c3496ed01c7 SHA512 1b73e49173325b3ec9fea1c346f702ae33235aacd0b821d5b9a90148a26046e45fb547223a0cef6fadf03b5124a824a9b83984f3b5841cd5d3b861aa3223aa88
+DIST rust-1.52.0-powerpc64le-unknown-linux-gnu.tar.xz 194640544 BLAKE2B aa5e59e6059bbba874c40f7570404fbcfa5108aceb04f53ae42fc8ea4e833917f3cf6e84a1dd69cc5bf9cec3bbf0b3063258ff57699d3d0769038b44f4ccdf33 SHA512 916a3338c850cf804535e25aebc0fdcf6cea8fe9e5df9fed11fbf03ae81fb8220321dc41edd7133f287dfee0dbf19730ff8b020f32322850329865db76bab95e
+DIST rust-1.52.0-powerpc64le-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B ee33eefaf5b2eb96ef8fc2746334489b798b95f6b10e64deeaad72c4c1b45c9e335e450d8f896eec50c1b912b8e063ecec246c1d35c97f471236a876af7d36b4 SHA512 a66796a7459316f593649ebb309394d67bcf5ac241fd488c8e480df1837818369f79a198d1e56eb0488ab50dbad8d4162392709a2115005694ca0dd16f7e42ed
+DIST rust-1.52.0-riscv64gc-unknown-linux-gnu.tar.xz 181497380 BLAKE2B 40f978a60d7eea43b6e5eaeaff85611bfe571b3908a43aba2405b86ffb07c20043509ecd7f78546b4c6d795dbf4d06217e95c0855039f2cf92c372e0b3f959c9 SHA512 f0486885b26848bb1b910dbd6dd898b208ea0fb2f89714f0a8d59db330471447f4f4aad05ca534bbcf267c95e8eaabcb34d6ba41b576a2a8c77d80431c4212d2
+DIST rust-1.52.0-riscv64gc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 775d1ab86cce821e0dbf95aee99265322cb210745430f48c93e4f51cdbe8cf373f622f7ced8df801aeb830e74b917177cda6839c4504c09f5761d598a145364f SHA512 668f52e962c9b7b0a9efb0f2e33474bdc6cede32c3e657b19a8b374b0d8fa6516d4de42295acd541f6c07683a17f5251ec3fa52be44d573de5cfbb83780f37fb
+DIST rust-1.52.0-s390x-unknown-linux-gnu.tar.xz 194810848 BLAKE2B 72d68066f492c2eb2ed7e9061b2a67a603aa6ef8738004a1d7ec21753c3bb1466c81fd7a18f674d156b8b4e3c755d641b0acccfa726ad04ac17be3199e941938 SHA512 6a91adf7c1947b63db0bf02b4aa4a36fbbfcc5b40d9c18175e4c5efe785b8a17ff21a887476cf76f7e3d3854f2cc362b5d2dc8243493291a4d19a705276e6355
+DIST rust-1.52.0-s390x-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B c9b51ff09e6de5d9d3cf93e0f21df52f1738aa6c1e7b93851512d9f464bec757477183c693a1740082a36564c10cd13569c129f026680506c1e1fae8192c835d SHA512 147498154e9ab97ec4e7c0037e6873f4eb5d23c53e2f53068e979815e7d4883c9a7a338048d21abf685f0fa348cc01e342f2d5a32856b11c52663910786750f3
+DIST rust-1.52.0-x86_64-unknown-linux-gnu.tar.xz 143053436 BLAKE2B cdbbd529c5d820318530e56347426bced5addd6f20886719abfbff6e174afadd94be36b1f3e6ba878b14198641b4a53c78f33e79bdc90025696a57659753bdac SHA512 27a8db421ae62af92e2c34dcc1fdd617bf7e8de2c68205773a3037be496ccbf21f5549dd18377a9730102e7915519824231218fef9a09abe9d116441d6ce28d2
+DIST rust-1.52.0-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B ec204ee0968d4114023f40dfdd8654451149b5433dbb4eec192cc68135f45ed28ae7b06eabdab417401529162c11939ee101f7eddce304111fe93e9806347902 SHA512 4ae425def112d8c38e91ded53fdd73a6c7d2043eda22ce955aaa7303ff2cd6e7e8d0cfaa0d596b29195ba449811653f91b9b65c8c96b3cc8136d060609594828
+DIST rust-1.52.0-x86_64-unknown-linux-musl.tar.xz 239422556 BLAKE2B 8bef78b335b384e6bf7a5dd4a47511aa69ce0de6f9d1ab78146cd55f37e01b358a0cb82b95dcd27d25d4a114b707155b923415f9a91e6a75ab83bca9f5f7e0e3 SHA512 30a9f45f591c3beb34deee23611b5afe0f90b7a2a1b7b813498547b3264ecb98ef1d6bdfb77468bd5364f2942d927418037eb4ffe413db520c701fdf79c89bf2
+DIST rust-1.52.0-x86_64-unknown-linux-musl.tar.xz.asc 801 BLAKE2B 2d69f81dd47ce7387311b576a7770f2b457beebba8cd1554e5eac501025b7b54e72078b69c7cf8a61bc295298d7f277f39a070ee8d83564942149a1b42089594 SHA512 688e3eaaf2a7e7995a9b36e6856b7922b4deada31fdab198df335b316672d20bc80e5e717cee4e2fc2f51ec8abaf97880dfa5424a7b122e46b02fb7f62836378
+DIST rustc-1.52.1-src.tar.xz 115109508 BLAKE2B c5d73f5884037d287d88ba9fdaf63a36678b692e1b510920045797ab29f1660f05cda901e19411ff83ec3084c4130034c269976b1056220f3e629cff116d07f0 SHA512 55f5053ce40d4eba4663052817aef6a6275139ca229c89cd1ec44711458b412720203301d8c7975aac5720a91fcaf21847f8184f641cbb0004f722520283c73c
+DIST rustc-1.52.1-src.tar.xz.asc 801 BLAKE2B ea2f89289b4d9cf90a0d10148bf3494805c00e7822cc98addf0b602c35e4635bb1963d79168b395a5f7c7bd024070284fccd19757982daa0d554dcac166fd4d7 SHA512 0d692a085c017b03b8a135a28f7e6f1d7e05642d2e99f0f1fbc397e766bb8fed4b4c6b4c9157b79d9bb0c4229607dbc35711cd463c62a9966a4efb6f197de7d3
+DIST rustc-1.53.0-src.tar.xz 115686332 BLAKE2B fa068f89d42f927fdc79ee31aad1386eaf2aa596a060e059c5a1a73fe48c48d008fc952cd6c7912b743e41d77a94b205639eed0f728b2539b62f18a772cabfe3 SHA512 70485cf7a0f7fc36ee31644e546374079dc387a85b44e5e793707fd0a4d7ca05d311291e78b86db955485d8f21c47ff9e1908acc4da68ba04929287213a40c24
+DIST rustc-1.53.0-src.tar.xz.asc 801 BLAKE2B 75d3aa4122968f10a119f7a04df897f496588c7a1a2ddf1ea2222099c9efb0e320f5677a26c3271f86e7f500120664485f54c6025ae3c6df30d2b0fe758f5826 SHA512 e337579b9ab4febca4594c2c5d42c279b51cfc745c383be9a430204188311a25319c04c73fde34fdb2bb98a88bfd8daaddc67765834330e6c279a6e5a5648247
diff --git a/dev-lang/rust/files/1.53.0-miri-vergen.patch b/dev-lang/rust/files/1.53.0-miri-vergen.patch
new file mode 100644
index 0000000..347f147
--- /dev/null
+++ b/dev-lang/rust/files/1.53.0-miri-vergen.patch
@@ -0,0 +1,53 @@
+From 64f128c45687d18d64fc6856a30fde585b007e00 Mon Sep 17 00:00:00 2001
+From: Ralf Jung <post@ralfj.de>
+Date: Sat, 15 May 2021 14:17:30 +0200
+Subject: [PATCH] support building Miri outside a git repo
+
+---
+ cargo-miri/bin.rs | 14 ++++++++------
+ cargo-miri/build.rs | 2 +-
+ 2 files changed, 9 insertions(+), 7 deletions(-)
+
+diff --git a/cargo-miri/bin.rs b/cargo-miri/bin.rs
+index e29bdc771..84447b3a1 100644
+--- a/src/tools/miri/cargo-miri/bin.rs
++++ b/src/tools/miri/cargo-miri/bin.rs
+@@ -6,6 +6,7 @@ use std::io::{self, BufRead, BufReader, BufWriter, Read, Write};
+ use std::ops::Not;
+ use std::path::{Path, PathBuf};
+ use std::process::Command;
++use std::fmt::{Write as _};
+
+ use serde::{Deserialize, Serialize};
+
+@@ -90,12 +91,13 @@ fn show_help() {
+ }
+
+ fn show_version() {
+- println!(
+- "miri {} ({} {})",
+- env!("CARGO_PKG_VERSION"),
+- env!("VERGEN_GIT_SHA_SHORT"),
+- env!("VERGEN_GIT_COMMIT_DATE")
+- );
++ let mut version = format!("miri {}", env!("CARGO_PKG_VERSION"));
++ // Only use `option_env` on vergen variables to ensure the build succeeds
++ // when vergen failed to find the git info.
++ if let Some(sha) = option_env!("VERGEN_GIT_SHA_SHORT") {
++ write!(&mut version, " ({} {})", sha, option_env!("VERGEN_GIT_COMMIT_DATE").unwrap()).unwrap();
++ }
++ println!("{}", version);
+ }
+
+ fn show_error(msg: String) -> ! {
+diff --git a/cargo-miri/build.rs b/cargo-miri/build.rs
+index cff135fe4..ebd8e7003 100644
+--- a/src/tools/miri/cargo-miri/build.rs
++++ b/src/tools/miri/cargo-miri/build.rs
+@@ -7,5 +7,5 @@ fn main() {
+ let mut gen_config = vergen::Config::default();
+ *gen_config.git_mut().sha_kind_mut() = vergen::ShaKind::Short;
+ *gen_config.git_mut().commit_timestamp_kind_mut() = vergen::TimestampKind::DateOnly;
+- vergen(gen_config).expect("Unable to generate vergen keys!");
++ vergen(gen_config).ok(); // Ignore failure (in case we are built outside a git repo)
+ }
diff --git a/dev-lang/rust/files/1.53.0-rustversion-1.0.5.patch b/dev-lang/rust/files/1.53.0-rustversion-1.0.5.patch
new file mode 100644
index 0000000..bc6ae8b
--- /dev/null
+++ b/dev-lang/rust/files/1.53.0-rustversion-1.0.5.patch
@@ -0,0 +1,234 @@
+From 12efa21eb88cb43d3b927952da0c5635373ac92b Mon Sep 17 00:00:00 2001
+From: David Tolnay <dtolnay@gmail.com>
+Date: Thu, 17 Jun 2021 22:34:55 -0700
+Subject: [PATCH] Update rustversion to 1.0.5
+
+---
+ Cargo.lock | 4 +--
+ vendor/rustversion/.cargo-checksum.json | 2 +-
+ vendor/rustversion/Cargo.toml | 2 +-
+ vendor/rustversion/build/build.rs | 6 ++++
+ vendor/rustversion/build/rustc.rs | 30 +++++++++-----------
+ vendor/rustversion/src/lib.rs | 15 ++++++++++
+ vendor/rustversion/src/time.rs | 13 +++++++--
+ vendor/rustversion/tests/test_parse.rs | 10 +++++++
+ vendor/rustversion/tests/ui/bad-bound.stderr | 4 +--
+ vendor/rustversion/tests/ui/bad-date.stderr | 4 +--
+ 10 files changed, 63 insertions(+), 27 deletions(-)
+
+diff --git a/Cargo.lock b/Cargo.lock
+index 0939f19cdfe..26a89caf050 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -4582,9 +4582,9 @@ dependencies = [
+
+ [[package]]
+ name = "rustversion"
+-version = "1.0.4"
++version = "1.0.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "cb5d2a036dc6d2d8fd16fde3498b04306e29bd193bf306a57427019b823d5acd"
++checksum = "61b3909d758bb75c79f23d4736fac9433868679d3ad2ea7a61e3c25cfda9a088"
+
+ [[package]]
+ name = "ryu"
+diff --git a/vendor/rustversion/.cargo-checksum.json b/vendor/rustversion/.cargo-checksum.json
+index e1277df7b59..0a134695aaf 100644
+--- a/vendor/rustversion/.cargo-checksum.json
++++ b/vendor/rustversion/.cargo-checksum.json
+@@ -1 +1 @@
+-{"files":{"Cargo.toml":"1a91782510461d54726e816ae776042b95c79c9949d49c11b8782caefc22ead2","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3","README.md":"01dc6a1bf499a12bd0bfbbfe4db2ca8460b2c151235bcf2aad2356de4c2ec50a","build/build.rs":"481daf363b7004c90ffc3e012863a4102e9f26b9aaa2a4a295c2dd78f690be28","build/rustc.rs":"4dc8f1764672137bd15758cc19242740b0d6ab99e4a69171ad0999f9112a15a6","src/attr.rs":"9301cd4aff5a9648c057d5d8de9eb66921f0c3a715c51ada4459576bd49c8b19","src/bound.rs":"44bda74d3aacfeeeac9dae2f7eef3acc844d4c3c7eaa9d3e6288e5aeff269dff","src/constfn.rs":"613b8f53b21cc06b4f619fce9000993d3e7873b650701ca01cef1e53bed5b40a","src/date.rs":"454c749a60db8144a706a813e06fe3ae39c981920ba9832ef82f3f9debe1f052","src/error.rs":"cb37102f03ebbaca313d80f9714fe08dfef92fe956789ee87d93eb6121705f4f","src/expr.rs":"8e8ca76f4f5838436d9d7273f499c698bb41f6c15bc07d32ec5c1cb8bd3dd731","src/iter.rs":"8d4b817b9abc4e817105b673e15f29ef9bb8284a010ce01ac2d83387fe136947","src/lib.rs":"f8347832d8072058dbb4af6b8d67a834a02fe9c5460bbaa26defec4b66317f1b","src/release.rs":"abb8ddd877c39a023bf5e7bd67063d6e4144e79758a8bafa338167f9d15b89f1","src/time.rs":"45fb48ff0a0046a5a1b108b9ce53b14885637ad868ede1d66970379c2b7f16ef","src/token.rs":"824ce765f692db73afa02d3ebb0281c750748035efc98fa547be29d3072665ce","src/version.rs":"afdb048bba95bbb885945eba5527b6bf0eca0105642bfc304c2f82a8b7d556df","tests/compiletest.rs":"0a52a44786aea1c299c695bf948b2ed2081e4cc344e5c2cadceab4eb03d0010d","tests/test_const.rs":"a8297ca6559f895a3b2664964a42b6f82bbbc3c8faa9556a513006e6e1827995","tests/test_eval.rs":"6f0ee3f49c9a0d0c374a4d0e9a9dce753cd9fc2ca7725e000a435dbd5f4a9ce3","tests/test_parse.rs":"fbf9695f4208263743715e6c8b6294dfffee21462a65dfeb9339a70c0e18dbc6","tests/ui/bad-bound.rs":"25bde278fcaabf62868417148a5e5f2006bf589d7ebd7bf6004fb8d78e47594f","tests/ui/bad-bound.stderr":"bc9297f758c2541fb0a8b48d5785f4bbcd0d2a07d876ba0baf2fc9de9275e7e6","tests/ui/bad-date.rs":"6e23714dae8b6346fefe50dacd4abba3265248bbadfdd60c739138aa8a0037ba","tests/ui/bad-date.stderr":"1ac3cab13ee900fc8344e8fab21ff4d9cad476aca44925a4c1b2293a6b59b742","tests/ui/bad-not.rs":"f003df8bd245e9dd8edc3a6d94078ee5162fac7a98db881271f0f5b6db98d45d","tests/ui/bad-not.stderr":"d4ef78fae4a82419e737757158796cb103a5920df498956eaf57ed201797b463","tests/ui/bad-version.rs":"f4ea2cd038e6c63deb9c2e3ceffce93dbf179d9ce18c16d88f3b6cd7138a8c8e","tests/ui/bad-version.stderr":"60ed51c62f4c2fb6ff95cff7523cfca379ed434f319da9d82704318588792338","tests/ui/const-not-fn.rs":"10bbe38f0d89391fff0698756e4cfd4e72a41090360393a0c951b67df14d1c35","tests/ui/const-not-fn.stderr":"9551f7f222445b31d7af2415d467301c332d55bb3d5a143846484f2f00047a01"},"package":"cb5d2a036dc6d2d8fd16fde3498b04306e29bd193bf306a57427019b823d5acd"}
+\ No newline at end of file
++{"files":{"Cargo.toml":"a09ee758f816eddff8a8c7fb5be54dd95e74caad18a207251faedd251ecfaf1c","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3","README.md":"01dc6a1bf499a12bd0bfbbfe4db2ca8460b2c151235bcf2aad2356de4c2ec50a","build/build.rs":"bae427f344972e6e0e348ec48dce0947274b3ec6cac0938497a8d3da5c9834e5","build/rustc.rs":"3e4acf7ea679f9331dd4e8dbe42a08a312f58379ea1eee5898793a9848d06d8c","src/attr.rs":"9301cd4aff5a9648c057d5d8de9eb66921f0c3a715c51ada4459576bd49c8b19","src/bound.rs":"44bda74d3aacfeeeac9dae2f7eef3acc844d4c3c7eaa9d3e6288e5aeff269dff","src/constfn.rs":"613b8f53b21cc06b4f619fce9000993d3e7873b650701ca01cef1e53bed5b40a","src/date.rs":"454c749a60db8144a706a813e06fe3ae39c981920ba9832ef82f3f9debe1f052","src/error.rs":"cb37102f03ebbaca313d80f9714fe08dfef92fe956789ee87d93eb6121705f4f","src/expr.rs":"8e8ca76f4f5838436d9d7273f499c698bb41f6c15bc07d32ec5c1cb8bd3dd731","src/iter.rs":"8d4b817b9abc4e817105b673e15f29ef9bb8284a010ce01ac2d83387fe136947","src/lib.rs":"5652f6f84fc80136bd29b2125f7676e80e0df7d40aac274b0658c99cecbd871d","src/release.rs":"abb8ddd877c39a023bf5e7bd67063d6e4144e79758a8bafa338167f9d15b89f1","src/time.rs":"bdd05a743b07a6bbfa0dbc9d4e415e051aba4a51a430c3be1e23447eae298c8b","src/token.rs":"824ce765f692db73afa02d3ebb0281c750748035efc98fa547be29d3072665ce","src/version.rs":"afdb048bba95bbb885945eba5527b6bf0eca0105642bfc304c2f82a8b7d556df","tests/compiletest.rs":"0a52a44786aea1c299c695bf948b2ed2081e4cc344e5c2cadceab4eb03d0010d","tests/test_const.rs":"a8297ca6559f895a3b2664964a42b6f82bbbc3c8faa9556a513006e6e1827995","tests/test_eval.rs":"6f0ee3f49c9a0d0c374a4d0e9a9dce753cd9fc2ca7725e000a435dbd5f4a9ce3","tests/test_parse.rs":"cdfe376020b9391330292968046117b0935c828d73385e8faeb2e333ec897088","tests/ui/bad-bound.rs":"25bde278fcaabf62868417148a5e5f2006bf589d7ebd7bf6004fb8d78e47594f","tests/ui/bad-bound.stderr":"a03dc78b380191c10d3b3406b1fd3208bb2609d4c26b9c33ccd335721e3cd072","tests/ui/bad-date.rs":"6e23714dae8b6346fefe50dacd4abba3265248bbadfdd60c739138aa8a0037ba","tests/ui/bad-date.stderr":"3a607fb950a69f7dc1b503295bce53541f9dee9f4674edc5d13ee3a69ff0e8cd","tests/ui/bad-not.rs":"f003df8bd245e9dd8edc3a6d94078ee5162fac7a98db881271f0f5b6db98d45d","tests/ui/bad-not.stderr":"d4ef78fae4a82419e737757158796cb103a5920df498956eaf57ed201797b463","tests/ui/bad-version.rs":"f4ea2cd038e6c63deb9c2e3ceffce93dbf179d9ce18c16d88f3b6cd7138a8c8e","tests/ui/bad-version.stderr":"60ed51c62f4c2fb6ff95cff7523cfca379ed434f319da9d82704318588792338","tests/ui/const-not-fn.rs":"10bbe38f0d89391fff0698756e4cfd4e72a41090360393a0c951b67df14d1c35","tests/ui/const-not-fn.stderr":"9551f7f222445b31d7af2415d467301c332d55bb3d5a143846484f2f00047a01"},"package":"61b3909d758bb75c79f23d4736fac9433868679d3ad2ea7a61e3c25cfda9a088"}
+\ No newline at end of file
+diff --git a/vendor/rustversion/Cargo.toml b/vendor/rustversion/Cargo.toml
+index 56995ff0792..c72b1b2b343 100644
+--- a/vendor/rustversion/Cargo.toml
++++ b/vendor/rustversion/Cargo.toml
+@@ -13,7 +13,7 @@
+ [package]
+ edition = "2018"
+ name = "rustversion"
+-version = "1.0.4"
++version = "1.0.5"
+ authors = ["David Tolnay <dtolnay@gmail.com>"]
+ build = "build/build.rs"
+ description = "Conditional compilation according to rustc compiler version"
+diff --git a/vendor/rustversion/build/build.rs b/vendor/rustversion/build/build.rs
+index 2a8bc4af39f..15312510d68 100644
+--- a/vendor/rustversion/build/build.rs
++++ b/vendor/rustversion/build/build.rs
+@@ -1,3 +1,9 @@
++#![allow(
++ clippy::enum_glob_use,
++ clippy::must_use_candidate,
++ clippy::single_match_else
++)]
++
+ mod rustc;
+
+ use std::env;
+diff --git a/vendor/rustversion/build/rustc.rs b/vendor/rustversion/build/rustc.rs
+index 723e6bdd0e2..dfc6a05166f 100644
+--- a/vendor/rustversion/build/rustc.rs
++++ b/vendor/rustversion/build/rustc.rs
+@@ -48,23 +48,21 @@ pub fn parse(string: &str) -> Option<Version> {
+ Some(channel) if channel == "dev" => Dev,
+ Some(channel) if channel.starts_with("beta") => Beta,
+ Some(channel) if channel == "nightly" => match words.next() {
+- Some(hash) => {
+- if !hash.starts_with('(') {
+- return None;
++ Some(hash) if hash.starts_with('(') => match words.next() {
++ None if hash.ends_with(')') => Dev,
++ Some(date) if date.ends_with(')') => {
++ let mut date = date[..date.len() - 1].split('-');
++ let year = date.next()?.parse().ok()?;
++ let month = date.next()?.parse().ok()?;
++ let day = date.next()?.parse().ok()?;
++ match date.next() {
++ None => Nightly(Date { year, month, day }),
++ Some(_) => return None,
++ }
+ }
+- let date = words.next()?;
+- if !date.ends_with(')') {
+- return None;
+- }
+- let mut date = date[..date.len() - 1].split('-');
+- let year = date.next()?.parse().ok()?;
+- let month = date.next()?.parse().ok()?;
+- let day = date.next()?.parse().ok()?;
+- match date.next() {
+- None => Nightly(Date { year, month, day }),
+- Some(_) => return None,
+- }
+- }
++ None | Some(_) => return None,
++ },
++ Some(_) => return None,
+ None => Dev,
+ },
+ Some(_) => return None,
+diff --git a/vendor/rustversion/src/lib.rs b/vendor/rustversion/src/lib.rs
+index 2614105dd1a..172eb89382f 100644
+--- a/vendor/rustversion/src/lib.rs
++++ b/vendor/rustversion/src/lib.rs
+@@ -145,6 +145,21 @@
+ //!
+ //! <br>
+
++#![allow(
++ clippy::cast_lossless,
++ clippy::cast_possible_truncation,
++ clippy::doc_markdown,
++ clippy::enum_glob_use,
++ clippy::from_iter_instead_of_collect,
++ clippy::module_name_repetitions,
++ clippy::must_use_candidate,
++ clippy::needless_doctest_main,
++ clippy::needless_pass_by_value,
++ clippy::redundant_else,
++ clippy::toplevel_ref_arg,
++ clippy::unreadable_literal
++)]
++
+ extern crate proc_macro;
+
+ mod attr;
+diff --git a/vendor/rustversion/src/time.rs b/vendor/rustversion/src/time.rs
+index 1e6dd9066b4..3c21463dd80 100644
+--- a/vendor/rustversion/src/time.rs
++++ b/vendor/rustversion/src/time.rs
+@@ -1,4 +1,5 @@
+ use crate::date::Date;
++use std::env;
+ use std::time::{SystemTime, UNIX_EPOCH};
+
+ // Timestamp of 2016-03-01 00:00:00 in UTC.
+@@ -13,14 +14,20 @@
+
+ pub fn today() -> Date {
+ let default = Date {
+- year: 2019,
+- month: 1,
+- day: 1,
++ year: 2020,
++ month: 2,
++ day: 25,
+ };
+ try_today().unwrap_or(default)
+ }
+
+ fn try_today() -> Option<Date> {
++ if let Some(pkg_name) = env::var_os("CARGO_PKG_NAME") {
++ if pkg_name.to_str() == Some("rustversion-tests") {
++ return None; // Stable date for ui testing.
++ }
++ }
++
+ let now = SystemTime::now();
+ let since_epoch = now.duration_since(UNIX_EPOCH).ok()?;
+ let secs = since_epoch.as_secs();
+diff --git a/vendor/rustversion/tests/test_parse.rs b/vendor/rustversion/tests/test_parse.rs
+index 843bd73d3e5..cb39b3179f5 100644
+--- a/vendor/rustversion/tests/test_parse.rs
++++ b/vendor/rustversion/tests/test_parse.rs
+@@ -1,3 +1,5 @@
++#![allow(clippy::enum_glob_use, clippy::must_use_candidate)]
++
+ include!("../build/rustc.rs");
+
+ #[test]
+@@ -76,6 +78,14 @@ fn test_parse() {
+ }),
+ },
+ ),
++ (
++ "rustc 1.52.1-nightly (gentoo)",
++ Version {
++ minor: 52,
++ patch: 1,
++ channel: Dev,
++ },
++ ),
+ ];
+
+ for (string, expected) in cases {
+diff --git a/vendor/rustversion/tests/ui/bad-bound.stderr b/vendor/rustversion/tests/ui/bad-bound.stderr
+index f8c498c8577..2c56acbdb33 100644
+--- a/vendor/rustversion/tests/ui/bad-bound.stderr
++++ b/vendor/rustversion/tests/ui/bad-bound.stderr
+@@ -1,10 +1,10 @@
+-error: expected rustc release number like 1.31, or nightly date like 2020-10-26
++error: expected rustc release number like 1.31, or nightly date like 2020-02-25
+ --> $DIR/bad-bound.rs:1:22
+ |
+ 1 | #[rustversion::since(stable)]
+ | ^^^^^^
+
+-error: expected rustc release number like 1.31, or nightly date like 2020-10-26
++error: expected rustc release number like 1.31, or nightly date like 2020-02-25
+ --> $DIR/bad-bound.rs:4:26
+ |
+ 4 | #[rustversion::any(since(stable))]
+diff --git a/vendor/rustversion/tests/ui/bad-date.stderr b/vendor/rustversion/tests/ui/bad-date.stderr
+index 734d7889075..c523ccc02bf 100644
+--- a/vendor/rustversion/tests/ui/bad-date.stderr
++++ b/vendor/rustversion/tests/ui/bad-date.stderr
+@@ -1,10 +1,10 @@
+-error: expected nightly date, like 2020-10-26
++error: expected nightly date, like 2020-02-25
+ --> $DIR/bad-date.rs:1:24
+ |
+ 1 | #[rustversion::nightly(stable)]
+ | ^^^^^^
+
+-error: expected nightly date, like 2020-10-26
++error: expected nightly date, like 2020-02-25
+ --> $DIR/bad-date.rs:4:28
+ |
+ 4 | #[rustversion::any(nightly(stable))]
+--
+2.32.0
+
diff --git a/dev-lang/rust/files/1.54.0-libressl.patch b/dev-lang/rust/files/1.54.0-libressl.patch
new file mode 100644
index 0000000..8899786
--- /dev/null
+++ b/dev-lang/rust/files/1.54.0-libressl.patch
@@ -0,0 +1,43 @@
+From 137d2bcff8f7eca2207fe5899ba2bd0c83833dca Mon Sep 17 00:00:00 2001
+From: Stefan Strogin <steils@gentoo.org>
+Date: Fri, 20 Aug 2021 12:23:13 -0700
+Subject: [PATCH] Support LibreSSL 3.3.x
+
+Signed-off-by: orbea <orbea@riseup.net>
+---
+ vendor/openssl-sys/.cargo-checksum.json | 2 +-
+ vendor/openssl-sys/build/main.rs | 3 ++-
+ 2 files changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/vendor/openssl-sys/.cargo-checksum.json b/vendor/openssl-sys/.cargo-checksum.json
+index 4e9f9c71b..003be66d4 100644
+--- a/vendor/openssl-sys/.cargo-checksum.json
++++ b/vendor/openssl-sys/.cargo-checksum.json
+@@ -1 +1 @@
+-{"files":{"CHANGELOG.md":"3c38e78f95e359924f839c6f3738c75b91149af81c23688dfaf37618a3332755","Cargo.toml":"d25f5ed8a445b5efc5bb81d51d7409e6b7e0abb90ceffe623dfa0da00c3f4ebb","LICENSE-MIT":"378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397","README.md":"18071782a20c51379733d7c2041c6755a11326d0153d8c7c3073875d7870da42","build/cfgs.rs":"9f92d008cf0db1cc2728f2b67c24a719840a4c8645d11dc560eadd8e9b0adeac","build/expando.c":"14d2de522d6ef7214c3f1ca73b9231229420b8ba95bdcf01cac93bf775aed15e","build/find_normal.rs":"1c5f996f44e77311d7e4c0e6bdfa212de427f569c19c790c119b88d472977700","build/find_vendored.rs":"7bf0e59c5646d72ee5a4392ad970fdf5c20288ddaf54dd86a8caff49583b38f5","build/main.rs":"c7485a16dd676de00d9ef42e3e41c5217cc6d5f5783f492a61b9c118e9f3bf18","src/aes.rs":"822bf666db351fe6ef9607c918081d6ad378fc1cedb05290bb746f86980c6088","src/asn1.rs":"801c254afc76b0c29b756bd86a149361609f82ec33c1f1fad39a512fbe4e87ee","src/bio.rs":"3aac4e38ccf8d832b4156908cd3f1ff9c56f84c05d2f07ed7a3e3fccabe965e9","src/bn.rs":"c71b9c79f704a94a889d27bf75e7e5b1f9f10b0df0aeb485aef509cf05d7467f","src/cms.rs":"f21a403fea95e7b7efe0539a429831cfa51c8818adb79c7ebf73ae2a6f2dc87e","src/conf.rs":"511e008c18039f54d856d70b80009426fc7f4ce34fe4304e2c58ebf465031de0","src/crypto.rs":"a1279719ade9704be3d9af55ff679abbe918d525f332ca15810146d45e9080cf","src/dh.rs":"280fd508756b8013368a4233465f681a1339ad4e415569c14762e5dad0441cbe","src/dsa.rs":"ae79baf231681900ea76304285b3ffacf5298c90b8c04d371269cf4adbb5b9fa","src/dtls1.rs":"45e1dbf94a42d587fd948d553dc30187aa6aa2b5b82d554cf725ff36df768aa0","src/ec.rs":"c215a564373e8de1da63b698fbafc187d738fe90b77f998713a91180e178e350","src/err.rs":"3edf1379b3277df32e047a52553d243d4a4001111a277cf4b12f7297f2fe2bf0","src/evp.rs":"e82deaaf6d76c3dc52fd574fa131ac4f64dc6c5f173cf38dfd0a24b2f878c5be","src/hmac.rs":"fa3976d94a1383f300bdec228270afb8b47c97bb019d727c7d59ba783be3c42e","src/lib.rs":"57291110117331f5d6733da1421267e47cf891e0e0411b0720a04fdbc0686700","src/macros.rs":"7ed99c00c53ee12ea92634d4ace0af84845ebf98819869746e7896c8eaff23db","src/obj_mac.rs":"42019b142e523d7695d8c14ee7f72fa4b5702c07dee98fa12e70ab7dfcc95459","src/object.rs":"210d91fc81414da4cd3afa0127cabffef1640fa85e65635bc489e0f721ee929f","src/ocsp.rs":"154e416aa14df8d5aa962f3352ca72bab00716f0834413c78dfa663e0880e9dd","src/ossl_typ.rs":"4379b8327a1efbae1c784ad576c98ac7708bf62cab1c373845d9ca948b5e401b","src/pem.rs":"ba80937125618cd0e7073d69be6aff3b619ede74e227a158cb0a68af27f69640","src/pkcs12.rs":"f1a3f32f128fa8ce94391c1957a0e535387cebc0e25d21743888b172518dd636","src/pkcs7.rs":"0c5a0f85323a1e5a4d7edcc433166de8614b44f545758d926cf95e9626d4af2b","src/rand.rs":"469601b4fbb56d4dbf5cf5d7bb8483e3bde411edea18601e7d1ed6ef27180fd3","src/rsa.rs":"aa984781f19d3e88527bec9db5338b19051313b01589018c5bb86923f058c6c6","src/safestack.rs":"6c39e28565d34efad707d77561d4caa99e3f028fcac3a2ef6fd403a78de1190c","src/sha.rs":"1a6b028a63654d2419417a9a8af790cd22409a4643682a0686ecdb9441264eba","src/srtp.rs":"1c4dee9e6c139cc70416207786e385f199321624fb9fbf3cbf39a8160c0c405d","src/ssl.rs":"5970b21a47668f7efb8130f22110d9ab65c571a45681c02d8ab596b7068db963","src/ssl3.rs":"9336c816e00847d552dea22587d4ac72ff3cbd469fa5ff750423a19ea11e68eb","src/stack.rs":"1a509907283e5a2bf88cf193ce607f49ce7d2d95547c2ce2abc0fd4567aad334","src/tls1.rs":"60ca3dea1bbfda645bde563b4a878dac129c3f760e3ad572381000fc7a8ef522","src/x509.rs":"7ffbf8687f650dd9678eab61871913579539f78ebf69f005f07f7a40017b26cb","src/x509_vfy.rs":"a5fc69e3ef3565c8d9196768c0b84bd876edfb019688dc4487dbb88f6a89293d","src/x509v3.rs":"520253195097d134e553c6378c1db2510eae6ccfcab6f6fb08919697bc0f023b"},"package":"313752393519e876837e09e1fa183ddef0be7735868dced3196f4472d536277f"}
+\ No newline at end of file
++{"files":{"CHANGELOG.md":"3c38e78f95e359924f839c6f3738c75b91149af81c23688dfaf37618a3332755","Cargo.toml":"d25f5ed8a445b5efc5bb81d51d7409e6b7e0abb90ceffe623dfa0da00c3f4ebb","LICENSE-MIT":"378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397","README.md":"18071782a20c51379733d7c2041c6755a11326d0153d8c7c3073875d7870da42","build/cfgs.rs":"9f92d008cf0db1cc2728f2b67c24a719840a4c8645d11dc560eadd8e9b0adeac","build/expando.c":"14d2de522d6ef7214c3f1ca73b9231229420b8ba95bdcf01cac93bf775aed15e","build/find_normal.rs":"1c5f996f44e77311d7e4c0e6bdfa212de427f569c19c790c119b88d472977700","build/find_vendored.rs":"7bf0e59c5646d72ee5a4392ad970fdf5c20288ddaf54dd86a8caff49583b38f5","build/main.rs":"93ac710e06c9db872b47de99a61bc4aa058ac99e3d734a27a77332a47cca2f75","src/aes.rs":"822bf666db351fe6ef9607c918081d6ad378fc1cedb05290bb746f86980c6088","src/asn1.rs":"801c254afc76b0c29b756bd86a149361609f82ec33c1f1fad39a512fbe4e87ee","src/bio.rs":"3aac4e38ccf8d832b4156908cd3f1ff9c56f84c05d2f07ed7a3e3fccabe965e9","src/bn.rs":"c71b9c79f704a94a889d27bf75e7e5b1f9f10b0df0aeb485aef509cf05d7467f","src/cms.rs":"f21a403fea95e7b7efe0539a429831cfa51c8818adb79c7ebf73ae2a6f2dc87e","src/conf.rs":"511e008c18039f54d856d70b80009426fc7f4ce34fe4304e2c58ebf465031de0","src/crypto.rs":"a1279719ade9704be3d9af55ff679abbe918d525f332ca15810146d45e9080cf","src/dh.rs":"280fd508756b8013368a4233465f681a1339ad4e415569c14762e5dad0441cbe","src/dsa.rs":"ae79baf231681900ea76304285b3ffacf5298c90b8c04d371269cf4adbb5b9fa","src/dtls1.rs":"45e1dbf94a42d587fd948d553dc30187aa6aa2b5b82d554cf725ff36df768aa0","src/ec.rs":"c215a564373e8de1da63b698fbafc187d738fe90b77f998713a91180e178e350","src/err.rs":"3edf1379b3277df32e047a52553d243d4a4001111a277cf4b12f7297f2fe2bf0","src/evp.rs":"e82deaaf6d76c3dc52fd574fa131ac4f64dc6c5f173cf38dfd0a24b2f878c5be","src/hmac.rs":"fa3976d94a1383f300bdec228270afb8b47c97bb019d727c7d59ba783be3c42e","src/lib.rs":"57291110117331f5d6733da1421267e47cf891e0e0411b0720a04fdbc0686700","src/macros.rs":"7ed99c00c53ee12ea92634d4ace0af84845ebf98819869746e7896c8eaff23db","src/obj_mac.rs":"42019b142e523d7695d8c14ee7f72fa4b5702c07dee98fa12e70ab7dfcc95459","src/object.rs":"210d91fc81414da4cd3afa0127cabffef1640fa85e65635bc489e0f721ee929f","src/ocsp.rs":"154e416aa14df8d5aa962f3352ca72bab00716f0834413c78dfa663e0880e9dd","src/ossl_typ.rs":"4379b8327a1efbae1c784ad576c98ac7708bf62cab1c373845d9ca948b5e401b","src/pem.rs":"ba80937125618cd0e7073d69be6aff3b619ede74e227a158cb0a68af27f69640","src/pkcs12.rs":"f1a3f32f128fa8ce94391c1957a0e535387cebc0e25d21743888b172518dd636","src/pkcs7.rs":"0c5a0f85323a1e5a4d7edcc433166de8614b44f545758d926cf95e9626d4af2b","src/rand.rs":"469601b4fbb56d4dbf5cf5d7bb8483e3bde411edea18601e7d1ed6ef27180fd3","src/rsa.rs":"aa984781f19d3e88527bec9db5338b19051313b01589018c5bb86923f058c6c6","src/safestack.rs":"6c39e28565d34efad707d77561d4caa99e3f028fcac3a2ef6fd403a78de1190c","src/sha.rs":"1a6b028a63654d2419417a9a8af790cd22409a4643682a0686ecdb9441264eba","src/srtp.rs":"1c4dee9e6c139cc70416207786e385f199321624fb9fbf3cbf39a8160c0c405d","src/ssl.rs":"5970b21a47668f7efb8130f22110d9ab65c571a45681c02d8ab596b7068db963","src/ssl3.rs":"9336c816e00847d552dea22587d4ac72ff3cbd469fa5ff750423a19ea11e68eb","src/stack.rs":"1a509907283e5a2bf88cf193ce607f49ce7d2d95547c2ce2abc0fd4567aad334","src/tls1.rs":"60ca3dea1bbfda645bde563b4a878dac129c3f760e3ad572381000fc7a8ef522","src/x509.rs":"7ffbf8687f650dd9678eab61871913579539f78ebf69f005f07f7a40017b26cb","src/x509_vfy.rs":"a5fc69e3ef3565c8d9196768c0b84bd876edfb019688dc4487dbb88f6a89293d","src/x509v3.rs":"520253195097d134e553c6378c1db2510eae6ccfcab6f6fb08919697bc0f023b"},"package":"313752393519e876837e09e1fa183ddef0be7735868dced3196f4472d536277f"}
+diff --git a/vendor/openssl-sys/build/main.rs b/vendor/openssl-sys/build/main.rs
+index df03e01f6..1d813f7d5 100644
+--- a/vendor/openssl-sys/build/main.rs
++++ b/vendor/openssl-sys/build/main.rs
+@@ -232,6 +232,7 @@ See rust-openssl README for more information:
+ (3, 2, _) => ('3', '2', 'x'),
+ (3, 3, 0) => ('3', '3', '0'),
+ (3, 3, 1) => ('3', '3', '1'),
++ (3, 3, _) => ('3', '3', 'x'),
+ _ => version_error(),
+ };
+
+@@ -272,7 +273,7 @@ fn version_error() -> ! {
+ "
+
+ This crate is only compatible with OpenSSL 1.0.1 through 1.1.1, or LibreSSL 2.5
+-through 3.3.1, but a different version of OpenSSL was found. The build is now aborting
++through 3.3.x, but a different version of OpenSSL was found. The build is now aborting
+ due to this version mismatch.
+
+ "
+--
+2.31.1
+
diff --git a/dev-lang/rust/files/1.54.0-parallel-miri.patch b/dev-lang/rust/files/1.54.0-parallel-miri.patch
new file mode 100644
index 0000000..68239d9
--- /dev/null
+++ b/dev-lang/rust/files/1.54.0-parallel-miri.patch
@@ -0,0 +1,43 @@
+From a789b49e4c0e7d742cc39713484596293d844537 Mon Sep 17 00:00:00 2001
+From: hyd-dev <yd-huang@outlook.com>
+Date: Fri, 30 Jul 2021 21:28:34 +0800
+Subject: [PATCH] Use `Lrc` instead of `Rc` in `MiriCompilerCalls::config()`
+
+---
+ src/bin/miri.rs | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/src/tools/miri/src/bin/miri.rs b/src/tools/miri/src/bin/miri.rs
+index 5a8f07263..18c393815 100644
+--- a/src/tools/miri/src/bin/miri.rs
++++ b/src/tools/miri/src/bin/miri.rs
+@@ -1,5 +1,6 @@
+ #![feature(rustc_private, bool_to_option, stmt_expr_attributes)]
+
++extern crate rustc_data_structures;
+ extern crate rustc_driver;
+ extern crate rustc_errors;
+ extern crate rustc_hir;
+@@ -12,12 +13,12 @@ use std::convert::TryFrom;
+ use std::env;
+ use std::num::NonZeroU64;
+ use std::path::PathBuf;
+-use std::rc::Rc;
+ use std::str::FromStr;
+
+ use hex::FromHexError;
+ use log::debug;
+
++use rustc_data_structures::sync::Lrc;
+ use rustc_driver::Compilation;
+ use rustc_errors::emitter::{ColorConfig, HumanReadableErrorType};
+ use rustc_hir::{self as hir, def_id::LOCAL_CRATE, Node};
+@@ -42,7 +43,7 @@ impl rustc_driver::Callbacks for MiriCompilerCalls {
+ // HACK: rustc will emit "crate ... required to be available in rlib format, but
+ // was not found in this form" errors once we use `tcx.dependency_formats()` if
+ // there's no rlib provided, so setting a dummy path here to workaround those errors.
+- Rc::make_mut(&mut crate_source).rlib = Some((PathBuf::new(), PathKind::All));
++ Lrc::make_mut(&mut crate_source).rlib = Some((PathBuf::new(), PathKind::All));
+ crate_source
+ };
+ });
diff --git a/dev-lang/rust/rust-1.52.1.ebuild b/dev-lang/rust/rust-1.52.1.ebuild
index a6469d8..c005cd2 100644
--- a/dev-lang/rust/rust-1.52.1.ebuild
+++ b/dev-lang/rust/rust-1.52.1.ebuild
@@ -19,7 +19,7 @@ else
SLOT="stable/${ABI_VER}"
MY_P="rustc-${PV}"
SRC="${MY_P}-src.tar.xz"
- KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
+ KEYWORDS="amd64 ~arm ~arm64 ppc64 ~riscv ~x86"
fi
RUST_STAGE0_VERSION="1.$(($(ver_cut 2) - 1)).0"
@@ -91,7 +91,7 @@ BDEPEND="${PYTHON_DEPS}
)
system-bootstrap? ( ${BOOTSTRAP_DEPEND} )
!system-llvm? (
- dev-util/cmake
+ >=dev-util/cmake-3.13.4
dev-util/ninja
)
test? ( sys-devel/gdb )
@@ -280,10 +280,14 @@ src_configure() {
local rust_stage0_root
if use system-bootstrap; then
- rust_stage0_root="$(rustc --print sysroot)"
+ local printsysroot
+ printsysroot="$(rustc --print sysroot || die "Can't determine rust's sysroot")"
+ rust_stage0_root="${printsysroot}"
else
rust_stage0_root="${WORKDIR}"/rust-stage0
fi
+ # in case of prefix it will be already prefixed, as --print sysroot returns full path
+ [[ -d ${rust_stage0_root} ]] || die "${rust_stage0_root} is not a directory"
rust_target="$(rust_abi)"
@@ -445,6 +449,11 @@ src_configure() {
llvm-config = "$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
_EOF_
fi
+ if [[ "${cross_toolchain}" == *-musl* ]]; then
+ cat <<- _EOF_ >> "${S}"/config.toml
+ musl-root = "$(${cross_toolchain}-gcc -print-sysroot)/usr"
+ _EOF_
+ fi
# append cross target to "normal" target list
# example 'target = ["powerpc64le-unknown-linux-gnu"]'
diff --git a/dev-lang/rust/rust-1.51.0-r2.ebuild b/dev-lang/rust/rust-1.53.0.ebuild
index 94d62b0..9766417 100644
--- a/dev-lang/rust/rust-1.51.0-r2.ebuild
+++ b/dev-lang/rust/rust-1.53.0.ebuild
@@ -5,7 +5,8 @@ EAPI=7
PYTHON_COMPAT=( python3_{7..9} )
-inherit bash-completion-r1 check-reqs estack flag-o-matic llvm multiprocessing multilib-build python-any-r1 rust-toolchain toolchain-funcs
+inherit bash-completion-r1 check-reqs estack flag-o-matic llvm multiprocessing \
+ multilib-build python-any-r1 rust-toolchain toolchain-funcs verify-sig
if [[ ${PV} = *beta* ]]; then
betaver=${PV//*beta}
@@ -18,7 +19,7 @@ else
SLOT="stable/${ABI_VER}"
MY_P="rustc-${PV}"
SRC="${MY_P}-src.tar.xz"
- KEYWORDS="amd64 arm arm64 ppc64 x86"
+ KEYWORDS="amd64 ~arm arm64 ~ppc64 ~riscv ~x86"
fi
RUST_STAGE0_VERSION="1.$(($(ver_cut 2) - 1)).0"
@@ -28,6 +29,7 @@ HOMEPAGE="https://www.rust-lang.org/"
SRC_URI="
https://static.rust-lang.org/dist/${SRC}
+ verify-sig? ( https://static.rust-lang.org/dist/${SRC}.asc )
!system-bootstrap? ( $(rust_all_arch_uris rust-${RUST_STAGE0_VERSION}) )
"
@@ -47,7 +49,7 @@ IUSE="clippy cpu_flags_x86_sse2 debug doc miri nightly parallel-compiler rls rus
# How to use it:
# List all the working slots in LLVM_VALID_SLOTS, newest first.
-LLVM_VALID_SLOTS=( 11 )
+LLVM_VALID_SLOTS=( 12 )
LLVM_MAX_SLOT="${LLVM_VALID_SLOTS[0]}"
# splitting usedeps needed to avoid CI/pkgcheck's UncheckableDep limitation
@@ -72,12 +74,14 @@ LLVM_DEPEND+=" )
# for example 1.47.x, requires at least 1.46.x, 1.47.x is ok,
# but it fails to bootstrap with 1.48.x
# https://github.com/rust-lang/rust/blob/${PV}/src/stage0.txt
+RUST_DEP_PREV="$(ver_cut 1).$(($(ver_cut 2) - 1))*"
+RUST_DEP_CURR="$(ver_cut 1).$(ver_cut 2)*"
BOOTSTRAP_DEPEND="||
(
- =dev-lang/rust-$(ver_cut 1).$(($(ver_cut 2) - 1))*
- =dev-lang/rust-bin-$(ver_cut 1).$(($(ver_cut 2) - 1))*
- =dev-lang/rust-$(ver_cut 1).$(ver_cut 2)*
- =dev-lang/rust-bin-$(ver_cut 1).$(ver_cut 2)*
+ =dev-lang/rust-"${RUST_DEP_PREV}"
+ =dev-lang/rust-bin-"${RUST_DEP_PREV}"
+ =dev-lang/rust-"${RUST_DEP_CURR}"
+ =dev-lang/rust-bin-"${RUST_DEP_CURR}"
)
"
@@ -89,10 +93,11 @@ BDEPEND="${PYTHON_DEPS}
)
system-bootstrap? ( ${BOOTSTRAP_DEPEND} )
!system-llvm? (
- dev-util/cmake
+ >=dev-util/cmake-3.13.4
dev-util/ninja
)
test? ( sys-devel/gdb )
+ verify-sig? ( app-crypt/openpgp-keys-rust )
"
DEPEND="
@@ -138,16 +143,14 @@ QA_SONAME="
# causes double bootstrap
RESTRICT="test"
+VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/rust.asc"
+
PATCHES=(
"${FILESDIR}"/1.47.0-libressl.patch
"${FILESDIR}"/1.47.0-ignore-broken-and-non-applicable-tests.patch
"${FILESDIR}"/1.49.0-gentoo-musl-target-specs.patch
- "${FILESDIR}"/1.51.0-bootstrap-panic.patch
- "${FILESDIR}"/rustc-1.51.0-backport-pr81728.patch
- "${FILESDIR}"/rustc-1.51.0-backport-pr81741.patch
- "${FILESDIR}"/rustc-1.51.0-backport-pr82289.patch
- "${FILESDIR}"/rustc-1.51.0-backport-pr82292.patch
- "${FILESDIR}"/rustc-1.51.0-backport-pr83629.patch
+ "${FILESDIR}"/1.53.0-rustversion-1.0.5.patch # https://github.com/rust-lang/rust/pull/86425
+ "${FILESDIR}"/1.53.0-miri-vergen.patch # https://github.com/rust-lang/rust/issues/84182
)
S="${WORKDIR}/${MY_P}-src"
@@ -156,7 +159,7 @@ toml_usex() {
usex "${1}" true false
}
-boostrap_rust_version_check() {
+bootstrap_rust_version_check() {
# never call from pkg_pretend. eselect-rust may be not installed yet.
[[ ${MERGE_TYPE} == binary ]] && return
local rustc_wanted="$(ver_cut 1).$(($(ver_cut 2) - 1))"
@@ -199,7 +202,7 @@ pre_build_checks() {
done
fi
M=$(( $(usex wasm 256 0) + ${M} ))
- M=$(( $(usex debug 15 10) * ${M} / 10 ))
+ M=$(( $(usex debug 2 1) * ${M} ))
eshopts_push -s extglob
if is-flagq '-g?(gdb)?([1-9])'; then
M=$(( 15 * ${M} / 10 ))
@@ -224,7 +227,7 @@ pkg_setup() {
export LIBGIT2_NO_PKG_CONFIG=1 #749381
- use system-bootstrap && boostrap_rust_version_check
+ use system-bootstrap && bootstrap_rust_version_check
if use system-llvm; then
llvm_pkg_setup
@@ -259,7 +262,7 @@ src_configure() {
if use system-llvm; then
# un-hardcode rust-lld linker for this target
# https://bugs.gentoo.org/715348
- sed -i '/linker:/ s/rust-lld/wasm-ld/' compiler/rustc_target/src/spec/wasm32_base.rs || die
+ sed -i '/linker:/ s/rust-lld/wasm-ld/' compiler/rustc_target/src/spec/wasm_base.rs || die
fi
fi
rust_targets="${rust_targets#,}"
@@ -280,14 +283,19 @@ src_configure() {
local rust_stage0_root
if use system-bootstrap; then
- rust_stage0_root="$(rustc --print sysroot)"
+ local printsysroot
+ printsysroot="$(rustc --print sysroot || die "Can't determine rust's sysroot")"
+ rust_stage0_root="${printsysroot}"
else
rust_stage0_root="${WORKDIR}"/rust-stage0
fi
+ # in case of prefix it will be already prefixed, as --print sysroot returns full path
+ [[ -d ${rust_stage0_root} ]] || die "${rust_stage0_root} is not a directory"
rust_target="$(rust_abi)"
cat <<- _EOF_ > "${S}"/config.toml
+ changelog-seen = 2
[llvm]
download-ci-llvm = false
optimize = $(toml_usex !debug)
@@ -298,6 +306,9 @@ src_configure() {
experimental-targets = ""
link-shared = $(toml_usex system-llvm)
[build]
+ build-stage = 2
+ test-stage = 2
+ doc-stage = 2
build = "${rust_target}"
host = ["${rust_target}"]
target = [${rust_targets}]
@@ -329,7 +340,12 @@ src_configure() {
optimize = true
debug = $(toml_usex debug)
debug-assertions = $(toml_usex debug)
- debuginfo-level-rustc = 0
+ debug-assertions-std = $(toml_usex debug)
+ debuginfo-level = $(usex debug 2 0)
+ debuginfo-level-rustc = $(usex debug 2 0)
+ debuginfo-level-std = $(usex debug 2 0)
+ debuginfo-level-tools = $(usex debug 2 0)
+ debuginfo-level-tests = 0
backtrace = true
incremental = false
default-linker = "$(tc-getCC)"
@@ -351,6 +367,7 @@ src_configure() {
jemalloc = false
[dist]
src-tarball = false
+ compression-formats = ["gz"]
_EOF_
for v in $(multilib_get_enabled_abi_pairs); do
@@ -439,6 +456,11 @@ src_configure() {
llvm-config = "$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
_EOF_
fi
+ if [[ "${cross_toolchain}" == *-musl* ]]; then
+ cat <<- _EOF_ >> "${S}"/config.toml
+ musl-root = "$(${cross_toolchain}-gcc -print-sysroot)/usr"
+ _EOF_
+ fi
# append cross target to "normal" target list
# example 'target = ["powerpc64le-unknown-linux-gnu"]'
@@ -464,8 +486,17 @@ src_configure() {
done
fi # I_KNOW_WHAT_I_AM_DOING_CROSS
- einfo "Rust configured with the following settings:"
+ einfo "Rust configured with the following flags:"
+ echo
+ echo RUSTFLAGS="${RUSTFLAGS:-}"
+ echo RUSTFLAGS_BOOTSTRAP="${RUSTFLAGS_BOOTSTRAP:-}"
+ echo RUSTFLAGS_NOT_BOOTSTRAP="${RUSTFLAGS_NOT_BOOTSTRAP:-}"
+ env | grep "CARGO_TARGET_.*_RUSTFLAGS="
+ cat "${S}"/config.env || die
+ echo
+ einfo "config.toml contents:"
cat "${S}"/config.toml || die
+ echo
}
src_compile() {
@@ -473,7 +504,7 @@ src_compile() {
(
IFS=$'\n'
env $(cat "${S}"/config.env) RUST_BACKTRACE=1\
- "${EPYTHON}" ./x.py dist -vv --config="${S}"/config.toml -j$(makeopts_jobs) || die
+ "${EPYTHON}" ./x.py build -vv --config="${S}"/config.toml -j$(makeopts_jobs) || die
)
}
@@ -537,7 +568,7 @@ src_install() {
(
IFS=$'\n'
env $(cat "${S}"/config.env) DESTDIR="${D}" \
- "${EPYTHON}" ./x.py install -vv --config="${S}"/config.toml -j$(makeopts_jobs) || die
+ "${EPYTHON}" ./x.py install -vv --config="${S}"/config.toml -j$(makeopts_jobs) || die
)
# bug #689562, #689160
diff --git a/dev-lang/rust/rust-1.54.0.ebuild b/dev-lang/rust/rust-1.54.0.ebuild
new file mode 100644
index 0000000..5295278
--- /dev/null
+++ b/dev-lang/rust/rust-1.54.0.ebuild
@@ -0,0 +1,680 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{7..9} )
+
+inherit bash-completion-r1 check-reqs estack flag-o-matic llvm multiprocessing \
+ multilib-build python-any-r1 rust-toolchain toolchain-funcs verify-sig
+
+if [[ ${PV} = *beta* ]]; then
+ betaver=${PV//*beta}
+ BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}"
+ MY_P="rustc-beta"
+ SLOT="beta/${PV}"
+ SRC="${BETA_SNAPSHOT}/rustc-beta-src.tar.xz -> rustc-${PV}-src.tar.xz"
+else
+ ABI_VER="$(ver_cut 1-2)"
+ SLOT="stable/${ABI_VER}"
+ MY_P="rustc-${PV}"
+ SRC="${MY_P}-src.tar.xz"
+ KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86"
+fi
+
+RUST_STAGE0_VERSION="1.$(($(ver_cut 2) - 1)).0"
+
+DESCRIPTION="Systems programming language from Mozilla"
+HOMEPAGE="https://www.rust-lang.org/"
+
+SRC_URI="
+ https://static.rust-lang.org/dist/${SRC}
+ verify-sig? ( https://static.rust-lang.org/dist/${SRC}.asc )
+ !system-bootstrap? ( $(rust_all_arch_uris rust-${RUST_STAGE0_VERSION}) )
+"
+
+# keep in sync with llvm ebuild of the same version as bundled one.
+ALL_LLVM_TARGETS=( AArch64 AMDGPU ARM AVR BPF Hexagon Lanai Mips MSP430
+ NVPTX PowerPC RISCV Sparc SystemZ WebAssembly X86 XCore )
+ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" )
+LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?}
+
+LICENSE="|| ( MIT Apache-2.0 ) BSD-1 BSD-2 BSD-4 UoI-NCSA"
+
+IUSE="clippy cpu_flags_x86_sse2 debug doc miri nightly parallel-compiler rls rustfmt system-bootstrap system-llvm test wasm ${ALL_LLVM_TARGETS[*]}"
+
+# Please keep the LLVM dependency block separate. Since LLVM is slotted,
+# we need to *really* make sure we're not pulling more than one slot
+# simultaneously.
+
+# How to use it:
+# List all the working slots in LLVM_VALID_SLOTS, newest first.
+LLVM_VALID_SLOTS=( 12 )
+LLVM_MAX_SLOT="${LLVM_VALID_SLOTS[0]}"
+
+# splitting usedeps needed to avoid CI/pkgcheck's UncheckableDep limitation
+# (-) usedep needed because we may build with older llvm without that target
+LLVM_DEPEND="|| ( "
+for _s in ${LLVM_VALID_SLOTS[@]}; do
+ LLVM_DEPEND+=" ( "
+ for _x in ${ALL_LLVM_TARGETS[@]}; do
+ LLVM_DEPEND+="
+ ${_x}? ( sys-devel/llvm:${_s}[${_x}(-)] )"
+ done
+ LLVM_DEPEND+=" )"
+done
+unset _s _x
+LLVM_DEPEND+=" )
+ <sys-devel/llvm-$(( LLVM_MAX_SLOT + 1 )):=
+ wasm? ( sys-devel/lld )
+"
+
+# to bootstrap we need at least exactly previous version, or same.
+# most of the time previous versions fail to bootstrap with newer
+# for example 1.47.x, requires at least 1.46.x, 1.47.x is ok,
+# but it fails to bootstrap with 1.48.x
+# https://github.com/rust-lang/rust/blob/${PV}/src/stage0.txt
+RUST_DEP_PREV="$(ver_cut 1).$(($(ver_cut 2) - 1))*"
+RUST_DEP_CURR="$(ver_cut 1).$(ver_cut 2)*"
+BOOTSTRAP_DEPEND="||
+ (
+ =dev-lang/rust-"${RUST_DEP_PREV}"
+ =dev-lang/rust-bin-"${RUST_DEP_PREV}"
+ =dev-lang/rust-"${RUST_DEP_CURR}"
+ =dev-lang/rust-bin-"${RUST_DEP_CURR}"
+ )
+"
+
+BDEPEND="${PYTHON_DEPS}
+ app-eselect/eselect-rust
+ || (
+ >=sys-devel/gcc-4.7
+ >=sys-devel/clang-3.5
+ )
+ system-bootstrap? ( ${BOOTSTRAP_DEPEND} )
+ !system-llvm? (
+ >=dev-util/cmake-3.13.4
+ dev-util/ninja
+ )
+ test? ( sys-devel/gdb )
+ verify-sig? ( app-crypt/openpgp-keys-rust )
+"
+
+DEPEND="
+ >=app-arch/xz-utils-5.2
+ net-misc/curl:=[http2,ssl]
+ sys-libs/zlib:=
+ dev-libs/openssl:0=
+ elibc_musl? ( sys-libs/libunwind:= )
+ system-llvm? ( ${LLVM_DEPEND} )
+"
+
+# we need to block older versions due to layout changes.
+RDEPEND="${DEPEND}
+ app-eselect/eselect-rust
+ !<dev-lang/rust-1.47.0-r1
+ !<dev-lang/rust-bin-1.47.0-r1
+"
+
+REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} )
+ miri? ( nightly )
+ parallel-compiler? ( nightly )
+ test? ( ${ALL_LLVM_TARGETS[*]} )
+ wasm? ( llvm_targets_WebAssembly )
+ x86? ( cpu_flags_x86_sse2 )
+"
+
+# we don't use cmake.eclass, but can get a warnings
+CMAKE_WARN_UNUSED_CLI=no
+
+QA_FLAGS_IGNORED="
+ usr/lib/${PN}/${PV}/bin/.*
+ usr/lib/${PN}/${PV}/libexec/.*
+ usr/lib/${PN}/${PV}/lib/lib.*.so
+ usr/lib/${PN}/${PV}/lib/rustlib/.*/bin/.*
+ usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/lib.*.so
+"
+
+QA_SONAME="
+ usr/lib/${PN}/${PV}/lib/lib.*.so.*
+ usr/lib/${PN}/${PV}/lib/rustlib/.*/lib/lib.*.so
+"
+
+# causes double bootstrap
+RESTRICT="test"
+
+VERIFY_SIG_OPENPGP_KEY_PATH=${BROOT}/usr/share/openpgp-keys/rust.asc
+
+PATCHES=(
+ "${FILESDIR}"/1.47.0-ignore-broken-and-non-applicable-tests.patch
+ "${FILESDIR}"/1.49.0-gentoo-musl-target-specs.patch
+ "${FILESDIR}"/1.53.0-rustversion-1.0.5.patch # https://github.com/rust-lang/rust/pull/86425
+ "${FILESDIR}"/1.54.0-parallel-miri.patch # https://github.com/rust-lang/miri/pull/1863
+ "${FILESDIR}"/1.54.0-libressl.patch
+)
+
+S="${WORKDIR}/${MY_P}-src"
+
+toml_usex() {
+ usex "${1}" true false
+}
+
+bootstrap_rust_version_check() {
+ # never call from pkg_pretend. eselect-rust may be not installed yet.
+ [[ ${MERGE_TYPE} == binary ]] && return
+ local rustc_wanted="$(ver_cut 1).$(($(ver_cut 2) - 1))"
+ local rustc_toonew="$(ver_cut 1).$(($(ver_cut 2) + 1))"
+ local rustc_version=( $(eselect --brief rust show 2>/dev/null) )
+ rustc_version=${rustc_version[0]#rust-bin-}
+ rustc_version=${rustc_version#rust-}
+
+ [[ -z "${rustc_version}" ]] && die "Failed to determine rust version, check 'eselect rust' output"
+
+ if ver_test "${rustc_version}" -lt "${rustc_wanted}" ; then
+ eerror "Rust >=${rustc_wanted} is required"
+ eerror "please run 'eselect rust' and set correct rust version"
+ die "selected rust version is too old"
+ elif ver_test "${rustc_version}" -ge "${rustc_toonew}" ; then
+ eerror "Rust <${rustc_toonew} is required"
+ eerror "please run 'eselect rust' and set correct rust version"
+ die "selected rust version is too new"
+ else
+ einfo "Using rust ${rustc_version} to build"
+ fi
+}
+
+pre_build_checks() {
+ local M=4096
+ # multiply requirements by 1.5 if we are doing x86-multilib
+ if use amd64; then
+ M=$(( $(usex abi_x86_32 15 10) * ${M} / 10 ))
+ fi
+ M=$(( $(usex clippy 128 0) + ${M} ))
+ M=$(( $(usex miri 128 0) + ${M} ))
+ M=$(( $(usex rls 512 0) + ${M} ))
+ M=$(( $(usex rustfmt 256 0) + ${M} ))
+ # add 2G if we compile llvm and 256M per llvm_target
+ if ! use system-llvm; then
+ M=$(( 2048 + ${M} ))
+ local ltarget
+ for ltarget in ${ALL_LLVM_TARGETS[@]}; do
+ M=$(( $(usex ${ltarget} 256 0) + ${M} ))
+ done
+ fi
+ M=$(( $(usex wasm 256 0) + ${M} ))
+ M=$(( $(usex debug 2 1) * ${M} ))
+ eshopts_push -s extglob
+ if is-flagq '-g?(gdb)?([1-9])'; then
+ M=$(( 15 * ${M} / 10 ))
+ fi
+ eshopts_pop
+ M=$(( $(usex system-bootstrap 0 1024) + ${M} ))
+ M=$(( $(usex doc 256 0) + ${M} ))
+ CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE}
+}
+
+llvm_check_deps() {
+ has_version -r "sys-devel/llvm:${LLVM_SLOT}[${LLVM_TARGET_USEDEPS// /,}]"
+}
+
+pkg_pretend() {
+ pre_build_checks
+}
+
+pkg_setup() {
+ pre_build_checks
+ python-any-r1_pkg_setup
+
+ export LIBGIT2_NO_PKG_CONFIG=1 #749381
+
+ use system-bootstrap && bootstrap_rust_version_check
+
+ if use system-llvm; then
+ llvm_pkg_setup
+
+ local llvm_config="$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
+ export LLVM_LINK_SHARED=1
+ export RUSTFLAGS="${RUSTFLAGS} -Lnative=$("${llvm_config}" --libdir)"
+ fi
+}
+
+src_prepare() {
+ if ! use system-bootstrap; then
+ local rust_stage0_root="${WORKDIR}"/rust-stage0
+ local rust_stage0="rust-${RUST_STAGE0_VERSION}-$(rust_abi)"
+
+ "${WORKDIR}/${rust_stage0}"/install.sh --disable-ldconfig \
+ --without=rust-docs --destdir="${rust_stage0_root}" --prefix=/ || die
+ fi
+
+ default
+}
+
+src_configure() {
+ local rust_target="" rust_targets="" arch_cflags
+
+ # Collect rust target names to compile standard libs for all ABIs.
+ for v in $(multilib_get_enabled_abi_pairs); do
+ rust_targets="${rust_targets},\"$(rust_abi $(get_abi_CHOST ${v##*.}))\""
+ done
+ if use wasm; then
+ rust_targets="${rust_targets},\"wasm32-unknown-unknown\""
+ if use system-llvm; then
+ # un-hardcode rust-lld linker for this target
+ # https://bugs.gentoo.org/715348
+ sed -i '/linker:/ s/rust-lld/wasm-ld/' compiler/rustc_target/src/spec/wasm_base.rs || die
+ fi
+ fi
+ rust_targets="${rust_targets#,}"
+
+ local tools="\"cargo\","
+ if use clippy; then
+ tools="\"clippy\",$tools"
+ fi
+ if use miri; then
+ tools="\"miri\",$tools"
+ fi
+ if use rls; then
+ tools="\"rls\",\"analysis\",\"src\",$tools"
+ fi
+ if use rustfmt; then
+ tools="\"rustfmt\",$tools"
+ fi
+
+ local rust_stage0_root
+ if use system-bootstrap; then
+ local printsysroot
+ printsysroot="$(rustc --print sysroot || die "Can't determine rust's sysroot")"
+ rust_stage0_root="${printsysroot}"
+ else
+ rust_stage0_root="${WORKDIR}"/rust-stage0
+ fi
+ # in case of prefix it will be already prefixed, as --print sysroot returns full path
+ [[ -d ${rust_stage0_root} ]] || die "${rust_stage0_root} is not a directory"
+
+ rust_target="$(rust_abi)"
+
+ cat <<- _EOF_ > "${S}"/config.toml
+ changelog-seen = 2
+ [llvm]
+ download-ci-llvm = false
+ optimize = $(toml_usex !debug)
+ release-debuginfo = $(toml_usex debug)
+ assertions = $(toml_usex debug)
+ ninja = true
+ targets = "${LLVM_TARGETS// /;}"
+ experimental-targets = ""
+ link-shared = $(toml_usex system-llvm)
+ [build]
+ build-stage = 2
+ test-stage = 2
+ doc-stage = 2
+ build = "${rust_target}"
+ host = ["${rust_target}"]
+ target = [${rust_targets}]
+ cargo = "${rust_stage0_root}/bin/cargo"
+ rustc = "${rust_stage0_root}/bin/rustc"
+ rustfmt = "${rust_stage0_root}/bin/rustfmt"
+ docs = $(toml_usex doc)
+ compiler-docs = false
+ submodules = false
+ python = "${EPYTHON}"
+ locked-deps = true
+ vendor = true
+ extended = true
+ tools = [${tools}]
+ verbose = 2
+ sanitizers = false
+ profiler = false
+ cargo-native-static = false
+ [install]
+ prefix = "${EPREFIX}/usr/lib/${PN}/${PV}"
+ sysconfdir = "etc"
+ docdir = "share/doc/rust"
+ bindir = "bin"
+ libdir = "lib"
+ mandir = "share/man"
+ [rust]
+ # https://github.com/rust-lang/rust/issues/54872
+ codegen-units-std = 1
+ optimize = true
+ debug = $(toml_usex debug)
+ debug-assertions = $(toml_usex debug)
+ debug-assertions-std = $(toml_usex debug)
+ debuginfo-level = $(usex debug 2 0)
+ debuginfo-level-rustc = $(usex debug 2 0)
+ debuginfo-level-std = $(usex debug 2 0)
+ debuginfo-level-tools = $(usex debug 2 0)
+ debuginfo-level-tests = 0
+ backtrace = true
+ incremental = false
+ default-linker = "$(tc-getCC)"
+ parallel-compiler = $(toml_usex parallel-compiler)
+ channel = "$(usex nightly nightly stable)"
+ description = "gentoo"
+ rpath = false
+ verbose-tests = true
+ optimize-tests = $(toml_usex !debug)
+ codegen-tests = true
+ dist-src = false
+ remap-debuginfo = true
+ lld = $(usex system-llvm false $(toml_usex wasm))
+ # only deny warnings if doc+wasm are NOT requested, documenting stage0 wasm std fails without it
+ # https://github.com/rust-lang/rust/issues/74976
+ # https://github.com/rust-lang/rust/issues/76526
+ deny-warnings = $(usex wasm $(usex doc false true) true)
+ backtrace-on-ice = true
+ jemalloc = false
+ [dist]
+ src-tarball = false
+ compression-formats = ["gz"]
+ _EOF_
+
+ for v in $(multilib_get_enabled_abi_pairs); do
+ rust_target=$(rust_abi $(get_abi_CHOST ${v##*.}))
+ arch_cflags="$(get_abi_CFLAGS ${v##*.})"
+
+ cat <<- _EOF_ >> "${S}"/config.env
+ CFLAGS_${rust_target}=${arch_cflags}
+ _EOF_
+
+ cat <<- _EOF_ >> "${S}"/config.toml
+ [target.${rust_target}]
+ cc = "$(tc-getBUILD_CC)"
+ cxx = "$(tc-getBUILD_CXX)"
+ linker = "$(tc-getCC)"
+ ar = "$(tc-getAR)"
+ _EOF_
+ # librustc_target/spec/linux_musl_base.rs sets base.crt_static_default = true;
+ if use elibc_musl; then
+ cat <<- _EOF_ >> "${S}"/config.toml
+ crt-static = false
+ _EOF_
+ fi
+ if use system-llvm; then
+ cat <<- _EOF_ >> "${S}"/config.toml
+ llvm-config = "$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
+ _EOF_
+ fi
+ done
+ if use wasm; then
+ cat <<- _EOF_ >> "${S}"/config.toml
+ [target.wasm32-unknown-unknown]
+ linker = "$(usex system-llvm lld rust-lld)"
+ _EOF_
+ fi
+
+ if [[ -n ${I_KNOW_WHAT_I_AM_DOING_CROSS} ]]; then # whitespace intentionally shifted below
+ # experimental cross support
+ # discussion: https://bugs.gentoo.org/679878
+ # TODO: c*flags, clang, system-llvm, cargo.eclass target support
+ # it would be much better if we could split out stdlib
+ # complilation to separate ebuild and abuse CATEGORY to
+ # just install to /usr/lib/rustlib/<target>
+
+ # extra targets defined as a bash array
+ # spec format: <LLVM target>:<rust-target>:<CTARGET>
+ # best place would be /etc/portage/env/dev-lang/rust
+ # Example:
+ # RUST_CROSS_TARGETS=(
+ # "AArch64:aarch64-unknown-linux-gnu:aarch64-unknown-linux-gnu"
+ # )
+ # no extra hand holding is done, no target transformations, all
+ # values are passed as-is with just basic checks, so it's up to user to supply correct values
+ # valid rust targets can be obtained with
+ # rustc --print target-list
+ # matching cross toolchain has to be installed
+ # matching LLVM_TARGET has to be enabled for both rust and llvm (if using system one)
+ # only gcc toolchains installed with crossdev are checked for now.
+
+ # BUG: we can't pass host flags to cross compiler, so just filter for now
+ # BUG: this should be more fine-grained.
+ filter-flags '-mcpu=*' '-march=*' '-mtune=*'
+
+ local cross_target_spec
+ for cross_target_spec in "${RUST_CROSS_TARGETS[@]}";do
+ # extracts first element form <LLVM target>:<rust-target>:<CTARGET>
+ local cross_llvm_target="${cross_target_spec%%:*}"
+ # extracts toolchain triples, <rust-target>:<CTARGET>
+ local cross_triples="${cross_target_spec#*:}"
+ # extracts first element after before : separator
+ local cross_rust_target="${cross_triples%%:*}"
+ # extracts last element after : separator
+ local cross_toolchain="${cross_triples##*:}"
+ use llvm_targets_${cross_llvm_target} || die "need llvm_targets_${cross_llvm_target} target enabled"
+ command -v ${cross_toolchain}-gcc > /dev/null 2>&1 || die "need ${cross_toolchain} cross toolchain"
+
+ cat <<- _EOF_ >> "${S}"/config.toml
+ [target.${cross_rust_target}]
+ cc = "${cross_toolchain}-gcc"
+ cxx = "${cross_toolchain}-g++"
+ linker = "${cross_toolchain}-gcc"
+ ar = "${cross_toolchain}-ar"
+ _EOF_
+ if use system-llvm; then
+ cat <<- _EOF_ >> "${S}"/config.toml
+ llvm-config = "$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config"
+ _EOF_
+ fi
+ if [[ "${cross_toolchain}" == *-musl* ]]; then
+ cat <<- _EOF_ >> "${S}"/config.toml
+ musl-root = "$(${cross_toolchain}-gcc -print-sysroot)/usr"
+ _EOF_
+ fi
+
+ # append cross target to "normal" target list
+ # example 'target = ["powerpc64le-unknown-linux-gnu"]'
+ # becomes 'target = ["powerpc64le-unknown-linux-gnu","aarch64-unknown-linux-gnu"]'
+
+ rust_targets="${rust_targets},\"${cross_rust_target}\""
+ sed -i "/^target = \[/ s#\[.*\]#\[${rust_targets}\]#" config.toml || die
+
+ ewarn
+ ewarn "Enabled ${cross_rust_target} rust target"
+ ewarn "Using ${cross_toolchain} cross toolchain"
+ ewarn
+ if ! has_version -b 'sys-devel/binutils[multitarget]' ; then
+ ewarn "'sys-devel/binutils[multitarget]' is not installed"
+ ewarn "'strip' will be unable to strip cross libraries"
+ ewarn "cross targets will be installed with full debug information"
+ ewarn "enable 'multitarget' USE flag for binutils to be able to strip object files"
+ ewarn
+ ewarn "Alternatively llvm-strip can be used, it supports stripping any target"
+ ewarn "define STRIP=\"llvm-strip\" to use it (experimental)"
+ ewarn
+ fi
+ done
+ fi # I_KNOW_WHAT_I_AM_DOING_CROSS
+
+ einfo "Rust configured with the following flags:"
+ echo
+ echo RUSTFLAGS="${RUSTFLAGS:-}"
+ echo RUSTFLAGS_BOOTSTRAP="${RUSTFLAGS_BOOTSTRAP:-}"
+ echo RUSTFLAGS_NOT_BOOTSTRAP="${RUSTFLAGS_NOT_BOOTSTRAP:-}"
+ env | grep "CARGO_TARGET_.*_RUSTFLAGS="
+ cat "${S}"/config.env || die
+ echo
+ einfo "config.toml contents:"
+ cat "${S}"/config.toml || die
+ echo
+}
+
+src_compile() {
+ # we need \n IFS to have config.env with spaces loaded properly. #734018
+ (
+ IFS=$'\n'
+ env $(cat "${S}"/config.env) RUST_BACKTRACE=1\
+ "${EPYTHON}" ./x.py build -vv --config="${S}"/config.toml -j$(makeopts_jobs) || die
+ )
+}
+
+src_test() {
+ # https://rustc-dev-guide.rust-lang.org/tests/intro.html
+
+ # those are basic and codegen tests.
+ local tests=(
+ codegen
+ codegen-units
+ compile-fail
+ incremental
+ mir-opt
+ pretty
+ run-make
+ )
+
+ # fails if llvm is not built with ALL targets.
+ # and known to fail with system llvm sometimes.
+ use system-llvm || tests+=( assembly )
+
+ # fragile/expensive/less important tests
+ # or tests that require extra builds
+ # TODO: instead of skipping, just make some nonfatal.
+ if [[ ${ERUST_RUN_EXTRA_TESTS:-no} != no ]]; then
+ tests+=(
+ rustdoc
+ rustdoc-js
+ rustdoc-js-std
+ rustdoc-ui
+ run-make-fulldeps
+ ui
+ ui-fulldeps
+ )
+ fi
+
+ local i failed=()
+ einfo "rust_src_test: enabled tests ${tests[@]/#/src/test/}"
+ for i in "${tests[@]}"; do
+ local t="src/test/${i}"
+ einfo "rust_src_test: running ${t}"
+ if ! (
+ IFS=$'\n'
+ env $(cat "${S}"/config.env) RUST_BACKTRACE=1 \
+ "${EPYTHON}" ./x.py test -vv --config="${S}"/config.toml \
+ -j$(makeopts_jobs) --no-doc --no-fail-fast "${t}"
+ )
+ then
+ failed+=( "${t}" )
+ eerror "rust_src_test: ${t} failed"
+ fi
+ done
+
+ if [[ ${#failed[@]} -ne 0 ]]; then
+ eerror "rust_src_test: failure summary: ${failed[@]}"
+ die "aborting due to test failures"
+ fi
+}
+
+src_install() {
+ (
+ IFS=$'\n'
+ env $(cat "${S}"/config.env) DESTDIR="${D}" \
+ "${EPYTHON}" ./x.py install -vv --config="${S}"/config.toml -j$(makeopts_jobs) || die
+ )
+
+ # bug #689562, #689160
+ rm -v "${ED}/usr/lib/${PN}/${PV}/etc/bash_completion.d/cargo" || die
+ rmdir -v "${ED}/usr/lib/${PN}/${PV}"/etc{/bash_completion.d,} || die
+ newbashcomp src/tools/cargo/src/etc/cargo.bashcomp.sh cargo
+
+ local symlinks=(
+ cargo
+ rustc
+ rustdoc
+ rust-gdb
+ rust-gdbgui
+ rust-lldb
+ )
+
+ use clippy && symlinks+=( clippy-driver cargo-clippy )
+ use miri && symlinks+=( miri cargo-miri )
+ use rls && symlinks+=( rls )
+ use rustfmt && symlinks+=( rustfmt cargo-fmt )
+
+ einfo "installing eselect-rust symlinks and paths: ${symlinks[@]}"
+ local i
+ for i in "${symlinks[@]}"; do
+ # we need realpath on /usr/bin/* symlink return version-appended binary path.
+ # so /usr/bin/rustc should point to /usr/lib/rust/<ver>/bin/rustc-<ver>
+ # need to fix eselect-rust to remove this hack.
+ local ver_i="${i}-${PV}"
+ if [[ -f "${ED}/usr/lib/${PN}/${PV}/bin/${i}" ]]; then
+ einfo "Installing ${i} symlink"
+ ln -v "${ED}/usr/lib/${PN}/${PV}/bin/${i}" "${ED}/usr/lib/${PN}/${PV}/bin/${ver_i}" || die
+ else
+ ewarn "${i} symlink requested, but source file not found"
+ ewarn "please report this"
+ fi
+ dosym "../lib/${PN}/${PV}/bin/${ver_i}" "/usr/bin/${ver_i}"
+ done
+
+ # symlinks to switch components to active rust in eselect
+ dosym "${PV}/lib" "/usr/lib/${PN}/lib-${PV}"
+ dosym "${PV}/libexec" "/usr/lib/${PN}/libexec-${PV}"
+ dosym "${PV}/share/man" "/usr/lib/${PN}/man-${PV}"
+ dosym "rust/${PV}/lib/rustlib" "/usr/lib/rustlib-${PV}"
+ dosym "../../lib/${PN}/${PV}/share/doc/rust" "/usr/share/doc/${P}"
+
+ newenvd - "50${P}" <<-_EOF_
+ LDPATH="${EPREFIX}/usr/lib/rust/lib"
+ MANPATH="${EPREFIX}/usr/lib/rust/man"
+ $(use amd64 && usex elibc_musl 'CARGO_TARGET_X86_64_UNKNOWN_LINUX_MUSL_RUSTFLAGS="-C target-feature=-crt-static"' '')
+ $(use arm64 && usex elibc_musl 'CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_RUSTFLAGS="-C target-feature=-crt-static"' '')
+ _EOF_
+
+ rm -rf "${ED}/usr/lib/${PN}/${PV}"/*.old || die
+ rm -rf "${ED}/usr/lib/${PN}/${PV}/doc"/*.old || die
+
+ # note: eselect-rust adds EROOT to all paths below
+ cat <<-_EOF_ > "${T}/provider-${P}"
+ /usr/bin/cargo
+ /usr/bin/rustdoc
+ /usr/bin/rust-gdb
+ /usr/bin/rust-gdbgui
+ /usr/bin/rust-lldb
+ /usr/lib/rustlib
+ /usr/lib/rust/lib
+ /usr/lib/rust/libexec
+ /usr/lib/rust/man
+ /usr/share/doc/rust
+ _EOF_
+
+ if use clippy; then
+ echo /usr/bin/clippy-driver >> "${T}/provider-${P}"
+ echo /usr/bin/cargo-clippy >> "${T}/provider-${P}"
+ fi
+ if use miri; then
+ echo /usr/bin/miri >> "${T}/provider-${P}"
+ echo /usr/bin/cargo-miri >> "${T}/provider-${P}"
+ fi
+ if use rls; then
+ echo /usr/bin/rls >> "${T}/provider-${P}"
+ fi
+ if use rustfmt; then
+ echo /usr/bin/rustfmt >> "${T}/provider-${P}"
+ echo /usr/bin/cargo-fmt >> "${T}/provider-${P}"
+ fi
+
+ insinto /etc/env.d/rust
+ doins "${T}/provider-${P}"
+}
+
+pkg_postinst() {
+ eselect rust update
+
+ if has_version sys-devel/gdb || has_version dev-util/lldb; then
+ elog "Rust installs a helper script for calling GDB and LLDB,"
+ elog "for your convenience it is installed under /usr/bin/rust-{gdb,lldb}-${PV}."
+ fi
+
+ if has_version app-editors/emacs; then
+ elog "install app-emacs/rust-mode to get emacs support for rust."
+ fi
+
+ if has_version app-editors/gvim || has_version app-editors/vim; then
+ elog "install app-vim/rust-vim to get vim support for rust."
+ fi
+}
+
+pkg_postrm() {
+ eselect rust cleanup
+}
diff --git a/dev-libs/libressl/Manifest b/dev-libs/libressl/Manifest
index 9807a88..f5d9fbc 100644
--- a/dev-libs/libressl/Manifest
+++ b/dev-libs/libressl/Manifest
@@ -1,13 +1,2 @@
-DIST libressl-2.9.2.tar.gz 3607549 BLAKE2B 496e993e4f1c85167e0344afab61259d4e3f094a7e5dfac85878191070e2c196753162532efb921fab582481aeda3705fca9a2b48921cba82465192f2c1eef95 SHA512 b43e73e47c1f14da3c702ab42f29f1d67645a4fa425441337bd6c125b481ef78a40fd13e6b34dadb2af337e1c0c190cfb616186d4db9c9a743a37e594b9b8033
-DIST libressl-3.0.2.tar.gz 3669468 BLAKE2B 84ad2c1fea8d2119f191ec8ab3f999fb0354636d48aabb76fa1786139c669c9d8ca105d79cc8416dd20683818eccc84490cdadc9ca94cb2b0e411644e923a3d6 SHA512 19226da3bc9776e1da40b8e94dfa53564d5e6acc80edee539ba12d7a75c1bb8c0603e7633f26a6ef8b12adc56bb677ccda448575aa6be2ad3df5447465a4b080
-DIST libressl-3.1.3.tar.gz 3766345 BLAKE2B 4956fa0ae6030e9e9969d584db3bc0084c4b155207d1472ebfa40c8e68e925214b66ed1bc7e32d98a9a48de0b61909323a0380a973c724422c92bfe88b9fdfb2 SHA512 f9f497fe5d09b8b762175da038a8e67d9d2567462fefc49e434d306a3071ba3a4d369c89143d9d90e3bbcc7b9ba051c9c923a0dfc41d856edc08ae59fa727ee8
-DIST libressl-3.1.4.tar.gz 3767238 BLAKE2B e639349e50f985360f2cef01b16b5c8f3c725d4a9bbee1117787174e4de6eb9b14cc8ad5f1704971057dd0f5000eea01f3b172178c534c70d38921418034d94c SHA512 77a53c4294fc332006502dc3af069346e2c9efc9240de7f91eb48e89043525900b5b23652cfd159221c3a482cc01e263611adb752e23b707f965156e3a7cd895
-DIST libressl-3.1.5.tar.gz 3767605 BLAKE2B 9dc97caac831591c150ef0fc9b36970e5c18b1793294b074b5c42176cd7eafbdb713461757edab7072fc0a770480db5987252c9a960cfebeaa3ef5341de2a290 SHA512 b1e576a654d4f740ef466e5291344ee9a65276f2a1d4975bf93c407b8b51d78dd99f381f1d14162ed1f6b6e7f14a67ccdd377e7d9f71ef2875cc8cf17f580c51
-DIST libressl-3.2.0.tar.gz 3775925 BLAKE2B 99d74fad16e272be8e3b23b873c35970ce3693e088baf365670ad8e8cbb846e90f4232bbc6c65b70a35060da99b9b210b3debce1c78d531e810de26e3e2f05cb SHA512 e8bf95af4e4e855b0462eb12df8f802102a3bee5bb40fb1859e7c40d9e3ce89f0d2eb0acdd923e7c592b4aeb7ecc556f753c0a12d0dace05d2ef342bffdd9d07
-DIST libressl-3.2.1.tar.gz 3798341 BLAKE2B 25d4d0fa758d92fd781f39000e631d7cec0a5a8210b2b127b7d49ef0e96e1a20a45f60e6231dcbe379f57f19c1ca8a4dde6205b1cc52ee44d17a4a21da34c98a SHA512 0204177ad0291f3fce4c77ab21cce17785d0239f2ae4be8fbdce5575cc98775186caa0e1851b211c05be07e3cc603111eeaac4379c8977e7b140fedee2551f93
-DIST libressl-3.2.3.tar.gz 3839953 BLAKE2B 219c9c2e78952d56dd9eadb92c9732f426cbdd20a2dc905d827ca0547a347065f3347e960dee7456994d8d52d8cb19a028add3e9f343a20864dbb15f4e6654c8 SHA512 8c281f5a155a4cc9bfeb31767d8c29de6ceec602649ff98460c44c4b2c15999799d5549ce07a823a4f7f20f9b441f8718b3ef8eac19ddb6cf6d150e6fe8c9d13
-DIST libressl-3.2.5.tar.gz 3842149 BLAKE2B a8d70ebd3a22e24206320a5f15857cc170e770a7da66bf2ca681c98169ce291106d32567c623b35261cdafb94ca245e56e9a4a20a3af3e9b8f09f816c661639d SHA512 7b34d826685d8d6da74dee127138ad8cbb0b5a82e9eca8f45891e431a85ed9a7bcdcf28ad69064c5ce7e4d465ad2ac895074ba308e4bad303bcd7a12fcaa3ea2
-DIST libressl-3.3.0.tar.gz 3837684 BLAKE2B 0b2947fa00f86829b574beedc462ed7e602b417f057c8bcf966508952e10c17709a4ea484e4b8699eee2cee228e00518a25c9eedd96534273c56a467cdc0c39b SHA512 3ea1339719b85234e4db8753eb11b760b9969bf0917d2556126bb048fc41022def628995587e438781092dcc49233109641b174f156cc4ec451fe8a217372cec
-DIST libressl-3.3.1.tar.gz 3838592 BLAKE2B 67c5bd72c1d1085c13fd3bf2e3829a6b83d61c3c9af5f5e65dca7548abe967f0ec8ebe3c46c6af576c54304b432069aab9d940bded90925cb44fffa7a8f35c29 SHA512 a0a6c10af71c6932a63381f33b2d0fe38b28d1c3c62c0c2de770695152f6eb3c558fdedd2fb6cdf34bd9a2dd3887aec615b652cbc3c1eed6c3c973c787a0c294
-DIST libressl-3.3.2.tar.gz 3847969 BLAKE2B 6a7af3c36dd78ed60c5fbc9f96efa7c69a01599d76ebd25a701186b4c6471255918ab7e2696c9d277454ca2b99f4a17c536c31336b462903601e779518a73d6e SHA512 16a06771a38d7f88e755878875ec38e814a9bdfe5ec5d0b9b4a7a7ce3ee4a9c3d395f82cee2803ebc418c9ea27c0ac3aa5c34197e048ea91cd8d9a707da56f77
-DIST libressl-3.3.3.tar.gz 3848064 BLAKE2B c3023da19994426fbedbebbf7d37cb088b9f3725aa9455c6b69f4e07fb1db586f320c19cabfc9ebc64cfdfdc5fa93d2aed55c1c6f5784ea95f70b80c180fe557 SHA512 2d0b5f4cfe37d573bc64d5967abb77f536dbe581fbad9637d925332bcdfd185fe6810335b2af80a89f92d7e6edaa8ea3ba2492c60a117e47ea1b2d6aacf01f0f
+DIST libressl-3.2.6.tar.gz 3842414 BLAKE2B cf29201b560a93f37f2b1a2f8ea5d4f196ad24e044e69c141556583686b1bd1941a97d53b662a2d457261eb4f45da9856a051b7b8afd3e3f27a6f14753bd80c5 SHA512 47eba2734e9c27adf922857f8057be20427b9b63d57422318e0658b17c53322b66e52733b71573d9fe26fbad4a4aa95fcd42b42e85647debcef869439caac526
+DIST libressl-3.4.0.tar.gz 3917583 BLAKE2B 3be62513c99fe1336732ea2e0fb46e3eb788e139b0bc31d3350596b72e6a877bd62042f00173cc50a8b96115778dd567ca9e89e65d2fa592c7675fb7bb78317a SHA512 035a833889b1c52cb2828c38e01b33efc344586c2c7eed28241e74947efc767b893b41671ddc3c09ce6ff72f3bf91666ef07b9b8abb9ee9c619d68835787fb46
diff --git a/dev-libs/libressl/libressl-2.9.2.ebuild b/dev-libs/libressl/libressl-2.9.2.ebuild
deleted file mode 100644
index 515b2a4..0000000
--- a/dev-libs/libressl/libressl-2.9.2.ebuild
+++ /dev/null
@@ -1,63 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-inherit multilib-minimal libtool
-
-DESCRIPTION="Free version of the SSL/TLS protocol forked from OpenSSL"
-HOMEPAGE="https://www.libressl.org/"
-SRC_URI="https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/${P}.tar.gz"
-
-LICENSE="ISC openssl"
-# Reflects ABI of libcrypto.so and libssl.so. Since these can differ,
-# we'll try to use the max of either. However, if either change between
-# versions, we have to change the subslot to trigger rebuild of consumers.
-SLOT="0/47"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 ~s390 sparc x86 ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-IUSE="+asm static-libs test"
-RESTRICT="!test? ( test )"
-REQUIRED_USE="test? ( static-libs )"
-
-DEPEND="${RDEPEND}"
-PDEPEND="app-misc/ca-certificates"
-
-src_prepare() {
- touch crypto/Makefile.in
-
- sed -i \
- -e '/^[ \t]*CFLAGS=/s#-g ##' \
- -e '/^[ \t]*CFLAGS=/s#-g"#"#' \
- -e '/^[ \t]*CFLAGS=/s#-O2 ##' \
- -e '/^[ \t]*CFLAGS=/s#-O2"#"#' \
- -e '/^[ \t]*USER_CFLAGS=/s#-O2 ##' \
- -e '/^[ \t]*USER_CFLAGS=/s#-O2"#"#' \
- configure || die "fixing CFLAGS failed"
-
- if ! use test ; then
- sed -i \
- -e '/^[ \t]*SUBDIRS =/s#tests##' \
- Makefile.in || die "Removing tests failed"
- fi
-
- eapply "${FILESDIR}"/${PN}-2.8.3-solaris10.patch
- eapply "${FILESDIR}"/${P}-non-glibc.patch
- eapply_user
-
- elibtoolize # for Solaris
-}
-
-multilib_src_configure() {
- ECONF_SOURCE="${S}" econf \
- $(use_enable asm) \
- $(use_enable static-libs static)
-}
-
-multilib_src_test() {
- emake check
-}
-
-multilib_src_install_all() {
- einstalldocs
- find "${D}" -name '*.la' -exec rm -f {} + || die
-}
diff --git a/dev-libs/libressl/libressl-3.0.2.ebuild b/dev-libs/libressl/libressl-3.0.2.ebuild
deleted file mode 100644
index 06fccf5..0000000
--- a/dev-libs/libressl/libressl-3.0.2.ebuild
+++ /dev/null
@@ -1,62 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit multilib-minimal libtool
-
-DESCRIPTION="Free version of the SSL/TLS protocol forked from OpenSSL"
-HOMEPAGE="https://www.libressl.org/"
-SRC_URI="https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/${P}.tar.gz"
-
-LICENSE="ISC openssl"
-# Reflects ABI of libcrypto.so and libssl.so. Since these can differ,
-# we'll try to use the max of either. However, if either change between
-# versions, we have to change the subslot to trigger rebuild of consumers.
-SLOT="0/47"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 ~s390 ~sparc x86 ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-IUSE="+asm static-libs test"
-RESTRICT="!test? ( test )"
-REQUIRED_USE="test? ( static-libs )"
-
-DEPEND="${RDEPEND}"
-PDEPEND="app-misc/ca-certificates"
-
-src_prepare() {
- touch crypto/Makefile.in
-
- sed -i \
- -e '/^[ \t]*CFLAGS=/s#-g ##' \
- -e '/^[ \t]*CFLAGS=/s#-g"#"#' \
- -e '/^[ \t]*CFLAGS=/s#-O2 ##' \
- -e '/^[ \t]*CFLAGS=/s#-O2"#"#' \
- -e '/^[ \t]*USER_CFLAGS=/s#-O2 ##' \
- -e '/^[ \t]*USER_CFLAGS=/s#-O2"#"#' \
- configure || die "fixing CFLAGS failed"
-
- if ! use test ; then
- sed -i \
- -e '/^[ \t]*SUBDIRS =/s#tests##' \
- Makefile.in || die "Removing tests failed"
- fi
-
- eapply "${FILESDIR}"/${PN}-2.8.3-solaris10.patch
- eapply_user
-
- elibtoolize # for Solaris
-}
-
-multilib_src_configure() {
- ECONF_SOURCE="${S}" econf \
- $(use_enable asm) \
- $(use_enable static-libs static)
-}
-
-multilib_src_test() {
- emake check
-}
-
-multilib_src_install_all() {
- einstalldocs
- find "${D}" -name '*.la' -exec rm -f {} + || die
-}
diff --git a/dev-libs/libressl/libressl-3.1.4.ebuild b/dev-libs/libressl/libressl-3.1.4.ebuild
deleted file mode 100644
index e7248a0..0000000
--- a/dev-libs/libressl/libressl-3.1.4.ebuild
+++ /dev/null
@@ -1,62 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit multilib-minimal libtool
-
-DESCRIPTION="Free version of the SSL/TLS protocol forked from OpenSSL"
-HOMEPAGE="https://www.libressl.org/"
-SRC_URI="https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/${P}.tar.gz"
-
-LICENSE="ISC openssl"
-# Reflects ABI of libcrypto.so and libssl.so. Since these can differ,
-# we'll try to use the max of either. However, if either change between
-# versions, we have to change the subslot to trigger rebuild of consumers.
-SLOT="0/48"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 ~s390 sparc x86 ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-IUSE="+asm static-libs test"
-RESTRICT="!test? ( test )"
-REQUIRED_USE="test? ( static-libs )"
-
-DEPEND="${RDEPEND}"
-PDEPEND="app-misc/ca-certificates"
-
-src_prepare() {
- touch crypto/Makefile.in
-
- sed -i \
- -e '/^[ \t]*CFLAGS=/s#-g ##' \
- -e '/^[ \t]*CFLAGS=/s#-g"#"#' \
- -e '/^[ \t]*CFLAGS=/s#-O2 ##' \
- -e '/^[ \t]*CFLAGS=/s#-O2"#"#' \
- -e '/^[ \t]*USER_CFLAGS=/s#-O2 ##' \
- -e '/^[ \t]*USER_CFLAGS=/s#-O2"#"#' \
- configure || die "fixing CFLAGS failed"
-
- if ! use test ; then
- sed -i \
- -e '/^[ \t]*SUBDIRS =/s#tests##' \
- Makefile.in || die "Removing tests failed"
- fi
-
- eapply "${FILESDIR}"/${PN}-2.8.3-solaris10.patch
- eapply_user
-
- elibtoolize # for Solaris
-}
-
-multilib_src_configure() {
- ECONF_SOURCE="${S}" econf \
- $(use_enable asm) \
- $(use_enable static-libs static)
-}
-
-multilib_src_test() {
- emake check
-}
-
-multilib_src_install_all() {
- einstalldocs
- find "${D}" -name '*.la' -exec rm -f {} + || die
-}
diff --git a/dev-libs/libressl/libressl-3.1.5.ebuild b/dev-libs/libressl/libressl-3.1.5.ebuild
deleted file mode 100644
index e7248a0..0000000
--- a/dev-libs/libressl/libressl-3.1.5.ebuild
+++ /dev/null
@@ -1,62 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit multilib-minimal libtool
-
-DESCRIPTION="Free version of the SSL/TLS protocol forked from OpenSSL"
-HOMEPAGE="https://www.libressl.org/"
-SRC_URI="https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/${P}.tar.gz"
-
-LICENSE="ISC openssl"
-# Reflects ABI of libcrypto.so and libssl.so. Since these can differ,
-# we'll try to use the max of either. However, if either change between
-# versions, we have to change the subslot to trigger rebuild of consumers.
-SLOT="0/48"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 ~s390 sparc x86 ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-IUSE="+asm static-libs test"
-RESTRICT="!test? ( test )"
-REQUIRED_USE="test? ( static-libs )"
-
-DEPEND="${RDEPEND}"
-PDEPEND="app-misc/ca-certificates"
-
-src_prepare() {
- touch crypto/Makefile.in
-
- sed -i \
- -e '/^[ \t]*CFLAGS=/s#-g ##' \
- -e '/^[ \t]*CFLAGS=/s#-g"#"#' \
- -e '/^[ \t]*CFLAGS=/s#-O2 ##' \
- -e '/^[ \t]*CFLAGS=/s#-O2"#"#' \
- -e '/^[ \t]*USER_CFLAGS=/s#-O2 ##' \
- -e '/^[ \t]*USER_CFLAGS=/s#-O2"#"#' \
- configure || die "fixing CFLAGS failed"
-
- if ! use test ; then
- sed -i \
- -e '/^[ \t]*SUBDIRS =/s#tests##' \
- Makefile.in || die "Removing tests failed"
- fi
-
- eapply "${FILESDIR}"/${PN}-2.8.3-solaris10.patch
- eapply_user
-
- elibtoolize # for Solaris
-}
-
-multilib_src_configure() {
- ECONF_SOURCE="${S}" econf \
- $(use_enable asm) \
- $(use_enable static-libs static)
-}
-
-multilib_src_test() {
- emake check
-}
-
-multilib_src_install_all() {
- einstalldocs
- find "${D}" -name '*.la' -exec rm -f {} + || die
-}
diff --git a/dev-libs/libressl/libressl-3.2.0.ebuild b/dev-libs/libressl/libressl-3.2.0.ebuild
deleted file mode 100644
index d487867..0000000
--- a/dev-libs/libressl/libressl-3.2.0.ebuild
+++ /dev/null
@@ -1,62 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit multilib-minimal libtool
-
-DESCRIPTION="Free version of the SSL/TLS protocol forked from OpenSSL"
-HOMEPAGE="https://www.libressl.org/"
-SRC_URI="https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/${P}.tar.gz"
-
-LICENSE="ISC openssl"
-# Reflects ABI of libcrypto.so and libssl.so. Since these can differ,
-# we'll try to use the max of either. However, if either change between
-# versions, we have to change the subslot to trigger rebuild of consumers.
-SLOT="0/48"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-IUSE="+asm static-libs test"
-RESTRICT="!test? ( test )"
-REQUIRED_USE="test? ( static-libs )"
-
-DEPEND="${RDEPEND}"
-PDEPEND="app-misc/ca-certificates"
-
-src_prepare() {
- touch crypto/Makefile.in
-
- sed -i \
- -e '/^[ \t]*CFLAGS=/s#-g ##' \
- -e '/^[ \t]*CFLAGS=/s#-g"#"#' \
- -e '/^[ \t]*CFLAGS=/s#-O2 ##' \
- -e '/^[ \t]*CFLAGS=/s#-O2"#"#' \
- -e '/^[ \t]*USER_CFLAGS=/s#-O2 ##' \
- -e '/^[ \t]*USER_CFLAGS=/s#-O2"#"#' \
- configure || die "fixing CFLAGS failed"
-
- if ! use test ; then
- sed -i \
- -e '/^[ \t]*SUBDIRS =/s#tests##' \
- Makefile.in || die "Removing tests failed"
- fi
-
- eapply "${FILESDIR}"/${PN}-2.8.3-solaris10.patch
- eapply_user
-
- elibtoolize # for Solaris
-}
-
-multilib_src_configure() {
- ECONF_SOURCE="${S}" econf \
- $(use_enable asm) \
- $(use_enable static-libs static)
-}
-
-multilib_src_test() {
- emake check
-}
-
-multilib_src_install_all() {
- einstalldocs
- find "${D}" -name '*.la' -exec rm -f {} + || die
-}
diff --git a/dev-libs/libressl/libressl-3.2.1.ebuild b/dev-libs/libressl/libressl-3.2.1.ebuild
deleted file mode 100644
index d487867..0000000
--- a/dev-libs/libressl/libressl-3.2.1.ebuild
+++ /dev/null
@@ -1,62 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit multilib-minimal libtool
-
-DESCRIPTION="Free version of the SSL/TLS protocol forked from OpenSSL"
-HOMEPAGE="https://www.libressl.org/"
-SRC_URI="https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/${P}.tar.gz"
-
-LICENSE="ISC openssl"
-# Reflects ABI of libcrypto.so and libssl.so. Since these can differ,
-# we'll try to use the max of either. However, if either change between
-# versions, we have to change the subslot to trigger rebuild of consumers.
-SLOT="0/48"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-IUSE="+asm static-libs test"
-RESTRICT="!test? ( test )"
-REQUIRED_USE="test? ( static-libs )"
-
-DEPEND="${RDEPEND}"
-PDEPEND="app-misc/ca-certificates"
-
-src_prepare() {
- touch crypto/Makefile.in
-
- sed -i \
- -e '/^[ \t]*CFLAGS=/s#-g ##' \
- -e '/^[ \t]*CFLAGS=/s#-g"#"#' \
- -e '/^[ \t]*CFLAGS=/s#-O2 ##' \
- -e '/^[ \t]*CFLAGS=/s#-O2"#"#' \
- -e '/^[ \t]*USER_CFLAGS=/s#-O2 ##' \
- -e '/^[ \t]*USER_CFLAGS=/s#-O2"#"#' \
- configure || die "fixing CFLAGS failed"
-
- if ! use test ; then
- sed -i \
- -e '/^[ \t]*SUBDIRS =/s#tests##' \
- Makefile.in || die "Removing tests failed"
- fi
-
- eapply "${FILESDIR}"/${PN}-2.8.3-solaris10.patch
- eapply_user
-
- elibtoolize # for Solaris
-}
-
-multilib_src_configure() {
- ECONF_SOURCE="${S}" econf \
- $(use_enable asm) \
- $(use_enable static-libs static)
-}
-
-multilib_src_test() {
- emake check
-}
-
-multilib_src_install_all() {
- einstalldocs
- find "${D}" -name '*.la' -exec rm -f {} + || die
-}
diff --git a/dev-libs/libressl/libressl-3.2.3.ebuild b/dev-libs/libressl/libressl-3.2.3.ebuild
deleted file mode 100644
index d487867..0000000
--- a/dev-libs/libressl/libressl-3.2.3.ebuild
+++ /dev/null
@@ -1,62 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit multilib-minimal libtool
-
-DESCRIPTION="Free version of the SSL/TLS protocol forked from OpenSSL"
-HOMEPAGE="https://www.libressl.org/"
-SRC_URI="https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/${P}.tar.gz"
-
-LICENSE="ISC openssl"
-# Reflects ABI of libcrypto.so and libssl.so. Since these can differ,
-# we'll try to use the max of either. However, if either change between
-# versions, we have to change the subslot to trigger rebuild of consumers.
-SLOT="0/48"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-IUSE="+asm static-libs test"
-RESTRICT="!test? ( test )"
-REQUIRED_USE="test? ( static-libs )"
-
-DEPEND="${RDEPEND}"
-PDEPEND="app-misc/ca-certificates"
-
-src_prepare() {
- touch crypto/Makefile.in
-
- sed -i \
- -e '/^[ \t]*CFLAGS=/s#-g ##' \
- -e '/^[ \t]*CFLAGS=/s#-g"#"#' \
- -e '/^[ \t]*CFLAGS=/s#-O2 ##' \
- -e '/^[ \t]*CFLAGS=/s#-O2"#"#' \
- -e '/^[ \t]*USER_CFLAGS=/s#-O2 ##' \
- -e '/^[ \t]*USER_CFLAGS=/s#-O2"#"#' \
- configure || die "fixing CFLAGS failed"
-
- if ! use test ; then
- sed -i \
- -e '/^[ \t]*SUBDIRS =/s#tests##' \
- Makefile.in || die "Removing tests failed"
- fi
-
- eapply "${FILESDIR}"/${PN}-2.8.3-solaris10.patch
- eapply_user
-
- elibtoolize # for Solaris
-}
-
-multilib_src_configure() {
- ECONF_SOURCE="${S}" econf \
- $(use_enable asm) \
- $(use_enable static-libs static)
-}
-
-multilib_src_test() {
- emake check
-}
-
-multilib_src_install_all() {
- einstalldocs
- find "${D}" -name '*.la' -exec rm -f {} + || die
-}
diff --git a/dev-libs/libressl/libressl-3.2.5.ebuild b/dev-libs/libressl/libressl-3.2.5.ebuild
deleted file mode 100644
index d487867..0000000
--- a/dev-libs/libressl/libressl-3.2.5.ebuild
+++ /dev/null
@@ -1,62 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit multilib-minimal libtool
-
-DESCRIPTION="Free version of the SSL/TLS protocol forked from OpenSSL"
-HOMEPAGE="https://www.libressl.org/"
-SRC_URI="https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/${P}.tar.gz"
-
-LICENSE="ISC openssl"
-# Reflects ABI of libcrypto.so and libssl.so. Since these can differ,
-# we'll try to use the max of either. However, if either change between
-# versions, we have to change the subslot to trigger rebuild of consumers.
-SLOT="0/48"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-IUSE="+asm static-libs test"
-RESTRICT="!test? ( test )"
-REQUIRED_USE="test? ( static-libs )"
-
-DEPEND="${RDEPEND}"
-PDEPEND="app-misc/ca-certificates"
-
-src_prepare() {
- touch crypto/Makefile.in
-
- sed -i \
- -e '/^[ \t]*CFLAGS=/s#-g ##' \
- -e '/^[ \t]*CFLAGS=/s#-g"#"#' \
- -e '/^[ \t]*CFLAGS=/s#-O2 ##' \
- -e '/^[ \t]*CFLAGS=/s#-O2"#"#' \
- -e '/^[ \t]*USER_CFLAGS=/s#-O2 ##' \
- -e '/^[ \t]*USER_CFLAGS=/s#-O2"#"#' \
- configure || die "fixing CFLAGS failed"
-
- if ! use test ; then
- sed -i \
- -e '/^[ \t]*SUBDIRS =/s#tests##' \
- Makefile.in || die "Removing tests failed"
- fi
-
- eapply "${FILESDIR}"/${PN}-2.8.3-solaris10.patch
- eapply_user
-
- elibtoolize # for Solaris
-}
-
-multilib_src_configure() {
- ECONF_SOURCE="${S}" econf \
- $(use_enable asm) \
- $(use_enable static-libs static)
-}
-
-multilib_src_test() {
- emake check
-}
-
-multilib_src_install_all() {
- einstalldocs
- find "${D}" -name '*.la' -exec rm -f {} + || die
-}
diff --git a/dev-libs/libressl/libressl-3.1.3.ebuild b/dev-libs/libressl/libressl-3.2.6.ebuild
index e7248a0..f0e4ef2 100644
--- a/dev-libs/libressl/libressl-3.1.3.ebuild
+++ b/dev-libs/libressl/libressl-3.2.6.ebuild
@@ -14,7 +14,7 @@ LICENSE="ISC openssl"
# we'll try to use the max of either. However, if either change between
# versions, we have to change the subslot to trigger rebuild of consumers.
SLOT="0/48"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 ~s390 sparc x86 ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
IUSE="+asm static-libs test"
RESTRICT="!test? ( test )"
REQUIRED_USE="test? ( static-libs )"
diff --git a/dev-libs/libressl/libressl-3.3.0.ebuild b/dev-libs/libressl/libressl-3.3.0.ebuild
deleted file mode 100644
index 7de8ec1..0000000
--- a/dev-libs/libressl/libressl-3.3.0.ebuild
+++ /dev/null
@@ -1,63 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit multilib-minimal libtool
-
-DESCRIPTION="Free version of the SSL/TLS protocol forked from OpenSSL"
-HOMEPAGE="https://www.libressl.org/"
-SRC_URI="https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/${P}.tar.gz"
-
-LICENSE="ISC openssl"
-# Reflects ABI of libcrypto.so and libssl.so. Since these can differ,
-# we'll try to use the max of either. However, if either change between
-# versions, we have to change the subslot to trigger rebuild of consumers.
-SLOT="0/48"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-IUSE="+asm static-libs test"
-RESTRICT="!test? ( test )"
-REQUIRED_USE="test? ( static-libs )"
-
-DEPEND="${RDEPEND}"
-PDEPEND="app-misc/ca-certificates"
-
-src_prepare() {
- touch crypto/Makefile.in
-
- sed -i \
- -e '/^[ \t]*CFLAGS=/s#-g ##' \
- -e '/^[ \t]*CFLAGS=/s#-g"#"#' \
- -e '/^[ \t]*CFLAGS=/s#-O2 ##' \
- -e '/^[ \t]*CFLAGS=/s#-O2"#"#' \
- -e '/^[ \t]*USER_CFLAGS=/s#-O2 ##' \
- -e '/^[ \t]*USER_CFLAGS=/s#-O2"#"#' \
- configure || die "fixing CFLAGS failed"
-
- if ! use test ; then
- sed -i \
- -e '/^[ \t]*SUBDIRS =/s#tests##' \
- Makefile.in || die "Removing tests failed"
- fi
-
- eapply "${FILESDIR}"/${PN}-2.8.3-solaris10.patch
- #eapply "${FILESDIR}"/${PN}-3.2.2-build.patch
- eapply_user
-
- elibtoolize # for Solaris
-}
-
-multilib_src_configure() {
- ECONF_SOURCE="${S}" econf \
- $(use_enable asm) \
- $(use_enable static-libs static)
-}
-
-multilib_src_test() {
- emake check
-}
-
-multilib_src_install_all() {
- einstalldocs
- find "${D}" -name '*.la' -exec rm -f {} + || die
-}
diff --git a/dev-libs/libressl/libressl-3.3.2.ebuild b/dev-libs/libressl/libressl-3.3.2.ebuild
deleted file mode 100644
index b92c362..0000000
--- a/dev-libs/libressl/libressl-3.3.2.ebuild
+++ /dev/null
@@ -1,63 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit multilib-minimal libtool
-
-DESCRIPTION="Free version of the SSL/TLS protocol forked from OpenSSL"
-HOMEPAGE="https://www.libressl.org/"
-SRC_URI="https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/${P}.tar.gz"
-
-LICENSE="ISC openssl"
-# Reflects ABI of libcrypto.so and libssl.so. Since these can differ,
-# we'll try to use the max of either. However, if either change between
-# versions, we have to change the subslot to trigger rebuild of consumers.
-SLOT="0/48"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-IUSE="+asm static-libs test"
-RESTRICT="!test? ( test )"
-REQUIRED_USE="test? ( static-libs )"
-
-DEPEND="${RDEPEND}"
-PDEPEND="app-misc/ca-certificates"
-
-src_prepare() {
- touch crypto/Makefile.in
-
- sed -i \
- -e '/^[ \t]*CFLAGS=/s#-g ##' \
- -e '/^[ \t]*CFLAGS=/s#-g"#"#' \
- -e '/^[ \t]*CFLAGS=/s#-O2 ##' \
- -e '/^[ \t]*CFLAGS=/s#-O2"#"#' \
- -e '/^[ \t]*USER_CFLAGS=/s#-O2 ##' \
- -e '/^[ \t]*USER_CFLAGS=/s#-O2"#"#' \
- configure || die "fixing CFLAGS failed"
-
- if ! use test ; then
- sed -i \
- -e '/^[ \t]*SUBDIRS =/s#tests##' \
- Makefile.in || die "Removing tests failed"
- fi
-
- eapply "${FILESDIR}"/${PN}-2.8.3-solaris10.patch
- #eapply "${FILESDIR}"/${PN}-3.2.2-build.patch
- eapply_user
-
- elibtoolize # for Solaris
-}
-
-multilib_src_configure() {
- ECONF_SOURCE="${S}" econf \
- $(use_enable asm) \
- $(use_enable static-libs static)
-}
-
-multilib_src_test() {
- emake check
-}
-
-multilib_src_install_all() {
- einstalldocs
- find "${D}" -name '*.la' -exec rm -f {} + || die
-}
diff --git a/dev-libs/libressl/libressl-3.3.3.ebuild b/dev-libs/libressl/libressl-3.3.3.ebuild
deleted file mode 100644
index b92c362..0000000
--- a/dev-libs/libressl/libressl-3.3.3.ebuild
+++ /dev/null
@@ -1,63 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit multilib-minimal libtool
-
-DESCRIPTION="Free version of the SSL/TLS protocol forked from OpenSSL"
-HOMEPAGE="https://www.libressl.org/"
-SRC_URI="https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/${P}.tar.gz"
-
-LICENSE="ISC openssl"
-# Reflects ABI of libcrypto.so and libssl.so. Since these can differ,
-# we'll try to use the max of either. However, if either change between
-# versions, we have to change the subslot to trigger rebuild of consumers.
-SLOT="0/48"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-IUSE="+asm static-libs test"
-RESTRICT="!test? ( test )"
-REQUIRED_USE="test? ( static-libs )"
-
-DEPEND="${RDEPEND}"
-PDEPEND="app-misc/ca-certificates"
-
-src_prepare() {
- touch crypto/Makefile.in
-
- sed -i \
- -e '/^[ \t]*CFLAGS=/s#-g ##' \
- -e '/^[ \t]*CFLAGS=/s#-g"#"#' \
- -e '/^[ \t]*CFLAGS=/s#-O2 ##' \
- -e '/^[ \t]*CFLAGS=/s#-O2"#"#' \
- -e '/^[ \t]*USER_CFLAGS=/s#-O2 ##' \
- -e '/^[ \t]*USER_CFLAGS=/s#-O2"#"#' \
- configure || die "fixing CFLAGS failed"
-
- if ! use test ; then
- sed -i \
- -e '/^[ \t]*SUBDIRS =/s#tests##' \
- Makefile.in || die "Removing tests failed"
- fi
-
- eapply "${FILESDIR}"/${PN}-2.8.3-solaris10.patch
- #eapply "${FILESDIR}"/${PN}-3.2.2-build.patch
- eapply_user
-
- elibtoolize # for Solaris
-}
-
-multilib_src_configure() {
- ECONF_SOURCE="${S}" econf \
- $(use_enable asm) \
- $(use_enable static-libs static)
-}
-
-multilib_src_test() {
- emake check
-}
-
-multilib_src_install_all() {
- einstalldocs
- find "${D}" -name '*.la' -exec rm -f {} + || die
-}
diff --git a/dev-libs/libressl/libressl-3.3.1.ebuild b/dev-libs/libressl/libressl-3.4.0.ebuild
index b92c362..b92c362 100644
--- a/dev-libs/libressl/libressl-3.3.1.ebuild
+++ b/dev-libs/libressl/libressl-3.4.0.ebuild
diff --git a/dev-python/cryptography/cryptography-3.4.7-r2.ebuild b/dev-python/cryptography/cryptography-3.4.7-r2.ebuild
new file mode 100644
index 0000000..b3d9bc1
--- /dev/null
+++ b/dev-python/cryptography/cryptography-3.4.7-r2.ebuild
@@ -0,0 +1,77 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{7..10} pypy3 )
+PYTHON_REQ_USE="threads(+)"
+
+inherit distutils-r1 multiprocessing
+
+VEC_P=cryptography_vectors-${PV}
+DESCRIPTION="Library providing cryptographic recipes and primitives"
+HOMEPAGE="https://github.com/pyca/cryptography/ https://pypi.org/project/cryptography/"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz
+ test? ( mirror://pypi/c/cryptography_vectors/${VEC_P}.tar.gz )"
+
+LICENSE="|| ( Apache-2.0 BSD )"
+SLOT="0"
+KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv sparc x86"
+
+RDEPEND="
+ $(python_gen_cond_dep '
+ >=dev-python/cffi-1.8:=[${PYTHON_USEDEP}]
+ ' 'python*')
+ "
+BDEPEND="
+ test? (
+ >=dev-python/hypothesis-1.11.4[${PYTHON_USEDEP}]
+ dev-python/iso8601[${PYTHON_USEDEP}]
+ dev-python/pretend[${PYTHON_USEDEP}]
+ dev-python/pyasn1-modules[${PYTHON_USEDEP}]
+ dev-python/pytz[${PYTHON_USEDEP}]
+ dev-python/pytest-subtests[${PYTHON_USEDEP}]
+ dev-python/pytest-xdist[${PYTHON_USEDEP}]
+ )"
+
+distutils_enable_tests pytest
+
+DEPEND="
+ >=dev-libs/openssl-1.0.2o-r6:0=
+ "
+RDEPEND+=${DEPEND}
+
+PATCHES=(
+ "${FILESDIR}/${P}-py310.patch"
+ "${FILESDIR}/${P}-libressl.patch"
+)
+
+src_prepare() {
+ default
+
+ # avoid automagic dependency on dev-libs/openssl[sslv3]
+ # https://bugs.gentoo.org/789450
+ export CPPFLAGS="${CPPFLAGS} -DOPENSSL_NO_SSL3_METHOD=1"
+
+ # work around availability macros not supported in GCC (yet)
+ if [[ ${CHOST} == *-darwin* ]] ; then
+ local darwinok=0
+ if [[ ${CHOST##*-darwin} -ge 16 ]] ; then
+ darwinok=1
+ fi
+ sed -i -e 's/__builtin_available(macOS 10\.12, \*)/'"${darwinok}"'/' \
+ src/_cffi_src/openssl/src/osrandom_engine.c || die
+ fi
+
+ # this version does not really use Rust, it just creates a dummy
+ # extension to break stuff
+ export CRYPTOGRAPHY_DONT_BUILD_RUST=1
+ sed -e 's:from setuptools_rust import RustExtension:pass:' \
+ -e '/setup_requires/d' \
+ -i setup.py || die
+}
+
+python_test() {
+ local -x PYTHONPATH=${PYTHONPATH}:${WORKDIR}/${VEC_P}
+ epytest -n "$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")"
+}
diff --git a/dev-python/cryptography/files/cryptography-3.4.7-libressl.patch b/dev-python/cryptography/files/cryptography-3.4.7-libressl.patch
new file mode 100644
index 0000000..abbb149
--- /dev/null
+++ b/dev-python/cryptography/files/cryptography-3.4.7-libressl.patch
@@ -0,0 +1,155 @@
+From e540d3285f92d1e8d7d6249b8a6e36948e619fe4 Mon Sep 17 00:00:00 2001
+From: Charlie Li <git@vishwin.info>
+Date: Mon, 19 Apr 2021 17:25:22 -0400
+Subject: [PATCH 1/4] LibreSSL 3.3.2 supports SSL_OP_NO_DTLS*
+
+While here, bump CI
+---
+ src/_cffi_src/openssl/cryptography.py | 9 +++++++++
+ src/_cffi_src/openssl/ssl.py | 2 +-
+ 2 files changed, 10 insertions(+), 1 deletions(-)
+
+diff --git a/src/_cffi_src/openssl/cryptography.py b/src/_cffi_src/openssl/cryptography.py
+index e2b5a13235a..ab296343906 100644
+--- a/src/_cffi_src/openssl/cryptography.py
++++ b/src/_cffi_src/openssl/cryptography.py
+@@ -32,6 +32,13 @@
+ #include <Winsock2.h>
+ #endif
+
++#if CRYPTOGRAPHY_IS_LIBRESSL
++ #define CRYPTOGRAPHY_LIBRESSL_332_OR_GREATER \
++ (LIBRESSL_VERSION_NUMBER >= 0x3030200f)
++#else
++#define CRYPTOGRAPHY_LIBRESSL_332_OR_GREATER (0)
++#endif
++
+ #define CRYPTOGRAPHY_OPENSSL_110F_OR_GREATER \
+ (OPENSSL_VERSION_NUMBER >= 0x1010006f && !CRYPTOGRAPHY_IS_LIBRESSL)
+
+@@ -59,6 +66,8 @@
+ static const int CRYPTOGRAPHY_NEEDS_OSRANDOM_ENGINE;
+
+ static const int CRYPTOGRAPHY_IS_LIBRESSL;
++
++static const int CRYPTOGRAPHY_LIBRESSL_332_OR_GREATER;
+ """
+
+ FUNCTIONS = """
+diff --git a/src/_cffi_src/openssl/ssl.py b/src/_cffi_src/openssl/ssl.py
+index 11a7d63a961..23cbc5ff425 100644
+--- a/src/_cffi_src/openssl/ssl.py
++++ b/src/_cffi_src/openssl/ssl.py
+@@ -585,7 +585,7 @@
+ static const long TLS_ST_OK = 0;
+ #endif
+
+-#if CRYPTOGRAPHY_IS_LIBRESSL
++#if CRYPTOGRAPHY_IS_LIBRESSL && !CRYPTOGRAPHY_LIBRESSL_332_OR_GREATER
+ static const long SSL_OP_NO_DTLSv1 = 0;
+ static const long SSL_OP_NO_DTLSv1_2 = 0;
+ long (*DTLS_set_link_mtu)(SSL *, long) = NULL;
+
+From ec2a1701a34a28783e2353befb9c5c057f65d782 Mon Sep 17 00:00:00 2001
+From: Charlie Li <git@vishwin.info>
+Date: Mon, 19 Apr 2021 17:41:33 -0400
+Subject: [PATCH 2/4] Fix preprocessor guards for LibreSSL's SSL_OP_NO_DTLS*
+
+DTLS_set_link_mtu and DTLS_get_link_min_mtu are not part of 3.3.2
+---
+ src/_cffi_src/openssl/ssl.py | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/src/_cffi_src/openssl/ssl.py b/src/_cffi_src/openssl/ssl.py
+index 23cbc5ff425..a0b1641454e 100644
+--- a/src/_cffi_src/openssl/ssl.py
++++ b/src/_cffi_src/openssl/ssl.py
+@@ -585,9 +585,11 @@
+ static const long TLS_ST_OK = 0;
+ #endif
+
+-#if CRYPTOGRAPHY_IS_LIBRESSL && !CRYPTOGRAPHY_LIBRESSL_332_OR_GREATER
++#if CRYPTOGRAPHY_IS_LIBRESSL
++#if !CRYPTOGRAPHY_LIBRESSL_332_OR_GREATER
+ static const long SSL_OP_NO_DTLSv1 = 0;
+ static const long SSL_OP_NO_DTLSv1_2 = 0;
++#endif
+ long (*DTLS_set_link_mtu)(SSL *, long) = NULL;
+ long (*DTLS_get_link_min_mtu)(SSL *) = NULL;
+ #endif
+
+From 7d03d4477b4f06a3e1ec412afa0f2e4edb4e3893 Mon Sep 17 00:00:00 2001
+From: Charlie Li <git@vishwin.info>
+Date: Mon, 19 Apr 2021 18:16:14 -0400
+Subject: [PATCH 3/4] Switch to LESS_THAN context for LibreSSL 3.3.2
+
+While here, fix indents
+---
+ src/_cffi_src/openssl/cryptography.py | 8 ++++----
+ src/_cffi_src/openssl/ssl.py | 2 +-
+ 2 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/src/_cffi_src/openssl/cryptography.py b/src/_cffi_src/openssl/cryptography.py
+index ab296343906..0b468c8d719 100644
+--- a/src/_cffi_src/openssl/cryptography.py
++++ b/src/_cffi_src/openssl/cryptography.py
+@@ -33,10 +33,10 @@
+ #endif
+
+ #if CRYPTOGRAPHY_IS_LIBRESSL
+- #define CRYPTOGRAPHY_LIBRESSL_332_OR_GREATER \
+- (LIBRESSL_VERSION_NUMBER >= 0x3030200f)
++#define CRYPTOGRAPHY_LIBRESSL_LESS_THAN_332 \
++ (LIBRESSL_VERSION_NUMBER < 0x3030200f)
+ #else
+-#define CRYPTOGRAPHY_LIBRESSL_332_OR_GREATER (0)
++#define CRYPTOGRAPHY_LIBRESSL_LESS_THAN_332 (0)
+ #endif
+
+ #define CRYPTOGRAPHY_OPENSSL_110F_OR_GREATER \
+@@ -67,7 +67,7 @@
+
+ static const int CRYPTOGRAPHY_IS_LIBRESSL;
+
+-static const int CRYPTOGRAPHY_LIBRESSL_332_OR_GREATER;
++static const int CRYPTOGRAPHY_LIBRESSL_LESS_THAN_332;
+ """
+
+ FUNCTIONS = """
+diff --git a/src/_cffi_src/openssl/ssl.py b/src/_cffi_src/openssl/ssl.py
+index a0b1641454e..081ef041fa3 100644
+--- a/src/_cffi_src/openssl/ssl.py
++++ b/src/_cffi_src/openssl/ssl.py
+@@ -586,7 +586,7 @@
+ #endif
+
+ #if CRYPTOGRAPHY_IS_LIBRESSL
+-#if !CRYPTOGRAPHY_LIBRESSL_332_OR_GREATER
++#if CRYPTOGRAPHY_LIBRESSL_LESS_THAN_332
+ static const long SSL_OP_NO_DTLSv1 = 0;
+ static const long SSL_OP_NO_DTLSv1_2 = 0;
+ #endif
+
+From 843ef2dbfff33ea3018b04d926ccd6d1b629ef87 Mon Sep 17 00:00:00 2001
+From: Charlie Li <git@vishwin.info>
+Date: Mon, 19 Apr 2021 18:22:20 -0400
+Subject: [PATCH 4/4] Remove extra C variable declaration
+
+The variable is not actually used from Python
+---
+ src/_cffi_src/openssl/cryptography.py | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/src/_cffi_src/openssl/cryptography.py b/src/_cffi_src/openssl/cryptography.py
+index 0b468c8d719..b9c7a793b3b 100644
+--- a/src/_cffi_src/openssl/cryptography.py
++++ b/src/_cffi_src/openssl/cryptography.py
+@@ -66,8 +66,6 @@
+ static const int CRYPTOGRAPHY_NEEDS_OSRANDOM_ENGINE;
+
+ static const int CRYPTOGRAPHY_IS_LIBRESSL;
+-
+-static const int CRYPTOGRAPHY_LIBRESSL_LESS_THAN_332;
+ """
+
+ FUNCTIONS = """
diff --git a/dev-python/cryptography/files/cryptography-3.4.7-py310.patch b/dev-python/cryptography/files/cryptography-3.4.7-py310.patch
new file mode 100644
index 0000000..d961af8
--- /dev/null
+++ b/dev-python/cryptography/files/cryptography-3.4.7-py310.patch
@@ -0,0 +1,301 @@
+diff --git a/src/cryptography/exceptions.py b/src/cryptography/exceptions.py
+index f5860590..3bd98d82 100644
+--- a/src/cryptography/exceptions.py
++++ b/src/cryptography/exceptions.py
+@@ -3,10 +3,10 @@
+ # for complete details.
+
+
+-from enum import Enum
++from cryptography import utils
+
+
+-class _Reasons(Enum):
++class _Reasons(utils.Enum):
+ BACKEND_MISSING_INTERFACE = 0
+ UNSUPPORTED_HASH = 1
+ UNSUPPORTED_CIPHER = 2
+diff --git a/src/cryptography/hazmat/primitives/_serialization.py b/src/cryptography/hazmat/primitives/_serialization.py
+index 96a5ed9b..160a6b89 100644
+--- a/src/cryptography/hazmat/primitives/_serialization.py
++++ b/src/cryptography/hazmat/primitives/_serialization.py
+@@ -3,13 +3,14 @@
+ # for complete details.
+
+ import abc
+-from enum import Enum
++
++from cryptography import utils
+
+ # This exists to break an import cycle. These classes are normally accessible
+ # from the serialization module.
+
+
+-class Encoding(Enum):
++class Encoding(utils.Enum):
+ PEM = "PEM"
+ DER = "DER"
+ OpenSSH = "OpenSSH"
+@@ -18,14 +19,14 @@ class Encoding(Enum):
+ SMIME = "S/MIME"
+
+
+-class PrivateFormat(Enum):
++class PrivateFormat(utils.Enum):
+ PKCS8 = "PKCS8"
+ TraditionalOpenSSL = "TraditionalOpenSSL"
+ Raw = "Raw"
+ OpenSSH = "OpenSSH"
+
+
+-class PublicFormat(Enum):
++class PublicFormat(utils.Enum):
+ SubjectPublicKeyInfo = "X.509 subjectPublicKeyInfo with PKCS#1"
+ PKCS1 = "Raw PKCS#1"
+ OpenSSH = "OpenSSH"
+@@ -34,7 +35,7 @@ class PublicFormat(Enum):
+ UncompressedPoint = "X9.62 Uncompressed Point"
+
+
+-class ParameterFormat(Enum):
++class ParameterFormat(utils.Enum):
+ PKCS3 = "PKCS3"
+
+
+diff --git a/src/cryptography/hazmat/primitives/kdf/kbkdf.py b/src/cryptography/hazmat/primitives/kdf/kbkdf.py
+index ac36474f..75fe7d51 100644
+--- a/src/cryptography/hazmat/primitives/kdf/kbkdf.py
++++ b/src/cryptography/hazmat/primitives/kdf/kbkdf.py
+@@ -4,7 +4,6 @@
+
+
+ import typing
+-from enum import Enum
+
+ from cryptography import utils
+ from cryptography.exceptions import (
+@@ -19,11 +18,11 @@ from cryptography.hazmat.primitives import constant_time, hashes, hmac
+ from cryptography.hazmat.primitives.kdf import KeyDerivationFunction
+
+
+-class Mode(Enum):
++class Mode(utils.Enum):
+ CounterMode = "ctr"
+
+
+-class CounterLocation(Enum):
++class CounterLocation(utils.Enum):
+ BeforeFixed = "before_fixed"
+ AfterFixed = "after_fixed"
+
+diff --git a/src/cryptography/hazmat/primitives/serialization/pkcs7.py b/src/cryptography/hazmat/primitives/serialization/pkcs7.py
+index bcd9e330..57aac7e3 100644
+--- a/src/cryptography/hazmat/primitives/serialization/pkcs7.py
++++ b/src/cryptography/hazmat/primitives/serialization/pkcs7.py
+@@ -3,8 +3,8 @@
+ # for complete details.
+
+ import typing
+-from enum import Enum
+
++from cryptography import utils
+ from cryptography import x509
+ from cryptography.hazmat.backends import _get_backend
+ from cryptography.hazmat.primitives import hashes, serialization
+@@ -35,7 +35,7 @@ _ALLOWED_PRIVATE_KEY_TYPES = typing.Union[
+ ]
+
+
+-class PKCS7Options(Enum):
++class PKCS7Options(utils.Enum):
+ Text = "Add text/plain MIME type"
+ Binary = "Don't translate input data into canonical MIME format"
+ DetachedSignature = "Don't embed data in the PKCS7 structure"
+diff --git a/src/cryptography/utils.py b/src/cryptography/utils.py
+index ef0fc443..9e571cfd 100644
+--- a/src/cryptography/utils.py
++++ b/src/cryptography/utils.py
+@@ -4,6 +4,7 @@
+
+
+ import abc
++import enum
+ import inspect
+ import sys
+ import typing
+@@ -162,3 +163,13 @@ int_from_bytes = deprecated(
+ "int_from_bytes is deprecated, use int.from_bytes instead",
+ DeprecatedIn34,
+ )
++
++
++# Python 3.10 changed representation of enums. We use well-defined object
++# representation and string representation from Python 3.9.
++class Enum(enum.Enum):
++ def __repr__(self):
++ return f"<{self.__class__.__name__}.{self._name_}: {self._value_!r}>"
++
++ def __str__(self):
++ return f"{self.__class__.__name__}.{self._name_}"
+diff --git a/src/cryptography/x509/base.py b/src/cryptography/x509/base.py
+index 5505fa3b..e3846c33 100644
+--- a/src/cryptography/x509/base.py
++++ b/src/cryptography/x509/base.py
+@@ -7,9 +7,9 @@ import abc
+ import datetime
+ import os
+ import typing
+-from enum import Enum
+
+ from cryptography.hazmat._types import _PRIVATE_KEY_TYPES, _PUBLIC_KEY_TYPES
++from cryptography import utils
+ from cryptography.hazmat.backends import _get_backend
+ from cryptography.hazmat.primitives import hashes, serialization
+ from cryptography.hazmat.primitives.asymmetric import (
+@@ -66,7 +66,7 @@ def _convert_to_naive_utc_time(time: datetime.datetime) -> datetime.datetime:
+ return time
+
+
+-class Version(Enum):
++class Version(utils.Enum):
+ v1 = 0
+ v3 = 2
+
+diff --git a/src/cryptography/x509/certificate_transparency.py b/src/cryptography/x509/certificate_transparency.py
+index d51bee92..d80f051a 100644
+--- a/src/cryptography/x509/certificate_transparency.py
++++ b/src/cryptography/x509/certificate_transparency.py
+@@ -5,15 +5,16 @@
+
+ import abc
+ import datetime
+-from enum import Enum
+
++from cryptography import utils
+
+-class LogEntryType(Enum):
++
++class LogEntryType(utils.Enum):
+ X509_CERTIFICATE = 0
+ PRE_CERTIFICATE = 1
+
+
+-class Version(Enum):
++class Version(utils.Enum):
+ v1 = 0
+
+
+diff --git a/src/cryptography/x509/extensions.py b/src/cryptography/x509/extensions.py
+index 6cae016a..742f1fa2 100644
+--- a/src/cryptography/x509/extensions.py
++++ b/src/cryptography/x509/extensions.py
+@@ -8,7 +8,6 @@ import datetime
+ import hashlib
+ import ipaddress
+ import typing
+-from enum import Enum
+
+ from cryptography import utils
+ from cryptography.hazmat._der import (
+@@ -634,7 +633,7 @@ class DistributionPoint(object):
+ crl_issuer = utils.read_only_property("_crl_issuer")
+
+
+-class ReasonFlags(Enum):
++class ReasonFlags(utils.Enum):
+ unspecified = "unspecified"
+ key_compromise = "keyCompromise"
+ ca_compromise = "cACompromise"
+@@ -978,7 +977,7 @@ class TLSFeature(ExtensionType):
+ return hash(tuple(self._features))
+
+
+-class TLSFeatureType(Enum):
++class TLSFeatureType(utils.Enum):
+ # status_request is defined in RFC 6066 and is used for what is commonly
+ # called OCSP Must-Staple when present in the TLS Feature extension in an
+ # X.509 certificate.
+diff --git a/src/cryptography/x509/name.py b/src/cryptography/x509/name.py
+index a579aa21..9069a9f4 100644
+--- a/src/cryptography/x509/name.py
++++ b/src/cryptography/x509/name.py
+@@ -3,14 +3,13 @@
+ # for complete details.
+
+ import typing
+-from enum import Enum
+
+ from cryptography import utils
+ from cryptography.hazmat.backends import _get_backend
+ from cryptography.x509.oid import NameOID, ObjectIdentifier
+
+
+-class _ASN1Type(Enum):
++class _ASN1Type(utils.Enum):
+ UTF8String = 12
+ NumericString = 18
+ PrintableString = 19
+diff --git a/src/cryptography/x509/ocsp.py b/src/cryptography/x509/ocsp.py
+index 1c5de73e..bcf210c1 100644
+--- a/src/cryptography/x509/ocsp.py
++++ b/src/cryptography/x509/ocsp.py
+@@ -6,8 +6,8 @@
+ import abc
+ import datetime
+ import typing
+-from enum import Enum
+
++from cryptography import utils
+ from cryptography import x509
+ from cryptography.hazmat.primitives import hashes, serialization
+ from cryptography.x509.base import (
+@@ -27,12 +27,12 @@ _OIDS_TO_HASH = {
+ }
+
+
+-class OCSPResponderEncoding(Enum):
++class OCSPResponderEncoding(utils.Enum):
+ HASH = "By Hash"
+ NAME = "By Name"
+
+
+-class OCSPResponseStatus(Enum):
++class OCSPResponseStatus(utils.Enum):
+ SUCCESSFUL = 0
+ MALFORMED_REQUEST = 1
+ INTERNAL_ERROR = 2
+@@ -58,7 +58,7 @@ def _verify_algorithm(algorithm):
+ )
+
+
+-class OCSPCertStatus(Enum):
++class OCSPCertStatus(utils.Enum):
+ GOOD = 0
+ REVOKED = 1
+ UNKNOWN = 2
+diff --git a/tests/test_cryptography_utils.py b/tests/test_cryptography_utils.py
+index 6b795e0c..803997ac 100644
+--- a/tests/test_cryptography_utils.py
++++ b/tests/test_cryptography_utils.py
+@@ -2,6 +2,7 @@
+ # 2.0, and the BSD License. See the LICENSE file in the root of this repository
+ # for complete details.
+
++import enum
+ import typing
+
+ import pytest
+@@ -51,3 +52,13 @@ class TestCachedProperty(object):
+ assert len(accesses) == 1
+ assert t.t == 14
+ assert len(accesses) == 1
++
++
++def test_enum():
++ class TestEnum(utils.Enum):
++ value = "something"
++
++ assert issubclass(TestEnum, enum.Enum)
++ assert isinstance(TestEnum.value, enum.Enum)
++ assert repr(TestEnum.value) == "<TestEnum.value: 'something'>"
++ assert str(TestEnum.value) == "TestEnum.value"
diff --git a/dev-python/m2crypto/m2crypto-0.35.2-r1.ebuild b/dev-python/m2crypto/m2crypto-0.35.2-r1.ebuild
deleted file mode 100644
index 07e83cb..0000000
--- a/dev-python/m2crypto/m2crypto-0.35.2-r1.ebuild
+++ /dev/null
@@ -1,63 +0,0 @@
-# Copyright 2018-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python3_{6,7,8})
-PYTHON_REQ_USE="threads(+)"
-
-inherit distutils-r1 toolchain-funcs
-
-MY_PN="M2Crypto"
-DESCRIPTION="A Python crypto and SSL toolkit"
-HOMEPAGE="https://gitlab.com/m2crypto/m2crypto https://pypi.org/project/M2Crypto/"
-SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_PN}-${PV}.tar.gz"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 s390 sparc x86 ~amd64-linux ~x86-linux ~x64-macos"
-
-RDEPEND="
- dev-libs/openssl:0=
- $(python_gen_cond_dep '
- dev-python/typing[${PYTHON_USEDEP}]
- ' -2)
-"
-DEPEND="${RDEPEND}"
-BDEPEND="
- >=dev-lang/swig-2.0.9
- dev-python/setuptools[${PYTHON_USEDEP}]
-"
-
-S="${WORKDIR}/${MY_PN}-${PV}"
-
-PATCHES=(
- "${FILESDIR}/${PN}-libressl-0.31.0.patch"
-)
-
-swig_define() {
- local x
- for x; do
- if tc-cpp-is-true "defined(${x})"; then
- SWIG_FEATURES+=" -D${x}"
- fi
- done
-}
-
-python_compile() {
- # setup.py looks at platform.machine() to determine swig options.
- # For exotic ABIs, we need to give swig a hint.
- local -x SWIG_FEATURES=
-
- # https://bugs.gentoo.org/617946
- swig_define __ILP32__
-
- # https://bugs.gentoo.org/674112
- swig_define __ARM_PCS_VFP
-
- distutils-r1_python_compile --openssl="${ESYSROOT}"/usr
-}
-
-python_test() {
- esetup.py test
-}
diff --git a/dev-qt/qtnetwork/qtnetwork-5.15.2-r1.ebuild b/dev-qt/qtnetwork/qtnetwork-5.15.2-r2.ebuild
index ce01f17..ce01f17 100644
--- a/dev-qt/qtnetwork/qtnetwork-5.15.2-r1.ebuild
+++ b/dev-qt/qtnetwork/qtnetwork-5.15.2-r2.ebuild
diff --git a/net-misc/seafile-client/Manifest b/net-misc/seafile-client/Manifest
index 43d5a11..bc6e50e 100644
--- a/net-misc/seafile-client/Manifest
+++ b/net-misc/seafile-client/Manifest
@@ -1,2 +1,3 @@
DIST seafile-client-8.0.1.tar.gz 11679293 BLAKE2B 52ad28fb316d99240692883218e626a8ca33f8265d62dadfc2eed400c889d47e9aa7887ea6c6fd994596537a5db163b334fb72c791b38529f7219c5a25c813d3 SHA512 ca5dd5a6b27316e1f6fb670e3286d24015d99391c0e1447e2ed42f3d4f72769d6a3dda78bc388ad8d303d4ab1167e4e50844574ecd6f61149b1966e99a3a7719
DIST seafile-client-8.0.2.tar.gz 11694494 BLAKE2B 7230b17e9b85a990b87b9fae7d2d7bfc3a388ae82a777b3fa3abf8a2e88bb3ad6d73c8ff60aef34587ced6665594a71c0020c90065f6bd4fcaac79e15b41f923 SHA512 f66ea240816ec09b56bf3b121947a26bfbafeacd34c1cdb77f8244c713f0aea3f920c6eb6c3cf161034001a7d8ddb451e507acfb6f97e21ac5ebbb792da7ebf4
+DIST seafile-client-8.0.3.tar.gz 11694141 BLAKE2B 03a30d824ebe45a58a93baf127714b119c73254cdbc3f13f5cc81807dbf7ebfc333a2e1c36a325728d1bc60fa3392eb7c7eb6ea7d978808200abe2e93c63cc72 SHA512 944751e84b5336d07c0a24a69c10ef4e5a84b133c22d148226bceee9ae8f989c45de28950c0a16fb66eb9a5aa43ff83a21c5b0979e5421763383b93acdde5aff
diff --git a/net-misc/seafile-client/seafile-client-8.0.3.ebuild b/net-misc/seafile-client/seafile-client-8.0.3.ebuild
new file mode 100644
index 0000000..d022c5b
--- /dev/null
+++ b/net-misc/seafile-client/seafile-client-8.0.3.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+RELEASE_COMMIT="c49c317f3bf19001c06f189d0706b6a3a2d6533c"
+
+inherit xdg cmake
+
+DESCRIPTION="Seafile desktop client"
+HOMEPAGE="https://www.seafile.com/ https://github.com/haiwen/seafile-client/"
+SRC_URI="https://github.com/haiwen/${PN}/archive/${RELEASE_COMMIT}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="shibboleth test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="dev-db/sqlite:3
+ dev-libs/glib:2
+ dev-libs/jansson
+ dev-libs/libevent
+ dev-libs/openssl:=
+ dev-qt/qtcore:5
+ dev-qt/qtdbus:5
+ dev-qt/qtgui:5
+ dev-qt/qtnetwork:5
+ dev-qt/qtwidgets:5
+ net-libs/libsearpc
+ ~net-misc/seafile-${PV}
+ shibboleth? ( dev-qt/qtwebengine:5[widgets] )
+ sys-libs/zlib"
+DEPEND="${RDEPEND}
+ test? ( dev-qt/qttest:5 )"
+BDEPEND="dev-qt/linguist-tools:5"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-select-qt5.patch"
+ "${FILESDIR}/${PN}-7.0.9-qt-5.15.patch"
+ "${FILESDIR}/${PN}-7.0.9-libressl.patch"
+)
+
+S="${WORKDIR}/${PN}-${RELEASE_COMMIT}"
+
+src_configure() {
+ local mycmakeargs=(
+ -DBUILD_SHIBBOLETH_SUPPORT="$(usex shibboleth)"
+ -DBUILD_TESTING="$(usex test)"
+ )
+ cmake_src_configure
+}
diff --git a/net-wireless/wpa_supplicant/Manifest b/net-wireless/wpa_supplicant/Manifest
index 07c6500..587047b 100644
--- a/net-wireless/wpa_supplicant/Manifest
+++ b/net-wireless/wpa_supplicant/Manifest
@@ -1 +1,2 @@
+DIST wpa_supplicant-2.9-r3-patches.tar.bz2 5266 BLAKE2B 284fdeaf6328c35b1f5e88075c62c3b008ec2c400b0cc163a59d9cf8d7c356c3e58f8798e5bade102259d2e5be2ed298b63a0001d0a4ab71d90604a8ee8bf274 SHA512 80e4950ddc99d1134a29a3e5a39767c756f7c9f9f283749e688db3435184631f0384b78954f926724ceff86c96d05b4fb042160265e9d00f976a96e864b7ecc5
DIST wpa_supplicant-2.9.tar.gz 3231785 BLAKE2B f1e2a5cb37b02d5c74116b5bc7f67c47d85f916c972cbd6b881d63a317161294a37c8517aabe6c74f9617c762aaa76d869f318af311473160e87bac8ac2a1807 SHA512 37a33f22cab9d27084fbef29856eaea0f692ff339c5b38bd32402dccf293cb849afd4a870cd3b5ca78179f0102f4011ce2f3444a53dc41dc75a5863b0a2226c8
diff --git a/net-wireless/wpa_supplicant/wpa_supplicant-2.9-r2.ebuild b/net-wireless/wpa_supplicant/wpa_supplicant-2.9-r5.ebuild
index 5098631..50765e1 100644
--- a/net-wireless/wpa_supplicant/wpa_supplicant-2.9-r2.ebuild
+++ b/net-wireless/wpa_supplicant/wpa_supplicant-2.9-r5.ebuild
@@ -15,6 +15,7 @@ if [ "${PV}" = "9999" ]; then
else
KEYWORDS="~alpha amd64 arm arm64 ~ia64 ~mips ppc ppc64 ~sparc x86"
SRC_URI="https://w1.fi/releases/${P}.tar.gz"
+ SRC_URI+=" https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${PN}-2.9-r3-patches.tar.bz2"
fi
SLOT="0"
@@ -30,7 +31,7 @@ REQUIRED_USE="
"
DEPEND="
- >=dev-libs/openssl-1.0.2k:0=[bindist=]
+ >=dev-libs/openssl-1.0.2k:0=[bindist(-)=]
dbus? ( sys-apps/dbus )
kernel_linux? (
dev-libs/libnl:3
@@ -126,8 +127,13 @@ src_prepare() {
# bug (640492)
sed -i 's#-Werror ##' wpa_supplicant/Makefile || die
- #CVE-2019-16275 bug #696030
+ ## Security patches
+ # CVE-2019-16275 (bug #696030)
eapply "${FILESDIR}/wpa_supplicant-2.9-AP-Silently-ignore-management-frame-from-unexpected.patch"
+ # 2020-2, 2021-1 security advisories (bug #768759)
+ eapply "${WORKDIR}"/wpa_supplicant-2.9-r3-patches/security-{2020-2,2021-1}/*.patch
+ # CVE-2021-30004 (bug #780138)
+ eapply "${WORKDIR}"/wpa_supplicant-2.9-r3-patches/misc/CVE-2021-30004.patch
# libressl patch (https://github.com/gentoo/libressl/issues/336)
eapply "${FILESDIR}/${P}-libressl.patch"