parent
ea178559d7
commit
9042233a5a
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,45 +0,0 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
inherit autotools fixheadtails toolchain-funcs
|
||||
|
||||
DESCRIPTION="A flexible and fast logfile colorizer"
|
||||
HOMEPAGE="https://git.madhouse-project.org/archive/ccze"
|
||||
SRC_URI="mirror://gentoo/${P}.tar.gz"
|
||||
|
||||
LICENSE="GPL-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="amd64 ~arm ppc x86"
|
||||
|
||||
RESTRICT="test"
|
||||
|
||||
DEPEND="dev-libs/libpcre
|
||||
sys-libs/ncurses:0="
|
||||
RDEPEND="${DEPEND}"
|
||||
|
||||
DOCS=( AUTHORS ChangeLog ChangeLog-0.1 NEWS THANKS README FAQ )
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/ccze-fbsd.patch
|
||||
"${FILESDIR}"/ccze-segfault.patch
|
||||
"${FILESDIR}"/ccze-ldflags.patch
|
||||
"${FILESDIR}"/${P}-tinfo.patch
|
||||
)
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
# GCC 4.x fixes
|
||||
sed -e 's/-Wswitch -Wmulticharacter/-Wswitch/' \
|
||||
-i src/Makefile.in || die
|
||||
sed -e '/AC_CHECK_TYPE(error_t, int)/d' \
|
||||
-i configure.ac || die
|
||||
|
||||
eautoreconf
|
||||
|
||||
ht_fix_file Rules.mk.in
|
||||
|
||||
tc-export CC
|
||||
}
|
@ -1,26 +0,0 @@
|
||||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
inherit autotools
|
||||
|
||||
DESCRIPTION="Log rotation software"
|
||||
HOMEPAGE="https://github.com/fordmason/cronolog"
|
||||
SRC_URI="http://cronolog.org/download/${P}.tar.gz"
|
||||
|
||||
LICENSE="GPL-2+ Apache-1.0"
|
||||
SLOT="0"
|
||||
KEYWORDS="amd64 ~arm ppc x86"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${PV}-patches
|
||||
# rename and move into ${PV}-patches after -r3 removal
|
||||
"${FILESDIR}"/${P}-umask.patch
|
||||
)
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
mv configure.{in,ac} || die
|
||||
eautoreconf
|
||||
}
|
@ -1,25 +0,0 @@
|
||||
# Copyright 1999-2019 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
inherit toolchain-funcs
|
||||
|
||||
DESCRIPTION="A tool to read SMART information from harddiscs"
|
||||
HOMEPAGE="http://www.linalco.com/comunidad.html http://www.linux-ide.org/smart.html"
|
||||
SRC_URI="http://www.linalco.com/ragnar/${P}.tar.gz"
|
||||
|
||||
LICENSE="GPL-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="amd64 ppc sparc x86"
|
||||
IUSE=""
|
||||
|
||||
src_compile() {
|
||||
$(tc-getCC) ${CFLAGS} -Wall ${LDFLAGS} -o ${PN} ${PN}.c || die "compile"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
dobin ide-smart
|
||||
doman ide-smart.8
|
||||
dodoc README
|
||||
}
|
@ -1,73 +0,0 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
inherit toolchain-funcs
|
||||
|
||||
DESCRIPTION="Automatically monitor system logs and mail security violations"
|
||||
# Seems that the project has been discontinued by CISCO?
|
||||
HOMEPAGE="https://sourceforge.net/projects/sentrytools/"
|
||||
SRC_URI="mirror://gentoo/${P}.tar.gz"
|
||||
S="${WORKDIR}"/logcheck-${PV}
|
||||
|
||||
LICENSE="GPL-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="amd64 arm ~mips ppc ~s390 sparc x86"
|
||||
IUSE="selinux"
|
||||
|
||||
RDEPEND="
|
||||
virtual/mailx
|
||||
selinux? ( sec-policy/selinux-logsentry )
|
||||
"
|
||||
|
||||
src_compile() {
|
||||
einfo "compile and install mixed in the package makefile"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
dodir /usr/bin /var/tmp/logcheck /etc/logcheck
|
||||
|
||||
cp systems/linux/logcheck.sh{,.orig} || die
|
||||
|
||||
sed -i \
|
||||
-e 's:/usr/local/bin:/usr/bin:' \
|
||||
-e 's:/usr/local/etc:/etc/logcheck:' \
|
||||
-e 's:/etc/logcheck/tmp:/var/tmp/logcheck:' \
|
||||
systems/linux/logcheck.sh || \
|
||||
die "sed logcheck.sh failed"
|
||||
sed -i \
|
||||
-e "s:/usr/local/bin:${D}/usr/bin:" \
|
||||
-e "s:/usr/local/etc:${D}/etc/logcheck:" \
|
||||
-e "s:/etc/logcheck/tmp:/var/tmp/logcheck:" \
|
||||
-e "s:\$(CC):& \$(LDFLAGS):" \
|
||||
Makefile || die "sed Makefile failed"
|
||||
|
||||
emake CC="$(tc-getCC)" CFLAGS="${CFLAGS}" linux
|
||||
|
||||
dodoc README* CHANGES CREDITS
|
||||
dodoc systems/linux/README.*
|
||||
|
||||
cat << EOF > "${S}"/logsentry.cron || die
|
||||
#!/bin/sh
|
||||
#
|
||||
# Uncomment the following if you want
|
||||
# logsentry (logcheck) to run hourly
|
||||
#
|
||||
# this is part of the logsentry package
|
||||
#
|
||||
#
|
||||
|
||||
#/bin/sh /etc/logcheck/logcheck.sh
|
||||
EOF
|
||||
|
||||
exeinto /etc/cron.hourly
|
||||
doexe logsentry.cron
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
elog
|
||||
elog "Uncomment the logcheck line in /etc/cron.hourly/logsentry.cron,"
|
||||
elog "or add directly to root's crontab"
|
||||
elog
|
||||
}
|
@ -1 +1,2 @@
|
||||
DIST mkosi-15.1.tar.gz 120606 BLAKE2B 36171c08c18dd3ba3c2e54c8a3374fad2a9b008f8253e6cd57cedf7b7e8216b6610b30f9f46aa634de62ebf257d1e8eff94a83b07c027708e4875e24bc0a8305 SHA512 3b65c6b964aa2bde12117b7b2c3e4be0ac72036a92a115f1e93e7be0b3b0aa0bd3adb753ee49865723a9bc677bc4492416caafff4fec3ffd942de78357c11608
|
||||
DIST mkosi-17.1.tar.gz 133505 BLAKE2B 96824568dd53cd83a1f8b95072c750e1a0bbd06356df19c62ea9799a5d8f1b2e55f108a3ec3cf171f5dfdefcc1ac5bc86785a60d80def38a5e1817b91f1d9486 SHA512 59988a6a81c0456df6fa9673032d1e25c5cc382b45fd0299c974559d573279c4c38f5600b4e14a71ecdaa013d9b97b90cc815b3b601a7dd061924519cd8b76bf
|
||||
|
@ -0,0 +1,41 @@
|
||||
# Copyright 2021-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
DISTUTILS_USE_PEP517=setuptools
|
||||
PYTHON_COMPAT=( python3_{9..11} )
|
||||
|
||||
inherit distutils-r1 optfeature
|
||||
|
||||
DESCRIPTION="Build Bespoke OS Images"
|
||||
HOMEPAGE="https://github.com/systemd/mkosi"
|
||||
SRC_URI="https://github.com/systemd/mkosi/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
|
||||
|
||||
LICENSE="GPL-2+"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64"
|
||||
RDEPEND="
|
||||
app-emulation/qemu
|
||||
sys-apps/bubblewrap
|
||||
>=sys-apps/systemd-254
|
||||
sys-firmware/edk2-ovmf"
|
||||
BDEPEND="virtual/pandoc"
|
||||
|
||||
distutils_enable_tests pytest
|
||||
|
||||
src_compile() {
|
||||
distutils-r1_src_compile
|
||||
|
||||
./tools/make-man-page.sh || die
|
||||
}
|
||||
|
||||
src_install() {
|
||||
distutils-r1_src_install
|
||||
|
||||
doman mkosi/resources/mkosi.1
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
optfeature "For debian support: " dev-util/debootstrap
|
||||
}
|
@ -1,3 +1 @@
|
||||
DIST setools-4.4.0.tar.bz2 275218 BLAKE2B f716a78dd628e0309d3802f2155ef3a045dd8ebee7dec42be9f8b5fc0069b0df4e3d827b0a0cc03f7f02f5a3dff1d7ab7e4eee0d83d6cf4c87af82fe756a9321 SHA512 2ec92d7a6e30261549b6a8d2f17175d4a7d8313ef0cd81f4a19a91c53fe0107bac9a89c19dd67a4c534ee51ec520590795b4312f9e03e69fdf1763b0c35291f8
|
||||
DIST setools-4.4.1.tar.bz2 262328 BLAKE2B 328a54b8efd570fad03b27a9e52b7c573e0afb6fe23a245ad248fe8931dd737729aac5d9b6371c163d1939043a777b69cf78091cde8c33e5ef7670110615285e SHA512 af1844f7f7232729eb7e93f6680775818cda93532c62524c5385a4ac7437c51bdb58ebd970a9f61f6e1b018367853d35303d3c5ee1cc087e0e26e893be42d559
|
||||
DIST setools-4.4.2.tar.bz2 261962 BLAKE2B 7c8e47d8c15f1eb72d93da5d3ae1a64e857ed0a75e1a47bbad9e4b0d11180581d9e4705ebe942e460acbc4d68261f06f9b03a8c4af1516cc388c201e30dca75e SHA512 4e8cba61ca28459387d862136a2d8ee0914c4bcd254a6d39792cbfcbbf7e58cb82223c05d66c114b08aebbd75c11cef11517c51f674ddb3c1913dc85414546c1
|
||||
|
@ -1,62 +0,0 @@
|
||||
From 32eed2ae8fcd868179a317d48cfd61d828c834df Mon Sep 17 00:00:00 2001
|
||||
From: Jason Zaman <jason@perfinion.com>
|
||||
Date: Sun, 19 Sep 2021 14:12:44 +0200
|
||||
Subject: [PATCH] __init__.py: Make NetworkX dep optional
|
||||
|
||||
selinux commit ba23ba068364ab11ff51f52bd1e20e3c63798a62
|
||||
"python: Import specific modules from setools for less deps"
|
||||
Makes userspace tools only need specific parts of setools so that the
|
||||
NetworkX dep can be dropped for minimal installations.
|
||||
Unfortunately the __init__ still imports the parts which require
|
||||
NetworkX. Wrap them in try except to guard for missing NetworkX.
|
||||
|
||||
$ semanage export
|
||||
Traceback (most recent call last):
|
||||
File "/usr/lib/python-exec/python3.9/semanage", line 29, in <module>
|
||||
import seobject
|
||||
File "/usr/lib/python3.9/site-packages/seobject.py", line 33, in <module>
|
||||
import sepolicy
|
||||
File "/usr/lib/python3.9/site-packages/sepolicy/__init__.py", line 15, in <module>
|
||||
from setools.boolquery import BoolQuery
|
||||
File "/usr/lib/python3.9/site-packages/setools/__init__.py", line 94, in <module>
|
||||
from .infoflow import InfoFlowAnalysis
|
||||
File "/usr/lib/python3.9/site-packages/setools/infoflow.py", line 24, in <module>
|
||||
import networkx as nx
|
||||
ModuleNotFoundError: No module named 'networkx'
|
||||
|
||||
Bug: https://bugs.gentoo.org/809038
|
||||
Signed-off-by: Jason Zaman <jason@perfinion.com>
|
||||
---
|
||||
setools/__init__.py | 13 +++++++++++--
|
||||
1 file changed, 11 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/setools/__init__.py b/setools/__init__.py
|
||||
index d72d343..e583737 100644
|
||||
--- a/setools/__init__.py
|
||||
+++ b/setools/__init__.py
|
||||
@@ -91,11 +91,20 @@ from .pcideviceconquery import PcideviceconQuery
|
||||
from .devicetreeconquery import DevicetreeconQuery
|
||||
|
||||
# Information Flow Analysis
|
||||
-from .infoflow import InfoFlowAnalysis
|
||||
+try:
|
||||
+ from .infoflow import InfoFlowAnalysis
|
||||
+except ImportError:
|
||||
+ # NetworkX is optional
|
||||
+ pass
|
||||
+
|
||||
from .permmap import PermissionMap, RuleWeight, Mapping
|
||||
|
||||
# Domain Transition Analysis
|
||||
-from .dta import DomainTransitionAnalysis, DomainEntrypoint, DomainTransition
|
||||
+try:
|
||||
+ from .dta import DomainTransitionAnalysis, DomainEntrypoint, DomainTransition
|
||||
+except ImportError:
|
||||
+ # NetworkX is optional
|
||||
+ pass
|
||||
|
||||
# Policy difference
|
||||
from .diff import PolicyDifference
|
||||
--
|
||||
2.32.0
|
||||
|
@ -1,16 +0,0 @@
|
||||
--- a/setup.py 2021-03-17 22:56:42.016632635 +0000
|
||||
+++ b/setup.py 2021-03-17 23:02:33.625713629 +0000
|
||||
@@ -139,10 +139,10 @@ setup(name='setools',
|
||||
author_email='pebenito@ieee.org',
|
||||
url='https://github.com/SELinuxProject/setools',
|
||||
cmdclass={'build_qhc': QtHelpCommand, 'clean': CleanCommand},
|
||||
- packages=['setools', 'setools.checker', 'setools.diff', 'setoolsgui', 'setoolsgui.apol'],
|
||||
- scripts=['apol', 'sediff', 'seinfo', 'seinfoflow', 'sesearch', 'sedta', 'sechecker'],
|
||||
+ packages=['setools', 'setools.checker', 'setools.diff'],
|
||||
+ scripts=['sediff', 'seinfo', 'seinfoflow', 'sesearch', 'sedta', 'sechecker'],
|
||||
data_files=installed_data,
|
||||
- package_data={'': ['*.ui', '*.qhc', '*.qch'], 'setools': ['perm_map']},
|
||||
+ package_data={'setools': ['perm_map']},
|
||||
ext_modules=cythonize(ext_py_mods, include_path=['setools/policyrep'],
|
||||
annotate=cython_annotate,
|
||||
compiler_directives={"language_level": 3,
|
@ -1,55 +0,0 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="7"
|
||||
PYTHON_COMPAT=( python3_{9..11} )
|
||||
DISTUTILS_USE_SETUPTOOLS=rdepend
|
||||
|
||||
inherit distutils-r1
|
||||
|
||||
DESCRIPTION="Policy Analysis Tools for SELinux"
|
||||
HOMEPAGE="https://github.com/SELinuxProject/setools/wiki"
|
||||
|
||||
if [[ ${PV} == 9999 ]] ; then
|
||||
inherit git-r3
|
||||
EGIT_REPO_URI="https://github.com/SELinuxProject/setools.git"
|
||||
else
|
||||
SRC_URI="https://github.com/SELinuxProject/setools/releases/download/${PV}/${P}.tar.bz2"
|
||||
KEYWORDS="amd64 arm arm64 x86"
|
||||
fi
|
||||
|
||||
LICENSE="GPL-2 LGPL-2.1"
|
||||
SLOT="0"
|
||||
IUSE="test infoflow X"
|
||||
RESTRICT="!test? ( test )"
|
||||
S="${WORKDIR}/${PN}"
|
||||
|
||||
RDEPEND="${PYTHON_DEPS}
|
||||
dev-python/setuptools[${PYTHON_USEDEP}]
|
||||
>=sys-libs/libsepol-3.2:=
|
||||
>=sys-libs/libselinux-3.2:=
|
||||
infoflow? ( >=dev-python/networkx-2.0[${PYTHON_USEDEP}] )
|
||||
X? (
|
||||
dev-python/PyQt5[gui,widgets,${PYTHON_USEDEP}]
|
||||
)"
|
||||
DEPEND="${RDEPEND}"
|
||||
BDEPEND="<dev-python/cython-3[${PYTHON_USEDEP}]
|
||||
dev-python/setuptools[${PYTHON_USEDEP}]
|
||||
test? (
|
||||
>=dev-python/networkx-2.0[${PYTHON_USEDEP}]
|
||||
sys-apps/checkpolicy
|
||||
)"
|
||||
|
||||
python_prepare_all() {
|
||||
sed -i "s/'-Werror', //" "${S}"/setup.py || die "failed to remove Werror"
|
||||
sed -i "s@^lib_dirs = .*@lib_dirs = ['${ROOT:-/}usr/$(get_libdir)']@" "${S}"/setup.py || \
|
||||
die "failed to set lib_dirs"
|
||||
|
||||
local PATCHES=( "${FILESDIR}"/0001-__init__.py-Make-NetworkX-dep-optional.patch )
|
||||
use X || PATCHES+=( "${FILESDIR}"/setools-4.4.0-remove-gui.patch )
|
||||
distutils-r1_python_prepare_all
|
||||
}
|
||||
|
||||
python_test() {
|
||||
esetup.py test
|
||||
}
|
@ -1,60 +0,0 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="7"
|
||||
|
||||
PYTHON_COMPAT=( python3_{10..11} )
|
||||
DISTUTILS_EXT=1
|
||||
DISTUTILS_USE_SETUPTOOLS=rdepend
|
||||
|
||||
inherit distutils-r1
|
||||
|
||||
DESCRIPTION="Policy Analysis Tools for SELinux"
|
||||
HOMEPAGE="https://github.com/SELinuxProject/setools/wiki"
|
||||
|
||||
if [[ ${PV} == 9999 ]] ; then
|
||||
inherit git-r3
|
||||
EGIT_REPO_URI="https://github.com/SELinuxProject/setools.git"
|
||||
S="${WORKDIR}/${P}"
|
||||
else
|
||||
SRC_URI="https://github.com/SELinuxProject/setools/releases/download/${PV}/${P}.tar.bz2"
|
||||
KEYWORDS="~amd64 ~arm ~arm64 ~x86"
|
||||
S="${WORKDIR}/${PN}"
|
||||
fi
|
||||
|
||||
LICENSE="GPL-2 LGPL-2.1"
|
||||
SLOT="0"
|
||||
IUSE="test infoflow X"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
RDEPEND="${PYTHON_DEPS}
|
||||
dev-python/setuptools[${PYTHON_USEDEP}]
|
||||
>=sys-libs/libsepol-3.2:=
|
||||
>=sys-libs/libselinux-3.2:=
|
||||
infoflow? ( >=dev-python/networkx-2.0[${PYTHON_USEDEP}] )
|
||||
X? (
|
||||
dev-python/PyQt5[gui,widgets,${PYTHON_USEDEP}]
|
||||
)"
|
||||
DEPEND="${RDEPEND}"
|
||||
BDEPEND=">=dev-python/cython-0.27[${PYTHON_USEDEP}]
|
||||
dev-python/setuptools[${PYTHON_USEDEP}]
|
||||
test? (
|
||||
>=dev-python/networkx-2.0[${PYTHON_USEDEP}]
|
||||
sys-apps/checkpolicy
|
||||
)"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/0001-__init__.py-Make-NetworkX-dep-optional.patch
|
||||
"${FILESDIR}"/${P}-cython3.patch
|
||||
)
|
||||
|
||||
distutils_enable_tests setup.py
|
||||
|
||||
python_prepare_all() {
|
||||
sed -i "s/'-Werror', //" "${S}"/setup.py || die "failed to remove Werror"
|
||||
sed -i "s@^lib_dirs = .*@lib_dirs = ['${ROOT:-/}usr/$(get_libdir)']@" "${S}"/setup.py || \
|
||||
die "failed to set lib_dirs"
|
||||
|
||||
use X || PATCHES+=( "${FILESDIR}"/setools-4.4.0-remove-gui.patch )
|
||||
distutils-r1_python_prepare_all
|
||||
}
|
@ -1,56 +0,0 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="7"
|
||||
PYTHON_COMPAT=( python3_{10..11} )
|
||||
DISTUTILS_USE_SETUPTOOLS=rdepend
|
||||
|
||||
inherit distutils-r1
|
||||
|
||||
DESCRIPTION="Policy Analysis Tools for SELinux"
|
||||
HOMEPAGE="https://github.com/SELinuxProject/setools/wiki"
|
||||
|
||||
if [[ ${PV} == 9999 ]] ; then
|
||||
inherit git-r3
|
||||
EGIT_REPO_URI="https://github.com/SELinuxProject/setools.git"
|
||||
S="${WORKDIR}/${P}"
|
||||
else
|
||||
SRC_URI="https://github.com/SELinuxProject/setools/releases/download/${PV}/${P}.tar.bz2"
|
||||
KEYWORDS="~amd64 ~arm ~arm64 ~x86"
|
||||
S="${WORKDIR}/${PN}"
|
||||
fi
|
||||
|
||||
LICENSE="GPL-2 LGPL-2.1"
|
||||
SLOT="0"
|
||||
IUSE="test infoflow X"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
RDEPEND="${PYTHON_DEPS}
|
||||
dev-python/setuptools[${PYTHON_USEDEP}]
|
||||
>=sys-libs/libsepol-3.2:=
|
||||
>=sys-libs/libselinux-3.2:=
|
||||
infoflow? ( >=dev-python/networkx-2.0[${PYTHON_USEDEP}] )
|
||||
X? (
|
||||
dev-python/PyQt5[gui,widgets,${PYTHON_USEDEP}]
|
||||
)"
|
||||
DEPEND="${RDEPEND}"
|
||||
BDEPEND=">=dev-python/cython-0.27[${PYTHON_USEDEP}]
|
||||
dev-python/setuptools[${PYTHON_USEDEP}]
|
||||
test? (
|
||||
>=dev-python/networkx-2.0[${PYTHON_USEDEP}]
|
||||
sys-apps/checkpolicy
|
||||
)"
|
||||
|
||||
python_prepare_all() {
|
||||
sed -i "s/'-Werror', //" "${S}"/setup.py || die "failed to remove Werror"
|
||||
sed -i "s@^lib_dirs = .*@lib_dirs = ['${ROOT:-/}usr/$(get_libdir)']@" "${S}"/setup.py || \
|
||||
die "failed to set lib_dirs"
|
||||
|
||||
PATCHES=( "${FILESDIR}"/0001-__init__.py-Make-NetworkX-dep-optional.patch )
|
||||
use X || PATCHES+=( "${FILESDIR}"/setools-4.4.0-remove-gui.patch )
|
||||
distutils-r1_python_prepare_all
|
||||
}
|
||||
|
||||
python_test() {
|
||||
esetup.py test
|
||||
}
|
@ -1,36 +0,0 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
inherit autotools
|
||||
|
||||
DESCRIPTION="suid, sgid file and directory checking"
|
||||
HOMEPAGE="http://linukz.org/sxid.shtml https://github.com/taem/sxid"
|
||||
SRC_URI="http://linukz.org/download/${P}.tar.gz"
|
||||
|
||||
LICENSE="GPL-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="amd64 ppc x86"
|
||||
IUSE="selinux"
|
||||
|
||||
RDEPEND="
|
||||
virtual/mailx
|
||||
selinux? ( sec-policy/selinux-sxid )
|
||||
"
|
||||
|
||||
DOCS=( docs/sxid.{conf,cron}.example )
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
# this is an admin application and really requires root to run correctly
|
||||
# we need to move the binary to the sbin directory
|
||||
sed -i s/bindir/sbindir/g source/Makefile.in || die
|
||||
eautoreconf
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
elog
|
||||
elog "You will need to configure sxid.conf for your system using the manpage and example"
|
||||
elog
|
||||
}
|
Binary file not shown.
@ -1,2 +1,2 @@
|
||||
DIST dar-2.7.10.tar.gz 2418752 BLAKE2B 31365e900cdcd89c297f78953e82d7288cec524cc3f01a71f659a4e0238797d72c0c629d6fcfad00fa7bdaae1b846d86daa50c7857b13cac0ffac9e98bc398ef SHA512 3b75f06013d13f315280625b3ebf147e833b91164646f271ff81aa0961b788eb12a4dc6a743bbd8de4c7347bad03f2372fd8f5c038d0a83d45f3479cdba4cece
|
||||
DIST dar-2.7.12.tar.gz 2421683 BLAKE2B 3dc5fc362dbdc47acef33a57c07b21bb2e1cd197bb3475ecf27cf2cb8b54f13a962a386a8e472fc53e3069bbc6acc549e66fadafd1572cbba93eb41f1d493661 SHA512 55b4215da23ca63de479ab34f0d50e4eeb13548891e537702971ec6fc6e6a19e44282a6a711549f468abd507bc1d67f9df08fb76b4b5208c6e8843b3042d5ad2
|
||||
DIST dar-2.7.13.tar.gz 2425559 BLAKE2B 321a43b04553505279de6f6b27e332883f4209bbe81e24c418188f028b7ba7a794d4e0f510f2c6a22a57fbdbc0501d4fcf7201aadb8cca3e65c6649bff7cfedf SHA512 e7a4bd89ccefaca1d9251d05c39e80f9861b8154f414cd578ba98c3cf3a9f945738c6225fd007b5e73c2d7c2e4abe547e9a2e2deec2cb7e0ec5860603add64fb
|
||||
|
Binary file not shown.
Binary file not shown.
@ -1 +0,0 @@
|
||||
DIST edict-2.6.tar.gz 51300 BLAKE2B dd074c4b4d771921c21cc63e3960951ff6e62e8485ee2a9e967751670562e29ae434d7a2a79886797093f315bdba2134f7d45c024a0657c4a53314d96c66fbce SHA512 03a9977df6d150e7e99805f8dc5f62e1f6d84360d79684210a4cbd8105ccf541777513c99bf77934a9b8e26e4aad8d88b84146b165d9e1a21dff80587f900677
|
@ -1,26 +0,0 @@
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
MY_PN="edict"
|
||||
MY_P="${MY_PN}-${PV}"
|
||||
|
||||
DESCRIPTION="Command line dictionary and thesaurus"
|
||||
HOMEPAGE="http://edictionary.sourceforge.net/"
|
||||
SRC_URI="mirror://sourceforge/${PN}/${MY_P}.tar.gz"
|
||||
|
||||
LICENSE="GPL-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~riscv ~s390 ~x86 ~amd64-linux ~x86-linux ~ppc-macos"
|
||||
IUSE=""
|
||||
|
||||
RDEPEND=""
|
||||
DEPEND="dev-lang/perl"
|
||||
|
||||
S="${WORKDIR}/${MY_PN}"
|
||||
|
||||
src_install() {
|
||||
make prefix="${ED}/usr/bin" install
|
||||
dodoc Changelog ReleaseNotes README TODO
|
||||
}
|
@ -1,8 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
|
||||
<pkgmetadata>
|
||||
<!-- maintainer-needed -->
|
||||
<upstream>
|
||||
<remote-id type="sourceforge">edictionary</remote-id>
|
||||
</upstream>
|
||||
</pkgmetadata>
|
Binary file not shown.
@ -1,5 +1,7 @@
|
||||
DIST python-2.7.18-docs-html.tar.bz2 4634932 BLAKE2B c48e2dede15d8186231acf65709641e0844c42e924262d6ee21a55e515aaf4d023bf394681bab780ab83998de9f409685e2d5870506810432145acc6422eff9d SHA512 db39390577ec86f13c9b6b57c01cba36fe9fd89092a773dc94f1a6a19d912759d097c4d80e765d3657b572abc731c1da9e7b4cd4c38065cd444606b906744abe
|
||||
DIST python-3.10.13-docs-html.tar.bz2 7429989 BLAKE2B 7ddd11dbc4012cebf2f5980653b761ee35b986b75d96d582800f84e4c371aee4b82fcc2001c744e7f14991e766b0930a9ef4cb46869544e0aa403e513c4bd418 SHA512 be2cb6a2ece7849b1c259e9d86b7cf5e2a91c30a976b155c4055fc229d35a1762a90321a6227e890b6d5be51ab3377b9059b9662eed683933ec676fc2dc5f9a9
|
||||
DIST python-3.11.5-docs-html.tar.bz2 7861520 BLAKE2B ed43fba98f8446b758c1d81ccd4af297232499b666045d6b9b4190d33871e0fbb4e6e166783d54e923b02694a49bdfd791664c7bcab1392ab86254c45d9fe81d SHA512 911a70145aa919687982b9fb34fc0cedafcf654cf3f1e6908a6077d27718aedabc923ea49648d453584f7a7171138e19c1a99f32cb8d41731e5d9c50dc30df2d
|
||||
DIST python-3.11.6-docs-html.tar.bz2 7881012 BLAKE2B b20cb04dc32d6eacc904aaf3505a919c6a17dce9105899632571574e734c42693ce5f469bb5f2194bcc16eb4458b6df382c5b4fd24b398f21660c6388b87702a SHA512 a0b118ea3d8f17e5c0a4abec353bc8fd04603db2da51375272e164f8c93be7e3a992eaac3d256a9d05c2db26f830e4b4add40cdb2e1108b936ff4d358cbbb40c
|
||||
DIST python-3.12.0-docs-html.tar.bz2 8200382 BLAKE2B e322d9c18a5a0af4b17ab7a670def1e6aa8f3022d37bd190d49bef1780a71371c6abcf5d9cf81b22a08d4115857e3caa6e8200bbf9b2f5f486f13cbef7366eac SHA512 4fa12af1d1280455063e7c37b479136483478296bcc99302b0bdd4696a84cee82456d1de37cc378fede97f3681bc75ffa535034da5bb76e86d01cb283c425733
|
||||
DIST python-3.8.18-docs-html.tar.bz2 6729312 BLAKE2B 431b8d5029d09fc2f54fdc998799298ccb6571a68c735320c95469a81e62bc7c2a9ec0ec11caa9886ad6a2d643b8d715e6866c398ec153d101b16efb85cda656 SHA512 80bdbec04355644f4b114e74da3334b4980d783a52ac8c999ede72f39b6137d94f1aaca248a386cfa02d778a10bdd7919ad82932f0aa000b16c102c8cee67e52
|
||||
DIST python-3.9.18-docs-html.tar.bz2 7023072 BLAKE2B 92273a711cc8c2a35104f7c35bdca50ee0e9794c72aa14e9c4e613298dd6f2ecebbe977a35f1520a8585f1ea3112e8ea8e477c0e3503b025b6cec875fe40033e SHA512 d123266c72db81703c386dc0d436243a36996c39cde382939cebea31ff7a0c049470daa27efc34a3a0d55310bc6fe489ba01572ca961f67ba7a098038f2cb5af
|
||||
|
@ -0,0 +1,23 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
DESCRIPTION="HTML documentation for Python"
|
||||
HOMEPAGE="https://www.python.org/doc/"
|
||||
SRC_URI="https://www.python.org/ftp/python/doc/${PV}/python-${PV}-docs-html.tar.bz2"
|
||||
S="${WORKDIR}/python-${PV}-docs-html"
|
||||
|
||||
LICENSE="PSF-2"
|
||||
SLOT="$(ver_cut 1-2)"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86"
|
||||
|
||||
src_install() {
|
||||
rm -r _sources || die
|
||||
docinto html
|
||||
dodoc -r .
|
||||
|
||||
newenvd - 60python-docs-${SLOT} <<-EOF
|
||||
PYTHONDOCS_${SLOT//./_}="${EPREFIX}/usr/share/doc/${PF}/html/library"
|
||||
EOF
|
||||
}
|
@ -0,0 +1,23 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
DESCRIPTION="HTML documentation for Python"
|
||||
HOMEPAGE="https://www.python.org/doc/"
|
||||
SRC_URI="https://www.python.org/ftp/python/doc/${PV}/python-${PV}-docs-html.tar.bz2"
|
||||
S="${WORKDIR}/python-${PV}-docs-html"
|
||||
|
||||
LICENSE="PSF-2"
|
||||
SLOT="$(ver_cut 1-2)"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86"
|
||||
|
||||
src_install() {
|
||||
rm -r _sources || die
|
||||
docinto html
|
||||
dodoc -r .
|
||||
|
||||
newenvd - 60python-docs-${SLOT} <<-EOF
|
||||
PYTHONDOCS_${SLOT//./_}="${EPREFIX}/usr/share/doc/${PF}/html/library"
|
||||
EOF
|
||||
}
|
Binary file not shown.
@ -0,0 +1,112 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit desktop pax-utils xdg optfeature
|
||||
|
||||
DESCRIPTION="Multiplatform Visual Studio Code from Microsoft"
|
||||
HOMEPAGE="https://code.visualstudio.com"
|
||||
SRC_URI="
|
||||
amd64? ( https://update.code.visualstudio.com/${PV}/linux-x64/stable -> ${P}-amd64.tar.gz )
|
||||
arm? ( https://update.code.visualstudio.com/${PV}/linux-armhf/stable -> ${P}-arm.tar.gz )
|
||||
arm64? ( https://update.code.visualstudio.com/${PV}/linux-arm64/stable -> ${P}-arm64.tar.gz )
|
||||
"
|
||||
S="${WORKDIR}"
|
||||
|
||||
RESTRICT="mirror strip bindist"
|
||||
|
||||
LICENSE="
|
||||
Apache-2.0
|
||||
BSD
|
||||
BSD-1
|
||||
BSD-2
|
||||
BSD-4
|
||||
CC-BY-4.0
|
||||
ISC
|
||||
LGPL-2.1+
|
||||
Microsoft-vscode
|
||||
MIT
|
||||
MPL-2.0
|
||||
openssl
|
||||
PYTHON
|
||||
TextMate-bundle
|
||||
Unlicense
|
||||
UoI-NCSA
|
||||
W3C
|
||||
"
|
||||
SLOT="0"
|
||||
KEYWORDS="-* ~amd64 ~arm ~arm64"
|
||||
IUSE="kerberos"
|
||||
|
||||
RDEPEND="
|
||||
>=app-accessibility/at-spi2-core-2.46.0:2
|
||||
app-crypt/libsecret[crypt]
|
||||
dev-libs/expat
|
||||
dev-libs/glib:2
|
||||
dev-libs/nspr
|
||||
dev-libs/nss
|
||||
media-libs/alsa-lib
|
||||
media-libs/mesa
|
||||
sys-apps/util-linux
|
||||
sys-apps/dbus
|
||||
x11-libs/cairo
|
||||
x11-libs/gdk-pixbuf:2
|
||||
x11-libs/gtk+:3
|
||||
x11-libs/libdrm
|
||||
x11-libs/libX11
|
||||
x11-libs/libxcb
|
||||
x11-libs/libXcomposite
|
||||
x11-libs/libXdamage
|
||||
x11-libs/libXext
|
||||
x11-libs/libXfixes
|
||||
x11-libs/libxkbcommon
|
||||
x11-libs/libxkbfile
|
||||
x11-libs/libXrandr
|
||||
x11-libs/libxshmfence
|
||||
x11-libs/pango
|
||||
kerberos? ( app-crypt/mit-krb5 )
|
||||
"
|
||||
|
||||
QA_PREBUILT="*"
|
||||
|
||||
src_install() {
|
||||
if use amd64; then
|
||||
cd "${WORKDIR}/VSCode-linux-x64" || die
|
||||
elif use arm; then
|
||||
cd "${WORKDIR}/VSCode-linux-armhf" || die
|
||||
elif use arm64; then
|
||||
cd "${WORKDIR}/VSCode-linux-arm64" || die
|
||||
else
|
||||
die "Visual Studio Code only supports amd64, arm and arm64"
|
||||
fi
|
||||
|
||||
# Cleanup
|
||||
rm -r ./resources/app/ThirdPartyNotices.txt || die
|
||||
|
||||
# Disable update server
|
||||
sed -e "/updateUrl/d" -i ./resources/app/product.json || die
|
||||
|
||||
if ! use kerberos; then
|
||||
rm -r ./resources/app/node_modules.asar.unpacked/kerberos || die
|
||||
fi
|
||||
|
||||
# Install
|
||||
pax-mark m code
|
||||
mkdir -p "${ED}/opt/${PN}" || die
|
||||
cp -r . "${ED}/opt/${PN}" || die
|
||||
fperms 4711 /opt/${PN}/chrome-sandbox
|
||||
|
||||
dosym -r "/opt/${PN}/bin/code" "usr/bin/vscode"
|
||||
dosym -r "/opt/${PN}/bin/code" "usr/bin/code"
|
||||
domenu "${FILESDIR}/vscode.desktop"
|
||||
domenu "${FILESDIR}/vscode-url-handler.desktop"
|
||||
domenu "${FILESDIR}/vscode-wayland.desktop"
|
||||
domenu "${FILESDIR}/vscode-url-handler-wayland.desktop"
|
||||
newicon "resources/app/resources/linux/code.png" "vscode.png"
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
xdg_pkg_postinst
|
||||
optfeature "keyring support inside vscode" "virtual/secret-service"
|
||||
}
|
Binary file not shown.
Binary file not shown.
@ -0,0 +1,457 @@
|
||||
# Copyright 2022-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
MULTILIB_COMPAT=( abi_x86_{32,64} )
|
||||
PYTHON_COMPAT=( python3_{10..12} )
|
||||
inherit autotools edo flag-o-matic multilib multilib-build
|
||||
inherit prefix python-any-r1 toolchain-funcs wrapper
|
||||
|
||||
WINE_GECKO=2.47.4
|
||||
WINE_MONO=8.0.0
|
||||
WINE_P=wine-$(ver_cut 1-2)
|
||||
|
||||
if [[ ${PV} == *9999 ]]; then
|
||||
inherit git-r3
|
||||
EGIT_REPO_URI="https://gitlab.winehq.org/wine/wine-staging.git"
|
||||
WINE_EGIT_REPO_URI="https://gitlab.winehq.org/wine/wine.git"
|
||||
else
|
||||
(( $(ver_cut 2) )) && WINE_SDIR=$(ver_cut 1).x || WINE_SDIR=$(ver_cut 1).0
|
||||
SRC_URI="
|
||||
https://dl.winehq.org/wine/source/${WINE_SDIR}/${WINE_P}.tar.xz
|
||||
https://github.com/wine-staging/wine-staging/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
||||
KEYWORDS="-* ~amd64 ~x86"
|
||||
fi
|
||||
S="${WORKDIR}/${WINE_P}"
|
||||
|
||||
DESCRIPTION="Free implementation of Windows(tm) on Unix, with Wine-Staging patchset"
|
||||
HOMEPAGE="
|
||||
https://wiki.winehq.org/Wine-Staging
|
||||
https://gitlab.winehq.org/wine/wine-staging/"
|
||||
|
||||
LICENSE="LGPL-2.1+ BSD-2 IJG MIT OPENLDAP ZLIB gsm libpng2 libtiff"
|
||||
SLOT="${PV}"
|
||||
IUSE="
|
||||
+X +abi_x86_32 +abi_x86_64 +alsa capi crossdev-mingw cups dos
|
||||
llvm-libunwind custom-cflags +fontconfig +gecko gphoto2 +gstreamer
|
||||
kerberos +mingw +mono netapi nls opencl +opengl osmesa pcap perl
|
||||
pulseaudio samba scanner +sdl selinux smartcard +ssl +strip
|
||||
+truetype udev udisks +unwind usb v4l +vulkan wayland wow64
|
||||
+xcomposite xinerama"
|
||||
# bug #551124 for truetype
|
||||
# TODO: wow64 can be done without mingw if using clang (needs bug #912237)
|
||||
REQUIRED_USE="
|
||||
X? ( truetype )
|
||||
crossdev-mingw? ( mingw )
|
||||
wow64? ( abi_x86_64 !abi_x86_32 mingw )"
|
||||
|
||||
# tests are non-trivial to run, can hang easily, don't play well with
|
||||
# sandbox, and several need real opengl/vulkan or network access
|
||||
RESTRICT="test"
|
||||
|
||||
# `grep WINE_CHECK_SONAME configure.ac` + if not directly linked
|
||||
WINE_DLOPEN_DEPEND="
|
||||
X? (
|
||||
x11-libs/libXcursor[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXfixes[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXi[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXrandr[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXrender[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
|
||||
opengl? (
|
||||
media-libs/libglvnd[X,${MULTILIB_USEDEP}]
|
||||
osmesa? ( media-libs/mesa[osmesa,${MULTILIB_USEDEP}] )
|
||||
)
|
||||
xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
|
||||
xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
|
||||
)
|
||||
cups? ( net-print/cups[${MULTILIB_USEDEP}] )
|
||||
fontconfig? ( media-libs/fontconfig[${MULTILIB_USEDEP}] )
|
||||
kerberos? ( virtual/krb5[${MULTILIB_USEDEP}] )
|
||||
netapi? ( net-fs/samba[${MULTILIB_USEDEP}] )
|
||||
sdl? ( media-libs/libsdl2[haptic,joystick,${MULTILIB_USEDEP}] )
|
||||
ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
|
||||
truetype? ( media-libs/freetype[${MULTILIB_USEDEP}] )
|
||||
udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
|
||||
v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
|
||||
vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] )"
|
||||
WINE_COMMON_DEPEND="
|
||||
${WINE_DLOPEN_DEPEND}
|
||||
X? (
|
||||
x11-libs/libX11[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXext[${MULTILIB_USEDEP}]
|
||||
)
|
||||
alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
|
||||
capi? ( net-libs/libcapi:=[${MULTILIB_USEDEP}] )
|
||||
gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
|
||||
gstreamer? (
|
||||
dev-libs/glib:2[${MULTILIB_USEDEP}]
|
||||
media-libs/gst-plugins-base:1.0[${MULTILIB_USEDEP}]
|
||||
media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
|
||||
)
|
||||
opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
|
||||
pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
|
||||
pulseaudio? ( media-libs/libpulse[${MULTILIB_USEDEP}] )
|
||||
scanner? ( media-gfx/sane-backends[${MULTILIB_USEDEP}] )
|
||||
smartcard? ( sys-apps/pcsc-lite[${MULTILIB_USEDEP}] )
|
||||
udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
|
||||
unwind? (
|
||||
llvm-libunwind? ( sys-libs/llvm-libunwind[${MULTILIB_USEDEP}] )
|
||||
!llvm-libunwind? ( sys-libs/libunwind:=[${MULTILIB_USEDEP}] )
|
||||
)
|
||||
usb? ( dev-libs/libusb:1[${MULTILIB_USEDEP}] )
|
||||
wayland? ( dev-libs/wayland[${MULTILIB_USEDEP}] )"
|
||||
RDEPEND="
|
||||
${WINE_COMMON_DEPEND}
|
||||
app-emulation/wine-desktop-common
|
||||
dos? (
|
||||
|| (
|
||||
games-emulation/dosbox
|
||||
games-emulation/dosbox-staging
|
||||
)
|
||||
)
|
||||
gecko? (
|
||||
app-emulation/wine-gecko:${WINE_GECKO}[${MULTILIB_USEDEP}]
|
||||
wow64? ( app-emulation/wine-gecko[abi_x86_32] )
|
||||
)
|
||||
gstreamer? ( media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}] )
|
||||
mono? ( app-emulation/wine-mono:${WINE_MONO} )
|
||||
perl? (
|
||||
dev-lang/perl
|
||||
dev-perl/XML-LibXML
|
||||
)
|
||||
samba? ( net-fs/samba[winbind] )
|
||||
selinux? ( sec-policy/selinux-wine )
|
||||
udisks? ( sys-fs/udisks:2 )"
|
||||
DEPEND="
|
||||
${WINE_COMMON_DEPEND}
|
||||
sys-kernel/linux-headers
|
||||
X? ( x11-base/xorg-proto )"
|
||||
# gitapply.sh prefers git but can fallback to patch+extras
|
||||
BDEPEND="
|
||||
${PYTHON_DEPS}
|
||||
|| (
|
||||
dev-vcs/git
|
||||
(
|
||||
sys-apps/gawk
|
||||
sys-apps/util-linux
|
||||
)
|
||||
)
|
||||
|| (
|
||||
sys-devel/binutils
|
||||
sys-devel/lld
|
||||
)
|
||||
dev-lang/perl
|
||||
sys-devel/bison
|
||||
sys-devel/flex
|
||||
virtual/pkgconfig
|
||||
mingw? ( !crossdev-mingw? (
|
||||
>=dev-util/mingw64-toolchain-10.0.0_p1-r2[${MULTILIB_USEDEP}]
|
||||
wow64? ( dev-util/mingw64-toolchain[abi_x86_32] )
|
||||
) )
|
||||
nls? ( sys-devel/gettext )
|
||||
wayland? ( dev-util/wayland-scanner )"
|
||||
IDEPEND=">=app-eselect/eselect-wine-2"
|
||||
|
||||
QA_CONFIG_IMPL_DECL_SKIP=(
|
||||
__clear_cache # unused on amd64+x86 (bug #900334)
|
||||
res_getservers # false positive
|
||||
)
|
||||
QA_FLAGS_IGNORED="usr/lib/.*/wine/.*-unix/odbc32.so" # has no compiled objects
|
||||
QA_TEXTRELS="usr/lib/*/wine/i386-unix/*.so" # uses -fno-PIC -Wl,-z,notext
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${PN}-7.17-noexecstack.patch
|
||||
"${FILESDIR}"/${PN}-7.20-unwind.patch
|
||||
"${FILESDIR}"/${PN}-8.13-rpath.patch
|
||||
)
|
||||
|
||||
pkg_pretend() {
|
||||
[[ ${MERGE_TYPE} == binary ]] && return
|
||||
|
||||
if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then
|
||||
local mingw=-w64-mingw32
|
||||
for mingw in $(usev abi_x86_64 x86_64${mingw}) \
|
||||
$(use abi_x86_32 || use wow64 && echo i686${mingw}); do
|
||||
if ! type -P ${mingw}-gcc >/dev/null; then
|
||||
eerror "With USE=crossdev-mingw, you must prepare the MinGW toolchain"
|
||||
eerror "yourself by installing sys-devel/crossdev then running:"
|
||||
eerror
|
||||
eerror " crossdev --target ${mingw}"
|
||||
eerror
|
||||
eerror "For more information, please see: https://wiki.gentoo.org/wiki/Mingw"
|
||||
die "USE=crossdev-mingw is enabled, but ${mingw}-gcc was not found"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if [[ ${PV} == *9999 ]]; then
|
||||
EGIT_CHECKOUT_DIR=${WORKDIR}/${P}
|
||||
git-r3_src_unpack
|
||||
|
||||
# hack: use subshell to preserve state (including what git-r3 unpack
|
||||
# sets) for smart-live-rebuild as this is not the repo to look at
|
||||
(
|
||||
EGIT_COMMIT=$(<"${EGIT_CHECKOUT_DIR}"/staging/upstream-commit) || die
|
||||
EGIT_REPO_URI=${WINE_EGIT_REPO_URI}
|
||||
EGIT_CHECKOUT_DIR=${S}
|
||||
einfo "Fetching Wine commit matching the current patchset by default (${EGIT_COMMIT})"
|
||||
git-r3_src_unpack
|
||||
)
|
||||
else
|
||||
default
|
||||
fi
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
local patchinstallargs=(
|
||||
--all
|
||||
--no-autoconf
|
||||
${MY_WINE_STAGING_CONF}
|
||||
)
|
||||
|
||||
edo "${PYTHON}" ../${P}/staging/patchinstall.py "${patchinstallargs[@]}"
|
||||
|
||||
# sanity check, bumping these has a history of oversights
|
||||
local geckomono=$(sed -En '/^#define (GECKO|MONO)_VER/{s/[^0-9.]//gp}' \
|
||||
dlls/appwiz.cpl/addons.c || die)
|
||||
if [[ ${WINE_GECKO}$'\n'${WINE_MONO} != "${geckomono}" ]]; then
|
||||
local gmfatal=
|
||||
[[ ${PV} == *9999 ]] && gmfatal=nonfatal
|
||||
${gmfatal} die -n "gecko/mono mismatch in ebuild, has: " ${geckomono} " (please file a bug)"
|
||||
fi
|
||||
|
||||
default
|
||||
|
||||
if tc-is-clang; then
|
||||
if use mingw; then
|
||||
# -mabi=ms was ignored by <clang:16 then turned error in :17
|
||||
# if used without --target *-windows, then gets used in install
|
||||
# phase despite USE=mingw, drop as a quick fix for now
|
||||
sed -i '/MSVCRTFLAGS=/s/-mabi=ms//' configure.ac || die
|
||||
else
|
||||
# fails in ./configure unless --enable-archs is passed, allow to
|
||||
# bypass with EXTRA_ECONF but is currently considered unsupported
|
||||
# (by Gentoo) as additional work is needed for (proper) support
|
||||
# note: also fails w/ :17, but unsure if safe to drop w/o mingw
|
||||
[[ ${EXTRA_ECONF} == *--enable-archs* ]] ||
|
||||
die "building ${PN} with clang is only supported with USE=mingw"
|
||||
fi
|
||||
fi
|
||||
|
||||
# ensure .desktop calls this variant + slot
|
||||
sed -i "/^Exec=/s/wine /${P} /" loader/wine.desktop || die
|
||||
|
||||
# datadir is not where wine-mono is installed, so prefixy alternate paths
|
||||
hprefixify -w /get_mono_path/ dlls/mscoree/metahost.c
|
||||
|
||||
# always update for patches (including user's wrt #432348)
|
||||
eautoreconf
|
||||
tools/make_requests || die # perl
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
WINE_PREFIX=/usr/lib/${P}
|
||||
WINE_DATADIR=/usr/share/${P}
|
||||
|
||||
local conf=(
|
||||
--prefix="${EPREFIX}"${WINE_PREFIX}
|
||||
--datadir="${EPREFIX}"${WINE_DATADIR}
|
||||
--includedir="${EPREFIX}"/usr/include/${P}
|
||||
--libdir="${EPREFIX}"${WINE_PREFIX}
|
||||
--mandir="${EPREFIX}"${WINE_DATADIR}/man
|
||||
|
||||
$(usev wow64 --enable-archs=x86_64,i386)
|
||||
|
||||
$(use_enable gecko mshtml)
|
||||
$(use_enable mono mscoree)
|
||||
--disable-tests
|
||||
|
||||
$(use_with X x)
|
||||
$(use_with alsa)
|
||||
$(use_with capi)
|
||||
$(use_with cups)
|
||||
$(use_with fontconfig)
|
||||
$(use_with gphoto2 gphoto)
|
||||
$(use_with gstreamer)
|
||||
$(use_with kerberos gssapi)
|
||||
$(use_with kerberos krb5)
|
||||
$(use_with mingw)
|
||||
$(use_with netapi)
|
||||
$(use_with nls gettext)
|
||||
$(use_with opencl)
|
||||
$(use_with opengl)
|
||||
$(use_with osmesa)
|
||||
--without-oss # media-sound/oss is not packaged (OSSv4)
|
||||
$(use_with pcap)
|
||||
$(use_with pulseaudio pulse)
|
||||
$(use_with scanner sane)
|
||||
$(use_with sdl)
|
||||
$(use_with smartcard pcsclite)
|
||||
$(use_with ssl gnutls)
|
||||
$(use_with truetype freetype)
|
||||
$(use_with udev)
|
||||
$(use_with udisks dbus) # dbus is only used for udisks
|
||||
$(use_with unwind)
|
||||
$(use_with usb)
|
||||
$(use_with v4l v4l2)
|
||||
$(use_with vulkan)
|
||||
$(use_with wayland)
|
||||
$(use_with xcomposite)
|
||||
$(use_with xinerama)
|
||||
)
|
||||
|
||||
filter-lto # build failure
|
||||
use custom-cflags || strip-flags # can break in obscure ways at runtime
|
||||
|
||||
# wine uses linker tricks unlikely to work with non-bfd/lld (bug #867097)
|
||||
# (do self test until https://github.com/gentoo/gentoo/pull/28355)
|
||||
if [[ $(LC_ALL=C $(tc-getCC) ${LDFLAGS} -Wl,--version 2>/dev/null) != @(LLD|GNU\ ld)* ]]
|
||||
then
|
||||
has_version -b sys-devel/binutils &&
|
||||
append-ldflags -fuse-ld=bfd ||
|
||||
append-ldflags -fuse-ld=lld
|
||||
strip-unsupported-flags
|
||||
fi
|
||||
|
||||
if use mingw; then
|
||||
use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}
|
||||
|
||||
filter-flags -fno-plt # build failure
|
||||
|
||||
# CROSSCC was formerly recognized by wine, thus been using similar
|
||||
# variables (subject to change, esp. if ever make a mingw.eclass).
|
||||
local mingwcc_amd64=${CROSSCC:-${CROSSCC_amd64:-x86_64-w64-mingw32-gcc}}
|
||||
local mingwcc_x86=${CROSSCC:-${CROSSCC_x86:-i686-w64-mingw32-gcc}}
|
||||
local -n mingwcc=mingwcc_$(usex abi_x86_64 amd64 x86)
|
||||
|
||||
conf+=(
|
||||
ac_cv_prog_x86_64_CC="${mingwcc_amd64}"
|
||||
ac_cv_prog_i386_CC="${mingwcc_x86}"
|
||||
|
||||
CROSSCFLAGS="${CROSSCFLAGS:-$(
|
||||
filter-flags '-fstack-protector*' #870136
|
||||
filter-flags '-mfunction-return=thunk*' #878849
|
||||
|
||||
# -mavx with mingw-gcc has a history of obscure issues and
|
||||
# disabling is seen as safer, e.g. `WINEARCH=win32 winecfg`
|
||||
# crashes with -march=skylake >=wine-8.10, similar issues with
|
||||
# znver4: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110273
|
||||
append-cflags -mno-avx #912268
|
||||
|
||||
CC=${mingwcc} test-flags-CC ${CFLAGS:--O2}
|
||||
)}"
|
||||
|
||||
CROSSLDFLAGS="${CROSSLDFLAGS:-$(
|
||||
filter-flags '-fuse-ld=*'
|
||||
|
||||
CC=${mingwcc} test-flags-CCLD ${LDFLAGS}
|
||||
)}"
|
||||
)
|
||||
fi
|
||||
|
||||
# order matters with multilib: configure+compile 64->32, install 32->64
|
||||
local -i bits
|
||||
for bits in $(usev abi_x86_64 64) $(usev abi_x86_32 32); do
|
||||
(
|
||||
einfo "Configuring ${PN} for ${bits}bits in ${WORKDIR}/build${bits} ..."
|
||||
|
||||
mkdir ../build${bits} || die
|
||||
cd ../build${bits} || die
|
||||
|
||||
if (( bits == 64 )); then
|
||||
conf+=( --enable-win64 )
|
||||
elif use amd64; then
|
||||
conf+=(
|
||||
$(usev abi_x86_64 --with-wine64=../build64)
|
||||
TARGETFLAGS=-m32 # for widl
|
||||
)
|
||||
# _setup is optional, but use over Wine's auto-detect (+#472038)
|
||||
multilib_toolchain_setup x86
|
||||
fi
|
||||
|
||||
ECONF_SOURCE=${S} econf "${conf[@]}"
|
||||
)
|
||||
done
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
use abi_x86_64 && emake -C ../build64 # do first
|
||||
use abi_x86_32 && emake -C ../build32
|
||||
}
|
||||
|
||||
src_install() {
|
||||
use abi_x86_32 && emake DESTDIR="${D}" -C ../build32 install
|
||||
use abi_x86_64 && emake DESTDIR="${D}" -C ../build64 install # do last
|
||||
|
||||
# Ensure both wine64 and wine are available if USE=abi_x86_64 (wow64,
|
||||
# -abi_x86_32, and/or EXTRA_ECONF could cause varying scenarios where
|
||||
# one or the other could be missing and that is unexpected for users
|
||||
# and some tools like winetricks)
|
||||
if use abi_x86_64; then
|
||||
if [[ -e ${ED}${WINE_PREFIX}/bin/wine64 && ! -e ${ED}${WINE_PREFIX}/bin/wine ]]; then
|
||||
dosym wine64 ${WINE_PREFIX}/bin/wine
|
||||
dosym wine64-preloader ${WINE_PREFIX}/bin/wine-preloader
|
||||
|
||||
# also install wine(1) man pages (incl. translations)
|
||||
local man
|
||||
for man in ../build64/loader/wine.*man; do
|
||||
: "${man##*/wine}"
|
||||
: "${_%.*}"
|
||||
insinto ${WINE_DATADIR}/man/${_:+${_#.}/}man1
|
||||
newins ${man} wine.1
|
||||
done
|
||||
elif [[ ! -e ${ED}${WINE_PREFIX}/bin/wine64 && -e ${ED}${WINE_PREFIX}/bin/wine ]]; then
|
||||
dosym wine ${WINE_PREFIX}/bin/wine64
|
||||
dosym wine-preloader ${WINE_PREFIX}/bin/wine64-preloader
|
||||
fi
|
||||
fi
|
||||
|
||||
use perl || rm "${ED}"${WINE_DATADIR}/man/man1/wine{dump,maker}.1 \
|
||||
"${ED}"${WINE_PREFIX}/bin/{function_grep.pl,wine{dump,maker}} || die
|
||||
|
||||
# create variant wrappers for eselect-wine
|
||||
local bin
|
||||
for bin in "${ED}"${WINE_PREFIX}/bin/*; do
|
||||
make_wrapper "${bin##*/}-${P#wine-}" "${bin#"${ED}"}"
|
||||
done
|
||||
|
||||
if use mingw; then
|
||||
# don't let portage try to strip PE files with the wrong
|
||||
# strip executable and instead handle it here (saves ~120MB)
|
||||
dostrip -x ${WINE_PREFIX}/wine/{i386,x86_64}-windows
|
||||
|
||||
if use strip; then
|
||||
ebegin "Stripping Windows (PE) binaries"
|
||||
find "${ED}"${WINE_PREFIX}/wine/*-windows -regex '.*\.\(a\|dll\|exe\)' \
|
||||
-exec $(usex abi_x86_64 x86_64 i686)-w64-mingw32-strip --strip-unneeded {} +
|
||||
eend ${?} || die
|
||||
fi
|
||||
fi
|
||||
|
||||
dodoc ANNOUNCE AUTHORS README* documentation/README*
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
if use !abi_x86_32 && use !wow64; then
|
||||
ewarn "32bit support is disabled. While 64bit applications themselves will"
|
||||
ewarn "work, be warned that it is not unusual that installers or other helpers"
|
||||
ewarn "will attempt to use 32bit and fail. If do not want full USE=abi_x86_32,"
|
||||
ewarn "note the experimental/WIP USE=wow64 can allow 32bit without multilib."
|
||||
elif use abi_x86_32 && { use opengl || use vulkan; } &&
|
||||
has_version 'x11-drivers/nvidia-drivers[-abi_x86_32]'
|
||||
then
|
||||
ewarn "x11-drivers/nvidia-drivers is installed but is built without"
|
||||
ewarn "USE=abi_x86_32 (ABI_X86=32), hardware acceleration with 32bit"
|
||||
ewarn "applications under ${PN} will likely not be usable."
|
||||
fi
|
||||
|
||||
eselect wine update --if-unset || die
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
eselect wine update --if-unset || die
|
||||
}
|
Binary file not shown.
Binary file not shown.
@ -1,2 +1,2 @@
|
||||
DIST fastfetch-1.12.2.tar.gz 538194 BLAKE2B bc6badbc7f690dacbe1408479286a0d42ec687526f776ff4d2ec7b0eb767032e5781cbbe37778f4dc03a5d386979a9ae2aab84c466be997b82d9a9a6c81ea78f SHA512 a82a7c7ae365335c20d659a82215cf320c4c6b07ff127c4dad322a0a01f7ec57e34d229f4953108daadcd0d243c84f8504a3b4367df5e255e5a06e685fd6739a
|
||||
DIST fastfetch-2.0.5.tar.gz 772840 BLAKE2B f8eb5a662455ac1599eea5b6486ea2208487b363464c23a94ca9f1c19e275ab81f3b033789527bb7137b8379f74b52a313e593c9a4dd590acafb5a2af77e383b SHA512 91c506407538f1e59c38ade63d7112be9d1040e5b322d578698e3e35e857d7f473a13805760548a49b0e0757a93c54339b6a9b09a3675e0d7e86f1527b9b2cde
|
||||
DIST fastfetch-2.1.0.tar.gz 793673 BLAKE2B 3d974f80ff014b951388124e1c6e61f10cca75ba7480341c1d7341a31710c71883b043bd423457f3908cabffaef2b28daadba6d8c6489141fe394bcd059ad8b3 SHA512 6163f31e5424e2750a6e5cd0f8573ceb88bc31426e81ca02c19f5ed6348f2572626e33b68709c6947067c7611dbbb73024d5087e1408c2343609b5716c47fb88
|
||||
|
@ -1,2 +1,3 @@
|
||||
DIST tracker-miners-3.5.2.tar.xz 7513024 BLAKE2B 6f144bb5e263c08c32b940dd18f98faa4201cfa1c40fa9c97b7e0406b6ed1c9547b1925337e0b3a7e5448dd7c2518b78f62e04e5beab221a55f464506baa151b SHA512 adb29549c94c68a46e2c5ede8a51bac2d014f772a5dc1c63f5cc6950da7f941e735bf5858c3306d2ad988ce2f60126bc97e5db746afe757b9b7cbc4f90518648
|
||||
DIST tracker-miners-3.6.0.tar.xz 7506144 BLAKE2B bb223fce64901580bf33970fe350692f578d35b5fdb5f1d8bcdf3dcd8a0b0aaac083de60f90d6c4a5aa810b8912971a75517309e75d252c3772997f0d7ec2f0b SHA512 c56c182ee2200d8d264826d77ccc0f22fd1d27bf0953dbdf75538ab70981707fb384943f77db632c202a54ae3b990a9c852a619172c701e14288b7c4f4c70917
|
||||
DIST tracker-miners-3.6.1.tar.xz 7506716 BLAKE2B 73791820082611023f0a275eca0b92eea8cbbf56cd198143c43f1d9be4b47c2004de081618767dd8a929d899b4fa19128d1ddb2c03988b86c7b638b59cab6c09 SHA512 08685983e6ffd9b6ce435465e8996c07fd83775c0f00cafa991fbb1bda6227bb6ef52cfad7ebc9fa5854b06c4ee15d6f94dc81192efa9e9d798f22cee404026f
|
||||
|
@ -0,0 +1,177 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
PYTHON_COMPAT=( python3_{10..12} )
|
||||
|
||||
inherit flag-o-matic gnome.org gnome2-utils meson python-any-r1 systemd xdg
|
||||
|
||||
DESCRIPTION="Collection of data extractors for Tracker/Nepomuk"
|
||||
HOMEPAGE="https://wiki.gnome.org/Projects/Tracker"
|
||||
|
||||
LICENSE="GPL-2+ LGPL-2.1+"
|
||||
SLOT="3"
|
||||
IUSE="cue exif ffmpeg gif gsf +gstreamer iptc +iso +jpeg networkmanager +pdf +playlist raw +rss seccomp test +tiff upower +xml xmp xps"
|
||||
|
||||
REQUIRED_USE="cue? ( gstreamer )" # cue is currently only supported via gstreamer, not ffmpeg
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
|
||||
|
||||
# tracker-2.1.7 currently always depends on ICU (theoretically could be libunistring instead);
|
||||
# so choose ICU over enca always here for the time being (ICU is preferred)
|
||||
RDEPEND="
|
||||
>=dev-libs/glib-2.70:2
|
||||
>=app-misc/tracker-3.6_rc:3
|
||||
|
||||
>=sys-apps/dbus-1.3.1
|
||||
xmp? ( >=media-libs/exempi-2.1.0:= )
|
||||
raw? ( media-libs/gexiv2 )
|
||||
cue? ( media-libs/libcue:= )
|
||||
exif? ( >=media-libs/libexif-0.6 )
|
||||
gsf? ( >=gnome-extra/libgsf-1.14.24:= )
|
||||
xps? ( app-text/libgxps )
|
||||
iptc? ( media-libs/libiptcdata )
|
||||
jpeg? ( media-libs/libjpeg-turbo:0= )
|
||||
iso? ( >=sys-libs/libosinfo-1.10.0-r1 )
|
||||
>=media-libs/libpng-1.2:0=
|
||||
seccomp? ( >=sys-libs/libseccomp-2.0 )
|
||||
tiff? ( media-libs/tiff:= )
|
||||
xml? ( >=dev-libs/libxml2-2.6 )
|
||||
pdf? ( >=app-text/poppler-0.16.0:=[cairo] )
|
||||
playlist? ( >=dev-libs/totem-pl-parser-3:= )
|
||||
sys-apps/util-linux
|
||||
|
||||
gif? ( media-libs/giflib:= )
|
||||
|
||||
networkmanager? ( net-misc/networkmanager )
|
||||
|
||||
rss? ( >=net-libs/libgrss-0.7:0 )
|
||||
app-arch/gzip
|
||||
|
||||
upower? ( >=sys-power/upower-0.9.0:= )
|
||||
|
||||
>=dev-libs/icu-4.8.1.1:=
|
||||
|
||||
gstreamer? (
|
||||
>=media-libs/gstreamer-1.20:1.0
|
||||
>=media-libs/gst-plugins-base-1.20:1.0
|
||||
>=media-plugins/gst-plugins-meta-1.20:1.0 )
|
||||
!gstreamer? (
|
||||
ffmpeg? ( media-video/ffmpeg:0= ) )
|
||||
"
|
||||
DEPEND="${RDEPEND}"
|
||||
BDEPEND="
|
||||
app-text/asciidoc
|
||||
dev-libs/libxslt
|
||||
dev-util/glib-utils
|
||||
dev-util/gdbus-codegen
|
||||
|
||||
>=sys-devel/gettext-0.19.8
|
||||
virtual/pkgconfig
|
||||
test? (
|
||||
${PYTHON_DEPS}
|
||||
$(python_gen_any_dep 'dev-python/pygobject[${PYTHON_USEDEP}]')
|
||||
$(python_gen_any_dep 'dev-python/tappy[${PYTHON_USEDEP}]')
|
||||
gstreamer? (
|
||||
media-libs/gstreamer:1.0[introspection]
|
||||
|| (
|
||||
media-plugins/gst-plugins-libav:1.0
|
||||
media-plugins/gst-plugins-openh264:1.0
|
||||
)
|
||||
)
|
||||
)
|
||||
"
|
||||
|
||||
python_check_deps() {
|
||||
python_has_version -b \
|
||||
"dev-python/pygobject[${PYTHON_USEDEP}]" \
|
||||
"dev-python/tappy[${PYTHON_USEDEP}]"
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
use test && python-any-r1_pkg_setup
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
# Avoid gst-inspect calls that may trigger sandbox;
|
||||
# instead assume the detection will succeed and add the needed test deps for that
|
||||
if use gstreamer; then
|
||||
sed -i -e 's:detect-h264-codec.sh:/bin/true:' tests/functional-tests/meson.build || die
|
||||
else
|
||||
sed -i -e 's:detect-h264-codec.sh:/bin/false:' tests/functional-tests/meson.build || die
|
||||
fi
|
||||
gnome2_environment_reset # sets gstreamer safety variables
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
append-cflags -DTRACKER_DEBUG -DG_DISABLE_CAST_CHECKS
|
||||
|
||||
local media_extractor="none"
|
||||
if use gstreamer ; then
|
||||
media_extractor="gstreamer"
|
||||
elif use ffmpeg ; then
|
||||
media_extractor="libav"
|
||||
fi
|
||||
|
||||
local emesonargs=(
|
||||
-Dtracker_core=system
|
||||
|
||||
-Dman=true
|
||||
-Dextract=true
|
||||
$(meson_use test functional_tests)
|
||||
$(meson_use test tests_tap_protocol)
|
||||
-Dminer_fs=true
|
||||
$(meson_use rss miner_rss)
|
||||
-Dwriteback=true
|
||||
-Dabiword=true
|
||||
-Dicon=true
|
||||
-Dmp3=true
|
||||
-Dps=true
|
||||
-Dtext=true
|
||||
-Dunzip_ps_gz_files=true # spawns gunzip
|
||||
|
||||
$(meson_feature networkmanager network_manager)
|
||||
$(meson_feature cue)
|
||||
$(meson_feature exif)
|
||||
$(meson_feature gif)
|
||||
$(meson_feature gsf)
|
||||
$(meson_feature iptc)
|
||||
$(meson_feature iso)
|
||||
$(meson_feature jpeg)
|
||||
$(meson_feature pdf)
|
||||
$(meson_feature playlist)
|
||||
-Dpng=enabled
|
||||
$(meson_feature raw)
|
||||
$(meson_feature tiff)
|
||||
$(meson_feature xml)
|
||||
$(meson_feature xmp)
|
||||
$(meson_feature xps)
|
||||
|
||||
-Dbattery_detection=$(usex upower upower none)
|
||||
# enca is a possibility, but right now we have tracker core always dep on icu and icu is preferred over enca
|
||||
-Dcharset_detection=icu
|
||||
-Dgeneric_media_extractor=${media_extractor}
|
||||
# gupnp gstreamer_backend is in bad state, upstream suggests to use discoverer, which is the default
|
||||
-Dsystemd_user_services_dir="$(systemd_get_userunitdir)"
|
||||
)
|
||||
meson_src_configure
|
||||
}
|
||||
|
||||
src_test() {
|
||||
export GSETTINGS_BACKEND="dconf" # Tests require dconf and explicitly check for it (env_reset set it to "memory")
|
||||
export PYTHONPATH="${EROOT}"/usr/$(get_libdir)/tracker-3.0
|
||||
dbus-run-session meson test -C "${BUILD_DIR}" || die 'tests failed'
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
xdg_pkg_postinst
|
||||
gnome2_schemas_update
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
xdg_pkg_postrm
|
||||
gnome2_schemas_update
|
||||
}
|
Binary file not shown.
@ -0,0 +1,36 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit desktop java-pkg-2
|
||||
|
||||
MY_PV_1="${PV/_beta/b}"
|
||||
MY_PV="${MY_PV_1/_rc/}"
|
||||
MY_URI_PV_1="${PV/rc/}"
|
||||
MY_URI_PV="${MY_URI_PV_1//_/%20}"
|
||||
|
||||
DESCRIPTION="Java GUI for managing BibTeX and other bibliographies"
|
||||
HOMEPAGE="https://www.jabref.org/"
|
||||
# SRC_URI="mirror://sourceforge/jabref/JabRef-${MY_PV}.jar"
|
||||
SRC_URI="https://github.com/JabRef/jabref/releases/download/v${PV}/JabRef-${MY_PV}.jar"
|
||||
S="${WORKDIR}"
|
||||
|
||||
LICENSE="MIT JSON"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
|
||||
RDEPEND="virtual/jre:1.8"
|
||||
BDEPEND="app-arch/unzip"
|
||||
|
||||
src_unpack() {
|
||||
cp -v "${DISTDIR}/${A}" . || die
|
||||
unzip ${A} images/icons/JabRef-icon-48.png || die
|
||||
}
|
||||
|
||||
src_install() {
|
||||
java-pkg_newjar "JabRef-${MY_PV}.jar"
|
||||
java-pkg_dolauncher "${PN}" --jar "${PN}.jar"
|
||||
newicon images/icons/JabRef-icon-48.png JabRef-bin-icon.png
|
||||
make_desktop_entry "${PN}" JabRef-bin JabRef-bin-icon Office
|
||||
}
|
@ -1,38 +0,0 @@
|
||||
# Copyright 1999-2022 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
inherit desktop java-pkg-2
|
||||
|
||||
DESCRIPTION="Java GUI manages bibliographies in a BibTeX database"
|
||||
HOMEPAGE="http://www.jabref.org/"
|
||||
S="${WORKDIR}"
|
||||
PROPERTIES="live"
|
||||
|
||||
LICENSE="MIT"
|
||||
SLOT="0"
|
||||
|
||||
DEPEND="app-arch/unzip"
|
||||
|
||||
RDEPEND="
|
||||
dev-java/openjdk:8[javafx]
|
||||
virtual/jre:1.8
|
||||
"
|
||||
|
||||
src_unpack() {
|
||||
einfo "Downloading the latest Jabref development snapshot."
|
||||
einfo "Upstream updates these a few times per day."
|
||||
wget "https://builds.jabref.org/master/JabRef--master--latest.jar" -O ${P}.jar || die "wget failed"
|
||||
unzip ${P}.jar images/external/JabRef-icon-48.png || die "icon extraction failed"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
java-pkg_newjar "${P}.jar"
|
||||
java-pkg_dolauncher "${PN}" --jar "${PN}.jar"
|
||||
newicon images/external/JabRef-icon-48.png JabRef-bin-icon.png
|
||||
make_desktop_entry "${PN}" JabRef-bin JabRef-bin-icon Office
|
||||
ewarn "Jabref 4.x will convert old 3.x format .bib databases to a new format."
|
||||
ewarn "The conversion is irreversible, backup .bib files before starting Jabref."
|
||||
ewarn "Jabref 4.x is under heavy development and very unstable."
|
||||
}
|
Binary file not shown.
@ -1,2 +1,3 @@
|
||||
DIST cairomm-1.14.4.tar.xz 618548 BLAKE2B 611e05b66e731d470c6d9a64c2eb4aee68aa73be5c05cb7e741e9a851ef15609cfc9fc27177531880b16517e62cf5c3f7669d4f7e7c5c78b9bc7d829e27f4d25 SHA512 9e2692837f55a2e66cd7e9d0a8033a35524df1c3186a53a9be75d71e899240dbc8959c914471e61e311812dabaf815e732142686b42fbdc75a71c05b41013d33
|
||||
DIST cairomm-1.16.2.tar.xz 593504 BLAKE2B 6682604f5907f16e40dd497f07eaaca5a4dc8a0b90771a0631406817ec397c42eb1784a6cbf15094ea6d61591acf04818e1b4d64ede3383b6859668d3b445a76 SHA512 61dc639eabe8502e1262c53c92fe57c5647e5ab9931f86ed51e657df1b7d0e3e58c2571910a05236cc0dca8d52f1f693aed99a553430f14d0fb87be1832a6b62
|
||||
DIST cairomm-1.18.0.tar.xz 632520 BLAKE2B e05135eb2e22ed6002821567dd951644febc173b04e001f3574d6dac36d0c6d012c3806e7485fa7856402945934c653c4546855a8e97b016130edac31726d827 SHA512 d358a765136e244773b4a0fdcb2d9c81dd0b76f7a27c7108f94df9765f2d790f5f50b5645c09c292efce3e012528f85114d51916450c5fe6fa87d09f5a405d4c
|
||||
|
@ -0,0 +1,50 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
PYTHON_COMPAT=( python3_{10..12} )
|
||||
inherit meson-multilib python-any-r1
|
||||
|
||||
DESCRIPTION="C++ bindings for the Cairo vector graphics library"
|
||||
HOMEPAGE="https://cairographics.org/cairomm/ https://gitlab.freedesktop.org/cairo/cairomm"
|
||||
SRC_URI="https://www.cairographics.org/releases/${P}.tar.xz"
|
||||
|
||||
LICENSE="LGPL-2+"
|
||||
SLOT="1.16"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos"
|
||||
IUSE="gtk-doc test X"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
RDEPEND="
|
||||
dev-libs/libsigc++:3[gtk-doc?,${MULTILIB_USEDEP}]
|
||||
>=x11-libs/cairo-1.14.10[X=,${MULTILIB_USEDEP}]
|
||||
"
|
||||
DEPEND="${RDEPEND}
|
||||
test? (
|
||||
dev-libs/boost[${MULTILIB_USEDEP}]
|
||||
media-libs/fontconfig[${MULTILIB_USEDEP}]
|
||||
)
|
||||
"
|
||||
BDEPEND="
|
||||
virtual/pkgconfig
|
||||
gtk-doc? (
|
||||
${PYTHON_DEPS}
|
||||
>=dev-cpp/mm-common-1.0.4
|
||||
app-doc/doxygen[dot]
|
||||
dev-libs/libxslt
|
||||
)
|
||||
"
|
||||
|
||||
pkg_setup() {
|
||||
use gtk-doc && python-any-r1_pkg_setup
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
local emesonargs=(
|
||||
$(meson_native_use_bool gtk-doc build-documentation)
|
||||
-Dbuild-examples=false
|
||||
$(meson_use test build-tests)
|
||||
-Dboost-shared=true
|
||||
)
|
||||
meson_src_configure
|
||||
}
|
Binary file not shown.
Binary file not shown.
@ -0,0 +1,535 @@
|
||||
# Copyright 1999-2023 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
|
||||
inherit prefix 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/
|
||||
https://github.com/python/cpython/
|
||||
"
|
||||
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 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
|
||||
IUSE="
|
||||
bluetooth build debug +ensurepip examples gdbm libedit lto
|
||||
+ncurses pgo +readline +sqlite +ssl test tk valgrind
|
||||
"
|
||||
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:=
|
||||
app-crypt/libb2
|
||||
>=dev-libs/expat-2.1:=
|
||||
dev-libs/libffi:=
|
||||
dev-python/gentoo-common
|
||||
>=sys-libs/zlib-1.1.3:=
|
||||
virtual/libcrypt:=
|
||||
virtual/libintl
|
||||
ensurepip? ( dev-python/ensurepip-wheels )
|
||||
gdbm? ( sys-libs/gdbm:=[berkdb] )
|
||||
kernel_linux? ( sys-apps/util-linux:= )
|
||||
ncurses? ( >=sys-libs/ncurses-5.2:= )
|
||||
readline? (
|
||||
!libedit? ( >=sys-libs/readline-4.1:= )
|
||||
libedit? ( dev-libs/libedit:= )
|
||||
)
|
||||
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
|
||||
)
|
||||
"
|
||||
# bluetooth requires headers from bluez
|
||||
DEPEND="
|
||||
${RDEPEND}
|
||||
bluetooth? ( net-wireless/bluez )
|
||||
test? ( app-arch/xz-utils[extra-filters(+)] )
|
||||
valgrind? ( dev-util/valgrind )
|
||||
"
|
||||
# autoconf-archive needed to eautoreconf
|
||||
BDEPEND="
|
||||
sys-devel/autoconf-archive
|
||||
app-alternatives/awk
|
||||
virtual/pkgconfig
|
||||
verify-sig? ( sec-keys/openpgp-keys-python )
|
||||
"
|
||||
RDEPEND+="
|
||||
!build? ( app-misc/mime-types )
|
||||
"
|
||||
if [[ ${PV} != *_alpha* ]]; then
|
||||
RDEPEND+="
|
||||
dev-lang/python-exec[python_targets_python${PYVER/./_}(-)]
|
||||
"
|
||||
fi
|
||||
|
||||
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
|
||||
|
||||
QA_PKGCONFIG_VERSION=${PYVER}
|
||||
# false positives -- functions specific to *BSD
|
||||
QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags )
|
||||
|
||||
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 and libffi are not used.
|
||||
rm -r Modules/expat || die
|
||||
rm -r Modules/_ctypes/libffi* || die
|
||||
|
||||
local PATCHES=(
|
||||
"${WORKDIR}/${PATCHSET}"
|
||||
)
|
||||
|
||||
default
|
||||
|
||||
# https://bugs.gentoo.org/850151
|
||||
sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" setup.py || die
|
||||
|
||||
# force the correct number of jobs
|
||||
# https://bugs.gentoo.org/737660
|
||||
local jobs=$(makeopts_jobs)
|
||||
sed -i -e "s:-j0:-j${jobs}:" Makefile.pre.in || die
|
||||
sed -i -e "/self\.parallel/s:True:${jobs}:" setup.py || die
|
||||
|
||||
eautoreconf
|
||||
}
|
||||
|
||||
build_cbuild_python() {
|
||||
# Hack to workaround get_libdir not being able to handle CBUILD, bug #794181
|
||||
local cbuild_libdir=$(unset PKG_CONFIG_PATH ; $(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libffi)
|
||||
|
||||
# pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
|
||||
# propagated to sysconfig for built extensions
|
||||
#
|
||||
# -fno-lto to avoid bug #700012 (not like it matters for mini-CBUILD Python anyway)
|
||||
local -x CFLAGS_NODIST="${BUILD_CFLAGS} -fno-lto"
|
||||
local -x LDFLAGS_NODIST=${BUILD_LDFLAGS}
|
||||
local -x CFLAGS= LDFLAGS=
|
||||
local -x BUILD_CFLAGS="${CFLAGS_NODIST}"
|
||||
local -x BUILD_LDFLAGS=${LDFLAGS_NODIST}
|
||||
|
||||
# We need to build our own Python on CBUILD first, and feed it in.
|
||||
# bug #847910
|
||||
local myeconfargs_cbuild=(
|
||||
"${myeconfargs[@]}"
|
||||
|
||||
--prefix="${BROOT}"/usr
|
||||
--libdir="${cbuild_libdir:2}"
|
||||
|
||||
# Avoid needing to load the right libpython.so.
|
||||
--disable-shared
|
||||
|
||||
# As minimal as possible for the mini CBUILD Python
|
||||
# we build just for cross to satisfy --with-build-python.
|
||||
--without-lto
|
||||
--without-readline
|
||||
--disable-optimizations
|
||||
)
|
||||
|
||||
mkdir "${WORKDIR}"/${P}-${CBUILD} || die
|
||||
pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die
|
||||
# We disable _ctypes and _crypt for CBUILD because Python's setup.py can't handle locating
|
||||
# libdir correctly for cross.
|
||||
PYTHON_DISABLE_MODULES+=" _ctypes _crypt" \
|
||||
ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}"
|
||||
|
||||
# Avoid as many dependencies as possible for the cross build.
|
||||
cat >> Makefile <<-EOF || die
|
||||
MODULE_NIS_STATE=disabled
|
||||
MODULE__DBM_STATE=disabled
|
||||
MODULE__GDBM_STATE=disabled
|
||||
MODULE__DBM_STATE=disabled
|
||||
MODULE__SQLITE3_STATE=disabled
|
||||
MODULE__HASHLIB_STATE=disabled
|
||||
MODULE__SSL_STATE=disabled
|
||||
MODULE__CURSES_STATE=disabled
|
||||
MODULE__CURSES_PANEL_STATE=disabled
|
||||
MODULE_READLINE_STATE=disabled
|
||||
MODULE__TKINTER_STATE=disabled
|
||||
MODULE_PYEXPAT_STATE=disabled
|
||||
MODULE_ZLIB_STATE=disabled
|
||||
EOF
|
||||
|
||||
# Unfortunately, we do have to build this immediately, and
|
||||
# not in src_compile, because CHOST configure for Python
|
||||
# will check the existence of the --with-build-python value
|
||||
# immediately.
|
||||
PYTHON_DISABLE_MODULES+=" _ctypes _crypt" emake
|
||||
popd &> /dev/null || die
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local disable
|
||||
# disable automagic bluetooth headers detection
|
||||
if ! use bluetooth; then
|
||||
local -x ac_cv_header_bluetooth_bluetooth_h=no
|
||||
fi
|
||||
|
||||
append-flags -fwrapv
|
||||
filter-flags -malign-double
|
||||
|
||||
# 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.
|
||||
# PKG_CONFIG needed for cross.
|
||||
tc-export CXX PKG_CONFIG
|
||||
|
||||
local dbmliborder=
|
||||
if use gdbm; then
|
||||
dbmliborder+="${dbmliborder:+:}gdbm"
|
||||
fi
|
||||
|
||||
if use pgo; then
|
||||
local profile_task_flags=(
|
||||
-m test
|
||||
"-j$(makeopts_jobs)"
|
||||
--pgo-extended
|
||||
-u-network
|
||||
|
||||
# We use a timeout because of how often we've had hang issues
|
||||
# here. It also matches the default upstream PROFILE_TASK.
|
||||
--timeout 1200
|
||||
|
||||
-x test_gdb
|
||||
-x test_dtrace
|
||||
|
||||
# All of these seem to occasionally hang for PGO inconsistently
|
||||
# They'll even hang here but be fine in src_test sometimes.
|
||||
# bug #828535 (and related: bug #788022)
|
||||
-x test_asyncio
|
||||
-x test_httpservers
|
||||
-x test_logging
|
||||
-x test_multiprocessing_fork
|
||||
-x test_socket
|
||||
-x test_xmlrpc
|
||||
|
||||
# Hangs (actually runs indefinitely executing itself w/ many cpython builds)
|
||||
# bug #900429
|
||||
-x test_tools
|
||||
)
|
||||
|
||||
if has_version "app-arch/rpm" ; then
|
||||
# Avoid sandbox failure (attempts to write to /var/lib/rpm)
|
||||
profile_task_flags+=(
|
||||
-x test_distutils
|
||||
)
|
||||
fi
|
||||
local -x PROFILE_TASK="${profile_task_flags[*]}"
|
||||
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
|
||||
--without-static-libpython
|
||||
--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
|
||||
--with-platlibdir=lib
|
||||
--with-pkg-config=yes
|
||||
--with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip
|
||||
|
||||
$(use_with debug assertions)
|
||||
$(use_with lto)
|
||||
$(use_enable pgo optimizations)
|
||||
$(use_with readline readline "$(usex libedit editline readline)")
|
||||
$(use_with valgrind)
|
||||
)
|
||||
|
||||
# disable implicit optimization/debugging flags
|
||||
local -x OPT=
|
||||
|
||||
if tc-is-cross-compiler ; then
|
||||
build_cbuild_python
|
||||
myeconfargs+=(
|
||||
# Point the imminent CHOST build to the Python we just
|
||||
# built for CBUILD.
|
||||
--with-build-python="${WORKDIR}"/${P}-${CBUILD}/python
|
||||
)
|
||||
fi
|
||||
|
||||
# pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
|
||||
# propagated to sysconfig for built extensions
|
||||
local -x CFLAGS_NODIST=${CFLAGS}
|
||||
local -x LDFLAGS_NODIST=${LDFLAGS}
|
||||
local -x CFLAGS= LDFLAGS=
|
||||
|
||||
# Fix implicit declarations on cross and prefix builds. Bug #674070.
|
||||
if use ncurses; then
|
||||
append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw
|
||||
fi
|
||||
|
||||
hprefixify setup.py
|
||||
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
|
||||
|
||||
# force-disable modules we don't want built
|
||||
local disable_modules=( NIS )
|
||||
use gdbm || disable_modules+=( _GDBM _DBM )
|
||||
use sqlite || disable_modules+=( _SQLITE3 )
|
||||
use ssl || disable_modules+=( _HASHLIB _SSL )
|
||||
use ncurses || disable_modules+=( _CURSES _CURSES_PANEL )
|
||||
use readline || disable_modules+=( READLINE )
|
||||
use tk || disable_modules+=( _TKINTER )
|
||||
|
||||
local mod
|
||||
for mod in "${disable_modules[@]}"; do
|
||||
echo "MODULE_${mod}_STATE=disabled"
|
||||
done >> Makefile || die
|
||||
|
||||
# install epython.py as part of stdlib
|
||||
echo "EPYTHON='python${PYVER}'" > Lib/epython.py || die
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
# Ensure sed works as expected
|
||||
# https://bugs.gentoo.org/594768
|
||||
local -x LC_ALL=C
|
||||
# Prevent using distutils bundled by setuptools.
|
||||
# https://bugs.gentoo.org/823728
|
||||
export SETUPTOOLS_USE_DISTUTILS=stdlib
|
||||
export PYTHONSTRICTEXTENSIONBUILD=1
|
||||
|
||||
# Save PYTHONDONTWRITEBYTECODE so that 'has_version' doesn't
|
||||
# end up writing bytecode & violating sandbox.
|
||||
# bug #831897
|
||||
local -x _PYTHONDONTWRITEBYTECODE=${PYTHONDONTWRITEBYTECODE}
|
||||
|
||||
if use pgo ; then
|
||||
# bug 660358
|
||||
local -x COLUMNS=80
|
||||
local -x PYTHONDONTWRITEBYTECODE=
|
||||
|
||||
addpredict "/usr/lib/python${PYVER}/site-packages"
|
||||
fi
|
||||
|
||||
# also need to clear the flags explicitly here or they end up
|
||||
# in _sysconfigdata*
|
||||
emake CPPFLAGS= CFLAGS= LDFLAGS=
|
||||
|
||||
# Restore saved value from above.
|
||||
local -x PYTHONDONTWRITEBYTECODE=${_PYTHONDONTWRITEBYTECODE}
|
||||
|
||||
# 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
|
||||
|
||||
# this just happens to skip test_support.test_freeze that is broken
|
||||
# without bundled expat
|
||||
# TODO: get a proper skip for it upstream
|
||||
local -x LOGNAME=buildbot
|
||||
|
||||
local test_opts=(
|
||||
-u-network
|
||||
-j "$(makeopts_jobs)"
|
||||
|
||||
# fails
|
||||
-x test_gdb
|
||||
)
|
||||
|
||||
if use sparc ; then
|
||||
# bug #788022
|
||||
test_opts+=(
|
||||
-x test_multiprocessing_fork
|
||||
-x test_multiprocessing_forkserver
|
||||
)
|
||||
fi
|
||||
|
||||
# workaround docutils breaking tests
|
||||
cat > Lib/docutils.py <<-EOF || die
|
||||
raise ImportError("Thou shalt not import!")
|
||||
EOF
|
||||
|
||||
# bug 660358
|
||||
local -x COLUMNS=80
|
||||
local -x PYTHONDONTWRITEBYTECODE=
|
||||
# workaround https://bugs.gentoo.org/775416
|
||||
addwrite "/usr/lib/python${PYVER}/site-packages"
|
||||
|
||||
nonfatal emake test EXTRATESTOPTS="${test_opts[*]}" \
|
||||
CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty
|
||||
local ret=${?}
|
||||
|
||||
rm Lib/docutils.py || die
|
||||
|
||||
[[ ${ret} -eq 0 ]] || die "emake test failed"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
local libdir=${ED}/usr/lib/python${PYVER}
|
||||
|
||||
# -j1 hack for now for bug #843458
|
||||
emake -j1 DESTDIR="${D}" altinstall
|
||||
|
||||
# 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
|
||||
|
||||
rm -r "${libdir}"/ensurepip/_bundled || die
|
||||
if ! use ensurepip; then
|
||||
rm -r "${libdir}"/ensurepip || die
|
||||
fi
|
||||
if ! use sqlite; then
|
||||
rm -r "${libdir}/"sqlite3 || die
|
||||
fi
|
||||
if ! use tk; then
|
||||
rm -r "${ED}/usr/bin/idle${PYVER}" || die
|
||||
rm -r "${libdir}/"{idlelib,tkinter,test/test_tk*} || die
|
||||
fi
|
||||
|
||||
ln -s ../python/EXTERNALLY-MANAGED "${libdir}/EXTERNALLY-MANAGED" || 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 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"
|
||||
|
||||
# python-exec wrapping support
|
||||
local pymajor=${PYVER%.*}
|
||||
local EPYTHON=python${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
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
local v
|
||||
for v in ${REPLACING_VERSIONS}; do
|
||||
if ver_test "${v}" -lt 3.11.0_beta4-r2; then
|
||||
ewarn "Python 3.11.0b4 has changed its module ABI. The .pyc files"
|
||||
ewarn "installed previously are no longer valid and will be regenerated"
|
||||
ewarn "(or ignored) on the next import. This may cause sandbox failures"
|
||||
ewarn "when installing some packages and checksum mismatches when removing"
|
||||
ewarn "old versions. To actively prevent this, rebuild all packages"
|
||||
ewarn "installing Python 3.11 modules, e.g. using:"
|
||||
ewarn
|
||||
ewarn " emerge -1v /usr/lib/python3.11/site-packages"
|
||||
fi
|
||||
done
|
||||
}
|
@ -0,0 +1,532 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="8"
|
||||
WANT_LIBTOOL="none"
|
||||
|
||||
inherit autotools check-reqs flag-o-matic multiprocessing pax-utils
|
||||
inherit 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/
|
||||
https://github.com/python/cpython/
|
||||
"
|
||||
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 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
|
||||
IUSE="
|
||||
bluetooth build debug +ensurepip examples gdbm libedit lto
|
||||
+ncurses pgo +readline +sqlite +ssl test tk valgrind
|
||||
"
|
||||
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:=
|
||||
app-crypt/libb2
|
||||
>=dev-libs/expat-2.1:=
|
||||
dev-libs/libffi:=
|
||||
dev-python/gentoo-common
|
||||
>=sys-libs/zlib-1.1.3:=
|
||||
virtual/libcrypt:=
|
||||
virtual/libintl
|
||||
ensurepip? ( dev-python/ensurepip-pip )
|
||||
gdbm? ( sys-libs/gdbm:=[berkdb] )
|
||||
kernel_linux? ( sys-apps/util-linux:= )
|
||||
ncurses? ( >=sys-libs/ncurses-5.2:= )
|
||||
readline? (
|
||||
!libedit? ( >=sys-libs/readline-4.1:= )
|
||||
libedit? ( dev-libs/libedit:= )
|
||||
)
|
||||
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
|
||||
)
|
||||
"
|
||||
# bluetooth requires headers from bluez
|
||||
DEPEND="
|
||||
${RDEPEND}
|
||||
bluetooth? ( net-wireless/bluez )
|
||||
test? (
|
||||
app-arch/xz-utils[extra-filters(+)]
|
||||
dev-python/ensurepip-pip
|
||||
dev-python/ensurepip-setuptools
|
||||
dev-python/ensurepip-wheel
|
||||
)
|
||||
valgrind? ( dev-util/valgrind )
|
||||
"
|
||||
# autoconf-archive needed to eautoreconf
|
||||
BDEPEND="
|
||||
sys-devel/autoconf-archive
|
||||
app-alternatives/awk
|
||||
virtual/pkgconfig
|
||||
verify-sig? ( >=sec-keys/openpgp-keys-python-20221025 )
|
||||
"
|
||||
RDEPEND+="
|
||||
!build? ( app-misc/mime-types )
|
||||
"
|
||||
if [[ ${PV} != *_alpha* ]]; then
|
||||
RDEPEND+="
|
||||
dev-lang/python-exec[python_targets_python${PYVER/./_}(-)]
|
||||
"
|
||||
fi
|
||||
|
||||
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
|
||||
|
||||
QA_PKGCONFIG_VERSION=${PYVER}
|
||||
# false positives -- functions specific to *BSD
|
||||
QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags )
|
||||
|
||||
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 and libffi are not used.
|
||||
# TODO: Makefile has annoying deps on expat headers
|
||||
#rm -r Modules/expat || die
|
||||
|
||||
local PATCHES=(
|
||||
"${WORKDIR}/${PATCHSET}"
|
||||
)
|
||||
|
||||
default
|
||||
|
||||
# force the correct number of jobs
|
||||
# https://bugs.gentoo.org/737660
|
||||
sed -i -e "s:-j0:-j$(makeopts_jobs):" Makefile.pre.in || die
|
||||
|
||||
eautoreconf
|
||||
}
|
||||
|
||||
build_cbuild_python() {
|
||||
# Hack to workaround get_libdir not being able to handle CBUILD, bug #794181
|
||||
local cbuild_libdir=$(unset PKG_CONFIG_PATH ; $(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libffi)
|
||||
|
||||
# pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
|
||||
# propagated to sysconfig for built extensions
|
||||
#
|
||||
# -fno-lto to avoid bug #700012 (not like it matters for mini-CBUILD Python anyway)
|
||||
local -x CFLAGS_NODIST="${BUILD_CFLAGS} -fno-lto"
|
||||
local -x LDFLAGS_NODIST=${BUILD_LDFLAGS}
|
||||
local -x CFLAGS= LDFLAGS=
|
||||
local -x BUILD_CFLAGS="${CFLAGS_NODIST}"
|
||||
local -x BUILD_LDFLAGS=${LDFLAGS_NODIST}
|
||||
|
||||
# We need to build our own Python on CBUILD first, and feed it in.
|
||||
# bug #847910
|
||||
local myeconfargs_cbuild=(
|
||||
"${myeconfargs[@]}"
|
||||
|
||||
--prefix="${BROOT}"/usr
|
||||
--libdir="${cbuild_libdir:2}"
|
||||
|
||||
# Avoid needing to load the right libpython.so.
|
||||
--disable-shared
|
||||
|
||||
# As minimal as possible for the mini CBUILD Python
|
||||
# we build just for cross to satisfy --with-build-python.
|
||||
--without-lto
|
||||
--without-readline
|
||||
--disable-optimizations
|
||||
)
|
||||
|
||||
mkdir "${WORKDIR}"/${P}-${CBUILD} || die
|
||||
pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die
|
||||
|
||||
# Avoid as many dependencies as possible for the cross build.
|
||||
mkdir Modules || die
|
||||
cat > Modules/Setup.local <<-EOF || die
|
||||
*disabled*
|
||||
nis
|
||||
_dbm _gdbm
|
||||
_sqlite3
|
||||
_hashlib _ssl
|
||||
_curses _curses_panel
|
||||
readline
|
||||
_tkinter
|
||||
pyexpat
|
||||
zlib
|
||||
# We disabled these for CBUILD because Python's setup.py can't handle locating
|
||||
# libdir correctly for cross. This should be rechecked for the pure Makefile approach,
|
||||
# and uncommented if needed.
|
||||
#_ctypes _crypt
|
||||
EOF
|
||||
|
||||
ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}"
|
||||
|
||||
# Unfortunately, we do have to build this immediately, and
|
||||
# not in src_compile, because CHOST configure for Python
|
||||
# will check the existence of the --with-build-python value
|
||||
# immediately.
|
||||
emake
|
||||
popd &> /dev/null || die
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local disable
|
||||
# disable automagic bluetooth headers detection
|
||||
if ! use bluetooth; then
|
||||
local -x ac_cv_header_bluetooth_bluetooth_h=no
|
||||
fi
|
||||
|
||||
append-flags -fwrapv
|
||||
filter-flags -malign-double
|
||||
|
||||
# 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.
|
||||
# PKG_CONFIG needed for cross.
|
||||
tc-export CXX PKG_CONFIG
|
||||
|
||||
local dbmliborder=
|
||||
if use gdbm; then
|
||||
dbmliborder+="${dbmliborder:+:}gdbm"
|
||||
fi
|
||||
|
||||
if use pgo; then
|
||||
local profile_task_flags=(
|
||||
-m test
|
||||
"-j$(makeopts_jobs)"
|
||||
--pgo-extended
|
||||
-u-network
|
||||
|
||||
# We use a timeout because of how often we've had hang issues
|
||||
# here. It also matches the default upstream PROFILE_TASK.
|
||||
--timeout 1200
|
||||
|
||||
-x test_gdb
|
||||
-x test_dtrace
|
||||
|
||||
# All of these seem to occasionally hang for PGO inconsistently
|
||||
# They'll even hang here but be fine in src_test sometimes.
|
||||
# bug #828535 (and related: bug #788022)
|
||||
-x test_asyncio
|
||||
-x test_httpservers
|
||||
-x test_logging
|
||||
-x test_multiprocessing_fork
|
||||
-x test_socket
|
||||
-x test_xmlrpc
|
||||
|
||||
# Hangs (actually runs indefinitely executing itself w/ many cpython builds)
|
||||
# bug #900429
|
||||
-x test_tools
|
||||
)
|
||||
|
||||
if has_version "app-arch/rpm" ; then
|
||||
# Avoid sandbox failure (attempts to write to /var/lib/rpm)
|
||||
profile_task_flags+=(
|
||||
-x test_distutils
|
||||
)
|
||||
fi
|
||||
local -x PROFILE_TASK="${profile_task_flags[*]}"
|
||||
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
|
||||
--without-static-libpython
|
||||
--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-platlibdir=lib
|
||||
--with-pkg-config=yes
|
||||
--with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip
|
||||
|
||||
$(use_with debug assertions)
|
||||
$(use_with lto)
|
||||
$(use_enable pgo optimizations)
|
||||
$(use_with readline readline "$(usex libedit editline readline)")
|
||||
$(use_with valgrind)
|
||||
)
|
||||
# Force-disable modules we don't want built.
|
||||
# See Modules/Setup for docs on how this works. Setup.local contains our local deviations.
|
||||
cat > Modules/Setup.local <<-EOF || die
|
||||
*disabled*
|
||||
nis
|
||||
$(usev !gdbm '_gdbm _dbm')
|
||||
$(usev !sqlite '_sqlite3')
|
||||
$(usev !ssl '_hashlib _ssl')
|
||||
$(usev !ncurses '_curses _curses_panel')
|
||||
$(usev !readline 'readline')
|
||||
$(usev !tk '_tkinter')
|
||||
EOF
|
||||
|
||||
# disable implicit optimization/debugging flags
|
||||
local -x OPT=
|
||||
|
||||
if tc-is-cross-compiler ; then
|
||||
build_cbuild_python
|
||||
myeconfargs+=(
|
||||
# Point the imminent CHOST build to the Python we just
|
||||
# built for CBUILD.
|
||||
--with-build-python="${WORKDIR}"/${P}-${CBUILD}/python
|
||||
)
|
||||
fi
|
||||
|
||||
# pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
|
||||
# propagated to sysconfig for built extensions
|
||||
local -x CFLAGS_NODIST=${CFLAGS}
|
||||
local -x LDFLAGS_NODIST=${LDFLAGS}
|
||||
local -x CFLAGS= LDFLAGS=
|
||||
|
||||
# Fix implicit declarations on cross and prefix builds. Bug #674070.
|
||||
if use ncurses; then
|
||||
append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw
|
||||
fi
|
||||
|
||||
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
|
||||
|
||||
# install epython.py as part of stdlib
|
||||
echo "EPYTHON='python${PYVER}'" > Lib/epython.py || die
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
# Ensure sed works as expected
|
||||
# https://bugs.gentoo.org/594768
|
||||
local -x LC_ALL=C
|
||||
export PYTHONSTRICTEXTENSIONBUILD=1
|
||||
|
||||
# Save PYTHONDONTWRITEBYTECODE so that 'has_version' doesn't
|
||||
# end up writing bytecode & violating sandbox.
|
||||
# bug #831897
|
||||
local -x _PYTHONDONTWRITEBYTECODE=${PYTHONDONTWRITEBYTECODE}
|
||||
|
||||
if use pgo ; then
|
||||
# bug 660358
|
||||
local -x COLUMNS=80
|
||||
local -x PYTHONDONTWRITEBYTECODE=
|
||||
|
||||
addpredict "/usr/lib/python${PYVER}/site-packages"
|
||||
fi
|
||||
|
||||
# also need to clear the flags explicitly here or they end up
|
||||
# in _sysconfigdata*
|
||||
emake CPPFLAGS= CFLAGS= LDFLAGS=
|
||||
|
||||
# Restore saved value from above.
|
||||
local -x PYTHONDONTWRITEBYTECODE=${_PYTHONDONTWRITEBYTECODE}
|
||||
|
||||
# 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
|
||||
|
||||
# this just happens to skip test_support.test_freeze that is broken
|
||||
# without bundled expat
|
||||
# TODO: get a proper skip for it upstream
|
||||
local -x LOGNAME=buildbot
|
||||
|
||||
local test_opts=(
|
||||
-u-network
|
||||
-j "$(makeopts_jobs)"
|
||||
|
||||
# fails
|
||||
-x test_gdb
|
||||
)
|
||||
|
||||
if use sparc ; then
|
||||
# bug #788022
|
||||
test_opts+=(
|
||||
-x test_multiprocessing_fork
|
||||
-x test_multiprocessing_forkserver
|
||||
)
|
||||
fi
|
||||
|
||||
# workaround docutils breaking tests
|
||||
cat > Lib/docutils.py <<-EOF || die
|
||||
raise ImportError("Thou shalt not import!")
|
||||
EOF
|
||||
|
||||
# bug 660358
|
||||
local -x COLUMNS=80
|
||||
local -x PYTHONDONTWRITEBYTECODE=
|
||||
# workaround https://bugs.gentoo.org/775416
|
||||
addwrite "/usr/lib/python${PYVER}/site-packages"
|
||||
|
||||
nonfatal emake test EXTRATESTOPTS="${test_opts[*]}" \
|
||||
CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty
|
||||
local ret=${?}
|
||||
|
||||
rm Lib/docutils.py || die
|
||||
|
||||
[[ ${ret} -eq 0 ]] || die "emake test failed"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
local libdir=${ED}/usr/lib/python${PYVER}
|
||||
|
||||
# the Makefile rules are broken
|
||||
# https://github.com/python/cpython/issues/100221
|
||||
mkdir -p "${libdir}"/lib-dynload || die
|
||||
|
||||
# -j1 hack for now for bug #843458
|
||||
emake -j1 DESTDIR="${D}" altinstall
|
||||
|
||||
# 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
|
||||
|
||||
rm -r "${libdir}"/ensurepip/_bundled || die
|
||||
if ! use ensurepip; then
|
||||
rm -r "${libdir}"/ensurepip || die
|
||||
fi
|
||||
if ! use sqlite; then
|
||||
rm -r "${libdir}/"sqlite3 || die
|
||||
fi
|
||||
if ! use tk; then
|
||||
rm -r "${ED}/usr/bin/idle${PYVER}" || die
|
||||
rm -r "${libdir}/"{idlelib,tkinter,test/test_tk*} || die
|
||||
fi
|
||||
|
||||
ln -s ../python/EXTERNALLY-MANAGED "${libdir}/EXTERNALLY-MANAGED" || 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 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"
|
||||
|
||||
# python-exec wrapping support
|
||||
local pymajor=${PYVER%.*}
|
||||
local EPYTHON=python${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
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
local v
|
||||
for v in ${REPLACING_VERSIONS}; do
|
||||
if ver_test "${v}" -lt 3.11.0_beta4-r2; then
|
||||
ewarn "Python 3.11.0b4 has changed its module ABI. The .pyc files"
|
||||
ewarn "installed previously are no longer valid and will be regenerated"
|
||||
ewarn "(or ignored) on the next import. This may cause sandbox failures"
|
||||
ewarn "when installing some packages and checksum mismatches when removing"
|
||||
ewarn "old versions. To actively prevent this, rebuild all packages"
|
||||
ewarn "installing Python 3.11 modules, e.g. using:"
|
||||
ewarn
|
||||
ewarn " emerge -1v /usr/lib/python3.11/site-packages"
|
||||
fi
|
||||
done
|
||||
}
|
@ -0,0 +1,532 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="8"
|
||||
WANT_LIBTOOL="none"
|
||||
|
||||
inherit autotools check-reqs flag-o-matic multiprocessing pax-utils
|
||||
inherit 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/
|
||||
https://github.com/python/cpython/
|
||||
"
|
||||
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 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
|
||||
IUSE="
|
||||
bluetooth build debug +ensurepip examples gdbm libedit lto
|
||||
+ncurses pgo +readline +sqlite +ssl test tk valgrind
|
||||
"
|
||||
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:=
|
||||
app-crypt/libb2
|
||||
>=dev-libs/expat-2.1:=
|
||||
dev-libs/libffi:=
|
||||
dev-python/gentoo-common
|
||||
>=sys-libs/zlib-1.1.3:=
|
||||
virtual/libcrypt:=
|
||||
virtual/libintl
|
||||
ensurepip? ( dev-python/ensurepip-pip )
|
||||
gdbm? ( sys-libs/gdbm:=[berkdb] )
|
||||
kernel_linux? ( sys-apps/util-linux:= )
|
||||
ncurses? ( >=sys-libs/ncurses-5.2:= )
|
||||
readline? (
|
||||
!libedit? ( >=sys-libs/readline-4.1:= )
|
||||
libedit? ( dev-libs/libedit:= )
|
||||
)
|
||||
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
|
||||
)
|
||||
"
|
||||
# bluetooth requires headers from bluez
|
||||
DEPEND="
|
||||
${RDEPEND}
|
||||
bluetooth? ( net-wireless/bluez )
|
||||
test? (
|
||||
app-arch/xz-utils[extra-filters(+)]
|
||||
dev-python/ensurepip-pip
|
||||
dev-python/ensurepip-setuptools
|
||||
dev-python/ensurepip-wheel
|
||||
)
|
||||
valgrind? ( dev-util/valgrind )
|
||||
"
|
||||
# autoconf-archive needed to eautoreconf
|
||||
BDEPEND="
|
||||
sys-devel/autoconf-archive
|
||||
app-alternatives/awk
|
||||
virtual/pkgconfig
|
||||
verify-sig? ( >=sec-keys/openpgp-keys-python-20221025 )
|
||||
"
|
||||
RDEPEND+="
|
||||
!build? ( app-misc/mime-types )
|
||||
"
|
||||
if [[ ${PV} != *_alpha* ]]; then
|
||||
RDEPEND+="
|
||||
dev-lang/python-exec[python_targets_python${PYVER/./_}(-)]
|
||||
"
|
||||
fi
|
||||
|
||||
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
|
||||
|
||||
QA_PKGCONFIG_VERSION=${PYVER}
|
||||
# false positives -- functions specific to *BSD
|
||||
QA_CONFIG_IMPL_DECL_SKIP=( chflags lchflags )
|
||||
|
||||
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 and libffi are not used.
|
||||
# TODO: Makefile has annoying deps on expat headers
|
||||
#rm -r Modules/expat || die
|
||||
|
||||
local PATCHES=(
|
||||
"${WORKDIR}/${PATCHSET}"
|
||||
)
|
||||
|
||||
default
|
||||
|
||||
# force the correct number of jobs
|
||||
# https://bugs.gentoo.org/737660
|
||||
sed -i -e "s:-j0:-j$(makeopts_jobs):" Makefile.pre.in || die
|
||||
|
||||
eautoreconf
|
||||
}
|
||||
|
||||
build_cbuild_python() {
|
||||
# Hack to workaround get_libdir not being able to handle CBUILD, bug #794181
|
||||
local cbuild_libdir=$(unset PKG_CONFIG_PATH ; $(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libffi)
|
||||
|
||||
# pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
|
||||
# propagated to sysconfig for built extensions
|
||||
#
|
||||
# -fno-lto to avoid bug #700012 (not like it matters for mini-CBUILD Python anyway)
|
||||
local -x CFLAGS_NODIST="${BUILD_CFLAGS} -fno-lto"
|
||||
local -x LDFLAGS_NODIST=${BUILD_LDFLAGS}
|
||||
local -x CFLAGS= LDFLAGS=
|
||||
local -x BUILD_CFLAGS="${CFLAGS_NODIST}"
|
||||
local -x BUILD_LDFLAGS=${LDFLAGS_NODIST}
|
||||
|
||||
# We need to build our own Python on CBUILD first, and feed it in.
|
||||
# bug #847910
|
||||
local myeconfargs_cbuild=(
|
||||
"${myeconfargs[@]}"
|
||||
|
||||
--prefix="${BROOT}"/usr
|
||||
--libdir="${cbuild_libdir:2}"
|
||||
|
||||
# Avoid needing to load the right libpython.so.
|
||||
--disable-shared
|
||||
|
||||
# As minimal as possible for the mini CBUILD Python
|
||||
# we build just for cross to satisfy --with-build-python.
|
||||
--without-lto
|
||||
--without-readline
|
||||
--disable-optimizations
|
||||
)
|
||||
|
||||
mkdir "${WORKDIR}"/${P}-${CBUILD} || die
|
||||
pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die
|
||||
|
||||
# Avoid as many dependencies as possible for the cross build.
|
||||
mkdir Modules || die
|
||||
cat > Modules/Setup.local <<-EOF || die
|
||||
*disabled*
|
||||
nis
|
||||
_dbm _gdbm
|
||||
_sqlite3
|
||||
_hashlib _ssl
|
||||
_curses _curses_panel
|
||||
readline
|
||||
_tkinter
|
||||
pyexpat
|
||||
zlib
|
||||
# We disabled these for CBUILD because Python's setup.py can't handle locating
|
||||
# libdir correctly for cross. This should be rechecked for the pure Makefile approach,
|
||||
# and uncommented if needed.
|
||||
#_ctypes _crypt
|
||||
EOF
|
||||
|
||||
ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}"
|
||||
|
||||
# Unfortunately, we do have to build this immediately, and
|
||||
# not in src_compile, because CHOST configure for Python
|
||||
# will check the existence of the --with-build-python value
|
||||
# immediately.
|
||||
emake
|
||||
popd &> /dev/null || die
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local disable
|
||||
# disable automagic bluetooth headers detection
|
||||
if ! use bluetooth; then
|
||||
local -x ac_cv_header_bluetooth_bluetooth_h=no
|
||||
fi
|
||||
|
||||
append-flags -fwrapv
|
||||
filter-flags -malign-double
|
||||
|
||||
# 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.
|
||||
# PKG_CONFIG needed for cross.
|
||||
tc-export CXX PKG_CONFIG
|
||||
|
||||
local dbmliborder=
|
||||
if use gdbm; then
|
||||
dbmliborder+="${dbmliborder:+:}gdbm"
|
||||
fi
|
||||
|
||||
if use pgo; then
|
||||
local profile_task_flags=(
|
||||
-m test
|
||||
"-j$(makeopts_jobs)"
|
||||
--pgo-extended
|
||||
-u-network
|
||||
|
||||
# We use a timeout because of how often we've had hang issues
|
||||
# here. It also matches the default upstream PROFILE_TASK.
|
||||
--timeout 1200
|
||||
|
||||
-x test_gdb
|
||||
-x test_dtrace
|
||||
|
||||
# All of these seem to occasionally hang for PGO inconsistently
|
||||
# They'll even hang here but be fine in src_test sometimes.
|
||||
# bug #828535 (and related: bug #788022)
|
||||
-x test_asyncio
|
||||
-x test_httpservers
|
||||
-x test_logging
|
||||
-x test_multiprocessing_fork
|
||||
-x test_socket
|
||||
-x test_xmlrpc
|
||||
|
||||
# Hangs (actually runs indefinitely executing itself w/ many cpython builds)
|
||||
# bug #900429
|
||||
-x test_tools
|
||||
)
|
||||
|
||||
if has_version "app-arch/rpm" ; then
|
||||
# Avoid sandbox failure (attempts to write to /var/lib/rpm)
|
||||
profile_task_flags+=(
|
||||
-x test_distutils
|
||||
)
|
||||
fi
|
||||
local -x PROFILE_TASK="${profile_task_flags[*]}"
|
||||
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
|
||||
--without-static-libpython
|
||||
--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-platlibdir=lib
|
||||
--with-pkg-config=yes
|
||||
--with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip
|
||||
|
||||
$(use_with debug assertions)
|
||||
$(use_with lto)
|
||||
$(use_enable pgo optimizations)
|
||||
$(use_with readline readline "$(usex libedit editline readline)")
|
||||
$(use_with valgrind)
|
||||
)
|
||||
# Force-disable modules we don't want built.
|
||||
# See Modules/Setup for docs on how this works. Setup.local contains our local deviations.
|
||||
cat > Modules/Setup.local <<-EOF || die
|
||||
*disabled*
|
||||
nis
|
||||
$(usev !gdbm '_gdbm _dbm')
|
||||
$(usev !sqlite '_sqlite3')
|
||||
$(usev !ssl '_hashlib _ssl')
|
||||
$(usev !ncurses '_curses _curses_panel')
|
||||
$(usev !readline 'readline')
|
||||
$(usev !tk '_tkinter')
|
||||
EOF
|
||||
|
||||
# disable implicit optimization/debugging flags
|
||||
local -x OPT=
|
||||
|
||||
if tc-is-cross-compiler ; then
|
||||
build_cbuild_python
|
||||
myeconfargs+=(
|
||||
# Point the imminent CHOST build to the Python we just
|
||||
# built for CBUILD.
|
||||
--with-build-python="${WORKDIR}"/${P}-${CBUILD}/python
|
||||
)
|
||||
fi
|
||||
|
||||
# pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
|
||||
# propagated to sysconfig for built extensions
|
||||
local -x CFLAGS_NODIST=${CFLAGS}
|
||||
local -x LDFLAGS_NODIST=${LDFLAGS}
|
||||
local -x CFLAGS= LDFLAGS=
|
||||
|
||||
# Fix implicit declarations on cross and prefix builds. Bug #674070.
|
||||
if use ncurses; then
|
||||
append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw
|
||||
fi
|
||||
|
||||
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
|
||||
|
||||
# install epython.py as part of stdlib
|
||||
echo "EPYTHON='python${PYVER}'" > Lib/epython.py || die
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
# Ensure sed works as expected
|
||||
# https://bugs.gentoo.org/594768
|
||||
local -x LC_ALL=C
|
||||
export PYTHONSTRICTEXTENSIONBUILD=1
|
||||
|
||||
# Save PYTHONDONTWRITEBYTECODE so that 'has_version' doesn't
|
||||
# end up writing bytecode & violating sandbox.
|
||||
# bug #831897
|
||||
local -x _PYTHONDONTWRITEBYTECODE=${PYTHONDONTWRITEBYTECODE}
|
||||
|
||||
if use pgo ; then
|
||||
# bug 660358
|
||||
local -x COLUMNS=80
|
||||
local -x PYTHONDONTWRITEBYTECODE=
|
||||
|
||||
addpredict "/usr/lib/python${PYVER}/site-packages"
|
||||
fi
|
||||
|
||||
# also need to clear the flags explicitly here or they end up
|
||||
# in _sysconfigdata*
|
||||
emake CPPFLAGS= CFLAGS= LDFLAGS=
|
||||
|
||||
# Restore saved value from above.
|
||||
local -x PYTHONDONTWRITEBYTECODE=${_PYTHONDONTWRITEBYTECODE}
|
||||
|
||||
# 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
|
||||
|
||||
# this just happens to skip test_support.test_freeze that is broken
|
||||
# without bundled expat
|
||||
# TODO: get a proper skip for it upstream
|
||||
local -x LOGNAME=buildbot
|
||||
|
||||
local test_opts=(
|
||||
-u-network
|
||||
-j "$(makeopts_jobs)"
|
||||
|
||||
# fails
|
||||
-x test_gdb
|
||||
)
|
||||
|
||||
if use sparc ; then
|
||||
# bug #788022
|
||||
test_opts+=(
|
||||
-x test_multiprocessing_fork
|
||||
-x test_multiprocessing_forkserver
|
||||
)
|
||||
fi
|
||||
|
||||
# workaround docutils breaking tests
|
||||
cat > Lib/docutils.py <<-EOF || die
|
||||
raise ImportError("Thou shalt not import!")
|
||||
EOF
|
||||
|
||||
# bug 660358
|
||||
local -x COLUMNS=80
|
||||
local -x PYTHONDONTWRITEBYTECODE=
|
||||
# workaround https://bugs.gentoo.org/775416
|
||||
addwrite "/usr/lib/python${PYVER}/site-packages"
|
||||
|
||||
nonfatal emake test EXTRATESTOPTS="${test_opts[*]}" \
|
||||
CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty
|
||||
local ret=${?}
|
||||
|
||||
rm Lib/docutils.py || die
|
||||
|
||||
[[ ${ret} -eq 0 ]] || die "emake test failed"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
local libdir=${ED}/usr/lib/python${PYVER}
|
||||
|
||||
# the Makefile rules are broken
|
||||
# https://github.com/python/cpython/issues/100221
|
||||
mkdir -p "${libdir}"/lib-dynload || die
|
||||
|
||||
# -j1 hack for now for bug #843458
|
||||
emake -j1 DESTDIR="${D}" altinstall
|
||||
|
||||
# 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
|
||||
|
||||
rm -r "${libdir}"/ensurepip/_bundled || die
|
||||
if ! use ensurepip; then
|
||||
rm -r "${libdir}"/ensurepip || die
|
||||
fi
|
||||
if ! use sqlite; then
|
||||
rm -r "${libdir}/"sqlite3 || die
|
||||
fi
|
||||
if ! use tk; then
|
||||
rm -r "${ED}/usr/bin/idle${PYVER}" || die
|
||||
rm -r "${libdir}/"{idlelib,tkinter,test/test_tk*} || die
|
||||
fi
|
||||
|
||||
ln -s ../python/EXTERNALLY-MANAGED "${libdir}/EXTERNALLY-MANAGED" || 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 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"
|
||||
|
||||
# python-exec wrapping support
|
||||
local pymajor=${PYVER%.*}
|
||||
local EPYTHON=python${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
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
local v
|
||||
for v in ${REPLACING_VERSIONS}; do
|
||||
if ver_test "${v}" -lt 3.11.0_beta4-r2; then
|
||||
ewarn "Python 3.11.0b4 has changed its module ABI. The .pyc files"
|
||||
ewarn "installed previously are no longer valid and will be regenerated"
|
||||
ewarn "(or ignored) on the next import. This may cause sandbox failures"
|
||||
ewarn "when installing some packages and checksum mismatches when removing"
|
||||
ewarn "old versions. To actively prevent this, rebuild all packages"
|
||||
ewarn "installing Python 3.11 modules, e.g. using:"
|
||||
ewarn
|
||||
ewarn " emerge -1v /usr/lib/python3.11/site-packages"
|
||||
fi
|
||||
done
|
||||
}
|
@ -0,0 +1,156 @@
|
||||
This patch bumps all libc dependencies and checksums to 0.2.146, which includes the fix for musl 1.2.4.
|
||||
|
||||
--- a/vendor/addr2line-0.20.0/Cargo.lock
|
||||
+++ b/vendor/addr2line-0.20.0/Cargo.lock
|
||||
@@ -246,9 +246,9 @@ checksum = "e2abad23fbc42b3700f2f279844d
|
||||
|
||||
[[package]]
|
||||
name = "libc"
|
||||
-version = "0.2.141"
|
||||
+version = "0.2.146"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "3304a64d199bb964be99741b7a14d26972741915b3649639149b2479bb46f4b5"
|
||||
+checksum = "f92be4933c13fd498862a9e02a3055f8a8d9c039ce33db97306fd5a6caa7f29b"
|
||||
|
||||
[[package]]
|
||||
name = "libtest-mimic"
|
||||
--- a/vendor/backtrace-0.3.67/Cargo.lock
|
||||
+++ b/vendor/backtrace-0.3.67/Cargo.lock
|
||||
@@ -64,9 +64,9 @@ checksum = "dec7af912d60cdbd3677c1af9352
|
||||
|
||||
[[package]]
|
||||
name = "libc"
|
||||
-version = "0.2.138"
|
||||
+version = "0.2.146"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "db6d7e329c562c5dfab7a46a2afabc8b987ab9a4834c9d1ca04dc54c1546cef8"
|
||||
+checksum = "f92be4933c13fd498862a9e02a3055f8a8d9c039ce33db97306fd5a6caa7f29b"
|
||||
|
||||
[[package]]
|
||||
name = "libloading"
|
||||
--- a/vendor/bstr/Cargo.lock
|
||||
+++ b/vendor/bstr/Cargo.lock
|
||||
@@ -34,9 +34,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "libc"
|
||||
-version = "0.2.138"
|
||||
+version = "0.2.146"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "db6d7e329c562c5dfab7a46a2afabc8b987ab9a4834c9d1ca04dc54c1546cef8"
|
||||
+checksum = "f92be4933c13fd498862a9e02a3055f8a8d9c039ce33db97306fd5a6caa7f29b"
|
||||
|
||||
[[package]]
|
||||
name = "memchr"
|
||||
--- a/vendor/cranelift-jit/Cargo.lock
|
||||
+++ b/vendor/cranelift-jit/Cargo.lock
|
||||
@@ -224,9 +224,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "libc"
|
||||
-version = "0.2.141"
|
||||
+version = "0.2.146"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "3304a64d199bb964be99741b7a14d26972741915b3649639149b2479bb46f4b5"
|
||||
+checksum = "f92be4933c13fd498862a9e02a3055f8a8d9c039ce33db97306fd5a6caa7f29b"
|
||||
|
||||
[[package]]
|
||||
name = "log"
|
||||
--- a/vendor/crossbeam-channel/Cargo.lock
|
||||
+++ b/vendor/crossbeam-channel/Cargo.lock
|
||||
@@ -50,9 +50,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "libc"
|
||||
-version = "0.2.141"
|
||||
+version = "0.2.146"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "3304a64d199bb964be99741b7a14d26972741915b3649639149b2479bb46f4b5"
|
||||
+checksum = "f92be4933c13fd498862a9e02a3055f8a8d9c039ce33db97306fd5a6caa7f29b"
|
||||
|
||||
[[package]]
|
||||
name = "num_cpus"
|
||||
--- a/vendor/elasticlunr-rs/Cargo.lock
|
||||
+++ b/vendor/elasticlunr-rs/Cargo.lock
|
||||
@@ -555,9 +555,9 @@ checksum = "e2abad23fbc42b3700f2f279844d
|
||||
|
||||
[[package]]
|
||||
name = "libc"
|
||||
-version = "0.2.140"
|
||||
+version = "0.2.146"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "99227334921fae1a979cf0bfdfcc6b3e5ce376ef57e16fb6fb3ea2ed6095f80c"
|
||||
+checksum = "f92be4933c13fd498862a9e02a3055f8a8d9c039ce33db97306fd5a6caa7f29b"
|
||||
|
||||
[[package]]
|
||||
name = "lindera"
|
||||
--- a/vendor/handlebars/Cargo.lock
|
||||
+++ b/vendor/handlebars/Cargo.lock
|
||||
@@ -550,9 +550,9 @@ checksum = "e2abad23fbc42b3700f2f279844d
|
||||
|
||||
[[package]]
|
||||
name = "libc"
|
||||
-version = "0.2.140"
|
||||
+version = "0.2.146"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "99227334921fae1a979cf0bfdfcc6b3e5ce376ef57e16fb6fb3ea2ed6095f80c"
|
||||
+checksum = "f92be4933c13fd498862a9e02a3055f8a8d9c039ce33db97306fd5a6caa7f29b"
|
||||
|
||||
[[package]]
|
||||
name = "lock_api"
|
||||
--- a/vendor/icu_locid/Cargo.lock
|
||||
+++ b/vendor/icu_locid/Cargo.lock
|
||||
@@ -318,9 +318,9 @@ checksum = "e2abad23fbc42b3700f2f279844d
|
||||
|
||||
[[package]]
|
||||
name = "libc"
|
||||
-version = "0.2.141"
|
||||
+version = "0.2.146"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "3304a64d199bb964be99741b7a14d26972741915b3649639149b2479bb46f4b5"
|
||||
+checksum = "f92be4933c13fd498862a9e02a3055f8a8d9c039ce33db97306fd5a6caa7f29b"
|
||||
|
||||
[[package]]
|
||||
name = "litemap"
|
||||
--- a/vendor/libffi/Cargo.lock
|
||||
+++ b/vendor/libffi/Cargo.lock
|
||||
@@ -10,9 +10,9 @@ checksum = "50d30906286121d95be3d479533b
|
||||
|
||||
[[package]]
|
||||
name = "libc"
|
||||
-version = "0.2.140"
|
||||
+version = "0.2.146"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "99227334921fae1a979cf0bfdfcc6b3e5ce376ef57e16fb6fb3ea2ed6095f80c"
|
||||
+checksum = "f92be4933c13fd498862a9e02a3055f8a8d9c039ce33db97306fd5a6caa7f29b"
|
||||
|
||||
[[package]]
|
||||
name = "libffi"
|
||||
--- a/vendor/terminal_size/Cargo.lock
|
||||
+++ b/vendor/terminal_size/Cargo.lock
|
||||
@@ -47,9 +47,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "libc"
|
||||
-version = "0.2.140"
|
||||
+version = "0.2.146"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "99227334921fae1a979cf0bfdfcc6b3e5ce376ef57e16fb6fb3ea2ed6095f80c"
|
||||
+checksum = "f92be4933c13fd498862a9e02a3055f8a8d9c039ce33db97306fd5a6caa7f29b"
|
||||
|
||||
[[package]]
|
||||
name = "linux-raw-sys"
|
||||
--- a/vendor/tracing-tree/Cargo.lock
|
||||
+++ b/vendor/tracing-tree/Cargo.lock
|
||||
@@ -100,9 +100,9 @@ checksum = "e2abad23fbc42b3700f2f279844d
|
||||
|
||||
[[package]]
|
||||
name = "libc"
|
||||
-version = "0.2.141"
|
||||
+version = "0.2.146"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
-checksum = "3304a64d199bb964be99741b7a14d26972741915b3649639149b2479bb46f4b5"
|
||||
+checksum = "f92be4933c13fd498862a9e02a3055f8a8d9c039ce33db97306fd5a6caa7f29b"
|
||||
|
||||
[[package]]
|
||||
name = "log"
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue